From 71b6a447ab250201e5772e43b745edb587b781b7 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 20 Dec 2023 11:02:39 +0000 Subject: [PATCH 001/115] show search in centre column on desktop --- src/view/screens/Search/Search.tsx | 56 ++++++++++--------- src/view/screens/Search/index.tsx | 4 +- src/view/screens/Search/index.web.tsx | 3 - .../createNativeStackNavigatorWithAuth.tsx | 3 +- src/view/shell/desktop/Feeds.tsx | 4 +- src/view/shell/desktop/RightNav.tsx | 24 ++++++-- 6 files changed, 52 insertions(+), 42 deletions(-) delete mode 100644 src/view/screens/Search/index.web.tsx diff --git a/src/view/screens/Search/Search.tsx b/src/view/screens/Search/Search.tsx index efd8507a7e..892dbb5f1a 100644 --- a/src/view/screens/Search/Search.tsx +++ b/src/view/screens/Search/Search.tsx @@ -306,7 +306,13 @@ function SearchScreenUserResults({query}: {query: string}) { const SECTIONS_LOGGEDOUT = ['Users'] const SECTIONS_LOGGEDIN = ['Posts', 'Users'] -export function SearchScreenInner({query}: {query?: string}) { +export function SearchScreenInner({ + query, + primarySearch, +}: { + query?: string + primarySearch?: boolean +}) { const pal = usePalette('default') const setMinimalShellMode = useSetMinimalShellMode() const setDrawerSwipeDisabled = useSetDrawerSwipeDisabled() @@ -416,7 +422,7 @@ export function SearchScreenInner({query}: {query?: string}) { style={pal.textLight} /> - {isDesktop ? ( + {isDesktop && !primarySearch ? ( Find users with the search tool on the right ) : ( Find users on Bluesky @@ -428,19 +434,7 @@ export function SearchScreenInner({query}: {query?: string}) { ) } -export function SearchScreenDesktop( - props: NativeStackScreenProps, -) { - const {isDesktop} = useWebMediaQueries() - - return isDesktop ? ( - - ) : ( - - ) -} - -export function SearchScreenMobile( +export function SearchScreen( props: NativeStackScreenProps, ) { const theme = useTheme() @@ -452,7 +446,7 @@ export function SearchScreenMobile( const moderationOpts = useModerationOpts() const search = useActorAutocompleteFn() const setMinimalShellMode = useSetMinimalShellMode() - const {isTablet} = useWebMediaQueries() + const {isTabletOrDesktop, isTabletOrMobile} = useWebMediaQueries() const searchDebounceTimeout = React.useRef( undefined, @@ -527,17 +521,25 @@ export function SearchScreenMobile( return ( - - - - + + {isTabletOrMobile && ( + + + + )} - + )} diff --git a/src/view/shell/desktop/Feeds.tsx b/src/view/shell/desktop/Feeds.tsx index ff51ffe22e..530d606f2c 100644 --- a/src/view/shell/desktop/Feeds.tsx +++ b/src/view/shell/desktop/Feeds.tsx @@ -21,7 +21,7 @@ export function DesktopFeeds() { }) return ( - + {feeds .filter(f => f.displayName !== 'Following') @@ -90,7 +90,5 @@ const styles = StyleSheet.create({ width: 300, paddingHorizontal: 12, paddingVertical: 18, - borderTopWidth: 1, - borderBottomWidth: 1, }, }) diff --git a/src/view/shell/desktop/RightNav.tsx b/src/view/shell/desktop/RightNav.tsx index 8d9961a5fa..02b742dc94 100644 --- a/src/view/shell/desktop/RightNav.tsx +++ b/src/view/shell/desktop/RightNav.tsx @@ -16,7 +16,7 @@ import {Plural, Trans, msg, plural} from '@lingui/macro' import {useSession} from '#/state/session' import {useInviteCodesQuery} from '#/state/queries/invites' -export function DesktopRightNav() { +export function DesktopRightNav({routeName}: {routeName: string}) { const pal = usePalette('default') const palError = usePalette('error') const {_} = useLingui() @@ -30,12 +30,20 @@ export function DesktopRightNav() { return ( - - - {hasSession && ( - + {routeName === 'Search' ? ( + + ) : ( + <> + + + {hasSession && ( + + + + )} + )} Date: Sat, 23 Dec 2023 21:38:21 +0100 Subject: [PATCH 002/115] yet more RSS tweaks (#2289) * rss: full URL in RSS link; use request Host in URLs Full URL syntax on request from third parties. Using the actual request host should fix issues with non-bsky-production deployments. It is HTTPS-only, so doesn't work perfectly for local dev. * rss: make /profile/{handle}/rss an HTTP redirect Motivation is easier discoverability of RSS feed. --- bskyweb/cmd/bskyweb/rss.go | 33 ++++++++++++++++++++++++++++----- bskyweb/cmd/bskyweb/server.go | 3 ++- bskyweb/templates/profile.html | 4 +++- 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/bskyweb/cmd/bskyweb/rss.go b/bskyweb/cmd/bskyweb/rss.go index 4cdc78f8c8..64e67fd228 100644 --- a/bskyweb/cmd/bskyweb/rss.go +++ b/bskyweb/cmd/bskyweb/rss.go @@ -4,6 +4,7 @@ import ( "encoding/xml" "fmt" "net/http" + "strings" "time" appbsky "github.com/bluesky-social/indigo/api/bsky" @@ -39,11 +40,33 @@ type rss struct { func (srv *Server) WebProfileRSS(c echo.Context) error { ctx := c.Request().Context() + req := c.Request() - didParam := c.Param("did") - did, err := syntax.ParseDID(didParam) + identParam := c.Param("ident") + + // if not a DID, try parsing as a handle and doing a redirect + if !strings.HasPrefix(identParam, "did:") { + handle, err := syntax.ParseHandle(identParam) + if err != nil { + return echo.NewHTTPError(400, fmt.Sprintf("not a valid handle: %s", identParam)) + } + + // check that public view is Ok, and resolve DID + pv, err := appbsky.ActorGetProfile(ctx, srv.xrpcc, handle.String()) + if err != nil { + return echo.NewHTTPError(404, fmt.Sprintf("account not found: %s", handle)) + } + for _, label := range pv.Labels { + if label.Src == pv.Did && label.Val == "!no-unauthenticated" { + return echo.NewHTTPError(403, fmt.Sprintf("account does not allow public views: %s", handle)) + } + } + return c.Redirect(http.StatusFound, fmt.Sprintf("/profile/%s/rss", pv.Did)) + } + + did, err := syntax.ParseDID(identParam) if err != nil { - return echo.NewHTTPError(400, fmt.Sprintf("not a valid DID: %s", didParam)) + return echo.NewHTTPError(400, fmt.Sprintf("not a valid DID: %s", identParam)) } // check that public view is Ok @@ -84,7 +107,7 @@ func (srv *Server) WebProfileRSS(c echo.Context) error { pubDate = createdAt.Time().Format(time.RFC822Z) } posts = append(posts, Item{ - Link: fmt.Sprintf("https://bsky.app/profile/%s/post/%s", pv.Handle, aturi.RecordKey().String()), + Link: fmt.Sprintf("https://%s/profile/%s/post/%s", req.Host, pv.Handle, aturi.RecordKey().String()), Description: rec.Text, PubDate: pubDate, GUID: ItemGUID{ @@ -105,7 +128,7 @@ func (srv *Server) WebProfileRSS(c echo.Context) error { feed := &rss{ Version: "2.0", Description: desc, - Link: fmt.Sprintf("https://bsky.app/profile/%s", pv.Handle), + Link: fmt.Sprintf("https://%s/profile/%s", req.Host, pv.Handle), Title: title, Item: posts, } diff --git a/bskyweb/cmd/bskyweb/server.go b/bskyweb/cmd/bskyweb/server.go index 5d9a481fe2..b0fde2557f 100644 --- a/bskyweb/cmd/bskyweb/server.go +++ b/bskyweb/cmd/bskyweb/server.go @@ -210,7 +210,7 @@ func serve(cctx *cli.Context) error { e.GET("/profile/:handle/feed/:rkey/liked-by", server.WebGeneric) // profile RSS feed (DID not handle) - e.GET("/profile/:did/rss", server.WebProfileRSS) + e.GET("/profile/:ident/rss", server.WebProfileRSS) // post endpoints; only first populates info e.GET("/profile/:handle/post/:rkey", server.WebPost) @@ -370,6 +370,7 @@ func (srv *Server) WebProfile(c echo.Context) error { req := c.Request() data["profileView"] = pv data["requestURI"] = fmt.Sprintf("https://%s%s", req.Host, req.URL.Path) + data["requestHost"] = req.Host return c.Render(http.StatusOK, "profile.html", data) } diff --git a/bskyweb/templates/profile.html b/bskyweb/templates/profile.html index 71c1003278..551dc15a66 100644 --- a/bskyweb/templates/profile.html +++ b/bskyweb/templates/profile.html @@ -34,7 +34,9 @@ {% endif %} - + {%- if requestHost %} + + {% endif %} {% endif -%} {%- endblock %} From 7d6b7d2fa6ec074db3f38785e46834f826c82772 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Sat, 23 Dec 2023 15:16:23 -0800 Subject: [PATCH 003/115] Fix some account filtering behaviors (#2290) * Fix: don't filter ProfileCards out of certain lists * Fix: don't filter ProfileCards and autocomplete based on mutes --- src/state/queries/actor-autocomplete.ts | 2 +- src/view/com/lists/ListMembers.tsx | 1 + src/view/com/profile/ProfileCard.tsx | 8 +++++++- src/view/screens/ModerationBlockedAccounts.tsx | 1 + src/view/screens/ModerationMutedAccounts.tsx | 1 + 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/state/queries/actor-autocomplete.ts b/src/state/queries/actor-autocomplete.ts index 709a15b407..785e297652 100644 --- a/src/state/queries/actor-autocomplete.ts +++ b/src/state/queries/actor-autocomplete.ts @@ -112,7 +112,7 @@ function computeSuggestions( } return items.filter(profile => { const mod = moderateProfile(profile, moderationOpts) - return !mod.account.filter + return !mod.account.filter && mod.account.cause?.type !== 'muted' }) } diff --git a/src/view/com/lists/ListMembers.tsx b/src/view/com/lists/ListMembers.tsx index 2aef7d766e..932f4b512f 100644 --- a/src/view/com/lists/ListMembers.tsx +++ b/src/view/com/lists/ListMembers.tsx @@ -180,6 +180,7 @@ export function ListMembers({ profile={(item as AppBskyGraphDefs.ListItemView).subject} renderButton={renderMemberButton} style={{paddingHorizontal: isMobile ? 8 : 14, paddingVertical: 4}} + noModFilter /> ) }, diff --git a/src/view/com/profile/ProfileCard.tsx b/src/view/com/profile/ProfileCard.tsx index c5b2dc528a..ef95f59248 100644 --- a/src/view/com/profile/ProfileCard.tsx +++ b/src/view/com/profile/ProfileCard.tsx @@ -27,6 +27,7 @@ import {useSession} from '#/state/session' export function ProfileCard({ testID, profile: profileUnshadowed, + noModFilter, noBg, noBorder, followers, @@ -35,6 +36,7 @@ export function ProfileCard({ }: { testID?: string profile: AppBskyActorDefs.ProfileViewBasic + noModFilter?: boolean noBg?: boolean noBorder?: boolean followers?: AppBskyActorDefs.ProfileView[] | undefined @@ -50,7 +52,11 @@ export function ProfileCard({ return null } const moderation = moderateProfile(profile, moderationOpts) - if (moderation.account.filter) { + if ( + !noModFilter && + moderation.account.filter && + moderation.account.cause?.type !== 'muted' + ) { return null } diff --git a/src/view/screens/ModerationBlockedAccounts.tsx b/src/view/screens/ModerationBlockedAccounts.tsx index 8f6e2f7296..bada3ea936 100644 --- a/src/view/screens/ModerationBlockedAccounts.tsx +++ b/src/view/screens/ModerationBlockedAccounts.tsx @@ -92,6 +92,7 @@ export function ModerationBlockedAccounts({}: Props) { testID={`blockedAccount-${index}`} key={item.did} profile={item} + noModFilter /> ) return ( diff --git a/src/view/screens/ModerationMutedAccounts.tsx b/src/view/screens/ModerationMutedAccounts.tsx index 41aee9f2ff..67118e530e 100644 --- a/src/view/screens/ModerationMutedAccounts.tsx +++ b/src/view/screens/ModerationMutedAccounts.tsx @@ -92,6 +92,7 @@ export function ModerationMutedAccounts({}: Props) { testID={`mutedAccount-${index}`} key={item.did} profile={item} + noModFilter /> ) return ( From 93f5bb3b1f10cb6011f1770132067fc58df39f3b Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Sat, 23 Dec 2023 17:44:38 -0600 Subject: [PATCH 004/115] Bump react-native to 0.73.1, expo to 50 (#2214) * Bump to react-native@0.73, bump expo@next Includes bumps for all expo deps and dev dependencies. Updates react-native patch and others, and removes the babel-preset-expo patch. * Remove duplicate Splash ref * Bump more deps * Properly install expo-notifications * Bump webview dep * Bump packages according to expo fix; remove pager-view patch as it is no longer needed * Don't access expo-camera from Web * Fix crypto dep on web * Fix some type issues * Build esnext modules to support dynamic imports --------- Co-authored-by: Paul Frazee --- app.config.js | 3 + babel.config.js | 1 + package.json | 81 +- patches/babel-preset-expo+9.5.2.patch | 14 - ...{metro+0.76.8.patch => metro+0.80.1.patch} | 0 ....76.8.patch => metro-runtime+0.80.1.patch} | 0 ...ch => metro-transform-worker+0.80.1.patch} | 6 +- ...0.72.5.patch => react-native+0.73.0.patch} | 6 +- patches/react-native-pager-view+6.1.4.patch | 54 - src/Splash.tsx | 2 - src/lib/hooks/usePermissions.web.ts | 16 + src/platform/crypto.ts | 7 + src/platform/detection.ts | 6 +- .../text-input/web/EmojiPicker.web.tsx | 1 + src/view/com/post/Post.tsx | 1 + src/view/com/posts/FeedItem.tsx | 1 + src/view/com/util/Html.tsx | 4 + src/view/shell/desktop/Feeds.tsx | 1 + tsconfig.json | 6 +- yarn.lock | 2798 ++++++++++------- 20 files changed, 1783 insertions(+), 1225 deletions(-) delete mode 100644 patches/babel-preset-expo+9.5.2.patch rename patches/{metro+0.76.8.patch => metro+0.80.1.patch} (100%) rename patches/{metro-runtime+0.76.8.patch => metro-runtime+0.80.1.patch} (100%) rename patches/{metro-transform-worker+0.76.8.patch => metro-transform-worker+0.80.1.patch} (90%) rename patches/{react-native+0.72.5.patch => react-native+0.73.0.patch} (81%) delete mode 100644 patches/react-native-pager-view+6.1.4.patch create mode 100644 src/lib/hooks/usePermissions.web.ts create mode 100644 src/platform/crypto.ts diff --git a/app.config.js b/app.config.js index 4db454c826..5b82d1a76d 100644 --- a/app.config.js +++ b/app.config.js @@ -110,6 +110,9 @@ module.exports = function () { [ 'expo-build-properties', { + ios: { + deploymentTarget: '13.4', + }, android: { compileSdkVersion: 34, targetSdkVersion: 34, diff --git a/babel.config.js b/babel.config.js index 825916676a..43b2c7bce3 100644 --- a/babel.config.js +++ b/babel.config.js @@ -42,6 +42,7 @@ module.exports = function (api) { platform: './src/platform', state: './src/state', view: './src/view', + crypto: './src/platform/crypto.ts', }, }, ], diff --git a/package.json b/package.json index e69ad6bf04..0440912f17 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,9 @@ "name": "bsky.app", "version": "1.60.0", "private": true, + "engines": { + "node": ">=18" + }, "scripts": { "prepare": "is-ci || husky install", "postinstall": "patch-package && yarn intl:compile", @@ -32,7 +35,8 @@ "intl:build": "yarn intl:check && yarn intl:compile", "intl:check": "yarn intl:extract && git diff-index -G'(^[^\\*# /])|(^#\\w)|(^\\s+[^\\*#/])' HEAD || (echo '\n⚠️ i18n detected un-extracted translations\n' && exit 1)", "intl:extract": "lingui extract", - "intl:compile": "lingui compile" + "intl:compile": "lingui compile", + "nuke": "rm -rf ./node_modules && rm -rf ./ios && rm -rf ./android" }, "dependencies": { "@atproto/api": "^0.7.4", @@ -49,14 +53,14 @@ "@lingui/react": "^4.5.0", "@mattermost/react-native-paste-input": "^0.6.4", "@miblanchard/react-native-slider": "^2.3.1", - "@react-native-async-storage/async-storage": "1.18.2", + "@react-native-async-storage/async-storage": "1.21.0", "@react-native-camera-roll/camera-roll": "^5.2.2", "@react-native-clipboard/clipboard": "^1.10.0", "@react-native-community/blur": "^4.3.0", - "@react-native-community/datetimepicker": "7.2.0", - "@react-native-masked-view/masked-view": "^0.3.1", + "@react-native-community/datetimepicker": "7.6.1", + "@react-native-masked-view/masked-view": "0.3.0", "@react-native-menu/menu": "^0.8.0", - "@react-native-picker/picker": "2.4.10", + "@react-native-picker/picker": "2.5.1", "@react-navigation/bottom-tabs": "^6.5.7", "@react-navigation/drawer": "^6.6.2", "@react-navigation/native": "^6.1.6", @@ -65,7 +69,7 @@ "@segment/analytics-react": "^1.0.0-rc1", "@segment/analytics-react-native": "^2.10.1", "@segment/sovran-react-native": "^0.4.5", - "@sentry/react-native": "5.10.0", + "@sentry/react-native": "5.5.0", "@tanstack/react-query": "^5.8.1", "@tiptap/core": "^2.0.0-beta.220", "@tiptap/extension-document": "^2.0.0-beta.220", @@ -90,24 +94,25 @@ "email-validator": "^2.0.4", "emoji-mart": "^5.5.2", "eventemitter3": "^5.0.1", - "expo": "^49.0.8", - "expo-application": "~5.3.0", - "expo-build-properties": "~0.8.3", - "expo-camera": "13.5.1", - "expo-constants": "~14.4.2", - "expo-dev-client": "2.4.7", - "expo-device": "~5.4.0", - "expo-image": "~1.3.2", - "expo-image-manipulator": "~11.5.0", - "expo-image-picker": "~14.5.0", - "expo-localization": "~14.3.0", - "expo-media-library": "~15.4.1", - "expo-notifications": "~0.20.1", - "expo-sharing": "~11.5.0", - "expo-splash-screen": "~0.20.5", - "expo-status-bar": "~1.6.0", - "expo-system-ui": "~2.4.0", - "expo-updates": "~0.18.12", + "expo": "^50.0.0-preview.7", + "expo-application": "~5.8.1", + "expo-build-properties": "^0.11.0", + "expo-camera": "~14.0.1", + "expo-constants": "~15.4.2", + "expo-dev-client": "~3.3.4", + "expo-device": "~5.9.1", + "expo-image": "~1.10.1", + "expo-image-manipulator": "^11.8.0", + "expo-image-picker": "~14.7.1", + "expo-localization": "~14.8.1", + "expo-media-library": "~15.9.1", + "expo-notifications": "~0.27.2", + "expo-sharing": "^11.10.0", + "expo-splash-screen": "~0.26.1", + "expo-status-bar": "~1.11.1", + "expo-system-ui": "~2.9.2", + "expo-task-manager": "~11.7.0", + "expo-updates": "~0.24.5", "fast-text-encoding": "^1.0.6", "history": "^5.3.0", "js-sha256": "^0.9.0", @@ -135,33 +140,33 @@ "react-avatar-editor": "^13.0.0", "react-circular-progressbar": "^2.1.0", "react-dom": "^18.2.0", - "react-native": "0.72.5", + "react-native": "0.73.1", "react-native-appstate-hook": "^1.0.6", "react-native-drawer-layout": "^4.0.0-alpha.3", "react-native-fs": "^2.20.0", - "react-native-gesture-handler": "^2.12.1", - "react-native-get-random-values": "^1.8.0", + "react-native-gesture-handler": "~2.14.0", + "react-native-get-random-values": "~1.8.0", "react-native-haptic-feedback": "^1.14.0", "react-native-image-crop-picker": "^0.38.1", "react-native-inappbrowser-reborn": "^3.6.3", "react-native-ios-context-menu": "^1.15.3", "react-native-linear-gradient": "^2.6.2", - "react-native-pager-view": "6.1.4", + "react-native-pager-view": "6.2.2", "react-native-picker-select": "^8.1.0", "react-native-progress": "bluesky-social/react-native-progress", "react-native-reanimated": "^3.6.0", "react-native-root-siblings": "^4.1.1", - "react-native-safe-area-context": "4.6.3", - "react-native-screens": "~3.22.0", + "react-native-safe-area-context": "4.7.4", + "react-native-screens": "~3.27.0", "react-native-splash-screen": "^3.3.0", - "react-native-svg": "13.9.0", + "react-native-svg": "14.0.0", "react-native-url-polyfill": "^1.3.0", "react-native-uuid": "^2.0.1", "react-native-version-number": "^0.3.6", "react-native-web": "~0.19.6", "react-native-web-linear-gradient": "^1.1.2", "react-native-web-webview": "^1.0.2", - "react-native-webview": "^13.6.2", + "react-native-webview": "^13.6.3", "react-native-youtube-iframe": "^2.3.0", "react-responsive": "^9.0.2", "rn-fetch-blob": "^0.12.0", @@ -178,10 +183,13 @@ "@babel/preset-env": "^7.20.0", "@babel/runtime": "^7.20.0", "@did-plc/server": "^0.0.1", + "@expo/config-plugins": "7.8.0", + "@expo/prebuild-config": "6.7.0", "@lingui/cli": "^4.5.0", "@lingui/macro": "^4.5.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", "@react-native-community/eslint-config": "^3.0.0", + "@react-native/typescript-config": "^0.74.0", "@testing-library/jest-native": "^5.4.1", "@testing-library/react-native": "^11.5.2", "@tsconfig/react-native": "^2.0.3", @@ -202,11 +210,12 @@ "@types/react-test-renderer": "^17.0.1", "@typescript-eslint/eslint-plugin": "^5.48.2", "@typescript-eslint/parser": "^5.48.2", - "babel-jest": "^29.4.2", + "babel-jest": "^29.7.0", "babel-loader": "^9.1.2", "babel-plugin-macros": "^3.1.0", "babel-plugin-module-resolver": "^5.0.0", "babel-plugin-react-native-web": "^0.18.12", + "babel-preset-expo": "^10.0.0", "detox": "^20.13.0", "eslint": "^8.19.0", "eslint-plugin-detox": "^1.0.0", @@ -217,8 +226,8 @@ "html-webpack-plugin": "^5.5.0", "husky": "^8.0.3", "is-ci": "^3.0.1", - "jest": "^29.4.3", - "jest-expo": "^49.0.0", + "jest": "^29.7.0", + "jest-expo": "^50.0.1", "jest-junit": "^15.0.0", "lint-staged": "^13.2.3", "metro-react-native-babel-preset": "^0.73.7", @@ -228,7 +237,7 @@ "react-scripts": "^5.0.1", "react-test-renderer": "18.2.0", "ts-node": "^10.9.1", - "typescript": "^5.1.3", + "typescript": "^5.3.3", "url-loader": "^4.1.1", "webpack": "^5.75.0", "webpack-cli": "^5.0.1", diff --git a/patches/babel-preset-expo+9.5.2.patch b/patches/babel-preset-expo+9.5.2.patch deleted file mode 100644 index 5e328c2243..0000000000 --- a/patches/babel-preset-expo+9.5.2.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/node_modules/babel-preset-expo/index.js b/node_modules/babel-preset-expo/index.js -index 2099ee3..2b9e092 100644 ---- a/node_modules/babel-preset-expo/index.js -+++ b/node_modules/babel-preset-expo/index.js -@@ -105,7 +105,8 @@ module.exports = function (api, options = {}) { - ], - ], - plugins: [ -- getObjectRestSpreadPlugin(), -+ // - dan: This will be disabled anyway when we upgrade Expo, but let's do it now. -+ // getObjectRestSpreadPlugin(), - ...extraPlugins, - getAliasPlugin(), - [require.resolve('@babel/plugin-proposal-decorators'), { legacy: true }], diff --git a/patches/metro+0.76.8.patch b/patches/metro+0.80.1.patch similarity index 100% rename from patches/metro+0.76.8.patch rename to patches/metro+0.80.1.patch diff --git a/patches/metro-runtime+0.76.8.patch b/patches/metro-runtime+0.80.1.patch similarity index 100% rename from patches/metro-runtime+0.76.8.patch rename to patches/metro-runtime+0.80.1.patch diff --git a/patches/metro-transform-worker+0.76.8.patch b/patches/metro-transform-worker+0.80.1.patch similarity index 90% rename from patches/metro-transform-worker+0.76.8.patch rename to patches/metro-transform-worker+0.80.1.patch index d835eee06b..65f44e5783 100644 --- a/patches/metro-transform-worker+0.76.8.patch +++ b/patches/metro-transform-worker+0.80.1.patch @@ -1,8 +1,8 @@ diff --git a/node_modules/metro-transform-worker/src/index.js b/node_modules/metro-transform-worker/src/index.js -index 27d4cb3..fd71f47 100644 +index cae11e7..42f251b 100644 --- a/node_modules/metro-transform-worker/src/index.js +++ b/node_modules/metro-transform-worker/src/index.js -@@ -190,6 +190,10 @@ async function transformJS(file, { config, options, projectRoot }) { +@@ -189,6 +189,10 @@ async function transformJS(file, { config, options, projectRoot }) { let dependencyMapName = ""; let dependencies; let wrappedAst; @@ -13,7 +13,7 @@ index 27d4cb3..fd71f47 100644 // If the module to transform is a script (meaning that is not part of the // dependency graph and it code will just be prepended to the bundle modules), -@@ -229,19 +233,20 @@ async function transformJS(file, { config, options, projectRoot }) { +@@ -228,19 +232,20 @@ async function transformJS(file, { config, options, projectRoot }) { if (config.unstable_disableModuleWrapping === true) { wrappedAst = ast; } else { diff --git a/patches/react-native+0.72.5.patch b/patches/react-native+0.73.0.patch similarity index 81% rename from patches/react-native+0.72.5.patch rename to patches/react-native+0.73.0.patch index d640f6c9ee..66f7f76476 100644 --- a/patches/react-native+0.72.5.patch +++ b/patches/react-native+0.73.0.patch @@ -1,7 +1,7 @@ -diff --git a/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.m b/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.m +diff --git a/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm b/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm index 9dca6a5..090bda5 100644 ---- a/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.m -+++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.m +--- a/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm ++++ b/node_modules/react-native/Libraries/Text/TextInput/RCTBackedTextInputDelegateAdapter.mm @@ -266,11 +266,10 @@ static void *TextFieldSelectionObservingContext = &TextFieldSelectionObservingCo - (void)textViewDidChangeSelection:(__unused UITextView *)textView diff --git a/patches/react-native-pager-view+6.1.4.patch b/patches/react-native-pager-view+6.1.4.patch deleted file mode 100644 index d6b4178ab3..0000000000 --- a/patches/react-native-pager-view+6.1.4.patch +++ /dev/null @@ -1,54 +0,0 @@ -diff --git a/node_modules/react-native-pager-view/ios/ReactNativePageView.m b/node_modules/react-native-pager-view/ios/ReactNativePageView.m -index ab0fc7f..1ace752 100644 ---- a/node_modules/react-native-pager-view/ios/ReactNativePageView.m -+++ b/node_modules/react-native-pager-view/ios/ReactNativePageView.m -@@ -1,6 +1,6 @@ - - #import "ReactNativePageView.h" --#import "React/RCTLog.h" -+#import - #import - - #import "UIViewController+CreateExtension.h" -@@ -9,7 +9,7 @@ - #import "RCTOnPageSelected.h" - #import - --@interface ReactNativePageView () -+@interface ReactNativePageView () - - @property(nonatomic, strong) UIPageViewController *reactPageViewController; - @property(nonatomic, strong) RCTEventDispatcher *eventDispatcher; -@@ -80,6 +80,10 @@ - (void)didMoveToWindow { - [self setupInitialController]; - } - -+ UIPanGestureRecognizer* panGestureRecognizer = [UIPanGestureRecognizer new]; -+ panGestureRecognizer.delegate = self; -+ [self addGestureRecognizer: panGestureRecognizer]; -+ - if (self.reactViewController.navigationController != nil && self.reactViewController.navigationController.interactivePopGestureRecognizer != nil) { - [self.scrollView.panGestureRecognizer requireGestureRecognizerToFail:self.reactViewController.navigationController.interactivePopGestureRecognizer]; - } -@@ -463,4 +467,21 @@ - (NSString *)determineScrollDirection:(UIScrollView *)scrollView { - - (BOOL)isLtrLayout { - return [_layoutDirection isEqualToString:@"ltr"]; - } -+ -+- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { -+ if (!_overdrag && otherGestureRecognizer == self.scrollView.panGestureRecognizer) { -+ UIPanGestureRecognizer* p = (UIPanGestureRecognizer*) gestureRecognizer; -+ CGPoint velocity = [p velocityInView:self]; -+ if (self.currentIndex == 0 && velocity.x > 0) { -+ self.scrollView.panGestureRecognizer.enabled = false; -+ return NO; -+ } else { -+ self.scrollView.panGestureRecognizer.enabled = self.scrollEnabled; -+ } -+ } else { -+ self.scrollView.panGestureRecognizer.enabled = self.scrollEnabled; -+ } -+ -+ return YES; -+} - @end diff --git a/src/Splash.tsx b/src/Splash.tsx index 16375539f9..fc70bb3b7b 100644 --- a/src/Splash.tsx +++ b/src/Splash.tsx @@ -40,8 +40,6 @@ type Props = { isReady: boolean } -SplashScreen.preventAutoHideAsync().catch(() => {}) - const AnimatedLogo = Animated.createAnimatedComponent(Logo) export function Splash(props: React.PropsWithChildren) { diff --git a/src/lib/hooks/usePermissions.web.ts b/src/lib/hooks/usePermissions.web.ts new file mode 100644 index 0000000000..c550a7d6df --- /dev/null +++ b/src/lib/hooks/usePermissions.web.ts @@ -0,0 +1,16 @@ +export function usePhotoLibraryPermission() { + const requestPhotoAccessIfNeeded = async () => { + // On the, we use to produce a filepicker + // This does not need any permission granting. + return true + } + return {requestPhotoAccessIfNeeded} +} + +export function useCameraPermission() { + const requestCameraAccessIfNeeded = async () => { + return false + } + + return {requestCameraAccessIfNeeded} +} diff --git a/src/platform/crypto.ts b/src/platform/crypto.ts new file mode 100644 index 0000000000..c7deb21ccb --- /dev/null +++ b/src/platform/crypto.ts @@ -0,0 +1,7 @@ +// HACK +// expo-modules-core tries to require('crypto') in uuid.web.js +// and while it tries to detect web crypto before doing so, our +// build fails when it tries to do this require. We use a babel +// and tsconfig alias to direct it here +// -prf +export default crypto diff --git a/src/platform/detection.ts b/src/platform/detection.ts index f4f7be240d..150fc1fe33 100644 --- a/src/platform/detection.ts +++ b/src/platform/detection.ts @@ -14,5 +14,7 @@ export const isMobileWeb = global.window.matchMedia(isMobileWebMediaQuery)?.matches export const deviceLocales = dedupArray( - getLocales?.().map?.(locale => locale.languageCode), -) + getLocales?.() + .map?.(locale => locale.languageCode) + .filter(code => typeof code === 'string'), +) as string[] 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 e27a0793d0..f4b2d99b05 100644 --- a/src/view/com/composer/text-input/web/EmojiPicker.web.tsx +++ b/src/view/com/composer/text-input/web/EmojiPicker.web.tsx @@ -96,6 +96,7 @@ const styles = StyleSheet.create({ }, trigger: { backgroundColor: 'transparent', + // @ts-ignore web only -prf border: 'none', paddingTop: 4, paddingLeft: 12, diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx index 9b1bf7a496..df7d923013 100644 --- a/src/view/com/post/Post.tsx +++ b/src/view/com/post/Post.tsx @@ -221,6 +221,7 @@ const styles = StyleSheet.create({ paddingBottom: 5, paddingLeft: 10, borderTopWidth: 1, + // @ts-ignore web only -prf cursor: 'pointer', }, layout: { diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 20d1997456..2be314266f 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -364,6 +364,7 @@ const styles = StyleSheet.create({ borderTopWidth: 1, paddingLeft: 10, paddingRight: 15, + // @ts-ignore web only -prf cursor: 'pointer', overflow: 'hidden', }, diff --git a/src/view/com/util/Html.tsx b/src/view/com/util/Html.tsx index 1590955a23..2e47194811 100644 --- a/src/view/com/util/Html.tsx +++ b/src/view/com/util/Html.tsx @@ -30,6 +30,7 @@ export function H1({children}: React.PropsWithChildren<{}>) { const styles = useStyles() const pal = usePalette('default') const typography = useTheme().typography['title-xl'] + // @ts-ignore Expo's TextStyle definition seems to have gotten away from RN's -prf return {children} } @@ -37,6 +38,7 @@ export function H2({children}: React.PropsWithChildren<{}>) { const styles = useStyles() const pal = usePalette('default') const typography = useTheme().typography['title-lg'] + // @ts-ignore Expo's TextStyle definition seems to have gotten away from RN's -prf return {children} } @@ -44,6 +46,7 @@ export function H3({children}: React.PropsWithChildren<{}>) { const styles = useStyles() const pal = usePalette('default') const typography = useTheme().typography.title + // @ts-ignore Expo's TextStyle definition seems to have gotten away from RN's -prf return {children} } @@ -51,6 +54,7 @@ export function H4({children}: React.PropsWithChildren<{}>) { const styles = useStyles() const pal = usePalette('default') const typography = useTheme().typography['title-sm'] + // @ts-ignore Expo's TextStyle definition seems to have gotten away from RN's -prf return {children} } diff --git a/src/view/shell/desktop/Feeds.tsx b/src/view/shell/desktop/Feeds.tsx index ff51ffe22e..93b96e7040 100644 --- a/src/view/shell/desktop/Feeds.tsx +++ b/src/view/shell/desktop/Feeds.tsx @@ -86,6 +86,7 @@ function FeedItem({ const styles = StyleSheet.create({ container: { flex: 1, + // @ts-ignore web only -prf overflowY: 'auto', width: 300, paddingHorizontal: 12, diff --git a/tsconfig.json b/tsconfig.json index 24c347c734..13e9741bc2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,14 +1,16 @@ { - "extends": "@tsconfig/react-native/tsconfig.json", + "extends": "@react-native/typescript-config/tsconfig.json", "compilerOptions": { "jsx": "react-jsx", + "module": "esnext", "types": ["node"], "paths": { "#/*": ["./src/*"], "lib/*": ["./src/lib/*"], "platform/*": ["./src/platform/*"], "state/*": ["./src/state/*"], - "view/*": ["./src/view/*"] + "view/*": ["./src/view/*"], + "crypto": ["./src/platform/crypto.ts"] } } } diff --git a/yarn.lock b/yarn.lock index a16a73c7bd..13072d6545 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1026,6 +1026,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== +"@babel/compat-data@^7.23.3": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.16.0", "@babel/core@^7.20.0", "@babel/core@^7.20.2", "@babel/core@^7.7.2", "@babel/core@^7.8.0": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.10.tgz#aad442c7bcd1582252cb4576747ace35bc122f35" @@ -1087,6 +1092,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.20.5": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== + dependencies: + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/generator@^7.21.1", "@babel/generator@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" @@ -1148,6 +1163,21 @@ "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" +"@babel/helper-create-class-features-plugin@^7.22.15": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz#b04d915ce92ce363666f816a884cdcfc9be04953" + integrity sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz#9d8e61a8d9366fe66198f57c40565663de0825f6" @@ -1201,6 +1231,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== + dependencies: + "@babel/types" "^7.23.0" + "@babel/helper-member-expression-to-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" @@ -1251,7 +1288,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== @@ -1265,6 +1302,15 @@ "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-wrap-function" "^7.22.9" +"@babel/helper-replace-supers@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779" @@ -1300,6 +1346,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" @@ -1428,14 +1479,6 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-default-from" "^7.22.5" -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" @@ -1591,6 +1634,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-jsx@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -1780,6 +1830,14 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-export-namespace-from@^7.22.11": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" + integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-transform-export-namespace-from@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b" @@ -1915,6 +1973,17 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-object-rest-spread@^7.12.13": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" + integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== + dependencies: + "@babel/compat-data" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-object-rest-spread@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1" @@ -1958,6 +2027,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-parameters@^7.22.15", "@babel/plugin-transform-parameters@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" + integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-private-methods@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" @@ -1966,6 +2042,16 @@ "@babel/helper-create-class-features-plugin" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-private-property-in-object@^7.22.11": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" + integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-transform-private-property-in-object@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32" @@ -1997,6 +2083,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-react-display-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz#70529f034dd1e561045ad3c8152a267f0d7b6200" + integrity sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-react-jsx-development@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz#e716b6edbef972a92165cd69d92f1255f7e73e87" @@ -2018,7 +2111,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.12.17", "@babel/plugin-transform-react-jsx@^7.22.5": +"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.5.tgz#932c291eb6dd1153359e2a90cb5e557dcf068416" integrity sha512-rog5gZaVbUip5iWDMTYbVM15XQq+RkUKhET/IHR6oizR+JEoN6CAfTTuHcK4vwUyzca30qqHqEpzBOnaRMWYMA== @@ -2029,6 +2122,17 @@ "@babel/plugin-syntax-jsx" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/plugin-transform-react-jsx@^7.22.15": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312" + integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/types" "^7.23.4" + "@babel/plugin-transform-react-pure-annotations@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz#1f58363eef6626d6fa517b95ac66fe94685e32c0" @@ -2037,6 +2141,14 @@ "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-react-pure-annotations@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz#fabedbdb8ee40edf5da96f3ecfc6958e3783b93c" + integrity sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-regenerator@^7.22.10": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" @@ -2257,6 +2369,18 @@ "@babel/plugin-transform-react-jsx-development" "^7.22.5" "@babel/plugin-transform-react-pure-annotations" "^7.22.5" +"@babel/preset-react@^7.22.15": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.23.3.tgz#f73ca07e7590f977db07eb54dbe46538cc015709" + integrity sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-transform-react-display-name" "^7.23.3" + "@babel/plugin-transform-react-jsx" "^7.22.15" + "@babel/plugin-transform-react-jsx-development" "^7.22.5" + "@babel/plugin-transform-react-pure-annotations" "^7.23.3" + "@babel/preset-typescript@^7.13.0", "@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.16.7": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz#16367d8b01d640e9a507577ed4ee54e0101e51c8" @@ -2366,6 +2490,15 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" +"@babel/types@^7.23.4", "@babel/types@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@bam.tech/react-native-image-resizer@^3.0.4": version "3.0.5" resolved "https://registry.yarnpkg.com/@bam.tech/react-native-image-resizer/-/react-native-image-resizer-3.0.5.tgz#6661ba020de156268f73bdc92fbb93ef86f88a13" @@ -2738,7 +2871,7 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.47.0.tgz#5478fdf443ff8158f9de171c704ae45308696c7d" integrity sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og== -"@expo/bunyan@4.0.0", "@expo/bunyan@^4.0.0": +"@expo/bunyan@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@expo/bunyan/-/bunyan-4.0.0.tgz#be0c1de943c7987a9fbd309ea0b1acd605890c7b" integrity sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA== @@ -2748,55 +2881,63 @@ mv "~2" safe-json-stringify "~1" -"@expo/cli@0.10.11": - version "0.10.11" - resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.10.11.tgz#d4fa73e5629b9de71a9ba4bc517e6c910e99b529" - integrity sha512-ehaAOw4SwkJ9uL5z9c3RD4LJpmMDCXZBCWZG4fonUGutks4t/GLoNRcdENkWsf6NSgkdPNgNl8KwphU1p083PQ== +"@expo/cli@0.16.5": + version "0.16.5" + resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.16.5.tgz#cce130bf9dbad58eda4f3b3d6bd0276ce1be74ec" + integrity sha512-4SAAymmV97OeskbYbpiJ/HFSUHLIyYmP8RlZE0svH+A1Z2lsAbjm8G7t5dFt5WPZGHWuj0y/DzIT8eElqvwHEg== dependencies: "@babel/runtime" "^7.20.0" "@expo/code-signing-certificates" "0.0.5" - "@expo/config" "~8.1.0" - "@expo/config-plugins" "~7.2.0" - "@expo/dev-server" "0.5.5" + "@expo/config" "~8.5.0" + "@expo/config-plugins" "~7.8.0" "@expo/devcert" "^1.0.0" - "@expo/env" "0.0.5" + "@expo/env" "~0.2.0" + "@expo/image-utils" "^0.4.0" "@expo/json-file" "^8.2.37" - "@expo/metro-config" "~0.10.0" + "@expo/metro-config" "~0.17.0" "@expo/osascript" "^2.0.31" - "@expo/package-manager" "~1.0.0" - "@expo/plist" "^0.0.20" - "@expo/prebuild-config" "6.2.6" + "@expo/package-manager" "^1.1.1" + "@expo/plist" "^0.1.0" + "@expo/prebuild-config" "6.7.2" "@expo/rudder-sdk-node" "1.1.1" + "@expo/server" "^0.3.0" "@expo/spawn-async" "1.5.0" - "@expo/xcpretty" "^4.2.1" + "@expo/xcpretty" "^4.3.0" + "@react-native/dev-middleware" "^0.73.6" "@urql/core" "2.3.6" "@urql/exchange-retry" "0.3.0" accepts "^1.3.8" - arg "4.1.0" + arg "5.0.2" better-opn "~3.0.2" bplist-parser "^0.3.1" cacache "^15.3.0" chalk "^4.0.0" ci-info "^3.3.0" + connect "^3.7.0" debug "^4.3.4" env-editor "^0.4.1" + find-yarn-workspace-root "~2.0.0" form-data "^3.0.1" freeport-async "2.0.0" fs-extra "~8.1.0" getenv "^1.0.0" + glob "^7.1.7" graphql "15.8.0" graphql-tag "^2.10.1" https-proxy-agent "^5.0.1" internal-ip "4.3.0" - is-root "^2.1.0" + is-docker "^2.0.0" + is-wsl "^2.1.1" js-yaml "^3.13.1" json-schema-deref-sync "^0.13.0" - md5-file "^3.2.3" + lodash.debounce "^4.0.8" md5hex "^1.0.0" - minipass "3.1.6" + minimatch "^3.0.4" + minipass "3.3.6" node-fetch "^2.6.7" node-forge "^1.3.1" npm-package-arg "^7.0.0" + open "^8.3.0" ora "3.4.0" pretty-bytes "5.6.0" progress "2.0.3" @@ -2804,12 +2945,15 @@ qrcode-terminal "0.11.0" require-from-string "^2.0.2" requireg "^0.2.2" + resolve "^1.22.2" resolve-from "^5.0.0" + resolve.exports "^2.0.2" semver "^7.5.3" send "^0.18.0" slugify "^1.3.4" structured-headers "^0.4.1" tar "^6.0.5" + temp-dir "^2.0.0" tempy "^0.7.1" terminal-link "^2.1.1" text-table "^0.2.0" @@ -2825,14 +2969,15 @@ node-forge "^1.2.1" nullthrows "^1.1.1" -"@expo/config-plugins@7.2.5", "@expo/config-plugins@~7.2.0": - version "7.2.5" - resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-7.2.5.tgz#b15f22878975fdc4ddcfa8cdc971937ddc4c0249" - integrity sha512-w+5ccu1IxBHgyQk9CPFKLZOk8yZQEyTjbJwOzESK1eR7QwosbcsLkN1c1WWUZYiCXwORu3UTwJYll4+X2xxJhQ== +"@expo/config-plugins@7.8.0", "@expo/config-plugins@~7.8.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-7.8.0.tgz#70fd87237faf6a5c3bf47277b67f7b22f9b12c05" + integrity sha512-bCJB/uTP2D520l36M0zMVzxzu25ISdEniE42SjgtFnbIzKae2s9Jd91CT/90qEoF2EXeAVlXwn2nCIiY8FTU3A== dependencies: - "@expo/config-types" "^49.0.0-alpha.1" - "@expo/json-file" "~8.2.37" - "@expo/plist" "^0.0.20" + "@expo/config-types" "^50.0.0-alpha.1" + "@expo/fingerprint" "^0.6.0" + "@expo/json-file" "~8.3.0" + "@expo/plist" "^0.1.0" "@expo/sdk-runtime-versions" "^1.0.0" "@react-native/normalize-color" "^2.0.0" chalk "^4.1.2" @@ -2846,19 +2991,42 @@ xcode "^3.0.1" xml2js "0.6.0" -"@expo/config-types@^49.0.0-alpha.1": - version "49.0.0" - resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-49.0.0.tgz#15ffef715285c06703f6fb7ec0cda853f645cc09" - integrity sha512-8eyREVi+K2acnMBe/rTIu1dOfyR2+AMnTLHlut+YpMV9OZPdeKV0Bs9BxAewGqBA2slslbQ9N39IS2CuTKpXkA== +"@expo/config-plugins@7.8.2", "@expo/config-plugins@~7.8.2": + version "7.8.2" + resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-7.8.2.tgz#c00ce93c4d6c2cb9e345ed9cd56ceeea05ab8ddb" + integrity sha512-XM2eXA5EvcpmXFCui48+bVy8GTskYSjPf2yC+LliYv8PDcedu7+pdgmbnvH4eZCyHfTMO8/UiF+w8e5WgOEj5A== + dependencies: + "@expo/config-types" "^50.0.0-alpha.1" + "@expo/fingerprint" "^0.6.0" + "@expo/json-file" "~8.3.0" + "@expo/plist" "^0.1.0" + "@expo/sdk-runtime-versions" "^1.0.0" + "@react-native/normalize-color" "^2.0.0" + chalk "^4.1.2" + debug "^4.3.1" + find-up "~5.0.0" + getenv "^1.0.0" + glob "7.1.6" + resolve-from "^5.0.0" + semver "^7.5.3" + slash "^3.0.0" + slugify "^1.6.6" + xcode "^3.0.1" + xml2js "0.6.0" -"@expo/config@8.1.2", "@expo/config@~8.1.0": - version "8.1.2" - resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.1.2.tgz#7fff28b3acefe39702e9f3ce1c9fd896a52caa80" - integrity sha512-4e7hzPj50mQIlsrzOH6XZ36O094mPfPTIDIH4yv49bWNMc7GFLTofB/lcT+QyxiLaJuC0Wlk9yOLB8DIqmtwug== +"@expo/config-types@^50.0.0", "@expo/config-types@^50.0.0-alpha.1": + version "50.0.0" + resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-50.0.0.tgz#b534d3ec997ec60f8af24f6ad56244c8afc71a0b" + integrity sha512-0kkhIwXRT6EdFDwn+zTg9R2MZIAEYGn1MVkyRohAd+C9cXOb5RA8WLQi7vuxKF9m1SMtNAUrf0pO+ENK0+/KSw== + +"@expo/config@8.5.2": + version "8.5.2" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.5.2.tgz#4a0de82279337a37b5f1f0958711fe56e8ea31c2" + integrity sha512-UYy9kWxjQAEDwlX7gwLk0+8IxGPcHJMLnYRYtR5C5xGIV+ML7tCA+qFz1p4gHZRPkJD+k7iZyqBtyqt8xm+zXw== dependencies: "@babel/code-frame" "~7.10.4" - "@expo/config-plugins" "~7.2.0" - "@expo/config-types" "^49.0.0-alpha.1" + "@expo/config-plugins" "~7.8.2" + "@expo/config-types" "^50.0.0" "@expo/json-file" "^8.2.37" getenv "^1.0.0" glob "7.1.6" @@ -2868,26 +3036,22 @@ slugify "^1.3.4" sucrase "^3.20.0" -"@expo/dev-server@0.5.5": - version "0.5.5" - resolved "https://registry.yarnpkg.com/@expo/dev-server/-/dev-server-0.5.5.tgz#33f9065e0cf5f36ac61944a92d11390cc71b7035" - integrity sha512-t0fT8xH1exwYsH5hh7bAt85VF+gXxg24qrbny2rR/iKoPTWFCd2JNQV8pvfLg51hvrywQ3YCBuT3lU1w7aZxFA== +"@expo/config@~8.5.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.5.0.tgz#c618e016c3272335e33fec02fb7fd67e4dcc3342" + integrity sha512-rBKfPhObtiEnkQiYI6GbNFfRltAKxHJm88OAp7/DJv+ccHnTmq34PEF+sp5yQrwJuFiXz7P/yz50I7ijnb4pUw== dependencies: - "@expo/bunyan" "4.0.0" - "@expo/metro-config" "~0.10.0" - "@expo/osascript" "2.0.33" - "@expo/spawn-async" "^1.5.0" - body-parser "^1.20.1" - chalk "^4.0.0" - connect "^3.7.0" - fs-extra "9.0.0" - is-docker "^2.0.0" - is-wsl "^2.1.1" - node-fetch "^2.6.0" - open "^8.3.0" + "@babel/code-frame" "~7.10.4" + "@expo/config-plugins" "~7.8.0" + "@expo/config-types" "^50.0.0-alpha.1" + "@expo/json-file" "^8.2.37" + getenv "^1.0.0" + glob "7.1.6" + require-from-string "^2.0.2" resolve-from "^5.0.0" - serialize-error "6.0.0" - temp-dir "^2.0.0" + semver "7.5.3" + slugify "^1.3.4" + sucrase "^3.20.0" "@expo/devcert@^1.0.0": version "1.1.0" @@ -2908,10 +3072,10 @@ tmp "^0.0.33" tslib "^2.4.0" -"@expo/env@0.0.5": - version "0.0.5" - resolved "https://registry.yarnpkg.com/@expo/env/-/env-0.0.5.tgz#86526ed5c966fc39b2644341f7a10f4b855e59b8" - integrity sha512-UXuKAqyXfhMQC3gP0OyjXmFX08Z1fkVWiGBN7bYzfoX8LHatjeHrDtI6w5nDvd8XPxPvmqaZoEDw1lW3+dz3oQ== +"@expo/env@~0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@expo/env/-/env-0.2.0.tgz#59964a52b92e0582cc8dd0e87bcd8967d019c809" + integrity sha512-NgcU8oxWCL0xEoOmFc6bHmKq0/sYma7AUARgas8X9wbXz4tfH9SmKrRntDdez33Yw2tarBsQ14MjZD2iJLj7xA== dependencies: chalk "^4.0.0" debug "^4.3.4" @@ -2919,29 +3083,25 @@ dotenv-expand "~10.0.0" getenv "^1.0.0" +"@expo/fingerprint@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.6.0.tgz#77366934673d4ecea37284109b4dd67f9e6a7487" + integrity sha512-KfpoVRTMwMNJ/Cf5o+Ou8M/Y0EGSTqK+rbi70M2Y0K2qgWNfMJ1gm6sYO9uc8lcTr7YSYM1Rme3dk7QXhpScNA== + dependencies: + "@expo/spawn-async" "^1.5.0" + chalk "^4.1.2" + debug "^4.3.4" + find-up "^5.0.0" + minimatch "^3.0.4" + p-limit "^3.1.0" + resolve-from "^5.0.0" + "@expo/html-elements@^0.4.2": version "0.4.3" resolved "https://registry.yarnpkg.com/@expo/html-elements/-/html-elements-0.4.3.tgz#32b4ca05dd13582164ed1be34ae87e22adfd1d5b" integrity sha512-UwEEdnpyhUEIDe/AkFSBUmCuwcknjAuu73fd5L9Rm/BbHczYXCrtyZmzCNVBsAiHhwUjmhNWzFlr9cAkp/sxIA== -"@expo/image-utils@0.3.22": - version "0.3.22" - resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.3.22.tgz#3a45fb2e268d20fcc761c87bca3aca7fd8e24260" - integrity sha512-uzq+RERAtkWypOFOLssFnXXqEqKjNj9eXN7e97d/EXUAojNcLDoXc0sL+F5B1I4qtlsnhX01kcpoIBBZD8wZNQ== - dependencies: - "@expo/spawn-async" "1.5.0" - chalk "^4.0.0" - fs-extra "9.0.0" - getenv "^1.0.0" - jimp-compact "0.16.1" - mime "^2.4.4" - node-fetch "^2.6.0" - parse-png "^2.1.0" - resolve-from "^5.0.0" - semver "7.3.2" - tempy "0.3.0" - -"@expo/image-utils@0.3.23", "@expo/image-utils@^0.3.18": +"@expo/image-utils@0.3.23": version "0.3.23" resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.3.23.tgz#f14fd7e1f5ff6f8e4911a41e27dd274470665c3f" integrity sha512-nhUVvW0TrRE4jtWzHQl8TR4ox7kcmrc2I0itaeJGjxF5A54uk7avgA0wRt7jP1rdvqQo1Ke1lXyLYREdhN9tPw== @@ -2958,7 +3118,24 @@ semver "7.3.2" tempy "0.3.0" -"@expo/json-file@^8.2.37", "@expo/json-file@~8.2.37": +"@expo/image-utils@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.4.0.tgz#5ddca7de3faaf1682d259ccc6c9cce5f96337578" + integrity sha512-8j0zyNAv9+hGXTo/9N8bhp7qAkUOrXfeprTBfem5JPHZg5kEYok38xMSeiDZlTxn5wF88EqtrDrY350Fp+cuIQ== + dependencies: + "@expo/spawn-async" "1.5.0" + chalk "^4.0.0" + fs-extra "9.0.0" + getenv "^1.0.0" + jimp-compact "0.16.1" + mime "^2.4.4" + node-fetch "^2.6.0" + parse-png "^2.1.0" + resolve-from "^5.0.0" + semver "7.3.2" + tempy "0.3.0" + +"@expo/json-file@^8.2.37": version "8.2.37" resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.2.37.tgz#9c02d3b42134907c69cc0a027b18671b69344049" integrity sha512-YaH6rVg11JoTS2P6LsW7ybS2CULjf40AbnAHw2F1eDPuheprNjARZMnyHFPkKv7GuxCy+B9GPcbOKgc4cgA80Q== @@ -2967,25 +3144,42 @@ json5 "^2.2.2" write-file-atomic "^2.3.0" -"@expo/metro-config@~0.10.0": - version "0.10.7" - resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.10.7.tgz#d1b91baffcb7feb52fc7e2e122450bfc5d01e7c1" - integrity sha512-uACymEiyX0447hI4unt+2cemLQkTZXKvTev936NhtsgVnql45EP0V0pzmo/0H0WlHaAGXgvOBZJl8wFqcJ3CbQ== +"@expo/json-file@~8.3.0": + version "8.3.0" + resolved "https://registry.yarnpkg.com/@expo/json-file/-/json-file-8.3.0.tgz#fc84af77b532a4e9bfb5beafd0e3b7f692b6bd7e" + integrity sha512-yROUeXJXR5goagB8c3muFLCzLmdGOvoPpR5yDNaXrnTp4euNykr9yW0wWhJx4YVRTNOPtGBnEbbJBW+a9q+S6g== dependencies: - "@expo/config" "~8.1.0" - "@expo/env" "0.0.5" - "@expo/json-file" "~8.2.37" + "@babel/code-frame" "~7.10.4" + json5 "^2.2.2" + write-file-atomic "^2.3.0" + +"@expo/metro-config@0.17.1", "@expo/metro-config@~0.17.0": + version "0.17.1" + resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.17.1.tgz#8e1cd7b9f63ea84cc18696807cf23560d010e5d8" + integrity sha512-ZOE0Jx0YTZyPpsGiiE09orGEFgZ5sMrOOFSgOe8zrns925g/uCuEbowyNq38IfQt//3xSl5mW3z0l4rxgi7hHQ== + dependencies: + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.5" + "@babel/parser" "^7.20.0" + "@babel/types" "^7.20.0" + "@expo/config" "~8.5.0" + "@expo/env" "~0.2.0" + "@expo/json-file" "~8.3.0" + "@expo/spawn-async" "^1.7.2" + babel-preset-fbjs "^3.4.0" chalk "^4.1.0" debug "^4.3.2" find-yarn-workspace-root "~2.0.0" + fs-extra "^9.1.0" getenv "^1.0.0" + glob "^7.2.3" jsc-safe-url "^0.2.4" lightningcss "~1.19.0" postcss "~8.4.21" resolve-from "^5.0.0" sucrase "^3.20.0" -"@expo/osascript@2.0.33", "@expo/osascript@^2.0.31": +"@expo/osascript@^2.0.31": version "2.0.33" resolved "https://registry.yarnpkg.com/@expo/osascript/-/osascript-2.0.33.tgz#e9dcc8da54466c11939074aa71a006024ea884b1" integrity sha512-FQinlwHrTlJbntp8a7NAlCKedVXe06Va/0DSLXRO8lZVtgbEMrYYSUZWQNcOlNtc58c2elNph6z9dMOYwSo3JQ== @@ -2993,10 +3187,10 @@ "@expo/spawn-async" "^1.5.0" exec-async "^2.2.0" -"@expo/package-manager@~1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-1.0.2.tgz#6c5fd0ee9b3d28c5523b2484c62c6c7b0c8dbf89" - integrity sha512-dlUp6o8qs1mi3/+l3y7cY3oMoqQVVzvH18cUTi6+t4ob8XwTpaeP2SwOP+obwZN29dMg9YzZAv4eQz+mshAbQA== +"@expo/package-manager@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-1.1.2.tgz#e58c9bed4cbb829ebf2cbb80b8542600a6609bd1" + integrity sha512-JI9XzrxB0QVXysyuJ996FPCJGDCYRkbUvgG4QmMTTMFA1T+mv8YzazC3T9C1pHQUAAveVCre1+Pqv0nZXN24Xg== dependencies: "@expo/json-file" "^8.2.37" "@expo/spawn-async" "^1.5.0" @@ -3010,24 +3204,40 @@ split "^1.0.1" sudo-prompt "9.1.1" -"@expo/plist@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@expo/plist/-/plist-0.0.20.tgz#a6b3124438031c02b762bad5a47b70584d3c0072" - integrity sha512-UXQ4LXCfTZ580LDHGJ5q62jSTwJFFJ1GqBu8duQMThiHKWbMJ+gajJh6rsB6EJ3aLUr9wcauxneL5LVRFxwBEA== +"@expo/plist@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@expo/plist/-/plist-0.1.0.tgz#eabc95f951d14e10c87fd0443ee01d567371f058" + integrity sha512-xWD+8vIFif0wKyuqe3fmnmnSouXYucciZXFzS0ZD5OV9eSAS1RGQI5FaGGJ6zxJ4mpdy/4QzbLdBjnYE5vxA0g== dependencies: "@xmldom/xmldom" "~0.7.7" base64-js "^1.2.3" xmlbuilder "^14.0.0" -"@expo/prebuild-config@6.2.6": - version "6.2.6" - resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-6.2.6.tgz#c5b4f8adcba4be00c874d6b24a8267d45c555261" - integrity sha512-uFVvDAm9dPg9p1qpnr4CVnpo2hmkZIL5FQz+VlIdXXJpe7ySh/qTGHtKWY/lWUshQkAJ0nwbKGPztGWdABns/Q== +"@expo/prebuild-config@6.7.0": + version "6.7.0" + resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-6.7.0.tgz#1fdac4ee8e5a864cf0eb95fdffd3a0673c2febad" + integrity sha512-55V9wbtH/d1htj68MM9pEfSHqq61PjO99dCCERdR37iFQS8q6dDblWC0PAMinI4BDOl14YzY7jtmDv9PbXG9tQ== dependencies: - "@expo/config" "~8.1.0" - "@expo/config-plugins" "~7.2.0" - "@expo/config-types" "^49.0.0-alpha.1" - "@expo/image-utils" "0.3.22" + "@expo/config" "~8.5.0" + "@expo/config-plugins" "~7.8.0" + "@expo/config-types" "^50.0.0-alpha.1" + "@expo/image-utils" "^0.4.0" + "@expo/json-file" "^8.2.37" + debug "^4.3.1" + fs-extra "^9.0.0" + resolve-from "^5.0.0" + semver "7.5.3" + xml2js "0.6.0" + +"@expo/prebuild-config@6.7.2": + version "6.7.2" + resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-6.7.2.tgz#a6107394d92ce0105534a0b7e63aa5599b720fdd" + integrity sha512-Z1GyWfl923wU29YQg6Xik4URls4qcIddWA4vLhW6mUgiRhC3HCf1keHEzK5AtWsrga4bH/H+usAY0OltgABW1w== + dependencies: + "@expo/config" "~8.5.0" + "@expo/config-plugins" "~7.8.0" + "@expo/config-types" "^50.0.0-alpha.1" + "@expo/image-utils" "^0.4.0" "@expo/json-file" "^8.2.37" debug "^4.3.1" fs-extra "^9.0.0" @@ -3053,6 +3263,16 @@ resolved "https://registry.yarnpkg.com/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz#d7ebd21b19f1c6b0395e50d78da4416941c57f7c" integrity sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ== +"@expo/server@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@expo/server/-/server-0.3.0.tgz#b16767999382b0f5ea88d86609a5ceabcff1388c" + integrity sha512-5oIqedpLVMnf1LGI9Xd5OOGmK3DjgH9VpuqVN4e/6DwLT05RZJMyI7ylfG6QSy1e44yOgjv242tLyg0e/zdZ+A== + dependencies: + "@remix-run/node" "^1.19.3" + abort-controller "^3.0.0" + debug "^4.3.4" + source-map-support "~0.5.21" + "@expo/spawn-async@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@expo/spawn-async/-/spawn-async-1.5.0.tgz#799827edd8c10ef07eb1a2ff9dcfe081d596a395" @@ -3060,7 +3280,7 @@ dependencies: cross-spawn "^6.0.5" -"@expo/spawn-async@^1.5.0", "@expo/spawn-async@^1.7.0": +"@expo/spawn-async@^1.5.0", "@expo/spawn-async@^1.7.0", "@expo/spawn-async@^1.7.2": version "1.7.2" resolved "https://registry.yarnpkg.com/@expo/spawn-async/-/spawn-async-1.7.2.tgz#fcfe66c3e387245e72154b1a7eae8cada6a47f58" integrity sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew== @@ -3100,10 +3320,10 @@ webpack-dev-server "^4.11.1" webpack-manifest-plugin "^4.1.1" -"@expo/xcpretty@^4.2.1": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@expo/xcpretty/-/xcpretty-4.2.2.tgz#7890f86b017015be8a20242ae74fe6ed4b80a92c" - integrity sha512-Lke/geldJqUV0Dfxg5/QIOugOzdqZ/rQ9yHKSgGbjZtG1uiSqWyFwWvXmrdd3/sIdX33eykGvIcf+OrvvcXVUw== +"@expo/xcpretty@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@expo/xcpretty/-/xcpretty-4.3.0.tgz#d745c2c5ec38fc6acd451112bb05c6ae952a2c3a" + integrity sha512-whBbvHZ2Q10T5TNmN0z5NbO6C9ZDw+XUTu8h6vVMnMzQrbGexc9oaCCZfz+L3Q7TEL5vfr+9L86nY62c3Bsm+g== dependencies: "@babel/code-frame" "7.10.4" chalk "^4.1.0" @@ -3316,6 +3536,18 @@ jest-util "^29.6.3" slash "^3.0.0" +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + "@jest/core@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" @@ -3350,15 +3582,15 @@ slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/core@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.3.tgz#bccee53680762e1bdef2a0038f123cc8d7ba4ab8" - integrity sha512-skV1XrfNxfagmjRUrk2FyN5/2YwIzdWVVBa/orUfbLvQUANXxERq2pTvY0I+FinWHjDKB2HRmpveUiph4X0TJw== +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== dependencies: - "@jest/console" "^29.6.3" - "@jest/reporters" "^29.6.3" - "@jest/test-result" "^29.6.3" - "@jest/transform" "^29.6.3" + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" "@jest/types" "^29.6.3" "@types/node" "*" ansi-escapes "^4.2.1" @@ -3366,21 +3598,21 @@ ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.6.3" - jest-config "^29.6.3" - jest-haste-map "^29.6.3" - jest-message-util "^29.6.3" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" jest-regex-util "^29.6.3" - jest-resolve "^29.6.3" - jest-resolve-dependencies "^29.6.3" - jest-runner "^29.6.3" - jest-runtime "^29.6.3" - jest-snapshot "^29.6.3" - jest-util "^29.6.3" - jest-validate "^29.6.3" - jest-watcher "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" micromatch "^4.0.4" - pretty-format "^29.6.3" + pretty-format "^29.7.0" slash "^3.0.0" strip-ansi "^6.0.0" @@ -3391,6 +3623,13 @@ dependencies: "@jest/types" "^29.6.3" +"@jest/create-cache-key-function@^29.6.3": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz#793be38148fab78e65f40ae30c36785f4ad859f0" + integrity sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA== + dependencies: + "@jest/types" "^29.6.3" + "@jest/environment@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" @@ -3411,6 +3650,16 @@ "@types/node" "*" jest-mock "^29.6.3" +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== + dependencies: + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + "@jest/expect-utils@^29.6.3": version "29.6.3" resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.3.tgz#5ef1a9689fdaa348da837c8be8d1219f56940ea3" @@ -3418,13 +3667,20 @@ dependencies: jest-get-type "^29.6.3" -"@jest/expect@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.3.tgz#d54e1e7134982166f62653add0d4b8262dd72db9" - integrity sha512-Ic08XbI2jlg6rECy+CGwk/8NDa6VE7UmIG6++9OTPAMnQmNGY28hu69Nf629CWv6T7YMODLbONxDFKdmQeI9FA== +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== dependencies: - expect "^29.6.3" - jest-snapshot "^29.6.3" + jest-get-type "^29.6.3" + +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== + dependencies: + expect "^29.7.0" + jest-snapshot "^29.7.0" "@jest/fake-timers@^27.5.1": version "27.5.1" @@ -3450,6 +3706,18 @@ jest-mock "^29.6.3" jest-util "^29.6.3" +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" + "@jest/globals@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" @@ -3459,15 +3727,15 @@ "@jest/types" "^27.5.1" expect "^27.5.1" -"@jest/globals@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.3.tgz#fe9e302bc20683ba8feb683b8804e38a9913b783" - integrity sha512-RB+uI+CZMHntzlnOPlll5x/jgRff3LEPl/td/jzMXiIgR0iIhKq9qm1HLU+EC52NuoVy/1swit/sDGjVn4bc6A== +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== dependencies: - "@jest/environment" "^29.6.3" - "@jest/expect" "^29.6.3" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" "@jest/types" "^29.6.3" - jest-mock "^29.6.3" + jest-mock "^29.7.0" "@jest/reporters@^27.5.1": version "27.5.1" @@ -3500,15 +3768,15 @@ terminal-link "^2.0.0" v8-to-istanbul "^8.1.0" -"@jest/reporters@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.3.tgz#e5071915d74f43e0f49982fa518ca3283a9f4c5a" - integrity sha512-kGz59zMi0GkVjD2CJeYWG9k6cvj7eBqt9aDAqo2rcCLRTYlvQ62Gu/n+tOmJMBHGjzeijjuCENjzTyYBgrtLUw== +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.6.3" - "@jest/test-result" "^29.6.3" - "@jest/transform" "^29.6.3" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" "@jest/types" "^29.6.3" "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" @@ -3522,9 +3790,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.6.3" - jest-util "^29.6.3" - jest-worker "^29.6.3" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -3592,6 +3860,16 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== + dependencies: + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + "@jest/test-sequencer@^27.5.1": version "27.5.1" resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" @@ -3602,14 +3880,14 @@ jest-haste-map "^27.5.1" jest-runtime "^27.5.1" -"@jest/test-sequencer@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.3.tgz#e59f422bc3786d79fac504c16979a5f1b999a932" - integrity sha512-/SmijaAU2TY9ComFGIYa6Z+fmKqQMnqs2Nmwb0P/Z/tROdZ7M0iruES1EaaU9PBf8o9uED5xzaJ3YPFEIcDgAg== +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== dependencies: - "@jest/test-result" "^29.6.3" + "@jest/test-result" "^29.7.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.3" + jest-haste-map "^29.7.0" slash "^3.0.0" "@jest/transform@^27.5.1": @@ -3654,6 +3932,27 @@ slash "^3.0.0" write-file-atomic "^4.0.2" +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" + "@jest/types@^26.6.2": version "26.6.2" resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" @@ -3748,13 +4047,6 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@koale/useworker@^4.0.2": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@koale/useworker/-/useworker-4.0.2.tgz#cb540a2581cd6025307c3ca6685bc60748773e58" - integrity sha512-xPIPADtom8/3/4FLNj7MvNcBM/Z2FleH85Fdx2O869eoKW8+PoEgtSVvoxWjCWMA46Sm9A5/R1TyzNGc+yM0wg== - dependencies: - dequal "^1.0.0" - "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" @@ -4224,10 +4516,10 @@ dependencies: "@babel/runtime" "^7.13.10" -"@react-native-async-storage/async-storage@1.18.2": - version "1.18.2" - resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.18.2.tgz#ec8fd487a0b6c9500b43ece4b8779d1561f12e91" - integrity sha512-dM8AfdoeIxlh+zqgr0o5+vCTPQ0Ru1mrPzONZMsr7ufp5h+6WgNxQNza7t0r5qQ6b04AJqTlBNixTWZxqP649Q== +"@react-native-async-storage/async-storage@1.21.0": + version "1.21.0" + resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.21.0.tgz#d7e370028e228ab84637016ceeb495878b7a44c8" + integrity sha512-JL0w36KuFHFCvnbOXRekqVAUplmOyT/OuCQkogo6X98MtpSaJOKEAeZnYO8JB0U/RIEixZaGI5px73YbRm/oag== dependencies: merge-options "^3.0.4" @@ -4253,117 +4545,104 @@ resolved "https://registry.yarnpkg.com/@react-native-community/blur/-/blur-4.3.2.tgz#185a2c7dd03ba168cc95069bc4742e9505fd6c6c" integrity sha512-0ID+pyZKdC4RdgC7HePxUQ6JmsbNrgz03u+6SgqYpmBoK/rE+7JffqIw7IEsfoKitLEcRNLGekIBsfwCqiEkew== -"@react-native-community/cli-clean@11.3.7": - version "11.3.7" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.3.7.tgz#cb4c2f225f78593412c2d191b55b8570f409a48f" - integrity sha512-twtsv54ohcRyWVzPXL3F9VHGb4Qhn3slqqRs3wEuRzjR7cTmV2TIO2b1VhaqF4HlCgNd+cGuirvLtK2JJyaxMg== +"@react-native-community/cli-clean@12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-12.3.0.tgz#667b32daa58b4d11d5b5ab9eb0a2e216d500c90b" + integrity sha512-iAgLCOWYRGh9ukr+eVQnhkV/OqN3V2EGd/in33Ggn/Mj4uO6+oUncXFwB+yjlyaUNz6FfjudhIz09yYGSF+9sg== dependencies: - "@react-native-community/cli-tools" "11.3.7" + "@react-native-community/cli-tools" "12.3.0" chalk "^4.1.2" execa "^5.0.0" - prompts "^2.4.0" -"@react-native-community/cli-config@11.3.7": - version "11.3.7" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-11.3.7.tgz#4ce95548252ecb094b576369abebf9867c95d277" - integrity sha512-FDBLku9xskS+bx0YFJFLCmUJhEZ4/MMSC9qPYOGBollWYdgE7k/TWI0IeYFmMALAnbCdKQAYP5N29N55Tad8lg== +"@react-native-community/cli-config@12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-12.3.0.tgz#255b4e5391878937a25888f452f50a968d053e3e" + integrity sha512-BrTn5ndFD9uOxO8kxBQ32EpbtOvAsQExGPI7SokdI4Zlve70FziLtTq91LTlTUgMq1InVZn/jJb3VIDk6BTInQ== dependencies: - "@react-native-community/cli-tools" "11.3.7" + "@react-native-community/cli-tools" "12.3.0" chalk "^4.1.2" cosmiconfig "^5.1.0" deepmerge "^4.3.0" glob "^7.1.3" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@11.3.7": - version "11.3.7" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.7.tgz#2147b73313af8de3c9b396406d5d344b904cf2bb" - integrity sha512-aVmKuPKHZENR8SrflkMurZqeyLwbKieHdOvaZCh1Nn/0UC5CxWcyST2DB2XQboZwsvr3/WXKJkSUO+SZ1J9qTQ== +"@react-native-community/cli-debugger-ui@12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.0.tgz#75bbb2082a369b3559e0dffa8bfeebf2a9107e3e" + integrity sha512-w3b0iwjQlk47GhZWHaeTG8kKH09NCMUJO729xSdMBXE8rlbm4kHpKbxQY9qKb6NlfWSJN4noGY+FkNZS2rRwnQ== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@11.3.7": - version "11.3.7" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-11.3.7.tgz#7d5f5b1aea78134bba713fa97795986345ff1344" - integrity sha512-YEHUqWISOHnsl5+NM14KHelKh68Sr5/HeEZvvNdIcvcKtZic3FU7Xd1WcbNdo3gCq5JvzGFfufx02Tabh5zmrg== +"@react-native-community/cli-doctor@12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-12.3.0.tgz#420eb4e80d482f16d431c4df33fbc203862508af" + integrity sha512-BPCwNNesoQMkKsxB08Ayy6URgGQ8Kndv6mMhIvJSNdST3J1+x3ehBHXzG9B9Vfi+DrTKRb8lmEl/b/7VkDlPkA== dependencies: - "@react-native-community/cli-config" "11.3.7" - "@react-native-community/cli-platform-android" "11.3.7" - "@react-native-community/cli-platform-ios" "11.3.7" - "@react-native-community/cli-tools" "11.3.7" + "@react-native-community/cli-config" "12.3.0" + "@react-native-community/cli-platform-android" "12.3.0" + "@react-native-community/cli-platform-ios" "12.3.0" + "@react-native-community/cli-tools" "12.3.0" chalk "^4.1.2" command-exists "^1.2.8" - envinfo "^7.7.2" + deepmerge "^4.3.0" + envinfo "^7.10.0" execa "^5.0.0" hermes-profile-transformer "^0.0.6" ip "^1.1.5" node-stream-zip "^1.9.1" ora "^5.4.1" - prompts "^2.4.0" semver "^7.5.2" strip-ansi "^5.2.0" - sudo-prompt "^9.0.0" wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-hermes@11.3.7": - version "11.3.7" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-11.3.7.tgz#091e730a1f8bace6c3729e8744bad6141002e0e8" - integrity sha512-chkKd8n/xeZkinRvtH6QcYA8rjNOKU3S3Lw/3Psxgx+hAYV0Gyk95qJHTalx7iu+PwjOOqqvCkJo5jCkYLkoqw== +"@react-native-community/cli-hermes@12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-12.3.0.tgz#c302acbfb07e1f4e73e76e3150c32f0e4f54e9ed" + integrity sha512-G6FxpeZBO4AimKZwtWR3dpXRqTvsmEqlIkkxgwthdzn3LbVjDVIXKpVYU9PkR5cnT+KuAUxO0WwthrJ6Nmrrlg== dependencies: - "@react-native-community/cli-platform-android" "11.3.7" - "@react-native-community/cli-tools" "11.3.7" + "@react-native-community/cli-platform-android" "12.3.0" + "@react-native-community/cli-tools" "12.3.0" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" ip "^1.1.5" -"@react-native-community/cli-platform-android@11.3.7": - version "11.3.7" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.7.tgz#7845bc48258b6bb55df208a23b3690647f113995" - integrity sha512-WGtXI/Rm178UQb8bu1TAeFC/RJvYGnbHpULXvE20GkmeJ1HIrMjkagyk6kkY3Ej25JAP2R878gv+TJ/XiRhaEg== +"@react-native-community/cli-platform-android@12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.0.tgz#eafa5fb12ebc25f716aea18cd55039c19fbedca6" + integrity sha512-VU1NZw63+GLU2TnyQ919bEMThpHQ/oMFju9MCfrd3pyPJz4Sn+vc3NfnTDUVA5Z5yfLijFOkHIHr4vo/C9bjnw== dependencies: - "@react-native-community/cli-tools" "11.3.7" + "@react-native-community/cli-tools" "12.3.0" chalk "^4.1.2" execa "^5.0.0" + fast-xml-parser "^4.2.4" glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-ios@11.3.7": - version "11.3.7" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.7.tgz#87478f907634713b7236c77870446a5ca1f35ff1" - integrity sha512-Z/8rseBput49EldX7MogvN6zJlWzZ/4M97s2P+zjS09ZoBU7I0eOKLi0N9wx+95FNBvGQQ/0P62bB9UaFQH2jw== +"@react-native-community/cli-platform-ios@12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.0.tgz#42a9185bb51f35a7eb9c5818b2f0072846945ef5" + integrity sha512-H95Sgt3wT7L8V75V0syFJDtv4YgqK5zbu69ko4yrXGv8dv2EBi6qZP0VMmkqXDamoPm9/U7tDTdbcf26ctnLfg== dependencies: - "@react-native-community/cli-tools" "11.3.7" + "@react-native-community/cli-tools" "12.3.0" chalk "^4.1.2" execa "^5.0.0" fast-xml-parser "^4.0.12" glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-plugin-metro@11.3.7": - version "11.3.7" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.7.tgz#2e8a9deb30b40495c5c1347a1837a824400fa00f" - integrity sha512-0WhgoBVGF1f9jXcuagQmtxpwpfP+2LbLZH4qMyo6OtYLWLG13n2uRep+8tdGzfNzl1bIuUTeE9yZSAdnf9LfYQ== - dependencies: - "@react-native-community/cli-server-api" "11.3.7" - "@react-native-community/cli-tools" "11.3.7" - chalk "^4.1.2" - execa "^5.0.0" - metro "0.76.8" - metro-config "0.76.8" - metro-core "0.76.8" - metro-react-native-babel-transformer "0.76.8" - metro-resolver "0.76.8" - metro-runtime "0.76.8" - readline "^1.3.0" +"@react-native-community/cli-plugin-metro@12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.0.tgz#b4ea8da691d294aee98ccfcd1162bcd958cae834" + integrity sha512-tYNHIYnNmxrBcsqbE2dAnLMzlKI3Cp1p1xUgTrNaOMsGPDN1epzNfa34n6Nps3iwKElSL7Js91CzYNqgTalucA== -"@react-native-community/cli-server-api@11.3.7": - version "11.3.7" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-11.3.7.tgz#2cce54b3331c9c51b9067129c297ab2e9a142216" - integrity sha512-yoFyGdvR3HxCnU6i9vFqKmmSqFzCbnFSnJ29a+5dppgPRetN+d//O8ard/YHqHzToFnXutAFf2neONn23qcJAg== +"@react-native-community/cli-server-api@12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-12.3.0.tgz#0460472d44c121d1db8a98ad1df811200c074fb3" + integrity sha512-Rode8NrdyByC+lBKHHn+/W8Zu0c+DajJvLmOWbe2WY/ECvnwcd9MHHbu92hlT2EQaJ9LbLhGrSbQE3cQy9EOCw== dependencies: - "@react-native-community/cli-debugger-ui" "11.3.7" - "@react-native-community/cli-tools" "11.3.7" + "@react-native-community/cli-debugger-ui" "12.3.0" + "@react-native-community/cli-tools" "12.3.0" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" @@ -4372,10 +4651,10 @@ serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-tools@11.3.7": - version "11.3.7" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-11.3.7.tgz#37aa7efc7b4a1b7077d541f1d7bb11a2ab7b6ff2" - integrity sha512-peyhP4TV6Ps1hk+MBHTFaIR1eI3u+OfGBvr5r0wPwo3FAJvldRinMgcB/TcCcOBXVORu7ba1XYjkubPeYcqAyA== +"@react-native-community/cli-tools@12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-12.3.0.tgz#d459a116e1a95034d3c9a6385069c9e2049fb2a6" + integrity sha512-2GafnCr8D88VdClwnm9KZfkEb+lzVoFdr/7ybqhdeYM0Vnt/tr2N+fM1EQzwI1DpzXiBzTYemw8GjRq+Utcz2Q== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" @@ -4386,41 +4665,43 @@ ora "^5.4.1" semver "^7.5.2" shell-quote "^1.7.3" + sudo-prompt "^9.0.0" -"@react-native-community/cli-types@11.3.7": - version "11.3.7" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-11.3.7.tgz#12fe7cff3da08bd27e11116531b2e001939854b9" - integrity sha512-OhSr/TiDQkXjL5YOs8+hvGSB+HltLn5ZI0+A3DCiMsjUgTTsYh+Z63OtyMpNjrdCEFcg0MpfdU2uxstCS6Dc5g== +"@react-native-community/cli-types@12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-12.3.0.tgz#2d21a1f93aefbdb34a04311d68097aef0388704f" + integrity sha512-MgOkmrXH4zsGxhte4YqKL7d+N8ZNEd3w1wo56MZlhu5WabwCJh87wYpU5T8vyfujFLYOFuFK5jjlcbs8F4/WDw== dependencies: joi "^17.2.1" -"@react-native-community/cli@11.3.7": - version "11.3.7" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.3.7.tgz#564c0054269d8385fa9d301750b2e56dbb5c0cc9" - integrity sha512-Ou8eDlF+yh2rzXeCTpMPYJ2fuqsusNOhmpYPYNQJQ2h6PvaF30kPomflgRILems+EBBuggRtcT+I+1YH4o/q6w== +"@react-native-community/cli@12.3.0": + version "12.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-12.3.0.tgz#c89aacc3973943bf24002255d7d0859b511d88a1" + integrity sha512-XeQohi2E+S2+MMSz97QcEZ/bWpi8sfKiQg35XuYeJkc32Til2g0b97jRpn0/+fV0BInHoG1CQYWwHA7opMsrHg== dependencies: - "@react-native-community/cli-clean" "11.3.7" - "@react-native-community/cli-config" "11.3.7" - "@react-native-community/cli-debugger-ui" "11.3.7" - "@react-native-community/cli-doctor" "11.3.7" - "@react-native-community/cli-hermes" "11.3.7" - "@react-native-community/cli-plugin-metro" "11.3.7" - "@react-native-community/cli-server-api" "11.3.7" - "@react-native-community/cli-tools" "11.3.7" - "@react-native-community/cli-types" "11.3.7" + "@react-native-community/cli-clean" "12.3.0" + "@react-native-community/cli-config" "12.3.0" + "@react-native-community/cli-debugger-ui" "12.3.0" + "@react-native-community/cli-doctor" "12.3.0" + "@react-native-community/cli-hermes" "12.3.0" + "@react-native-community/cli-plugin-metro" "12.3.0" + "@react-native-community/cli-server-api" "12.3.0" + "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-types" "12.3.0" chalk "^4.1.2" commander "^9.4.1" + deepmerge "^4.3.0" execa "^5.0.0" find-up "^4.1.0" fs-extra "^8.1.0" graceful-fs "^4.1.3" - prompts "^2.4.0" + prompts "^2.4.2" semver "^7.5.2" -"@react-native-community/datetimepicker@7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@react-native-community/datetimepicker/-/datetimepicker-7.2.0.tgz#db8c03dbf49bf3c24b06b617a8467d8b05511f62" - integrity sha512-dO1sQy83M/EvnHE2egto05iwXZX7EYn5f/VDMp6afZFRFXRiRo7CzB3VFg4B55gJRJMNBv06NYMLPM3SlpnEGQ== +"@react-native-community/datetimepicker@7.6.1": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@react-native-community/datetimepicker/-/datetimepicker-7.6.1.tgz#98bdee01e3df490526ee1125e438c2030becac1f" + integrity sha512-g66Q2Kd9Uw3eRL7kkrTsGhi+eXxNoPDRFYH6z78sZQuYjPkUQgJDDMUYgBmaBsQx/fKMtemPrCj1ulGmyi0OSw== dependencies: invariant "^2.2.4" @@ -4448,70 +4729,225 @@ resolved "https://registry.yarnpkg.com/@react-native-community/eslint-plugin/-/eslint-plugin-1.3.0.tgz#9e558170c106bbafaa1ef502bd8e6d4651012bf9" integrity sha512-+zDZ20NUnSWghj7Ku5aFphMzuM9JulqCW+aPXT6IfIXFbb8tzYTTOSeRFOtuekJ99ibW2fUCSsjuKNlwDIbHFg== -"@react-native-masked-view/masked-view@^0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@react-native-masked-view/masked-view/-/masked-view-0.3.1.tgz#5bd76f17004a6ccbcec03856893777ee91f23d29" - integrity sha512-uVm8U6nwFIlUd1iDIB5cS+lDadApKR+l8k4k84d9hn+GN4lzAIJhUZ9syYX7c022MxNgAlbxoFLt0pqKoyaAGg== +"@react-native-masked-view/masked-view@0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@react-native-masked-view/masked-view/-/masked-view-0.3.0.tgz#bd29fae18d148a685331910a3c7b766ce87eafcc" + integrity sha512-qLyoObcjzrkpNcoJjXquUePXfL1dXjHtuv+yX0zZ0Q4kG5yvVqd620+tSh7WbRoHkjpXhFBfLwvGhcWB2I0Lpw== "@react-native-menu/menu@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@react-native-menu/menu/-/menu-0.8.0.tgz#dbf227c2081e5ffd3d2073ee68ecc84cf8639727" integrity sha512-kxiT6ySZsDbBvNWovrKVAfs4AQvAytKIf0f8KQLkVO6eNYMUmONBQPzi6onTTbVujXtZHambo7qr/PcedaR8Tg== -"@react-native-picker/picker@2.4.10": - version "2.4.10" - resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.4.10.tgz#339c7bfc6e1d9a5e934122eaaa7767dc1c5fb725" - integrity sha512-EvAlHmPEPOwvbP6Pjg/gtDV3XJzIjIxr10fXFNlX5r9HeHw582G1Zt2o8FLyB718nOttgj8HYUTGxvhu4N65sQ== +"@react-native-picker/picker@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.5.1.tgz#dfa13d5b97bfbedf1f7e7c608181a82f1d58b351" + integrity sha512-/sADUfQsosMRYtrqqL3ZYZSECRygj0fXtpRLqxJfwuMEoqfvfn40756R6B1alzusVvDRZFI0ari0iQid56hA/Q== "@react-native-picker/picker@^1.8.3": version "1.16.8" resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-1.16.8.tgz#2126ca54d4a5a3e9ea5e3f39ad1e6643f8e4b3d4" integrity sha512-pacdQDX6V6EmjF+HoiIh6u++qx4mTK0WnhgUHRc01B+Qt5eoeUwseBqmqfTSXTx/aHDEd6PiIw7UGvKgFoqgFQ== -"@react-native/assets-registry@^0.72.0": - version "0.72.0" - resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.72.0.tgz#c82a76a1d86ec0c3907be76f7faf97a32bbed05d" - integrity sha512-Im93xRJuHHxb1wniGhBMsxLwcfzdYreSZVQGDoMJgkd6+Iky61LInGEHnQCTN0fKNYF1Dvcofb4uMmE1RQHXHQ== +"@react-native/assets-registry@^0.73.1", "@react-native/assets-registry@~0.73.1": + version "0.73.1" + resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.73.1.tgz#e2a6b73b16c183a270f338dc69c36039b3946e85" + integrity sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg== -"@react-native/codegen@^0.72.7": - version "0.72.7" - resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.72.7.tgz#b6832ce631ac63143024ea094a6b5480a780e589" - integrity sha512-O7xNcGeXGbY+VoqBGNlZ3O05gxfATlwE1Q1qQf5E38dK+tXn5BY4u0jaQ9DPjfE8pBba8g/BYI1N44lynidMtg== +"@react-native/babel-plugin-codegen@*": + version "0.74.0" + resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.0.tgz#01ba90840e23c6d1fbf739f75cce1d0f5be97bfa" + integrity sha512-xAM/eVSb5LBkKue3bDZgt76bdsGGzKeF/iEzUNbDTwRQrB3Q5GoceGNM/zVlF+z1xGAkr3jhL+ZyITZGSoIlgw== + dependencies: + "@react-native/codegen" "*" + +"@react-native/babel-preset@*": + version "0.74.0" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.74.0.tgz#1d933f7737549a6c54f8c808c3ccb452be5f7cbb" + integrity sha512-k+1aaYQeLn+GBmGA5Qs3NKI8uzhLvRRMML+pB/+43ZL6DvCklbuJ5KO5oqRRpF3KZ2t/VKUqqSichpXfFrXGjg== + dependencies: + "@babel/core" "^7.20.0" + "@babel/plugin-proposal-async-generator-functions" "^7.0.0" + "@babel/plugin-proposal-class-properties" "^7.18.0" + "@babel/plugin-proposal-export-default-from" "^7.0.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" + "@babel/plugin-proposal-numeric-separator" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.20.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-default-from" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.18.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" + "@babel/plugin-syntax-optional-chaining" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-to-generator" "^7.20.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.0.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.20.0" + "@babel/plugin-transform-flow-strip-types" "^7.20.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.11" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + "@babel/plugin-transform-runtime" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-sticky-regex" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.5.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + "@babel/template" "^7.0.0" + "@react-native/babel-plugin-codegen" "*" + babel-plugin-transform-flow-enums "^0.0.2" + react-refresh "^0.14.0" + +"@react-native/babel-preset@^0.73.18": + version "0.73.18" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.18.tgz#0ff24ba35102d9ac071de8ab10706ccaee5e3e6f" + integrity sha512-FzPasmazoX9WZnmwotk6SK9ydiExdqS4Xt5VaukPoY9u8u3AUUODzqjTsWSOxjFD9eRF3Knyg5H8JMDe6pj5wQ== + dependencies: + "@babel/core" "^7.20.0" + "@babel/plugin-proposal-async-generator-functions" "^7.0.0" + "@babel/plugin-proposal-class-properties" "^7.18.0" + "@babel/plugin-proposal-export-default-from" "^7.0.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" + "@babel/plugin-proposal-numeric-separator" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.20.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-default-from" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.18.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" + "@babel/plugin-syntax-optional-chaining" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-to-generator" "^7.20.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.0.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.20.0" + "@babel/plugin-transform-flow-strip-types" "^7.20.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.11" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + "@babel/plugin-transform-runtime" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-sticky-regex" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.5.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + "@babel/template" "^7.0.0" + "@react-native/babel-plugin-codegen" "*" + babel-plugin-transform-flow-enums "^0.0.2" + react-refresh "^0.14.0" + +"@react-native/codegen@*", "@react-native/codegen@^0.73.2": + version "0.73.2" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.73.2.tgz#58af4e4c3098f0e6338e88ec64412c014dd51519" + integrity sha512-lfy8S7umhE3QLQG5ViC4wg5N1Z+E6RnaeIw8w1voroQsXXGPB72IBozh8dAHR3+ceTxIU0KX3A8OpJI8e1+HpQ== dependencies: "@babel/parser" "^7.20.0" flow-parser "^0.206.0" + glob "^7.1.1" + invariant "^2.2.4" jscodeshift "^0.14.0" + mkdirp "^0.5.1" nullthrows "^1.1.1" -"@react-native/gradle-plugin@^0.72.11": - version "0.72.11" - resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.72.11.tgz#c063ef12778706611de7a1e42b74b14d9405fb9f" - integrity sha512-P9iRnxiR2w7EHcZ0mJ+fmbPzMby77ZzV6y9sJI3lVLJzF7TLSdbwcQyD3lwMsiL+q5lKUHoZJS4sYmih+P2HXw== +"@react-native/community-cli-plugin@0.73.11": + version "0.73.11" + resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.11.tgz#8826cb81bb794408202e1ce7d87e45710eff1a9f" + integrity sha512-s0bprwljKS1Al8wOKathDDmRyF+70CcNE2G/aqZ7+L0NoOE0Uxxx/5P2BxlM2Mfht7O33B4SeMNiPdE/FqIubQ== + dependencies: + "@react-native-community/cli-server-api" "12.3.0" + "@react-native-community/cli-tools" "12.3.0" + "@react-native/dev-middleware" "^0.73.6" + "@react-native/metro-babel-transformer" "^0.73.12" + chalk "^4.0.0" + execa "^5.1.1" + metro "^0.80.0" + metro-config "^0.80.0" + metro-core "^0.80.0" + node-fetch "^2.2.0" + readline "^1.3.0" -"@react-native/js-polyfills@^0.72.1": - version "0.72.1" - resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.72.1.tgz#905343ef0c51256f128256330fccbdb35b922291" - integrity sha512-cRPZh2rBswFnGt5X5EUEPs0r+pAsXxYsifv/fgy9ZLQokuT52bPH+9xjDR+7TafRua5CttGW83wP4TntRcWNDA== +"@react-native/debugger-frontend@^0.73.3": + version "0.73.3" + resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.73.3.tgz#033757614d2ada994c68a1deae78c1dd2ad33c2b" + integrity sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw== + +"@react-native/dev-middleware@^0.73.6": + version "0.73.6" + resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.73.6.tgz#19ee210fddc3abb8eeb3da5f98711719ad032323" + integrity sha512-9SD7gIso+hO1Jy1Y/Glbd+JWQwyH7Xjnwebtkxdm5TMB51LQPjaGtMcwEigbIZyAtvoaDGmhWmudwbKpDlS+gA== + dependencies: + "@isaacs/ttlcache" "^1.4.1" + "@react-native/debugger-frontend" "^0.73.3" + chrome-launcher "^0.15.2" + chromium-edge-launcher "^1.0.0" + connect "^3.6.5" + debug "^2.2.0" + node-fetch "^2.2.0" + open "^7.0.3" + serve-static "^1.13.1" + temp-dir "^2.0.0" + +"@react-native/gradle-plugin@^0.73.4": + version "0.73.4" + resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.73.4.tgz#aa55784a8c2b471aa89934db38c090d331baf23b" + integrity sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg== + +"@react-native/js-polyfills@^0.73.1": + version "0.73.1" + resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz#730b0a7aaab947ae6f8e5aa9d995e788977191ed" + integrity sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g== + +"@react-native/metro-babel-transformer@^0.73.12": + version "0.73.12" + resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.12.tgz#6b9c391285a4e376ea4c7bc42667bed015fdeb7c" + integrity sha512-VmxN5aaoOprzDzUR+8c3XYhG0FoMOO6n0ToylCW6EeZCuf5RTY7HWVOhacabGoB1mHrWzJ0wWEsqX+eD4iFxoA== + dependencies: + "@babel/core" "^7.20.0" + "@react-native/babel-preset" "*" + babel-preset-fbjs "^3.4.0" + hermes-parser "0.15.0" + nullthrows "^1.1.1" "@react-native/normalize-color@^2.0.0", "@react-native/normalize-color@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91" integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA== -"@react-native/normalize-colors@*": - version "0.73.0" - resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.73.0.tgz#23e15cf2a2b73ac7e5e6df8d5b86b173cfb35a3f" - integrity sha512-EmSCmJ0djeMJadeFsms6Pl/R85i9xSJMc+tyJu/GEMkKXBVyYQyqanK4RHFU0v8MO90OWj+SiFXjCkKYiJ6mkg== +"@react-native/normalize-colors@^0.73.0", "@react-native/normalize-colors@^0.73.2": + version "0.73.2" + resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.73.2.tgz#cc8e48fbae2bbfff53e12f209369e8d2e4cf34ec" + integrity sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w== -"@react-native/normalize-colors@^0.72.0": - version "0.72.0" - resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.72.0.tgz#14294b7ed3c1d92176d2a00df48456e8d7d62212" - integrity sha512-285lfdqSXaqKuBbbtP9qL2tDrfxdOFtIMvkKadtleRQkdOxx+uzGvFr82KHmc/sSiMtfXGp7JnFYWVh4sFl7Yw== +"@react-native/typescript-config@^0.74.0": + version "0.74.0" + resolved "https://registry.yarnpkg.com/@react-native/typescript-config/-/typescript-config-0.74.0.tgz#cb2cb58e4e424593c4ff5859e50d24dd54b14a63" + integrity sha512-Nt7AkbuLXIfoWmUrlTp06UTUj6LrMhwJhf/ReEHVpiaVJRjuqfjmwelvW/6dGSJjPFtYvziC+iaLLeyv2oBV7w== -"@react-native/virtualized-lists@^0.72.8": - version "0.72.8" - resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.72.8.tgz#a2c6a91ea0f1d40eb5a122fb063daedb92ed1dc3" - integrity sha512-J3Q4Bkuo99k7mu+jPS9gSUSgq+lLRSI/+ahXNwV92XgJ/8UgOTxu2LPwhJnBk/sQKxq7E8WkZBnBiozukQMqrw== +"@react-native/virtualized-lists@^0.73.4": + version "0.73.4" + resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.73.4.tgz#640e594775806f63685435b5d9c3d05c378ccd8c" + integrity sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog== dependencies: invariant "^2.2.4" nullthrows "^1.1.1" @@ -4607,6 +5043,81 @@ dependencies: type-fest "^2.19.0" +"@remix-run/node@^1.19.3": + version "1.19.3" + resolved "https://registry.yarnpkg.com/@remix-run/node/-/node-1.19.3.tgz#d27e2f742fc45379525cb3fca466a883ca06d6c9" + integrity sha512-z5qrVL65xLXIUpU4mkR4MKlMeKARLepgHAk4W5YY3IBXOreRqOGUC70POViYmY7x38c2Ia1NwqL80H+0h7jbMw== + dependencies: + "@remix-run/server-runtime" "1.19.3" + "@remix-run/web-fetch" "^4.3.6" + "@remix-run/web-file" "^3.0.3" + "@remix-run/web-stream" "^1.0.4" + "@web3-storage/multipart-parser" "^1.0.0" + abort-controller "^3.0.0" + cookie-signature "^1.1.0" + source-map-support "^0.5.21" + stream-slice "^0.1.2" + +"@remix-run/router@1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.7.2.tgz#cba1cf0a04bc04cb66027c51fa600e9cbc388bc8" + integrity sha512-7Lcn7IqGMV+vizMPoEl5F0XDshcdDYtMI6uJLQdQz5CfZAwy3vvGKYSUk789qndt5dEC4HfSjviSYlSoHGL2+A== + +"@remix-run/server-runtime@1.19.3": + version "1.19.3" + resolved "https://registry.yarnpkg.com/@remix-run/server-runtime/-/server-runtime-1.19.3.tgz#206b55337c266c5bc254878f8ff3cd5677cc60fb" + integrity sha512-KzQ+htUsKqpBgKE2tWo7kIIGy3MyHP58Io/itUPvV+weDjApwr9tQr9PZDPA3yAY6rAzLax7BU0NMSYCXWFY5A== + dependencies: + "@remix-run/router" "1.7.2" + "@types/cookie" "^0.4.1" + "@web3-storage/multipart-parser" "^1.0.0" + cookie "^0.4.1" + set-cookie-parser "^2.4.8" + source-map "^0.7.3" + +"@remix-run/web-blob@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@remix-run/web-blob/-/web-blob-3.1.0.tgz#e0c669934c1eb6028960047e57a13ed38bbfb434" + integrity sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g== + dependencies: + "@remix-run/web-stream" "^1.1.0" + web-encoding "1.1.5" + +"@remix-run/web-fetch@^4.3.6": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@remix-run/web-fetch/-/web-fetch-4.4.2.tgz#ce7aedef72cc26e15060e8cf84674029f92809b6" + integrity sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA== + dependencies: + "@remix-run/web-blob" "^3.1.0" + "@remix-run/web-file" "^3.1.0" + "@remix-run/web-form-data" "^3.1.0" + "@remix-run/web-stream" "^1.1.0" + "@web3-storage/multipart-parser" "^1.0.0" + abort-controller "^3.0.0" + data-uri-to-buffer "^3.0.1" + mrmime "^1.0.0" + +"@remix-run/web-file@^3.0.3", "@remix-run/web-file@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@remix-run/web-file/-/web-file-3.1.0.tgz#07219021a2910e90231bc30ca1ce693d0e9d3825" + integrity sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ== + dependencies: + "@remix-run/web-blob" "^3.1.0" + +"@remix-run/web-form-data@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@remix-run/web-form-data/-/web-form-data-3.1.0.tgz#47f9ad8ce8bf1c39ed83eab31e53967fe8e3df6a" + integrity sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A== + dependencies: + web-encoding "1.1.5" + +"@remix-run/web-stream@^1.0.4", "@remix-run/web-stream@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@remix-run/web-stream/-/web-stream-1.1.0.tgz#b93a8f806c2c22204930837c44d81fdedfde079f" + integrity sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA== + dependencies: + web-streams-polyfill "^3.1.1" + "@rollup/plugin-babel@^5.2.0": version "5.3.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" @@ -4779,16 +5290,6 @@ "@sentry/utils" "7.52.1" tslib "^1.9.3" -"@sentry-internal/tracing@7.69.0": - version "7.69.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.69.0.tgz#8d8eb740b72967b6ba3fdc0a5173aa55331b7d35" - integrity sha512-4BgeWZUj9MO6IgfO93C9ocP3+AdngqujF/+zB2rFdUe+y9S6koDyUC7jr9Knds/0Ta72N/0D6PwhgSCpHK8s0Q== - dependencies: - "@sentry/core" "7.69.0" - "@sentry/types" "7.69.0" - "@sentry/utils" "7.69.0" - tslib "^2.4.1 || ^1.9.3" - "@sentry/browser@7.52.0": version "7.52.0" resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.52.0.tgz#55d266c89ed668389ff687e5cc885c27016ea85c" @@ -4813,18 +5314,6 @@ "@sentry/utils" "7.52.1" tslib "^1.9.3" -"@sentry/browser@7.69.0": - version "7.69.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.69.0.tgz#65427c90fb71c1775e2c1e38431efb7f4aec1e34" - integrity sha512-5ls+zu2PrMhHCIIhclKQsWX5u6WH0Ez5/GgrCMZTtZ1d70ukGSRUvpZG9qGf5Cw1ezS1LY+1HCc3whf8x8lyPw== - dependencies: - "@sentry-internal/tracing" "7.69.0" - "@sentry/core" "7.69.0" - "@sentry/replay" "7.69.0" - "@sentry/types" "7.69.0" - "@sentry/utils" "7.69.0" - tslib "^2.4.1 || ^1.9.3" - "@sentry/cli@2.17.5": version "2.17.5" resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.17.5.tgz#d41e24893a843bcd41e14274044a7ddea9332824" @@ -4836,17 +5325,6 @@ proxy-from-env "^1.1.0" which "^2.0.2" -"@sentry/cli@2.20.7": - version "2.20.7" - resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.20.7.tgz#8f7f3f632c330cac6bd2278d820948163f3128a6" - integrity sha512-YaHKEUdsFt59nD8yLvuEGCOZ3/ArirL8GZ/66RkZ8wcD2wbpzOFbzo08Kz4te/Eo3OD5/RdW+1dPaOBgGbrXlA== - dependencies: - https-proxy-agent "^5.0.0" - node-fetch "^2.6.7" - progress "^2.0.3" - proxy-from-env "^1.1.0" - which "^2.0.2" - "@sentry/core@7.52.0": version "7.52.0" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.52.0.tgz#6c820ca48fe2f06bfd6b290044c96de2375f2ad4" @@ -4865,15 +5343,6 @@ "@sentry/utils" "7.52.1" tslib "^1.9.3" -"@sentry/core@7.69.0": - version "7.69.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.69.0.tgz#ebbe01df573f438f8613107020a4e18eb9adca4d" - integrity sha512-V6jvK2lS8bhqZDMFUtvwe2XvNstFQf5A+2LMKCNBOV/NN6eSAAd6THwEpginabjet9dHsNRmMk7WNKvrUfQhZw== - dependencies: - "@sentry/types" "7.69.0" - "@sentry/utils" "7.69.0" - tslib "^2.4.1 || ^1.9.3" - "@sentry/hub@7.52.0": version "7.52.0" resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-7.52.0.tgz#ffc087d58c745d57108862faa0f701b15503dcc2" @@ -4884,16 +5353,6 @@ "@sentry/utils" "7.52.0" tslib "^1.9.3" -"@sentry/hub@7.69.0": - version "7.69.0" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-7.69.0.tgz#3ef3b98e1810b05cb4fb37a861bd700ef592a2a9" - integrity sha512-71TQ7P5de9+cdW1ETGI9wgi2VNqfyWaM3cnUvheXaSjPRBrr6mhwoaSjo+GGsiwx97Ob9DESZEIhdzcLupzkFA== - dependencies: - "@sentry/core" "7.69.0" - "@sentry/types" "7.69.0" - "@sentry/utils" "7.69.0" - tslib "^2.4.1 || ^1.9.3" - "@sentry/integrations@7.52.0": version "7.52.0" resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.52.0.tgz#632aa5e54bdfdab910a24057c2072634a2670409" @@ -4914,30 +5373,6 @@ localforage "^1.8.1" tslib "^1.9.3" -"@sentry/integrations@7.69.0": - version "7.69.0" - resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.69.0.tgz#04c0206d9436ec7b79971e3bde5d6e1e9194595f" - integrity sha512-FEFtFqXuCo9+L7bENZxFpEAlIODwHl6FyW/DwLfniy9jOXHU7BhP/oICLrFE5J7rh1gNY7N/8VlaiQr3hCnS/g== - dependencies: - "@sentry/types" "7.69.0" - "@sentry/utils" "7.69.0" - localforage "^1.8.1" - tslib "^2.4.1 || ^1.9.3" - -"@sentry/react-native@5.10.0": - version "5.10.0" - resolved "https://registry.yarnpkg.com/@sentry/react-native/-/react-native-5.10.0.tgz#b61861276fcb35e69dbe9c4e098ed7c88598f5d9" - integrity sha512-YuEZJ3tW5qZlFGFm2FoAZ9vw1fWnjrhMh1IHxo+nUHP3FvVgGkAd/PmSSbgPr2T3YLOIJNiyDdG031Qi7YvtGA== - dependencies: - "@sentry/browser" "7.69.0" - "@sentry/cli" "2.20.7" - "@sentry/core" "7.69.0" - "@sentry/hub" "7.69.0" - "@sentry/integrations" "7.69.0" - "@sentry/react" "7.69.0" - "@sentry/types" "7.69.0" - "@sentry/utils" "7.69.0" - "@sentry/react-native@5.5.0": version "5.5.0" resolved "https://registry.yarnpkg.com/@sentry/react-native/-/react-native-5.5.0.tgz#b1283f68465b1772ad6059ebba149673cef33f2d" @@ -4974,17 +5409,6 @@ hoist-non-react-statics "^3.3.2" tslib "^1.9.3" -"@sentry/react@7.69.0": - version "7.69.0" - resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.69.0.tgz#b9931ac590d8dad3390a9a03a516f1b1bd75615e" - integrity sha512-J+DciRRVuruf1nMmBOi2VeJkOLGeCb4vTOFmHzWTvRJNByZ0flyo8E/fyROL7+23kBq1YbcVY6IloUlH73hneQ== - dependencies: - "@sentry/browser" "7.69.0" - "@sentry/types" "7.69.0" - "@sentry/utils" "7.69.0" - hoist-non-react-statics "^3.3.2" - tslib "^2.4.1 || ^1.9.3" - "@sentry/replay@7.52.0": version "7.52.0" resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.52.0.tgz#4d78e88282d2c1044ea4b648a68d1b22173e810d" @@ -5003,15 +5427,6 @@ "@sentry/types" "7.52.1" "@sentry/utils" "7.52.1" -"@sentry/replay@7.69.0": - version "7.69.0" - resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.69.0.tgz#d727f96292d2b7c25df022fa53764fd39910fcda" - integrity sha512-oUqWyBPFUgShdVvgJtV65EQH9pVDmoYVQMOu59JI6FHVeL3ald7R5Mvz6GaNLXsirvvhp0yAkcAd2hc5Xi6hDw== - dependencies: - "@sentry/core" "7.69.0" - "@sentry/types" "7.69.0" - "@sentry/utils" "7.69.0" - "@sentry/types@7.52.0": version "7.52.0" resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.52.0.tgz#b7d5372f17355e3991cbe818ad567f3fe277cc6b" @@ -5022,11 +5437,6 @@ resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.52.1.tgz#bcff6d0462d9b9b7b9ec31c0068fe02d44f25da2" integrity sha512-OMbGBPrJsw0iEXwZ2bJUYxewI1IEAU2e1aQGc0O6QW5+6hhCh+8HO8Xl4EymqwejjztuwStkl6G1qhK+Q0/Row== -"@sentry/types@7.69.0": - version "7.69.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.69.0.tgz#012b8d90d270a473cc2a5cf58a56870542739292" - integrity sha512-zPyCox0mzitzU6SIa1KIbNoJAInYDdUpdiA+PoUmMn2hFMH1llGU/cS7f4w/mAsssTlbtlBi72RMnWUCy578bw== - "@sentry/utils@7.52.0": version "7.52.0" resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.52.0.tgz#cacc36d905036ba7084c14965e964fc44239d7f0" @@ -5043,14 +5453,6 @@ "@sentry/types" "7.52.1" tslib "^1.9.3" -"@sentry/utils@7.69.0": - version "7.69.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.69.0.tgz#b7594e4eb2a88b9b25298770b841dd3f81bd2aa4" - integrity sha512-4eBixe5Y+0EGVU95R4NxH3jkkjtkE4/CmSZD4In8SCkWGSauogePtq6hyiLsZuP1QHdpPb9Kt0+zYiBb2LouBA== - dependencies: - "@sentry/types" "7.69.0" - tslib "^2.4.1 || ^1.9.3" - "@sideway/address@^4.1.3": version "4.1.4" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" @@ -6757,6 +7159,11 @@ dependencies: "@types/node" "*" +"@types/cookie@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" + integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== + "@types/elliptic@^6.4.9": version "6.4.18" resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.18.tgz#bc96e26e1ccccbabe8b6f0e409c85898635482e1" @@ -7287,6 +7694,11 @@ "@urql/core" ">=2.3.1" wonka "^4.0.14" +"@web3-storage/multipart-parser@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz#6b69dc2a32a5b207ba43e556c25cc136a56659c4" + integrity sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw== + "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" @@ -7448,7 +7860,7 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -"@zxing/text-encoding@^0.9.0": +"@zxing/text-encoding@0.9.0", "@zxing/text-encoding@^0.9.0": version "0.9.0" resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== @@ -7566,6 +7978,16 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" +ajv@8.11.0: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -7693,16 +8115,16 @@ arg@4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg== +arg@5.0.2, arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -arg@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" - integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== - argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -7916,7 +8338,7 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async@^3.2.2, async@^3.2.3: +async@^3.2.3: version "3.2.4" resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== @@ -8018,7 +8440,7 @@ babel-jest@^27.4.2, babel-jest@^27.5.1: graceful-fs "^4.2.9" slash "^3.0.0" -babel-jest@^29.2.1, babel-jest@^29.4.2, babel-jest@^29.6.3: +babel-jest@^29.2.1: version "29.6.3" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.3.tgz#e62f6c38f3ec8c147244168ee18ef0b919f10348" integrity sha512-1Ne93zZZEy5XmTa4Q+W5+zxBrDpExX8E3iy+xJJ+24ewlfo/T3qHfQJCzi/MMVFmBQDNxtRR/Gfd2dwb/0yrQw== @@ -8031,6 +8453,19 @@ babel-jest@^29.2.1, babel-jest@^29.4.2, babel-jest@^29.6.3: graceful-fs "^4.2.9" slash "^3.0.0" +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== + dependencies: + "@jest/transform" "^29.7.0" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.6.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + babel-loader@^8.2.3, babel-loader@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" @@ -8174,19 +8609,35 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-expo@~9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-9.5.2.tgz#5ed1756c8434ca972d7a940e4f13570a283641df" - integrity sha512-hU1G1TDiikuXV6UDZjPnX+WdbjbtidDiYhftMEVrZQSst45pDPVBWbM41TUKrpJMwv4FypsLzK+378gnMPRVWQ== +babel-preset-expo@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-10.0.0.tgz#f70aeefc05fe8548db83c1125005ef81970b1731" + integrity sha512-oSTKPG5jCTGA6m+j0qUam8ICM+1zRI1IFZ0UgVWzWPs0l7tkM39pwCP/1WE3QiHVl0jhAuskMJrV7ax86VpnEw== dependencies: "@babel/plugin-proposal-decorators" "^7.12.9" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" "@babel/plugin-proposal-object-rest-spread" "^7.12.13" - "@babel/plugin-transform-react-jsx" "^7.12.17" + "@babel/plugin-transform-export-namespace-from" "^7.22.11" + "@babel/plugin-transform-parameters" "^7.22.15" "@babel/preset-env" "^7.20.0" - babel-plugin-module-resolver "^5.0.0" + "@babel/preset-react" "^7.22.15" + "@react-native/babel-preset" "^0.73.18" babel-plugin-react-native-web "~0.18.10" - metro-react-native-babel-preset "0.76.8" + react-refresh "0.14.0" + +babel-preset-expo@~10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-10.0.1.tgz#a0e7ad0119f46e58cb3f0738c3ca0c6e97b69c11" + integrity sha512-uWIGmLfbP3dS5+8nesxaW6mQs41d4iP7X82ZwRdisB/wAhKQmuJM9Y1jQe4006uNYkw6Phf2TT03ykLVro7KuQ== + dependencies: + "@babel/plugin-proposal-decorators" "^7.12.9" + "@babel/plugin-transform-export-namespace-from" "^7.22.11" + "@babel/plugin-transform-object-rest-spread" "^7.12.13" + "@babel/plugin-transform-parameters" "^7.22.15" + "@babel/preset-env" "^7.20.0" + "@babel/preset-react" "^7.22.15" + "@react-native/babel-preset" "^0.73.18" + babel-plugin-react-native-web "~0.18.10" + react-refresh "0.14.0" babel-preset-fbjs@^3.4.0: version "3.4.0" @@ -8274,7 +8725,7 @@ base-64@0.1.0, base-64@^0.1.0: resolved "https://registry.yarnpkg.com/base-64/-/base-64-0.1.0.tgz#780a99c84e7d600260361511c4877613bf24f6bb" integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA== -base64-js@^1.0.2, base64-js@^1.1.2, base64-js@^1.2.3, base64-js@^1.3.1, base64-js@^1.5.1: +base64-js@^1.0.2, base64-js@^1.2.3, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -8378,24 +8829,6 @@ body-parser@1.20.1: type-is "~1.6.18" unpipe "1.0.0" -body-parser@^1.20.1: - version "1.20.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" - integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== - dependencies: - bytes "3.1.2" - content-type "~1.0.5" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - bonjour-service@^1.0.11: version "1.1.1" resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.1.1.tgz#960948fa0e0153f5d26743ab15baf8e33752c135" @@ -8819,11 +9252,33 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== +chrome-launcher@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/chrome-launcher/-/chrome-launcher-0.15.2.tgz#4e6404e32200095fdce7f6a1e1004f9bd36fa5da" + integrity sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ== + dependencies: + "@types/node" "*" + escape-string-regexp "^4.0.0" + is-wsl "^2.2.0" + lighthouse-logger "^1.0.0" + chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== +chromium-edge-launcher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz#0443083074715a13c669530b35df7bfea33b1509" + integrity sha512-pgtgjNKZ7i5U++1g1PWv75umkHvhVTDOQIZ+sjeUX9483S7Y6MUvO0lrd7ShGlQlFHMN4SwKTCq/X8hWrbv2KA== + dependencies: + "@types/node" "*" + escape-string-regexp "^4.0.0" + is-wsl "^2.2.0" + lighthouse-logger "^1.0.0" + mkdirp "^1.0.4" + rimraf "^3.0.2" + ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" @@ -9086,11 +9541,6 @@ commander@^9.4.1: resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== -commander@~2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" - integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA== - common-path-prefix@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" @@ -9106,11 +9556,6 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== -compare-versions@^3.4.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - component-type@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-type/-/component-type-1.2.1.tgz#8a47901700238e4fc32269771230226f24b415a9" @@ -9168,7 +9613,7 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-type@~1.0.4, content-type@~1.0.5: +content-type@~1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== @@ -9188,11 +9633,21 @@ cookie-signature@1.0.6: resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== +cookie-signature@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.1.tgz#790dea2cce64638c7ae04d9fabed193bd7ccf3b4" + integrity sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw== + cookie@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + copy-webpack-plugin@^10.2.0: version "10.2.4" resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz#6c854be3fdaae22025da34b9112ccf81c63308fe" @@ -9277,6 +9732,19 @@ cosmiconfig@^8.0.0: parse-json "^5.2.0" path-type "^4.0.0" +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -9570,6 +10038,11 @@ dash-get@^1.0.2: resolved "https://registry.yarnpkg.com/dash-get/-/dash-get-1.0.2.tgz#4c9e9ad5ef04c4bf9d3c9a451f6f7997298dcc7c" integrity sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ== +data-uri-to-buffer@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" + integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== + data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -9774,25 +10247,20 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -deprecated-react-native-prop-types@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-4.1.0.tgz#8ed03a64c21b7fbdd2d000957b6838d4f38d2c66" - integrity sha512-WfepZHmRbbdTvhcolb8aOKEvQdcmTMn5tKLbqbXmkBvjFjRVWAYqsXk/DBsV8TZxws8SdGHLuHaJrHSQUPRdfw== +deprecated-react-native-prop-types@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-5.0.0.tgz#02a12f090da7bd9e8c3ac53c31cf786a1315d302" + integrity sha512-cIK8KYiiGVOFsKdPMmm1L3tA/Gl+JopXL6F5+C7x39MyPsQYnP57Im/D6bNUzcborD7fcMwiwZqcBdBXXZucYQ== dependencies: - "@react-native/normalize-colors" "*" - invariant "*" - prop-types "*" + "@react-native/normalize-colors" "^0.73.0" + invariant "^2.2.4" + prop-types "^15.8.1" dequal@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dequal/-/dequal-1.0.0.tgz#41c6065e70de738541c82cdbedea5292277a017e" integrity sha512-/Nd1EQbQbI9UbSHrMiKZjFLrXSnU328iQdZKPQf78XQI6C+gutkFUeoHpG5J08Ioa6HeRbRNFpSIclh1xyG0mw== -dequal@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-1.0.1.tgz#dbbf9795ec626e9da8bd68782f4add1d23700d8b" - integrity sha512-Fx8jxibzkJX2aJgyfSdLhr9tlRoTnHKrRJuu2XHlAgKioN2j19/Bcbe0d4mFXYZ3+wpE2KVobUVTfDutcD17xQ== - dequal@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" @@ -10213,7 +10681,12 @@ env-editor@^0.4.1: resolved "https://registry.yarnpkg.com/env-editor/-/env-editor-0.4.2.tgz#4e76568d0bd8f5c2b6d314a9412c8fe9aa3ae861" integrity sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA== -envinfo@^7.7.2, envinfo@^7.7.3: +envinfo@^7.10.0: + version "7.11.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.11.0.tgz#c3793f44284a55ff8c82faf1ffd91bc6478ea01f" + integrity sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg== + +envinfo@^7.7.3: version "7.10.0" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.10.0.tgz#55146e3909cc5fe63c22da63fb15b05aeac35b13" integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== @@ -10886,7 +11359,7 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" -expect@^29.0.0, expect@^29.6.3: +expect@^29.0.0: version "29.6.3" resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.3.tgz#e74b57c35a81fd93ece6b570e371309c53dc4f54" integrity sha512-x1vY4LlEMWUYVZQrFi4ZANXFwqYbJ/JNQspLVvzhW2BNY28aNcXMQH6imBbt+RBf5sVRTodYHXtSP/TLEU0Dxw== @@ -10897,194 +11370,220 @@ expect@^29.0.0, expect@^29.6.3: jest-message-util "^29.6.3" jest-util "^29.6.3" -expo-application@~5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.3.0.tgz#0811f2de69a3a7f521762fd7f8a0a4563276dada" - integrity sha512-XLkaELwmiXW6JjFVkwuiFQaGZoNKAxNAcSJkFdz8s4rCljEwehylbzoPk37QHw3cxqb4v0/2EICtg4C4kpEVCA== - -expo-asset@~8.10.1: - version "8.10.1" - resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-8.10.1.tgz#a7e8cf1c555ab8f844599822cb084fee95a93644" - integrity sha512-5VMTESxgY9GBsspO/esY25SKEa7RyascVkLe/OcL1WgblNFm7xCCEEUIW8VWS1nHJQGYxpMZPr3bEfjMpdWdyA== +expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +expo-application@~5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.8.0.tgz#b82cb98a08f91d61f047f6578e883e0deb9661f2" + integrity sha512-nNQ/ayC4P1ue0ZQSmUlG/K2ZHTPwHyYGsb0QtEmCFUCitsjPKIx4coNvAreZMuELvY7pD1zKr+pdtN/ULnljBA== + +expo-application@~5.8.1: + version "5.8.1" + resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.8.1.tgz#9a8628514a6dbe06d8104ce9e2712977fdbd9589" + integrity sha512-8BRbB69HDjDQ7zwurqZ5/nKp3sN7DLXXjYEvakjf6LaEXwn16V4ClqCxb2KRAeKoWX3ORwKnvqM8F5uz9tfM9A== + +expo-asset@~9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-9.0.1.tgz#85f3affa263a97d012d585819e742218bdb967c6" + integrity sha512-hoCzQ8ga6ZOmkwABQeAIStXmshpK+1oNpGNNeJCJ1QdoU6hlCu6DKnikreLZYr6FQzaQTS3yel86zuRQtwNpaQ== + dependencies: + "@react-native/assets-registry" "~0.73.1" blueimp-md5 "^2.10.0" - expo-constants "~14.4.2" - expo-file-system "~15.4.0" + expo-constants "~15.4.0" + expo-file-system "~16.0.0" invariant "^2.2.4" md5-file "^3.2.3" - path-browserify "^1.0.0" - url-parse "^1.5.9" -expo-build-properties@~0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.8.3.tgz#fbfa156e9619bebda71c66af9a26ebc3490b2365" - integrity sha512-kEDDuAadHqJTkvCGK4fXYHVrePiJO1DjyW95AicmwuGwQvGJydYFbuoauf9ybAU+4UH4arhbce8gHI3ZpIj3Jw== +expo-build-properties@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.11.0.tgz#523e242b5db2f26b9fd397dcf2c841824aed348c" + integrity sha512-14+UjV4uKCI5KsOw/BTL++T3N1OPWnOvLGoF39/o9XjB4t0wqXoSrcEl6ZbtH/b3xzd6dj9pnDDBLWDn/7uKvQ== dependencies: ajv "^8.11.0" semver "^7.5.3" -expo-camera@13.5.1: - version "13.5.1" - resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-13.5.1.tgz#f91b02e85d7dc5c530da931f892807696e3ef5e3" - integrity sha512-NbIx9Z7OqXPB1R3FymfLDoJQnsJeCVs6FztWC9ndCox8JF9iCjiqIzTo7258gdyIFCSJDJOZvrjMOV0CL7IaUA== +expo-camera@~14.0.1: + version "14.0.1" + resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-14.0.1.tgz#d3567566e5f9c1a906b3ec8f66fde1e4c08fc99d" + integrity sha512-72W8T9P+oYloWwFt2/ils15OS5X0R9u1p5vjRRo5fyGhbTA3qkS8UsV1tdSNTCUBcAxXHEXTO+iM4Xzabun8tg== dependencies: - "@koale/useworker" "^4.0.2" invariant "^2.2.4" -expo-constants@~14.4.2: - version "14.4.2" - resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-14.4.2.tgz#cac5e8b524069545739b8d8595ce96cc5be6578c" - integrity sha512-nOB122DOAjk+KrJT69lFQAoYVQGQjFHSigCPVBzVdko9S1xGsfiOH9+X5dygTsZTIlVLpQJDdmZ7ONiv3i+26w== +expo-constants@~15.4.0: + version "15.4.1" + resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-15.4.1.tgz#f76f347cf687b6630e1e3b9a385a4e42771671a4" + integrity sha512-aLAN7HOMRFQ5dVduDLPxSlAhsA5OubDxFeM1uo3CHQoaXZfxyJv6g64zjLsOBzVSEIRmNQZl7+1mc5rujZDU2w== dependencies: - "@expo/config" "~8.1.0" - uuid "^3.3.2" + "@expo/config" "~8.5.0" -expo-dev-client@2.4.7: - version "2.4.7" - resolved "https://registry.yarnpkg.com/expo-dev-client/-/expo-dev-client-2.4.7.tgz#c0d4e96768c0b74615dbab15f54420b4e21ecc19" - integrity sha512-K+xlUHilHg8v6pMEWp87VgnBj34xgsoLJawOWdo4BrbWnpA8ZIiNvX7bx75bT2VuM4jjGabbYPpT8BnHcuo+xA== +expo-constants@~15.4.2: + version "15.4.2" + resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-15.4.2.tgz#e62201d973b9c5bf0686169f77604058597fa425" + integrity sha512-goJ44MsjRkJQbi/w49n7HIsBnp7Caa4mPMDUgTwk07BCUM5yKPb3Ny2/0QsaUcqBNgke2IXxr4OhqDYLd1jWOQ== dependencies: - expo-dev-launcher "2.4.9" - expo-dev-menu "3.1.9" - expo-dev-menu-interface "1.3.0" - expo-manifests "~0.7.0" - expo-updates-interface "~0.10.0" + "@expo/config" "~8.5.0" -expo-dev-launcher@2.4.9: - version "2.4.9" - resolved "https://registry.yarnpkg.com/expo-dev-launcher/-/expo-dev-launcher-2.4.9.tgz#5e56b1d8e5e792b8f6d38f3767c220224a2c977d" - integrity sha512-R4pwcHEYFkm38lgbyHm8+PW/FcKtohpq6YkN0jb95lzJOOUH+G9qPZpnS3oicC8UgfY/S+aUuLbyHcPzMusbWg== +expo-dev-client@~3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/expo-dev-client/-/expo-dev-client-3.3.4.tgz#5c57252023bc5ea5fc0bdd8be1562181b3f535d6" + integrity sha512-6BmxIqxYmJ7YGUehIRoi07mNWNBg+9LcY89zcitCQkYcTBKZwBwAuMyO6QNtTku9Y/XvbntbRNYGoNNuL7rpAw== dependencies: - expo-dev-menu "3.1.9" + expo-dev-launcher "3.6.1" + expo-dev-menu "4.5.2" + expo-dev-menu-interface "1.7.1" + expo-manifests "~0.13.0" + expo-updates-interface "~0.15.1" + +expo-dev-launcher@3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/expo-dev-launcher/-/expo-dev-launcher-3.6.1.tgz#93c37ecf71f9f76e7eb0157a480ced6b627512b2" + integrity sha512-ZT2yzACz/jl+pQ9/abIPNevs9t659//mlHO/kuFF6Z5IaLyVhp69SgU+2xBq0/TIBl+76PinCLTBtCVMkbNcNw== + dependencies: + ajv "8.11.0" + expo-dev-menu "4.5.2" + expo-manifests "~0.13.0" resolve-from "^5.0.0" semver "^7.5.3" -expo-dev-menu-interface@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/expo-dev-menu-interface/-/expo-dev-menu-interface-1.3.0.tgz#51b6be8c6e0ce73e414ac7a545998dfad0dfdb80" - integrity sha512-WtRP7trQ2lizJJTTFXUSGGn1deIeHaYej0sUynvu/uC69VrSP4EeSnYOxbmEO29kuT/MsQBMGu0P/AkMQOqCOg== +expo-dev-menu-interface@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/expo-dev-menu-interface/-/expo-dev-menu-interface-1.7.1.tgz#de48913b0e338671a31dd69bbcf1772e8f2d3439" + integrity sha512-EHerVdLGMhcmlT+4lugzALBzoexLj1KJMakQm5lDvBPWGBwAJ1Tu4frkD1e+XbTun+9zpVhbshMoPqPb6F0Qig== -expo-dev-menu@3.1.9: - version "3.1.9" - resolved "https://registry.yarnpkg.com/expo-dev-menu/-/expo-dev-menu-3.1.9.tgz#407a3e36a3d4b90eaf3d8d12cb7c1e9cc3a8b414" - integrity sha512-mLi8LFyLZ/l2Z0SHz+RnfUKWMGGJ5C0B3HpqFybpcjZHJkHvS0QvUyXqBqqCyWsz/E+W8nnLuAuC4/9+BTunVg== +expo-dev-menu@4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/expo-dev-menu/-/expo-dev-menu-4.5.2.tgz#4c5b242e195330c94839d3741dcc41b842cc1eba" + integrity sha512-Nkbz8ROkAAOXQquvVr7yuv556Vj7E9fGB00mtU+x8OIWVSQi0nVorHYS12oKUDoLNDpA8ayKOwfcroIovAsVSw== dependencies: - expo-dev-menu-interface "1.3.0" + expo-dev-menu-interface "1.7.1" semver "^7.5.3" -expo-device@~5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/expo-device/-/expo-device-5.4.0.tgz#4dc4db4b2265d1f5c9d7c2be6548c375882be437" - integrity sha512-TQxSVPrC6njCbzZ9Cqpc1lGLIjPmO1zBIbqW7CTqBPD1dOIMrgQvt7lZZhkHh3pWzoZznH283sSYqCvy3XcURw== +expo-device@~5.9.1: + version "5.9.1" + resolved "https://registry.yarnpkg.com/expo-device/-/expo-device-5.9.1.tgz#6e0e8688238677c4bc2ab6ca2296a3efd466777d" + integrity sha512-1cFwKj3i+uIZ8YDmMy0inTVs/5d8sobzpiGmPMLxGaspBdTvGHezTD5wzmDKGAdgBiXUgoP/enuF/p+O0oihhA== dependencies: ua-parser-js "^0.7.33" -expo-eas-client@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/expo-eas-client/-/expo-eas-client-0.6.0.tgz#b722dde0de1b8b56701b282a5fdf28d3d3e79ec4" - integrity sha512-FSPy0ThcJBvzEzOZVhpOrYyHgQ8U1jJ4v7u7tr1x0KOVRqyf25APEQZFxxRPn3zAYW0tQ+uDTCbrwNymFqhQfw== +expo-eas-client@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/expo-eas-client/-/expo-eas-client-0.11.0.tgz#0f25aa497849cade7ebef55c0631093a87e58b07" + integrity sha512-99W0MUGe3U4/MY1E9UeJ4uKNI39mN8/sOGA0Le8XC47MTbwbLoVegHR3C5y2fXLwLn7EpfNxAn5nlxYjY3gD2A== -expo-file-system@~15.4.0, expo-file-system@~15.4.3: - version "15.4.3" - resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-15.4.3.tgz#0cb2464c6e663ad8e8a742d5c538ed8ff1013b11" - integrity sha512-HaaCBTUATs2+i7T4jxIvoU9rViAHMvOD2eBaJ1H7xPHlwZlMORjQs7bsNKonR/TQoduxZBJLVZGawvaAJNCH8g== - dependencies: - uuid "^3.4.0" +expo-file-system@~16.0.0: + version "16.0.1" + resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.1.tgz#326b7c2f6e53e1a0eaafc9769578aafb3f9c9f43" + integrity sha512-/U6ufN2wRPgg4m2a9sqbL3dThqQsysT022qulEXWnUTmNaqnzYSk9ihjDWqoqjXLi9slQLsyok5t6CNzhM7HPw== -expo-font@~11.4.0: - version "11.4.0" - resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-11.4.0.tgz#e2d31c0bb76ba3c37c2d84703a49aeafc3afef28" - integrity sha512-nkmezCFD7gR/I6R+e3/ry18uEfF8uYrr6h+PdBJu+3dawoLOpo+wFb/RG9bHUekU1/cPanR58LR7G5MEMKHR2w== +expo-file-system@~16.0.2: + version "16.0.2" + resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.2.tgz#c0f482dd0bea59ea6331abf46ec319bf2ac9e110" + integrity sha512-oqiM3aq4mGugdv6DRH0wjrULWdZFm4EMLgKmR24on/f9ZCDG9VB3waSy+9J3XaDTAXBaB9ta82ACnNzk8KPdMw== + +expo-font@~11.10.0: + version "11.10.0" + resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-11.10.0.tgz#03bd0ad998f0295008572672f35e8018a84ea692" + integrity sha512-yqlsoOKWiYv8aBMFqheHSUKKEY/lrB7zHjzDc60OF1xGa1q8kh7mKQVwSaRMS0G77GEUvvk8Vb/uKw51KY1kGA== dependencies: fontfaceobserver "^2.1.0" -expo-image-loader@~4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/expo-image-loader/-/expo-image-loader-4.4.0.tgz#35909516311aa60fa4bf35aa6eb7624d7f7f788d" - integrity sha512-dq88tiRB8aB1U+O/oJI7IY4VU9Nu2iDjEwR8QDfLtD4xWd5lNGoyic5Vh7911E1qNJFqNMSVIVzOD5l1SQ3A6g== +expo-image-loader@~4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/expo-image-loader/-/expo-image-loader-4.6.0.tgz#ca7d4fdf53125bff2091d3a2c34a3155f10df147" + integrity sha512-RHQTDak7/KyhWUxikn2yNzXL7i2cs16cMp6gEAgkHOjVhoCJQoOJ0Ljrt4cKQ3IowxgCuOrAgSUzGkqs7omj8Q== -expo-image-manipulator@~11.5.0: - version "11.5.0" - resolved "https://registry.yarnpkg.com/expo-image-manipulator/-/expo-image-manipulator-11.5.0.tgz#2a0f4c069dc25722c2c8f0e15c0c42353f1115a4" - integrity sha512-W/mwSIuLyolDDSzIkENvwVoQpe6HJfpcAQbeu3VX3ZcTJrgvORM/tfuCJacCTHQ0iVIB49Txv65CgbtO+3Pd6w== +expo-image-manipulator@^11.8.0: + version "11.8.0" + resolved "https://registry.yarnpkg.com/expo-image-manipulator/-/expo-image-manipulator-11.8.0.tgz#e52351728619e534c949ae4b394af2c7c5d16702" + integrity sha512-ZWVrHnYmwJq6h7auk+ropsxcNi+LyZcPFKQc8oy+JA0SaJosfShvkCm7RADWAunHmfPCmjHrhwPGEu/rs7WG/A== dependencies: - expo-image-loader "~4.4.0" + expo-image-loader "~4.6.0" -expo-image-picker@~14.5.0: - version "14.5.0" - resolved "https://registry.yarnpkg.com/expo-image-picker/-/expo-image-picker-14.5.0.tgz#fdc14c74ad338a6a630f8fc5c81e642d6bea343c" - integrity sha512-9icvfQuWMdNKufFqu+FxenKcfybz9ior+XYQCIl/q5+mpHPo2tKq8I30vu2BjsOJ0Cfo7V4vMeN7a9F/3ooUfQ== +expo-image-picker@~14.7.1: + version "14.7.1" + resolved "https://registry.yarnpkg.com/expo-image-picker/-/expo-image-picker-14.7.1.tgz#c51faff3a3fbffc6ae93d7155370beb1a2d2baea" + integrity sha512-ILQVOJgI3aEzrDmCFGDPtpAepYkn8mot8G7vfQ51BfFdQbzL6N3Wm1fS/ofdWlAZJl/qT2DwaIh5xYmf3SyGZA== dependencies: - expo-image-loader "~4.4.0" + expo-image-loader "~4.6.0" -expo-image@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/expo-image/-/expo-image-1.3.2.tgz#e5051cc728af1d57f5dc1c0d783e7c1dfb6aa8a0" - integrity sha512-5Dm6kPfAOptMpQSJZDaA1M+AGjRJT0b1eLjtWLLpf6Z7gG1SMAFPUNUKaQV4p9H57psqvloDNb5nPIjSdIA1HQ== +expo-image@~1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/expo-image/-/expo-image-1.10.1.tgz#5d9850f5ae39019eae36b255e62e53134bd4aca5" + integrity sha512-NwJt2FS6sZXeP92RpsZxBKSnCPWMdcJ2Q2bXHc8WgOkLLInvRd0yBKAzEusXTZ6+N+RqAcWVojlh3EBbSQhkiA== + dependencies: + "@react-native/assets-registry" "~0.73.1" -expo-json-utils@~0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/expo-json-utils/-/expo-json-utils-0.7.1.tgz#efe315c982113204be46419cbc26d4d9a2af145f" - integrity sha512-L0lyH8diXQtV0q5BLbFlcoxTqPF5im79xDHPhybB0j36xYdm65hjwRJ4yMrPIN5lR18hj48FUZeONiDHRyEvIg== +expo-json-utils@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/expo-json-utils/-/expo-json-utils-0.12.0.tgz#15ad797e9518a6a47eae9b95599e6373e641f8f2" + integrity sha512-xsUsPUZcXZWoT4RY3FhEPYGYvr2iThMNNU5drdmkC/vmkePvqy5kK4aIqlIKzQboXxj7k1dXoNSSLg5mKy8uKg== -expo-keep-awake@~12.3.0: - version "12.3.0" - resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-12.3.0.tgz#c42449ae19c993274ddc43aafa618792b6aec408" - integrity sha512-ujiJg1p9EdCOYS05jh5PtUrfiZnK0yyLy+UewzqrjUqIT8eAGMQbkfOn3C3fHE7AKd5AefSMzJnS3lYZcZYHDw== +expo-keep-awake@~12.8.0: + version "12.8.0" + resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-12.8.0.tgz#c70b6b3a04ecedb3117cd334fe74be846c5a879b" + integrity sha512-KMk9nnOEEI2w4aYr/PMnLT6ryXwmHfsb/baeHX/RSLNBZ4a5JVkNXP+mT66UNnYfXxy3pABruusd7KjeKW+F0A== -expo-localization@~14.3.0: - version "14.3.0" - resolved "https://registry.yarnpkg.com/expo-localization/-/expo-localization-14.3.0.tgz#a7614114079658000f46c7e3029703c8508e0678" - integrity sha512-TML3TeVtwpfuSNwbhBspC9XsGJaa0TWJNh+UaR/35YP9fQiaJfVWUMSrAq84ba6rY1Pm3kti07LV8UUa505oqg== +expo-localization@~14.8.1: + version "14.8.1" + resolved "https://registry.yarnpkg.com/expo-localization/-/expo-localization-14.8.1.tgz#e36cdb13d366f462a9a89c8014ed146d00284adf" + integrity sha512-0Gv7qhgl4HVxXd1omaKPLOUDPw0D9rXnyrptGav2HVbFmAr1334CJKWfRBmW9XhMDknEUhOnh3F3WDPb/6SkLg== dependencies: rtl-detect "^1.0.2" -expo-manifests@~0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/expo-manifests/-/expo-manifests-0.7.2.tgz#77c2d9476e8130fc9ca6d4274fa1a5495d34358e" - integrity sha512-xlhL0XI2zw3foJ0q2Ra4ieBhU0V2yz+Rv6GpVEaaIHFlIC/Dbx+mKrX5dgenZEMERr/MG7sRJaRbAVB2PaAYhA== +expo-manifests@~0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/expo-manifests/-/expo-manifests-0.13.0.tgz#20f163f84a414c6c50b8079e5fd0685d7c5b8ce2" + integrity sha512-N3adl3edSga3jdatLXjXiltdSwQkB1rOI5uyGEE5OwR/bpxc/5OUgHdRZjJgY6jJmVY4BCAiw0RXFoVRBbgE0Q== dependencies: - expo-json-utils "~0.7.0" + "@expo/config" "~8.5.0" + expo-json-utils "~0.12.0" -expo-media-library@~15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/expo-media-library/-/expo-media-library-15.4.1.tgz#577efb13d912e28e9c3fcc5022156e204a59b7e8" - integrity sha512-lpWcT4pynWcE7TyNMUkLFH4YcueCTnq7UOJYRR0vewPEJeQXwRscka7zBtrhA+RSsJda013Q0615K+5lRLt14Q== +expo-media-library@~15.9.1: + version "15.9.1" + resolved "https://registry.yarnpkg.com/expo-media-library/-/expo-media-library-15.9.1.tgz#1eaf5a0c8f51669f6f86d385a8fa411226042216" + integrity sha512-Y29uKFJ3qWwNejIrjoCppXp3OgIFs/RYHWXkF9xey6evpNrUlHoP1WHG2jYAMSrss6aIRVt3tO7EtYUCZxz50Q== -expo-modules-autolinking@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.5.1.tgz#363f90c172769ce12bf56c7be9ca0897adfc7a81" - integrity sha512-yt5a1VCp2BF9CrsO689PCD5oXKP14MMhnOanQMvDn4BDpURYfzAlDVGC5fZrNQKtwn/eq3bcrxIwZ7D9QjVVRg== +expo-modules-autolinking@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.9.0.tgz#5bb11b5e2013b46888c2124d90cbd89f8ee6d91b" + integrity sha512-FVRuclmR7w6FZRXZmTwPdIr9PNCP7FUWMhpzaxbKU/xm7DbNw5ORAv2gaM8t9OaMxYjIAMSNYi0NnmLIinzBKA== dependencies: - "@expo/config" "~8.1.0" + "@expo/config" "~8.5.0" chalk "^4.1.0" commander "^7.2.0" fast-glob "^3.2.5" find-up "^5.0.0" fs-extra "^9.1.0" -expo-modules-core@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.5.10.tgz#b829ef0c65208870555d604d4602bfe84d0e8bb7" - integrity sha512-+m+poHkhjAhRZmngSLUpJJoxhjoExYKSr4J5luy4N+YMlowK31Zewztg4xsPrNRoPvGK/B5uCm0UEzIQvLsNGg== +expo-modules-core@1.11.4: + version "1.11.4" + resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.11.4.tgz#9b5cadc389b4df917a68c931344030bc8297b8af" + integrity sha512-MeDvWvdI3cHJO2VsASXsNYVoou1sdEO/SGBdLh2lxRhNpCLB0IIEZ3uPZwQQ8WBfFyPk4QT7M3XhCdPCKaT21A== dependencies: - compare-versions "^3.4.0" invariant "^2.2.4" -expo-notifications@~0.20.1: - version "0.20.1" - resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.20.1.tgz#55479e3bbde31ab5ccf6f6fd3ed288c6c91101d2" - integrity sha512-Y4Y8IWYj/cSWCP/P167z3GRg//5ZlsznfMXi4ABdWOOpF0RGNpd5N17TxioNivtt7tMhZ/o1vmzFxulhy0nBWg== +expo-notifications@~0.27.2: + version "0.27.2" + resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.27.2.tgz#06e25b20a44ed95be9f64cd01844d52c03ae12db" + integrity sha512-Pp54ek92hkRgNN4k6kH6TUhf18ZQeM5LQ54KyPFHu5IllwcmuniuVYhVIq4hx152OUyf/hBONncxBFuVJ/CMQg== dependencies: - "@expo/image-utils" "^0.3.18" + "@expo/image-utils" "^0.4.0" "@ide/backoff" "^1.0.0" abort-controller "^3.0.0" assert "^2.0.0" badgin "^1.1.5" - expo-application "~5.3.0" - expo-constants "~14.4.2" + expo-application "~5.8.0" + expo-constants "~15.4.0" fs-extra "^9.1.0" - uuid "^3.4.0" expo-pwa@0.0.127: version "0.0.127" @@ -11096,83 +11595,85 @@ expo-pwa@0.0.127: commander "2.20.0" update-check "1.5.3" -expo-sharing@~11.5.0: - version "11.5.0" - resolved "https://registry.yarnpkg.com/expo-sharing/-/expo-sharing-11.5.0.tgz#a8cad65874d882b7f75b12856b4ef55ea9b60a2d" - integrity sha512-uerM5YH1FKDZXfkP9ORebvlMVOPP/AfoYgYBez6a8G9fztNYHnRCA6mgK+3aQmpnb3ltmjnAZC39kH18bTNcVw== +expo-sharing@^11.10.0: + version "11.10.0" + resolved "https://registry.yarnpkg.com/expo-sharing/-/expo-sharing-11.10.0.tgz#0e85197ee4d2634b00fe201e571fbdc64cf83eef" + integrity sha512-/64RyyKlZ25WfnMXa87HbPXhIIqWwNbIku/RaIYAq4SE0XTRC+KTH3v0XFkfDa+SCG/jKsAr1pJ3vQvsNo1sCQ== -expo-splash-screen@~0.20.5: - version "0.20.5" - resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.20.5.tgz#ebeba3e3977606830f74f506ab2cc25042bb7efd" - integrity sha512-nTALYdjHpeEA30rdOWSguxn72ctv8WM8ptuUgpfRgsWyn4i6rwYds/rBXisX69XO5fg+XjHAQqijGx/b28+3tg== +expo-splash-screen@~0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.26.1.tgz#702e0e0163af24defb5f0f076165fe613e1af79b" + integrity sha512-cPxQq1iJbhc1r7WN8QyIs4ISKQOPn5HamJUatcq82jPoZUBrzg1Ofa/55Ivnbi1z2GmQHg6vU/TQZ2cc6cjzbQ== dependencies: - "@expo/prebuild-config" "6.2.6" + "@expo/prebuild-config" "6.7.2" -expo-status-bar@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.6.0.tgz#e79ffdb9a84d2e0ec9a0dc7392d9ab364fefa9cf" - integrity sha512-e//Oi2WPdomMlMDD3skE4+1ZarKCJ/suvcB4Jo/nO427niKug5oppcPNYO+csR6y3ZglGuypS+3pp/hJ+Xp6fQ== +expo-status-bar@~1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.11.1.tgz#a11318741d361048c11db2b16c4364a79a74af30" + integrity sha512-ddQEtCOgYHTLlFUe/yH67dDBIoct5VIULthyT3LRJbEwdpzAgueKsX2FYK02ldh440V87PWKCamh7R9evk1rrg== -expo-structured-headers@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/expo-structured-headers/-/expo-structured-headers-3.3.0.tgz#9f0b041a1d243a22a4a23d9eb19f02ace3c5258c" - integrity sha512-t+h5Zqaukd3Tn97LaWPpibVsmiC/TFP8F+8sAUliwCSMzgcb5TATRs2NcAB+JcIr8EP3JJDyYXJrZle1cjs4mQ== +expo-structured-headers@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/expo-structured-headers/-/expo-structured-headers-3.7.0.tgz#69b752cf43515535eccd30513da428688634a7ec" + integrity sha512-uGcU65gzP4trfmVtntAg3rU/pytTGpCUXN+hQmCwCCvQb9qK1aoCXvVlqlW5zP8SZ04tzF1WXKR+P8RSEn5rSw== -expo-system-ui@~2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/expo-system-ui/-/expo-system-ui-2.4.0.tgz#bf809172726cf661ab4f526129eb427bb5f6e4d4" - integrity sha512-uaBAYeQtFzyE8WVcch2V3G243xvOf7vJkLzrIJ3rJ8NA3uZRmxF0lMMe75oMrAaLVXyr1Z+ZE6UZwh7x49FuIg== +expo-system-ui@~2.9.2: + version "2.9.2" + resolved "https://registry.yarnpkg.com/expo-system-ui/-/expo-system-ui-2.9.2.tgz#f6af7df366f38e31564c49a68cffd94c917459b6" + integrity sha512-oq0JfOKELproQsM0QTv0kTka1ThQhSJY2xfYX/ej+9vbKXrvAXbqsB/ErpO06qUFz6oJU9EzSAtFvnz8qCx2jw== dependencies: "@react-native/normalize-color" "^2.0.0" debug "^4.3.2" -expo-updates-interface@~0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.10.1.tgz#cab075641cd381718ccd9264bf133dc393430a44" - integrity sha512-I6JMR7EgjXwckrydDmrkBEX/iw750dcqpzQVsjznYWfi0HTEOxajLHB90fBFqQkUV5i5s4Fd3hYQ1Cn0oMzUbA== +expo-task-manager@~11.7.0: + version "11.7.0" + resolved "https://registry.yarnpkg.com/expo-task-manager/-/expo-task-manager-11.7.0.tgz#3e87a3c3d941a60d3c4447d837b3ae95be7dcb4b" + integrity sha512-P5pmN3rQgDaIeLyEFMXixuimeRR4IDDU6nDo1kv/Y2JQrgpNKeOHjTbRdzd6iPOeqIa+/3k3tAooU8VYp534tA== + dependencies: + unimodules-app-loader "~4.5.0" -expo-updates@~0.18.12: - version "0.18.12" - resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.18.12.tgz#ac96b674c2c7cf0f5ec57f6b4e0aca3ae9211b5f" - integrity sha512-oJlAVJd/SiQNnNGha+OILc/QA5z6qfrrT2W/eGWWI9POxTka0Z0Obyi/jTkruh72J6wtWbtto65DLJKS93RzdA== +expo-updates-interface@~0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.15.1.tgz#b0242fa7ba05768ada2f0faf83b90aa8b8fa65d7" + integrity sha512-B42oOB0pw4TaPoOGE/yzt9ggwNNxo3PEJRU0kIOurQ8hW5UEUC8cAbGQDYWGbTyNGp8gLBG+T2MCg+YYaCYJUw== + +expo-updates@~0.24.5: + version "0.24.5" + resolved "https://registry.yarnpkg.com/expo-updates/-/expo-updates-0.24.5.tgz#4fb88863a8be35ef6d4dd33d64c0050fa67a4244" + integrity sha512-mTimcPq8RCtiOv828nCgzgsXuph0hywll3XTnZywGHrrWtdKg7rZ5xGN8h+Yd2nKyMOUtymnZBk99Q9T1xrgoQ== dependencies: "@expo/code-signing-certificates" "0.0.5" - "@expo/config" "~8.1.0" - "@expo/config-plugins" "~7.2.0" + "@expo/config" "~8.5.0" + "@expo/config-plugins" "~7.8.0" arg "4.1.0" chalk "^4.1.2" - expo-eas-client "~0.6.0" - expo-manifests "~0.7.0" - expo-structured-headers "~3.3.0" - expo-updates-interface "~0.10.0" + expo-eas-client "~0.11.0" + expo-manifests "~0.13.0" + expo-structured-headers "~3.7.0" + expo-updates-interface "~0.15.1" fbemitter "^3.0.0" resolve-from "^5.0.0" -expo@^49.0.8: - version "49.0.8" - resolved "https://registry.yarnpkg.com/expo/-/expo-49.0.8.tgz#97e2ffcf239326898a3b803394e069f7df7a381e" - integrity sha512-lkTRwMvJP8j7KAHJB+aZqI9dH1hw7j2QE1X9Okpcf+t0deGqH36XqkjUCcU6KYgCOjSnt8fvRm89TJR5Oq0ElA== +expo@^50.0.0-preview.7: + version "50.0.0-preview.7" + resolved "https://registry.yarnpkg.com/expo/-/expo-50.0.0-preview.7.tgz#d4ac7a9aad0a5e9f03a31b8794e186a1af741edc" + integrity sha512-FyoEJVf42Tr1On0IFa0dL7Qs9gnl252ah3e0B8FsU96G7Hi93cDz5Rcn81ezRiO6YIF4nFV3+bh6BHsm/nsA0A== dependencies: "@babel/runtime" "^7.20.0" - "@expo/cli" "0.10.11" - "@expo/config" "8.1.2" - "@expo/config-plugins" "7.2.5" + "@expo/cli" "0.16.5" + "@expo/config" "8.5.2" + "@expo/config-plugins" "7.8.2" + "@expo/metro-config" "0.17.1" "@expo/vector-icons" "^13.0.0" - babel-preset-expo "~9.5.2" - expo-application "~5.3.0" - expo-asset "~8.10.1" - expo-constants "~14.4.2" - expo-file-system "~15.4.3" - expo-font "~11.4.0" - expo-keep-awake "~12.3.0" - expo-modules-autolinking "1.5.1" - expo-modules-core "1.5.10" + babel-preset-expo "~10.0.1" + expo-asset "~9.0.1" + expo-file-system "~16.0.2" + expo-font "~11.10.0" + expo-keep-awake "~12.8.0" + expo-modules-autolinking "1.9.0" + expo-modules-core "1.11.4" fbemitter "^3.0.0" - invariant "^2.2.4" - md5-file "^3.2.3" - node-fetch "^2.6.7" - pretty-format "^26.5.2" - uuid "^3.4.0" + whatwg-url-without-unicode "8.0.0-3" express-async-errors@^3.1.1: version "3.1.1" @@ -11319,6 +11820,13 @@ fast-xml-parser@^4.0.12: dependencies: strnum "^1.0.5" +fast-xml-parser@^4.2.4: + version "4.3.2" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz#761e641260706d6e13251c4ef8e3f5694d4b0d79" + integrity sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg== + dependencies: + strnum "^1.0.5" + fastest-levenshtein@^1.0.12: version "1.0.16" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" @@ -11551,10 +12059,10 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -flow-enums-runtime@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/flow-enums-runtime/-/flow-enums-runtime-0.0.5.tgz#95884bfcc82edaf27eef7e1dd09732331cfbafbc" - integrity sha512-PSZF9ZuaZD03sT9YaIs0FrGJ7lSUw7rHZIex+73UYVXg46eL/wxN5PaVcPJFudE2cJu5f0fezitV5aBkLHPUOQ== +flow-enums-runtime@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz#5bb0cd1b0a3e471330f4d109039b7eba5cb3e787" + integrity sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw== flow-parser@0.*: version "0.215.0" @@ -11878,7 +12386,7 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@^7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -12088,17 +12596,29 @@ he@1.2.0, he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hermes-estree@0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.12.0.tgz#8a289f9aee854854422345e6995a48613bac2ca8" - integrity sha512-+e8xR6SCen0wyAKrMT3UD0ZCCLymKhRgjEB5sS28rKiFir/fXgLoeRilRUssFCILmGHb+OvHDUlhxs0+IEyvQw== +hermes-estree@0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.15.0.tgz#e32f6210ab18c7b705bdcb375f7700f2db15d6ba" + integrity sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ== -hermes-parser@0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.12.0.tgz#114dc26697cfb41a6302c215b859b74224383773" - integrity sha512-d4PHnwq6SnDLhYl3LHNHvOg7nQ6rcI7QVil418REYksv0Mh3cEkHDcuhGxNQ3vgnLSLl4QSvDrFCwQNYdpWlzw== +hermes-estree@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.17.1.tgz#902806a900c185720424ffcf958027821d23c051" + integrity sha512-EdUJms+eRE40OQxysFlPr1mPpvUbbMi7uDAKlScBw8o3tQY22BZ5yx56OYyp1bVaBm+7Cjc3NQz24sJEFXkPxg== + +hermes-parser@0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.15.0.tgz#f611a297c2a2dbbfbce8af8543242254f604c382" + integrity sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q== dependencies: - hermes-estree "0.12.0" + hermes-estree "0.15.0" + +hermes-parser@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.17.1.tgz#8b5cbaff235fed28487812ad718f9c7182d0db0f" + integrity sha512-yErtFLMEL6490fFJPurNn23OI2ciGAtaUfKUg9VPdcde9CmItCjOVQkJt1Xzawv5kuRzeIx0RE2E2Q9TbIgdzA== + dependencies: + hermes-estree "0.17.1" hermes-profile-transformer@^0.0.6: version "0.0.6" @@ -12501,7 +13021,7 @@ interpret@^3.1.1: resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== -invariant@*, invariant@2.2.4, invariant@^2.2.4: +invariant@2.2.4, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -13033,13 +13553,13 @@ jest-changed-files@^27.5.1: execa "^5.0.0" throat "^6.0.1" -jest-changed-files@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.6.3.tgz#97cfdc93f74fb8af2a1acb0b78f836f1fb40c449" - integrity sha512-G5wDnElqLa4/c66ma5PG9eRjE342lIbF6SUnTJi26C3J28Fv2TVY2rOyKB9YGbSA5ogwevgmxc4j4aVjrEK6Yg== +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== dependencies: execa "^5.0.0" - jest-util "^29.6.3" + jest-util "^29.7.0" p-limit "^3.1.0" jest-circus@^27.5.1: @@ -13067,28 +13587,28 @@ jest-circus@^27.5.1: stack-utils "^2.0.3" throat "^6.0.1" -jest-circus@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.3.tgz#c5ac37758bb9e78fd78ebd655ed1d28b220d6fd3" - integrity sha512-p0R5YqZEMnOpHqHLWRSjm2z/0p6RNsrNE/GRRT3eli8QGOAozj6Ys/3Tv+Ej+IfltJoSPwcQ6/hOCRkNlxLLCw== +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== dependencies: - "@jest/environment" "^29.6.3" - "@jest/expect" "^29.6.3" - "@jest/test-result" "^29.6.3" + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^1.0.0" is-generator-fn "^2.0.0" - jest-each "^29.6.3" - jest-matcher-utils "^29.6.3" - jest-message-util "^29.6.3" - jest-runtime "^29.6.3" - jest-snapshot "^29.6.3" - jest-util "^29.6.3" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" p-limit "^3.1.0" - pretty-format "^29.6.3" + pretty-format "^29.7.0" pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" @@ -13111,22 +13631,21 @@ jest-cli@^27.5.1: prompts "^2.0.1" yargs "^16.2.0" -jest-cli@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.3.tgz#1e6520106e9d7443a481ebe07ffed46e1568a51f" - integrity sha512-KuPdXUPXQIf0t6DvmG8MV4QyhcjR1a6ruKl3YL7aGn/AQ8JkROwFkWzEpDIpt11Qy188dHbRm8WjwMsV/4nmnQ== +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== dependencies: - "@jest/core" "^29.6.3" - "@jest/test-result" "^29.6.3" + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" "@jest/types" "^29.6.3" chalk "^4.0.0" + create-jest "^29.7.0" exit "^0.1.2" - graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.6.3" - jest-util "^29.6.3" - jest-validate "^29.6.3" - prompts "^2.0.1" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" yargs "^17.3.1" jest-config@^27.5.1: @@ -13159,31 +13678,31 @@ jest-config@^27.5.1: slash "^3.0.0" strip-json-comments "^3.1.1" -jest-config@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.3.tgz#2d1490005a28291806022f7f95ec3debf55eaaf7" - integrity sha512-nb9bOq2aEqogbyL4F9mLkAeQGAgNt7Uz6U59YtQDIxFPiL7Ejgq0YIrp78oyEHD6H4CIV/k7mFrK7eFDzUJ69w== +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.6.3" + "@jest/test-sequencer" "^29.7.0" "@jest/types" "^29.6.3" - babel-jest "^29.6.3" + babel-jest "^29.7.0" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.6.3" - jest-environment-node "^29.6.3" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" jest-get-type "^29.6.3" jest-regex-util "^29.6.3" - jest-resolve "^29.6.3" - jest-runner "^29.6.3" - jest-util "^29.6.3" - jest-validate "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.6.3" + pretty-format "^29.7.0" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -13207,6 +13726,16 @@ jest-diff@^29.0.1, jest-diff@^29.6.3: jest-get-type "^29.6.3" pretty-format "^29.6.3" +jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + jest-docblock@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" @@ -13214,10 +13743,10 @@ jest-docblock@^27.5.1: dependencies: detect-newline "^3.0.0" -jest-docblock@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.6.3.tgz#293dca5188846c9f7c0c2b1bb33e5b11f21645f2" - integrity sha512-2+H+GOTQBEm2+qFSQ7Ma+BvyV+waiIFxmZF5LdpBsAEjWX8QYjSCa4FrkIYtbfXUJJJnFCYrOtt6TZ+IAiTjBQ== +jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== dependencies: detect-newline "^3.0.0" @@ -13232,16 +13761,16 @@ jest-each@^27.5.1: jest-util "^27.5.1" pretty-format "^27.5.1" -jest-each@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.3.tgz#1956f14f5f0cb8ae0b2e7cabc10bb03ec817c142" - integrity sha512-KoXfJ42k8cqbkfshW7sSHcdfnv5agDdHCPA87ZBdmHP+zJstTJc0ttQaJ/x7zK6noAL76hOuTIJ6ZkQRS5dcyg== +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== dependencies: "@jest/types" "^29.6.3" chalk "^4.0.0" jest-get-type "^29.6.3" - jest-util "^29.6.3" - pretty-format "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" jest-environment-jsdom@^27.5.1: version "27.5.1" @@ -13282,7 +13811,7 @@ jest-environment-node@^27.5.1: jest-mock "^27.5.1" jest-util "^27.5.1" -jest-environment-node@^29.2.1, jest-environment-node@^29.6.3: +jest-environment-node@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.3.tgz#72217a00db2c26755406241c70ad73c334917e28" integrity sha512-PKl7upfPJXMYbWpD+60o4HP86KvFO2c9dZ+Zr6wUzsG5xcPx/65o3ArNgHW5M0RFvLYdW4/aieR4JSooD0a2ew== @@ -13294,12 +13823,25 @@ jest-environment-node@^29.2.1, jest-environment-node@^29.6.3: jest-mock "^29.6.3" jest-util "^29.6.3" -jest-expo@^49.0.0: - version "49.0.0" - resolved "https://registry.yarnpkg.com/jest-expo/-/jest-expo-49.0.0.tgz#d1c91ddb1303f8666de47d45ba52174bff6fb241" - integrity sha512-nglYg6QPYSqCsrsOFiGosQi+m1rrqmYluPbFXNnXNEOrB2MvxMOgQJeWfMHDExHMX1ymLWX+7y8mYo6XVJpBJQ== +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== dependencies: - "@expo/config" "~8.1.0" + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +jest-expo@^50.0.1: + version "50.0.1" + resolved "https://registry.yarnpkg.com/jest-expo/-/jest-expo-50.0.1.tgz#4b180b2a06a2cad49c5c74cf8cbbd4387bb30621" + integrity sha512-osvA63UDLJ/v7MG9UHjU7WJ0oZ0Krq9UhXxm2s6rdOlnt85ARocyMU57RC0T0yzPN47C9Ref45sEeOIxoV4Mzg== + dependencies: + "@expo/config" "~8.5.0" + "@expo/json-file" "^8.2.37" "@jest/create-cache-key-function" "^29.2.1" babel-jest "^29.2.1" find-up "^5.0.0" @@ -13309,6 +13851,7 @@ jest-expo@^49.0.0: json5 "^2.2.3" lodash "^4.17.19" react-test-renderer "18.2.0" + stacktrace-js "^2.0.2" jest-get-type@^27.5.1: version "27.5.1" @@ -13359,6 +13902,25 @@ jest-haste-map@^29.6.3: optionalDependencies: fsevents "^2.3.2" +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== + dependencies: + "@jest/types" "^29.6.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + jest-jasmine2@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" @@ -13400,13 +13962,13 @@ jest-leak-detector@^27.5.1: jest-get-type "^27.5.1" pretty-format "^27.5.1" -jest-leak-detector@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.3.tgz#b9661bc3aec8874e59aff361fa0c6d7cd507ea01" - integrity sha512-0kfbESIHXYdhAdpLsW7xdwmYhLf1BRu4AA118/OxFm0Ho1b2RcTmO4oF6aAMaxpxdxnJ3zve2rgwzNBD4Zbm7Q== +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== dependencies: jest-get-type "^29.6.3" - pretty-format "^29.6.3" + pretty-format "^29.7.0" jest-matcher-utils@^27.5.1: version "27.5.1" @@ -13428,6 +13990,16 @@ jest-matcher-utils@^29.0.1, jest-matcher-utils@^29.6.3: jest-get-type "^29.6.3" pretty-format "^29.6.3" +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + jest-message-util@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" @@ -13473,6 +14045,21 @@ jest-message-util@^29.6.3: slash "^3.0.0" stack-utils "^2.0.3" +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + jest-mock@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" @@ -13490,12 +14077,21 @@ jest-mock@^29.6.3: "@types/node" "*" jest-util "^29.6.3" +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-util "^29.7.0" + jest-pnp-resolver@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== -jest-regex-util@^27.0.6, jest-regex-util@^27.5.1: +jest-regex-util@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== @@ -13519,13 +14115,13 @@ jest-resolve-dependencies@^27.5.1: jest-regex-util "^27.5.1" jest-snapshot "^27.5.1" -jest-resolve-dependencies@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.3.tgz#fc58ac08f9ed992b10d5cfb0bbb1d89b98508ff3" - integrity sha512-iah5nhSPTwtUV7yzpTc9xGg8gP3Ch2VNsuFMsKoCkNCrQSbFtx5KRPemmPJ32AUhTSDqJXB6djPN6zAaUGV53g== +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== dependencies: jest-regex-util "^29.6.3" - jest-snapshot "^29.6.3" + jest-snapshot "^29.7.0" jest-resolve@^27.4.2, jest-resolve@^27.5.1: version "27.5.1" @@ -13543,17 +14139,17 @@ jest-resolve@^27.4.2, jest-resolve@^27.5.1: resolve.exports "^1.1.0" slash "^3.0.0" -jest-resolve@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.3.tgz#e3114e1514973c8f1607387c3042f4d2926f2d60" - integrity sha512-WMXwxhvzDeA/J+9jz1i8ZKGmbw/n+s988EiUvRI4egM+eTn31Hb5v10Re3slG3/qxntkBt2/6GkQVDGu6Bwyhw== +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.6.3" + jest-haste-map "^29.7.0" jest-pnp-resolver "^1.2.2" - jest-util "^29.6.3" - jest-validate "^29.6.3" + jest-util "^29.7.0" + jest-validate "^29.7.0" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" @@ -13585,30 +14181,30 @@ jest-runner@^27.5.1: source-map-support "^0.5.6" throat "^6.0.1" -jest-runner@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.3.tgz#162b1a549c4728265e716d75533b65b4c77e6b22" - integrity sha512-E4zsMhQnjhirFPhDTJgoLMWUrVCDij/KGzWlbslDHGuO8Hl2pVUfOiygMzVZtZq+BzmlqwEr7LYmW+WFLlmX8w== +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== dependencies: - "@jest/console" "^29.6.3" - "@jest/environment" "^29.6.3" - "@jest/test-result" "^29.6.3" - "@jest/transform" "^29.6.3" + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.6.3" - jest-environment-node "^29.6.3" - jest-haste-map "^29.6.3" - jest-leak-detector "^29.6.3" - jest-message-util "^29.6.3" - jest-resolve "^29.6.3" - jest-runtime "^29.6.3" - jest-util "^29.6.3" - jest-watcher "^29.6.3" - jest-worker "^29.6.3" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" p-limit "^3.1.0" source-map-support "0.5.13" @@ -13640,17 +14236,17 @@ jest-runtime@^27.5.1: slash "^3.0.0" strip-bom "^4.0.0" -jest-runtime@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.3.tgz#8bfa29447808419a7b5bed13beb0447a90344c65" - integrity sha512-VM0Z3a9xaqizGpEKwCOIhImkrINYzxgwk8oQAvrmAiXX8LNrJrRjyva30RkuRY0ETAotHLlUcd2moviCA1hgsQ== +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== dependencies: - "@jest/environment" "^29.6.3" - "@jest/fake-timers" "^29.6.3" - "@jest/globals" "^29.6.3" + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" "@jest/source-map" "^29.6.3" - "@jest/test-result" "^29.6.3" - "@jest/transform" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" "@jest/types" "^29.6.3" "@types/node" "*" chalk "^4.0.0" @@ -13658,13 +14254,13 @@ jest-runtime@^29.6.3: collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.6.3" - jest-message-util "^29.6.3" - jest-mock "^29.6.3" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" jest-regex-util "^29.6.3" - jest-resolve "^29.6.3" - jest-snapshot "^29.6.3" - jest-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" slash "^3.0.0" strip-bom "^4.0.0" @@ -13704,33 +14300,33 @@ jest-snapshot@^27.5.1: pretty-format "^27.5.1" semver "^7.3.2" -jest-snapshot@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.3.tgz#2435b50881f7bffdc1a66e66c64a2602c8086281" - integrity sha512-66Iu7H1ojiveQMGFnKecHIZPPPBjZwfQEnF6wxqpxGf57sV3YSUtAb5/sTKM5TPa3OndyxZp1wxHFbmgVhc53w== +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-jsx" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.6.3" - "@jest/transform" "^29.6.3" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" "@jest/types" "^29.6.3" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.6.3" + expect "^29.7.0" graceful-fs "^4.2.9" - jest-diff "^29.6.3" + jest-diff "^29.7.0" jest-get-type "^29.6.3" - jest-matcher-utils "^29.6.3" - jest-message-util "^29.6.3" - jest-util "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" natural-compare "^1.4.0" - pretty-format "^29.6.3" + pretty-format "^29.7.0" semver "^7.5.3" -jest-util@^27.2.0, jest-util@^27.5.1: +jest-util@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== @@ -13766,6 +14362,18 @@ jest-util@^29.6.3: graceful-fs "^4.2.9" picomatch "^2.2.3" +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + jest-validate@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" @@ -13778,19 +14386,7 @@ jest-validate@^27.5.1: leven "^3.1.0" pretty-format "^27.5.1" -jest-validate@^29.2.1, jest-validate@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.3.tgz#a75fca774cfb1c5758c70d035d30a1f9c2784b4d" - integrity sha512-e7KWZcAIX+2W1o3cHfnqpGajdCs1jSM3DkXjGeLSNmCazv1EeI1ggTeK5wdZhF+7N+g44JI2Od3veojoaumlfg== - dependencies: - "@jest/types" "^29.6.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.6.3" - leven "^3.1.0" - pretty-format "^29.6.3" - -jest-validate@^29.4.3: +jest-validate@^29.4.3, jest-validate@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== @@ -13802,6 +14398,18 @@ jest-validate@^29.4.3: leven "^3.1.0" pretty-format "^29.7.0" +jest-validate@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.3.tgz#a75fca774cfb1c5758c70d035d30a1f9c2784b4d" + integrity sha512-e7KWZcAIX+2W1o3cHfnqpGajdCs1jSM3DkXjGeLSNmCazv1EeI1ggTeK5wdZhF+7N+g44JI2Od3veojoaumlfg== + dependencies: + "@jest/types" "^29.6.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^29.6.3" + leven "^3.1.0" + pretty-format "^29.6.3" + jest-watch-select-projects@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/jest-watch-select-projects/-/jest-watch-select-projects-2.0.0.tgz#4373d7e4de862aae28b46e036b669a4c913ea867" @@ -13864,7 +14472,7 @@ jest-watcher@^28.0.0: jest-util "^28.1.3" string-length "^4.0.1" -jest-watcher@^29.0.0, jest-watcher@^29.6.3: +jest-watcher@^29.0.0: version "29.6.3" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.3.tgz#f5089852fc5f57ba1d956ec02d80cf2f6f34156d" integrity sha512-NgpFjZ2U2MKusjidbi4Oiu7tfs+nrgdIxIEVROvH1cFmOei9Uj25lwkMsakqLnH/s0nEcvxO1ck77FiRlcnpZg== @@ -13878,6 +14486,20 @@ jest-watcher@^29.0.0, jest-watcher@^29.6.3: jest-util "^29.6.3" string-length "^4.0.1" +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== + dependencies: + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.13.1" + jest-util "^29.7.0" + string-length "^4.0.1" + jest-worker@^26.2.1: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" @@ -13887,7 +14509,7 @@ jest-worker@^26.2.1: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^27.0.2, jest-worker@^27.2.0, jest-worker@^27.4.5, jest-worker@^27.5.1: +jest-worker@^27.0.2, jest-worker@^27.4.5, jest-worker@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== @@ -13915,6 +14537,16 @@ jest-worker@^29.6.3: merge-stream "^2.0.0" supports-color "^8.0.0" +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + jest@^27.4.3: version "27.5.1" resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" @@ -13924,15 +14556,15 @@ jest@^27.4.3: import-local "^3.0.2" jest-cli "^27.5.1" -jest@^29.4.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.3.tgz#118cf081d440d31b21989f61bfcd8b7797ca6a01" - integrity sha512-alueLuoPCDNHFcFGmgETR4KpQ+0ff3qVaiJwxQM4B5sC0CvXcgg4PEi7xrDkxuItDmdz/FVc7SSit4KEu8GRvw== +jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== dependencies: - "@jest/core" "^29.6.3" + "@jest/core" "^29.7.0" "@jest/types" "^29.6.3" import-local "^3.0.2" - jest-cli "^29.6.3" + jest-cli "^29.7.0" jimp-compact@0.16.1: version "0.16.1" @@ -14313,6 +14945,14 @@ lie@3.1.1: dependencies: immediate "~3.0.5" +lighthouse-logger@^1.0.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz#aef90f9e97cd81db367c7634292ee22079280aaa" + integrity sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g== + dependencies: + debug "^2.6.9" + marky "^1.2.2" + lightningcss-darwin-arm64@1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz#56ab071e932f845dbb7667f44f5b78441175a343" @@ -14687,6 +15327,11 @@ markdown-it@^13.0.1: mdurl "^1.0.1" uc.micro "^1.0.5" +marky@^1.2.2: + version "1.2.5" + resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.5.tgz#55796b688cbd72390d2d399eaaf1832c9413e3c0" + integrity sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q== + matchmediaquery@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/matchmediaquery/-/matchmediaquery-0.3.1.tgz#8247edc47e499ebb7c58f62a9ff9ccf5b815c6d7" @@ -14793,62 +15438,60 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -metro-babel-transformer@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.8.tgz#5efd1027353b36b73706164ef09c290dceac096a" - integrity sha512-Hh6PW34Ug/nShlBGxkwQJSgPGAzSJ9FwQXhUImkzdsDgVu6zj5bx258J8cJVSandjNoQ8nbaHK6CaHlnbZKbyA== +metro-babel-transformer@0.80.1: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.80.1.tgz#4c0bf77c312313c88fa677aab33e20e93fb383db" + integrity sha512-8mFluLGyOKzhedSAFANCe1cyT2fBlt1+tl0dqlcJI6OCP/V0I22bNFlyogWzseOjVTd3c0iEAbRXioZOUGOMzQ== dependencies: "@babel/core" "^7.20.0" - hermes-parser "0.12.0" + hermes-parser "0.17.1" nullthrows "^1.1.1" -metro-cache-key@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.76.8.tgz#8a0a5e991c06f56fcc584acadacb313c312bdc16" - integrity sha512-buKQ5xentPig9G6T37Ww/R/bC+/V1MA5xU/D8zjnhlelsrPG6w6LtHUS61ID3zZcMZqYaELWk5UIadIdDsaaLw== +metro-cache-key@0.80.1: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.80.1.tgz#66cf08fb5f19e26fdd7564635b12cdfb8df199b5" + integrity sha512-Hj2CWFVy11dEa7iNoy2fI14kD6DiFUD7houGTnFy9esCAm3y/hedciMXg4+1eihz+vtfhPWUIu+ZW/sXeIQkFQ== -metro-cache@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.76.8.tgz#296c1c189db2053b89735a8f33dbe82575f53661" - integrity sha512-QBJSJIVNH7Hc/Yo6br/U/qQDUpiUdRgZ2ZBJmvAbmAKp2XDzsapnMwK/3BGj8JNWJF7OLrqrYHsRsukSbUBpvQ== +metro-cache@0.80.1: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.80.1.tgz#3edf8dcda2b4782dfaf82edd67c56d4e6bc36cbd" + integrity sha512-pAYrlPCnomv7EQi08YSeoeF7YL3/4S3JzNn+nVp8e7AIOekO6Hf9j/GPRKfIQwll+os5bE9qFa++NPPmD59IeQ== dependencies: - metro-core "0.76.8" + metro-core "0.80.1" rimraf "^3.0.2" -metro-config@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.76.8.tgz#20bd5397fcc6096f98d2a813a7cecb38b8af062d" - integrity sha512-SL1lfKB0qGHALcAk2zBqVgQZpazDYvYFGwCK1ikz0S6Y/CM2i2/HwuZN31kpX6z3mqjv/6KvlzaKoTb1otuSAA== +metro-config@0.80.1, metro-config@^0.80.0: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.80.1.tgz#9a0e3359e77e93e781ca22e3be3667d6f00d5090" + integrity sha512-ADbPLfMAe68CJGwu6vM0cXImfME0bauLK8P98mQbiAP6xLYVehCdeXEWSe9plVWhzpPLNemSr1AlTvPTMdl3Bw== dependencies: connect "^3.6.5" cosmiconfig "^5.0.5" - jest-validate "^29.2.1" - metro "0.76.8" - metro-cache "0.76.8" - metro-core "0.76.8" - metro-runtime "0.76.8" + jest-validate "^29.6.3" + metro "0.80.1" + metro-cache "0.80.1" + metro-core "0.80.1" + metro-runtime "0.80.1" -metro-core@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.76.8.tgz#917c8157c63406cb223522835abb8e7c6291dcad" - integrity sha512-sl2QLFI3d1b1XUUGxwzw/KbaXXU/bvFYrSKz6Sg19AdYGWFyzsgZ1VISRIDf+HWm4R/TJXluhWMEkEtZuqi3qA== +metro-core@0.80.1, metro-core@^0.80.0: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.80.1.tgz#3bed22dd2f18e9524c2a45405406873d4f6749c0" + integrity sha512-f2Kav0/467YBG0DGAEX6+EQoYcUK+8vXIrEHQSkxCPXTjFcyppXUt2O6SDHMlL/Z5CGpd4uK1c/byXEfImJJdA== dependencies: lodash.throttle "^4.1.1" - metro-resolver "0.76.8" + metro-resolver "0.80.1" -metro-file-map@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.8.tgz#a1db1185b6c316904ba6b53d628e5d1323991d79" - integrity sha512-A/xP1YNEVwO1SUV9/YYo6/Y1MmzhL4ZnVgcJC3VmHp/BYVOXVStzgVbWv2wILe56IIMkfXU+jpXrGKKYhFyHVw== +metro-file-map@0.80.1: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.80.1.tgz#67d187fc522cba7ce033564fac0c8f12c6fc866f" + integrity sha512-Z00OaxlVx1Ynr3r3bZwgI9RXaimh1evTgofuk5TeYC5LEKWcAVr7QU0cGbjfhXa/kzD8iFFYPbDBENOXc398XQ== dependencies: anymatch "^3.0.3" debug "^2.2.0" fb-watchman "^2.0.0" graceful-fs "^4.2.4" invariant "^2.2.4" - jest-regex-util "^27.0.6" - jest-util "^27.2.0" - jest-worker "^27.2.0" + jest-worker "^29.6.3" micromatch "^4.0.4" node-abort-controller "^3.1.1" nullthrows "^1.1.1" @@ -14856,76 +15499,13 @@ metro-file-map@0.76.8: optionalDependencies: fsevents "^2.3.2" -metro-inspector-proxy@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.8.tgz#6b8678a7461b0b42f913a7881cc9319b4d3cddff" - integrity sha512-Us5o5UEd4Smgn1+TfHX4LvVPoWVo9VsVMn4Ldbk0g5CQx3Gu0ygc/ei2AKPGTwsOZmKxJeACj7yMH2kgxQP/iw== - dependencies: - connect "^3.6.5" - debug "^2.2.0" - node-fetch "^2.2.0" - ws "^7.5.1" - yargs "^17.6.2" - -metro-minify-terser@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.76.8.tgz#915ab4d1419257fc6a0b9fa15827b83fe69814bf" - integrity sha512-Orbvg18qXHCrSj1KbaeSDVYRy/gkro2PC7Fy2tDSH1c9RB4aH8tuMOIXnKJE+1SXxBtjWmQ5Yirwkth2DyyEZA== +metro-minify-terser@0.80.1: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.80.1.tgz#b7f156edf11ab29a0f09ab09f1703036e678fb44" + integrity sha512-LfX3n895J6MsyiQkLz2SYcKVmZA1ag0NfYDyQapdnOd/oZmkdSu5jUWt0IjiohRLqKSnvyDp00OdQDRfhD3S8g== dependencies: terser "^5.15.0" -metro-minify-uglify@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.8.tgz#74745045ea2dd29f8783db483b2fce58385ba695" - integrity sha512-6l8/bEvtVaTSuhG1FqS0+Mc8lZ3Bl4RI8SeRIifVLC21eeSDp4CEBUWSGjpFyUDfi6R5dXzYaFnSgMNyfxADiQ== - dependencies: - uglify-es "^3.1.9" - -metro-react-native-babel-preset@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.8.tgz#7476efae14363cbdfeeec403b4f01d7348e6c048" - integrity sha512-Ptza08GgqzxEdK8apYsjTx2S8WDUlS2ilBlu9DR1CUcHmg4g3kOkFylZroogVAUKtpYQNYwAvdsjmrSdDNtiAg== - dependencies: - "@babel/core" "^7.20.0" - "@babel/plugin-proposal-async-generator-functions" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.18.0" - "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" - "@babel/plugin-proposal-numeric-separator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.20.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.18.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-async-to-generator" "^7.20.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.20.0" - "@babel/plugin-transform-flow-strip-types" "^7.20.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.5.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - babel-plugin-transform-flow-enums "^0.0.2" - react-refresh "^0.4.0" - metro-react-native-babel-preset@^0.73.7: version "0.73.10" resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.10.tgz#304b24bb391537d2c987732cc0a9774be227d3f6" @@ -14970,60 +15550,48 @@ metro-react-native-babel-preset@^0.73.7: "@babel/template" "^7.0.0" react-refresh "^0.4.0" -metro-react-native-babel-transformer@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.8.tgz#c3a98e1f4cd5faf1e21eba8e004b94a90c4db69b" - integrity sha512-3h+LfS1WG1PAzhq8QF0kfXjxuXetbY/lgz8vYMQhgrMMp17WM1DNJD0gjx8tOGYbpbBC1qesJ45KMS4o5TA73A== - dependencies: - "@babel/core" "^7.20.0" - babel-preset-fbjs "^3.4.0" - hermes-parser "0.12.0" - metro-react-native-babel-preset "0.76.8" - nullthrows "^1.1.1" +metro-resolver@0.80.1: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.80.1.tgz#770da0d0b37354cd53b3ae73c14002f01c60d8e7" + integrity sha512-NuVTx+eplveM8mNybsCQ9BrATGw7lXhfEIvCa7gz6eMcKOQ6RBzwUXWMYKehw8KL4eIkNOHzdczAiGTRuhzrQg== -metro-resolver@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.8.tgz#0862755b9b84e26853978322464fb37c6fdad76d" - integrity sha512-KccOqc10vrzS7ZhG2NSnL2dh3uVydarB7nOhjreQ7C4zyWuiW9XpLC4h47KtGQv3Rnv/NDLJYeDqaJ4/+140HQ== - -metro-runtime@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.76.8.tgz#74b2d301a2be5f3bbde91b8f1312106f8ffe50c3" - integrity sha512-XKahvB+iuYJSCr3QqCpROli4B4zASAYpkK+j3a0CJmokxCDNbgyI4Fp88uIL6rNaZfN0Mv35S0b99SdFXIfHjg== +metro-runtime@0.80.1, metro-runtime@^0.80.0: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.80.1.tgz#39835e38a0d283d5753af5b89aee1980dbe9d89c" + integrity sha512-RQ+crdwbC4oUYzWom8USCvJWEfFyIuQAeV0bVcNvbpaaz3Q4imXSINJkjDth37DHnxUlhNhEeAcRG6JQIO1QeA== dependencies: "@babel/runtime" "^7.0.0" - react-refresh "^0.4.0" -metro-source-map@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.8.tgz#f085800152a6ba0b41ca26833874d31ec36c5a53" - integrity sha512-Hh0ncPsHPVf6wXQSqJqB3K9Zbudht4aUtNpNXYXSxH+pteWqGAXnjtPsRAnCsCWl38wL0jYF0rJDdMajUI3BDw== +metro-source-map@0.80.1, metro-source-map@^0.80.0: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.80.1.tgz#979ed445ea716a78ea9b183254d5a66b7e9d6949" + integrity sha512-RoVaBdS44H68WY3vaO+s9/wshypPy8gKgcbND+A4FRxVsKM3+PI2pRoaAk4lTshgbmmXUuBZADzXdCz4F2JmnQ== dependencies: "@babel/traverse" "^7.20.0" "@babel/types" "^7.20.0" invariant "^2.2.4" - metro-symbolicate "0.76.8" + metro-symbolicate "0.80.1" nullthrows "^1.1.1" - ob1 "0.76.8" + ob1 "0.80.1" source-map "^0.5.6" vlq "^1.0.0" -metro-symbolicate@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.8.tgz#f102ac1a306d51597ecc8fdf961c0a88bddbca03" - integrity sha512-LrRL3uy2VkzrIXVlxoPtqb40J6Bf1mlPNmUQewipc3qfKKFgtPHBackqDy1YL0njDsWopCKcfGtFYLn0PTUn3w== +metro-symbolicate@0.80.1: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.80.1.tgz#028cdf32eecf9067ce6a6b9c133d1e911823b466" + integrity sha512-HxIHH/wLPyO9pZTmIfvCG/63n8UDTLjHzcWPMRUiLOc0cHa/NI2ewtik1VK2Lzm3swvU8EfD9XXJ//jEnIlhIg== dependencies: invariant "^2.2.4" - metro-source-map "0.76.8" + metro-source-map "0.80.1" nullthrows "^1.1.1" source-map "^0.5.6" through2 "^2.0.1" vlq "^1.0.0" -metro-transform-plugins@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.8.tgz#d77c28a6547a8e3b72250f740fcfbd7f5408f8ba" - integrity sha512-PlkGTQNqS51Bx4vuufSQCdSn2R2rt7korzngo+b5GCkeX5pjinPjnO2kNhQ8l+5bO0iUD/WZ9nsM2PGGKIkWFA== +metro-transform-plugins@0.80.1: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.80.1.tgz#38729aab5d37e2d108aae1fab7e4bf94ef299a9b" + integrity sha512-sJkzY9WJ9p7t3TrvNuIxW/6z4nQZC1pN3nJl4eQmE2lmHBqEMeZr/83DyTnf9Up86abQAXHVZmG5JzXrq7Kb5g== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" @@ -15031,28 +15599,27 @@ metro-transform-plugins@0.76.8: "@babel/traverse" "^7.20.0" nullthrows "^1.1.1" -metro-transform-worker@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.76.8.tgz#b9012a196cee205170d0c899b8b175b9305acdea" - integrity sha512-mE1fxVAnJKmwwJyDtThildxxos9+DGs9+vTrx2ktSFMEVTtXS/bIv2W6hux1pqivqAfyJpTeACXHk5u2DgGvIQ== +metro-transform-worker@0.80.1: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.80.1.tgz#68b58e6a39cbfa8c8dde66acfe5f63c3f930f53d" + integrity sha512-SkX9JBQGbNkzJ2oF7sAi8Nbc0KRLj8Rus9Z4kPh++JCTNqEwsZV5z27ksr9I9EGbqL2/qfUrDZJo1OwozX6dhw== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" "@babel/parser" "^7.20.0" "@babel/types" "^7.20.0" - babel-preset-fbjs "^3.4.0" - metro "0.76.8" - metro-babel-transformer "0.76.8" - metro-cache "0.76.8" - metro-cache-key "0.76.8" - metro-source-map "0.76.8" - metro-transform-plugins "0.76.8" + metro "0.80.1" + metro-babel-transformer "0.80.1" + metro-cache "0.80.1" + metro-cache-key "0.80.1" + metro-source-map "0.80.1" + metro-transform-plugins "0.80.1" nullthrows "^1.1.1" -metro@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.8.tgz#ba526808b99977ca3f9ac5a7432fd02a340d13a6" - integrity sha512-oQA3gLzrrYv3qKtuWArMgHPbHu8odZOD9AoavrqSFllkPgOtmkBvNNDLCELqv5SjBfqjISNffypg+5UGG3y0pg== +metro@0.80.1, metro@^0.80.0: + version "0.80.1" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.80.1.tgz#a4ac5975f5dcdde34a07d3a7d8ce9baca29ae319" + integrity sha512-yp0eLYFY+5seXr7KR1fe61eDL4Qf5dvLS6dl1eKn4DPKgROC9A4nTsulHdMy2ntXWgjnAZRJBDPHuh3tAi4/nQ== dependencies: "@babel/code-frame" "^7.0.0" "@babel/core" "^7.20.0" @@ -15062,7 +15629,6 @@ metro@0.76.8: "@babel/traverse" "^7.20.0" "@babel/types" "^7.20.0" accepts "^1.3.7" - async "^3.2.2" chalk "^4.0.0" ci-info "^2.0.0" connect "^3.6.5" @@ -15070,28 +15636,25 @@ metro@0.76.8: denodeify "^1.2.1" error-stack-parser "^2.0.6" graceful-fs "^4.2.4" - hermes-parser "0.12.0" + hermes-parser "0.17.1" image-size "^1.0.2" invariant "^2.2.4" - jest-worker "^27.2.0" + jest-worker "^29.6.3" jsc-safe-url "^0.2.2" lodash.throttle "^4.1.1" - metro-babel-transformer "0.76.8" - metro-cache "0.76.8" - metro-cache-key "0.76.8" - metro-config "0.76.8" - metro-core "0.76.8" - metro-file-map "0.76.8" - metro-inspector-proxy "0.76.8" - metro-minify-terser "0.76.8" - metro-minify-uglify "0.76.8" - metro-react-native-babel-preset "0.76.8" - metro-resolver "0.76.8" - metro-runtime "0.76.8" - metro-source-map "0.76.8" - metro-symbolicate "0.76.8" - metro-transform-plugins "0.76.8" - metro-transform-worker "0.76.8" + metro-babel-transformer "0.80.1" + metro-cache "0.80.1" + metro-cache-key "0.80.1" + metro-config "0.80.1" + metro-core "0.80.1" + metro-file-map "0.80.1" + metro-minify-terser "0.80.1" + metro-resolver "0.80.1" + metro-runtime "0.80.1" + metro-source-map "0.80.1" + metro-symbolicate "0.80.1" + metro-transform-plugins "0.80.1" + metro-transform-worker "0.80.1" mime-types "^2.1.27" node-fetch "^2.2.0" nullthrows "^1.1.1" @@ -15223,14 +15786,7 @@ minipass-pipeline@^1.2.2: dependencies: minipass "^3.0.0" -minipass@3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== - dependencies: - yallist "^4.0.0" - -minipass@^3.0.0, minipass@^3.1.1: +minipass@3.3.6, minipass@^3.0.0, minipass@^3.1.1: version "3.3.6" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== @@ -15292,6 +15848,11 @@ moo@^0.5.1: resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== +mrmime@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -15596,10 +16157,10 @@ nwsapi@^2.2.0, nwsapi@^2.2.2: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== -ob1@0.76.8: - version "0.76.8" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.8.tgz#ac4c459465b1c0e2c29aaa527e09fc463d3ffec8" - integrity sha512-dlBkJJV5M/msj9KYA9upc+nUWVwuOFFTbu28X6kZeGwcuW+JxaHSBZ70SYQnk5M+j5JbNLR6yKHmgW4M5E7X5g== +ob1@0.80.1: + version "0.80.1" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.80.1.tgz#6507f8c95ff30a9ddb07f96fccbd8f3d4ccafc04" + integrity sha512-o9eYflOo+QnbC/k9GYQuAy90zOGQ/OBgrjlIeW6VrKhevSxth83JSdEvKuKaV7SMGJVQhSY3Zp8eGa3g0rLP0A== obj-case@0.2.1: version "0.2.1" @@ -15783,7 +16344,7 @@ open@^6.2.0: dependencies: is-wsl "^1.1.0" -open@^7.4.2: +open@^7.0.3, open@^7.4.2: version "7.4.2" resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== @@ -16066,11 +16627,6 @@ patch-package@^6.5.1: tmp "^0.0.33" yaml "^1.10.2" -path-browserify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -17085,7 +17641,7 @@ promise@^8.1.0, promise@^8.3.0: dependencies: asap "~2.0.6" -prompts@^2.0.1, prompts@^2.2.1, prompts@^2.3.2, prompts@^2.4.0, prompts@^2.4.2: +prompts@^2.0.1, prompts@^2.2.1, prompts@^2.3.2, prompts@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== @@ -17093,7 +17649,7 @@ prompts@^2.0.1, prompts@^2.2.1, prompts@^2.3.2, prompts@^2.4.0, prompts@^2.4.2: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@*, prop-types@^15.6.1, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.6.1, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -17413,16 +17969,6 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@~1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -17489,10 +18035,10 @@ react-dev-utils@^12.0.1: strip-ansi "^6.0.1" text-table "^0.2.0" -react-devtools-core@^4.27.2: - version "4.28.0" - resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.28.0.tgz#3fa18709b24414adddadac33b6b9cea96db60f2f" - integrity sha512-E3C3X1skWBdBzwpOUbmXG8SgH6BtsluSMe+s6rRcujNKG1DGi8uIfhdhszkgDpAsMoE55hwqRUzeXCmETDBpTg== +react-devtools-core@^4.27.7: + version "4.28.5" + resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.28.5.tgz#c8442b91f068cdf0c899c543907f7f27d79c2508" + integrity sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA== dependencies: shell-quote "^1.6.1" ws "^7" @@ -17557,10 +18103,10 @@ react-native-fs@^2.20.0: base-64 "^0.1.0" utf8 "^3.0.0" -react-native-gesture-handler@^2.12.1: - version "2.12.1" - resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.12.1.tgz#f11a99fb95169810c6886fad5efa01a17fd81660" - integrity sha512-deqh36bw82CFUV9EC4tTo2PP1i9HfCOORGS3Zmv71UYhEZEHkzZv18IZNPB+2Awzj45vLIidZxGYGFxHlDSQ5A== +react-native-gesture-handler@~2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.14.0.tgz#d6aec0d8b2e55c67557fd6107e828c0a1a248be8" + integrity sha512-cOmdaqbpzjWrOLUpX3hdSjsMby5wq3PIEdMq7okJeg9DmCzanysHSrktw1cXWNc/B5MAgxAn9J7Km0/4UIqKAQ== dependencies: "@egjs/hammerjs" "^2.0.17" hoist-non-react-statics "^3.3.0" @@ -17568,10 +18114,10 @@ react-native-gesture-handler@^2.12.1: lodash "^4.17.21" prop-types "^15.7.2" -react-native-get-random-values@^1.8.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/react-native-get-random-values/-/react-native-get-random-values-1.9.0.tgz#6cb30511c406922e75fe73833dc1812a85bfb37e" - integrity sha512-+29IR2oxzxNVeaRwCqGZ9ABadzMI8SLTBidrIDXPOkKnm5+kEmLt34QKM4JV+d2usPErvKyS85le0OmGTHnyWQ== +react-native-get-random-values@~1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/react-native-get-random-values/-/react-native-get-random-values-1.8.0.tgz#1cb4bd4bd3966a356e59697b8f372999fe97cb16" + integrity sha512-H/zghhun0T+UIJLmig3+ZuBCvF66rdbiWUfRSNS6kv5oDSpa1ZiVyvRWtuPesQpT8dXj+Bv7WJRQOUP+5TB1sA== dependencies: fast-base64-decode "^1.0.0" @@ -17605,10 +18151,10 @@ react-native-linear-gradient@^2.6.2: resolved "https://registry.yarnpkg.com/react-native-linear-gradient/-/react-native-linear-gradient-2.8.2.tgz#9811c91751be673ef928ef4aa3ff3a70b82935d6" integrity sha512-hgmCsgzd58WNcDCyPtKrvxsaoETjb/jLGxis/dmU3Aqm2u4ICIduj4ECjbil7B7pm9OnuTkmpwXu08XV2mpg8g== -react-native-pager-view@6.1.4: - version "6.1.4" - resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.1.4.tgz#3a63ebd1b72f81991157ea552bb9c887e529bc8c" - integrity sha512-fmTwgGwPxGCBusKAq7gHzm+s1Yp0qh5rKPoQszaCuxrb+76KgK4Qe82jJNPUp2xTZOKSw+FbJU2QahF8ncTl+w== +react-native-pager-view@6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.2.2.tgz#4c1c45d5f3f622c0922ef96ac114666392ebf5ec" + integrity sha512-MLkJB7iP6v0Hd4/B4/R/gLCSE+YBtjxG/vHZYBDU+fI3U7HBYgKAg4o6ad8HxbKVcWWyRDNeeVRGISw1MUjlHw== react-native-picker-select@^8.1.0: version "8.1.0" @@ -17639,15 +18185,15 @@ react-native-root-siblings@^4.1.1: resolved "https://registry.yarnpkg.com/react-native-root-siblings/-/react-native-root-siblings-4.1.1.tgz#b7742db7634a87f507eb99a5fd699c4f10c46ab0" integrity sha512-sdmLElNs5PDWqmZmj4/aNH4anyxreaPm61c4ZkRiR8SO/GzLg6KjAbb0e17RmMdnBdD0AIQbS38h/l55YKN4ZA== -react-native-safe-area-context@4.6.3: - version "4.6.3" - resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.6.3.tgz#f06cfea05b1c4b018aa9758667a109f619c62b55" - integrity sha512-3CeZM9HFXkuqiU9HqhOQp1yxhXw6q99axPWrT+VJkITd67gnPSU03+U27Xk2/cr9XrLUnakM07kj7H0hdPnFiQ== +react-native-safe-area-context@4.7.4: + version "4.7.4" + resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.7.4.tgz#3dd8438971e70043d76f2428ede75b8a9639265e" + integrity sha512-3LR3DCq9pdzlbq6vsHGWBFehXAKDh2Ljug6jWhLWs1QFuJHM6AS2+mH2JfKlB2LqiSFZOBcZfHQFz0sGaA3uqg== -react-native-screens@~3.22.0: - version "3.22.1" - resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.22.1.tgz#b0eb0696dbf1f9a852061cc71c0f8cdb95ed8e53" - integrity sha512-ffzwUdVKf+iLqhWSzN5DXBm0s2w5sN0P+TaHHPAx42LT7+DT0g8PkHT1QDvxpR5vCEPSS1i3EswyVK4HCuhTYg== +react-native-screens@~3.27.0: + version "3.27.0" + resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.27.0.tgz#2ac39f78dee27df97d3b6fb11ebf8e5751aa986a" + integrity sha512-FzSUygZ7yLQyhDJZsl7wU68LwRpVtVdqOPWribmEU3Tf26FohFGGcfJx1D8lf2V2Teb8tI+IaLnXCKbyh2xffA== dependencies: react-freeze "^1.0.0" warn-once "^0.1.0" @@ -17657,10 +18203,10 @@ react-native-splash-screen@^3.3.0: resolved "https://registry.yarnpkg.com/react-native-splash-screen/-/react-native-splash-screen-3.3.0.tgz#3af71ed17afe50fee69590a45aec399d071ead02" integrity sha512-rGjt6HkoSXxMqH4SQUJ1gnPQlPJV8+J47+4yhgTIan4bVvAwJhEeJH7wWt9hXSdH4+VfwTS0GTaflj1Tw83IhA== -react-native-svg@13.9.0: - version "13.9.0" - resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-13.9.0.tgz#8df8a690dd00362601f074dec5d3a86dd0f99c7f" - integrity sha512-Ey18POH0dA0ob/QiwCBVrxIiwflhYuw0P0hBlOHeY4J5cdbs8ngdKHeWC/Kt9+ryP6fNoEQ1PUgPYw2Bs/rp5Q== +react-native-svg@14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-14.0.0.tgz#ea1974dec9a91a09c6a38b7bf58d85e857c291f5" + integrity sha512-17W/gWXRUMS7p7PSHu/WyGkZUc1NzRTGxxXc0VqBLjzKSchyb0EmgsiWf9aKmfC6gmY0wcsmKZcGV41bCcNfBA== dependencies: css-select "^5.1.0" css-tree "^1.1.3" @@ -17708,10 +18254,10 @@ react-native-web@~0.19.6: postcss-value-parser "^4.2.0" styleq "^0.1.3" -react-native-webview@^13.6.2: - version "13.6.2" - resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-13.6.2.tgz#0a9b18793e915add5b5dbdbf32509d7751b49167" - integrity sha512-QzhQ5JCU+Nf2W285DtvCZOVQy/MkJXMwNDYPZvOWQbAOgxJMSSO+BtqXTMA1UPugDsko6PxJ0TxSlUwIwJijDg== +react-native-webview@^13.6.3: + version "13.6.3" + resolved "https://registry.yarnpkg.com/react-native-webview/-/react-native-webview-13.6.3.tgz#f3d26e942ef5cc5a07547f2e47903aa81a68e25e" + integrity sha512-IApO0JSj0uAWsBGKWagyfgDYoX29piiMYLmkHtRjKeL1rIVjLoR/bMe7KJ/0X47y86b//a6u3cYQtphyay+F2A== dependencies: escape-string-regexp "2.0.0" invariant "2.2.4" @@ -17723,58 +18269,59 @@ react-native-youtube-iframe@^2.3.0: dependencies: events "^3.2.0" -react-native@0.72.5: - version "0.72.5" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.72.5.tgz#2c343fa6f3ead362cf07376634a33a4078864357" - integrity sha512-oIewslu5DBwOmo7x5rdzZlZXCqDIna0R4dUwVpfmVteORYLr4yaZo5wQnMeR+H7x54GaMhmgeqp0ZpULtulJFg== +react-native@0.73.1: + version "0.73.1" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.1.tgz#5eafaa7e54feeab8b55e8b8e4efc4d21052a4fff" + integrity sha512-nLl9O2yKRh1nMXwsk4SUiD0ddd19RqlKgNU9AU8bTK/zD2xwnVOG56YK1/22SN67niWyoeG83vVg1eTk+S6ReA== dependencies: - "@jest/create-cache-key-function" "^29.2.1" - "@react-native-community/cli" "11.3.7" - "@react-native-community/cli-platform-android" "11.3.7" - "@react-native-community/cli-platform-ios" "11.3.7" - "@react-native/assets-registry" "^0.72.0" - "@react-native/codegen" "^0.72.7" - "@react-native/gradle-plugin" "^0.72.11" - "@react-native/js-polyfills" "^0.72.1" - "@react-native/normalize-colors" "^0.72.0" - "@react-native/virtualized-lists" "^0.72.8" + "@jest/create-cache-key-function" "^29.6.3" + "@react-native-community/cli" "12.3.0" + "@react-native-community/cli-platform-android" "12.3.0" + "@react-native-community/cli-platform-ios" "12.3.0" + "@react-native/assets-registry" "^0.73.1" + "@react-native/codegen" "^0.73.2" + "@react-native/community-cli-plugin" "0.73.11" + "@react-native/gradle-plugin" "^0.73.4" + "@react-native/js-polyfills" "^0.73.1" + "@react-native/normalize-colors" "^0.73.2" + "@react-native/virtualized-lists" "^0.73.4" abort-controller "^3.0.0" anser "^1.4.9" - base64-js "^1.1.2" - deprecated-react-native-prop-types "4.1.0" + ansi-regex "^5.0.0" + base64-js "^1.5.1" + deprecated-react-native-prop-types "^5.0.0" event-target-shim "^5.0.1" - flow-enums-runtime "^0.0.5" + flow-enums-runtime "^0.0.6" invariant "^2.2.4" - jest-environment-node "^29.2.1" + jest-environment-node "^29.6.3" jsc-android "^250231.0.0" memoize-one "^5.0.0" - metro-runtime "0.76.8" - metro-source-map "0.76.8" + metro-runtime "^0.80.0" + metro-source-map "^0.80.0" mkdirp "^0.5.1" nullthrows "^1.1.1" pretty-format "^26.5.2" promise "^8.3.0" - react-devtools-core "^4.27.2" - react-refresh "^0.4.0" + react-devtools-core "^4.27.7" + react-refresh "^0.14.0" react-shallow-renderer "^16.15.0" regenerator-runtime "^0.13.2" scheduler "0.24.0-canary-efb381bbf-20230505" stacktrace-parser "^0.1.10" - use-sync-external-store "^1.0.0" whatwg-fetch "^3.0.0" ws "^6.2.2" yargs "^17.6.2" +react-refresh@0.14.0, react-refresh@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" + integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== + react-refresh@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== -react-refresh@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" - integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== - react-refresh@^0.4.0: version "0.4.3" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.3.tgz#966f1750c191672e76e16c2efa569150cc73ab53" @@ -18208,7 +18755,7 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== -resolve.exports@^2.0.0: +resolve.exports@^2.0.0, resolve.exports@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== @@ -18612,13 +19159,6 @@ sentry-expo@~7.0.1: mkdirp "^1.0.4" rimraf "^3.0.2" -serialize-error@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-6.0.0.tgz#ccfb887a1dd1c48d6d52d7863b92544331fd752b" - integrity sha512-3vmBkMZLQO+BR4RPHcyRGdE09XCF6cvxzk2N2qn8Er3F91cy8Qt7VvEbZBOpaL53qsBbe2cFOefU6tRY6WDelA== - dependencies: - type-fest "^0.12.0" - serialize-error@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a" @@ -18673,6 +19213,11 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-cookie-parser@^2.4.8: + version "2.6.0" + resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51" + integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ== + set-function-name@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" @@ -18853,7 +19398,7 @@ slice-ansi@^5.0.0: ansi-styles "^6.0.0" is-fullwidth-code-point "^4.0.0" -slugify@^1.3.4: +slugify@^1.3.4, slugify@^1.6.6: version "1.6.6" resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.6.tgz#2d4ac0eacb47add6af9e04d3be79319cbcc7924b" integrity sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw== @@ -18901,7 +19446,7 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.20: +source-map-support@^0.5.16, source-map-support@^0.5.21, source-map-support@^0.5.6, source-map-support@~0.5.20, source-map-support@~0.5.21: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -18909,6 +19454,11 @@ source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.2 buffer-from "^1.0.0" source-map "^0.6.0" +source-map@0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + integrity sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA== + source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -18998,6 +19548,13 @@ stable@^0.1.8: resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== +stack-generator@^2.0.5: + version "2.0.10" + resolved "https://registry.yarnpkg.com/stack-generator/-/stack-generator-2.0.10.tgz#8ae171e985ed62287d4f1ed55a1633b3fb53bb4d" + integrity sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ== + dependencies: + stackframe "^1.3.4" + stack-utils@^2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" @@ -19010,6 +19567,23 @@ stackframe@^1.3.4: resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310" integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== +stacktrace-gps@^3.0.4: + version "3.1.2" + resolved "https://registry.yarnpkg.com/stacktrace-gps/-/stacktrace-gps-3.1.2.tgz#0c40b24a9b119b20da4525c398795338966a2fb0" + integrity sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ== + dependencies: + source-map "0.5.6" + stackframe "^1.3.4" + +stacktrace-js@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stacktrace-js/-/stacktrace-js-2.0.2.tgz#4ca93ea9f494752d55709a081d400fdaebee897b" + integrity sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg== + dependencies: + error-stack-parser "^2.0.6" + stack-generator "^2.0.5" + stacktrace-gps "^3.0.4" + stacktrace-parser@^0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" @@ -19057,6 +19631,11 @@ stream-json@^1.7.4: dependencies: stream-chain "^2.2.5" +stream-slice@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/stream-slice/-/stream-slice-0.1.2.tgz#2dc4f4e1b936fb13f3eb39a2def1932798d07a4b" + integrity sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA== + streamx@^2.15.0: version "2.15.5" resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.5.tgz#87bcef4dc7f0b883f9359671203344a4e004c7f1" @@ -19819,7 +20398,7 @@ tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, "tslib@^2.4.1 || ^1.9.3", tslib@^2.5.0: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, tslib@^2.5.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -19850,11 +20429,6 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.12.0.tgz#f57a27ab81c68d136a51fd71467eff94157fa1ee" - integrity sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg== - type-fest@^0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" @@ -19956,10 +20530,10 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^5.1.3: - version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== +typescript@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== ua-parser-js@^0.7.33: version "0.7.35" @@ -19976,14 +20550,6 @@ uc.micro@^1.0.1, uc.micro@^1.0.5: resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -uglify-es@^3.1.9: - version "3.3.9" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" - integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ== - dependencies: - commander "~2.13.0" - source-map "~0.6.1" - uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" @@ -20039,6 +20605,11 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== +unimodules-app-loader@~4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/unimodules-app-loader/-/unimodules-app-loader-4.5.0.tgz#5ec66088d740bd17dc5c94b88c91f21249d9f0ba" + integrity sha512-q/Xug4K6/20876Xac+tjOLOOAeHEu2zF66LNN/5c8EV4WPEe/+RYZEljN/woQt17KPIB2eyel9dc+d6qUMjUOg== + unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -20144,7 +20715,7 @@ url-loader@^4.1.1: mime-types "^2.1.27" schema-utils "^3.0.0" -url-parse@^1.5.3, url-parse@^1.5.9: +url-parse@^1.5.3: version "1.5.10" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== @@ -20184,11 +20755,6 @@ use-sidecar@^1.1.2: detect-node-es "^1.1.0" tslib "^2.0.0" -use-sync-external-store@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" - integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== - utf8-byte-length@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" @@ -20214,7 +20780,7 @@ util.promisify@~1.0.0: has-symbols "^1.0.1" object.getownpropertydescriptors "^2.1.0" -util@^0.12.0: +util@^0.12.0, util@^0.12.3: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== @@ -20235,7 +20801,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0: +uuid@^3.0.1: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -20365,6 +20931,20 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +web-encoding@1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/web-encoding/-/web-encoding-1.1.5.tgz#fc810cf7667364a6335c939913f5051d3e0c4864" + integrity sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA== + dependencies: + util "^0.12.3" + optionalDependencies: + "@zxing/text-encoding" "0.9.0" + +web-streams-polyfill@^3.1.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz#71c2718c52b45fd49dbeee88634b3a60ceab42a6" + integrity sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" From 64bad57eb39269c025c80748966f9ac219daf8ce Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Sat, 23 Dec 2023 16:26:55 -0800 Subject: [PATCH 005/115] 1.61 (initial build) --- app.config.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app.config.js b/app.config.js index 5b82d1a76d..1cfb6bda03 100644 --- a/app.config.js +++ b/app.config.js @@ -9,7 +9,7 @@ module.exports = function () { /** * iOS build number. Must be incremented for each TestFlight version. */ - const IOS_BUILD_NUMBER = '5' + const IOS_BUILD_NUMBER = '1' /** * Android build number. Must be incremented for each release. diff --git a/package.json b/package.json index 0440912f17..b7e12e3a4a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bsky.app", - "version": "1.60.0", + "version": "1.61.0", "private": true, "engines": { "node": ">=18" From fe0a35cbea7ff8430f9538d6a641e41ab74ed0a0 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Sun, 24 Dec 2023 10:00:29 -0800 Subject: [PATCH 006/115] Fix blank home screen (close #2281) (#2291) --- src/state/queries/feed.ts | 5 ++++- src/view/screens/Home.tsx | 13 ++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/state/queries/feed.ts b/src/state/queries/feed.ts index c87e95f030..7a55b4e186 100644 --- a/src/state/queries/feed.ts +++ b/src/state/queries/feed.ts @@ -218,11 +218,13 @@ const FOLLOWING_FEED_STUB: FeedSourceInfo = { export function usePinnedFeedsInfos(): { feeds: FeedSourceInfo[] hasPinnedCustom: boolean + isLoading: boolean } { const queryClient = useQueryClient() const [tabs, setTabs] = React.useState([ FOLLOWING_FEED_STUB, ]) + const [isLoading, setLoading] = React.useState(true) const {data: preferences} = usePreferencesQuery() const hasPinnedCustom = React.useMemo(() => { @@ -284,10 +286,11 @@ export function usePinnedFeedsInfos(): { ) as FeedSourceInfo[] setTabs([FOLLOWING_FEED_STUB].concat(views)) + setLoading(false) } fetchFeedInfo() }, [queryClient, setTabs, preferences?.feeds?.pinned]) - return {feeds: tabs, hasPinnedCustom} + return {feeds: tabs, hasPinnedCustom, isLoading} } diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index 82dd1365cf..b8033f0b45 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -18,11 +18,13 @@ import {emitSoftReset} from '#/state/events' import {useSession} from '#/state/session' import {loadString, saveString} from '#/lib/storage' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' +import {clamp} from '#/lib/numbers' type Props = NativeStackScreenProps export function HomeScreen(props: Props) { const {data: preferences} = usePreferencesQuery() - const {feeds: pinnedFeeds} = usePinnedFeedsInfos() + const {feeds: pinnedFeeds, isLoading: isPinnedFeedsLoading} = + usePinnedFeedsInfos() const {isDesktop} = useWebMediaQueries() const [initialPage, setInitialPage] = React.useState( undefined, @@ -41,7 +43,12 @@ export function HomeScreen(props: Props) { loadLastActivePage() }, []) - if (preferences && pinnedFeeds && initialPage !== undefined) { + if ( + preferences && + pinnedFeeds && + initialPage !== undefined && + !isPinnedFeedsLoading + ) { return ( Date: Sun, 24 Dec 2023 13:32:25 -0600 Subject: [PATCH 007/115] Patches and compiled i18n (#2297) * Update patches * Bump translations, remove ignored files --- ...patch => @sentry+react-native+5.5.0.patch} | 0 ...0.73.0.patch => react-native+0.73.1.patch} | 0 src/locale/locales/de/messages.po | 72 +++++++++---------- src/locale/locales/en/messages.js | 1 - src/locale/locales/en/messages.po | 72 +++++++++---------- src/locale/locales/es/messages.po | 72 +++++++++---------- src/locale/locales/fr/messages.po | 72 +++++++++---------- src/locale/locales/hi/messages.js | 1 - src/locale/locales/hi/messages.po | 72 +++++++++---------- src/locale/locales/ja/messages.js | 1 - src/locale/locales/ja/messages.po | 72 +++++++++---------- 11 files changed, 216 insertions(+), 219 deletions(-) rename patches/{@sentry+react-native+5.10.0.patch => @sentry+react-native+5.5.0.patch} (100%) rename patches/{react-native+0.73.0.patch => react-native+0.73.1.patch} (100%) delete mode 100644 src/locale/locales/en/messages.js delete mode 100644 src/locale/locales/hi/messages.js delete mode 100644 src/locale/locales/ja/messages.js diff --git a/patches/@sentry+react-native+5.10.0.patch b/patches/@sentry+react-native+5.5.0.patch similarity index 100% rename from patches/@sentry+react-native+5.10.0.patch rename to patches/@sentry+react-native+5.5.0.patch diff --git a/patches/react-native+0.73.0.patch b/patches/react-native+0.73.1.patch similarity index 100% rename from patches/react-native+0.73.0.patch rename to patches/react-native+0.73.1.patch diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index 4bebd80318..4f59b70545 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -39,7 +39,7 @@ msgstr "{invitesAvailable} Einladungscode verfügbar" msgid "{invitesAvailable} invite codes available" msgstr "{invitesAvailable} Einladungscodes verfügbar" -#: src/view/screens/Search/Search.tsx:88 +#: src/view/screens/Search/Search.tsx:87 msgid "{message}" msgstr "{message}" @@ -234,9 +234,9 @@ msgstr "Künstlerische oder nicht-erotische Nacktheit." #: src/view/com/auth/login/LoginForm.tsx:249 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 #: src/view/com/modals/report/InputIssueDetails.tsx:45 -#: src/view/com/post-thread/PostThread.tsx:395 -#: src/view/com/post-thread/PostThread.tsx:445 -#: src/view/com/post-thread/PostThread.tsx:453 +#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:438 +#: src/view/com/post-thread/PostThread.tsx:446 #: src/view/com/profile/ProfileHeader.tsx:672 msgid "Back" msgstr "Zurück" @@ -275,7 +275,7 @@ msgstr "Diese Kontos sperren?" msgid "Blocked accounts" msgstr "Gesperrte Konten" -#: src/view/screens/ModerationBlockedAccounts.tsx:106 +#: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "Gesperrte Konten" @@ -283,11 +283,11 @@ msgstr "Gesperrte Konten" msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "Gesperrte Konten können nicht in Ihren Beiträgen antworten, Sie erwähnen oder anderweitig mit Ihnen interagieren." -#: src/view/screens/ModerationBlockedAccounts.tsx:114 +#: 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 "Gesperrte Konten können nicht in Ihren Beiträgen antworten, Sie erwähnen oder anderweitig mit Ihnen interagieren. Sie werden ihre Inhalte nicht sehen und sie werden daran gehindert, Ihre zu sehen." -#: src/view/com/post-thread/PostThread.tsx:251 +#: src/view/com/post-thread/PostThread.tsx:250 msgid "Blocked post." msgstr "Gesperrter Posten." @@ -360,7 +360,7 @@ msgstr "Darf nur Buchstaben, Zahlen, Leerzeichen, Bindestriche und Unterstriche #: src/view/com/modals/LinkWarning.tsx:85 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 -#: src/view/screens/Search/Search.tsx:592 +#: src/view/screens/Search/Search.tsx:584 #: src/view/shell/desktop/Search.tsx:182 msgid "Cancel" msgstr "Abbrechen" @@ -461,7 +461,7 @@ msgid "Clear all storage data (restart after this)" msgstr "Alle alten Speicherdaten löschen (danach neu starten)" #: src/view/com/util/forms/SearchInput.tsx:73 -#: src/view/screens/Search/Search.tsx:577 +#: src/view/screens/Search/Search.tsx:569 msgid "Clear search query" msgstr "Suchanfrage löschen" @@ -650,7 +650,7 @@ msgstr "Posten löschen" msgid "Delete this post?" msgstr "Diesen Posten löschen?" -#: src/view/com/post-thread/PostThread.tsx:243 +#: src/view/com/post-thread/PostThread.tsx:242 msgid "Deleted post." msgstr "Posten gelöscht." @@ -801,7 +801,7 @@ msgstr "Geben Sie Ihre E-Mail Adresse ein" msgid "Enter your username and password" msgstr "Geben Sie Ihren Benutzernamen und Ihr Passwort ein" -#: src/view/screens/Search/Search.tsx:106 +#: src/view/screens/Search/Search.tsx:105 msgid "Error:" msgstr "Fehler:" @@ -818,7 +818,7 @@ msgstr "Alt-Text erweitern" msgid "Failed to load recommended feeds" msgstr "Empfohlene Feeds konnten nicht geladen werden" -#: src/view/screens/Feeds.tsx:560 +#: src/view/screens/Feeds.tsx:554 msgid "Feed offline" msgstr "Feed offline" @@ -848,11 +848,11 @@ msgstr "Feeds werden von Nutzern erstellt, um Inhalte zu kuratieren. Wählen Sie msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Feeds sind benutzerdefinierte Algorithmen, die von den Nutzern mit ein wenig Programmierkenntnissen erstellt werden. <0/> für weitere Informationen." -#: src/view/screens/Search/Search.tsx:422 +#: src/view/screens/Search/Search.tsx:414 msgid "Find users on Bluesky" msgstr "Benutzer auf Bluesky finden" -#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:412 msgid "Find users with the search tool on the right" msgstr "Benutzer mit der Suchfunktion auf der rechten Seite finden" @@ -1157,8 +1157,8 @@ msgstr "Namen auflisten" msgid "Lists" msgstr "Listen" -#: src/view/com/post-thread/PostThread.tsx:260 -#: src/view/com/post-thread/PostThread.tsx:268 +#: src/view/com/post-thread/PostThread.tsx:259 +#: src/view/com/post-thread/PostThread.tsx:267 msgid "Load more posts" msgstr "Mehr Beiträge laden" @@ -1206,7 +1206,7 @@ msgstr "genannte Nutzer" msgid "Mentioned users" msgstr "Genannte Nutzer" -#: src/view/screens/Search/Search.tsx:537 +#: src/view/screens/Search/Search.tsx:529 msgid "Menu" msgstr "Menü" @@ -1264,11 +1264,11 @@ msgstr "Thema stummschalten" msgid "Muted accounts" msgstr "Stumme Kontos" -#: src/view/screens/ModerationMutedAccounts.tsx:106 +#: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "Stumme Kontos" -#: src/view/screens/ModerationMutedAccounts.tsx:114 +#: 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 "Bei stummgeschalteten Konten werden deren Beiträge aus deinem Feed und deinen Benachrichtigungen entfernt. Stummschaltungen sind vollständig privat." @@ -1307,7 +1307,7 @@ msgid "New" msgstr "Neu" #: src/view/com/feeds/FeedPage.tsx:200 -#: src/view/screens/Feeds.tsx:511 +#: src/view/screens/Feeds.tsx:505 #: src/view/screens/Profile.tsx:354 #: src/view/screens/ProfileFeed.tsx:430 #: src/view/screens/ProfileList.tsx:193 @@ -1354,9 +1354,9 @@ msgid "No results found for \"{query}\"" msgstr "Keine Ergebnisse gefunden für \"{query}\"" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:271 -#: src/view/screens/Search/Search.tsx:299 -#: src/view/screens/Search/Search.tsx:615 +#: src/view/screens/Search/Search.tsx:263 +#: src/view/screens/Search/Search.tsx:291 +#: src/view/screens/Search/Search.tsx:607 #: src/view/shell/desktop/Search.tsx:210 msgid "No results found for {query}" msgstr "Keine Ergebnisse gefunden für {query}" @@ -1519,12 +1519,12 @@ msgstr "" #~ msgstr "Bitte teilen Sie uns mit, warum diese Entscheidung Ihrer Meinung nach falsch war." #: src/view/com/composer/Composer.tsx:337 -#: src/view/com/post-thread/PostThread.tsx:226 +#: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" msgstr "Posten " -#: src/view/com/post-thread/PostThread.tsx:385 +#: src/view/com/post-thread/PostThread.tsx:378 msgid "Post hidden" msgstr "Versteckter Posten" @@ -1536,7 +1536,7 @@ msgstr "Postsprache" msgid "Post Languages" msgstr "Postsprachen" -#: src/view/com/post-thread/PostThread.tsx:437 +#: src/view/com/post-thread/PostThread.tsx:430 msgid "Post not found" msgstr "Posten nicht gefunden" @@ -1780,8 +1780,8 @@ msgstr "Gespeicherte Feeds" #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:64 -#: src/view/screens/Search/Search.tsx:401 -#: src/view/screens/Search/Search.tsx:567 +#: src/view/screens/Search/Search.tsx:393 +#: src/view/screens/Search/Search.tsx:559 #: src/view/shell/bottom-bar/BottomBar.tsx:159 #: src/view/shell/desktop/LeftNav.tsx:322 #: src/view/shell/desktop/Search.tsx:161 @@ -2030,7 +2030,7 @@ msgstr "Abonnieren" msgid "Subscribe to this list" msgstr "Abonnieren Sie diese Liste" -#: src/view/screens/Search/Search.tsx:357 +#: src/view/screens/Search/Search.tsx:349 msgid "Suggested Follows" msgstr "Vorgeschlagene Followerliste" @@ -2076,7 +2076,7 @@ msgstr "Die Gemeinschaftsrichtlinien wurden nach <0/> verschoben." msgid "The Copyright Policy has been moved to <0/>" msgstr "Die Urheberrechtspolitik wurde nach <0/> verschoben." -#: src/view/com/post-thread/PostThread.tsx:440 +#: src/view/com/post-thread/PostThread.tsx:433 msgid "The post may have been deleted." msgstr "Der Beitrag kann gelöscht worden sein." @@ -2301,7 +2301,7 @@ msgstr "Seite besuchen" msgid "We're so excited to have you join us!" msgstr "Wir freuen uns, Sie bei uns begrüßen zu dürfen!" -#: src/view/screens/Search/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:236 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Es tut uns leid, aber Ihre Suche konnte nicht abgeschlossen werden. Bitte versuchen Sie es in ein paar Minuten erneut." @@ -2381,20 +2381,20 @@ msgstr "Sie haben keine gespeicherte Feeds!" msgid "You don't have any saved feeds." msgstr "Sie haben keine gespeicherte Feeds." -#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:381 msgid "You have blocked the author or you have been blocked by the author." msgstr "Sie haben den Verfasser blockiert oder Sie wurden vom Verfasser blockiert." -#: src/view/com/feeds/ProfileFeedgens.tsx:141 +#: src/view/com/feeds/ProfileFeedgens.tsx:134 msgid "You have no feeds." msgstr "Sie haben keine Feeds." #: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:145 +#: src/view/com/lists/ProfileLists.tsx:138 msgid "You have no lists." msgstr "Sie haben keine Listen." -#: src/view/screens/ModerationBlockedAccounts.tsx:131 +#: 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 "Sie haben noch keine Konten gesperrt. Um ein Konto zu sperren, gehen Sie zu seinem Profil und wählen Sie \"Konto sperren\" aus dem Menü auf seinem Konto." @@ -2402,7 +2402,7 @@ msgstr "Sie haben noch keine Konten gesperrt. Um ein Konto zu sperren, gehen Sie msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "Sie haben noch kein Kennwort für eine Anwendung erstellt. Sie können eines erstellen, indem Sie auf die Schaltfläche unten drücken." -#: src/view/screens/ModerationMutedAccounts.tsx:130 +#: 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 "Sie haben noch keine Konten stummgeschaltet. Um ein Konto stumm zu schalten, gehen Sie zu seinem Profil und wählen Sie \"Konto stumm schalten\" aus dem Menü auf seinem Konto." diff --git a/src/locale/locales/en/messages.js b/src/locale/locales/en/messages.js deleted file mode 100644 index 9d5ca51a21..0000000000 --- a/src/locale/locales/en/messages.js +++ /dev/null @@ -1 +0,0 @@ -/*eslint-disable*/module.exports={messages:JSON.parse("{\"PBodTo\":\"- end of feed -\",\"EtUMsZ\":\". This warning is only available for posts with media attached.\",\"ebOBhv\":[[\"0\",\"plural\",{\"one\":[\"#\",\" invite code available\"],\"other\":[\"#\",\" invite codes available\"]}]],\"J/hVSQ\":[[\"0\"]],\"hZQerY\":[[\"0\"],\" \",[\"purposeLabel\"],\" List\"],\"zgN03j\":[[\"invitesAvailable\",\"plural\",{\"one\":[\"Invite codes: \",\"#\",\" available\"],\"other\":[\"Invite codes: \",\"#\",\" available\"]}]],\"OyEWua\":[[\"invitesAvailable\"],\" invite code available\"],\"eFIdHP\":[[\"invitesAvailable\"],\" invite codes available\"],\"wapGcj\":[[\"message\"]],\"umrH9L\":\"<0/> members\",\"gMjqbV\":\"<0>Choose your<1>Recommended<2>Feeds\",\"F657la\":\"<0>Follow some<1>Recommended<2>Users\",\"6RmyWt\":\"<0>Here is your app password. Use this to sign into the other app along with your handle.\",\"GH9ldj\":\"<0>Note: This setting may not be respected by third-party apps that display Bluesky content.\",\"Ga0T2l\":\"<0>Note: Your profile and posts will remain publicly available. Third-party apps that display Bluesky content may not respect this setting.\",\"XCTqGE\":\"A new version of the app is available. Please update to continue using the app.\",\"AnNF5e\":\"Accessibility\",\"AeXO77\":\"Account\",\"4WY4MD\":\"Account options\",\"m16xKo\":\"Add\",\"fBBX+K\":\"Add a content warning\",\"JU3hs2\":\"Add a user to this list\",\"MPPZ54\":\"Add account\",\"LkA8jz\":\"Add alt text\",\"Z8idyM\":\"Add details\",\"AoXl11\":\"Add details to report\",\"iE6B/9\":\"Add link card\",\"EXHdP1\":\"Add link card:\",\"x6laaL\":\"Add the following DNS record to your domain:\",\"UmzMP4\":\"Add to Lists\",\"hCrQ0L\":\"Add to my feeds\",\"GluCXm\":\"Added to list\",\"jRrQFe\":\"Adjust the number of likes a reply must have to be shown in your feed.\",\"qLa52r\":\"Adult Content\",\"sxkWRg\":\"Advanced\",\"u2HO/d\":\"ALT\",\"u/DP73\":\"Alt text\",\"0QlT7/\":\"Alt text describes images for blind and low-vision users, and helps give context to everyone.\",\"woXbjq\":[\"An email has been sent to \",[\"0\"],\". It includes a confirmation code which you can enter below.\"],\"Fon2dK\":[\"An email has been sent to your previous address, \",[\"0\"],\". It includes a confirmation code which you can enter below.\"],\"HZFm5R\":\"and\",\"fdjKGe\":\"App Language\",\"SMmUnj\":\"App passwords\",\"8q4WlH\":\"App Passwords\",\"e6un1h\":\"Appeal Decision\",\"c0PCYD\":\"Appeal this decision\",\"oifO1p\":\"Appeal this decision.\",\"aAIQg2\":\"Appearance\",\"9K5XIM\":\"Apps that respect this setting, including the official Bluesky app and bsky.app website, won't show your content to logged out users.\",\"SSDZ+T\":[\"Are you sure you want to delete the app password \\\"\",[\"name\"],\"\\\"?\"],\"0BIeIs\":\"Are you sure you'd like to discard this draft?\",\"6foA8n\":\"Are you sure?\",\"/mSd6b\":\"Are you sure? This cannot be undone.\",\"EbvWd3\":\"Artistic or non-erotic nudity.\",\"uVotT3\":\"Ask apps to limit the visibility of my account\",\"iH8pgl\":\"Back\",\"ehOkF+\":\"Basics\",\"+gCI2a\":\"Birthday\",\"pieVBA\":\"Birthday:\",\"m1dqxu\":\"Block Account\",\"ffIfdM\":\"Block accounts\",\"hIysMc\":\"Block list\",\"fdYcMy\":\"Block these accounts?\",\"KWykPE\":\"Blocked accounts\",\"JuqQpF\":\"Blocked Accounts\",\"HG4qt4\":\"Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you.\",\"8LNSUt\":\"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.\",\"HFCE4A\":\"Blocked post.\",\"zl+QbX\":\"Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you.\",\"7A9u1j\":\"Bluesky\",\"ZHmKSm\":\"Bluesky is flexible.\",\"odLrdl\":\"Bluesky is open.\",\"/LsWK4\":\"Bluesky is public.\",\"C50OGr\":\"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.\",\"u9cCQU\":\"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.\",\"klVoaP\":\"Bluesky.Social\",\"qxBitM\":[\"Build version \",[\"0\"],\" \",[\"1\"]],\"rT2cV+\":\"Camera\",\"JGGrPC\":\"Can only contain letters, numbers, spaces, dashes, and underscores. Must be at least 4 characters long, but no more than 32 characters long.\",\"dEgA5A\":\"Cancel\",\"aMH9rr\":\"Cancel account deletion\",\"kc3E4R\":\"Cancel add image alt text\",\"wg4LHQ\":\"Cancel change handle\",\"hFL1Li\":\"Cancel image crop\",\"tijH8t\":\"Cancel profile editing\",\"Qe4C/d\":\"Cancel quote post\",\"5TviPn\":\"Cancel search\",\"nss3UV\":\"Cancel waitlist signup\",\"o+XJ9D\":\"Change\",\"pQco5R\":\"Change handle\",\"Q5e1U/\":\"Change Handle\",\"a3NAfL\":\"Change my email\",\"4vatyk\":\"Change Your Email\",\"Yn3C90\":\"Check out some recommended feeds. Tap + to add them to your list of pinned feeds.\",\"ioZXIH\":\"Check out some recommended users. Follow them to see similar users.\",\"/+X+/K\":\"Check your inbox for an email with the confirmation code to enter below:\",\"Rt502e\":\"Choose Service\",\"/L45sc\":\"Choose the algorithms that power your experience with custom feeds.\",\"BwcLKv\":\"Choose your\",\"Wk8hkn\":\"Choose your password\",\"Us7A1O\":\"Clear all legacy storage data\",\"X3zEXo\":\"Clear all legacy storage data (restart after this)\",\"zxFM2c\":\"Clear all storage data\",\"r+lhUL\":\"Clear all storage data (restart after this)\",\"QbvBNV\":\"Clear search query\",\"flH7u/\":\"Close alert\",\"hYmnbk\":\"Close bottom drawer\",\"47L1V1\":\"Close image\",\"l49ujN\":\"Close image viewer\",\"UryHFO\":\"Close navigation footer\",\"KHzDTk\":\"Community Guidelines\",\"o8UUti\":\"Compose reply\",\"7VpPHA\":\"Confirm\",\"q8upsf\":\"Confirm Change\",\"8pNKIr\":\"Confirm content language settings\",\"tGg8Kt\":\"Confirm delete account\",\"ioZOzk\":\"Confirmation code\",\"J28zul\":\"Connecting...\",\"l879p1\":\"Content filtering\",\"m8j6up\":\"Content Filtering\",\"/PlAsF\":\"Content Languages\",\"cogwXi\":\"Content Warning\",\"FG7AQv\":\"Content warnings\",\"xGVfLh\":\"Continue\",\"6V3Ea3\":\"Copied\",\"he3ygx\":\"Copy\",\"7LTXf4\":\"Copy link to list\",\"dWsPi5\":\"Copy link to post\",\"jw+abr\":\"Copy link to profile\",\"iQgJaz\":\"Copy post text\",\"u40k/o\":\"Copyright Policy\",\"7wWvgo\":\"Could not load feed\",\"8NNr/O\":\"Could not load list\",\"mpt9T+\":\"Create a new account\",\"IS0nrP\":\"Create Account\",\"6HbhpU\":\"Create new account\",\"MXSt4t\":[\"Created \",[\"0\"]],\"GAD3Dx\":\"Custom domain\",\"ZQKLI1\":\"Danger Zone\",\"pvnfJD\":\"Dark\",\"ZDGm40\":\"Delete account\",\"vzX5FB\":\"Delete Account\",\"gUEtxf\":\"Delete app password\",\"84uE/A\":\"Delete List\",\"ktknoE\":\"Delete my account\",\"szz0+N\":\"Delete my account…\",\"04G5Az\":\"Delete post\",\"FbPNuJ\":\"Delete this post?\",\"u+1OHY\":\"Deleted post.\",\"Nu4oKW\":\"Description\",\"dacKHE\":\"Dev Server\",\"2ygkE8\":\"Developer Tools\",\"bzSI52\":\"Discard\",\"BryYJR\":\"Discard draft\",\"9Y7FMD\":\"Discourage apps from showing my account to logged-out users\",\"pbLwal\":\"Discover new feeds\",\"pfa8F0\":\"Display name\",\"0gS7M5\":\"Display Name\",\"iZ5pMB\":\"Domain verified!\",\"DPfwMq\":\"Done\",\"zT97vP\":[\"Done\",[\"extraText\"]],\"4uwlSD\":\"Each code works once. You'll receive more invite codes periodically.\",\"XQFMOm\":\"Edit image\",\"S7M0uU\":\"Edit list details\",\"cLmurE\":\"Edit My Feeds\",\"bRZ5XW\":\"Edit my profile\",\"9OpVZg\":\"Edit profile\",\"QJQd1J\":\"Edit Profile\",\"Jn7kox\":\"Edit Saved Feeds\",\"O3oNi5\":\"Email\",\"ATGYL1\":\"Email address\",\"pJJ0Vp\":\"Email Updated\",\"9Qs99X\":\"Email:\",\"96mted\":\"Enable this setting to only see replies between people you follow.\",\"9xK+YC\":\"End of feed\",\"YbIxza\":\"Enter the address of your provider:\",\"BfIgP6\":\"Enter the domain you want to use\",\"cHrOqs\":\"Enter the email you used to create your account. We'll send you a \\\"reset code\\\" so you can set a new password.\",\"xRPn3U\":\"Enter your email address\",\"+inPGm\":\"Enter your new email address below.\",\"T0KLp4\":\"Enter your username and password\",\"4BITzH\":\"Error:\",\"wlzBtv\":\"Everybody\",\"0PkE20\":\"Expand alt text\",\"/5K/KL\":\"Failed to load recommended feeds\",\"4yCy8i\":\"Feed offline\",\"N0CqyO\":\"Feed Preferences\",\"YirHq7\":\"Feedback\",\"2DoBvq\":\"Feeds\",\"I3iUBQ\":\"Feeds are created by users to curate content. Choose some feeds that you find interesting.\",\"2+6lmO\":\"Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information.\",\"Qzj1WT\":\"Finding similar accounts...\",\"QKSrQV\":\"Fine-tune the content you see on your home screen.\",\"r+KeyR\":\"Fine-tune the discussion threads.\",\"MKEPCY\":\"Follow\",\"AD4dxh\":\"Follow some\",\"Wezu5M\":\"Follow some users to get started. We can recommend you more users based on who you find interesting.\",\"jdbMSV\":\"Followed users\",\"YY2BTA\":\"Followed users only\",\"x5LEuB\":\"Followers\",\"NIjL2Y\":\"following\",\"y6sq5j\":\"Following\",\"p3UO/y\":\"Follows you\",\"5RhDkD\":\"For security reasons, we'll need to send a confirmation code to your email address.\",\"NJPhAO\":\"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.\",\"5bDfuq\":\"Forgot\",\"hEPLrs\":\"Forgot password\",\"dn8X5t\":\"Forgot Password\",\"U+kFad\":\"Gallery\",\"c3b0B0\":\"Get Started\",\"CKyk7Q\":\"Go back\",\"sr0UJD\":\"Go Back\",\"Rtp0y7\":\"Go to next\",\"Nf7oXL\":\"Handle\",\"c3XJ18\":\"Help\",\"uX/4+/\":\"Here is your app password.\",\"vLyv1R\":\"Hide\",\"qdOx2q\":\"Hide user list\",\"up7j9X\":\"Hmm, some kind of issue occured when contacting the feed server. Please let the feed owner know about this issue.\",\"FynkM2\":\"Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue.\",\"WTcLyw\":\"Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue.\",\"/8MHCt\":\"Hmm, the feed server appears to be offline. Please let the feed owner know about this issue.\",\"3zJH1g\":\"Hmm, the feed server gave a bad response. Please let the feed owner know about this issue.\",\"wkCNhr\":\"Hmm, we're having trouble finding this feed. It may have been deleted.\",\"yNNyhI\":\"Hmmm, we're having trouble finding this feed. It may have been deleted.\",\"i0qMbr\":\"Home\",\"sXZ8IU\":\"Home Feed Preferences\",\"yt7fhu\":\"Hosting provider\",\"s2xA6t\":\"Hosting provider address\",\"o+axy6\":\"I have a code\",\"wey2os\":\"I have my own domain\",\"WlEcKr\":\"If none are selected, suitable for all ages.\",\"VCk0rR\":\"Image alt text\",\"STGpNQ\":\"Image options\",\"6o7+En\":\"In Your Network\",\"dSKHAa\":\"Invalid username or password\",\"MFKlMB\":\"Invite\",\"F5MZVk\":\"Invite a Friend\",\"6KlkHI\":\"Invite code\",\"MYTV5o\":\"Invite code not accepted. Check that you input it correctly and try again.\",\"UY2916\":[\"Invite codes: \",[\"invitesAvailable\"],\" available\"],\"F75w8j\":\"Join the waitlist\",\"6iVTdm\":\"Join the waitlist.\",\"SNzppu\":\"Join Waitlist\",\"Dcq5kL\":\"Language selection\",\"pVhZHk\":\"Language Settings\",\"GAmD3h\":\"Languages\",\"NgeSlx\":\"Learn More\",\"rj0Lke\":\"Learn more about this warning\",\"lvYkpV\":\"Learn more about what is public on Bluesky.\",\"kq2ga7\":\"Leave them all unchecked to see any language.\",\"QfDITI\":\"Leaving Bluesky\",\"Esfg1M\":\"Let's get your password reset!\",\"exYcTF\":\"Library\",\"1njn7W\":\"Light\",\"BvSY1i\":\"Like this feed\",\"8/ALSr\":\"Liked by\",\"zZOZj7\":\"Likes\",\"KGL/DU\":\"Limit the visibility of my account\",\"AUSVsF\":\"Limit the visibility of my account to logged-out users\",\"FuZWua\":\"List Avatar\",\"8mjA4F\":\"List Name\",\"h16FyT\":\"Lists\",\"ujW4FW\":\"Load more posts\",\"7EHsGr\":\"Load new notifications\",\"VkLESX\":\"Load new posts\",\"Z3FXyt\":\"Loading...\",\"jl0AFf\":\"Local dev server\",\"5Aq6mk\":\"Logged-out users\",\"w2yNjr\":\"Logged-out visibility\",\"cR9UpQ\":\"Login to account that is not listed\",\"kkGiug\":\"Looks like this feed is only available to users with a Bluesky account. Please sign up or sign in to view this feed!\",\"2U/gDT\":\"Make sure this is where you intend to go!\",\"xYilR2\":\"Media\",\"S9V0C/\":\"mentioned users\",\"31/84x\":\"Mentioned users\",\"zucql+\":\"Menu\",\"kTQnAw\":\"Message from server\",\"DzmsLV\":\"Moderation\",\"NTIbv4\":\"Moderation lists\",\"3j2OjF\":\"Moderation Lists\",\"FIJUJb\":\"More feeds\",\"3Siwmw\":\"More options\",\"Y17r45\":\"More post options\",\"RA1KUZ\":\"Mute Account\",\"du0opt\":\"Mute accounts\",\"25PHAB\":\"Mute list\",\"izOxJM\":\"Mute these accounts?\",\"jq7SjD\":\"Mute thread\",\"s22grX\":\"Muted accounts\",\"qUa+lV\":\"Muted Accounts\",\"gA0D9A\":\"Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private.\",\"1QJzM7\":\"Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them.\",\"qhwV2C\":\"My Account\",\"Mysqyf\":\"My Birthday\",\"6MBNS/\":\"My Feeds\",\"hKtWk2\":\"My Profile\",\"Ha6iBv\":\"My Saved Feeds\",\"6YtxFj\":\"Name\",\"8yolS6\":\"Never lose access to your followers and data.\",\"isRobC\":\"New\",\"2B7HLH\":\"New post\",\"FGrimz\":\"New Post\",\"hXzOVo\":\"Next\",\"EatZYJ\":\"Next image\",\"1UzENP\":\"No\",\"flmDTf\":\"No description\",\"zfN9gJ\":\"No result\",\"fOlAiK\":[\"No results found for \\\"\",[\"query\"],\"\\\"\"],\"kA9DpB\":[\"No results found for \",[\"0\"]],\"SVF205\":[\"No results found for \",[\"query\"]],\"xpF9po\":\"Nobody\",\"ispbnl\":\"Not Applicable\",\"iyUCYw\":\"Not Applicable.\",\"ACqM3c\":\"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.\",\"+lYa0i\":\"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.\",\"OdiASL\":\"Note: Third-party apps that display Bluesky content may not respect this setting.\",\"iDNBZe\":\"Notifications\",\"5GGAqz\":\"Oh no!\",\"UaXeX3\":\"Okay\",\"Cqo2D+\":\"One or more images is missing alt text.\",\"Kq2/SU\":[\"Only \",[\"0\"],\" can reply.\"],\"M/Q2aG\":\"Open navigation\",\"M5PuNq\":\"Opens configurable language settings\",\"S67TOE\":\"Opens list of invite codes\",\"eSqpax\":\"Opens modal for using custom domain\",\"vYwHHI\":\"Opens moderation settings\",\"0tHyB7\":\"Opens screen with all saved feeds\",\"nmRoY/\":\"Opens the app password settings page\",\"6e9Apv\":\"Opens the home feed preferences\",\"O87Dr/\":\"Opens the storybook page\",\"G+PVmg\":\"Opens the system log page\",\"Jqb7sy\":\"Opens the threads preferences\",\"b22AVl\":\"Other account\",\"n+HLOP\":\"Other service\",\"1PKxQ7\":\"Other...\",\"8F1i42\":\"Page not found\",\"8ZsakT\":\"Password\",\"ogtYkT\":\"Password updated\",\"DKeVgZ\":\"Password updated!\",\"VeZE5Q\":\"Pictures meant for adults.\",\"zgoxy5\":\"Pinned Feeds\",\"Aw5fOC\":\"Please choose your handle.\",\"5vI4sE\":\"Please choose your password.\",\"Apyknf\":\"Please confirm your email before changing it. This is a temporary requirement while email-updating tools are added, and it will soon be removed.\",\"9qpQ5O\":\"Please enter a unique name for this App Password or use our randomly generated one.\",\"hV+cYN\":\"Please enter your email.\",\"QJr5Xp\":\"Please enter your password as well:\",\"d7tryi\":\"Please tell us why you think this decision was incorrect.\",\"y28hnO\":\"Post\",\"h5RcXU\":\"Post hidden\",\"r5zLS0\":\"Post language\",\"AzCucI\":\"Post Languages\",\"tJFPmV\":\"Post not found\",\"+owNNn\":\"Posts\",\"0+DQbr\":\"Potentially Misleading Link\",\"MHk+7g\":\"Previous image\",\"HeBcM5\":\"Primary Language\",\"x8iR7V\":\"Prioritize Your Follows\",\"rjGI/Q\":\"Privacy\",\"LcET2C\":\"Privacy Policy\",\"k1ifdL\":\"Processing...\",\"vERlcd\":\"Profile\",\"MrgqOW\":\"Protect your account by verifying your email.\",\"9nSV9I\":\"Public, shareable lists of users to mute or block in bulk.\",\"p1UmBX\":\"Public, shareable lists which can drive feeds.\",\"8HFFRQ\":\"Quote post\",\"+KrAHa\":\"Quote Post\",\"WlWsdE\":\"Ratios\",\"WEYdDv\":\"Recommended\",\"QNzcT3\":\"Recommended Feeds\",\"41UoJb\":\"Recommended Users\",\"t/YqKh\":\"Remove\",\"p/cRzf\":[\"Remove \",[\"0\"],\" from my feeds?\"],\"1O32oy\":\"Remove account\",\"W44VX5\":\"Remove feed\",\"Yy3FzB\":\"Remove from my feeds\",\"5ywtDz\":\"Remove image\",\"Dw/XUh\":\"Remove image preview\",\"3fdNAy\":\"Remove this feed from my feeds?\",\"TbDEfs\":\"Remove this feed from your saved feeds?\",\"Obm5+c\":\"Removed from list\",\"N8UzTV\":\"Replies\",\"oQPadq\":\"Replies to this thread are disabled\",\"Veu9gK\":\"Reply Filters\",\"lQWbAr\":[\"Report \",[\"collectionName\"]],\"bDHSjj\":\"Report Account\",\"NKmI9f\":\"Report feed\",\"6iwm2r\":\"Report List\",\"6IcSvC\":\"Report post\",\"mkude1\":\"Repost\",\"JOV5dR\":\"Repost or quote post\",\"0zb9FX\":\"Reposted by\",\"bqG37Z\":\"Request Change\",\"pJoi/P\":\"Request to limit the visibility of my account\",\"2d9VrZ\":\"Require alt text before posting\",\"8XIT+P\":\"Required for this provider\",\"vJgYMA\":\"Reset code\",\"xEL92I\":\"Reset onboarding state\",\"RfwZxd\":\"Reset password\",\"bee/Fw\":\"Reset preferences state\",\"wToeoz\":\"Resets the onboarding state\",\"nIU7qI\":\"Resets the preferences state\",\"6gRgw8\":\"Retry\",\"hAbYQa\":\"Retry change handle\",\"tfDRzk\":\"Save\",\"KV2YQQ\":\"Save alt text\",\"y3aU20\":\"Save changes\",\"IUwGEM\":\"Save Changes\",\"Xs07Tg\":\"Save handle change\",\"BckA7m\":\"Save image crop\",\"+K+JDj\":\"Saved Feeds\",\"A1taO8\":\"Search\",\"BF8cu3\":\"Search for posts and users.\",\"CKROFy\":\"Security Step Required\",\"cNzyJW\":\"See what's next\",\"L5sM7N\":\"Select Bluesky Social\",\"o3dwub\":\"Select from an existing account\",\"GGw2AK\":\"Select service\",\"vECNLO\":\"Select which languages you want your subscribed feeds to include. If none are selected, all languages will be shown.\",\"m5aabx\":\"Select your app language for the default text to display in the app\",\"TiiOza\":\"Select your preferred language for translations in your feed.\",\"vp9yIB\":\"Send Confirmation Email\",\"65dxv8\":\"Send email\",\"i/TzEU\":\"Send Email\",\"RoafuO\":\"Send feedback\",\"4cijjm\":\"Send Report\",\"V/e7nf\":\"Set new password\",\"gwsie4\":\"Set this setting to \\\"No\\\" to hide all quote posts from your feed. Reposts will still be visible.\",\"IZjC3J\":\"Set this setting to \\\"No\\\" to hide all replies from your feed.\",\"KIgU3l\":\"Set this setting to \\\"No\\\" to hide all reposts from your feed.\",\"zaAyrz\":\"Set this setting to \\\"Yes\\\" to show replies in a threaded view. This is an experimental feature.\",\"fQV2eE\":\"Set this setting to \\\"Yes\\\" to show samples of your saved feeds in your following feed. This is an experimental feature.\",\"Tz0i8g\":\"Settings\",\"HfWHhJ\":\"Sexual activity or erotic nudity.\",\"Z8lGw6\":\"Share\",\"P33tEA\":\"Share feed\",\"uIZ2tg\":\"Share link\",\"8vETh9\":\"Show\",\"aWAdCb\":\"Show anyway\",\"NijgXr\":\"Show Posts from My Feeds\",\"T3Mt8m\":\"Show Quote Posts\",\"BlW8X/\":\"Show Replies\",\"X4GwDb\":\"Show replies by people you follow before all other replies.\",\"GiogzH\":\"Show Reposts\",\"fhY/fL\":\"Show users\",\"5lWFkC\":\"Sign in\",\"n1ekoW\":\"Sign In\",\"N9o7n5\":[\"Sign in as \",[\"0\"]],\"FT1MVS\":\"Sign in as...\",\"+UpfFC\":\"Sign into\",\"fcWrnU\":\"Sign out\",\"e+RpCP\":\"Sign up\",\"MiE4Vp\":\"Sign up or sign in to join the conversation\",\"zU+Ro7\":\"Signed in as\",\"6Uau97\":\"Skip\",\"0o5BFH\":\"Sort Replies\",\"GH1Rgk\":\"Sort replies to the same post by:\",\"1DA6ap\":\"Square\",\"aKEHLj\":\"Staging\",\"tgEXwM\":\"Status page\",\"P5jja7\":\"Storybook\",\"hQRttt\":\"Submit\",\"EDl9kS\":\"Subscribe\",\"5z3ICN\":\"Subscribe to this list\",\"TVFyMD\":\"Suggested Follows\",\"XYLcNv\":\"Support\",\"VjWeLI\":\"Switch Account\",\"D+NlUC\":\"System\",\"fP8jTZ\":\"System log\",\"HF6Iah\":\"Tall\",\"4Y5H+g\":\"Terms\",\"xowcRf\":\"Terms of Service\",\"p8Iz39\":\"Text input field\",\"GlPXQJ\":\"The account will be able to interact with you after unblocking.\",\"o4M2MP\":\"The Community Guidelines have been moved to <0/>\",\"U42lKc\":\"The Copyright Policy has been moved to <0/>\",\"G4EksE\":\"The post may have been deleted.\",\"WNR9db\":\"The Privacy Policy has been moved to <0/>\",\"LbEbIk\":[\"The support form has been moved. If you need help, please<0/> or visit \",[\"HELP_DESK_URL\"],\" to get in touch with us.\"],\"FGbRSr\":\"The Terms of Service have been moved to\",\"yUqcy2\":\"There was an unexpected issue in the application. Please let us know if this happened to you!\",\"jSe8k/\":[\"This \",[\"0\"],\" has been labeled.\"],\"KRYn8w\":[\"This \",[\"screenDescription\"],\" has been flagged:\"],\"aBX1qv\":\"This content is not viewable without a Bluesky account.\",\"xI4xW5\":\"This feed is currently receiving high traffic and is temporarily unavailable. Please try again later.\",\"lm845B\":\"This information is not shared with other users.\",\"5Pvw/O\":\"This is important in case you ever need to change your email or reset your password.\",\"sQQfZ9\":\"This is the service that keeps you online.\",\"CvX8qs\":\"This link is taking you to the following website:\",\"WKrUVy\":\"This post has been deleted.\",\"qpCA5s\":\"This warning is only available for posts with media attached.\",\"u9ThjD\":\"Thread Preferences\",\"zmXsk5\":\"Threaded Mode\",\"1x30Qt\":\"Toggle dropdown\",\"KFXQEt\":\"Transformations\",\"pi8x/S\":\"Translate\",\"KDw4GX\":\"Try again\",\"RF3/jE\":\"Un-block list\",\"+/SGK9\":\"Un-mute list\",\"nc4Wfd\":\"Unable to contact your service. Please check your Internet connection.\",\"tuS5Jz\":\"Unblock\",\"0VrZZv\":\"Unblock Account\",\"6pYY4t\":\"Undo repost\",\"05f3UA\":\"Unfortunately, you do not meet the requirements to create an account.\",\"wx9wqY\":\"Unmute Account\",\"s12/Py\":\"Unmute thread\",\"EvGmWj\":\"Unpin moderation list\",\"vaz2uI\":[\"Update \",[\"displayName\"],\" in Lists\"],\"YXMY4w\":\"Update Available\",\"RXbEvi\":\"Updating...\",\"Vwkfp4\":\"Upload a text file to:\",\"jTdnU6\":\"Use app passwords to login to other Bluesky clients without giving full access to your account or password.\",\"CH1am9\":\"Use default provider\",\"ZG8UvP\":\"Use this to sign into the other app along with your handle.\",\"cKXwwI\":\"Used by:\",\"t4Yp4Z\":\"User handle\",\"8tsrUV\":\"User Lists\",\"nZx9mr\":\"Username or email address\",\"Sxm8rQ\":\"Users\",\"Hbhyg2\":\"users followed by <0/>\",\"1Z9Mdf\":\"Users followed by <0/>\",\"9k1aoj\":[\"Users in \\\"\",[\"0\"],\"\\\"\"],\"MBOY4U\":\"Verify email\",\"Ejyv0o\":\"Verify my email\",\"9czCrB\":\"Verify My Email\",\"ibSVGR\":\"Verify New Email\",\"nHsQde\":\"View debug entry\",\"47jzzd\":\"View the avatar\",\"wK4H1r\":\"Visit Site\",\"qjBGxf\":\"We're so excited to have you join us!\",\"1xpRAp\":\"We're sorry, but this content is not viewable without a Bluesky account.\",\"2iYPLH\":\"We're sorry, but this feed is currently receiving high traffic and is temporarily unavailable. Please try again later.\",\"WBQOQ0\":\"We're sorry, but your search could not be completed. Please try again in a few minutes.\",\"/mVVX2\":\"We're sorry! We can't find the page you were looking for.\",\"meB+tZ\":\"Welcome to <0>Bluesky\",\"Mj7rl/\":[\"What is the issue with this \",[\"collectionName\"],\"?\"],\"3qn29J\":\"Which languages are used in this post?\",\"uawiGa\":\"Which languages would you like to see in your algorithmic feeds?\",\"yvDWMs\":\"Who can reply\",\"GKc8LT\":\"Who can reply?\",\"I5S9ZE\":\"Wide\",\"y02THm\":\"Write post\",\"6ckZRB\":\"Write your reply\",\"l75CjT\":\"Yes\",\"STPj0e\":\"You can change hosting providers at any time.\",\"67nRLM\":\"You can now sign in with your new password.\",\"lIcbCU\":\"You don't have any invite codes yet! We'll send you some when you've been on Bluesky for a little longer.\",\"aFZZYi\":\"You don't have any pinned feeds.\",\"kX/cKs\":\"You don't have any saved feeds!\",\"nbz3Iq\":\"You don't have any saved feeds.\",\"RkXibf\":\"You have blocked the author or you have been blocked by the author.\",\"CbrOgr\":\"You have no feeds.\",\"tCLJ9E\":\"You have no lists.\",\"soH9qC\":\"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.\",\"NDgp3i\":\"You have not created any app passwords yet. You can create one by pressing the button below.\",\"grqdXb\":\"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.\",\"RrDyEb\":\"You will receive an email with a \\\"reset code.\\\" Enter that code here, then enter your new password.\",\"gdRnT7\":\"Your account\",\"k7hmsH\":\"Your birth date\",\"tBpzKB\":\"Your email appears to be invalid.\",\"OubkcP\":\"Your email has been saved! We'll be in touch soon.\",\"z2L+/9\":\"Your email has been updated but not verified. As a next step, please verify your new email.\",\"XZlIVw\":\"Your email has not yet been verified. This is an important security step which we recommend.\",\"qv9f4I\":\"Your full handle will be\",\"lvcqqG\":\"Your hosting provider\",\"fbFyAZ\":\"Your invite codes are hidden when logged in using an App Password\",\"Oqt/PG\":\"Your posts, likes, and blocks are public. Mutes are private.\",\"okRPtW\":\"Your profile\",\"rsWkoR\":\"Your profile and account will not be visible to anyone visiting the Bluesky app without an account, or to account holders who are not logged in. Enabling this will not make your profile private.\",\"jjscPy\":\"Your profile and content will not be visible to anyone visiting the Bluesky app without an account. Enabling this will not make your profile private.\",\"ogY7EU\":\"Your profile and posts will not be visible to people visiting the Bluesky app or website without having an account and being logged in.\",\"MvWO9d\":\"Your user handle\"}")}; \ No newline at end of file diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index 1f3ef567ed..9be56323ec 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -47,7 +47,7 @@ msgstr "" msgid "{invitesAvailable} invite codes available" msgstr "" -#: src/view/screens/Search/Search.tsx:88 +#: src/view/screens/Search/Search.tsx:87 msgid "{message}" msgstr "" @@ -262,9 +262,9 @@ msgstr "" #: src/view/com/auth/login/LoginForm.tsx:249 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 #: src/view/com/modals/report/InputIssueDetails.tsx:45 -#: src/view/com/post-thread/PostThread.tsx:395 -#: src/view/com/post-thread/PostThread.tsx:445 -#: src/view/com/post-thread/PostThread.tsx:453 +#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:438 +#: src/view/com/post-thread/PostThread.tsx:446 #: src/view/com/profile/ProfileHeader.tsx:672 msgid "Back" msgstr "" @@ -303,7 +303,7 @@ msgstr "" msgid "Blocked accounts" msgstr "" -#: src/view/screens/ModerationBlockedAccounts.tsx:106 +#: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "" @@ -311,11 +311,11 @@ msgstr "" msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "" -#: src/view/screens/ModerationBlockedAccounts.tsx:114 +#: 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 "" -#: src/view/com/post-thread/PostThread.tsx:251 +#: src/view/com/post-thread/PostThread.tsx:250 msgid "Blocked post." msgstr "" @@ -388,7 +388,7 @@ msgstr "" #: src/view/com/modals/LinkWarning.tsx:85 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 -#: src/view/screens/Search/Search.tsx:592 +#: src/view/screens/Search/Search.tsx:584 #: src/view/shell/desktop/Search.tsx:182 msgid "Cancel" msgstr "" @@ -493,7 +493,7 @@ msgid "Clear all storage data (restart after this)" msgstr "" #: src/view/com/util/forms/SearchInput.tsx:73 -#: src/view/screens/Search/Search.tsx:577 +#: src/view/screens/Search/Search.tsx:569 msgid "Clear search query" msgstr "" @@ -686,7 +686,7 @@ msgstr "" msgid "Delete this post?" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:243 +#: src/view/com/post-thread/PostThread.tsx:242 msgid "Deleted post." msgstr "" @@ -837,7 +837,7 @@ msgstr "" msgid "Enter your username and password" msgstr "" -#: src/view/screens/Search/Search.tsx:106 +#: src/view/screens/Search/Search.tsx:105 msgid "Error:" msgstr "" @@ -854,7 +854,7 @@ msgstr "" msgid "Failed to load recommended feeds" msgstr "" -#: src/view/screens/Feeds.tsx:560 +#: src/view/screens/Feeds.tsx:554 msgid "Feed offline" msgstr "" @@ -884,11 +884,11 @@ msgstr "" msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "" -#: src/view/screens/Search/Search.tsx:422 +#: src/view/screens/Search/Search.tsx:414 msgid "Find users on Bluesky" msgstr "" -#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:412 msgid "Find users with the search tool on the right" msgstr "" @@ -1222,8 +1222,8 @@ msgstr "" msgid "Lists" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:260 -#: src/view/com/post-thread/PostThread.tsx:268 +#: src/view/com/post-thread/PostThread.tsx:259 +#: src/view/com/post-thread/PostThread.tsx:267 msgid "Load more posts" msgstr "" @@ -1275,7 +1275,7 @@ msgstr "" msgid "Mentioned users" msgstr "" -#: src/view/screens/Search/Search.tsx:537 +#: src/view/screens/Search/Search.tsx:529 msgid "Menu" msgstr "" @@ -1337,11 +1337,11 @@ msgstr "" msgid "Muted accounts" msgstr "" -#: src/view/screens/ModerationMutedAccounts.tsx:106 +#: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "" -#: src/view/screens/ModerationMutedAccounts.tsx:114 +#: 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 "" @@ -1384,7 +1384,7 @@ msgid "New" msgstr "" #: src/view/com/feeds/FeedPage.tsx:200 -#: src/view/screens/Feeds.tsx:511 +#: src/view/screens/Feeds.tsx:505 #: src/view/screens/Profile.tsx:354 #: src/view/screens/ProfileFeed.tsx:430 #: src/view/screens/ProfileList.tsx:193 @@ -1436,9 +1436,9 @@ msgstr "" #~ msgstr "" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:271 -#: src/view/screens/Search/Search.tsx:299 -#: src/view/screens/Search/Search.tsx:615 +#: src/view/screens/Search/Search.tsx:263 +#: src/view/screens/Search/Search.tsx:291 +#: src/view/screens/Search/Search.tsx:607 #: src/view/shell/desktop/Search.tsx:210 msgid "No results found for {query}" msgstr "" @@ -1613,12 +1613,12 @@ msgstr "" #~ msgstr "" #: src/view/com/composer/Composer.tsx:337 -#: src/view/com/post-thread/PostThread.tsx:226 +#: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:385 +#: src/view/com/post-thread/PostThread.tsx:378 msgid "Post hidden" msgstr "" @@ -1630,7 +1630,7 @@ msgstr "" msgid "Post Languages" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:437 +#: src/view/com/post-thread/PostThread.tsx:430 msgid "Post not found" msgstr "" @@ -1895,8 +1895,8 @@ msgstr "" #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:64 -#: src/view/screens/Search/Search.tsx:401 -#: src/view/screens/Search/Search.tsx:567 +#: src/view/screens/Search/Search.tsx:393 +#: src/view/screens/Search/Search.tsx:559 #: src/view/shell/bottom-bar/BottomBar.tsx:159 #: src/view/shell/desktop/LeftNav.tsx:322 #: src/view/shell/desktop/Search.tsx:161 @@ -2153,7 +2153,7 @@ msgstr "" msgid "Subscribe to this list" msgstr "" -#: src/view/screens/Search/Search.tsx:357 +#: src/view/screens/Search/Search.tsx:349 msgid "Suggested Follows" msgstr "" @@ -2203,7 +2203,7 @@ msgstr "" msgid "The Copyright Policy has been moved to <0/>" msgstr "" -#: src/view/com/post-thread/PostThread.tsx:440 +#: src/view/com/post-thread/PostThread.tsx:433 msgid "The post may have been deleted." msgstr "" @@ -2440,7 +2440,7 @@ msgstr "" #~ msgid "We're sorry, but this feed is currently receiving high traffic and is temporarily unavailable. Please try again later." #~ msgstr "" -#: src/view/screens/Search/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:236 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "" @@ -2520,20 +2520,20 @@ msgstr "" msgid "You don't have any saved feeds." msgstr "" -#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:381 msgid "You have blocked the author or you have been blocked by the author." msgstr "" -#: src/view/com/feeds/ProfileFeedgens.tsx:141 +#: src/view/com/feeds/ProfileFeedgens.tsx:134 msgid "You have no feeds." msgstr "" #: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:145 +#: src/view/com/lists/ProfileLists.tsx:138 msgid "You have no lists." msgstr "" -#: src/view/screens/ModerationBlockedAccounts.tsx:131 +#: 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 "" @@ -2541,7 +2541,7 @@ msgstr "" msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "" -#: src/view/screens/ModerationMutedAccounts.tsx:130 +#: 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 "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index 8baf0ca087..5acbe2c2f6 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -39,7 +39,7 @@ msgstr "{invitesAvailable} código de invitación disponible" msgid "{invitesAvailable} invite codes available" msgstr "{invitesAvailable} códigos de invitación disponibles" -#: src/view/screens/Search/Search.tsx:88 +#: src/view/screens/Search/Search.tsx:87 msgid "{message}" msgstr "{message}" @@ -234,9 +234,9 @@ msgstr "Desnudez artística o no erótica." #: src/view/com/auth/login/LoginForm.tsx:249 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 #: src/view/com/modals/report/InputIssueDetails.tsx:45 -#: src/view/com/post-thread/PostThread.tsx:395 -#: src/view/com/post-thread/PostThread.tsx:445 -#: src/view/com/post-thread/PostThread.tsx:453 +#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:438 +#: src/view/com/post-thread/PostThread.tsx:446 #: src/view/com/profile/ProfileHeader.tsx:672 msgid "Back" msgstr "Regresar" @@ -275,7 +275,7 @@ msgstr "¿Bloquear estas cuentas?" msgid "Blocked accounts" msgstr "Cuentas bloqueadas" -#: src/view/screens/ModerationBlockedAccounts.tsx:106 +#: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "Cuentas bloqueadas" @@ -283,11 +283,11 @@ msgstr "Cuentas bloqueadas" 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." -#: src/view/screens/ModerationBlockedAccounts.tsx:114 +#: 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 "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:251 +#: src/view/com/post-thread/PostThread.tsx:250 msgid "Blocked post." msgstr "Publicación bloqueada" @@ -360,7 +360,7 @@ msgstr "Sólo puede contener letras, números, espacios, guiones y guiones bajos #: src/view/com/modals/LinkWarning.tsx:85 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 -#: src/view/screens/Search/Search.tsx:592 +#: src/view/screens/Search/Search.tsx:584 #: src/view/shell/desktop/Search.tsx:182 msgid "Cancel" msgstr "Cancelar" @@ -461,7 +461,7 @@ 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:73 -#: src/view/screens/Search/Search.tsx:577 +#: src/view/screens/Search/Search.tsx:569 msgid "Clear search query" msgstr "Borrar consulta de búsqueda" @@ -650,7 +650,7 @@ msgstr "Borrar una publicación" msgid "Delete this post?" msgstr "¿Borrar esta publicación?" -#: src/view/com/post-thread/PostThread.tsx:243 +#: src/view/com/post-thread/PostThread.tsx:242 msgid "Deleted post." msgstr "Se borró la publicación." @@ -801,7 +801,7 @@ msgstr "Introduce tu nueva dirección de correo electrónico a continuación." msgid "Enter your username and password" msgstr "Introduce tu nombre de usuario y contraseña" -#: src/view/screens/Search/Search.tsx:106 +#: src/view/screens/Search/Search.tsx:105 msgid "Error:" msgstr "Error:" @@ -818,7 +818,7 @@ msgstr "Expandir el texto alt" msgid "Failed to load recommended feeds" msgstr "Error al cargar las noticias recomendadas" -#: src/view/screens/Feeds.tsx:560 +#: src/view/screens/Feeds.tsx:554 msgid "Feed offline" msgstr "Noticias fuera de línea" @@ -848,11 +848,11 @@ msgstr "Se crean las noticias por los usuarios para crear colecciones de conteni msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Las noticias son algoritmos personalizados que los usuarios construyen con un poco de experiencia en codificación. <0/> para más información." -#: src/view/screens/Search/Search.tsx:422 +#: src/view/screens/Search/Search.tsx:414 msgid "Find users on Bluesky" msgstr "Encontrar usuarios en Bluesky" -#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:412 msgid "Find users with the search tool on the right" msgstr "Encuentra usuarios con la herramienta de búsqueda de la derecha" @@ -1157,8 +1157,8 @@ msgstr "Nombre de la lista" msgid "Lists" msgstr "Listas" -#: src/view/com/post-thread/PostThread.tsx:260 -#: src/view/com/post-thread/PostThread.tsx:268 +#: src/view/com/post-thread/PostThread.tsx:259 +#: src/view/com/post-thread/PostThread.tsx:267 msgid "Load more posts" msgstr "Cargar más publicaciones" @@ -1206,7 +1206,7 @@ msgstr "usuarios mencionados" msgid "Mentioned users" msgstr "Usuarios mencionados" -#: src/view/screens/Search/Search.tsx:537 +#: src/view/screens/Search/Search.tsx:529 msgid "Menu" msgstr "Menú" @@ -1264,11 +1264,11 @@ msgstr "Silenciar el hilo" msgid "Muted accounts" msgstr "Cuentas silenciadas" -#: src/view/screens/ModerationMutedAccounts.tsx:106 +#: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "Cuentas silenciadas" -#: src/view/screens/ModerationMutedAccounts.tsx:114 +#: 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 "Las cuentas silenciadas eliminan sus publicaciones de tu canal de noticias y de tus notificaciones. Las cuentas silenciadas son completamente privadas." @@ -1307,7 +1307,7 @@ msgid "New" msgstr "Nuevo" #: src/view/com/feeds/FeedPage.tsx:200 -#: src/view/screens/Feeds.tsx:511 +#: src/view/screens/Feeds.tsx:505 #: src/view/screens/Profile.tsx:354 #: src/view/screens/ProfileFeed.tsx:430 #: src/view/screens/ProfileList.tsx:193 @@ -1354,9 +1354,9 @@ 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:271 -#: src/view/screens/Search/Search.tsx:299 -#: src/view/screens/Search/Search.tsx:615 +#: src/view/screens/Search/Search.tsx:263 +#: src/view/screens/Search/Search.tsx:291 +#: src/view/screens/Search/Search.tsx:607 #: src/view/shell/desktop/Search.tsx:210 msgid "No results found for {query}" msgstr "No se han encontrado resultados para {query}" @@ -1519,12 +1519,12 @@ msgstr "" #~ msgstr "Por favor, dinos por qué crees que esta decisión fue incorrecta." #: src/view/com/composer/Composer.tsx:337 -#: src/view/com/post-thread/PostThread.tsx:226 +#: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" msgstr "Publicación" -#: src/view/com/post-thread/PostThread.tsx:385 +#: src/view/com/post-thread/PostThread.tsx:378 msgid "Post hidden" msgstr "Publicación oculta" @@ -1536,7 +1536,7 @@ msgstr "Lenguaje de la publicación" msgid "Post Languages" msgstr "Lenguajes de la publicación" -#: src/view/com/post-thread/PostThread.tsx:437 +#: src/view/com/post-thread/PostThread.tsx:430 msgid "Post not found" msgstr "Publicación no encontrada" @@ -1780,8 +1780,8 @@ msgstr "Guardar canales de noticias" #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:64 -#: src/view/screens/Search/Search.tsx:401 -#: src/view/screens/Search/Search.tsx:567 +#: src/view/screens/Search/Search.tsx:393 +#: src/view/screens/Search/Search.tsx:559 #: src/view/shell/bottom-bar/BottomBar.tsx:159 #: src/view/shell/desktop/LeftNav.tsx:322 #: src/view/shell/desktop/Search.tsx:161 @@ -2030,7 +2030,7 @@ msgstr "Suscribirse" msgid "Subscribe to this list" msgstr "Suscribirse a esta lista" -#: src/view/screens/Search/Search.tsx:357 +#: src/view/screens/Search/Search.tsx:349 msgid "Suggested Follows" msgstr "Usuarios sugeridos a seguir" @@ -2076,7 +2076,7 @@ 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/view/com/post-thread/PostThread.tsx:440 +#: src/view/com/post-thread/PostThread.tsx:433 msgid "The post may have been deleted." msgstr "Es posible que se haya borrado la publicación." @@ -2301,7 +2301,7 @@ msgstr "Visitar el sitio" msgid "We're so excited to have you join us!" msgstr "¡Nos hace mucha ilusión que te unas a nosotros!" -#: src/view/screens/Search/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:236 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." @@ -2381,20 +2381,20 @@ 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:388 +#: src/view/com/post-thread/PostThread.tsx:381 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/feeds/ProfileFeedgens.tsx:141 +#: src/view/com/feeds/ProfileFeedgens.tsx:134 msgid "You have no feeds." msgstr "No tienes noticias." #: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:145 +#: src/view/com/lists/ProfileLists.tsx:138 msgid "You have no lists." msgstr "No tienes listas." -#: src/view/screens/ModerationBlockedAccounts.tsx:131 +#: 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." @@ -2402,7 +2402,7 @@ msgstr "Aún no has bloqueado ninguna cuenta. Para bloquear una cuenta, ve a su 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:130 +#: 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." diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 25c072ed16..7588e96e31 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -39,7 +39,7 @@ msgstr "{invitesAvailable} code d’invitation disponible" msgid "{invitesAvailable} invite codes available" msgstr "{invitesAvailable} codes d’invitation disponibles" -#: src/view/screens/Search/Search.tsx:88 +#: src/view/screens/Search/Search.tsx:87 msgid "{message}" msgstr "{message}" @@ -234,9 +234,9 @@ msgstr "Nudité artistique ou non érotique." #: src/view/com/auth/login/LoginForm.tsx:249 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 #: src/view/com/modals/report/InputIssueDetails.tsx:45 -#: src/view/com/post-thread/PostThread.tsx:395 -#: src/view/com/post-thread/PostThread.tsx:445 -#: src/view/com/post-thread/PostThread.tsx:453 +#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:438 +#: src/view/com/post-thread/PostThread.tsx:446 #: src/view/com/profile/ProfileHeader.tsx:672 msgid "Back" msgstr "Arrière" @@ -275,7 +275,7 @@ msgstr "Bloquer ces comptes ?" msgid "Blocked accounts" msgstr "Comptes bloqués" -#: src/view/screens/ModerationBlockedAccounts.tsx:106 +#: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "Comptes bloqués" @@ -283,11 +283,11 @@ msgstr "Comptes bloqués" 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." -#: src/view/screens/ModerationBlockedAccounts.tsx:114 +#: 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 "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:251 +#: src/view/com/post-thread/PostThread.tsx:250 msgid "Blocked post." msgstr "Publication bloquée." @@ -360,7 +360,7 @@ msgstr "Ne peut contenir que des lettres, des chiffres, des espaces, des tirets #: src/view/com/modals/LinkWarning.tsx:85 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 -#: src/view/screens/Search/Search.tsx:592 +#: src/view/screens/Search/Search.tsx:584 #: src/view/shell/desktop/Search.tsx:182 msgid "Cancel" msgstr "Annuler" @@ -461,7 +461,7 @@ 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:73 -#: src/view/screens/Search/Search.tsx:577 +#: src/view/screens/Search/Search.tsx:569 msgid "Clear search query" msgstr "Effacer la recherche" @@ -650,7 +650,7 @@ msgstr "Supprimer publication" msgid "Delete this post?" msgstr "Supprimer cette publication ?" -#: src/view/com/post-thread/PostThread.tsx:243 +#: src/view/com/post-thread/PostThread.tsx:242 msgid "Deleted post." msgstr "Publication supprimée." @@ -801,7 +801,7 @@ msgstr "Entrez votre nouvelle e-mail ci-dessous." msgid "Enter your username and password" msgstr "Entrez votre nom d’utilisateur et votre mot de passe" -#: src/view/screens/Search/Search.tsx:106 +#: src/view/screens/Search/Search.tsx:105 msgid "Error:" msgstr "Erreur :" @@ -818,7 +818,7 @@ msgstr "Développer le texte alt" msgid "Failed to load recommended feeds" msgstr "Échec du chargement des fils d’actu recommandés" -#: src/view/screens/Feeds.tsx:560 +#: src/view/screens/Feeds.tsx:554 msgid "Feed offline" msgstr "Fil d’actu hors ligne" @@ -848,11 +848,11 @@ msgstr "Les fils d’actu sont créés par les utilisateurs pour rassembler du c msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Les fils d’actu sont des algorithmes personnalisés que les utilisateurs construisent avec un peu d’expertise en codage. <0/> pour obtenir de plus amples informations." -#: src/view/screens/Search/Search.tsx:422 +#: src/view/screens/Search/Search.tsx:414 msgid "Find users on Bluesky" msgstr "Trouver des utilisateurs sur Bluesky" -#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:412 msgid "Find users with the search tool on the right" msgstr "Trouvez des utilisateurs à l’aide de l’outil de recherche, à droite." @@ -1157,8 +1157,8 @@ msgstr "Nom de liste" msgid "Lists" msgstr "Listes" -#: src/view/com/post-thread/PostThread.tsx:260 -#: src/view/com/post-thread/PostThread.tsx:268 +#: src/view/com/post-thread/PostThread.tsx:259 +#: src/view/com/post-thread/PostThread.tsx:267 msgid "Load more posts" msgstr "Charger plus d’articles" @@ -1206,7 +1206,7 @@ msgstr "utilisateurs mentionnés" msgid "Mentioned users" msgstr "Utilisateurs mentionnés" -#: src/view/screens/Search/Search.tsx:537 +#: src/view/screens/Search/Search.tsx:529 msgid "Menu" msgstr "Menu" @@ -1264,11 +1264,11 @@ msgstr "Mettre fil en sourdine" msgid "Muted accounts" msgstr "Comptes en sourdine" -#: src/view/screens/ModerationMutedAccounts.tsx:106 +#: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "Comptes en sourdine" -#: src/view/screens/ModerationMutedAccounts.tsx:114 +#: 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 "Les comptes mis en sourdine voient leurs publications supprimées de votre fil d’actualité et de vos notifications. Cette option est totalement privée." @@ -1307,7 +1307,7 @@ msgid "New" msgstr "Nouveau" #: src/view/com/feeds/FeedPage.tsx:200 -#: src/view/screens/Feeds.tsx:511 +#: src/view/screens/Feeds.tsx:505 #: src/view/screens/Profile.tsx:354 #: src/view/screens/ProfileFeed.tsx:430 #: src/view/screens/ProfileList.tsx:193 @@ -1354,9 +1354,9 @@ 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:271 -#: src/view/screens/Search/Search.tsx:299 -#: src/view/screens/Search/Search.tsx:615 +#: src/view/screens/Search/Search.tsx:263 +#: src/view/screens/Search/Search.tsx:291 +#: src/view/screens/Search/Search.tsx:607 #: src/view/shell/desktop/Search.tsx:210 msgid "No results found for {query}" msgstr "Aucun résultat trouvé pour {query}" @@ -1519,12 +1519,12 @@ msgstr "" #~ msgstr "Dites-nous pourquoi vous pensez que cette décision était incorrecte." #: src/view/com/composer/Composer.tsx:337 -#: src/view/com/post-thread/PostThread.tsx:226 +#: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" msgstr "Publication" -#: src/view/com/post-thread/PostThread.tsx:385 +#: src/view/com/post-thread/PostThread.tsx:378 msgid "Post hidden" msgstr "Publications cachées" @@ -1536,7 +1536,7 @@ msgstr "Langue de publication" msgid "Post Languages" msgstr "Langues de publication" -#: src/view/com/post-thread/PostThread.tsx:437 +#: src/view/com/post-thread/PostThread.tsx:430 msgid "Post not found" msgstr "Publication introuvable" @@ -1780,8 +1780,8 @@ msgstr "Fils d’actu enregistrés" #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:64 -#: src/view/screens/Search/Search.tsx:401 -#: src/view/screens/Search/Search.tsx:567 +#: src/view/screens/Search/Search.tsx:393 +#: src/view/screens/Search/Search.tsx:559 #: src/view/shell/bottom-bar/BottomBar.tsx:159 #: src/view/shell/desktop/LeftNav.tsx:322 #: src/view/shell/desktop/Search.tsx:161 @@ -2030,7 +2030,7 @@ msgstr "S’abonner" msgid "Subscribe to this list" msgstr "S’abonner à cette liste" -#: src/view/screens/Search/Search.tsx:357 +#: src/view/screens/Search/Search.tsx:349 msgid "Suggested Follows" msgstr "Suivis suggérés" @@ -2076,7 +2076,7 @@ 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/view/com/post-thread/PostThread.tsx:440 +#: src/view/com/post-thread/PostThread.tsx:433 msgid "The post may have been deleted." msgstr "Cette publication a peut-être été supprimée." @@ -2301,7 +2301,7 @@ msgstr "Visiter le site" msgid "We're so excited to have you join us!" msgstr "Nous sommes ravis de vous accueillir !" -#: src/view/screens/Search/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:236 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." @@ -2381,20 +2381,20 @@ 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:388 +#: src/view/com/post-thread/PostThread.tsx:381 msgid "You have blocked the author or you have been blocked by the author." msgstr "Vous avez bloqué cet auteur ou il/elle vous a bloqué." -#: src/view/com/feeds/ProfileFeedgens.tsx:141 +#: src/view/com/feeds/ProfileFeedgens.tsx:134 msgid "You have no feeds." msgstr "Vous n’avez aucun fil." #: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:145 +#: src/view/com/lists/ProfileLists.tsx:138 msgid "You have no lists." msgstr "Vous n’avez aucune liste." -#: src/view/screens/ModerationBlockedAccounts.tsx:131 +#: 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 compte » dans le menu de son compte." @@ -2402,7 +2402,7 @@ msgstr "Vous n’avez pas encore bloqué de comptes. Pour bloquer un compte, acc 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:130 +#: 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 mis aucun compte en sourdine. Pour désactiver un compte, allez sur son profil et sélectionnez « Désactiver compte » dans le menu de son compte." diff --git a/src/locale/locales/hi/messages.js b/src/locale/locales/hi/messages.js deleted file mode 100644 index fd35fb8a78..0000000000 --- a/src/locale/locales/hi/messages.js +++ /dev/null @@ -1 +0,0 @@ -/*eslint-disable*/module.exports={messages:JSON.parse("{\"PBodTo\":\"- फ़ीड का अंत -\",\"EtUMsZ\":\"यह चेतावनी केवल मीडिया वाले पोस्ट के लिए उपलब्ध है।\",\"ebOBhv\":[[\"0\",\"plural\",{\"one\":[\"#\",\" invite code available\"],\"other\":[\"#\",\" invite codes available\"]}]],\"J/hVSQ\":[[\"0\"]],\"hZQerY\":[[\"0\"],\" \",[\"purposeLabel\"],\" सूची\"],\"zgN03j\":[[\"invitesAvailable\",\"plural\",{\"one\":[\"Invite codes: \",\"#\",\" available\"],\"other\":[\"Invite codes: \",\"#\",\" available\"]}]],\"OyEWua\":[[\"invitesAvailable\"],\" invite code available\"],\"eFIdHP\":[[\"invitesAvailable\"],\" invite codes available\"],\"wapGcj\":[[\"message\"]],\"umrH9L\":\"<0/> members\",\"gMjqbV\":\"<0>अपना<1>पसंदीदा<2>फ़ीड चुनें\",\"F657la\":\"<0>कुछ<1>पसंदीदा उपयोगकर्ताओं<2>का अनुसरण करें\",\"6RmyWt\":\"<0>इधर आपका ऐप पासवर्ड है। इसे अपने हैंडल के साथ दूसरे ऐप में साइन करने के लिए उपयोग करें।।\",\"GH9ldj\":\"<0>Note: This setting may not be respected by third-party apps that display Bluesky content.\",\"Ga0T2l\":\"<0>Note: Your profile and posts will remain publicly available. Third-party apps that display Bluesky content may not respect this setting.\",\"XCTqGE\":\"ऐप का एक नया संस्करण उपलब्ध है. कृपया ऐप का उपयोग जारी रखने के लिए अपडेट करें।\",\"AnNF5e\":\"प्रवेर्शयोग्यता\",\"AeXO77\":\"अकाउंट\",\"4WY4MD\":\"अकाउंट के विकल्प\",\"m16xKo\":\"ऐड करो\",\"fBBX+K\":\"सामग्री चेतावनी जोड़ें\",\"JU3hs2\":\"इस सूची में किसी को जोड़ें\",\"MPPZ54\":\"अकाउंट जोड़ें\",\"LkA8jz\":\"इस फ़ोटो में विवरण जोड़ें\",\"Z8idyM\":\"विवरण जोड़ें\",\"AoXl11\":\"रिपोर्ट करने के लिए विवरण जोड़ें\",\"iE6B/9\":\"लिंक कार्ड जोड़ें\",\"EXHdP1\":\"लिंक कार्ड जोड़ें:\",\"x6laaL\":\"अपने डोमेन में निम्नलिखित DNS रिकॉर्ड जोड़ें:\",\"UmzMP4\":\"सूचियों में जोड़ें\",\"hCrQ0L\":\"इस फ़ीड को सहेजें\",\"GluCXm\":\"Added to list\",\"jRrQFe\":\"पसंद की संख्या को समायोजित करें उत्तर को आपके फ़ीड में दिखाया जाना चाहिए।।\",\"qLa52r\":\"वयस्क सामग्री\",\"sxkWRg\":\"विकसित\",\"u2HO/d\":\"ALT\",\"u/DP73\":\"वैकल्पिक पाठ\",\"0QlT7/\":\"ऑल्ट टेक्स्ट अंधा और कम दृश्य लोगों के लिए छवियों का वर्णन करता है, और हर किसी को संदर्भ देने में मदद करता है।।\",\"woXbjq\":[[\"0\"],\" को ईमेल भेजा गया है। इसमें एक OTP कोड शामिल है जिसे आप नीचे दर्ज कर सकते हैं।।\"],\"Fon2dK\":[[\"0\"],\" को ईमेल भेजा गया है। इसमें एक OTP कोड शामिल है जिसे आप नीचे दर्ज कर सकते हैं।।\"],\"HZFm5R\":\"और\",\"fdjKGe\":\"ऐप भाषा\",\"SMmUnj\":\"ऐप पासवर्ड\",\"8q4WlH\":\"ऐप पासवर्ड\",\"e6un1h\":\"Appeal Decision\",\"c0PCYD\":\"Appeal this decision\",\"oifO1p\":\"Appeal this decision.\",\"aAIQg2\":\"दिखावट\",\"9K5XIM\":\"Apps that respect this setting, including the official Bluesky app and bsky.app website, won't show your content to logged out users.\",\"SSDZ+T\":[\"क्या आप वाकई ऐप पासवर्ड \\\"\",[\"name\"],\"\\\" हटाना चाहते हैं?\"],\"0BIeIs\":\"क्या आप वाकई इस ड्राफ्ट को हटाना करना चाहेंगे?\",\"6foA8n\":\"क्या आप वास्तव में इसे करना चाहते हैं?\",\"/mSd6b\":\"क्या आप वास्तव में इसे करना चाहते हैं? इसे असंपादित नहीं किया जा सकता है।\",\"EbvWd3\":\"कलात्मक या गैर-कामुक नग्नता।।\",\"uVotT3\":\"Ask apps to limit the visibility of my account\",\"iH8pgl\":\"वापस\",\"ehOkF+\":\"मूल बातें\",\"+gCI2a\":\"जन्मदिन\",\"pieVBA\":\"जन्मदिन:\",\"m1dqxu\":\"खाता ब्लॉक करें\",\"ffIfdM\":\"खाता ब्लॉक करें\",\"hIysMc\":\"Block list\",\"fdYcMy\":\"खाता ब्लॉक करें?\",\"KWykPE\":\"ब्लॉक किए गए खाते\",\"JuqQpF\":\"ब्लॉक किए गए खाते\",\"HG4qt4\":\"अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते।\",\"8LNSUt\":\"अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते। आप उनकी सामग्री नहीं देख पाएंगे और उन्हें आपकी सामग्री देखने से रोका जाएगा।\",\"HFCE4A\":\"ब्लॉक पोस्ट।\",\"zl+QbX\":\"अवरोधन सार्वजनिक है. अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते।\",\"7A9u1j\":\"Bluesky\",\"ZHmKSm\":\"Bluesky लचीला है।।\",\"odLrdl\":\"Bluesky खुला है।।\",\"/LsWK4\":\"Bluesky सार्वजनिक है।।\",\"C50OGr\":\"ब्लूस्की एक स्वस्थ समुदाय बनाने के लिए आमंत्रित करता है। यदि आप किसी को आमंत्रित नहीं करते हैं, तो आप प्रतीक्षा सूची के लिए साइन अप कर सकते हैं और हम जल्द ही एक भेज देंगे।।\",\"u9cCQU\":\"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.\",\"klVoaP\":\"Bluesky.Social\",\"qxBitM\":[\"Build version \",[\"0\"],\" \",[\"1\"]],\"rT2cV+\":\"कैमरा\",\"JGGrPC\":\"केवल अक्षर, संख्या, रिक्त स्थान, डैश और अंडरस्कोर हो सकते हैं। कम से कम 4 अक्षर लंबा होना चाहिए, लेकिन 32 अक्षरों से अधिक लंबा नहीं होना चाहिए।।\",\"dEgA5A\":\"कैंसिल\",\"aMH9rr\":\"अकाउंट बंद मत करो\",\"kc3E4R\":\"ऑल्ट टेक्स्ट मत जोड़ें\",\"wg4LHQ\":\"नाम मत बदलो\",\"hFL1Li\":\"तस्वीर को क्रॉप मत करो\",\"tijH8t\":\"प्रोफ़ाइल संपादन मत करो\",\"Qe4C/d\":\"कोटे पोस्ट मत करो\",\"5TviPn\":\"खोज मत करो\",\"nss3UV\":\"प्रतीक्षा सूची पंजीकरण मत करो\",\"o+XJ9D\":\"परिवर्तन\",\"pQco5R\":\"हैंडल बदलें\",\"Q5e1U/\":\"हैंडल बदलें\",\"a3NAfL\":\"मेरा ईमेल बदलें\",\"4vatyk\":\"मेरा ईमेल बदलें\",\"Yn3C90\":\"कुछ अनुशंसित फ़ीड देखें. उन्हें अपनी पिन की गई फ़ीड की सूची में जोड़ने के लिए + टैप करें।\",\"ioZXIH\":\"कुछ अनुशंसित उपयोगकर्ताओं की जाँच करें। ऐसे ही उपयोगकर्ता देखने के लिए उनका अनुसरण करें।\",\"/+X+/K\":\"नीचे प्रवेश करने के लिए OTP कोड के साथ एक ईमेल के लिए अपने इनबॉक्स की जाँच करें:\",\"Rt502e\":\"सेवा चुनें\",\"/L45sc\":\"उन एल्गोरिदम का चयन करें जो कस्टम फीड्स के साथ अपने अनुभव को शक्ति देते हैं।।\",\"Wk8hkn\":\"अपना पासवर्ड चुनें\",\"Us7A1O\":\"Clear all legacy storage data\",\"X3zEXo\":\"Clear all legacy storage data (restart after this)\",\"zxFM2c\":\"Clear all storage data\",\"r+lhUL\":\"Clear all storage data (restart after this)\",\"QbvBNV\":\"खोज क्वेरी साफ़ करें\",\"flH7u/\":\"चेतावनी को बंद करो\",\"hYmnbk\":\"बंद करो\",\"47L1V1\":\"छवि बंद करें\",\"l49ujN\":\"छवि बंद करें\",\"UryHFO\":\"नेविगेशन पाद बंद करें\",\"KHzDTk\":\"समुदाय दिशानिर्देश\",\"o8UUti\":\"जवाब लिखो\",\"7VpPHA\":\"हो गया\",\"q8upsf\":\"बदलाव की पुष्टि करें\",\"8pNKIr\":\"सामग्री भाषा सेटिंग्स की पुष्टि करें\",\"tGg8Kt\":\"खाते को हटा दें\",\"ioZOzk\":\"OTP कोड\",\"J28zul\":\"कनेक्टिंग ..।\",\"l879p1\":\"सामग्री फ़िल्टरिंग\",\"m8j6up\":\"सामग्री फ़िल्टरिंग\",\"/PlAsF\":\"सामग्री भाषा\",\"cogwXi\":\"सामग्री चेतावनी\",\"FG7AQv\":\"सामग्री चेतावनी\",\"xGVfLh\":\"आगे बढ़ें\",\"6V3Ea3\":\"कॉपी कर ली\",\"he3ygx\":\"कॉपी\",\"7LTXf4\":\"Copy link to list\",\"dWsPi5\":\"Copy link to post\",\"jw+abr\":\"Copy link to profile\",\"iQgJaz\":\"पोस्ट टेक्स्ट कॉपी करें\",\"u40k/o\":\"कॉपीराइट नीति\",\"7wWvgo\":\"फ़ीड लोड नहीं कर सकता\",\"8NNr/O\":\"सूची लोड नहीं कर सकता\",\"mpt9T+\":\"नया खाता बनाएं\",\"IS0nrP\":\"खाता बनाएँ\",\"6HbhpU\":\"नया खाता बनाएं\",\"MXSt4t\":[\"बनाया गया \",[\"0\"]],\"GAD3Dx\":\"कस्टम डोमेन\",\"ZQKLI1\":\"खतरा क्षेत्र\",\"pvnfJD\":\"डार्क मोड\",\"ZDGm40\":\"खाता हटाएं\",\"vzX5FB\":\"खाता हटाएं\",\"gUEtxf\":\"अप्प पासवर्ड हटाएं\",\"84uE/A\":\"सूची हटाएँ\",\"ktknoE\":\"मेरा खाता हटाएं\",\"szz0+N\":\"मेरा खाता हटाएं…\",\"04G5Az\":\"पोस्ट को हटाएं\",\"FbPNuJ\":\"इस पोस्ट को डीलीट करें?\",\"u+1OHY\":\"यह पोस्ट मिटाई जा चुकी है\",\"Nu4oKW\":\"विवरण\",\"dacKHE\":\"देव सर्वर\",\"2ygkE8\":\"डेवलपर उपकरण\",\"bzSI52\":\"Discard\",\"BryYJR\":\"ड्राफ्ट हटाएं\",\"9Y7FMD\":\"Discourage apps from showing my account to logged-out users\",\"pbLwal\":\"नए फ़ीड की खोज करें\",\"pfa8F0\":\"नाम\",\"0gS7M5\":\"प्रदर्शन का नाम\",\"iZ5pMB\":\"डोमेन सत्यापित!\",\"DPfwMq\":\"खत्म\",\"zT97vP\":[\"खत्म \",[\"extraText\"]],\"4uwlSD\":\"प्रत्येक कोड एक बार काम करता है। आपको समय-समय पर अधिक आमंत्रण कोड प्राप्त होंगे।\",\"XQFMOm\":\"छवि संपादित करें\",\"S7M0uU\":\"सूची विवरण संपादित करें\",\"cLmurE\":\"मेरी फ़ीड संपादित करें\",\"bRZ5XW\":\"मेरी प्रोफ़ाइल संपादित करें\",\"9OpVZg\":\"मेरी प्रोफ़ाइल संपादित करें\",\"QJQd1J\":\"मेरी प्रोफ़ाइल संपादित करें\",\"Jn7kox\":\"एडिट सेव्ड फीड\",\"O3oNi5\":\"ईमेल\",\"ATGYL1\":\"ईमेल\",\"pJJ0Vp\":\"ईमेल अपडेट किया गया\",\"9Qs99X\":\"ईमेल:\",\"96mted\":\"इस सेटिंग को केवल उन लोगों के बीच जवाब देखने में सक्षम करें जिन्हें आप फॉलो करते हैं।।\",\"9xK+YC\":\"End of feed\",\"YbIxza\":\"अपने प्रदाता का पता दर्ज करें:\",\"BfIgP6\":\"आप जिस डोमेन का उपयोग करना चाहते हैं उसे दर्ज करें\",\"cHrOqs\":\"वह ईमेल दर्ज करें जिसका उपयोग आपने अपना खाता बनाने के लिए किया था। हम आपको एक \\\"reset code\\\" भेजेंगे ताकि आप एक नया पासवर्ड सेट कर सकें।\",\"xRPn3U\":\"अपना ईमेल पता दर्ज करें\",\"+inPGm\":\"नीचे अपना नया ईमेल पता दर्ज करें।।\",\"T0KLp4\":\"अपने यूज़रनेम और पासवर्ड दर्ज करें\",\"4BITzH\":\"Error:\",\"wlzBtv\":\"Everybody\",\"0PkE20\":\"ऑल्ट टेक्स्ट\",\"/5K/KL\":\"अनुशंसित फ़ीड लोड करने में विफल\",\"4yCy8i\":\"फ़ीड ऑफ़लाइन है\",\"N0CqyO\":\"फ़ीड प्राथमिकता\",\"YirHq7\":\"प्रतिक्रिया\",\"2DoBvq\":\"सभी फ़ीड\",\"I3iUBQ\":\"सामग्री को व्यवस्थित करने के लिए उपयोगकर्ताओं द्वारा फ़ीड बनाए जाते हैं। कुछ फ़ीड चुनें जो आपको दिलचस्प लगें।\",\"2+6lmO\":\"फ़ीड कस्टम एल्गोरिदम हैं जिन्हें उपयोगकर्ता थोड़ी कोडिंग विशेषज्ञता के साथ बनाते हैं। <0/> अधिक जानकारी के लिए.\",\"Qzj1WT\":\"मिलते-जुलते खाते ढूँढना\",\"QKSrQV\":\"अपने मुख्य फ़ीड की स्क्रीन पर दिखाई देने वाली सामग्री को ठीक करें।।\",\"r+KeyR\":\"चर्चा धागे को ठीक-ट्यून करें।।\",\"MKEPCY\":\"फॉलो\",\"Wezu5M\":\"आरंभ करने के लिए कुछ उपयोगकर्ताओं का अनुसरण करें. आपको कौन दिलचस्प लगता है, इसके आधार पर हम आपको और अधिक उपयोगकर्ताओं की अनुशंसा कर सकते हैं।\",\"jdbMSV\":\"Followed users\",\"YY2BTA\":\"केवल वे यूजर को फ़ॉलो किया गया\",\"x5LEuB\":\"यह यूजर आपका फ़ोलो करता है\",\"NIjL2Y\":\"फोल्लोविंग\",\"y6sq5j\":\"फोल्लोविंग\",\"p3UO/y\":\"यह यूजर आपका फ़ोलो करता है\",\"5RhDkD\":\"सुरक्षा कारणों के लिए, हमें आपके ईमेल पते पर एक OTP कोड भेजने की आवश्यकता होगी।।\",\"NJPhAO\":\"सुरक्षा कारणों के लिए, आप इसे फिर से देखने में सक्षम नहीं होंगे। यदि आप इस पासवर्ड को खो देते हैं, तो आपको एक नया उत्पन्न करना होगा।।\",\"5bDfuq\":\"भूल\",\"hEPLrs\":\"पासवर्ड भूल गए\",\"dn8X5t\":\"पासवर्ड भूल गए\",\"U+kFad\":\"गैलरी\",\"c3b0B0\":\"प्रारंभ करें\",\"CKyk7Q\":\"वापस जाओ\",\"sr0UJD\":\"वापस जाओ\",\"Rtp0y7\":\"अगला\",\"Nf7oXL\":\"हैंडल\",\"c3XJ18\":\"सहायता\",\"uX/4+/\":\"यहां आपका ऐप पासवर्ड है.\",\"vLyv1R\":\"इसे छिपाएं\",\"qdOx2q\":\"उपयोगकर्ता सूची छुपाएँ\",\"up7j9X\":\"Hmm, some kind of issue occured when contacting the feed server. Please let the feed owner know about this issue.\",\"FynkM2\":\"Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue.\",\"WTcLyw\":\"Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue.\",\"/8MHCt\":\"Hmm, the feed server appears to be offline. Please let the feed owner know about this issue.\",\"3zJH1g\":\"Hmm, the feed server gave a bad response. Please let the feed owner know about this issue.\",\"wkCNhr\":\"Hmm, we're having trouble finding this feed. It may have been deleted.\",\"yNNyhI\":\"Hmmm, we're having trouble finding this feed. It may have been deleted.\",\"i0qMbr\":\"होम फीड\",\"sXZ8IU\":\"होम फ़ीड प्राथमिकताएं\",\"yt7fhu\":\"होस्टिंग प्रदाता\",\"s2xA6t\":\"होस्टिंग प्रदाता पता\",\"o+axy6\":\"मेरे पास एक OTP कोड है\",\"wey2os\":\"मेरे पास अपना डोमेन है\",\"WlEcKr\":\"यदि किसी को चुना जाता है, तो सभी उम्र के लिए उपयुक्त है।।\",\"VCk0rR\":\"छवि alt पाठ\",\"STGpNQ\":\"छवि विकल्प\",\"6o7+En\":\"आपके नेटवर्क में\",\"dSKHAa\":\"अवैध उपयोगकर्ता नाम या पासवर्ड\",\"MFKlMB\":\"आमंत्रण भेजो\",\"F5MZVk\":\"एक दोस्त को आमंत्रित करें\",\"6KlkHI\":\"आमंत्रण कोड\",\"MYTV5o\":\"Invite code not accepted. Check that you input it correctly and try again.\",\"UY2916\":[\"Invite codes: \",[\"invitesAvailable\"],\" available\"],\"F75w8j\":\"प्रतीक्षा सूची में शामिल हों\",\"6iVTdm\":\"प्रतीक्षा सूची में शामिल हों।।\",\"SNzppu\":\"वेटरलिस्ट में शामिल हों\",\"Dcq5kL\":\"अपनी भाषा चुने\",\"pVhZHk\":\"भाषा सेटिंग्स\",\"GAmD3h\":\"भाषा\",\"NgeSlx\":\"अधिक जानें\",\"rj0Lke\":\"इस चेतावनी के बारे में अधिक जानें\",\"lvYkpV\":\"Learn more about what is public on Bluesky.\",\"kq2ga7\":\"उन्हें किसी भी भाषा को देखने के लिए अनचेक छोड़ दें।।\",\"QfDITI\":\"लीविंग Bluesky\",\"Esfg1M\":\"चलो अपना पासवर्ड रीसेट करें!\",\"exYcTF\":\"चित्र पुस्तकालय\",\"1njn7W\":\"लाइट मोड\",\"BvSY1i\":\"इस फ़ीड को लाइक करो\",\"8/ALSr\":\"इन यूजर ने लाइक किया है\",\"zZOZj7\":\"Likes\",\"KGL/DU\":\"Limit the visibility of my account\",\"AUSVsF\":\"Limit the visibility of my account to logged-out users\",\"FuZWua\":\"सूची अवतार\",\"8mjA4F\":\"सूची का नाम\",\"h16FyT\":\"सूची\",\"ujW4FW\":\"अधिक पोस्ट लोड करें\",\"7EHsGr\":\"नई सूचनाएं लोड करें\",\"VkLESX\":\"नई पोस्ट लोड करें\",\"Z3FXyt\":\"Loading...\",\"jl0AFf\":\"स्थानीय देव सर्वर\",\"5Aq6mk\":\"Logged-out users\",\"w2yNjr\":\"Logged-out visibility\",\"cR9UpQ\":\"उस खाते में लॉग इन करें जो सूचीबद्ध नहीं है\",\"kkGiug\":\"Looks like this feed is only available to users with a Bluesky account. Please sign up or sign in to view this feed!\",\"2U/gDT\":\"यह सुनिश्चित करने के लिए कि आप कहाँ जाना चाहते हैं!\",\"xYilR2\":\"Media\",\"S9V0C/\":\"mentioned users\",\"31/84x\":\"Mentioned users\",\"zucql+\":\"मेनू\",\"kTQnAw\":\"Message from server\",\"DzmsLV\":\"मॉडरेशन\",\"NTIbv4\":\"मॉडरेशन सूचियाँ\",\"3j2OjF\":\"Moderation Lists\",\"FIJUJb\":\"अधिक फ़ीड\",\"3Siwmw\":\"अधिक विकल्प\",\"Y17r45\":\"पोस्ट विकल्प\",\"RA1KUZ\":\"खाता म्यूट करें\",\"du0opt\":\"खातों को म्यूट करें\",\"25PHAB\":\"Mute list\",\"izOxJM\":\"इन खातों को म्यूट करें?\",\"jq7SjD\":\"थ्रेड म्यूट करें\",\"s22grX\":\"म्यूट किए गए खाते\",\"qUa+lV\":\"म्यूट किए गए खाते\",\"gA0D9A\":\"म्यूट किए गए खातों की पोस्ट आपके फ़ीड और आपकी सूचनाओं से हटा दी जाती हैं। म्यूट पूरी तरह से निजी हैं.\",\"1QJzM7\":\"म्यूट करना निजी है. म्यूट किए गए खाते आपके साथ इंटरैक्ट कर सकते हैं, लेकिन आप उनकी पोस्ट नहीं देखेंगे या उनसे सूचनाएं प्राप्त नहीं करेंगे।\",\"qhwV2C\":\"My Account\",\"Mysqyf\":\"जन्मदिन\",\"6MBNS/\":\"मेरी फ़ीड\",\"hKtWk2\":\"मेरी प्रोफाइल\",\"Ha6iBv\":\"मेरी फ़ीड\",\"6YtxFj\":\"नाम\",\"8yolS6\":\"अपने फ़ॉलोअर्स और डेटा तक पहुंच कभी न खोएं।\",\"isRobC\":\"नया\",\"2B7HLH\":\"नई पोस्ट\",\"FGrimz\":\"नई पोस्ट\",\"hXzOVo\":\"अगला\",\"EatZYJ\":\"अगली फोटो\",\"1UzENP\":\"नहीं\",\"flmDTf\":\"कोई विवरण नहीं\",\"zfN9gJ\":\"No result\",\"fOlAiK\":[\"\\\"\",[\"query\"],\"\\\" के लिए कोई परिणाम नहीं मिला\"],\"kA9DpB\":[[\"0\"],\" के लिए कोई परिणाम नहीं मिला\"],\"SVF205\":[\"No results found for \",[\"query\"]],\"xpF9po\":\"Nobody\",\"ispbnl\":\"लागू नहीं\",\"iyUCYw\":\"लागू नहीं।\",\"ACqM3c\":\"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.\",\"+lYa0i\":\"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.\",\"OdiASL\":\"Note: Third-party apps that display Bluesky content may not respect this setting.\",\"iDNBZe\":\"सूचनाएं\",\"5GGAqz\":\"अरे नहीं!\",\"UaXeX3\":\"ठीक है\",\"Cqo2D+\":\"एक या अधिक छवियाँ alt पाठ याद आती हैं।।\",\"Kq2/SU\":[\"Only \",[\"0\"],\" can reply.\"],\"M/Q2aG\":\"ओपन नेविगेशन\",\"M5PuNq\":\"भाषा सेटिंग्स खोलें\",\"S67TOE\":\"Opens list of invite codes\",\"eSqpax\":\"कस्टम डोमेन का उपयोग करने के लिए मोडल खोलें\",\"vYwHHI\":\"मॉडरेशन सेटिंग्स खोलें\",\"0tHyB7\":\"सभी बचाया फ़ीड के साथ स्क्रीन खोलें\",\"nmRoY/\":\"ऐप पासवर्ड सेटिंग पेज खोलें\",\"6e9Apv\":\"होम फीड वरीयताओं को खोलता है\",\"O87Dr/\":\"स्टोरीबुक पेज खोलें\",\"G+PVmg\":\"सिस्टम लॉग पेज खोलें\",\"Jqb7sy\":\"धागे वरीयताओं को खोलता है\",\"b22AVl\":\"अन्य खाता\",\"n+HLOP\":\"अन्य सेवा\",\"1PKxQ7\":\"अन्य..।\",\"8F1i42\":\"पृष्ठ नहीं मिला\",\"8ZsakT\":\"पासवर्ड\",\"ogtYkT\":\"Password updated\",\"DKeVgZ\":\"पासवर्ड अद्यतन!\",\"VeZE5Q\":\"चित्र वयस्कों के लिए थे।।\",\"zgoxy5\":\"पिन किया गया फ़ीड\",\"Aw5fOC\":\"Please choose your handle.\",\"5vI4sE\":\"Please choose your password.\",\"Apyknf\":\"इसे बदलने से पहले कृपया अपने ईमेल की पुष्टि करें। यह एक अस्थायी आवश्यकता है जबकि ईमेल-अपडेटिंग टूल जोड़ा जाता है, और इसे जल्द ही हटा दिया जाएगा।।\",\"9qpQ5O\":\"कृपया इस ऐप पासवर्ड के लिए एक अद्वितीय नाम दर्ज करें या हमारे यादृच्छिक रूप से उत्पन्न एक का उपयोग करें।।\",\"hV+cYN\":\"Please enter your email.\",\"QJr5Xp\":\"कृपया अपना पासवर्ड भी दर्ज करें:\",\"d7tryi\":\"Please tell us why you think this decision was incorrect.\",\"y28hnO\":\"पोस्ट\",\"h5RcXU\":\"छुपा पोस्ट\",\"r5zLS0\":\"पोस्ट भाषा\",\"AzCucI\":\"पोस्ट भाषा\",\"tJFPmV\":\"पोस्ट नहीं मिला\",\"+owNNn\":\"Posts\",\"0+DQbr\":\"शायद एक भ्रामक लिंक\",\"MHk+7g\":\"पिछली छवि\",\"HeBcM5\":\"प्राथमिक भाषा\",\"x8iR7V\":\"अपने फ़ॉलोअर्स को प्राथमिकता दें\",\"rjGI/Q\":\"गोपनीयता\",\"LcET2C\":\"गोपनीयता नीति\",\"k1ifdL\":\"प्रसंस्करण...\",\"vERlcd\":\"प्रोफ़ाइल\",\"MrgqOW\":\"अपने ईमेल को सत्यापित करके अपने खाते को सुरक्षित रखें।।\",\"9nSV9I\":\"Public, shareable lists of users to mute or block in bulk.\",\"p1UmBX\":\"सार्वजनिक, साझा करने योग्य सूचियाँ जो फ़ीड चला सकती हैं।\",\"8HFFRQ\":\"कोटे पोस्ट\",\"+KrAHa\":\"कोटे पोस्ट\",\"WlWsdE\":\"अनुपात\",\"WEYdDv\":\"अनुशंसित\",\"QNzcT3\":\"अनुशंसित फ़ीड\",\"41UoJb\":\"अनुशंसित लोग\",\"t/YqKh\":\"निकालें\",\"p/cRzf\":[\"मेरे फ़ीड से \",[\"0\"],\" हटाएं?\"],\"1O32oy\":\"खाता हटाएं\",\"W44VX5\":\"फ़ीड हटाएँ\",\"Yy3FzB\":\"मेरे फ़ीड से हटाएँ\",\"5ywtDz\":\"छवि निकालें\",\"Dw/XUh\":\"छवि पूर्वावलोकन निकालें\",\"3fdNAy\":\"Remove this feed from my feeds?\",\"TbDEfs\":\"इस फ़ीड को सहेजे गए फ़ीड से हटा दें?\",\"Obm5+c\":\"Removed from list\",\"N8UzTV\":\"Replies\",\"oQPadq\":\"Replies to this thread are disabled\",\"Veu9gK\":\"फिल्टर\",\"lQWbAr\":[\"रिपोर्ट \",[\"collectionName\"]],\"bDHSjj\":\"रिपोर्ट\",\"NKmI9f\":\"रिपोर्ट फ़ीड\",\"6iwm2r\":\"रिपोर्ट सूची\",\"6IcSvC\":\"रिपोर्ट पोस्ट\",\"mkude1\":\"पुन: पोस्ट\",\"JOV5dR\":\"पोस्ट दोबारा पोस्ट करें या उद्धृत करे\",\"0zb9FX\":\"द्वारा दोबारा पोस्ट किया गया\",\"bqG37Z\":\"अनुरोध बदलें\",\"pJoi/P\":\"Request to limit the visibility of my account\",\"2d9VrZ\":\"पोस्ट करने से पहले वैकल्पिक टेक्स्ट की आवश्यकता है\",\"8XIT+P\":\"इस प्रदाता के लिए आवश्यक\",\"vJgYMA\":\"कोड रीसेट करें\",\"xEL92I\":\"ऑनबोर्डिंग स्टेट को रीसेट करें\",\"RfwZxd\":\"पासवर्ड रीसेट\",\"bee/Fw\":\"प्राथमिकताओं को रीसेट करें\",\"wToeoz\":\"ऑनबोर्डिंग स्टेट को रीसेट करें\",\"nIU7qI\":\"प्राथमिकताओं की स्थिति को रीसेट करें\",\"6gRgw8\":\"फिर से कोशिश करो\",\"hAbYQa\":\"हैंडल बदलना फिर से कोशिश करो\",\"tfDRzk\":\"सेव करो\",\"KV2YQQ\":\"सेव ऑल्ट टेक्स्ट\",\"y3aU20\":\"बदलाव सेव करो\",\"IUwGEM\":\"बदलाव सेव करो\",\"Xs07Tg\":\"बदलाव सेव करो\",\"BckA7m\":\"फोटो बदलाव सेव करो\",\"+K+JDj\":\"सहेजे गए फ़ीड\",\"A1taO8\":\"खोज\",\"BF8cu3\":\"Search for posts and users.\",\"CKROFy\":\"सुरक्षा चरण आवश्यक\",\"cNzyJW\":\"आगे क्या है\",\"L5sM7N\":\"Bluesky Social का चयन करें\",\"o3dwub\":\"मौजूदा खाते से चुनें\",\"GGw2AK\":\"सेवा चुनें\",\"vECNLO\":\"चुनें कि आप अपनी सदस्यता वाली फ़ीड में कौन सी भाषाएँ शामिल करना चाहते हैं। यदि कोई भी चयनित नहीं है, तो सभी भाषाएँ दिखाई जाएंगी।\",\"m5aabx\":\"ऐप में प्रदर्शित होने वाले डिफ़ॉल्ट टेक्स्ट के लिए अपनी ऐप भाषा चुनें\",\"TiiOza\":\"अपने फ़ीड में अनुवाद के लिए अपनी पसंदीदा भाषा चुनें।\",\"vp9yIB\":\"पुष्टिकरण ईमेल भेजें\",\"65dxv8\":\"ईमेल भेजें\",\"i/TzEU\":\"ईमेल भेजें\",\"RoafuO\":\"प्रतिक्रिया भेजें\",\"4cijjm\":\"रिपोर्ट भेजें\",\"V/e7nf\":\"नया पासवर्ड सेट करें\",\"gwsie4\":\"अपने फ़ीड से सभी उद्धरण पदों को छिपाने के लिए इस सेटिंग को \\\"नहीं\\\" में सेट करें। Reposts अभी भी दिखाई देगा।।\",\"IZjC3J\":\"इस सेटिंग को अपने फ़ीड से सभी उत्तरों को छिपाने के लिए \\\"नहीं\\\" पर सेट करें।।\",\"KIgU3l\":\"इस सेटिंग को अपने फ़ीड से सभी पोस्ट छिपाने के लिए \\\"नहीं\\\" करने के लिए सेट करें।।\",\"zaAyrz\":\"इस सेटिंग को \\\"हाँ\\\" में सेट करने के लिए एक थ्रेडेड व्यू में जवाब दिखाने के लिए। यह एक प्रयोगात्मक विशेषता है।।\",\"fQV2eE\":\"इस सेटिंग को अपने निम्नलिखित फ़ीड में अपने सहेजे गए फ़ीड के नमूने दिखाने के लिए \\\"हाँ\\\" पर सेट करें। यह एक प्रयोगात्मक विशेषता है।।\",\"Tz0i8g\":\"सेटिंग्स\",\"HfWHhJ\":\"यौन गतिविधि या कामुक नग्नता।।\",\"Z8lGw6\":\"शेयर\",\"P33tEA\":\"Share feed\",\"uIZ2tg\":\"लिंक शेयर करें\",\"8vETh9\":\"दिखाओ\",\"aWAdCb\":\"दिखाओ\",\"NijgXr\":\"मेरी फीड से पोस्ट दिखाएं\",\"T3Mt8m\":\"उद्धरण पोस्ट दिखाओ\",\"BlW8X/\":\"उत्तर दिखाएँ\",\"X4GwDb\":\"अन्य सभी उत्तरों से पहले उन लोगों के उत्तर दिखाएं जिन्हें आप फ़ॉलो करते हैं।\",\"GiogzH\":\"रीपोस्ट दिखाएँ\",\"fhY/fL\":\"लोग दिखाएँ\",\"5lWFkC\":\"साइन इन करें\",\"n1ekoW\":\"साइन इन करें\",\"N9o7n5\":[[\"0\"],\" के रूप में साइन इन करें\"],\"FT1MVS\":\"... के रूप में साइन इन करें\",\"+UpfFC\":\"साइन इन करें\",\"fcWrnU\":\"साइन आउट\",\"e+RpCP\":\"Sign up\",\"MiE4Vp\":\"Sign up or sign in to join the conversation\",\"zU+Ro7\":\"आपने इस रूप में साइन इन करा है:\",\"6Uau97\":\"स्किप\",\"0o5BFH\":\"उत्तर क्रमबद्ध करें\",\"GH1Rgk\":\"उसी पोस्ट के उत्तरों को इस प्रकार क्रमबद्ध करें:\",\"1DA6ap\":\"स्क्वायर\",\"aKEHLj\":\"स्टेजिंग\",\"tgEXwM\":\"स्थिति पृष्ठ\",\"P5jja7\":\"Storybook\",\"hQRttt\":\"Submit\",\"EDl9kS\":\"सब्सक्राइब\",\"5z3ICN\":\"इस सूची को सब्सक्राइब करें\",\"TVFyMD\":\"अनुशंसित लोग\",\"XYLcNv\":\"सहायता\",\"VjWeLI\":\"खाते बदलें\",\"D+NlUC\":\"प्रणाली\",\"fP8jTZ\":\"सिस्टम लॉग\",\"HF6Iah\":\"लंबा\",\"4Y5H+g\":\"शर्तें\",\"xowcRf\":\"सेवा की शर्तें\",\"p8Iz39\":\"पाठ इनपुट फ़ील्ड\",\"GlPXQJ\":\"अनब्लॉक करने के बाद अकाउंट आपसे इंटरैक्ट कर सकेगा।\",\"o4M2MP\":\"सामुदायिक दिशानिर्देशों को <0/> पर स्थानांतरित कर दिया गया है\",\"U42lKc\":\"कॉपीराइट नीति को <0/> पर स्थानांतरित कर दिया गया है\",\"G4EksE\":\"हो सकता है कि यह पोस्ट हटा दी गई हो।\",\"WNR9db\":\"गोपनीयता नीति को <0/> पर स्थानांतरित किया गया है\",\"LbEbIk\":[\"समर्थन प्रपत्र स्थानांतरित कर दिया गया है. यदि आपको सहायता की आवश्यकता है, तो कृपया<0/> या हमसे संपर्क करने के लिए \",[\"HELP_DESK_URL\"],\" पर जाएं।\"],\"FGbRSr\":\"सेवा की शर्तों को स्थानांतरित कर दिया गया है\",\"yUqcy2\":\"एप्लिकेशन में एक अप्रत्याशित समस्या थी. कृपया हमें बताएं कि क्या आपके साथ ऐसा हुआ है!\",\"jSe8k/\":[\"This \",[\"0\"],\" has been labeled.\"],\"KRYn8w\":[\"यह \",[\"screenDescription\"],\" फ्लैग किया गया है:\"],\"aBX1qv\":\"This content is not viewable without a Bluesky account.\",\"xI4xW5\":\"This feed is currently receiving high traffic and is temporarily unavailable. Please try again later.\",\"lm845B\":\"यह जानकारी अन्य उपयोगकर्ताओं के साथ साझा नहीं की जाती है।।\",\"5Pvw/O\":\"अगर आपको कभी अपना ईमेल बदलने या पासवर्ड रीसेट करने की आवश्यकता है तो यह महत्वपूर्ण है।।\",\"sQQfZ9\":\"यह वह सेवा है जो आपको ऑनलाइन रखता है।।\",\"CvX8qs\":\"यह लिंक आपको निम्नलिखित वेबसाइट पर ले जा रहा है:\",\"WKrUVy\":\"इस पोस्ट को हटा दिया गया है।।\",\"qpCA5s\":\"यह चेतावनी केवल मीडिया संलग्न पोस्ट के लिए उपलब्ध है।\",\"u9ThjD\":\"थ्रेड प्राथमिकता\",\"zmXsk5\":\"थ्रेड मोड\",\"1x30Qt\":\"ड्रॉपडाउन टॉगल करें\",\"KFXQEt\":\"परिवर्तन\",\"pi8x/S\":\"अनुवाद\",\"KDw4GX\":\"फिर से कोशिश करो\",\"RF3/jE\":\"Un-block list\",\"+/SGK9\":\"Un-mute list\",\"nc4Wfd\":\"आपकी सेवा से संपर्क करने में असमर्थ। कृपया अपने इंटरनेट कनेक्शन की जांच करें।।\",\"tuS5Jz\":\"अनब्लॉक\",\"0VrZZv\":\"अनब्लॉक खाता\",\"6pYY4t\":\"पुनः पोस्ट पूर्ववत करें\",\"05f3UA\":\"Unfortunately, you do not meet the requirements to create an account.\",\"wx9wqY\":\"अनम्यूट खाता\",\"s12/Py\":\"थ्रेड को अनम्यूट करें\",\"EvGmWj\":\"Unpin moderation list\",\"vaz2uI\":[\"सूची में \",[\"displayName\"],\" अद्यतन करें\"],\"YXMY4w\":\"उपलब्ध अद्यतन\",\"RXbEvi\":\"अद्यतन..।\",\"Vwkfp4\":\"एक पाठ फ़ाइल अपलोड करने के लिए:\",\"jTdnU6\":\"अपने खाते या पासवर्ड को पूर्ण एक्सेस देने के बिना अन्य ब्लूस्की ग्राहकों को लॉगिन करने के लिए ऐप पासवर्ड का उपयोग करें।।\",\"CH1am9\":\"डिफ़ॉल्ट प्रदाता का उपयोग करें\",\"ZG8UvP\":\"अपने हैंडल के साथ दूसरे ऐप में साइन इन करने के लिए इसका उपयोग करें।\",\"cKXwwI\":\"के द्वारा उपयोग:\",\"t4Yp4Z\":\"यूजर हैंडल\",\"8tsrUV\":\"लोग सूचियाँ\",\"nZx9mr\":\"यूजर नाम या ईमेल पता\",\"Sxm8rQ\":\"यूजर लोग\",\"Hbhyg2\":\"users followed by <0/>\",\"1Z9Mdf\":\"Users followed by <0/>\",\"9k1aoj\":[\"Users in \\\"\",[\"0\"],\"\\\"\"],\"MBOY4U\":\"ईमेल सत्यापित करें\",\"Ejyv0o\":\"मेरी ईमेल सत्यापित करें\",\"9czCrB\":\"मेरी ईमेल सत्यापित करें\",\"ibSVGR\":\"नया ईमेल सत्यापित करें\",\"nHsQde\":\"डीबग प्रविष्टि देखें\",\"47jzzd\":\"अवतार देखें\",\"wK4H1r\":\"साइट पर जाएं\",\"qjBGxf\":\"हम आपके हमारी सेवा में शामिल होने को लेकर बहुत उत्साहित हैं!\",\"1xpRAp\":\"We're sorry, but this content is not viewable without a Bluesky account.\",\"2iYPLH\":\"We're sorry, but this feed is currently receiving high traffic and is temporarily unavailable. Please try again later.\",\"WBQOQ0\":\"We're sorry, but your search could not be completed. Please try again in a few minutes.\",\"/mVVX2\":\"हम क्षमा चाहते हैं! हमें वह पेज नहीं मिल रहा जिसे आप ढूंढ रहे थे।\",\"meB+tZ\":\"<0>Bluesky में आपका स्वागत है\",\"Mj7rl/\":[\"इस \",[\"collectionName\"],\" के साथ क्या मुद्दा है?\"],\"3qn29J\":\"इस पोस्ट में किस भाषा का उपयोग किया जाता है?\",\"uawiGa\":\"कौन से भाषाएं आपको अपने एल्गोरिदमिक फ़ीड में देखना पसंद करती हैं?\",\"yvDWMs\":\"Who can reply\",\"GKc8LT\":\"Who can reply?\",\"I5S9ZE\":\"चौड़ा\",\"y02THm\":\"पोस्ट लिखो\",\"6ckZRB\":\"अपना जवाब दें\",\"l75CjT\":\"हाँ\",\"STPj0e\":\"आप किसी भी समय होस्टिंग प्रदाताओं को बदल सकते हैं।।\",\"67nRLM\":\"अब आप अपने नए पासवर्ड के साथ साइन इन कर सकते हैं।।\",\"lIcbCU\":\"आपके पास अभी तक कोई आमंत्रण कोड नहीं है! जब आप कुछ अधिक समय के लिए Bluesky पर रहेंगे तो हम आपको कुछ भेजेंगे।\",\"aFZZYi\":\"आपके पास कोई पिन किया हुआ फ़ीड नहीं है.\",\"kX/cKs\":\"You don't have any saved feeds!\",\"nbz3Iq\":\"आपके पास कोई सहेजी गई फ़ीड नहीं है.\",\"RkXibf\":\"आपने लेखक को अवरुद्ध किया है या आपने लेखक द्वारा अवरुद्ध किया है।।\",\"CbrOgr\":\"You have no feeds.\",\"tCLJ9E\":\"आपके पास कोई सूची नहीं है।।\",\"soH9qC\":\"आपने अभी तक कोई भी अकाउंट ब्लॉक नहीं किया है. किसी खाते को ब्लॉक करने के लिए, उनकी प्रोफ़ाइल पर जाएं और उनके खाते के मेनू से \\\"खाता ब्लॉक करें\\\" चुनें।\",\"NDgp3i\":\"आपने अभी तक कोई ऐप पासवर्ड नहीं बनाया है। आप नीचे बटन दबाकर एक बना सकते हैं।।\",\"grqdXb\":\"आपने अभी तक कोई खाता म्यूट नहीं किया है. किसी खाते को म्यूट करने के लिए, उनकी प्रोफ़ाइल पर जाएं और उनके खाते के मेनू से \\\"खाता म्यूट करें\\\" चुनें।\",\"RrDyEb\":\"आपको \\\"reset code\\\" के साथ एक ईमेल प्राप्त होगा। उस कोड को यहाँ दर्ज करें, फिर अपना नया पासवर्ड दर्ज करें।।\",\"gdRnT7\":\"आपका खाता\",\"k7hmsH\":\"जन्म तिथि\",\"tBpzKB\":\"Your email appears to be invalid.\",\"OubkcP\":\"आपका ईमेल बचाया गया है! हम जल्द ही संपर्क में रहेंगे।।\",\"z2L+/9\":\"आपका ईमेल अद्यतन किया गया है लेकिन सत्यापित नहीं किया गया है। अगले चरण के रूप में, कृपया अपना नया ईमेल सत्यापित करें।।\",\"XZlIVw\":\"आपका ईमेल अभी तक सत्यापित नहीं हुआ है। यह एक महत्वपूर्ण सुरक्षा कदम है जिसे हम अनुशंसा करते हैं।।\",\"qv9f4I\":\"आपका पूरा हैंडल होगा\",\"lvcqqG\":\"आपका होस्टिंग प्रदाता\",\"fbFyAZ\":\"Your invite codes are hidden when logged in using an App Password\",\"Oqt/PG\":\"आपकी पोस्ट, पसंद और ब्लॉक सार्वजनिक हैं। म्यूट निजी हैं।।\",\"okRPtW\":\"आपकी प्रोफ़ाइल\",\"rsWkoR\":\"Your profile and account will not be visible to anyone visiting the Bluesky app without an account, or to account holders who are not logged in. Enabling this will not make your profile private.\",\"jjscPy\":\"Your profile and content will not be visible to anyone visiting the Bluesky app without an account. Enabling this will not make your profile private.\",\"ogY7EU\":\"Your profile and posts will not be visible to people visiting the Bluesky app or website without having an account and being logged in.\",\"MvWO9d\":\"आपका यूजर हैंडल\"}")}; \ No newline at end of file diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index 9aabca57f1..caba1a2fd3 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -47,7 +47,7 @@ msgstr "" msgid "{invitesAvailable} invite codes available" msgstr "" -#: src/view/screens/Search/Search.tsx:88 +#: src/view/screens/Search/Search.tsx:87 msgid "{message}" msgstr "" @@ -262,9 +262,9 @@ msgstr "कलात्मक या गैर-कामुक नग्नत #: src/view/com/auth/login/LoginForm.tsx:249 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 #: src/view/com/modals/report/InputIssueDetails.tsx:45 -#: src/view/com/post-thread/PostThread.tsx:395 -#: src/view/com/post-thread/PostThread.tsx:445 -#: src/view/com/post-thread/PostThread.tsx:453 +#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:438 +#: src/view/com/post-thread/PostThread.tsx:446 #: src/view/com/profile/ProfileHeader.tsx:672 msgid "Back" msgstr "वापस" @@ -303,7 +303,7 @@ msgstr "खाता ब्लॉक करें?" msgid "Blocked accounts" msgstr "ब्लॉक किए गए खाते" -#: src/view/screens/ModerationBlockedAccounts.tsx:106 +#: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "ब्लॉक किए गए खाते" @@ -311,11 +311,11 @@ msgstr "ब्लॉक किए गए खाते" msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते।" -#: src/view/screens/ModerationBlockedAccounts.tsx:114 +#: 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 "अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते। आप उनकी सामग्री नहीं देख पाएंगे और उन्हें आपकी सामग्री देखने से रोका जाएगा।" -#: src/view/com/post-thread/PostThread.tsx:251 +#: src/view/com/post-thread/PostThread.tsx:250 msgid "Blocked post." msgstr "ब्लॉक पोस्ट।" @@ -388,7 +388,7 @@ msgstr "केवल अक्षर, संख्या, रिक्त स् #: src/view/com/modals/LinkWarning.tsx:85 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 -#: src/view/screens/Search/Search.tsx:592 +#: src/view/screens/Search/Search.tsx:584 #: src/view/shell/desktop/Search.tsx:182 msgid "Cancel" msgstr "कैंसिल" @@ -489,7 +489,7 @@ msgid "Clear all storage data (restart after this)" msgstr "" #: src/view/com/util/forms/SearchInput.tsx:73 -#: src/view/screens/Search/Search.tsx:577 +#: src/view/screens/Search/Search.tsx:569 msgid "Clear search query" msgstr "खोज क्वेरी साफ़ करें" @@ -682,7 +682,7 @@ msgstr "पोस्ट को हटाएं" msgid "Delete this post?" msgstr "इस पोस्ट को डीलीट करें?" -#: src/view/com/post-thread/PostThread.tsx:243 +#: src/view/com/post-thread/PostThread.tsx:242 msgid "Deleted post." msgstr "यह पोस्ट मिटाई जा चुकी है" @@ -833,7 +833,7 @@ msgstr "नीचे अपना नया ईमेल पता दर्ज msgid "Enter your username and password" msgstr "अपने यूज़रनेम और पासवर्ड दर्ज करें" -#: src/view/screens/Search/Search.tsx:106 +#: src/view/screens/Search/Search.tsx:105 msgid "Error:" msgstr "" @@ -850,7 +850,7 @@ msgstr "ऑल्ट टेक्स्ट" msgid "Failed to load recommended feeds" msgstr "अनुशंसित फ़ीड लोड करने में विफल" -#: src/view/screens/Feeds.tsx:560 +#: src/view/screens/Feeds.tsx:554 msgid "Feed offline" msgstr "फ़ीड ऑफ़लाइन है" @@ -880,11 +880,11 @@ msgstr "सामग्री को व्यवस्थित करने msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "फ़ीड कस्टम एल्गोरिदम हैं जिन्हें उपयोगकर्ता थोड़ी कोडिंग विशेषज्ञता के साथ बनाते हैं। <0/> अधिक जानकारी के लिए." -#: src/view/screens/Search/Search.tsx:422 +#: src/view/screens/Search/Search.tsx:414 msgid "Find users on Bluesky" msgstr "" -#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:412 msgid "Find users with the search tool on the right" msgstr "" @@ -1214,8 +1214,8 @@ msgstr "सूची का नाम" msgid "Lists" msgstr "सूची" -#: src/view/com/post-thread/PostThread.tsx:260 -#: src/view/com/post-thread/PostThread.tsx:268 +#: src/view/com/post-thread/PostThread.tsx:259 +#: src/view/com/post-thread/PostThread.tsx:267 msgid "Load more posts" msgstr "अधिक पोस्ट लोड करें" @@ -1267,7 +1267,7 @@ msgstr "" msgid "Mentioned users" msgstr "" -#: src/view/screens/Search/Search.tsx:537 +#: src/view/screens/Search/Search.tsx:529 msgid "Menu" msgstr "मेनू" @@ -1329,11 +1329,11 @@ msgstr "थ्रेड म्यूट करें" msgid "Muted accounts" msgstr "म्यूट किए गए खाते" -#: src/view/screens/ModerationMutedAccounts.tsx:106 +#: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "म्यूट किए गए खाते" -#: src/view/screens/ModerationMutedAccounts.tsx:114 +#: 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 "म्यूट किए गए खातों की पोस्ट आपके फ़ीड और आपकी सूचनाओं से हटा दी जाती हैं। म्यूट पूरी तरह से निजी हैं." @@ -1376,7 +1376,7 @@ msgid "New" msgstr "नया" #: src/view/com/feeds/FeedPage.tsx:200 -#: src/view/screens/Feeds.tsx:511 +#: src/view/screens/Feeds.tsx:505 #: src/view/screens/Profile.tsx:354 #: src/view/screens/ProfileFeed.tsx:430 #: src/view/screens/ProfileList.tsx:193 @@ -1428,9 +1428,9 @@ msgstr "\"{query}\" के लिए कोई परिणाम नहीं #~ msgstr "{0} के लिए कोई परिणाम नहीं मिला" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:271 -#: src/view/screens/Search/Search.tsx:299 -#: src/view/screens/Search/Search.tsx:615 +#: src/view/screens/Search/Search.tsx:263 +#: src/view/screens/Search/Search.tsx:291 +#: src/view/screens/Search/Search.tsx:607 #: src/view/shell/desktop/Search.tsx:210 msgid "No results found for {query}" msgstr "" @@ -1605,12 +1605,12 @@ msgstr "" #~ msgstr "" #: src/view/com/composer/Composer.tsx:337 -#: src/view/com/post-thread/PostThread.tsx:226 +#: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" msgstr "पोस्ट" -#: src/view/com/post-thread/PostThread.tsx:385 +#: src/view/com/post-thread/PostThread.tsx:378 msgid "Post hidden" msgstr "छुपा पोस्ट" @@ -1622,7 +1622,7 @@ msgstr "पोस्ट भाषा" msgid "Post Languages" msgstr "पोस्ट भाषा" -#: src/view/com/post-thread/PostThread.tsx:437 +#: src/view/com/post-thread/PostThread.tsx:430 msgid "Post not found" msgstr "पोस्ट नहीं मिला" @@ -1887,8 +1887,8 @@ msgstr "सहेजे गए फ़ीड" #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:64 -#: src/view/screens/Search/Search.tsx:401 -#: src/view/screens/Search/Search.tsx:567 +#: src/view/screens/Search/Search.tsx:393 +#: src/view/screens/Search/Search.tsx:559 #: src/view/shell/bottom-bar/BottomBar.tsx:159 #: src/view/shell/desktop/LeftNav.tsx:322 #: src/view/shell/desktop/Search.tsx:161 @@ -2145,7 +2145,7 @@ msgstr "सब्सक्राइब" msgid "Subscribe to this list" msgstr "इस सूची को सब्सक्राइब करें" -#: src/view/screens/Search/Search.tsx:357 +#: src/view/screens/Search/Search.tsx:349 msgid "Suggested Follows" msgstr "अनुशंसित लोग" @@ -2195,7 +2195,7 @@ msgstr "सामुदायिक दिशानिर्देशों क msgid "The Copyright Policy has been moved to <0/>" msgstr "कॉपीराइट नीति को <0/> पर स्थानांतरित कर दिया गया है" -#: src/view/com/post-thread/PostThread.tsx:440 +#: src/view/com/post-thread/PostThread.tsx:433 msgid "The post may have been deleted." msgstr "हो सकता है कि यह पोस्ट हटा दी गई हो।" @@ -2432,7 +2432,7 @@ msgstr "हम आपके हमारी सेवा में शामि #~ msgid "We're sorry, but this feed is currently receiving high traffic and is temporarily unavailable. Please try again later." #~ msgstr "" -#: src/view/screens/Search/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:236 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "" @@ -2512,20 +2512,20 @@ msgstr "" msgid "You don't have any saved feeds." msgstr "आपके पास कोई सहेजी गई फ़ीड नहीं है." -#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:381 msgid "You have blocked the author or you have been blocked by the author." msgstr "आपने लेखक को अवरुद्ध किया है या आपने लेखक द्वारा अवरुद्ध किया है।।" -#: src/view/com/feeds/ProfileFeedgens.tsx:141 +#: src/view/com/feeds/ProfileFeedgens.tsx:134 msgid "You have no feeds." msgstr "" #: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:145 +#: src/view/com/lists/ProfileLists.tsx:138 msgid "You have no lists." msgstr "आपके पास कोई सूची नहीं है।।" -#: src/view/screens/ModerationBlockedAccounts.tsx:131 +#: 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 "आपने अभी तक कोई भी अकाउंट ब्लॉक नहीं किया है. किसी खाते को ब्लॉक करने के लिए, उनकी प्रोफ़ाइल पर जाएं और उनके खाते के मेनू से \"खाता ब्लॉक करें\" चुनें।" @@ -2533,7 +2533,7 @@ msgstr "आपने अभी तक कोई भी अकाउंट ब् msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "आपने अभी तक कोई ऐप पासवर्ड नहीं बनाया है। आप नीचे बटन दबाकर एक बना सकते हैं।।" -#: src/view/screens/ModerationMutedAccounts.tsx:130 +#: 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 "आपने अभी तक कोई खाता म्यूट नहीं किया है. किसी खाते को म्यूट करने के लिए, उनकी प्रोफ़ाइल पर जाएं और उनके खाते के मेनू से \"खाता म्यूट करें\" चुनें।" diff --git a/src/locale/locales/ja/messages.js b/src/locale/locales/ja/messages.js deleted file mode 100644 index ccfd315f3b..0000000000 --- a/src/locale/locales/ja/messages.js +++ /dev/null @@ -1 +0,0 @@ -/*eslint-disable*/module.exports={messages:JSON.parse("{\"ebOBhv\":[[\"0\",\"plural\",{\"one\":[\"#\",\" invite code available\"],\"other\":[\"#\",\" invite codes available\"]}]],\"J/hVSQ\":[[\"0\"]],\"hZQerY\":[[\"0\"],\" \",[\"purposeLabel\"],\" リスト\"],\"zgN03j\":[[\"invitesAvailable\",\"plural\",{\"one\":[\"Invite codes: \",\"#\",\" available\"],\"other\":[\"Invite codes: \",\"#\",\" available\"]}]],\"OyEWua\":[[\"invitesAvailable\"],\" invite code available\"],\"eFIdHP\":[[\"invitesAvailable\"],\" invite codes available\"],\"wapGcj\":[[\"message\"]],\"umrH9L\":\"<0/> members\",\"gMjqbV\":\"<1>推奨<2>フィード<0>を選択\",\"F657la\":\"<1>推奨<2>ユーザー<0>をフォロー\",\"XCTqGE\":\"新しいバージョンのアプリが利用可能です。アプリを継続して使用するにはアップデートしてください。\",\"AnNF5e\":\"アクセシビリティ\",\"AeXO77\":\"アカウント\",\"4WY4MD\":\"アカウントオプション\",\"m16xKo\":\"追加\",\"fBBX+K\":\"コンテンツ警告を追加\",\"JU3hs2\":\"リストにユーザーを追加\",\"MPPZ54\":\"アカウントを追加\",\"LkA8jz\":\"ALTテキストを追加\",\"Z8idyM\":\"詳細を追加\",\"AoXl11\":\"レポートに詳細を追加\",\"iE6B/9\":\"リンクカードを追加\",\"EXHdP1\":\"リンクカードの追加:\",\"x6laaL\":\"次のDNSレコードをドメインに追加してください:\",\"UmzMP4\":\"リストに追加\",\"hCrQ0L\":\"マイフィードに追加\",\"GluCXm\":\"リストに追加\",\"jRrQFe\":\"返信がフィードに表示されるために必要な「いいね」の数を調整します。\",\"qLa52r\":\"成人向けコンテンツ\",\"sxkWRg\":\"アドバンス\",\"u2HO/d\":\"ALT\",\"u/DP73\":\"ALTテキスト\",\"0QlT7/\":\"ALTテキストは、視覚障害者や低視力者のために画像を説明し、すべての人に文脈を与えるのに役立ちます。\",\"woXbjq\":[\"Eメールが\",[\"0\"],\"に送信されました。以下に入力できる確認コードが含まれています。\"],\"Fon2dK\":[\"以前のアドレス\",[\"0\"],\"にEメールが送信されました。以下に入力できる確認コードが含まれています。\"],\"HZFm5R\":\"および\",\"fdjKGe\":\"アプリケーション言語\",\"SMmUnj\":\"アプリパスワード\",\"8q4WlH\":\"アプリパスワード\",\"e6un1h\":\"Appeal Decision\",\"c0PCYD\":\"Appeal this decision\",\"oifO1p\":\"Appeal this decision.\",\"aAIQg2\":\"外観\",\"SSDZ+T\":[\"本当にアプリパスワード「\",[\"name\"],\"」を削除しますか?\"],\"0BIeIs\":\"本当にこの下書きを破棄しますか?\",\"6foA8n\":\"本当ですか?\",\"/mSd6b\":\"本当ですか?これは元に戻せません。\",\"EbvWd3\":\"芸術的または非エロティックなヌード。\",\"iH8pgl\":\"戻る\",\"ehOkF+\":\"基本\",\"+gCI2a\":\"誕生日\",\"pieVBA\":\"誕生日:\",\"m1dqxu\":\"アカウントのブロック\",\"ffIfdM\":\"アカウントのブロック\",\"hIysMc\":\"Block list\",\"fdYcMy\":\"これらのアカウントをブロックしますか?\",\"KWykPE\":\"ブロックされたブロック\",\"JuqQpF\":\"ブロックされたアカウント\",\"HG4qt4\":\"ブロックされたアカウントは、スレッド内で返信したり、ユーザーに言及したり、その他の方法でユーザーとやり取りすることはできません。\",\"8LNSUt\":\"ブロックされたアカウントは、スレッド内で返信したり、ユーザーに言及したり、その他の方法でユーザーとやり取りすることはできません。あなたは相手のコンテンツを見ることができず、相手はあなたのコンテンツを見ることができなくなります。\",\"HFCE4A\":\"投稿をブロックしました。\",\"zl+QbX\":\"ブロックは公開されます。ブロックされたアカウントは、スレッド内で返信したり、ユーザーに言及したり、その他の方法でユーザーとやり取りすることはできません。\",\"7A9u1j\":\"Bluesky\",\"ZHmKSm\":\"Blueskyは柔軟です。\",\"odLrdl\":\"Blueskyは開いています。\",\"/LsWK4\":\"Blueskyはオープンです。\",\"C50OGr\":\"Blueskyはより健全なコミュニティを構築するために招待状を使用します。招待状をお持ちでない方の場合、waitlistに申し込めば招待状をお送りします。\",\"u9cCQU\":\"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.\",\"klVoaP\":\"Bluesky.Social\",\"qxBitM\":[\"ビルドバージョン \",[\"0\"],\" \",[\"1\"]],\"rT2cV+\":\"カメラ\",\"JGGrPC\":\"文字、数字、スペース、ハイフン、およびアンダースコアのみを含めることができます。長さは4文字以上32文字以下である必要があります。\",\"dEgA5A\":\"キャンセル\",\"aMH9rr\":\"アカウントの削除をキャンセル\",\"kc3E4R\":\"画像のALTテキストの追加をキャンセル\",\"wg4LHQ\":\"ハンドルの変更をキャンセル\",\"hFL1Li\":\"画像の切り抜きをキャンセル\",\"tijH8t\":\"プロフィールの編集をキャンセル\",\"Qe4C/d\":\"引用投稿をキャンセル\",\"5TviPn\":\"検索をキャンセル\",\"nss3UV\":\"Waitlistの登録をキャンセル\",\"o+XJ9D\":\"変更\",\"pQco5R\":\"ハンドルを変更\",\"Q5e1U/\":\"ハンドルを変更\",\"a3NAfL\":\"Eメールの変更\",\"4vatyk\":\"Eメールを変更\",\"Yn3C90\":\"推奨フィードを確認してください。「+」をタップすればフィードに追加されます。\",\"ioZXIH\":\"推奨ユーザーを確認してください。フォローする事であなたに合ったユーザーが見つかるかもしれません。\",\"/+X+/K\":\"Eメールの受信トレイを確認して、以下に入力するコードが記載されたメールが届いていないか確認してください:\",\"Rt502e\":\"サービスを選択\",\"/L45sc\":\"カスタムフィードを使用して経験を強化するアルゴリズムを選択します。\",\"Wk8hkn\":\"パスワードを選択\",\"Us7A1O\":\"レガシーストレージデータをすべてクリア\",\"X3zEXo\":\"すべてのレガシーストレージデータをクリア(この後再起動)\",\"zxFM2c\":\"すべてのストレージデータをクリア\",\"r+lhUL\":\"すべてのストレージデータをクリア(この後再起動)\",\"QbvBNV\":\"検索クエリをクリア\",\"flH7u/\":\"アラートを閉じる\",\"hYmnbk\":\"一番下の引き出しを閉じる\",\"47L1V1\":\"画像を閉じる\",\"l49ujN\":\"画像ビューアを閉じる\",\"UryHFO\":\"ナビゲーションフッターを閉じる\",\"KHzDTk\":\"コミュニティガイドライン\",\"o8UUti\":\"返信を作成\",\"7VpPHA\":\"確認\",\"q8upsf\":\"変更を確認\",\"8pNKIr\":\"コンテンツ言語の設定を確認\",\"tGg8Kt\":\"アカウントの削除を確認\",\"ioZOzk\":\"確認コード\",\"J28zul\":\"接続中...\",\"l879p1\":\"コンテンツフィルタリング\",\"m8j6up\":\"コンテンツフィルタリング\",\"/PlAsF\":\"コンテンツ言語\",\"cogwXi\":\"コンテンツ警告\",\"FG7AQv\":\"コンテンツ警告\",\"xGVfLh\":\"続行\",\"6V3Ea3\":\"コピー済み\",\"he3ygx\":\"コピー\",\"7LTXf4\":\"Copy link to list\",\"dWsPi5\":\"Copy link to post\",\"jw+abr\":\"Copy link to profile\",\"iQgJaz\":\"投稿テキストをコピー\",\"u40k/o\":\"著作権ポリシー\",\"7wWvgo\":\"フィードのロードに失敗\",\"8NNr/O\":\"リストのロードに失敗\",\"mpt9T+\":\"新しいアカウントを作成\",\"IS0nrP\":\"アカウントを作成\",\"6HbhpU\":\"新しいアカウントを作成\",\"MXSt4t\":[\"作成済み \",[\"0\"]],\"GAD3Dx\":\"カスタムドメイン\",\"ZQKLI1\":\"危険地帯\",\"ZDGm40\":\"アカウントを削除\",\"vzX5FB\":\"アカウントを削除\",\"gUEtxf\":\"アプリパスワードを削除\",\"84uE/A\":\"リストを削除\",\"ktknoE\":\"マイアカウントを削除\",\"szz0+N\":\"マイアカウントを削除…\",\"04G5Az\":\"投稿を削除\",\"FbPNuJ\":\"この投稿を削除しますか?\",\"u+1OHY\":\"投稿を削除しました。\",\"Nu4oKW\":\"説明\",\"dacKHE\":\"開発者サーバー\",\"2ygkE8\":\"開発者ツール\",\"bzSI52\":\"破棄\",\"BryYJR\":\"ドラフトを破棄\",\"9Y7FMD\":\"Discourage apps from showing my account to logged-out users\",\"pbLwal\":\"新しいフィードを検出\",\"pfa8F0\":\"表示名\",\"0gS7M5\":\"表示名\",\"iZ5pMB\":\"ドメインを確認しました!\",\"DPfwMq\":\"完了\",\"zT97vP\":[\"完了\",[\"extraText\"]],\"4uwlSD\":\"それぞれのコードは一度ずつ動作します。定期的により多くの招待コードを受け取ります。\",\"XQFMOm\":\"画像を編集\",\"S7M0uU\":\"リストの詳細を編集\",\"cLmurE\":\"マイフィードを編集\",\"bRZ5XW\":\"マイプロフィールを編集\",\"9OpVZg\":\"プロフィールを編集\",\"QJQd1J\":\"プロフィールを編集\",\"Jn7kox\":\"保存済みフィードを編集\",\"O3oNi5\":\"Eメール\",\"ATGYL1\":\"Eメールアドレス\",\"pJJ0Vp\":\"Eメール更新\",\"9Qs99X\":\"Eメール:\",\"96mted\":\"この設定を有効にすると、フォローしているユーザー間の応答だけが表示されます。\",\"9xK+YC\":\"End of feed\",\"YbIxza\":\"プロバイダーのアドレスを入力してください:\",\"BfIgP6\":\"使用するドメインを入力\",\"cHrOqs\":\"アカウントの作成に使用したEメールを入力します。新しいパスワードを設定できるように、「リセットコード」をお送りします。\",\"xRPn3U\":\"Eメールアドレスを入力\",\"+inPGm\":\"以下に新しいメールアドレスを入力してください。\",\"T0KLp4\":\"ユーザー名とパスワードを入力\",\"4BITzH\":\"エラー:\",\"wlzBtv\":\"Everybody\",\"0PkE20\":\"ALTテキストを展開\",\"/5K/KL\":\"推奨フィードのロードに失敗\",\"4yCy8i\":\"フィードはオフライン\",\"N0CqyO\":\"フィード設定\",\"YirHq7\":\"フィードバック\",\"2DoBvq\":\"フィード\",\"I3iUBQ\":\"フィードはコンテンツを整理する為にユーザーによって作成されます。興味具かいフィードをいくつか選択してください。\",\"2+6lmO\":\"フィードはユーザーがプログラミングの専門知識を持って構築するカスタムアルゴリズムです。詳細については、<0/>を参照してください。\",\"Qzj1WT\":\"似通ったアカウントを検索中...\",\"QKSrQV\":\"ホーム画面に表示されるコンテンツを微調整します。\",\"r+KeyR\":\"ディスカッションスレッドを微調整します。\",\"MKEPCY\":\"フォロー\",\"Wezu5M\":\"いくつかのユーザーをフォローして開始します。興味を持っている人に基づいて、より多くのユーザーをお勧めできます。\",\"jdbMSV\":\"Followed users\",\"YY2BTA\":\"フォローされたユーザーのみ\",\"x5LEuB\":\"フォロワー\",\"NIjL2Y\":\"フォロー中\",\"y6sq5j\":\"フォロー中\",\"p3UO/y\":\"あなたをフォロー\",\"5RhDkD\":\"セキュリティ上の理由から、Eメールアドレスに確認コードを送信する必要があります。\",\"NJPhAO\":\"セキュリティ上の理由から、これを再度表示することはできません。このパスワードを紛失した場合は、新しいパスワードを生成する必要があります。\",\"5bDfuq\":\"失念\",\"hEPLrs\":\"パスワードを失念\",\"dn8X5t\":\"パスワードを失念\",\"U+kFad\":\"ギャラリー\",\"c3b0B0\":\"はじめに\",\"CKyk7Q\":\"戻る\",\"sr0UJD\":\"戻る\",\"Rtp0y7\":\"次へ\",\"Nf7oXL\":\"ハンドル\",\"c3XJ18\":\"ヘルプ\",\"uX/4+/\":\"アプリパスワードをお知らせします。\",\"vLyv1R\":\"非表示\",\"qdOx2q\":\"ユーザーリストを非表示にする\",\"FynkM2\":\"Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue.\",\"WTcLyw\":\"Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue.\",\"/8MHCt\":\"Hmm, the feed server appears to be offline. Please let the feed owner know about this issue.\",\"3zJH1g\":\"Hmm, the feed server gave a bad response. Please let the feed owner know about this issue.\",\"wkCNhr\":\"Hmm, we're having trouble finding this feed. It may have been deleted.\",\"i0qMbr\":\"ホーム\",\"sXZ8IU\":\"ホームフィード設定\",\"yt7fhu\":\"ホスティングプロバイダー\",\"s2xA6t\":\"ホスティングプロバイダーアドレス\",\"o+axy6\":\"コードを持っている\",\"wey2os\":\"自分のドメインを持っている\",\"WlEcKr\":\"選択されていない場合は、すべての年齢に適しています。\",\"VCk0rR\":\"画像のALTテキスト\",\"STGpNQ\":\"イメージオプション\",\"dSKHAa\":\"無効なユーザー名またはパスワード\",\"MFKlMB\":\"招待\",\"F5MZVk\":\"友人を招待\",\"6KlkHI\":\"招待コード\",\"MYTV5o\":\"招待コードが確認できません。正しく入力されている事を確認し、もう一度実行してください。\",\"UY2916\":[\"Invite codes: \",[\"invitesAvailable\"],\" available\"],\"F75w8j\":\"待機リストに参加\",\"6iVTdm\":\"待機リストに参加します。\",\"SNzppu\":\"待機リストに参加\",\"Dcq5kL\":\"言語選択\",\"pVhZHk\":\"言語設定\",\"GAmD3h\":\"言語\",\"NgeSlx\":\"詳細\",\"rj0Lke\":\"この警告の詳細\",\"lvYkpV\":\"Learn more about what is public on Bluesky.\",\"kq2ga7\":\"どの言語も表示するには、すべてのチェックを外したままにします。\",\"QfDITI\":\"Blueskyから離れる\",\"Esfg1M\":\"パスワードをリセットしましょう!\",\"exYcTF\":\"ライブラリー\",\"BvSY1i\":\"このフィードをいいね\",\"8/ALSr\":\"いいねした人:\",\"zZOZj7\":\"Likes\",\"AUSVsF\":\"Limit the visibility of my account to logged-out users\",\"FuZWua\":\"リストアバター\",\"8mjA4F\":\"リスト名\",\"h16FyT\":\"リスト\",\"ujW4FW\":\"より多くの投稿をロード\",\"7EHsGr\":\"新しい通知をロード\",\"VkLESX\":\"新しい投稿をロード\",\"Z3FXyt\":\"ロード中...\",\"jl0AFf\":\"ローカル開発者サーバー\",\"5Aq6mk\":\"Logged-out users\",\"w2yNjr\":\"Logged-out visibility\",\"cR9UpQ\":\"リストにないアカウントにログイン\",\"kkGiug\":\"Looks like this feed is only available to users with a Bluesky account. Please sign up or sign in to view this feed!\",\"2U/gDT\":\"意図する場所である事を確認してください!\",\"xYilR2\":\"Media\",\"S9V0C/\":\"mentioned users\",\"31/84x\":\"Mentioned users\",\"zucql+\":\"メニュー\",\"kTQnAw\":\"Message from server\",\"DzmsLV\":\"モデレート\",\"NTIbv4\":\"モデレートリスト\",\"3j2OjF\":\"Moderation Lists\",\"FIJUJb\":\"その他のフィード\",\"3Siwmw\":\"その他のオプション\",\"RA1KUZ\":\"アカウントをミュート\",\"du0opt\":\"アカウントをミュート\",\"25PHAB\":\"Mute list\",\"izOxJM\":\"これらのアカウントをミュートしますか?\",\"jq7SjD\":\"スレッドをミュート\",\"s22grX\":\"ミュート済みアカウント\",\"qUa+lV\":\"ミュート済みアカウント\",\"gA0D9A\":\"ミュート済みのアカウントは、フィードと通知からの投稿が削除されます。ミュート設定は知られることはありません。\",\"1QJzM7\":\"ミュートはプライベートです。ミュート済みアカウントはユーザーと相互作用することができますが、そのアカウントの投稿や通知を受信することはできません。\",\"Mysqyf\":\"誕生日\",\"6MBNS/\":\"マイフィード\",\"hKtWk2\":\"マイプロフィール\",\"Ha6iBv\":\"保存済みフィード\",\"6YtxFj\":\"名前\",\"8yolS6\":\"決してフォロワーやデータへのアクセスを失わないでください。\",\"isRobC\":\"新規\",\"2B7HLH\":\"新しい投稿\",\"FGrimz\":\"新しい投稿\",\"hXzOVo\":\"次へ\",\"EatZYJ\":\"次の画像\",\"1UzENP\":\"なし\",\"flmDTf\":\"説明なし\",\"zfN9gJ\":\"結果なし\",\"fOlAiK\":[\"「\\\\\",[\"query\"],\"」の検索結果がない\"],\"SVF205\":[\"\\\\\",[\"query\"],\"の検索結果がない\"],\"xpF9po\":\"Nobody\",\"iyUCYw\":\"該当なし。\",\"ACqM3c\":\"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.\",\"+lYa0i\":\"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.\",\"iDNBZe\":\"通知\",\"5GGAqz\":\"ちょっと!\",\"UaXeX3\":\"OK\",\"Cqo2D+\":\"1つ以上の画像にALTテキストがありません。\",\"Kq2/SU\":[\"Only \",[\"0\"],\" can reply.\"],\"M/Q2aG\":\"ナビゲーションを開く\",\"M5PuNq\":\"構成可能な言語設定を開く\",\"S67TOE\":\"Opens list of invite codes\",\"eSqpax\":\"カスタムドメインを使用するためのモーダルを開く\",\"vYwHHI\":\"モデレート設定を開く\",\"0tHyB7\":\"保存されたすべてのフィードで画面を開く\",\"nmRoY/\":\"アプリのパスワード設定ページを開く\",\"6e9Apv\":\"ホームフィード設定を開きます\",\"O87Dr/\":\"ストーリーブックのページを開く\",\"G+PVmg\":\"システムログのページを開く\",\"Jqb7sy\":\"スレッド設定を開きます\",\"b22AVl\":\"その他のアカウント\",\"n+HLOP\":\"その他のサービス\",\"1PKxQ7\":\"その他...\",\"8F1i42\":\"ページが見つからない\",\"8ZsakT\":\"パスワード\",\"ogtYkT\":\"パスワードが更新された\",\"DKeVgZ\":\"パスワードが更新されました!\",\"VeZE5Q\":\"写真は成人向けです。\",\"zgoxy5\":\"ピン接続フィード\",\"Aw5fOC\":\"ハンドルをお選びください。\",\"5vI4sE\":\"パスワードを選択してください。\",\"Apyknf\":\"変更する前にメールを確認してください。これは、Eメールアップデートツールが追加されている間の一時的な要件であり、まもなく削除されます。\",\"9qpQ5O\":\"このアプリパスワードに固有の名前を入力するか、ランダムに生成された名前を使用してください。\",\"hV+cYN\":\"Eメールを入力してください。\",\"QJr5Xp\":\"パスワードも入力してください:\",\"d7tryi\":\"Please tell us why you think this decision was incorrect.\",\"y28hnO\":\"投稿\",\"h5RcXU\":\"投稿非表示\",\"r5zLS0\":\"ポスト言語\",\"AzCucI\":\"投稿言語\",\"tJFPmV\":\"投稿が見つからない\",\"+owNNn\":\"Posts\",\"0+DQbr\":\"誤解を招く可能性のあるリンク\",\"MHk+7g\":\"前の画像\",\"HeBcM5\":\"第一言語\",\"x8iR7V\":\"フォローの優先順位付け\",\"rjGI/Q\":\"プライバシー\",\"LcET2C\":\"プライバシーポリシー\",\"k1ifdL\":\"処理中...\",\"vERlcd\":\"プロフィール\",\"MrgqOW\":\"Eメールを確認してアカウントを保護します。\",\"9nSV9I\":\"Public, shareable lists of users to mute or block in bulk.\",\"p1UmBX\":\"フィードを駆動できるパブリックで共有可能なリスト。\",\"8HFFRQ\":\"引用投稿\",\"+KrAHa\":\"引用投稿\",\"WlWsdE\":\"比率\",\"QNzcT3\":\"推奨フィード\",\"41UoJb\":\"推奨ユーザー\",\"t/YqKh\":\"削除\",\"p/cRzf\":[\"マイフィードから\",[\"0\"],\"を削除しますか?\"],\"1O32oy\":\"アカウントを削除\",\"W44VX5\":\"フィードを削除\",\"Yy3FzB\":\"マイフィードから削除\",\"5ywtDz\":\"イメージを削除\",\"Dw/XUh\":\"イメージプレビューを削除\",\"3fdNAy\":\"Remove this feed from my feeds?\",\"TbDEfs\":\"保存したフィードからこのフィードを削除しますか?\",\"Obm5+c\":\"リストから削除された\",\"N8UzTV\":\"Replies\",\"oQPadq\":\"Replies to this thread are disabled\",\"Veu9gK\":\"返信フィルター\",\"lQWbAr\":[\"レポート \\\\\",[\"collectionName\"]],\"bDHSjj\":\"レポートアカウント\",\"NKmI9f\":\"レポートフィード\",\"6iwm2r\":\"レポートリスト\",\"6IcSvC\":\"レポート投稿\",\"mkude1\":\"再投稿\",\"JOV5dR\":\"再投稿または引用投稿\",\"0zb9FX\":\"再投稿者\",\"bqG37Z\":\"変更を要求\",\"8XIT+P\":\"このプロバイダーに必要\",\"vJgYMA\":\"コードをリセット\",\"xEL92I\":\"オンボード状態をリセット\",\"RfwZxd\":\"パスワードをリセット\",\"bee/Fw\":\"設定をリセット\",\"wToeoz\":\"オンボード状態をリセット\",\"nIU7qI\":\"設定状態をリセット\",\"6gRgw8\":\"再試行\",\"tfDRzk\":\"保存\",\"KV2YQQ\":\"ALTテキストを保存\",\"IUwGEM\":\"変更を保存\",\"Xs07Tg\":\"ハンドルの変更を保存\",\"BckA7m\":\"画像の切り抜きを保存\",\"+K+JDj\":\"保存済みフィード\",\"A1taO8\":\"検索\",\"BF8cu3\":\"投稿とユーザーを検索します。\",\"CKROFy\":\"必要なセキュリティ手順\",\"cNzyJW\":\"次を見る\",\"L5sM7N\":\"Bluesky Socialを選択\",\"o3dwub\":\"既存のアカウントから選択\",\"GGw2AK\":\"サービスを選択\",\"vECNLO\":\"登録済みフィードに含める言語を選択します。選択されていない場合は、すべての言語が表示されます。\",\"m5aabx\":\"アプリに表示するデフォルトのテキストのアプリ言語を選択する\",\"TiiOza\":\"フィード内の翻訳に使用する言語を選択します。\",\"vp9yIB\":\"確認Eメールを送信\",\"65dxv8\":\"Eメールを送信\",\"i/TzEU\":\"Eメールを送信\",\"RoafuO\":\"フィードバックを送信\",\"4cijjm\":\"レポートを送信\",\"V/e7nf\":\"新しいパスワードを設定\",\"gwsie4\":\"フィードから全ての引用投稿を非表示にするには、この設定を「いいえ」にします。再投稿は引き続き表示されます。\",\"IZjC3J\":\"フィードから全ての返信を非表示にするには、この設定を「いいえ」にします。\",\"KIgU3l\":\"フィードから全ての再投稿を非表示にするには、この設定を「いいえ」にします。\",\"zaAyrz\":\"スレッド表示で返信を表示するには、この設定を「はい」にします。これは実験的な機能です。\",\"fQV2eE\":\"保存したフィードのサンプルを次のフィードに表示するには、この設定を「はい」にします。これは実験的な機能です。\",\"Tz0i8g\":\"設定\",\"HfWHhJ\":\"性行為またはエロティックなヌード。\",\"Z8lGw6\":\"共有\",\"P33tEA\":\"フィードを共有\",\"8vETh9\":\"表示\",\"aWAdCb\":\"とにかく表示\",\"NijgXr\":\"マイフィードからの投稿を表示\",\"T3Mt8m\":\"引用投稿を表示\",\"BlW8X/\":\"返信を表示\",\"X4GwDb\":\"他のすべての返信の前に、フォローしている人からの返信を表示します。\",\"GiogzH\":\"再投稿を表示\",\"fhY/fL\":\"ユーザーを表示\",\"5lWFkC\":\"サインイン\",\"n1ekoW\":\"サインイン\",\"N9o7n5\":[[\"0\"],\"としてサインイン\"],\"FT1MVS\":\"...としてサインイン\",\"+UpfFC\":\"サインイン\",\"fcWrnU\":\"サインアウト\",\"e+RpCP\":\"サインアップ\",\"MiE4Vp\":\"登録またはログインして会話に参加する\",\"zU+Ro7\":\"サインイン済み\",\"6Uau97\":\"スキップ\",\"0o5BFH\":\"返信を並び替える\",\"GH1Rgk\":\"次の方法で同じ投稿への返信を並び替えます。\",\"1DA6ap\":\"正方形\",\"aKEHLj\":\"ステージング\",\"tgEXwM\":\"ステータスページ\",\"P5jja7\":\"ストーリーブック\",\"hQRttt\":\"Submit\",\"EDl9kS\":\"登録\",\"5z3ICN\":\"このリストに登録\",\"TVFyMD\":\"推奨されるフォロー\",\"XYLcNv\":\"サポート\",\"VjWeLI\":\"アカウントを切り替える\",\"fP8jTZ\":\"システムログ\",\"HF6Iah\":\"トール\",\"4Y5H+g\":\"条件\",\"xowcRf\":\"利用規約\",\"p8Iz39\":\"テキスト入力フィールド\",\"GlPXQJ\":\"このアカウントは、ブロック解除後にお客様とやり取りすることができます。\",\"o4M2MP\":\"コミュニティ ガイドラインが<0/>に移動された\",\"U42lKc\":\"著作権ポリシーが<0/>に移動された\",\"G4EksE\":\"投稿が削除された可能性があります。\",\"WNR9db\":\"プライバシーポリシーが<0/>に移動された\",\"LbEbIk\":[\"サポートフォームが移動しました。サポートが必要な場合は、<0/>または\\\\\",[\"HELP_DESK_URL\"],\"にアクセスしてご連絡ください。\"],\"FGbRSr\":\"サービス規約が移動された\",\"yUqcy2\":\"アプリケーションに予期しない問題が発生しました。このようなことがありましたらお知らせください!\",\"jSe8k/\":[\"This \",[\"0\"],\" has been labeled.\"],\"KRYn8w\":[\"この\\\\\",[\"screenDescription\"],\"にはフラグが設定されています。\"],\"aBX1qv\":\"This content is not viewable without a Bluesky account.\",\"xI4xW5\":\"This feed is currently receiving high traffic and is temporarily unavailable. Please try again later.\",\"lm845B\":\"この情報は他のユーザーと共有されません。\",\"5Pvw/O\":\"これは、Eメールの変更やパスワードのリセットが必要な場合に重要です。\",\"sQQfZ9\":\"これはオンラインを維持するためのサービスです。\",\"CvX8qs\":\"このリンクは次のウェブサイトへリンクしています:\",\"WKrUVy\":\"この投稿は削除されました。\",\"qpCA5s\":\"この警告は、メディアが接続されている投稿にのみ使用できます。\",\"u9ThjD\":\"スレッドの設定\",\"zmXsk5\":\"スレッドモード\",\"1x30Qt\":\"トグルドロップダウン\",\"KFXQEt\":\"変換\",\"pi8x/S\":\"翻訳\",\"KDw4GX\":\"再試行\",\"RF3/jE\":\"Un-block list\",\"+/SGK9\":\"Un-mute list\",\"nc4Wfd\":\"サービスに接続できません。インターネット接続を確認してください。\",\"tuS5Jz\":\"ブロック解除\",\"0VrZZv\":\"アカウントのブロック解除\",\"6pYY4t\":\"再投稿を元に戻す\",\"05f3UA\":\"残念ながら、アカウントを作成するための要件を満たしていません。\",\"wx9wqY\":\"アカウントのミュート解除\",\"s12/Py\":\"スレッドのミュート解除\",\"EvGmWj\":\"Unpin moderation list\",\"vaz2uI\":[\"リストの\\\\\",[\"displayName\"],\"を更新\"],\"YXMY4w\":\"更新可能\",\"RXbEvi\":\"更新中…\",\"Vwkfp4\":\"テキストファイルのアップロード先:\",\"jTdnU6\":\"他のBlueskyクライアントにアカウントやパスワードにフルアクセスする権限を与えずに、アプリパスワードを使ってログインします。\",\"CH1am9\":\"デフォルトプロバイダーを使用\",\"ZG8UvP\":\"これとハンドルを使って他のアプリにサインインします。\",\"cKXwwI\":\"使用者:\",\"t4Yp4Z\":\"ユーザーハンドル\",\"8tsrUV\":\"ユーザーリスト\",\"nZx9mr\":\"ユーザー名またはEメールアドレス\",\"Sxm8rQ\":\"ユーザー\",\"Hbhyg2\":\"users followed by <0/>\",\"9k1aoj\":[\"Users in \\\"\",[\"0\"],\"\\\"\"],\"MBOY4U\":\"Eメールを確認\",\"Ejyv0o\":\"Eメールを確認\",\"9czCrB\":\"Eメールを確認\",\"ibSVGR\":\"新しいEメールを確認\",\"nHsQde\":\"欠陥事項を表示\",\"47jzzd\":\"アバターを表示\",\"wK4H1r\":\"サイトへアクセス\",\"qjBGxf\":\"あなたが参加してくれることをとても楽しみにしています!\",\"WBQOQ0\":\"申し訳ありませんが、検索を完了できませんでした。数分後に再試行してください。\",\"/mVVX2\":\"申し訳ありません! お探しのページが見つかりません。\",\"meB+tZ\":\"<0>Blueskyへようこそ\",\"Mj7rl/\":[\"この\\\\\",[\"collectionName\"],\"の問題は何ですか?\"],\"3qn29J\":\"この投稿ではどの言語が使われていますか?\",\"uawiGa\":\"アルゴリズムフィードに表示する言語を選択しますか?\",\"yvDWMs\":\"Who can reply\",\"I5S9ZE\":\"ワイド\",\"y02THm\":\"投稿を書く\",\"6ckZRB\":\"返信を書く\",\"l75CjT\":\"はい\",\"STPj0e\":\"ホスティングプロバイダはいつでも変更できます。\",\"67nRLM\":\"新しいパスワードでサインインできるようになりました。\",\"lIcbCU\":\"まだ招待コードがありません!Blueskyをもうしばらく利用したらお送りします。\",\"aFZZYi\":\"ピンで固定されたフィードがありません。\",\"kX/cKs\":\"保存されたフィードがありません!\",\"nbz3Iq\":\"保存されたフィードがありません。\",\"RkXibf\":\"著者をブロックしたか、または著者によってブロックされました。\",\"CbrOgr\":\"You have no feeds.\",\"tCLJ9E\":\"リストがありません。\",\"soH9qC\":\"ブロックしているアカウントはまだありません。アカウントをブロックするには、ユーザーのプロフィールに移動し、アカウントメニューから「アカウントをブロック」を選択します。\",\"NDgp3i\":\"アプリパスワードはまだ作成されていません。 下のボタンを押すと作成できます。\",\"grqdXb\":\"ミュートしているアカウントはまだありません。アカウントをミュートするには、プロフィールに移動し、アカウントメニューから「アカウントをミュート」を選択します。\",\"RrDyEb\":\"「リセットコード」が記載されたEメールが届きます。ここにコードを入力し、新しいパスワードを入力します。\",\"gdRnT7\":\"アカウント\",\"k7hmsH\":\"生年月日\",\"tBpzKB\":\"Eメールが無効なようです。\",\"OubkcP\":\"Eメールが保存されました!すぐにご連絡いたします。\",\"z2L+/9\":\"Eメールは更新されましたが、確認されていません。次のステップとして、新しいEメールを確認してください。\",\"XZlIVw\":\"Eメールはまだ確認されていません。これは、当社が推奨する重要なセキュリティステップです。\",\"qv9f4I\":\"フルハンドルは\",\"lvcqqG\":\"ホスティングプロバイダー\",\"fbFyAZ\":\"Your invite codes are hidden when logged in using an App Password\",\"Oqt/PG\":\"投稿、いいね、ブロックは公開されます。ミュートはプライベートです。\",\"okRPtW\":\"プロフィール\",\"ogY7EU\":\"Your profile and posts will not be visible to people visiting the Bluesky app or website without having an account and being logged in.\",\"MvWO9d\":\"ユーザーハンドル\"}")}; \ No newline at end of file diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index 4cde1ed952..09301c3385 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -39,7 +39,7 @@ msgstr "{invitesAvailable}個の招待コードが利用可能" msgid "{invitesAvailable} invite codes available" msgstr "{invitesAvailable}個の招待コードが利用可能" -#: src/view/screens/Search/Search.tsx:88 +#: src/view/screens/Search/Search.tsx:87 msgid "{message}" msgstr "{message}" @@ -234,9 +234,9 @@ msgstr "芸術的または性的ではないヌード。" #: src/view/com/auth/login/LoginForm.tsx:249 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 #: src/view/com/modals/report/InputIssueDetails.tsx:45 -#: src/view/com/post-thread/PostThread.tsx:395 -#: src/view/com/post-thread/PostThread.tsx:445 -#: src/view/com/post-thread/PostThread.tsx:453 +#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:438 +#: src/view/com/post-thread/PostThread.tsx:446 #: src/view/com/profile/ProfileHeader.tsx:672 msgid "Back" msgstr "戻る" @@ -275,7 +275,7 @@ msgstr "これらのアカウントをブロックしますか?" msgid "Blocked accounts" msgstr "ブロック中のアカウント" -#: src/view/screens/ModerationBlockedAccounts.tsx:106 +#: src/view/screens/ModerationBlockedAccounts.tsx:107 msgid "Blocked Accounts" msgstr "ブロック中のアカウント" @@ -283,11 +283,11 @@ msgstr "ブロック中のアカウント" msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "ブロック中のアカウントは、あなたのスレッドでの返信、あなたへのメンション、その他の方法であなたとやり取りすることはできません。" -#: src/view/screens/ModerationBlockedAccounts.tsx:114 +#: 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 "ブロック中のアカウントは、あなたのスレッドでの返信、あなたへのメンション、その他の方法であなたとやり取りすることはできません。あなたは相手のコンテンツを見ることができず、相手はあなたのコンテンツを見ることができなくなります。" -#: src/view/com/post-thread/PostThread.tsx:251 +#: src/view/com/post-thread/PostThread.tsx:250 msgid "Blocked post." msgstr "投稿をブロックしました。" @@ -360,7 +360,7 @@ msgstr "文字、数字、スペース、ハイフン、およびアンダース #: src/view/com/modals/LinkWarning.tsx:85 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 -#: src/view/screens/Search/Search.tsx:592 +#: src/view/screens/Search/Search.tsx:584 #: src/view/shell/desktop/Search.tsx:182 msgid "Cancel" msgstr "キャンセル" @@ -461,7 +461,7 @@ msgid "Clear all storage data (restart after this)" msgstr "すべてのストレージデータをクリア(この後再起動します)" #: src/view/com/util/forms/SearchInput.tsx:73 -#: src/view/screens/Search/Search.tsx:577 +#: src/view/screens/Search/Search.tsx:569 msgid "Clear search query" msgstr "検索クエリをクリア" @@ -650,7 +650,7 @@ msgstr "投稿を削除" msgid "Delete this post?" msgstr "この投稿を削除しますか?" -#: src/view/com/post-thread/PostThread.tsx:243 +#: src/view/com/post-thread/PostThread.tsx:242 msgid "Deleted post." msgstr "投稿を削除しました。" @@ -801,7 +801,7 @@ msgstr "以下に新しいメールアドレスを入力してください。" msgid "Enter your username and password" msgstr "ユーザー名とパスワードを入力" -#: src/view/screens/Search/Search.tsx:106 +#: src/view/screens/Search/Search.tsx:105 msgid "Error:" msgstr "エラー:" @@ -818,7 +818,7 @@ msgstr "ALTテキストを展開" msgid "Failed to load recommended feeds" msgstr "おすすめのフィードのロードに失敗しました" -#: src/view/screens/Feeds.tsx:560 +#: src/view/screens/Feeds.tsx:554 msgid "Feed offline" msgstr "フィードはオフラインです" @@ -848,11 +848,11 @@ msgstr "フィードはコンテンツを整理する為にユーザーによっ msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "フィードはユーザーがプログラミングの専門知識を持って構築するカスタムアルゴリズムです。詳細については、<0/>を参照してください。" -#: src/view/screens/Search/Search.tsx:422 +#: src/view/screens/Search/Search.tsx:414 msgid "Find users on Bluesky" msgstr "Blueskyでユーザーを検索" -#: src/view/screens/Search/Search.tsx:420 +#: src/view/screens/Search/Search.tsx:412 msgid "Find users with the search tool on the right" msgstr "右側の検索ツールでユーザーを検索" @@ -1161,8 +1161,8 @@ msgstr "リストの名前" msgid "Lists" msgstr "リスト" -#: src/view/com/post-thread/PostThread.tsx:260 -#: src/view/com/post-thread/PostThread.tsx:268 +#: src/view/com/post-thread/PostThread.tsx:259 +#: src/view/com/post-thread/PostThread.tsx:267 msgid "Load more posts" msgstr "より多くの投稿をロード" @@ -1214,7 +1214,7 @@ msgstr "メンションされたユーザー" msgid "Mentioned users" msgstr "メンションされたユーザー" -#: src/view/screens/Search/Search.tsx:537 +#: src/view/screens/Search/Search.tsx:529 msgid "Menu" msgstr "メニュー" @@ -1272,11 +1272,11 @@ msgstr "スレッドをミュート" msgid "Muted accounts" msgstr "ミュートされたアカウント" -#: src/view/screens/ModerationMutedAccounts.tsx:106 +#: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" msgstr "ミュートされたアカウント" -#: src/view/screens/ModerationMutedAccounts.tsx:114 +#: 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 "ミュートをされたアカウントは、フィードと通知からの投稿が削除されます。ミュートの設定は完全に非公開です。" @@ -1315,7 +1315,7 @@ msgid "New" msgstr "新規" #: src/view/com/feeds/FeedPage.tsx:200 -#: src/view/screens/Feeds.tsx:511 +#: src/view/screens/Feeds.tsx:505 #: src/view/screens/Profile.tsx:354 #: src/view/screens/ProfileFeed.tsx:430 #: src/view/screens/ProfileList.tsx:193 @@ -1362,9 +1362,9 @@ msgid "No results found for \"{query}\"" msgstr "「{query}」の検索結果はありません" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:271 -#: src/view/screens/Search/Search.tsx:299 -#: src/view/screens/Search/Search.tsx:615 +#: src/view/screens/Search/Search.tsx:263 +#: src/view/screens/Search/Search.tsx:291 +#: src/view/screens/Search/Search.tsx:607 #: src/view/shell/desktop/Search.tsx:210 msgid "No results found for {query}" msgstr "「{query}」の検索結果はありません" @@ -1531,12 +1531,12 @@ msgstr "" #~ msgstr "この判断が誤っていると考える理由を教えてください。" #: src/view/com/composer/Composer.tsx:337 -#: src/view/com/post-thread/PostThread.tsx:226 +#: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" msgstr "投稿" -#: src/view/com/post-thread/PostThread.tsx:385 +#: src/view/com/post-thread/PostThread.tsx:378 msgid "Post hidden" msgstr "投稿を非表示" @@ -1548,7 +1548,7 @@ msgstr "投稿の言語" msgid "Post Languages" msgstr "投稿の言語" -#: src/view/com/post-thread/PostThread.tsx:437 +#: src/view/com/post-thread/PostThread.tsx:430 msgid "Post not found" msgstr "投稿が見つかりません" @@ -1792,8 +1792,8 @@ msgstr "保存されたフィード" #: src/view/com/modals/ListAddRemoveUsers.tsx:75 #: src/view/com/util/forms/SearchInput.tsx:64 -#: src/view/screens/Search/Search.tsx:401 -#: src/view/screens/Search/Search.tsx:567 +#: src/view/screens/Search/Search.tsx:393 +#: src/view/screens/Search/Search.tsx:559 #: src/view/shell/bottom-bar/BottomBar.tsx:159 #: src/view/shell/desktop/LeftNav.tsx:322 #: src/view/shell/desktop/Search.tsx:161 @@ -2046,7 +2046,7 @@ msgstr "登録" msgid "Subscribe to this list" msgstr "このリストに登録" -#: src/view/screens/Search/Search.tsx:357 +#: src/view/screens/Search/Search.tsx:349 msgid "Suggested Follows" msgstr "おすすめのフォロー" @@ -2092,7 +2092,7 @@ msgstr "コミュニティガイドラインは<0/>に移動されました" msgid "The Copyright Policy has been moved to <0/>" msgstr "著作権ポリシーが<0/>に移動されました" -#: src/view/com/post-thread/PostThread.tsx:440 +#: src/view/com/post-thread/PostThread.tsx:433 msgid "The post may have been deleted." msgstr "投稿が削除された可能性があります。" @@ -2317,7 +2317,7 @@ msgstr "サイトへアクセス" msgid "We're so excited to have you join us!" msgstr "私たちはあなたが参加してくれることをとても楽しみにしています!" -#: src/view/screens/Search/Search.tsx:238 +#: src/view/screens/Search/Search.tsx:236 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "大変申し訳ありませんが、検索を完了できませんでした。数分後に再試行してください。" @@ -2393,20 +2393,20 @@ msgstr "保存されたフィードがありません!" msgid "You don't have any saved feeds." msgstr "保存されたフィードがありません。" -#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:381 msgid "You have blocked the author or you have been blocked by the author." msgstr "あなたが著者をブロックしているか、または著者によってあなたはブロックされています。" -#: src/view/com/feeds/ProfileFeedgens.tsx:141 +#: src/view/com/feeds/ProfileFeedgens.tsx:134 msgid "You have no feeds." msgstr "フィードがありません。" #: src/view/com/lists/MyLists.tsx:89 -#: src/view/com/lists/ProfileLists.tsx:145 +#: src/view/com/lists/ProfileLists.tsx:138 msgid "You have no lists." msgstr "リストがありません。" -#: src/view/screens/ModerationBlockedAccounts.tsx:131 +#: 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 "ブロック中のアカウントはまだありません。アカウントをブロックするには、ユーザーのプロフィールに移動し、アカウントメニューから「アカウントをブロック」を選択します。" @@ -2414,7 +2414,7 @@ msgstr "ブロック中のアカウントはまだありません。アカウン msgid "You have not created any app passwords yet. You can create one by pressing the button below." msgstr "アプリパスワードはまだ作成されていません。下のボタンを押すと作成できます。" -#: src/view/screens/ModerationMutedAccounts.tsx:130 +#: 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 "ミュートしているアカウントはまだありません。アカウントをミュートするには、プロフィールに移動し、アカウントメニューから「アカウントをミュート」を選択します。" From 28e0df595fef024526da4a0ba22cba9fdc07808f Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Sun, 24 Dec 2023 11:48:50 -0800 Subject: [PATCH 008/115] Fix: dont incorrectly mark a feed empty based only on the first page (#2298) --- src/view/com/posts/Feed.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx index 3d38fbbc50..02a3537eb7 100644 --- a/src/view/com/posts/Feed.tsx +++ b/src/view/com/posts/Feed.tsx @@ -95,10 +95,13 @@ let Feed = ({ isFetchingNextPage, fetchNextPage, } = usePostFeedQuery(feed, feedParams, opts) - const isEmpty = !isFetching && !data?.pages[0]?.slices.length if (data?.pages[0]) { lastFetchRef.current = data?.pages[0].fetchedAt } + const isEmpty = React.useMemo( + () => !isFetching && !data?.pages?.some(page => page.slices.length), + [isFetching, data], + ) const checkForNew = React.useCallback(async () => { if (!data?.pages[0] || isFetching || !onHasNew || !enabled) { From b1994051344c8dbb1f3b710d6343591daa6756b8 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Sun, 24 Dec 2023 16:24:56 -0600 Subject: [PATCH 009/115] Hide posts tool (#2299) * Set up hidden posts persisted state * Wrap moderatePost * Integrate hidden posts into moderation * Complete hide-post behaviors --------- Co-authored-by: Paul Frazee --- src/lib/moderatePost_wrapped.ts | 29 ++++++++++ src/lib/moderation.ts | 7 +++ src/state/persisted/legacy.ts | 1 + src/state/persisted/schema.ts | 2 + src/state/preferences/hidden-posts.tsx | 64 +++++++++++++++++++++ src/state/preferences/index.tsx | 6 +- src/state/queries/notifications/util.ts | 2 +- src/state/queries/post-feed.ts | 8 +-- src/state/queries/preferences/index.ts | 11 +++- src/view/com/post-thread/PostThreadItem.tsx | 2 +- src/view/com/post/Post.tsx | 2 +- src/view/com/util/forms/PostDropdownBtn.tsx | 29 ++++++++++ 12 files changed, 151 insertions(+), 12 deletions(-) create mode 100644 src/lib/moderatePost_wrapped.ts create mode 100644 src/state/preferences/hidden-posts.tsx diff --git a/src/lib/moderatePost_wrapped.ts b/src/lib/moderatePost_wrapped.ts new file mode 100644 index 0000000000..286d47e1d4 --- /dev/null +++ b/src/lib/moderatePost_wrapped.ts @@ -0,0 +1,29 @@ +import {moderatePost} from '@atproto/api' + +type ModeratePost = typeof moderatePost +type Options = Parameters[1] & { + hiddenPosts?: string[] +} + +export function moderatePost_wrapped( + subject: Parameters[0], + opts: Options, +) { + const {hiddenPosts = [], ...options} = opts + const moderations = moderatePost(subject, options) + + if (hiddenPosts.includes(subject.uri)) { + moderations.content.filter = true + moderations.content.blur = true + if (!moderations.content.cause) { + moderations.content.cause = { + // @ts-ignore Temporary extension to the moderation system -prf + type: 'post-hidden', + source: {type: 'user'}, + priority: 1, + } + } + } + + return moderations +} diff --git a/src/lib/moderation.ts b/src/lib/moderation.ts index 8ba99128bc..bf19c208ad 100644 --- a/src/lib/moderation.ts +++ b/src/lib/moderation.ts @@ -60,6 +60,13 @@ export function describeModerationCause( } } } + // @ts-ignore Temporary extension to the moderation system -prf + if (cause.type === 'post-hidden') { + return { + name: 'Post Hidden by You', + description: 'You have hidden this post', + } + } return cause.labelDef.strings[context].en } diff --git a/src/state/persisted/legacy.ts b/src/state/persisted/legacy.ts index f689c3d063..cdb542f5ac 100644 --- a/src/state/persisted/legacy.ts +++ b/src/state/persisted/legacy.ts @@ -108,6 +108,7 @@ export function transform(legacy: Partial): Schema { onboarding: { step: legacy.onboarding?.step || defaults.onboarding.step, }, + hiddenPosts: defaults.hiddenPosts, } } diff --git a/src/state/persisted/schema.ts b/src/state/persisted/schema.ts index 5ed8e01f34..27b1f26bdd 100644 --- a/src/state/persisted/schema.ts +++ b/src/state/persisted/schema.ts @@ -37,6 +37,7 @@ export const schema = z.object({ onboarding: z.object({ step: z.string(), }), + hiddenPosts: z.array(z.string()).optional(), // should move to server }) export type Schema = z.infer @@ -66,4 +67,5 @@ export const defaults: Schema = { onboarding: { step: 'Home', }, + hiddenPosts: [], } diff --git a/src/state/preferences/hidden-posts.tsx b/src/state/preferences/hidden-posts.tsx new file mode 100644 index 0000000000..11119ce758 --- /dev/null +++ b/src/state/preferences/hidden-posts.tsx @@ -0,0 +1,64 @@ +import React from 'react' +import * as persisted from '#/state/persisted' + +type SetStateCb = ( + s: persisted.Schema['hiddenPosts'], +) => persisted.Schema['hiddenPosts'] +type StateContext = persisted.Schema['hiddenPosts'] +type ApiContext = { + hidePost: ({uri}: {uri: string}) => void + unhidePost: ({uri}: {uri: string}) => void +} + +const stateContext = React.createContext( + persisted.defaults.hiddenPosts, +) +const apiContext = React.createContext({ + hidePost: () => {}, + unhidePost: () => {}, +}) + +export function Provider({children}: React.PropsWithChildren<{}>) { + const [state, setState] = React.useState(persisted.get('hiddenPosts')) + + const setStateWrapped = React.useCallback( + (fn: SetStateCb) => { + const s = fn(persisted.get('hiddenPosts')) + setState(s) + persisted.write('hiddenPosts', s) + }, + [setState], + ) + + const api = React.useMemo( + () => ({ + hidePost: ({uri}: {uri: string}) => { + setStateWrapped(s => [...(s || []), uri]) + }, + unhidePost: ({uri}: {uri: string}) => { + setStateWrapped(s => (s || []).filter(u => u !== uri)) + }, + }), + [setStateWrapped], + ) + + React.useEffect(() => { + return persisted.onUpdate(() => { + setState(persisted.get('hiddenPosts')) + }) + }, [setStateWrapped]) + + return ( + + {children} + + ) +} + +export function useHiddenPosts() { + return React.useContext(stateContext) +} + +export function useHiddenPostsApi() { + return React.useContext(apiContext) +} diff --git a/src/state/preferences/index.tsx b/src/state/preferences/index.tsx index 1f4348cfc2..5ec659031e 100644 --- a/src/state/preferences/index.tsx +++ b/src/state/preferences/index.tsx @@ -1,17 +1,21 @@ 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' export {useLanguagePrefs, useLanguagePrefsApi} from './languages' export { useRequireAltTextEnabled, useSetRequireAltTextEnabled, } from './alt-text-required' +export * from './hidden-posts' export function Provider({children}: React.PropsWithChildren<{}>) { return ( - {children} + + {children} + ) } diff --git a/src/state/queries/notifications/util.ts b/src/state/queries/notifications/util.ts index cc59431632..438879b7e8 100644 --- a/src/state/queries/notifications/util.ts +++ b/src/state/queries/notifications/util.ts @@ -2,12 +2,12 @@ import { AppBskyNotificationListNotifications, ModerationOpts, moderateProfile, - moderatePost, AppBskyFeedDefs, AppBskyFeedPost, AppBskyFeedRepost, AppBskyFeedLike, } from '@atproto/api' +import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped' import chunk from 'lodash.chunk' import {QueryClient} from '@tanstack/react-query' import {getAgent} from '../../session' diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts index b91af372f0..0e943622a4 100644 --- a/src/state/queries/post-feed.ts +++ b/src/state/queries/post-feed.ts @@ -1,10 +1,5 @@ import React, {useCallback, useEffect, useRef} from 'react' -import { - AppBskyFeedDefs, - AppBskyFeedPost, - moderatePost, - PostModeration, -} from '@atproto/api' +import {AppBskyFeedDefs, AppBskyFeedPost, PostModeration} from '@atproto/api' import { useInfiniteQuery, InfiniteData, @@ -12,6 +7,7 @@ import { QueryClient, 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' diff --git a/src/state/queries/preferences/index.ts b/src/state/queries/preferences/index.ts index 872bb21af2..a9aa7f26e2 100644 --- a/src/state/queries/preferences/index.ts +++ b/src/state/queries/preferences/index.ts @@ -19,6 +19,7 @@ import { } 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/types' export * from '#/state/queries/preferences/moderation' @@ -94,15 +95,21 @@ export function usePreferencesQuery() { export function useModerationOpts() { const {currentAccount} = useSession() const prefs = usePreferencesQuery() + const hiddenPosts = useHiddenPosts() const opts = useMemo(() => { if (!prefs.data) { return } - return getModerationOpts({ + const moderationOpts = getModerationOpts({ userDid: currentAccount?.did || '', preferences: prefs.data, }) - }, [currentAccount?.did, prefs.data]) + + return { + ...moderationOpts, + hiddenPosts, + } + }, [currentAccount?.did, prefs.data, hiddenPosts]) return opts } diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 2ff8030714..6a377cdf6a 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -5,9 +5,9 @@ import { AppBskyFeedDefs, AppBskyFeedPost, RichText as RichTextAPI, - moderatePost, PostModeration, } 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 {RichText} from '../util/text/RichText' diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx index df7d923013..fca4171c3a 100644 --- a/src/view/com/post/Post.tsx +++ b/src/view/com/post/Post.tsx @@ -4,10 +4,10 @@ import { AppBskyFeedDefs, AppBskyFeedPost, AtUri, - moderatePost, 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' diff --git a/src/view/com/util/forms/PostDropdownBtn.tsx b/src/view/com/util/forms/PostDropdownBtn.tsx index 193bb9bd78..1f2e067c2a 100644 --- a/src/view/com/util/forms/PostDropdownBtn.tsx +++ b/src/view/com/util/forms/PostDropdownBtn.tsx @@ -18,6 +18,7 @@ import {getTranslatorLink} from '#/locale/helpers' 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 {logger} from '#/logger' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -50,9 +51,12 @@ let PostDropdownBtn = ({ const mutedThreads = useMutedThreads() const toggleThreadMute = useToggleThreadMute() const postDeleteMutation = usePostDeleteMutation() + const hiddenPosts = useHiddenPosts() + const {hidePost} = useHiddenPostsApi() const rootUri = record.reply?.root?.uri || postUri const isThreadMuted = mutedThreads.includes(rootUri) + const isPostHidden = hiddenPosts && hiddenPosts.includes(postUri) const isAuthor = postAuthor.did === currentAccount?.did const href = React.useMemo(() => { const urip = new AtUri(postUri) @@ -98,6 +102,10 @@ let PostDropdownBtn = ({ Linking.openURL(translatorUrl) }, [translatorUrl]) + const onHidePost = React.useCallback(() => { + hidePost({uri: postUri}) + }, [postUri, hidePost]) + const dropdownItems: NativeDropdownItem[] = [ { label: _(msg`Translate`), @@ -159,6 +167,27 @@ let PostDropdownBtn = ({ web: 'comment-slash', }, }, + hasSession && + !isAuthor && + !isPostHidden && { + label: _(msg`Hide post`), + onPress() { + openModal({ + name: 'confirm', + title: _(msg`Hide this post?`), + message: _(msg`This will hide this post from your feeds.`), + onPressConfirm: onHidePost, + }) + }, + testID: 'postDropdownHideBtn', + icon: { + ios: { + name: 'eye.slash', + }, + android: 'ic_menu_delete', + web: ['far', 'eye-slash'], + }, + }, { label: 'separator', }, From d2a4d580a8ff11c39de77274d327d8dd0914c1d4 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Sun, 24 Dec 2023 14:29:23 -0800 Subject: [PATCH 010/115] Add policy links to left nav and settings page (#2300) --- src/view/screens/Settings.tsx | 23 +++++++++++++++++++++-- src/view/shell/Drawer.tsx | 19 +++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/view/screens/Settings.tsx b/src/view/screens/Settings.tsx index b7ba32b0de..d48112dae3 100644 --- a/src/view/screens/Settings.tsx +++ b/src/view/screens/Settings.tsx @@ -20,7 +20,7 @@ import * as AppInfo from 'lib/app-info' import {s, colors} from 'lib/styles' import {ScrollView} from '../com/util/Views' import {ViewHeader} from '../com/util/ViewHeader' -import {Link} from '../com/util/Link' +import {Link, TextLink} from '../com/util/Link' import {Text} from '../com/util/text/Text' import * as Toast from '../com/util/Toast' import {UserAvatar} from '../com/util/UserAvatar' @@ -721,7 +721,7 @@ export function SettingsScreen({}: Props) { - ·   +   ·   + + + + + diff --git a/src/view/shell/Drawer.tsx b/src/view/shell/Drawer.tsx index e5d2a38639..14bc6af261 100644 --- a/src/view/shell/Drawer.tsx +++ b/src/view/shell/Drawer.tsx @@ -51,6 +51,7 @@ import {useUnreadNotifications} from '#/state/queries/notifications/unread' import {emitSoftReset} from '#/state/events' import {useInviteCodesQuery} from '#/state/queries/invites' import {NavSignupCard} from '#/view/shell/NavSignupCard' +import {TextLink} from '../com/util/Link' let DrawerProfileCard = ({ account, @@ -106,6 +107,7 @@ export {DrawerProfileCard} let DrawerContent = ({}: {}): React.ReactNode => { const theme = useTheme() const pal = usePalette('default') + const {_} = useLingui() const setDrawerOpen = useSetDrawerOpen() const navigation = useNavigation() const {track} = useAnalytics() @@ -244,6 +246,23 @@ let DrawerContent = ({}: {}): React.ReactNode => { )} + + + + + + + From bc5e28057a300ca07f44ad151a624443c43c49f0 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Sun, 24 Dec 2023 14:32:23 -0800 Subject: [PATCH 011/115] Update some brand assets (#2301) --- bskyweb/static/apple-touch-icon.png | Bin 14742 -> 7783 bytes bskyweb/static/favicon-16x16.png | Bin 316 -> 1731 bytes bskyweb/static/favicon-32x32.png | Bin 769 -> 2240 bytes bskyweb/static/favicon.ico | Bin 15406 -> 0 bytes bskyweb/static/favicon.png | Bin 6405 -> 1412 bytes bskyweb/static/social-card-default.png | Bin 23527 -> 16904 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bskyweb/static/favicon.ico diff --git a/bskyweb/static/apple-touch-icon.png b/bskyweb/static/apple-touch-icon.png index 5ebb6787c999108d56d1b2f2aa4a5f2275ac5e37..09393a741312acca23b3b55bba734d0bbeec2f6c 100644 GIT binary patch literal 7783 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 literal 14742 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 Kb6Mw<&;$S(wmP-| delta 290 zcmV+-0p0$?4ZH%7BYyz{Nkl>%ZR9||%g@16pBrsy^tita5ZY;l~ zBqjoQ9aFWPhW3bQ1RyrZH*+Co0YIH8#_ZSfJ27vlpy@R7J!0`M!14!x$k7t39N=C5 zF+~Qg5gQ3fqAb?FQKUck1QOC#QZ`9BCgV^c;eH{uOv=05OkovYOkacsN116aJ5zRs o>o7*GFZq(C7Ek%SbWTLk0IYUvaJ@fqk|DFGP-}n3e|9sywd)-|f&|3Oh005w! z9N8Z5ibaNo8a#_)V&1`vlE}ls1}JWt*8{)QLL8@H7Z<=3wlx4XC0#%TfxtgNNgq&E z*Z|<8WboAvP%;_ED8m>s0MEcIcm(g^0jP2Oc6db|M|i+WW2-w)0)N3ID}6tgdz7Xk4_$oZ&noGBes5;;F2PI62l!gmk4 zz?Ha>E9SDfVu*#5Kb}m%Q^;O$`P1ki*#b|p1d*%#5B579TOkB1OrfG^qRA?gkW*<0 zgkAzcIBTk|9?L?(A4iP~Fo{S_Ppa{;22$+89mLXtnP0k*r3IZn;sf{YeJA!xFOFvC z+I68`A=9%)=msl~8rRWGw_I zSRB))-mBdB(76BNDx(#B8}hY-3`QEf%$@n17I(G-+8OFF_YJ#WbeA|xQ0kx01*VV{M z>=?BT4CbXJ$<;KyQkM$n+^B+LXyszFknZG`^{#hRIC*xJ36Iyk*Tm#*wa@Kp4;HAJ zV$7Y^GX^iVrJ=w}{rtAFMa;nH)msU318Zw?KVnF0X0@Z6Qnt@od_#`WjGKSKE$69c zW4E5X_h8cj9Y%Ah-IdtN0LUxlQ{|KT{VM->rp#D@$+bkcbBAb_VTUSq z-jwHtHD)<{V*1=6rmrZ*Uh~pg8MUK!m9d)ZlZ7A5B-iPG z3^CGs41d1INR6K}D4Onk)OT3j{Dq@FahJgdYQdf+z%aFtY8sai-*p6heD;>ekJ{o* z6D~|ELdn8RR=hUOQhFJr_X#pA=&`o(t&BVVqNCgRUd9e@sg&aX?z3A$RhrR5Wm>A* z2#y+;H?T;hwIzHg>dpHR;a}#Bu|Wyj8T;yV-EB&x(K)TNbDn1q0`S*g_14TYOvo%p zyG31R5rzgaQlrdXVnl delta 746 zcmVSl|o&CIrhb;TvDvfcIUNuVwvG%_Tzmtu$l+ls_E*{GHLb zNx18G_=f}Lur&%#jC0Hq^ip`vB?+~hMUj?H;oKhKp8vs`T#K+vA}wGo$Q99qC%ePr zCt=}FSonoWV1MO=ThP`NOLSR!`b)U)fw{~y1 znXn@i&=y;DLA#__{e)!AFLVg(Dg% zXH_x?FDj)t;nL#&mN$wY;bmhTsAa_L`(9hZD}lhAd0^u2M$=bfB#a=hjY5>;sgptm zm(?$FF@G`1f;WQ#jYiByS`uWkgzz>K1Eu1j@639jW(=JTL9v*8?~EX9L8R0>8lmEO zm`AdHCbG|*PG>2ecue~Tk7Ng8DAg+DEF7RKj&U{X$KVY^>3bf_iN|u!%H;ejvB_3S z;p-BPE7=f-MIOsP42y{ui%HFbjokBM0`Ow;iDOqYH>_qbR(_JQ^}LoHtxCqCKdk4@9Rb}T cp7!hce^Ki~s-t07*qoM6N<$f`6rE@c;k- diff --git a/bskyweb/static/favicon.ico b/bskyweb/static/favicon.ico deleted file mode 100644 index b4290a797a9f7ae4d14373ff1608be81d5940725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15406 zcmeHOON(XI8QrFZB#w-bAQGfT;?PkblbC^nh@%KCLLzF_z17vWk96KK4~?z%tGcRZ zg7}&V{U>@B3LFRt(qtA8nv8l>)izaq?#^1L&bqAo)jsE*`>=Zu8$QATfd+Rj_)25>amO1VqOskxiTL2ka7wyRC#Z6a?5VGeWig>++d9=R6^Lchf0jgPt2 zS@b>&p5$HA<%>uTq|SXCI^|4*(RM%eC~v~oSN!+0<`!=X zGdOvlS%Lf%!u!*-f4FBnaCneErz^V7TiTfbun{sbdoV9VC>~WPnIRmd7`c+^xx`bMHK+wNJKlXe8_uA9wzdy@8 zdKp~w-LHFJz|Z?4KJ$yXcHYa0l9DZ-?)%DiHM+=d%{EOP0k^kEULJ9epW(ZZPOM`rB;!J?3@g z7g~?ZXT(23;*v!DKf>2DEc=T~pL9O2 zwn&bCJ?BQh*++7I+g`u!`y0ev$fvlkP3N<+VtsSOCo+f6;u6-Au4i=FdMU51D`t4)J#Pd3x`Z{m;xok9JDdF&Z9((6?JOdB$3_5Ij6QygOc~P~5RtJ4Yd4S$)c>h?#`^Nx%CF0YTE{vS$ z_qgS&pOvhutb|)fb>}>0WIY#=@{Nye~5LGr?IB-A@B>XnLw|Wv0gGu4fL(5%jqWY z-;hr*!|{AJt>iZnR-cdlga12NcX%9Y5FbOngzRD6<$!e{hig7t_-<_%gnmgWPM_jJ z=gDWtwIQrERS?dwhuN+JKgC>6-_+QjF2>CQ=W4Y%uS*iKLKyM(ox z2Qm8xxQ3g+_I(A-$(c2`>xvWQkJyLfIR!pv#9qcNT+0>wu0D*ppMrc@ajna9m!)&P zYgx6LI-C_V{}yu9AVe4Xy8Ip!S3bAp^V)5C%xmmsjqfJ#6Rfp; z0o<==6aRcOtL(1}`}844Vsl{T1IRV3)$QRLsxe305;8yft>!pZ;>Emq?WQ(o#`phb zgVWbK&tZ1SS?Cnm^C0J+mghY}Pp*;HpF3+PHVeMnlGo;swKaS6x7n;)sx5yPvSwGj z6zj_Aij``0`QE{7UGnynxN_Tg@(aZ;Avuy5FZtzL6wg@SMQX8*OP^Yi@Ag}$M{!@& zW4upJtTD}2k5X-|e+$KtO)U8oS4!$vnsz?qr^NS>K6$9^Z%2UQFV6tET%F z(OFM>ijJ)5w&sXF`Ad9pW2|dl=)9q2eV}j$&^6{^@I& z!R=}K*Uj(h@4czN3L&-$YqiDhwx6^25zaY{7dg@P{H~buq>~?WUV%^Yvgz`*A-PdX z+*xWe-}$Ovsw|C2GWYoP9S?4x*JPKhrcYfF!a7-z-I*Kr+B=jYRd zIEV28e7v5c|F0zG&uVwgqFVYaWE)~8p2-;+ zkmlp;rTOI-M!x(V*v!k`2bgIO_I2Q=5Pt3xv+FcU{ayNH`T;mk;yT|0{tJ0LpHwY0 lf5)5?b&ZGK6@+tN1HKP@DnFYZ(sxEPe}mtA0*ibC{{v@~$EN@Q diff --git a/bskyweb/static/favicon.png b/bskyweb/static/favicon.png index 61cf7c943b6ac083ab0752f283391e37b39c1221..ddf55f4c815e6aa50cdb361c40dbf9e6ecfbe64a 100644 GIT binary patch delta 1393 zcmV-%1&;cKGK33|B!3BTNLh0L02UPx#1ZP1_ zK>z@;j|==^1pojA8A(JzRCodHn@v{RND#-XS|r&jko|a0Fw6#JMX!N2$XEPvbjs#0}#)xX;S3l=Q6 z&){ey{Fio6(=HHnvaf~+G*n8x{rDU&U=Dfmin^NMDG_z~V~1ZMzlI9*>8HJ=zU*Th zuzXCfd8b{=xgtL3V06%|vvNdR8flXsW_Q{?{BZl9_kwK<*-QN7-$6MdQn(gB#|UPS z@Q79s>9x)9Jb!`4HKjCcLU}sutpAr^(F>R{OcMsWENi@=mEOe1NBWYtSD`8h7lgQd z*U=F6D8z?!R>klf+_dW$FYpDW>2MS3z#SpiX5%kw8ZUGdG^2A@PB87AxbONgYSp5t z0|arxrQ8s-gfSkP8!sq8Cv7;C8*0M|W8>2?y(y842!9wMPB`<~988->?(p0gFU0Hs ziohM-`UGP6ola4X(ZGd` zM|jkdDt|Ze>Hv`8QS`K77@u`-j~u3YRKUSZ9;%M90e!v$m9t*_hXax;7~lhN zR=kuXG##RbuwB<@APm#DjK|0NT?27(zF6?nM+J z41f6PZ;U?P&;(_o13Z?;GeE>PKFfb`!vQkOLxdZ@s1qj6YvQCm+s?^bV93UAOq#|+ z+fm`mWEU0g%&{Y4R;5nk{h&8(2de`{gd$BLJHol5~wsPcu47TR=3J$`VHD~PHGS*GJm4#au)kuJ|>#KUxH!P+3Ly;5OPaTw&3m~ zf}KDYTB(CNQ}vY`AciMo3YRX-A~n`5l%5+Doi5Qd+lf-TW}(swmQoQgml>i&!#5uK z3Od2U2*?!LF3cNz ViY(R$SUJ32=g#E}<``KC_HlpuI!9{+=pd*)tu-qofq%U} zur~oJ*6|y`?bN({LiR;qMSXzRF<$C&mg3IAFIF3h9N1IBV zwYoAy$&2d@pHcAM_M_DSK4mhc)mWC&iHQO)5a@yJ_rgS|_EK8=RmY;__&R=)t%&FU zez)yVmjn`$I*-!=%SL zVfE#2xAb@$%P*5YM@r>1ysGg+<+Z|TBvh2n)6#Ui?C$zn$;@$;9E8PBTxzRoe0pm& z5$Rkdx>xk1_^F)ojn!K7QzqIZq0(3CSyA0T{rH9$M`*pv!suTx$`?2~Sg<_TS`Fg; zW`DWMIr@+6{9=`o*_F00000NkvXXu0mjfgc+Lc literal 6405 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 LX2?n%hsgf}ycPxo diff --git a/bskyweb/static/social-card-default.png b/bskyweb/static/social-card-default.png index 3bb93c799c9859bcd1afac7b0310d48e51d7efc8..00a85b8cf5749cde17d6c1284db388149694174c 100644 GIT binary patch literal 16904 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 Wr_Otihkd(nc~8}Jo|LIrzWra=f9-Yv literal 23527 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 +G75`Z?fF`gw33?S^N+seJHB;W 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 Date: Sun, 24 Dec 2023 14:33:24 -0800 Subject: [PATCH 012/115] Bump ios build --- app.config.js | 2 +- src/locale/locales/de/messages.po | 98 ++++++++++++++++++------------- src/locale/locales/en/messages.po | 98 ++++++++++++++++++------------- src/locale/locales/es/messages.po | 98 ++++++++++++++++++------------- src/locale/locales/fr/messages.po | 98 ++++++++++++++++++------------- src/locale/locales/hi/messages.po | 98 ++++++++++++++++++------------- src/locale/locales/ja/messages.po | 98 ++++++++++++++++++------------- 7 files changed, 343 insertions(+), 247 deletions(-) diff --git a/app.config.js b/app.config.js index 1cfb6bda03..04d5081f19 100644 --- a/app.config.js +++ b/app.config.js @@ -9,7 +9,7 @@ module.exports = function () { /** * iOS build number. Must be incremented for each TestFlight version. */ - const IOS_BUILD_NUMBER = '1' + const IOS_BUILD_NUMBER = '2' /** * Android build number. Must be incremented for each release. diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index 4f59b70545..d4459b6a0d 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -30,12 +30,12 @@ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite msgstr "" #: src/view/screens/Settings.tsx:407 -#: src/view/shell/Drawer.tsx:640 +#: src/view/shell/Drawer.tsx:659 msgid "{invitesAvailable} invite code available" msgstr "{invitesAvailable} Einladungscode verfügbar" #: src/view/screens/Settings.tsx:409 -#: src/view/shell/Drawer.tsx:642 +#: src/view/shell/Drawer.tsx:661 msgid "{invitesAvailable} invite codes available" msgstr "{invitesAvailable} Einladungscodes verfügbar" @@ -184,7 +184,7 @@ msgstr "App-Passwörter" msgid "App Passwords" msgstr "App-Passwörter" -#: src/view/com/util/forms/PostDropdownBtn.tsx:207 +#: src/view/com/util/forms/PostDropdownBtn.tsx:236 msgid "Appeal content warning" msgstr "" @@ -220,7 +220,7 @@ msgstr "Sind Sie sicher, dass Sie diesen Entwurf verwerfen möchten?" msgid "Are you sure?" msgstr "Sind Sie sicher?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:190 +#: src/view/com/util/forms/PostDropdownBtn.tsx:219 msgid "Are you sure? This cannot be undone." msgstr "Sind Sie sicher? Dies kann nicht rückgängig gemacht werden" @@ -565,7 +565,7 @@ msgstr "Kopie" msgid "Copy link to list" msgstr "Link zur Liste kopieren" -#: src/view/com/util/forms/PostDropdownBtn.tsx:131 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 msgid "Copy link to post" msgstr "Link zum Posten kopieren" @@ -573,7 +573,7 @@ msgstr "Link zum Posten kopieren" msgid "Copy link to profile" msgstr "Link zum Profil kopieren" -#: src/view/com/util/forms/PostDropdownBtn.tsx:117 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Copy post text" msgstr "Posten Text kopieren" @@ -642,11 +642,11 @@ msgstr "Mein Konto löschen" msgid "Delete my account…" msgstr "Mein Konto löschen..." -#: src/view/com/util/forms/PostDropdownBtn.tsx:185 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Delete post" msgstr "Posten löschen" -#: src/view/com/util/forms/PostDropdownBtn.tsx:189 +#: src/view/com/util/forms/PostDropdownBtn.tsx:218 msgid "Delete this post?" msgstr "Diesen Posten löschen?" @@ -827,7 +827,7 @@ msgid "Feed Preferences" msgstr "Feed-Einstellungen" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:292 +#: src/view/shell/Drawer.tsx:311 msgid "Feedback" msgstr "Rückmeldung" @@ -835,8 +835,8 @@ msgstr "Rückmeldung" #: src/view/screens/Profile.tsx:165 #: src/view/shell/bottom-bar/BottomBar.tsx:181 #: src/view/shell/desktop/LeftNav.tsx:340 -#: src/view/shell/Drawer.tsx:455 -#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:474 +#: src/view/shell/Drawer.tsx:475 msgid "Feeds" msgstr "Feeds" @@ -955,7 +955,7 @@ msgid "Handle" msgstr "Handgriff" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:302 +#: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "Hilfe" @@ -968,6 +968,14 @@ msgstr "Hier ist Ihr App-Passwort." msgid "Hide" msgstr "Ausblenden" +#: src/view/com/util/forms/PostDropdownBtn.tsx:173 +msgid "Hide post" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:177 +msgid "Hide this post?" +msgstr "" + #: src/view/com/notifications/FeedItem.tsx:308 msgid "Hide user list" msgstr "Benutzerliste ausblenden" @@ -994,8 +1002,8 @@ msgstr "Hmm, wir haben Probleme, diesen Feed zu finden. Vielleicht wurde er gel #: src/view/shell/bottom-bar/BottomBar.tsx:137 #: src/view/shell/desktop/LeftNav.tsx:304 -#: src/view/shell/Drawer.tsx:379 -#: src/view/shell/Drawer.tsx:380 +#: src/view/shell/Drawer.tsx:398 +#: src/view/shell/Drawer.tsx:399 msgid "Home" msgstr "Startseite" @@ -1056,7 +1064,7 @@ msgstr "Einladungscode" msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Einladungscode nicht akzeptiert. Überprüfen Sie, ob Sie ihn richtig eingegeben haben und versuchen Sie es erneut." -#: src/view/shell/Drawer.tsx:621 +#: src/view/shell/Drawer.tsx:640 msgid "Invite codes: {invitesAvailable} available" msgstr "Codes einladen: {invitesAvailable} verfügbar" @@ -1152,8 +1160,8 @@ msgstr "Namen auflisten" #: src/view/screens/Profile.tsx:166 #: src/view/shell/desktop/LeftNav.tsx:377 -#: src/view/shell/Drawer.tsx:471 -#: src/view/shell/Drawer.tsx:472 +#: src/view/shell/Drawer.tsx:490 +#: src/view/shell/Drawer.tsx:491 msgid "Lists" msgstr "Listen" @@ -1217,8 +1225,8 @@ msgstr "Meldung vom Server" #: src/view/screens/Moderation.tsx:64 #: src/view/screens/Settings.tsx:563 #: src/view/shell/desktop/LeftNav.tsx:395 -#: src/view/shell/Drawer.tsx:490 -#: src/view/shell/Drawer.tsx:491 +#: src/view/shell/Drawer.tsx:509 +#: src/view/shell/Drawer.tsx:510 msgid "Moderation" msgstr "Moderation" @@ -1256,7 +1264,7 @@ msgstr "Stumme Liste" msgid "Mute these accounts?" msgstr "Diese Konten stummschalten?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:149 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Mute thread" msgstr "Thema stummschalten" @@ -1377,8 +1385,8 @@ msgstr "Hinweis: Bluesky ist ein offenes und öffentliches Netzwerk. Diese Einst #: src/view/screens/Notifications.tsx:133 #: src/view/shell/bottom-bar/BottomBar.tsx:205 #: src/view/shell/desktop/LeftNav.tsx:359 -#: src/view/shell/Drawer.tsx:416 -#: src/view/shell/Drawer.tsx:417 +#: src/view/shell/Drawer.tsx:435 +#: src/view/shell/Drawer.tsx:436 msgid "Notifications" msgstr "Benachrichtigungen " @@ -1407,7 +1415,7 @@ msgid "Opens configurable language settings" msgstr "Öffnet die konfigurierbaren Spracheinstellungen" #: src/view/shell/desktop/RightNav.tsx:148 -#: src/view/shell/Drawer.tsx:622 +#: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" msgstr "Öffnet die Liste der Einladungscodes" @@ -1565,6 +1573,8 @@ msgid "Privacy" msgstr "Privatsphäre" #: src/view/screens/PrivacyPolicy.tsx:29 +#: src/view/screens/Settings.tsx:750 +#: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "Datenschutzbestimmungen" @@ -1574,13 +1584,13 @@ msgstr "Verarbeitung..." #: src/view/shell/bottom-bar/BottomBar.tsx:247 #: src/view/shell/desktop/LeftNav.tsx:413 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:525 -#: src/view/shell/Drawer.tsx:526 +#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:544 +#: src/view/shell/Drawer.tsx:545 msgid "Profile" msgstr "Profile" -#: src/view/screens/Settings.tsx:789 +#: src/view/screens/Settings.tsx:808 msgid "Protect your account by verifying your email." msgstr "Schützen Sie Ihr Konto, indem Sie Ihre E-Mail verifizieren." @@ -1689,7 +1699,7 @@ msgid "Report List" msgstr "Bericht Liste" #: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:167 +#: src/view/com/util/forms/PostDropdownBtn.tsx:196 msgid "Report post" msgstr "Beitrag berichten" @@ -1786,8 +1796,8 @@ msgstr "Gespeicherte Feeds" #: src/view/shell/desktop/LeftNav.tsx:322 #: src/view/shell/desktop/Search.tsx:161 #: src/view/shell/desktop/Search.tsx:170 -#: src/view/shell/Drawer.tsx:343 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/Drawer.tsx:362 +#: src/view/shell/Drawer.tsx:363 msgid "Search" msgstr "Suche" @@ -1840,8 +1850,8 @@ msgstr "E-Mail senden" msgid "Send Email" msgstr "E-Mail senden" -#: src/view/shell/Drawer.tsx:276 -#: src/view/shell/Drawer.tsx:297 +#: src/view/shell/Drawer.tsx:295 +#: src/view/shell/Drawer.tsx:316 msgid "Send feedback" msgstr "Rückmeldung senden" @@ -1875,8 +1885,8 @@ msgstr "Setzen Sie diese Einstellung auf \"Ja\", um Beispiele für Ihre gespeich #: src/view/screens/Settings.tsx:277 #: src/view/shell/desktop/LeftNav.tsx:431 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:565 +#: src/view/shell/Drawer.tsx:566 msgid "Settings" msgstr "Einstellungen" @@ -1885,7 +1895,7 @@ msgid "Sexual activity or erotic nudity." msgstr "Sexuelle Aktivitäten oder erotische Nacktheit." #: src/view/com/profile/ProfileHeader.tsx:338 -#: src/view/com/util/forms/PostDropdownBtn.tsx:131 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 #: src/view/screens/ProfileList.tsx:384 msgid "Share" msgstr "Teilen" @@ -2055,7 +2065,9 @@ msgstr "Groß" msgid "Terms" msgstr "Bedingungen" +#: src/view/screens/Settings.tsx:744 #: src/view/screens/TermsOfService.tsx:29 +#: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" msgstr "Bedingungen der Dienstleistung" @@ -2140,6 +2152,10 @@ msgstr "Dieser Beitrag wurde gelöscht." 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/view/com/util/forms/PostDropdownBtn.tsx:178 +msgid "This will hide this post from your feeds." +msgstr "" + #: src/view/screens/PreferencesThreads.tsx:53 #: src/view/screens/Settings.tsx:503 msgid "Thread Preferences" @@ -2159,7 +2175,7 @@ msgstr "Verwandlungen" #: src/view/com/post-thread/PostThreadItem.tsx:704 #: src/view/com/post-thread/PostThreadItem.tsx:706 -#: src/view/com/util/forms/PostDropdownBtn.tsx:103 +#: src/view/com/util/forms/PostDropdownBtn.tsx:111 msgid "Translate" msgstr "Übersetze" @@ -2203,7 +2219,7 @@ msgstr "Leider erfüllen Sie nicht die Voraussetzungen, um ein Konto zu erstelle msgid "Unmute Account" msgstr "Konto entstören" -#: src/view/com/util/forms/PostDropdownBtn.tsx:149 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Unmute thread" msgstr "Thema aufheben" @@ -2268,15 +2284,15 @@ msgstr "Benutzer gefolgt von <0/>" msgid "Users in \"{0}\"" msgstr "Benutzer in \"{0}\"" -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:769 msgid "Verify email" msgstr "E-Mail überprüfen" -#: src/view/screens/Settings.tsx:775 +#: src/view/screens/Settings.tsx:794 msgid "Verify my email" msgstr "E-Mail überprüfen" -#: src/view/screens/Settings.tsx:784 +#: src/view/screens/Settings.tsx:803 msgid "Verify My Email" msgstr "E-Mail überprüfen" @@ -2445,7 +2461,7 @@ msgstr "Hosting-Anbieter" #: src/view/screens/Settings.tsx:402 #: src/view/shell/desktop/RightNav.tsx:129 -#: src/view/shell/Drawer.tsx:636 +#: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "Ihre Einladungscodes werden ausgeblendet, wenn Sie sich mit einem App-Passwort anmelden." diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index 9be56323ec..063b459b48 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -38,12 +38,12 @@ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite msgstr "" #: src/view/screens/Settings.tsx:407 -#: src/view/shell/Drawer.tsx:640 +#: src/view/shell/Drawer.tsx:659 msgid "{invitesAvailable} invite code available" msgstr "" #: src/view/screens/Settings.tsx:409 -#: src/view/shell/Drawer.tsx:642 +#: src/view/shell/Drawer.tsx:661 msgid "{invitesAvailable} invite codes available" msgstr "" @@ -204,7 +204,7 @@ msgstr "" msgid "App Passwords" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:207 +#: src/view/com/util/forms/PostDropdownBtn.tsx:236 msgid "Appeal content warning" msgstr "" @@ -244,7 +244,7 @@ msgstr "" msgid "Are you sure?" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:190 +#: src/view/com/util/forms/PostDropdownBtn.tsx:219 msgid "Are you sure? This cannot be undone." msgstr "" @@ -597,7 +597,7 @@ msgstr "" msgid "Copy link to list" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:131 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 msgid "Copy link to post" msgstr "" @@ -605,7 +605,7 @@ msgstr "" msgid "Copy link to profile" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:117 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Copy post text" msgstr "" @@ -678,11 +678,11 @@ msgstr "" msgid "Delete my account…" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:185 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Delete post" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:189 +#: src/view/com/util/forms/PostDropdownBtn.tsx:218 msgid "Delete this post?" msgstr "" @@ -863,7 +863,7 @@ msgid "Feed Preferences" msgstr "" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:292 +#: src/view/shell/Drawer.tsx:311 msgid "Feedback" msgstr "" @@ -871,8 +871,8 @@ msgstr "" #: src/view/screens/Profile.tsx:165 #: src/view/shell/bottom-bar/BottomBar.tsx:181 #: src/view/shell/desktop/LeftNav.tsx:340 -#: src/view/shell/Drawer.tsx:455 -#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:474 +#: src/view/shell/Drawer.tsx:475 msgid "Feeds" msgstr "" @@ -995,7 +995,7 @@ msgid "Handle" msgstr "" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:302 +#: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "" @@ -1008,6 +1008,14 @@ msgstr "" msgid "Hide" msgstr "" +#: src/view/com/util/forms/PostDropdownBtn.tsx:173 +msgid "Hide post" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:177 +msgid "Hide this post?" +msgstr "" + #: src/view/com/notifications/FeedItem.tsx:308 msgid "Hide user list" msgstr "" @@ -1042,8 +1050,8 @@ msgstr "" #: src/view/shell/bottom-bar/BottomBar.tsx:137 #: src/view/shell/desktop/LeftNav.tsx:304 -#: src/view/shell/Drawer.tsx:379 -#: src/view/shell/Drawer.tsx:380 +#: src/view/shell/Drawer.tsx:398 +#: src/view/shell/Drawer.tsx:399 msgid "Home" msgstr "" @@ -1109,7 +1117,7 @@ msgstr "" msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "" -#: src/view/shell/Drawer.tsx:621 +#: src/view/shell/Drawer.tsx:640 msgid "Invite codes: {invitesAvailable} available" msgstr "" @@ -1217,8 +1225,8 @@ msgstr "" #: src/view/screens/Profile.tsx:166 #: src/view/shell/desktop/LeftNav.tsx:377 -#: src/view/shell/Drawer.tsx:471 -#: src/view/shell/Drawer.tsx:472 +#: src/view/shell/Drawer.tsx:490 +#: src/view/shell/Drawer.tsx:491 msgid "Lists" msgstr "" @@ -1286,8 +1294,8 @@ msgstr "" #: src/view/screens/Moderation.tsx:64 #: src/view/screens/Settings.tsx:563 #: src/view/shell/desktop/LeftNav.tsx:395 -#: src/view/shell/Drawer.tsx:490 -#: src/view/shell/Drawer.tsx:491 +#: src/view/shell/Drawer.tsx:509 +#: src/view/shell/Drawer.tsx:510 msgid "Moderation" msgstr "" @@ -1329,7 +1337,7 @@ msgstr "" msgid "Mute these accounts?" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:149 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Mute thread" msgstr "" @@ -1471,8 +1479,8 @@ msgstr "" #: src/view/screens/Notifications.tsx:133 #: src/view/shell/bottom-bar/BottomBar.tsx:205 #: src/view/shell/desktop/LeftNav.tsx:359 -#: src/view/shell/Drawer.tsx:416 -#: src/view/shell/Drawer.tsx:417 +#: src/view/shell/Drawer.tsx:435 +#: src/view/shell/Drawer.tsx:436 msgid "Notifications" msgstr "" @@ -1501,7 +1509,7 @@ msgid "Opens configurable language settings" msgstr "" #: src/view/shell/desktop/RightNav.tsx:148 -#: src/view/shell/Drawer.tsx:622 +#: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" msgstr "" @@ -1659,6 +1667,8 @@ msgid "Privacy" msgstr "" #: src/view/screens/PrivacyPolicy.tsx:29 +#: src/view/screens/Settings.tsx:750 +#: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "" @@ -1668,13 +1678,13 @@ msgstr "" #: src/view/shell/bottom-bar/BottomBar.tsx:247 #: src/view/shell/desktop/LeftNav.tsx:413 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:525 -#: src/view/shell/Drawer.tsx:526 +#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:544 +#: src/view/shell/Drawer.tsx:545 msgid "Profile" msgstr "" -#: src/view/screens/Settings.tsx:789 +#: src/view/screens/Settings.tsx:808 msgid "Protect your account by verifying your email." msgstr "" @@ -1788,7 +1798,7 @@ msgid "Report List" msgstr "" #: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:167 +#: src/view/com/util/forms/PostDropdownBtn.tsx:196 msgid "Report post" msgstr "" @@ -1901,8 +1911,8 @@ msgstr "" #: src/view/shell/desktop/LeftNav.tsx:322 #: src/view/shell/desktop/Search.tsx:161 #: src/view/shell/desktop/Search.tsx:170 -#: src/view/shell/Drawer.tsx:343 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/Drawer.tsx:362 +#: src/view/shell/Drawer.tsx:363 msgid "Search" msgstr "" @@ -1959,8 +1969,8 @@ msgstr "" msgid "Send Email" msgstr "" -#: src/view/shell/Drawer.tsx:276 -#: src/view/shell/Drawer.tsx:297 +#: src/view/shell/Drawer.tsx:295 +#: src/view/shell/Drawer.tsx:316 msgid "Send feedback" msgstr "" @@ -1994,8 +2004,8 @@ msgstr "" #: src/view/screens/Settings.tsx:277 #: src/view/shell/desktop/LeftNav.tsx:431 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:565 +#: src/view/shell/Drawer.tsx:566 msgid "Settings" msgstr "" @@ -2004,7 +2014,7 @@ msgid "Sexual activity or erotic nudity." msgstr "" #: src/view/com/profile/ProfileHeader.tsx:338 -#: src/view/com/util/forms/PostDropdownBtn.tsx:131 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 #: src/view/screens/ProfileList.tsx:384 msgid "Share" msgstr "" @@ -2182,7 +2192,9 @@ msgstr "" msgid "Terms" msgstr "" +#: src/view/screens/Settings.tsx:744 #: src/view/screens/TermsOfService.tsx:29 +#: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" msgstr "" @@ -2267,6 +2279,10 @@ msgstr "" msgid "This warning is only available for posts with media attached." msgstr "" +#: src/view/com/util/forms/PostDropdownBtn.tsx:178 +msgid "This will hide this post from your feeds." +msgstr "" + #: src/view/screens/PreferencesThreads.tsx:53 #: src/view/screens/Settings.tsx:503 msgid "Thread Preferences" @@ -2286,7 +2302,7 @@ msgstr "" #: src/view/com/post-thread/PostThreadItem.tsx:704 #: src/view/com/post-thread/PostThreadItem.tsx:706 -#: src/view/com/util/forms/PostDropdownBtn.tsx:103 +#: src/view/com/util/forms/PostDropdownBtn.tsx:111 msgid "Translate" msgstr "" @@ -2330,7 +2346,7 @@ msgstr "" msgid "Unmute Account" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:149 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Unmute thread" msgstr "" @@ -2399,15 +2415,15 @@ msgstr "" msgid "Users in \"{0}\"" msgstr "" -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:769 msgid "Verify email" msgstr "" -#: src/view/screens/Settings.tsx:775 +#: src/view/screens/Settings.tsx:794 msgid "Verify my email" msgstr "" -#: src/view/screens/Settings.tsx:784 +#: src/view/screens/Settings.tsx:803 msgid "Verify My Email" msgstr "" @@ -2584,7 +2600,7 @@ msgstr "" #: src/view/screens/Settings.tsx:402 #: src/view/shell/desktop/RightNav.tsx:129 -#: src/view/shell/Drawer.tsx:636 +#: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index 5acbe2c2f6..671e9e2298 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -30,12 +30,12 @@ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite msgstr "" #: src/view/screens/Settings.tsx:407 -#: src/view/shell/Drawer.tsx:640 +#: src/view/shell/Drawer.tsx:659 msgid "{invitesAvailable} invite code available" msgstr "{invitesAvailable} código de invitación disponible" #: src/view/screens/Settings.tsx:409 -#: src/view/shell/Drawer.tsx:642 +#: src/view/shell/Drawer.tsx:661 msgid "{invitesAvailable} invite codes available" msgstr "{invitesAvailable} códigos de invitación disponibles" @@ -184,7 +184,7 @@ msgstr "Contraseñas de la app" msgid "App Passwords" msgstr "Contraseñas de la app" -#: src/view/com/util/forms/PostDropdownBtn.tsx:207 +#: src/view/com/util/forms/PostDropdownBtn.tsx:236 msgid "Appeal content warning" msgstr "" @@ -220,7 +220,7 @@ msgstr "¿Estás seguro de que quieres descartar este borrador?" msgid "Are you sure?" msgstr "¿Estás seguro?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:190 +#: src/view/com/util/forms/PostDropdownBtn.tsx:219 msgid "Are you sure? This cannot be undone." msgstr "¿Estás seguro? Esto no puede deshacerse," @@ -565,7 +565,7 @@ msgstr "Copiar" msgid "Copy link to list" msgstr "Copia el enlace a la lista" -#: src/view/com/util/forms/PostDropdownBtn.tsx:131 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 msgid "Copy link to post" msgstr "Copia el enlace a la publicación" @@ -573,7 +573,7 @@ msgstr "Copia el enlace a la publicación" msgid "Copy link to profile" msgstr "Copia el enlace al perfil" -#: src/view/com/util/forms/PostDropdownBtn.tsx:117 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Copy post text" msgstr "Copiar el texto de la publicación" @@ -642,11 +642,11 @@ msgstr "Borrar mi cuenta" msgid "Delete my account…" msgstr "Borrar mi cuenta..." -#: src/view/com/util/forms/PostDropdownBtn.tsx:185 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Delete post" msgstr "Borrar una publicación" -#: src/view/com/util/forms/PostDropdownBtn.tsx:189 +#: src/view/com/util/forms/PostDropdownBtn.tsx:218 msgid "Delete this post?" msgstr "¿Borrar esta publicación?" @@ -827,7 +827,7 @@ msgid "Feed Preferences" msgstr "Preferencias de noticias" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:292 +#: src/view/shell/Drawer.tsx:311 msgid "Feedback" msgstr "Comentarios" @@ -835,8 +835,8 @@ msgstr "Comentarios" #: src/view/screens/Profile.tsx:165 #: src/view/shell/bottom-bar/BottomBar.tsx:181 #: src/view/shell/desktop/LeftNav.tsx:340 -#: src/view/shell/Drawer.tsx:455 -#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:474 +#: src/view/shell/Drawer.tsx:475 msgid "Feeds" msgstr "Noticias" @@ -955,7 +955,7 @@ msgid "Handle" msgstr "Identificador" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:302 +#: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "Ayuda" @@ -968,6 +968,14 @@ msgstr "Aquí tienes tu contraseña de la app." msgid "Hide" msgstr "Ocultar" +#: src/view/com/util/forms/PostDropdownBtn.tsx:173 +msgid "Hide post" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:177 +msgid "Hide this post?" +msgstr "" + #: src/view/com/notifications/FeedItem.tsx:308 msgid "Hide user list" msgstr "Ocultar la lista de usuarios" @@ -994,8 +1002,8 @@ msgstr "Tenemos problemas para encontrar esta noticia. Puede que la hayan borrad #: src/view/shell/bottom-bar/BottomBar.tsx:137 #: src/view/shell/desktop/LeftNav.tsx:304 -#: src/view/shell/Drawer.tsx:379 -#: src/view/shell/Drawer.tsx:380 +#: src/view/shell/Drawer.tsx:398 +#: src/view/shell/Drawer.tsx:399 msgid "Home" msgstr "Página inicial" @@ -1056,7 +1064,7 @@ msgstr "Código de invitación" msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "No se acepta el código de invitación. Comprueba que lo has introducido correctamente e inténtalo de nuevo." -#: src/view/shell/Drawer.tsx:621 +#: src/view/shell/Drawer.tsx:640 msgid "Invite codes: {invitesAvailable} available" msgstr "Códigos de invitación: {invitesAvailable} disponibles" @@ -1152,8 +1160,8 @@ msgstr "Nombre de la lista" #: src/view/screens/Profile.tsx:166 #: src/view/shell/desktop/LeftNav.tsx:377 -#: src/view/shell/Drawer.tsx:471 -#: src/view/shell/Drawer.tsx:472 +#: src/view/shell/Drawer.tsx:490 +#: src/view/shell/Drawer.tsx:491 msgid "Lists" msgstr "Listas" @@ -1217,8 +1225,8 @@ msgstr "Mensaje del servidor" #: src/view/screens/Moderation.tsx:64 #: src/view/screens/Settings.tsx:563 #: src/view/shell/desktop/LeftNav.tsx:395 -#: src/view/shell/Drawer.tsx:490 -#: src/view/shell/Drawer.tsx:491 +#: src/view/shell/Drawer.tsx:509 +#: src/view/shell/Drawer.tsx:510 msgid "Moderation" msgstr "Moderación" @@ -1256,7 +1264,7 @@ msgstr "Silenciar la lista" msgid "Mute these accounts?" msgstr "¿Silenciar estas cuentas?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:149 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Mute thread" msgstr "Silenciar el hilo" @@ -1377,8 +1385,8 @@ msgstr "Nota: Bluesky es una red abierta y pública. Esta configuración sólo l #: src/view/screens/Notifications.tsx:133 #: src/view/shell/bottom-bar/BottomBar.tsx:205 #: src/view/shell/desktop/LeftNav.tsx:359 -#: src/view/shell/Drawer.tsx:416 -#: src/view/shell/Drawer.tsx:417 +#: src/view/shell/Drawer.tsx:435 +#: src/view/shell/Drawer.tsx:436 msgid "Notifications" msgstr "Notificaciones" @@ -1407,7 +1415,7 @@ msgid "Opens configurable language settings" msgstr "Abrir la configuración del idioma que se puede ajustar" #: src/view/shell/desktop/RightNav.tsx:148 -#: src/view/shell/Drawer.tsx:622 +#: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" msgstr "Abre la lista de códigos de invitación" @@ -1565,6 +1573,8 @@ msgid "Privacy" msgstr "Privacidad" #: src/view/screens/PrivacyPolicy.tsx:29 +#: src/view/screens/Settings.tsx:750 +#: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "Política de privacidad" @@ -1574,13 +1584,13 @@ msgstr "Procesando..." #: src/view/shell/bottom-bar/BottomBar.tsx:247 #: src/view/shell/desktop/LeftNav.tsx:413 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:525 -#: src/view/shell/Drawer.tsx:526 +#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:544 +#: src/view/shell/Drawer.tsx:545 msgid "Profile" msgstr "Perfil" -#: src/view/screens/Settings.tsx:789 +#: src/view/screens/Settings.tsx:808 msgid "Protect your account by verifying your email." msgstr "Protege tu cuenta verificando tu correo electrónico." @@ -1689,7 +1699,7 @@ msgid "Report List" msgstr "Informe de la lista" #: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:167 +#: src/view/com/util/forms/PostDropdownBtn.tsx:196 msgid "Report post" msgstr "Informe de la publicación" @@ -1786,8 +1796,8 @@ msgstr "Guardar canales de noticias" #: src/view/shell/desktop/LeftNav.tsx:322 #: src/view/shell/desktop/Search.tsx:161 #: src/view/shell/desktop/Search.tsx:170 -#: src/view/shell/Drawer.tsx:343 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/Drawer.tsx:362 +#: src/view/shell/Drawer.tsx:363 msgid "Search" msgstr "Buscar" @@ -1840,8 +1850,8 @@ msgstr "Enviar el mensaje" msgid "Send Email" msgstr "Enviar el mensaje" -#: src/view/shell/Drawer.tsx:276 -#: src/view/shell/Drawer.tsx:297 +#: src/view/shell/Drawer.tsx:295 +#: src/view/shell/Drawer.tsx:316 msgid "Send feedback" msgstr "Enviar comentarios" @@ -1875,8 +1885,8 @@ msgstr "Establece este ajuste en \"Sí\" para mostrar muestras de tus noticias g #: src/view/screens/Settings.tsx:277 #: src/view/shell/desktop/LeftNav.tsx:431 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:565 +#: src/view/shell/Drawer.tsx:566 msgid "Settings" msgstr "Configuraciones" @@ -1885,7 +1895,7 @@ msgid "Sexual activity or erotic nudity." msgstr "Actividad sexual o desnudez erótica." #: src/view/com/profile/ProfileHeader.tsx:338 -#: src/view/com/util/forms/PostDropdownBtn.tsx:131 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 #: src/view/screens/ProfileList.tsx:384 msgid "Share" msgstr "Compartir" @@ -2055,7 +2065,9 @@ msgstr "Alto" msgid "Terms" msgstr "Condiciones" +#: src/view/screens/Settings.tsx:744 #: src/view/screens/TermsOfService.tsx:29 +#: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" msgstr "Condiciones de servicio" @@ -2140,6 +2152,10 @@ msgstr "Esta publicación ha sido eliminada." 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/view/com/util/forms/PostDropdownBtn.tsx:178 +msgid "This will hide this post from your feeds." +msgstr "" + #: src/view/screens/PreferencesThreads.tsx:53 #: src/view/screens/Settings.tsx:503 msgid "Thread Preferences" @@ -2159,7 +2175,7 @@ msgstr "Transformaciones" #: src/view/com/post-thread/PostThreadItem.tsx:704 #: src/view/com/post-thread/PostThreadItem.tsx:706 -#: src/view/com/util/forms/PostDropdownBtn.tsx:103 +#: src/view/com/util/forms/PostDropdownBtn.tsx:111 msgid "Translate" msgstr "Traducir" @@ -2203,7 +2219,7 @@ msgstr "Lamentablemente, no cumples los requisitos para crear una cuenta." msgid "Unmute Account" msgstr "Desactivar la opción de silenciar la cuenta" -#: src/view/com/util/forms/PostDropdownBtn.tsx:149 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Unmute thread" msgstr "Desactivar la opción de silenciar el hilo" @@ -2268,15 +2284,15 @@ msgstr "usuarios seguidos por <0/>" msgid "Users in \"{0}\"" msgstr "Usuarios en «{0}»" -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:769 msgid "Verify email" msgstr "Verificar el correo electrónico" -#: src/view/screens/Settings.tsx:775 +#: src/view/screens/Settings.tsx:794 msgid "Verify my email" msgstr "Verificar mi correo electrónico" -#: src/view/screens/Settings.tsx:784 +#: src/view/screens/Settings.tsx:803 msgid "Verify My Email" msgstr "Verificar mi correo electrónico" @@ -2445,7 +2461,7 @@ msgstr "Tu proveedor de alojamiento" #: src/view/screens/Settings.tsx:402 #: src/view/shell/desktop/RightNav.tsx:129 -#: src/view/shell/Drawer.tsx:636 +#: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "Tus códigos de invitación están ocultos cuando inicias sesión con una contraseña de la app" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 7588e96e31..ca8c6af2bb 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -30,12 +30,12 @@ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite msgstr "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" #: src/view/screens/Settings.tsx:407 -#: src/view/shell/Drawer.tsx:640 +#: src/view/shell/Drawer.tsx:659 msgid "{invitesAvailable} invite code available" msgstr "{invitesAvailable} code d’invitation disponible" #: src/view/screens/Settings.tsx:409 -#: src/view/shell/Drawer.tsx:642 +#: src/view/shell/Drawer.tsx:661 msgid "{invitesAvailable} invite codes available" msgstr "{invitesAvailable} codes d’invitation disponibles" @@ -184,7 +184,7 @@ msgstr "Mots de passe de l’appli" msgid "App Passwords" msgstr "Mots de passe de l’appli" -#: src/view/com/util/forms/PostDropdownBtn.tsx:207 +#: src/view/com/util/forms/PostDropdownBtn.tsx:236 msgid "Appeal content warning" msgstr "" @@ -220,7 +220,7 @@ msgstr "Êtes-vous sûr de vouloir rejeter ce brouillon ?" msgid "Are you sure?" msgstr "Vous confirmez ?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:190 +#: src/view/com/util/forms/PostDropdownBtn.tsx:219 msgid "Are you sure? This cannot be undone." msgstr "Vous confirmez ? Cela ne pourra pas être annulé." @@ -565,7 +565,7 @@ msgstr "Copie" msgid "Copy link to list" msgstr "Copier le lien dans la liste" -#: src/view/com/util/forms/PostDropdownBtn.tsx:131 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 msgid "Copy link to post" msgstr "Copier le lien dans la publication" @@ -573,7 +573,7 @@ msgstr "Copier le lien dans la publication" msgid "Copy link to profile" msgstr "Copier le lien sur le profil" -#: src/view/com/util/forms/PostDropdownBtn.tsx:117 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Copy post text" msgstr "Copier le texte de la publication" @@ -642,11 +642,11 @@ msgstr "Supprimer mon compte" msgid "Delete my account…" msgstr "Supprimer mon compte..." -#: src/view/com/util/forms/PostDropdownBtn.tsx:185 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Delete post" msgstr "Supprimer publication" -#: src/view/com/util/forms/PostDropdownBtn.tsx:189 +#: src/view/com/util/forms/PostDropdownBtn.tsx:218 msgid "Delete this post?" msgstr "Supprimer cette publication ?" @@ -827,7 +827,7 @@ msgid "Feed Preferences" msgstr "Préférences en matière de fil d’actu" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:292 +#: src/view/shell/Drawer.tsx:311 msgid "Feedback" msgstr "Feedback" @@ -835,8 +835,8 @@ msgstr "Feedback" #: src/view/screens/Profile.tsx:165 #: src/view/shell/bottom-bar/BottomBar.tsx:181 #: src/view/shell/desktop/LeftNav.tsx:340 -#: src/view/shell/Drawer.tsx:455 -#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:474 +#: src/view/shell/Drawer.tsx:475 msgid "Feeds" msgstr "Fil d’actu" @@ -955,7 +955,7 @@ msgid "Handle" msgstr "Pseudo" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:302 +#: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "Aide" @@ -968,6 +968,14 @@ msgstr "Voici le mot de passe de votre appli." msgid "Hide" msgstr "Masquer" +#: src/view/com/util/forms/PostDropdownBtn.tsx:173 +msgid "Hide post" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:177 +msgid "Hide this post?" +msgstr "" + #: src/view/com/notifications/FeedItem.tsx:308 msgid "Hide user list" msgstr "Masquer la liste des utilisateurs" @@ -994,8 +1002,8 @@ msgstr "Hmm, nous n’arrivons pas à trouver ce fils d’actu. Il a peut-être #: src/view/shell/bottom-bar/BottomBar.tsx:137 #: src/view/shell/desktop/LeftNav.tsx:304 -#: src/view/shell/Drawer.tsx:379 -#: src/view/shell/Drawer.tsx:380 +#: src/view/shell/Drawer.tsx:398 +#: src/view/shell/Drawer.tsx:399 msgid "Home" msgstr "Accueil" @@ -1056,7 +1064,7 @@ msgstr "Code d’invitation" msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "Code d’invitation refusé. Vérifiez que vous l’avez saisi correctement et réessayez." -#: src/view/shell/Drawer.tsx:621 +#: src/view/shell/Drawer.tsx:640 msgid "Invite codes: {invitesAvailable} available" msgstr "Codes d’invitation : {invitesAvailable} disponible" @@ -1152,8 +1160,8 @@ msgstr "Nom de liste" #: src/view/screens/Profile.tsx:166 #: src/view/shell/desktop/LeftNav.tsx:377 -#: src/view/shell/Drawer.tsx:471 -#: src/view/shell/Drawer.tsx:472 +#: src/view/shell/Drawer.tsx:490 +#: src/view/shell/Drawer.tsx:491 msgid "Lists" msgstr "Listes" @@ -1217,8 +1225,8 @@ msgstr "Message du serveur" #: src/view/screens/Moderation.tsx:64 #: src/view/screens/Settings.tsx:563 #: src/view/shell/desktop/LeftNav.tsx:395 -#: src/view/shell/Drawer.tsx:490 -#: src/view/shell/Drawer.tsx:491 +#: src/view/shell/Drawer.tsx:509 +#: src/view/shell/Drawer.tsx:510 msgid "Moderation" msgstr "Modération" @@ -1256,7 +1264,7 @@ msgstr "Mettre en sourdine" msgid "Mute these accounts?" msgstr "Mettre ces comptes en sourdine ?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:149 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Mute thread" msgstr "Mettre fil en sourdine" @@ -1377,8 +1385,8 @@ msgstr "Remarque : Bluesky est un réseau ouvert et public. Ce paramètre limit #: src/view/screens/Notifications.tsx:133 #: src/view/shell/bottom-bar/BottomBar.tsx:205 #: src/view/shell/desktop/LeftNav.tsx:359 -#: src/view/shell/Drawer.tsx:416 -#: src/view/shell/Drawer.tsx:417 +#: src/view/shell/Drawer.tsx:435 +#: src/view/shell/Drawer.tsx:436 msgid "Notifications" msgstr "Notifications" @@ -1407,7 +1415,7 @@ msgid "Opens configurable language settings" msgstr "Ouvre les paramètres linguistiques configurables" #: src/view/shell/desktop/RightNav.tsx:148 -#: src/view/shell/Drawer.tsx:622 +#: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" msgstr "Ouvre la liste des codes d’invitation" @@ -1565,6 +1573,8 @@ msgid "Privacy" msgstr "Vie privée" #: src/view/screens/PrivacyPolicy.tsx:29 +#: src/view/screens/Settings.tsx:750 +#: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "Charte de confidentialité" @@ -1574,13 +1584,13 @@ msgstr "Traitement..." #: src/view/shell/bottom-bar/BottomBar.tsx:247 #: src/view/shell/desktop/LeftNav.tsx:413 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:525 -#: src/view/shell/Drawer.tsx:526 +#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:544 +#: src/view/shell/Drawer.tsx:545 msgid "Profile" msgstr "Profil" -#: src/view/screens/Settings.tsx:789 +#: src/view/screens/Settings.tsx:808 msgid "Protect your account by verifying your email." msgstr "Protégez votre compte en vérifiant votre e-mail." @@ -1689,7 +1699,7 @@ msgid "Report List" msgstr "Signaler Liste" #: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:167 +#: src/view/com/util/forms/PostDropdownBtn.tsx:196 msgid "Report post" msgstr "Signaler publication" @@ -1786,8 +1796,8 @@ msgstr "Fils d’actu enregistrés" #: src/view/shell/desktop/LeftNav.tsx:322 #: src/view/shell/desktop/Search.tsx:161 #: src/view/shell/desktop/Search.tsx:170 -#: src/view/shell/Drawer.tsx:343 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/Drawer.tsx:362 +#: src/view/shell/Drawer.tsx:363 msgid "Search" msgstr "Recherche" @@ -1840,8 +1850,8 @@ msgstr "Envoyer e-mail" msgid "Send Email" msgstr "Envoyer e-mail" -#: src/view/shell/Drawer.tsx:276 -#: src/view/shell/Drawer.tsx:297 +#: src/view/shell/Drawer.tsx:295 +#: src/view/shell/Drawer.tsx:316 msgid "Send feedback" msgstr "Envoyer commentaire" @@ -1875,8 +1885,8 @@ msgstr "Choisissez « Oui » pour afficher des échantillons de vos fils d’a #: src/view/screens/Settings.tsx:277 #: src/view/shell/desktop/LeftNav.tsx:431 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:565 +#: src/view/shell/Drawer.tsx:566 msgid "Settings" msgstr "Paramètres" @@ -1885,7 +1895,7 @@ msgid "Sexual activity or erotic nudity." msgstr "Activité sexuelle ou nudité érotique." #: src/view/com/profile/ProfileHeader.tsx:338 -#: src/view/com/util/forms/PostDropdownBtn.tsx:131 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 #: src/view/screens/ProfileList.tsx:384 msgid "Share" msgstr "Partager" @@ -2055,7 +2065,9 @@ msgstr "Grand" msgid "Terms" msgstr "Conditions générales" +#: src/view/screens/Settings.tsx:744 #: src/view/screens/TermsOfService.tsx:29 +#: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" msgstr "Conditions d’utilisation" @@ -2140,6 +2152,10 @@ msgstr "Cette publication a été supprimée." msgid "This warning is only available for posts with media attached." msgstr "Cet avertissement n’est disponible que pour les messages contenant des médias." +#: src/view/com/util/forms/PostDropdownBtn.tsx:178 +msgid "This will hide this post from your feeds." +msgstr "" + #: src/view/screens/PreferencesThreads.tsx:53 #: src/view/screens/Settings.tsx:503 msgid "Thread Preferences" @@ -2159,7 +2175,7 @@ msgstr "Transformations" #: src/view/com/post-thread/PostThreadItem.tsx:704 #: src/view/com/post-thread/PostThreadItem.tsx:706 -#: src/view/com/util/forms/PostDropdownBtn.tsx:103 +#: src/view/com/util/forms/PostDropdownBtn.tsx:111 msgid "Translate" msgstr "Traduire" @@ -2203,7 +2219,7 @@ msgstr "Malheureusement, vous ne remplissez pas les conditions requises pour cr msgid "Unmute Account" msgstr "Désactiver sourdine sur ce compte" -#: src/view/com/util/forms/PostDropdownBtn.tsx:149 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Unmute thread" msgstr "Désactiver sourdine sur ce fil de discussion" @@ -2268,15 +2284,15 @@ msgstr "utilisateurs suivis par <0/>" msgid "Users in \"{0}\"" msgstr "Utilisateurs dans \"{0}\"" -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:769 msgid "Verify email" msgstr "Confirmer e-mail" -#: src/view/screens/Settings.tsx:775 +#: src/view/screens/Settings.tsx:794 msgid "Verify my email" msgstr "Confirmer mon e-mail" -#: src/view/screens/Settings.tsx:784 +#: src/view/screens/Settings.tsx:803 msgid "Verify My Email" msgstr "Confirmer mon e-mail" @@ -2445,7 +2461,7 @@ msgstr "Votre fournisseur d’hébergement" #: src/view/screens/Settings.tsx:402 #: src/view/shell/desktop/RightNav.tsx:129 -#: src/view/shell/Drawer.tsx:636 +#: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "Vos codes d’invitation sont cachés lorsque vous êtes connecté à l’aide d’un mot de passe d’application." diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index caba1a2fd3..93769c2ba9 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -38,12 +38,12 @@ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite msgstr "" #: src/view/screens/Settings.tsx:407 -#: src/view/shell/Drawer.tsx:640 +#: src/view/shell/Drawer.tsx:659 msgid "{invitesAvailable} invite code available" msgstr "" #: src/view/screens/Settings.tsx:409 -#: src/view/shell/Drawer.tsx:642 +#: src/view/shell/Drawer.tsx:661 msgid "{invitesAvailable} invite codes available" msgstr "" @@ -204,7 +204,7 @@ msgstr "ऐप पासवर्ड" msgid "App Passwords" msgstr "ऐप पासवर्ड" -#: src/view/com/util/forms/PostDropdownBtn.tsx:207 +#: src/view/com/util/forms/PostDropdownBtn.tsx:236 msgid "Appeal content warning" msgstr "" @@ -244,7 +244,7 @@ msgstr "क्या आप वाकई इस ड्राफ्ट को ह msgid "Are you sure?" msgstr "क्या आप वास्तव में इसे करना चाहते हैं?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:190 +#: src/view/com/util/forms/PostDropdownBtn.tsx:219 msgid "Are you sure? This cannot be undone." msgstr "क्या आप वास्तव में इसे करना चाहते हैं? इसे असंपादित नहीं किया जा सकता है।" @@ -593,7 +593,7 @@ msgstr "कॉपी" msgid "Copy link to list" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:131 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 msgid "Copy link to post" msgstr "" @@ -601,7 +601,7 @@ msgstr "" msgid "Copy link to profile" msgstr "" -#: src/view/com/util/forms/PostDropdownBtn.tsx:117 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Copy post text" msgstr "पोस्ट टेक्स्ट कॉपी करें" @@ -674,11 +674,11 @@ msgstr "मेरा खाता हटाएं" msgid "Delete my account…" msgstr "मेरा खाता हटाएं…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:185 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Delete post" msgstr "पोस्ट को हटाएं" -#: src/view/com/util/forms/PostDropdownBtn.tsx:189 +#: src/view/com/util/forms/PostDropdownBtn.tsx:218 msgid "Delete this post?" msgstr "इस पोस्ट को डीलीट करें?" @@ -859,7 +859,7 @@ msgid "Feed Preferences" msgstr "फ़ीड प्राथमिकता" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:292 +#: src/view/shell/Drawer.tsx:311 msgid "Feedback" msgstr "प्रतिक्रिया" @@ -867,8 +867,8 @@ msgstr "प्रतिक्रिया" #: src/view/screens/Profile.tsx:165 #: src/view/shell/bottom-bar/BottomBar.tsx:181 #: src/view/shell/desktop/LeftNav.tsx:340 -#: src/view/shell/Drawer.tsx:455 -#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:474 +#: src/view/shell/Drawer.tsx:475 msgid "Feeds" msgstr "सभी फ़ीड" @@ -987,7 +987,7 @@ msgid "Handle" msgstr "हैंडल" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:302 +#: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "सहायता" @@ -1000,6 +1000,14 @@ msgstr "यहां आपका ऐप पासवर्ड है." msgid "Hide" msgstr "इसे छिपाएं" +#: src/view/com/util/forms/PostDropdownBtn.tsx:173 +msgid "Hide post" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:177 +msgid "Hide this post?" +msgstr "" + #: src/view/com/notifications/FeedItem.tsx:308 msgid "Hide user list" msgstr "उपयोगकर्ता सूची छुपाएँ" @@ -1034,8 +1042,8 @@ msgstr "" #: src/view/shell/bottom-bar/BottomBar.tsx:137 #: src/view/shell/desktop/LeftNav.tsx:304 -#: src/view/shell/Drawer.tsx:379 -#: src/view/shell/Drawer.tsx:380 +#: src/view/shell/Drawer.tsx:398 +#: src/view/shell/Drawer.tsx:399 msgid "Home" msgstr "होम फीड" @@ -1101,7 +1109,7 @@ msgstr "आमंत्रण कोड" msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "" -#: src/view/shell/Drawer.tsx:621 +#: src/view/shell/Drawer.tsx:640 msgid "Invite codes: {invitesAvailable} available" msgstr "" @@ -1209,8 +1217,8 @@ msgstr "सूची का नाम" #: src/view/screens/Profile.tsx:166 #: src/view/shell/desktop/LeftNav.tsx:377 -#: src/view/shell/Drawer.tsx:471 -#: src/view/shell/Drawer.tsx:472 +#: src/view/shell/Drawer.tsx:490 +#: src/view/shell/Drawer.tsx:491 msgid "Lists" msgstr "सूची" @@ -1278,8 +1286,8 @@ msgstr "" #: src/view/screens/Moderation.tsx:64 #: src/view/screens/Settings.tsx:563 #: src/view/shell/desktop/LeftNav.tsx:395 -#: src/view/shell/Drawer.tsx:490 -#: src/view/shell/Drawer.tsx:491 +#: src/view/shell/Drawer.tsx:509 +#: src/view/shell/Drawer.tsx:510 msgid "Moderation" msgstr "मॉडरेशन" @@ -1321,7 +1329,7 @@ msgstr "" msgid "Mute these accounts?" msgstr "इन खातों को म्यूट करें?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:149 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Mute thread" msgstr "थ्रेड म्यूट करें" @@ -1463,8 +1471,8 @@ msgstr "" #: src/view/screens/Notifications.tsx:133 #: src/view/shell/bottom-bar/BottomBar.tsx:205 #: src/view/shell/desktop/LeftNav.tsx:359 -#: src/view/shell/Drawer.tsx:416 -#: src/view/shell/Drawer.tsx:417 +#: src/view/shell/Drawer.tsx:435 +#: src/view/shell/Drawer.tsx:436 msgid "Notifications" msgstr "सूचनाएं" @@ -1493,7 +1501,7 @@ msgid "Opens configurable language settings" msgstr "भाषा सेटिंग्स खोलें" #: src/view/shell/desktop/RightNav.tsx:148 -#: src/view/shell/Drawer.tsx:622 +#: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" msgstr "" @@ -1651,6 +1659,8 @@ msgid "Privacy" msgstr "गोपनीयता" #: src/view/screens/PrivacyPolicy.tsx:29 +#: src/view/screens/Settings.tsx:750 +#: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "गोपनीयता नीति" @@ -1660,13 +1670,13 @@ msgstr "प्रसंस्करण..." #: src/view/shell/bottom-bar/BottomBar.tsx:247 #: src/view/shell/desktop/LeftNav.tsx:413 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:525 -#: src/view/shell/Drawer.tsx:526 +#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:544 +#: src/view/shell/Drawer.tsx:545 msgid "Profile" msgstr "प्रोफ़ाइल" -#: src/view/screens/Settings.tsx:789 +#: src/view/screens/Settings.tsx:808 msgid "Protect your account by verifying your email." msgstr "अपने ईमेल को सत्यापित करके अपने खाते को सुरक्षित रखें।।" @@ -1780,7 +1790,7 @@ msgid "Report List" msgstr "रिपोर्ट सूची" #: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:167 +#: src/view/com/util/forms/PostDropdownBtn.tsx:196 msgid "Report post" msgstr "रिपोर्ट पोस्ट" @@ -1893,8 +1903,8 @@ msgstr "सहेजे गए फ़ीड" #: src/view/shell/desktop/LeftNav.tsx:322 #: src/view/shell/desktop/Search.tsx:161 #: src/view/shell/desktop/Search.tsx:170 -#: src/view/shell/Drawer.tsx:343 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/Drawer.tsx:362 +#: src/view/shell/Drawer.tsx:363 msgid "Search" msgstr "खोज" @@ -1951,8 +1961,8 @@ msgstr "ईमेल भेजें" msgid "Send Email" msgstr "ईमेल भेजें" -#: src/view/shell/Drawer.tsx:276 -#: src/view/shell/Drawer.tsx:297 +#: src/view/shell/Drawer.tsx:295 +#: src/view/shell/Drawer.tsx:316 msgid "Send feedback" msgstr "प्रतिक्रिया भेजें" @@ -1986,8 +1996,8 @@ msgstr "इस सेटिंग को अपने निम्नलिख #: src/view/screens/Settings.tsx:277 #: src/view/shell/desktop/LeftNav.tsx:431 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:565 +#: src/view/shell/Drawer.tsx:566 msgid "Settings" msgstr "सेटिंग्स" @@ -1996,7 +2006,7 @@ msgid "Sexual activity or erotic nudity." msgstr "यौन गतिविधि या कामुक नग्नता।।" #: src/view/com/profile/ProfileHeader.tsx:338 -#: src/view/com/util/forms/PostDropdownBtn.tsx:131 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 #: src/view/screens/ProfileList.tsx:384 msgid "Share" msgstr "शेयर" @@ -2174,7 +2184,9 @@ msgstr "लंबा" msgid "Terms" msgstr "शर्तें" +#: src/view/screens/Settings.tsx:744 #: src/view/screens/TermsOfService.tsx:29 +#: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" msgstr "सेवा की शर्तें" @@ -2259,6 +2271,10 @@ msgstr "इस पोस्ट को हटा दिया गया है। msgid "This warning is only available for posts with media attached." msgstr "यह चेतावनी केवल मीडिया संलग्न पोस्ट के लिए उपलब्ध है।" +#: src/view/com/util/forms/PostDropdownBtn.tsx:178 +msgid "This will hide this post from your feeds." +msgstr "" + #: src/view/screens/PreferencesThreads.tsx:53 #: src/view/screens/Settings.tsx:503 msgid "Thread Preferences" @@ -2278,7 +2294,7 @@ msgstr "परिवर्तन" #: src/view/com/post-thread/PostThreadItem.tsx:704 #: src/view/com/post-thread/PostThreadItem.tsx:706 -#: src/view/com/util/forms/PostDropdownBtn.tsx:103 +#: src/view/com/util/forms/PostDropdownBtn.tsx:111 msgid "Translate" msgstr "अनुवाद" @@ -2322,7 +2338,7 @@ msgstr "" msgid "Unmute Account" msgstr "अनम्यूट खाता" -#: src/view/com/util/forms/PostDropdownBtn.tsx:149 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Unmute thread" msgstr "थ्रेड को अनम्यूट करें" @@ -2391,15 +2407,15 @@ msgstr "" msgid "Users in \"{0}\"" msgstr "" -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:769 msgid "Verify email" msgstr "ईमेल सत्यापित करें" -#: src/view/screens/Settings.tsx:775 +#: src/view/screens/Settings.tsx:794 msgid "Verify my email" msgstr "मेरी ईमेल सत्यापित करें" -#: src/view/screens/Settings.tsx:784 +#: src/view/screens/Settings.tsx:803 msgid "Verify My Email" msgstr "मेरी ईमेल सत्यापित करें" @@ -2576,7 +2592,7 @@ msgstr "आपका होस्टिंग प्रदाता" #: src/view/screens/Settings.tsx:402 #: src/view/shell/desktop/RightNav.tsx:129 -#: src/view/shell/Drawer.tsx:636 +#: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index 09301c3385..685554ae5e 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -30,12 +30,12 @@ msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite msgstr "{invitesAvailable, plural, other {招待コード: # 個利用可能}}" #: src/view/screens/Settings.tsx:407 -#: src/view/shell/Drawer.tsx:640 +#: src/view/shell/Drawer.tsx:659 msgid "{invitesAvailable} invite code available" msgstr "{invitesAvailable}個の招待コードが利用可能" #: src/view/screens/Settings.tsx:409 -#: src/view/shell/Drawer.tsx:642 +#: src/view/shell/Drawer.tsx:661 msgid "{invitesAvailable} invite codes available" msgstr "{invitesAvailable}個の招待コードが利用可能" @@ -184,7 +184,7 @@ msgstr "アプリパスワード" msgid "App Passwords" msgstr "アプリパスワード" -#: src/view/com/util/forms/PostDropdownBtn.tsx:207 +#: src/view/com/util/forms/PostDropdownBtn.tsx:236 msgid "Appeal content warning" msgstr "" @@ -220,7 +220,7 @@ msgstr "本当にこの下書きを破棄しますか?" msgid "Are you sure?" msgstr "本当によろしいですか?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:190 +#: src/view/com/util/forms/PostDropdownBtn.tsx:219 msgid "Are you sure? This cannot be undone." msgstr "本当によろしいですか?これは元に戻せません。" @@ -565,7 +565,7 @@ msgstr "コピー" msgid "Copy link to list" msgstr "リストへのリンクをコピー" -#: src/view/com/util/forms/PostDropdownBtn.tsx:131 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 msgid "Copy link to post" msgstr "投稿へのリンクをコピー" @@ -573,7 +573,7 @@ msgstr "投稿へのリンクをコピー" msgid "Copy link to profile" msgstr "プロフィールへのリンクをコピー" -#: src/view/com/util/forms/PostDropdownBtn.tsx:117 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Copy post text" msgstr "投稿のテキストをコピー" @@ -642,11 +642,11 @@ msgstr "マイアカウントを削除" msgid "Delete my account…" msgstr "マイアカウントを削除…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:185 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Delete post" msgstr "投稿を削除" -#: src/view/com/util/forms/PostDropdownBtn.tsx:189 +#: src/view/com/util/forms/PostDropdownBtn.tsx:218 msgid "Delete this post?" msgstr "この投稿を削除しますか?" @@ -827,7 +827,7 @@ msgid "Feed Preferences" msgstr "フィードの設定" #: src/view/shell/desktop/RightNav.tsx:65 -#: src/view/shell/Drawer.tsx:292 +#: src/view/shell/Drawer.tsx:311 msgid "Feedback" msgstr "フィードバック" @@ -835,8 +835,8 @@ msgstr "フィードバック" #: src/view/screens/Profile.tsx:165 #: src/view/shell/bottom-bar/BottomBar.tsx:181 #: src/view/shell/desktop/LeftNav.tsx:340 -#: src/view/shell/Drawer.tsx:455 -#: src/view/shell/Drawer.tsx:456 +#: src/view/shell/Drawer.tsx:474 +#: src/view/shell/Drawer.tsx:475 msgid "Feeds" msgstr "フィード" @@ -955,7 +955,7 @@ msgid "Handle" msgstr "ハンドル" #: src/view/shell/desktop/RightNav.tsx:94 -#: src/view/shell/Drawer.tsx:302 +#: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "ヘルプ" @@ -968,6 +968,14 @@ msgstr "アプリパスワードをお知らせします。" msgid "Hide" msgstr "非表示" +#: src/view/com/util/forms/PostDropdownBtn.tsx:173 +msgid "Hide post" +msgstr "" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:177 +msgid "Hide this post?" +msgstr "" + #: src/view/com/notifications/FeedItem.tsx:308 msgid "Hide user list" msgstr "ユーザーリストを非表示" @@ -994,8 +1002,8 @@ msgstr "このフィードが見つからないようです。もしかしたら #: src/view/shell/bottom-bar/BottomBar.tsx:137 #: src/view/shell/desktop/LeftNav.tsx:304 -#: src/view/shell/Drawer.tsx:379 -#: src/view/shell/Drawer.tsx:380 +#: src/view/shell/Drawer.tsx:398 +#: src/view/shell/Drawer.tsx:399 msgid "Home" msgstr "ホーム" @@ -1056,7 +1064,7 @@ msgstr "招待コード" msgid "Invite code not accepted. Check that you input it correctly and try again." msgstr "招待コードが確認できません。正しく入力されていることを確認し、もう一度実行してください。" -#: src/view/shell/Drawer.tsx:621 +#: src/view/shell/Drawer.tsx:640 msgid "Invite codes: {invitesAvailable} available" msgstr "使用可能な招待コード: {invitesAvailable} 個" @@ -1156,8 +1164,8 @@ msgstr "リストの名前" #: src/view/screens/Profile.tsx:166 #: src/view/shell/desktop/LeftNav.tsx:377 -#: src/view/shell/Drawer.tsx:471 -#: src/view/shell/Drawer.tsx:472 +#: src/view/shell/Drawer.tsx:490 +#: src/view/shell/Drawer.tsx:491 msgid "Lists" msgstr "リスト" @@ -1225,8 +1233,8 @@ msgstr "サーバーからのメッセージ" #: src/view/screens/Moderation.tsx:64 #: src/view/screens/Settings.tsx:563 #: src/view/shell/desktop/LeftNav.tsx:395 -#: src/view/shell/Drawer.tsx:490 -#: src/view/shell/Drawer.tsx:491 +#: src/view/shell/Drawer.tsx:509 +#: src/view/shell/Drawer.tsx:510 msgid "Moderation" msgstr "モデレーション" @@ -1264,7 +1272,7 @@ msgstr "リストをミュート" msgid "Mute these accounts?" msgstr "これらのアカウントをミュートしますか?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:149 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Mute thread" msgstr "スレッドをミュート" @@ -1389,8 +1397,8 @@ msgstr "注記:Blueskyはオープンでパブリックなネットワーク #: src/view/screens/Notifications.tsx:133 #: src/view/shell/bottom-bar/BottomBar.tsx:205 #: src/view/shell/desktop/LeftNav.tsx:359 -#: src/view/shell/Drawer.tsx:416 -#: src/view/shell/Drawer.tsx:417 +#: src/view/shell/Drawer.tsx:435 +#: src/view/shell/Drawer.tsx:436 msgid "Notifications" msgstr "通知" @@ -1419,7 +1427,7 @@ msgid "Opens configurable language settings" msgstr "構成可能な言語設定を開く" #: src/view/shell/desktop/RightNav.tsx:148 -#: src/view/shell/Drawer.tsx:622 +#: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" msgstr "招待コードのリストを開く" @@ -1577,6 +1585,8 @@ msgid "Privacy" msgstr "プライバシー" #: src/view/screens/PrivacyPolicy.tsx:29 +#: src/view/screens/Settings.tsx:750 +#: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "プライバシーポリシー" @@ -1586,13 +1596,13 @@ msgstr "処理中..." #: src/view/shell/bottom-bar/BottomBar.tsx:247 #: src/view/shell/desktop/LeftNav.tsx:413 -#: src/view/shell/Drawer.tsx:69 -#: src/view/shell/Drawer.tsx:525 -#: src/view/shell/Drawer.tsx:526 +#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:544 +#: src/view/shell/Drawer.tsx:545 msgid "Profile" msgstr "プロフィール" -#: src/view/screens/Settings.tsx:789 +#: src/view/screens/Settings.tsx:808 msgid "Protect your account by verifying your email." msgstr "メールアドレスを確認してアカウントを保護します。" @@ -1701,7 +1711,7 @@ msgid "Report List" msgstr "リストを報告" #: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:167 +#: src/view/com/util/forms/PostDropdownBtn.tsx:196 msgid "Report post" msgstr "投稿を報告" @@ -1798,8 +1808,8 @@ msgstr "保存されたフィード" #: src/view/shell/desktop/LeftNav.tsx:322 #: src/view/shell/desktop/Search.tsx:161 #: src/view/shell/desktop/Search.tsx:170 -#: src/view/shell/Drawer.tsx:343 -#: src/view/shell/Drawer.tsx:344 +#: src/view/shell/Drawer.tsx:362 +#: src/view/shell/Drawer.tsx:363 msgid "Search" msgstr "検索" @@ -1856,8 +1866,8 @@ msgstr "メールを送信" msgid "Send Email" msgstr "メールを送信" -#: src/view/shell/Drawer.tsx:276 -#: src/view/shell/Drawer.tsx:297 +#: src/view/shell/Drawer.tsx:295 +#: src/view/shell/Drawer.tsx:316 msgid "Send feedback" msgstr "フィードバックを送信" @@ -1891,8 +1901,8 @@ msgstr "保存されたフィードのサンプルを次のフィードに表示 #: src/view/screens/Settings.tsx:277 #: src/view/shell/desktop/LeftNav.tsx:431 -#: src/view/shell/Drawer.tsx:546 -#: src/view/shell/Drawer.tsx:547 +#: src/view/shell/Drawer.tsx:565 +#: src/view/shell/Drawer.tsx:566 msgid "Settings" msgstr "設定" @@ -1901,7 +1911,7 @@ msgid "Sexual activity or erotic nudity." msgstr "性的行為または性的なヌード。" #: src/view/com/profile/ProfileHeader.tsx:338 -#: src/view/com/util/forms/PostDropdownBtn.tsx:131 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 #: src/view/screens/ProfileList.tsx:384 msgid "Share" msgstr "共有" @@ -2071,7 +2081,9 @@ msgstr "トール" msgid "Terms" msgstr "条件" +#: src/view/screens/Settings.tsx:744 #: src/view/screens/TermsOfService.tsx:29 +#: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" msgstr "利用規約" @@ -2156,6 +2168,10 @@ msgstr "この投稿は削除されました。" msgid "This warning is only available for posts with media attached." msgstr "この警告は、メディアが接続されている投稿にのみ使用できます。" +#: src/view/com/util/forms/PostDropdownBtn.tsx:178 +msgid "This will hide this post from your feeds." +msgstr "" + #: src/view/screens/PreferencesThreads.tsx:53 #: src/view/screens/Settings.tsx:503 msgid "Thread Preferences" @@ -2175,7 +2191,7 @@ msgstr "変換" #: src/view/com/post-thread/PostThreadItem.tsx:704 #: src/view/com/post-thread/PostThreadItem.tsx:706 -#: src/view/com/util/forms/PostDropdownBtn.tsx:103 +#: src/view/com/util/forms/PostDropdownBtn.tsx:111 msgid "Translate" msgstr "翻訳" @@ -2219,7 +2235,7 @@ msgstr "残念ながら、アカウントを作成するための要件を満た msgid "Unmute Account" msgstr "アカウントのミュートを解除" -#: src/view/com/util/forms/PostDropdownBtn.tsx:149 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Unmute thread" msgstr "スレッドのミュートを解除" @@ -2284,15 +2300,15 @@ msgstr "<0/>にフォローされているユーザー" msgid "Users in \"{0}\"" msgstr "{0}のユーザー" -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:769 msgid "Verify email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings.tsx:775 +#: src/view/screens/Settings.tsx:794 msgid "Verify my email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings.tsx:784 +#: src/view/screens/Settings.tsx:803 msgid "Verify My Email" msgstr "メールアドレスを確認" @@ -2457,7 +2473,7 @@ msgstr "ホスティングプロバイダー" #: src/view/screens/Settings.tsx:402 #: src/view/shell/desktop/RightNav.tsx:129 -#: src/view/shell/Drawer.tsx:636 +#: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "アプリパスワードを使用してログインすると、招待コードは非表示になります。" From 51506efca64d6a7aa12a8299eed4014d47d08c25 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Sun, 24 Dec 2023 15:19:37 -0800 Subject: [PATCH 013/115] Apply post-hide to quote posts (#2302) --- src/lib/moderatePost_wrapped.ts | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/lib/moderatePost_wrapped.ts b/src/lib/moderatePost_wrapped.ts index 286d47e1d4..2195b23044 100644 --- a/src/lib/moderatePost_wrapped.ts +++ b/src/lib/moderatePost_wrapped.ts @@ -1,4 +1,8 @@ -import {moderatePost} from '@atproto/api' +import { + AppBskyEmbedRecord, + AppBskyEmbedRecordWithMedia, + moderatePost, +} from '@atproto/api' type ModeratePost = typeof moderatePost type Options = Parameters[1] & { @@ -25,5 +29,30 @@ export function moderatePost_wrapped( } } + if (subject.embed) { + let embedHidden = false + if (AppBskyEmbedRecord.isViewRecord(subject.embed.record)) { + embedHidden = hiddenPosts.includes(subject.embed.record.uri) + } + if ( + AppBskyEmbedRecordWithMedia.isView(subject.embed) && + AppBskyEmbedRecord.isViewRecord(subject.embed.record.record) + ) { + embedHidden = hiddenPosts.includes(subject.embed.record.record.uri) + } + if (embedHidden) { + moderations.embed.filter = true + moderations.embed.blur = true + if (!moderations.embed.cause) { + moderations.embed.cause = { + // @ts-ignore Temporary extension to the moderation system -prf + type: 'post-hidden', + source: {type: 'user'}, + priority: 1, + } + } + } + } + return moderations } From 614cb234898cfdf7080d7765c2bf6b899b753008 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Sun, 24 Dec 2023 15:20:11 -0800 Subject: [PATCH 014/115] Bump ios build number --- app.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.config.js b/app.config.js index 04d5081f19..e8b30ab00b 100644 --- a/app.config.js +++ b/app.config.js @@ -9,7 +9,7 @@ module.exports = function () { /** * iOS build number. Must be incremented for each TestFlight version. */ - const IOS_BUILD_NUMBER = '2' + const IOS_BUILD_NUMBER = '3' /** * Android build number. Must be incremented for each release. From cd7a25fd4297672083cde28346d926584748ad14 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 25 Dec 2023 14:23:22 -0800 Subject: [PATCH 015/115] Bump android version code --- app.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.config.js b/app.config.js index e8b30ab00b..831791c2d6 100644 --- a/app.config.js +++ b/app.config.js @@ -14,7 +14,7 @@ module.exports = function () { /** * Android build number. Must be incremented for each release. */ - const ANDROID_VERSION_CODE = 51 + const ANDROID_VERSION_CODE = 52 /** * Uses built-in Expo env vars From 7e3e6caa1020c6894008dd14ef6ce0e2555920c0 Mon Sep 17 00:00:00 2001 From: Hailey <153161762+haileyok@users.noreply.github.com> Date: Tue, 26 Dec 2023 12:02:37 -0800 Subject: [PATCH 016/115] use the window hostname on web for twitch embeds (#2311) --- src/lib/strings/embed-player.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/strings/embed-player.ts b/src/lib/strings/embed-player.ts index fdd39280ed..ec996dfa53 100644 --- a/src/lib/strings/embed-player.ts +++ b/src/lib/strings/embed-player.ts @@ -1,3 +1,5 @@ +import {Platform} from 'react-native' + export type EmbedPlayerParams = | {type: 'youtube_video'; videoId: string; playerUri: string} | {type: 'twitch_live'; channelId: string; playerUri: string} @@ -48,12 +50,15 @@ export function parseEmbedPlayerFromUrl( // twitch if (urlp.hostname === 'twitch.tv' || urlp.hostname === 'www.twitch.tv') { + const parent = + Platform.OS === 'web' ? window.location.hostname : 'localhost' + const parts = urlp.pathname.split('/') if (parts.length === 2 && parts[1]) { return { type: 'twitch_live', channelId: parts[1], - playerUri: `https://player.twitch.tv/?volume=0.5&!muted&autoplay&channel=${parts[1]}&parent=localhost`, + playerUri: `https://player.twitch.tv/?volume=0.5&!muted&autoplay&channel=${parts[1]}&parent=${parent}`, } } } From b2b4ef858b85b38fdeba03ebb2921455ee4bfda5 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Tue, 26 Dec 2023 17:54:57 -0800 Subject: [PATCH 017/115] Correctly load spanish localization (#2324) --- src/locale/i18n.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts index 54762eb81a..6f0a46888e 100644 --- a/src/locale/i18n.ts +++ b/src/locale/i18n.ts @@ -7,7 +7,7 @@ import {messages as messagesHi} from '#/locale/locales/hi/messages' import {messages as messagesJa} from '#/locale/locales/ja/messages' import {messages as messagesFr} from '#/locale/locales/fr/messages' import {messages as messagesDe} from '#/locale/locales/de/messages' -import {messages as messagesEs} from '#/locale/locales/de/messages' +import {messages as messagesEs} from '#/locale/locales/es/messages' import {sanitizeAppLanguageSetting} from '#/locale/helpers' import {AppLanguage} from '#/locale/languages' From e27ffc850a60398ba7cae7387c79083fa50c8e96 Mon Sep 17 00:00:00 2001 From: Noritada Kobayashi Date: Thu, 28 Dec 2023 00:09:15 +0900 Subject: [PATCH 018/115] Make Japanese localization improvements (#2285) * Make Japanese l10n improvements * Update messages.po --------- Co-authored-by: Ansh --- src/locale/locales/ja/messages.po | 40 +++++++++++++++---------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index 685554ae5e..ae45a79471 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "PO-Revision-Date: \n" -"Last-Translator: Hima-Zinn\n" +"Last-Translator: noritada\n" "Language-Team: Hima-Zinn, tkusano, dolciss, oboenikui, noritada\n" "Plural-Forms: \n" @@ -771,7 +771,7 @@ msgstr "メールアドレス:" #: src/view/screens/PreferencesHomeFeed.tsx:138 msgid "Enable this setting to only see replies between people you follow." -msgstr "この設定を有効にすると、フォローしているユーザー間の返信だけが表示されます。" +msgstr "この設定を有効にすると、自分がフォローしているユーザーからの返信だけが表示されます。" #: src/view/screens/Profile.tsx:426 msgid "End of feed" @@ -878,11 +878,11 @@ msgstr "何人かのユーザーをフォローして開始します。興味を #: src/view/com/modals/Threadgate.tsx:98 msgid "Followed users" -msgstr "フォローしているユーザー" +msgstr "自分がフォローしているユーザー" #: src/view/screens/PreferencesHomeFeed.tsx:145 msgid "Followed users only" -msgstr "フォローされたユーザーのみ" +msgstr "自分がフォローしているユーザーのみ" #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" @@ -1011,7 +1011,7 @@ msgstr "ホーム" #: src/view/screens/PreferencesHomeFeed.tsx:95 #: src/view/screens/Settings.tsx:481 msgid "Home Feed Preferences" -msgstr "ホームフィード設定" +msgstr "ホームフィードの設定" #: src/view/com/auth/login/ForgotPasswordForm.tsx:114 msgid "Hosting provider" @@ -1144,7 +1144,7 @@ msgstr "このフィードをいいね" #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 msgid "Liked by" -msgstr "いいねした人" +msgstr "いいねしたユーザー" #: src/view/screens/Profile.tsx:164 msgid "Likes" @@ -1156,7 +1156,7 @@ msgstr "いいね" #: src/view/com/modals/CreateOrEditList.tsx:186 msgid "List Avatar" -msgstr "リストアバター" +msgstr "リストのアバター" #: src/view/com/modals/CreateOrEditList.tsx:199 msgid "List Name" @@ -1172,15 +1172,15 @@ msgstr "リスト" #: src/view/com/post-thread/PostThread.tsx:259 #: src/view/com/post-thread/PostThread.tsx:267 msgid "Load more posts" -msgstr "より多くの投稿をロード" +msgstr "投稿をさらにロード" #: src/view/screens/Notifications.tsx:144 msgid "Load new notifications" -msgstr "新しい通知をロード" +msgstr "最新の通知をロード" #: src/view/com/feeds/FeedPage.tsx:189 msgid "Load new posts" -msgstr "投稿をロード" +msgstr "最新の投稿をロード" #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 msgid "Loading..." @@ -1278,19 +1278,19 @@ msgstr "スレッドをミュート" #: src/view/screens/Moderation.tsx:109 msgid "Muted accounts" -msgstr "ミュートされたアカウント" +msgstr "ミュート中のアカウント" #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" -msgstr "ミュートされたアカウント" +msgstr "ミュート中のアカウント" #: 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 "ミュートをされたアカウントは、フィードと通知からの投稿が削除されます。ミュートの設定は完全に非公開です。" +msgstr "ミュート中のアカウントの投稿は、フィードや通知から取り除かれます。ミュートの設定は完全に非公開です。" #: src/view/screens/ProfileList.tsx:272 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." -msgstr "ミュートは非公開です。ミュートをされたアカウントはあなたと引き続き関わることができますが、そのアカウントの投稿や通知を受信することはできません。" +msgstr "ミュートの設定は非公開です。ミュート中のアカウントはあなたと引き続き関わることができますが、そのアカウントの投稿や通知を受信することはできません。" #: src/view/com/modals/BirthDateSettings.tsx:56 msgid "My Birthday" @@ -1726,7 +1726,7 @@ msgstr "リポストまたは引用" #: src/view/screens/PostRepostedBy.tsx:27 msgid "Reposted by" -msgstr "リポストした人" +msgstr "リポストしたユーザー" #: src/view/com/modals/ChangeEmail.tsx:181 #: src/view/com/modals/ChangeEmail.tsx:183 @@ -1881,15 +1881,15 @@ msgstr "新しいパスワードを設定" #: src/view/screens/PreferencesHomeFeed.tsx:216 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." -msgstr "フィードから全ての引用を非表示にするには、この設定を「いいえ」にします。リポストは引き続き表示されます。" +msgstr "フィード内の引用をすべて非表示にするには、この設定を「いいえ」にします。リポストは引き続き表示されます。" #: src/view/screens/PreferencesHomeFeed.tsx:113 msgid "Set this setting to \"No\" to hide all replies from your feed." -msgstr "フィードから全ての返信を非表示にするには、この設定を「いいえ」にします。" +msgstr "フィード内の返信をすべて非表示にするには、この設定を「いいえ」にします。" #: src/view/screens/PreferencesHomeFeed.tsx:182 msgid "Set this setting to \"No\" to hide all reposts from your feed." -msgstr "フィードから全てのリポストを非表示にするには、この設定を「いいえ」にします。" +msgstr "フィード内のリポストをすべて非表示にするには、この設定を「いいえ」にします。" #: src/view/screens/PreferencesThreads.tsx:116 msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." @@ -1943,7 +1943,7 @@ msgstr "返信を表示" #: src/view/screens/PreferencesThreads.tsx:94 msgid "Show replies by people you follow before all other replies." -msgstr "他のすべての返信の前に、フォローしている人からの返信を表示します。" +msgstr "自分がフォローしているユーザーからの返信を、他のすべての返信の前に表示します。" #: src/view/screens/PreferencesHomeFeed.tsx:179 msgid "Show Reposts" @@ -2364,7 +2364,7 @@ msgstr "アルゴリズムによるフィードにはどの言語を使用しま #: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 #: src/view/com/modals/Threadgate.tsx:66 msgid "Who can reply" -msgstr "返信できる人" +msgstr "返信できるユーザー" #: src/view/com/modals/crop-image/CropImage.web.tsx:102 msgid "Wide" From 3b240db0c06b9cdc560fb0a1123405e28a0218ac Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Wed, 27 Dec 2023 08:47:26 -0800 Subject: [PATCH 019/115] Stop the user from posting before the link card finishes loading (#2328) * Stop the user from posting before the link card finishes loading * Add localization of error messages --- src/locale/locales/de/messages.po | 22 +++++++++++++++------- src/locale/locales/en/messages.po | 22 +++++++++++++++------- src/locale/locales/es/messages.po | 22 +++++++++++++++------- src/locale/locales/fr/messages.po | 22 +++++++++++++++------- src/locale/locales/hi/messages.po | 22 +++++++++++++++------- src/locale/locales/ja/messages.po | 22 +++++++++++++++------- src/view/com/composer/Composer.tsx | 8 ++++++-- 7 files changed, 96 insertions(+), 44 deletions(-) diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index d4459b6a0d..2298624853 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -110,11 +110,11 @@ msgstr "Einzelheiten hinzufügen" msgid "Add details to report" msgstr "Einzelheiten zum Bericht hinzufügen" -#: src/view/com/composer/Composer.tsx:438 +#: src/view/com/composer/Composer.tsx:442 msgid "Add link card" msgstr "Link Karte hinzufügen" -#: src/view/com/composer/Composer.tsx:441 +#: src/view/com/composer/Composer.tsx:445 msgid "Add link card:" msgstr "Link Karte hinzufügen:" @@ -345,8 +345,8 @@ 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/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Composer.tsx:288 +#: src/view/com/composer/Composer.tsx:289 +#: src/view/com/composer/Composer.tsx:292 #: src/view/com/modals/AltImage.tsx:128 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 @@ -669,6 +669,10 @@ msgstr "Entwicklungs-Server" msgid "Developer Tools" msgstr "Werkzeuge für Entwickler" +#: src/view/com/composer/Composer.tsx:210 +msgid "Did you want to say anything?" +msgstr "" + #: src/view/com/composer/Composer.tsx:143 msgid "Discard" msgstr "Verwerfen" @@ -1398,7 +1402,7 @@ msgstr "Ach nein!" msgid "Okay" msgstr "Okay" -#: src/view/com/composer/Composer.tsx:354 +#: src/view/com/composer/Composer.tsx:358 msgid "One or more images is missing alt text." msgstr "Bei einem oder mehreren Bildern fehlt der Alt-Text." @@ -1526,7 +1530,11 @@ msgstr "" #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "Bitte teilen Sie uns mit, warum diese Entscheidung Ihrer Meinung nach falsch war." -#: src/view/com/composer/Composer.tsx:337 +#: src/view/com/composer/Composer.tsx:214 +msgid "Please wait for your link card to finish loading" +msgstr "" + +#: src/view/com/composer/Composer.tsx:341 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" @@ -2358,7 +2366,7 @@ msgstr "Wer kann antworten." msgid "Wide" msgstr "Breit" -#: src/view/com/composer/Composer.tsx:409 +#: src/view/com/composer/Composer.tsx:413 msgid "Write post" msgstr "Posten schreiben" diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index 063b459b48..7139489a90 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -130,11 +130,11 @@ msgstr "" msgid "Add details to report" msgstr "" -#: src/view/com/composer/Composer.tsx:438 +#: src/view/com/composer/Composer.tsx:442 msgid "Add link card" msgstr "" -#: src/view/com/composer/Composer.tsx:441 +#: src/view/com/composer/Composer.tsx:445 msgid "Add link card:" msgstr "" @@ -373,8 +373,8 @@ 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/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Composer.tsx:288 +#: src/view/com/composer/Composer.tsx:289 +#: src/view/com/composer/Composer.tsx:292 #: src/view/com/modals/AltImage.tsx:128 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 @@ -705,6 +705,10 @@ msgstr "" msgid "Developer Tools" msgstr "" +#: src/view/com/composer/Composer.tsx:210 +msgid "Did you want to say anything?" +msgstr "" + #: src/view/com/composer/Composer.tsx:143 msgid "Discard" msgstr "" @@ -1492,7 +1496,7 @@ msgstr "" msgid "Okay" msgstr "" -#: src/view/com/composer/Composer.tsx:354 +#: src/view/com/composer/Composer.tsx:358 msgid "One or more images is missing alt text." msgstr "" @@ -1620,7 +1624,11 @@ msgstr "" #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "" -#: src/view/com/composer/Composer.tsx:337 +#: src/view/com/composer/Composer.tsx:214 +msgid "Please wait for your link card to finish loading" +msgstr "" + +#: src/view/com/composer/Composer.tsx:341 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" @@ -2497,7 +2505,7 @@ msgstr "" msgid "Wide" msgstr "" -#: src/view/com/composer/Composer.tsx:409 +#: src/view/com/composer/Composer.tsx:413 msgid "Write post" msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index 671e9e2298..d1ea8ece83 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -110,11 +110,11 @@ msgstr "Agregar detalles" msgid "Add details to report" msgstr "Agregar detalles al informe" -#: src/view/com/composer/Composer.tsx:438 +#: src/view/com/composer/Composer.tsx:442 msgid "Add link card" msgstr "Agregar una tarjeta de enlace" -#: src/view/com/composer/Composer.tsx:441 +#: src/view/com/composer/Composer.tsx:445 msgid "Add link card:" msgstr "Agregar una tarjeta de enlace:" @@ -345,8 +345,8 @@ 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/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Composer.tsx:288 +#: src/view/com/composer/Composer.tsx:289 +#: src/view/com/composer/Composer.tsx:292 #: src/view/com/modals/AltImage.tsx:128 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 @@ -669,6 +669,10 @@ msgstr "Servidor de desarrollo" msgid "Developer Tools" msgstr "Herramientas de desarrollador" +#: src/view/com/composer/Composer.tsx:210 +msgid "Did you want to say anything?" +msgstr "" + #: src/view/com/composer/Composer.tsx:143 msgid "Discard" msgstr "Descartar" @@ -1398,7 +1402,7 @@ msgstr "¡Qué problema!" msgid "Okay" msgstr "Está bien" -#: src/view/com/composer/Composer.tsx:354 +#: src/view/com/composer/Composer.tsx:358 msgid "One or more images is missing alt text." msgstr "Falta el texto alternativo en una o varias imágenes." @@ -1526,7 +1530,11 @@ msgstr "" #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "Por favor, dinos por qué crees que esta decisión fue incorrecta." -#: src/view/com/composer/Composer.tsx:337 +#: src/view/com/composer/Composer.tsx:214 +msgid "Please wait for your link card to finish loading" +msgstr "" + +#: src/view/com/composer/Composer.tsx:341 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" @@ -2358,7 +2366,7 @@ msgstr "Quién puede responder" msgid "Wide" msgstr "Ancho" -#: src/view/com/composer/Composer.tsx:409 +#: src/view/com/composer/Composer.tsx:413 msgid "Write post" msgstr "Redactar una publicación" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index ca8c6af2bb..8afd0e5feb 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -110,11 +110,11 @@ msgstr "Ajouter des détails" msgid "Add details to report" msgstr "Ajouter des détails au rapport" -#: src/view/com/composer/Composer.tsx:438 +#: src/view/com/composer/Composer.tsx:442 msgid "Add link card" msgstr "Ajouter une carte link card" -#: src/view/com/composer/Composer.tsx:441 +#: src/view/com/composer/Composer.tsx:445 msgid "Add link card:" msgstr "Ajouter une carte link card :" @@ -345,8 +345,8 @@ 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/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Composer.tsx:288 +#: src/view/com/composer/Composer.tsx:289 +#: src/view/com/composer/Composer.tsx:292 #: src/view/com/modals/AltImage.tsx:128 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 @@ -669,6 +669,10 @@ msgstr "Serveur de dév" msgid "Developer Tools" msgstr "Outils du dév" +#: src/view/com/composer/Composer.tsx:210 +msgid "Did you want to say anything?" +msgstr "" + #: src/view/com/composer/Composer.tsx:143 msgid "Discard" msgstr "Ignorer" @@ -1398,7 +1402,7 @@ msgstr "Oh non !" msgid "Okay" msgstr "D’accord" -#: src/view/com/composer/Composer.tsx:354 +#: src/view/com/composer/Composer.tsx:358 msgid "One or more images is missing alt text." msgstr "Une ou plusieurs images n’ont pas de texte alt." @@ -1526,7 +1530,11 @@ msgstr "" #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "Dites-nous pourquoi vous pensez que cette décision était incorrecte." -#: src/view/com/composer/Composer.tsx:337 +#: src/view/com/composer/Composer.tsx:214 +msgid "Please wait for your link card to finish loading" +msgstr "" + +#: src/view/com/composer/Composer.tsx:341 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" @@ -2358,7 +2366,7 @@ msgstr "Qui peut répondre ?" msgid "Wide" msgstr "Large" -#: src/view/com/composer/Composer.tsx:409 +#: src/view/com/composer/Composer.tsx:413 msgid "Write post" msgstr "Rédiger une publication" diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index 93769c2ba9..6fa32b369f 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -130,11 +130,11 @@ msgstr "विवरण जोड़ें" msgid "Add details to report" msgstr "रिपोर्ट करने के लिए विवरण जोड़ें" -#: src/view/com/composer/Composer.tsx:438 +#: src/view/com/composer/Composer.tsx:442 msgid "Add link card" msgstr "लिंक कार्ड जोड़ें" -#: src/view/com/composer/Composer.tsx:441 +#: src/view/com/composer/Composer.tsx:445 msgid "Add link card:" msgstr "लिंक कार्ड जोड़ें:" @@ -373,8 +373,8 @@ 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/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Composer.tsx:288 +#: src/view/com/composer/Composer.tsx:289 +#: src/view/com/composer/Composer.tsx:292 #: src/view/com/modals/AltImage.tsx:128 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 @@ -701,6 +701,10 @@ msgstr "देव सर्वर" msgid "Developer Tools" msgstr "डेवलपर उपकरण" +#: src/view/com/composer/Composer.tsx:210 +msgid "Did you want to say anything?" +msgstr "" + #: src/view/com/composer/Composer.tsx:143 msgid "Discard" msgstr "" @@ -1484,7 +1488,7 @@ msgstr "अरे नहीं!" msgid "Okay" msgstr "ठीक है" -#: src/view/com/composer/Composer.tsx:354 +#: src/view/com/composer/Composer.tsx:358 msgid "One or more images is missing alt text." msgstr "एक या अधिक छवियाँ alt पाठ याद आती हैं।।" @@ -1612,7 +1616,11 @@ msgstr "" #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "" -#: src/view/com/composer/Composer.tsx:337 +#: src/view/com/composer/Composer.tsx:214 +msgid "Please wait for your link card to finish loading" +msgstr "" + +#: src/view/com/composer/Composer.tsx:341 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" @@ -2489,7 +2497,7 @@ msgstr "" msgid "Wide" msgstr "चौड़ा" -#: src/view/com/composer/Composer.tsx:409 +#: src/view/com/composer/Composer.tsx:413 msgid "Write post" msgstr "पोस्ट लिखो" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index ae45a79471..d4b2ce3bd7 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -110,11 +110,11 @@ msgstr "詳細を追加" msgid "Add details to report" msgstr "レポートに詳細を追加" -#: src/view/com/composer/Composer.tsx:438 +#: src/view/com/composer/Composer.tsx:442 msgid "Add link card" msgstr "リンクカードを追加" -#: src/view/com/composer/Composer.tsx:441 +#: src/view/com/composer/Composer.tsx:445 msgid "Add link card:" msgstr "リンクカードを追加:" @@ -345,8 +345,8 @@ 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/view/com/composer/Composer.tsx:285 -#: src/view/com/composer/Composer.tsx:288 +#: src/view/com/composer/Composer.tsx:289 +#: src/view/com/composer/Composer.tsx:292 #: src/view/com/modals/AltImage.tsx:128 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 @@ -669,6 +669,10 @@ msgstr "開発者サーバー" msgid "Developer Tools" msgstr "開発者ツール" +#: src/view/com/composer/Composer.tsx:210 +msgid "Did you want to say anything?" +msgstr "" + #: src/view/com/composer/Composer.tsx:143 msgid "Discard" msgstr "破棄" @@ -1410,7 +1414,7 @@ msgstr "ちょっと!" msgid "Okay" msgstr "OK" -#: src/view/com/composer/Composer.tsx:354 +#: src/view/com/composer/Composer.tsx:358 msgid "One or more images is missing alt text." msgstr "1つもしくは複数の画像にALTテキストがありません。" @@ -1538,7 +1542,11 @@ msgstr "" #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "この判断が誤っていると考える理由を教えてください。" -#: src/view/com/composer/Composer.tsx:337 +#: src/view/com/composer/Composer.tsx:214 +msgid "Please wait for your link card to finish loading" +msgstr "" + +#: src/view/com/composer/Composer.tsx:341 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" @@ -2370,7 +2378,7 @@ msgstr "返信できるユーザー" msgid "Wide" msgstr "ワイド" -#: src/view/com/composer/Composer.tsx:409 +#: src/view/com/composer/Composer.tsx:413 msgid "Write post" msgstr "投稿を書く" diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 64427b837e..9f60923d61 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -207,7 +207,11 @@ export const ComposePost = observer(function ComposePost({ setError('') if (richtext.text.trim().length === 0 && gallery.isEmpty && !extLink) { - setError('Did you want to say anything?') + setError(_(msg`Did you want to say anything?`)) + return + } + if (extLink?.isLoading) { + setError(_(msg`Please wait for your link card to finish loading`)) return } @@ -438,7 +442,7 @@ export const ComposePost = observer(function ComposePost({ accessibilityLabel={_(msg`Add link card`)} accessibilityHint={`Creates a card with a thumbnail. The card links to ${url}`}> - Add link card: + Add link card:{' '} {toShortUrl(url)} From 6e001dbf1ce87f00f064a1a9f772c19185179f0e Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Wed, 27 Dec 2023 08:47:45 -0800 Subject: [PATCH 020/115] A couple notifications fixes (#2327) * Clear the app badge notif count on markallread * Fix like notifications on custom feeds --- src/state/queries/notifications/unread.tsx | 3 +++ src/state/queries/notifications/util.ts | 4 +++- src/view/com/notifications/FeedItem.tsx | 18 ++++++++++++++++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/state/queries/notifications/unread.tsx b/src/state/queries/notifications/unread.tsx index a189f20e42..abaabbf0e7 100644 --- a/src/state/queries/notifications/unread.tsx +++ b/src/state/queries/notifications/unread.tsx @@ -89,6 +89,9 @@ export function Provider({children}: React.PropsWithChildren<{}>) { // update & broadcast setNumUnread('') broadcast.postMessage({event: ''}) + if (isNative) { + Notifications.setBadgeCountAsync(0) + } }, async checkUnread({invalidate}: {invalidate?: boolean} = {}) { diff --git a/src/state/queries/notifications/util.ts b/src/state/queries/notifications/util.ts index 438879b7e8..411a0f791d 100644 --- a/src/state/queries/notifications/util.ts +++ b/src/state/queries/notifications/util.ts @@ -156,7 +156,7 @@ async function fetchSubjects( ): Promise> { const uris = new Set() for (const notif of groupedNotifs) { - if (notif.subjectUri) { + if (notif.subjectUri && !notif.subjectUri.includes('feed.generator')) { uris.add(notif.subjectUri) } } @@ -216,6 +216,8 @@ function getSubjectUri( ? notif.record.subject?.uri : undefined } + } else if (type === 'feedgen-like') { + return notif.reasonSubject } } diff --git a/src/view/com/notifications/FeedItem.tsx b/src/view/com/notifications/FeedItem.tsx index aaa2ea2c63..24b7e4fb6b 100644 --- a/src/view/com/notifications/FeedItem.tsx +++ b/src/view/com/notifications/FeedItem.tsx @@ -42,6 +42,7 @@ 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' const MAX_AUTHORS = 5 @@ -112,7 +113,7 @@ let FeedItem = ({ ] }, [item, moderationOpts]) - if (item.subjectUri && !item.subject) { + if (item.subjectUri && !item.subject && item.type !== 'feedgen-like') { // don't render anything if the target post was deleted or unfindable return } @@ -166,7 +167,7 @@ let FeedItem = ({ iconStyle = [s.blue3 as FontAwesomeIconStyle] } else if (item.type === 'feedgen-like') { action = `liked your custom feed${ - item.subjectUri ? ` '${new AtUri(item.subjectUri).rkey}}'` : '' + item.subjectUri ? ` '${new AtUri(item.subjectUri).rkey}'` : '' }` icon = 'HeartIconSolid' iconStyle = [ @@ -256,6 +257,13 @@ let FeedItem = ({ {item.type === 'post-like' || item.type === 'repost' ? ( ) : null} + {item.type === 'feedgen-like' && item.subjectUri ? ( + + ) : null} ) @@ -496,6 +504,12 @@ const styles = StyleSheet.create({ marginLeft: 2, opacity: 0.8, }, + feedcard: { + borderWidth: 1, + borderRadius: 8, + paddingVertical: 12, + marginTop: 6, + }, addedContainer: { paddingTop: 4, From 0c9dc2163ab5102e58f13597ba84e14717e09ffd Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Wed, 27 Dec 2023 08:48:23 -0800 Subject: [PATCH 021/115] Fix: only show appeal CW item on moderated posts (#2312) * Fix: only show appeal CW item on moderated posts * Add appeal cw control to feed view o fposts --- src/view/com/post-thread/PostThreadItem.tsx | 6 +++--- src/view/com/posts/FeedItem.tsx | 14 +++++++++++++- src/view/com/util/post-ctrls/PostCtrls.tsx | 3 +++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 6a377cdf6a..13f40bb16d 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -186,9 +186,9 @@ let PostThreadItemLoaded = ({ return makeProfileLink(post.author, 'post', urip.rkey, 'reposted-by') }, [post.uri, post.author]) const repostsTitle = 'Reposts of this post' - const isSelfLabeledPost = + const isModeratedPost = moderation.decisions.post.cause?.type === 'label' && - moderation.decisions.post.cause.label.src === currentAccount?.did + moderation.decisions.post.cause.label.src !== currentAccount?.did const translatorUrl = getTranslatorLink( record?.text || '', @@ -335,7 +335,7 @@ let PostThreadItemLoaded = ({ postUri={post.uri} record={record} showAppealLabelItem={ - post.author.did === currentAccount?.did && !isSelfLabeledPost + post.author.did === currentAccount?.did && isModeratedPost } style={{ paddingVertical: 6, diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 2be314266f..942d7bf713 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -34,6 +34,7 @@ import {countLines} from 'lib/strings/helpers' 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' export function FeedItem({ post, @@ -102,10 +103,14 @@ let FeedItemInner = ({ }): React.ReactNode => { const {openComposer} = useComposerControls() const pal = usePalette('default') + const {currentAccount} = useSession() const href = useMemo(() => { const urip = new AtUri(post.uri) return makeProfileLink(post.author, 'post', urip.rkey) }, [post.uri, post.author]) + const isModeratedPost = + moderation.decisions.post.cause?.type === 'label' && + moderation.decisions.post.cause.label.src !== currentAccount?.did const replyAuthorDid = useMemo(() => { if (!record?.reply) { @@ -284,7 +289,14 @@ let FeedItemInner = ({ postEmbed={post.embed} postAuthor={post.author} /> - + diff --git a/src/view/com/util/post-ctrls/PostCtrls.tsx b/src/view/com/util/post-ctrls/PostCtrls.tsx index 414fb1e094..a50b521750 100644 --- a/src/view/com/util/post-ctrls/PostCtrls.tsx +++ b/src/view/com/util/post-ctrls/PostCtrls.tsx @@ -31,12 +31,14 @@ let PostCtrls = ({ big, post, record, + showAppealLabelItem, style, onPressReply, }: { big?: boolean post: Shadow record: AppBskyFeedPost.Record + showAppealLabelItem?: boolean style?: StyleProp onPressReply: () => void }): React.ReactNode => { @@ -207,6 +209,7 @@ let PostCtrls = ({ postCid={post.cid} postUri={post.uri} record={record} + showAppealLabelItem={showAppealLabelItem} style={styles.ctrlPad} /> )} From 8b6ecf6bfff0a18e92a172004cd37fe2aacaf37f Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Wed, 27 Dec 2023 08:49:39 -0800 Subject: [PATCH 022/115] Protect against react key duplicates (close #2278) (#2309) * Fix duplicate react keys in post search * Protect against duplicate react keys in feeds --- src/lib/api/feed-manip.ts | 19 ++++++++++--------- src/view/screens/Search/Search.tsx | 5 +++++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts index 9a050fd3e5..c964693c45 100644 --- a/src/lib/api/feed-manip.ts +++ b/src/lib/api/feed-manip.ts @@ -117,11 +117,7 @@ export class FeedViewPostsSlice { } export class NoopFeedTuner { - private keyCounter = 0 - - reset() { - this.keyCounter = 0 - } + reset() {} tune( feed: FeedViewPost[], _opts?: {dryRun: boolean; maintainOrder: boolean}, @@ -131,13 +127,13 @@ export class NoopFeedTuner { } export class FeedTuner { - private keyCounter = 0 + seenKeys: Set = new Set() seenUris: Set = new Set() constructor(public tunerFns: FeedTunerFn[]) {} reset() { - this.keyCounter = 0 + this.seenKeys.clear() this.seenUris.clear() } @@ -218,11 +214,16 @@ export class FeedTuner { } if (!dryRun) { - for (const slice of slices) { + slices = slices.filter(slice => { + if (this.seenKeys.has(slice._reactKey)) { + return false + } for (const item of slice.items) { this.seenUris.add(item.post.uri) } - } + this.seenKeys.add(slice._reactKey) + return true + }) } return slices diff --git a/src/view/screens/Search/Search.tsx b/src/view/screens/Search/Search.tsx index 60fd216749..b522edfba5 100644 --- a/src/view/screens/Search/Search.tsx +++ b/src/view/screens/Search/Search.tsx @@ -212,12 +212,17 @@ function SearchScreenPostResults({query}: {query: string}) { const items = React.useMemo(() => { let temp: SearchResultSlice[] = [] + const seenUris = new Set() for (const post of posts) { + if (seenUris.has(post.uri)) { + continue + } temp.push({ type: 'post', key: post.uri, post, }) + seenUris.add(post.uri) } if (isFetchingNextPage) { From e1ba649560b9bb619dd445520ed9ea867f78ed4d Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Wed, 27 Dec 2023 08:53:24 -0800 Subject: [PATCH 023/115] Fixes to feed load triggers (#2323) * Add soft-reset support to ProfileFeed and ProfileList * Fix: correctly unsubscribe the notifications soft-reset listener --- src/view/screens/Notifications.tsx | 8 ++++++-- src/view/screens/ProfileFeed.tsx | 9 +++++++++ src/view/screens/ProfileList.tsx | 9 +++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/view/screens/Notifications.tsx b/src/view/screens/Notifications.tsx index e28a67e370..6e2f183056 100644 --- a/src/view/screens/Notifications.tsx +++ b/src/view/screens/Notifications.tsx @@ -1,6 +1,6 @@ import React from 'react' import {View} from 'react-native' -import {useFocusEffect} from '@react-navigation/native' +import {useFocusEffect, useIsFocused} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' import { NativeStackScreenProps, @@ -46,6 +46,7 @@ export function NotificationsScreen({}: Props) { const unreadNotifs = useUnreadNotifications() const unreadApi = useUnreadNotificationsApi() const hasNew = !!unreadNotifs + const isScreenFocused = useIsFocused() // event handlers // = @@ -83,8 +84,11 @@ export function NotificationsScreen({}: Props) { }, [screen, setMinimalShellMode]), ) React.useEffect(() => { + if (!isScreenFocused) { + return + } return listenSoftReset(onPressLoadLatest) - }, [onPressLoadLatest]) + }, [onPressLoadLatest, isScreenFocused]) const ListHeaderComponent = React.useCallback(() => { if (isDesktop) { diff --git a/src/view/screens/ProfileFeed.tsx b/src/view/screens/ProfileFeed.tsx index cde39a33f4..211306c0d0 100644 --- a/src/view/screens/ProfileFeed.tsx +++ b/src/view/screens/ProfileFeed.tsx @@ -57,6 +57,7 @@ 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' const SECTION_TITLES = ['Posts', 'About'] @@ -446,6 +447,7 @@ const FeedSection = React.forwardRef( const [hasNew, setHasNew] = React.useState(false) const [isScrolledDown, setIsScrolledDown] = React.useState(false) const queryClient = useQueryClient() + const isScreenFocused = useIsFocused() const onScrollToTop = useCallback(() => { scrollElRef.current?.scrollToOffset({ @@ -460,6 +462,13 @@ const FeedSection = React.forwardRef( scrollToTop: onScrollToTop, })) + React.useEffect(() => { + if (!isScreenFocused) { + return + } + return listenSoftReset(onScrollToTop) + }, [onScrollToTop, isScreenFocused]) + const renderPostsEmpty = useCallback(() => { return }, []) diff --git a/src/view/screens/ProfileList.tsx b/src/view/screens/ProfileList.tsx index 2db768cc57..c51758ae51 100644 --- a/src/view/screens/ProfileList.tsx +++ b/src/view/screens/ProfileList.tsx @@ -57,6 +57,7 @@ import { } from '#/state/queries/preferences' import {logger} from '#/logger' import {useAnalytics} from '#/lib/analytics/analytics' +import {listenSoftReset} from '#/state/events' const SECTION_TITLES_CURATE = ['Posts', 'About'] const SECTION_TITLES_MOD = ['About'] @@ -601,6 +602,7 @@ const FeedSection = React.forwardRef( const queryClient = useQueryClient() const [hasNew, setHasNew] = React.useState(false) const [isScrolledDown, setIsScrolledDown] = React.useState(false) + const isScreenFocused = useIsFocused() const onScrollToTop = useCallback(() => { scrollElRef.current?.scrollToOffset({ @@ -614,6 +616,13 @@ const FeedSection = React.forwardRef( scrollToTop: onScrollToTop, })) + React.useEffect(() => { + if (!isScreenFocused) { + return + } + return listenSoftReset(onScrollToTop) + }, [onScrollToTop, isScreenFocused]) + const renderPostsEmpty = useCallback(() => { return }, []) From b5d53ef0b9ec5e109710b6b21419913a3683b743 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Wed, 27 Dec 2023 08:53:39 -0800 Subject: [PATCH 024/115] Fix missing avatar moderation in replies (#2325) --- src/view/com/post-thread/PostThreadItem.tsx | 1 + src/view/com/util/PostMeta.tsx | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 13f40bb16d..986fd70b2e 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -539,6 +539,7 @@ let PostThreadItemLoaded = ({ timestamp={post.indexedAt} postHref={postHref} showAvatar={isThreadedChild} + avatarModeration={moderation.avatar} avatarSize={28} displayNameType="md-bold" displayNameStyle={isThreadedChild && s.ml2} diff --git a/src/view/com/util/PostMeta.tsx b/src/view/com/util/PostMeta.tsx index eef7094cd7..b9c3842b35 100644 --- a/src/view/com/util/PostMeta.tsx +++ b/src/view/com/util/PostMeta.tsx @@ -11,6 +11,7 @@ import {sanitizeHandle} from 'lib/strings/handles' import {isAndroid} from 'platform/detection' import {TimeElapsed} from './TimeElapsed' import {makeProfileLink} from 'lib/routes/links' +import {ModerationUI} from '@atproto/api' interface PostMetaOpts { author: { @@ -23,6 +24,7 @@ interface PostMetaOpts { postHref: string timestamp: string showAvatar?: boolean + avatarModeration?: ModerationUI avatarSize?: number displayNameType?: TypographyVariant displayNameStyle?: StyleProp @@ -41,7 +43,7 @@ let PostMeta = (opts: PostMetaOpts): React.ReactNode => { )} From 929987f8061ba55de84b65e40d4e1df747fe7028 Mon Sep 17 00:00:00 2001 From: snek Date: Wed, 27 Dec 2023 09:13:53 -0800 Subject: [PATCH 025/115] support multiple og:image tags (#2305) --- bskyweb/cmd/bskyweb/server.go | 6 +++++- bskyweb/templates/post.html | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/bskyweb/cmd/bskyweb/server.go b/bskyweb/cmd/bskyweb/server.go index b0fde2557f..7a3b8bf16a 100644 --- a/bskyweb/cmd/bskyweb/server.go +++ b/bskyweb/cmd/bskyweb/server.go @@ -336,7 +336,11 @@ func (srv *Server) WebPost(c echo.Context) error { data["postView"] = postView data["requestURI"] = fmt.Sprintf("https://%s%s", req.Host, req.URL.Path) if postView.Embed != nil && postView.Embed.EmbedImages_View != nil { - data["imgThumbUrl"] = postView.Embed.EmbedImages_View.Images[0].Thumb + var thumbUrls []string + for i := range postView.Embed.EmbedImages_View.Images { + thumbUrls = append(thumbUrls, postView.Embed.EmbedImages_View.Images[i].Thumb) + } + data["imgThumbUrls"] = thumbUrls } return c.Render(http.StatusOK, "post.html", data) } diff --git a/bskyweb/templates/post.html b/bskyweb/templates/post.html index 55a0679fbd..307f80bbb4 100644 --- a/bskyweb/templates/post.html +++ b/bskyweb/templates/post.html @@ -25,8 +25,10 @@ {% endif -%} - {%- if imgThumbUrl %} + {%- if imgThumbUrls %} + {% for imgThumbUrl in imgThumbUrls %} + {% endfor %} {%- elif postView.Author.Avatar %} {# Don't use avatar image in cards; usually looks bad #} From c91b9efccb77c107414cc9e912ba564eb1a4dc71 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 27 Dec 2023 11:19:47 -0600 Subject: [PATCH 026/115] Remove patched color scheme code (#2340) --- src/lib/ThemeContext.tsx | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/src/lib/ThemeContext.tsx b/src/lib/ThemeContext.tsx index 483c50c42d..38bd199cbd 100644 --- a/src/lib/ThemeContext.tsx +++ b/src/lib/ThemeContext.tsx @@ -1,9 +1,7 @@ -import {isWeb} from 'platform/detection' import React, {ReactNode, createContext, useContext} from 'react' import { - AppState, TextStyle, - useColorScheme as useColorScheme_BUGGY, + useColorScheme, ViewStyle, ColorSchemeName, } from 'react-native' @@ -97,37 +95,11 @@ function getTheme(theme: ColorSchemeName) { return theme === 'dark' ? darkTheme : defaultTheme } -/** - * With RN iOS, we can only "trust" the color scheme reported while the app is - * active. This is a workaround until the bug is fixed upstream. - * - * @see https://github.com/bluesky-social/social-app/pull/1417#issuecomment-1719868504 - * @see https://github.com/facebook/react-native/pull/39439 - */ -function useColorScheme_FIXED() { - const colorScheme = useColorScheme_BUGGY() - const [currentColorScheme, setCurrentColorScheme] = - React.useState(colorScheme) - - React.useEffect(() => { - // we don't need to be updating state on web - if (isWeb) return - const subscription = AppState.addEventListener('change', state => { - const isActive = state === 'active' - if (!isActive) return - setCurrentColorScheme(colorScheme) - }) - return () => subscription.remove() - }, [colorScheme]) - - return isWeb ? colorScheme : currentColorScheme -} - export const ThemeProvider: React.FC = ({ theme, children, }) => { - const colorScheme = useColorScheme_FIXED() + const colorScheme = useColorScheme() const themeValue = getTheme(theme === 'system' ? colorScheme : theme) return ( From f402f33a024ea59ea9bd2decfc0444e6836a934c Mon Sep 17 00:00:00 2001 From: Noritada Kobayashi Date: Thu, 28 Dec 2023 02:27:32 +0900 Subject: [PATCH 027/115] Mark more text as translatable (#2284) --- src/view/com/modals/Threadgate.tsx | 4 ++-- src/view/screens/PreferencesHomeFeed.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/view/com/modals/Threadgate.tsx b/src/view/com/modals/Threadgate.tsx index 9d78a2e6dc..0deef185b5 100644 --- a/src/view/com/modals/Threadgate.tsx +++ b/src/view/com/modals/Threadgate.tsx @@ -69,7 +69,7 @@ export function Component({ - Choose "Everybody" or "Nobody" + Choose "Everybody" or "Nobody" - Or combine these options: + Or combine these options: setFeedViewPref({ From b326e1d3bda7b32dfedf52356e96e9b8334c5158 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 28 Dec 2023 13:47:33 -0600 Subject: [PATCH 028/115] Web dropdowns (#2358) * Split out web dropdown * Remove unused * Remove unused style * Close on escape * Reduce chance of opening while scrolling * Tune web dropdown styles * Fix type --------- Co-authored-by: Paul Frazee --- .../com/util/forms/NativeDropdown.web.tsx | 241 ++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 src/view/com/util/forms/NativeDropdown.web.tsx diff --git a/src/view/com/util/forms/NativeDropdown.web.tsx b/src/view/com/util/forms/NativeDropdown.web.tsx new file mode 100644 index 0000000000..9e9888ad8b --- /dev/null +++ b/src/view/com/util/forms/NativeDropdown.web.tsx @@ -0,0 +1,241 @@ +import React from 'react' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import * as DropdownMenu from '@radix-ui/react-dropdown-menu' +import {Pressable, StyleSheet, View, Text} 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 {HITSLOP_10} from 'lib/constants' + +// Custom Dropdown Menu Components +// == +export const DropdownMenuRoot = DropdownMenu.Root +export const DropdownMenuContent = DropdownMenu.Content + +type ItemProps = React.ComponentProps<(typeof DropdownMenu)['Item']> +export const DropdownMenuItem = (props: ItemProps & {testID?: string}) => { + const theme = useTheme() + const [focused, setFocused] = React.useState(false) + const backgroundColor = theme.colorScheme === 'dark' ? '#fff1' : '#0001' + + return ( + { + setFocused(true) + }} + onBlur={() => { + setFocused(false) + }} + /> + ) +} + +// Types for Dropdown Menu and Items +export type DropdownItem = { + label: string | 'separator' + onPress?: () => void + testID?: string + icon?: { + ios: MenuItemCommonProps['ios'] + android: string + web: IconProp + } +} +type Props = { + items: DropdownItem[] + testID?: string + accessibilityLabel?: string + accessibilityHint?: string +} + +export function NativeDropdown({ + items, + children, + testID, + accessibilityLabel, + accessibilityHint, +}: React.PropsWithChildren) { + const pal = usePalette('default') + const theme = useTheme() + const dropDownBackgroundColor = + theme.colorScheme === 'dark' ? pal.btn : pal.view + const [open, setOpen] = React.useState(false) + const buttonRef = React.useRef(null) + const menuRef = React.useRef(null) + const {borderColor: separatorColor} = + theme.colorScheme === 'dark' ? pal.borderDark : pal.border + + React.useEffect(() => { + function clickHandler(e: MouseEvent) { + const t = e.target + + if (!open) return + if (!t) return + if (!buttonRef.current || !menuRef.current) return + + if ( + t !== buttonRef.current && + !buttonRef.current.contains(t as Node) && + t !== menuRef.current && + !menuRef.current.contains(t as Node) + ) { + // prevent clicking through to links beneath dropdown + // only applies to mobile web + e.preventDefault() + e.stopPropagation() + + // close menu + setOpen(false) + } + } + + function keydownHandler(e: KeyboardEvent) { + if (e.key === 'Escape' && open) { + setOpen(false) + } + } + + document.addEventListener('click', clickHandler, true) + window.addEventListener('keydown', keydownHandler, true) + return () => { + document.removeEventListener('click', clickHandler, true) + window.removeEventListener('keydown', keydownHandler, true) + } + }, [open, setOpen]) + + return ( + setOpen(o)}> + e.preventDefault()}> + } + testID={testID} + accessibilityRole="button" + accessibilityLabel={accessibilityLabel} + accessibilityHint={accessibilityHint} + onPress={() => setOpen(o => !o)} + hitSlop={HITSLOP_10}> + {children} + + + + + + {items.map((item, index) => { + if (item.label === 'separator') { + return ( + + ) + } + if (index > 1 && items[index - 1].label === 'separator') { + return ( + + + + {item.label} + + {item.icon && ( + + )} + + + ) + } + return ( + + + {item.label} + + {item.icon && ( + + )} + + ) + })} + + + + ) +} + +const getKey = (label: string, index: number, id?: string) => { + if (id) { + return id + } + return `${label}_${index}` +} + +const styles = StyleSheet.create({ + separator: { + height: 1, + marginTop: 4, + marginBottom: 4, + }, + content: { + backgroundColor: '#f0f0f0', + borderRadius: 8, + paddingTop: 4, + paddingBottom: 4, + paddingLeft: 4, + paddingRight: 4, + marginTop: 6, + + // @ts-ignore web only -prf + boxShadow: 'rgba(0, 0, 0, 0.3) 0px 5px 20px', + }, + item: { + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + columnGap: 20, + // @ts-ignore -web + cursor: 'pointer', + paddingTop: 8, + paddingBottom: 8, + paddingLeft: 12, + paddingRight: 12, + borderRadius: 8, + }, + itemTitle: { + fontSize: 16, + fontWeight: '500', + paddingRight: 10, + }, +}) From 40a110c5416de08bc8a929ecd7dd023028a869bf Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 28 Dec 2023 12:07:08 -0800 Subject: [PATCH 029/115] Temporarily disable the german translation (#2360) --- src/locale/helpers.ts | 5 +++-- src/locale/i18n.ts | 12 +++++++----- src/locale/i18n.web.ts | 9 +++++---- src/locale/languages.ts | 6 ++++-- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/locale/helpers.ts b/src/locale/helpers.ts index 5418e093fa..2e6868e6ca 100644 --- a/src/locale/helpers.ts +++ b/src/locale/helpers.ts @@ -116,8 +116,9 @@ export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage { return AppLanguage.ja case 'fr': return AppLanguage.fr - case 'de': - return AppLanguage.de + // DISABLED until this translation is fixed -prf + // case 'de': + // return AppLanguage.de case 'es': return AppLanguage.es default: diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts index 6f0a46888e..9a9407c4c3 100644 --- a/src/locale/i18n.ts +++ b/src/locale/i18n.ts @@ -6,7 +6,8 @@ import {messages as messagesEn} from '#/locale/locales/en/messages' import {messages as messagesHi} from '#/locale/locales/hi/messages' import {messages as messagesJa} from '#/locale/locales/ja/messages' import {messages as messagesFr} from '#/locale/locales/fr/messages' -import {messages as messagesDe} from '#/locale/locales/de/messages' +// DISABLED until this translation is fixed -prf +// import {messages as messagesDe} from '#/locale/locales/de/messages' import {messages as messagesEs} from '#/locale/locales/es/messages' import {sanitizeAppLanguageSetting} from '#/locale/helpers' @@ -29,10 +30,11 @@ export async function dynamicActivate(locale: AppLanguage) { i18n.loadAndActivate({locale, messages: messagesFr}) break } - case AppLanguage.de: { - i18n.loadAndActivate({locale, messages: messagesDe}) - break - } + // DISABLED until this translation is fixed -prf + // case AppLanguage.de: { + // i18n.loadAndActivate({locale, messages: messagesDe}) + // break + // } case AppLanguage.es: { i18n.loadAndActivate({locale, messages: messagesEs}) break diff --git a/src/locale/i18n.web.ts b/src/locale/i18n.web.ts index 08fda1e976..734f6a0de2 100644 --- a/src/locale/i18n.web.ts +++ b/src/locale/i18n.web.ts @@ -24,10 +24,11 @@ export async function dynamicActivate(locale: AppLanguage) { mod = await import(`./locales/fr/messages`) break } - case AppLanguage.de: { - mod = await import(`./locales/de/messages`) - break - } + // DISABLED until this translation is fixed -prf + // case AppLanguage.de: { + // mod = await import(`./locales/de/messages`) + // break + // } case AppLanguage.es: { mod = await import(`./locales/es/messages`) break diff --git a/src/locale/languages.ts b/src/locale/languages.ts index 91c4a1d179..d9cdbd9d4e 100644 --- a/src/locale/languages.ts +++ b/src/locale/languages.ts @@ -9,7 +9,8 @@ export enum AppLanguage { hi = 'hi', ja = 'ja', fr = 'fr', - de = 'de', + // DISABLED until this translation is fixed -prf + // de = 'de', es = 'es', } @@ -23,7 +24,8 @@ export const APP_LANGUAGES: AppLanguageConfig[] = [ {code2: AppLanguage.hi, name: 'हिंदी'}, {code2: AppLanguage.ja, name: '日本語'}, {code2: AppLanguage.fr, name: 'Français'}, - {code2: AppLanguage.de, name: 'Deutsch'}, + // DISABLED until this translation is fixed -prf + // {code2: AppLanguage.de, name: 'Deutsch'}, {code2: AppLanguage.es, name: 'Español'}, ] From f0532865ce1d5decc39cca6eeeea0d61ebd8d63d Mon Sep 17 00:00:00 2001 From: Hailey <153161762+haileyok@users.noreply.github.com> Date: Thu, 28 Dec 2023 12:58:28 -0800 Subject: [PATCH 030/115] minor search screen ux improvements (#2264) * handle taps while keyboard is displayed * dismiss keyboard on drag when searching feeds * dismiss on drag and persist taps on suggested follows * add hitslop to clear button * add hitslop to cancel button * dismiss keyboard on drag when searching users * hit slop for feed search clear button * move import --- src/view/com/util/forms/SearchInput.tsx | 4 +++- src/view/screens/Feeds.tsx | 2 ++ src/view/screens/Search/Search.tsx | 15 ++++++++++++--- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/view/com/util/forms/SearchInput.tsx b/src/view/com/util/forms/SearchInput.tsx index 02b462b55d..a88046d4c2 100644 --- a/src/view/com/util/forms/SearchInput.tsx +++ b/src/view/com/util/forms/SearchInput.tsx @@ -11,6 +11,7 @@ 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' @@ -71,7 +72,8 @@ export function SearchInput({ onPress={onPressCancelSearchInner} accessibilityRole="button" accessibilityLabel={_(msg`Clear search query`)} - accessibilityHint=""> + accessibilityHint="" + hitSlop={HITSLOP_10}> {hasSession && ( diff --git a/src/view/screens/Search/Search.tsx b/src/view/screens/Search/Search.tsx index b522edfba5..bdc324c4a9 100644 --- a/src/view/screens/Search/Search.tsx +++ b/src/view/screens/Search/Search.tsx @@ -162,6 +162,8 @@ function SearchScreenSuggestedFollows() { // @ts-ignore web only -prf desktopFixedHeight contentContainerStyle={{paddingBottom: 1200}} + keyboardShouldPersistTaps="handled" + keyboardDismissMode="on-drag" /> ) : ( @@ -572,7 +574,8 @@ export function SearchScreenMobile( onPress={onPressClearQuery} accessibilityRole="button" accessibilityLabel={_(msg`Clear search query`)} - accessibilityHint=""> + accessibilityHint="" + hitSlop={HITSLOP_10}> - + Cancel @@ -598,7 +604,10 @@ export function SearchScreenMobile( {isFetching ? ( ) : ( - + {searchResults.length ? ( searchResults.map((item, i) => ( Date: Thu, 28 Dec 2023 13:03:54 -0800 Subject: [PATCH 031/115] Disable spanish translation until it's more thoroughly reviewed (#2362) * Disable spanish translation until it's more thoroughly reviewed * missed a line --- src/locale/helpers.ts | 5 +++-- src/locale/i18n.ts | 12 +++++++----- src/locale/i18n.web.ts | 9 +++++---- src/locale/languages.ts | 6 ++++-- 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/locale/helpers.ts b/src/locale/helpers.ts index 2e6868e6ca..ef09e5e684 100644 --- a/src/locale/helpers.ts +++ b/src/locale/helpers.ts @@ -119,8 +119,9 @@ export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage { // DISABLED until this translation is fixed -prf // case 'de': // return AppLanguage.de - case 'es': - return AppLanguage.es + // DISABLED until this translation is more thoroughly reviewed -prf + // case 'es': + // return AppLanguage.es default: continue } diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts index 9a9407c4c3..164fce9fc7 100644 --- a/src/locale/i18n.ts +++ b/src/locale/i18n.ts @@ -8,7 +8,8 @@ import {messages as messagesJa} from '#/locale/locales/ja/messages' import {messages as messagesFr} from '#/locale/locales/fr/messages' // DISABLED until this translation is fixed -prf // import {messages as messagesDe} from '#/locale/locales/de/messages' -import {messages as messagesEs} from '#/locale/locales/es/messages' +// DISABLED until this translation is more thoroughly reviewed -prf +// import {messages as messagesEs} from '#/locale/locales/es/messages' import {sanitizeAppLanguageSetting} from '#/locale/helpers' import {AppLanguage} from '#/locale/languages' @@ -35,10 +36,11 @@ export async function dynamicActivate(locale: AppLanguage) { // i18n.loadAndActivate({locale, messages: messagesDe}) // break // } - case AppLanguage.es: { - i18n.loadAndActivate({locale, messages: messagesEs}) - break - } + // DISABLED until this translation is more thoroughly reviewed -prf + // case AppLanguage.es: { + // i18n.loadAndActivate({locale, messages: messagesEs}) + // break + // } default: { i18n.loadAndActivate({locale, messages: messagesEn}) break diff --git a/src/locale/i18n.web.ts b/src/locale/i18n.web.ts index 734f6a0de2..bf6f6e1964 100644 --- a/src/locale/i18n.web.ts +++ b/src/locale/i18n.web.ts @@ -29,10 +29,11 @@ export async function dynamicActivate(locale: AppLanguage) { // mod = await import(`./locales/de/messages`) // break // } - case AppLanguage.es: { - mod = await import(`./locales/es/messages`) - break - } + // DISABLED until this translation is more thoroughly reviewed -prf + // case AppLanguage.es: { + // mod = await import(`./locales/es/messages`) + // break + // } default: { mod = await import(`./locales/en/messages`) break diff --git a/src/locale/languages.ts b/src/locale/languages.ts index d9cdbd9d4e..d7559b5782 100644 --- a/src/locale/languages.ts +++ b/src/locale/languages.ts @@ -11,7 +11,8 @@ export enum AppLanguage { fr = 'fr', // DISABLED until this translation is fixed -prf // de = 'de', - es = 'es', + // DISABLED until this translation is more thoroughly reviewed -prf + // es = 'es', } interface AppLanguageConfig { @@ -26,7 +27,8 @@ export const APP_LANGUAGES: AppLanguageConfig[] = [ {code2: AppLanguage.fr, name: 'Français'}, // DISABLED until this translation is fixed -prf // {code2: AppLanguage.de, name: 'Deutsch'}, - {code2: AppLanguage.es, name: 'Español'}, + // DISABLED until this translation is more thoroughly reviewed -prf + // {code2: AppLanguage.es, name: 'Español'}, ] export const LANGUAGES: Language[] = [ From 363929b1a7defaff8e5224acfcb84cdce4fd1b9a Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 28 Dec 2023 13:41:23 -0800 Subject: [PATCH 032/115] Fix desktop styles a bit --- src/view/screens/Search/Search.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/view/screens/Search/Search.tsx b/src/view/screens/Search/Search.tsx index d1fe700b78..965ad2b7e8 100644 --- a/src/view/screens/Search/Search.tsx +++ b/src/view/screens/Search/Search.tsx @@ -519,7 +519,11 @@ export function SearchScreen( return ( {isTabletOrMobile && ( ) : ( - + {searchResults.length ? ( searchResults.map((item, i) => ( Date: Thu, 28 Dec 2023 16:13:51 -0600 Subject: [PATCH 033/115] Handle birth dates as UTC, handle locale formatting (#2363) * Enforce UTC for birthdate picker * Handle locales * Remove log * Add a second snap point to the date input in case text is zoomed * Guard against bad dates * Log message --------- Co-authored-by: Paul Frazee --- src/view/com/auth/create/Step2.tsx | 18 +++++++++++++++++- src/view/com/modals/BirthDateSettings.tsx | 3 ++- src/view/com/util/forms/DateInput.tsx | 13 ++++++++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/view/com/auth/create/Step2.tsx b/src/view/com/auth/create/Step2.tsx index 89fd070ad1..123b5f662e 100644 --- a/src/view/com/auth/create/Step2.tsx +++ b/src/view/com/auth/create/Step2.tsx @@ -13,6 +13,17 @@ import {isWeb} from 'platform/detection' import {Trans, msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useModalControls} from '#/state/modals' +import {logger} from '#/logger' + +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 +} /** STEP 2: Your account * @field Invite code or waitlist @@ -38,6 +49,10 @@ export function Step2({ openModal({name: 'waitlist'}) }, [openModal]) + const birthDate = React.useMemo(() => { + return sanitizeDate(uiState.birthDate) + }, [uiState.birthDate]) + return ( @@ -122,8 +137,9 @@ export function Step2({ Your birth date uiDispatch({type: 'set-birth-date', value})} buttonType="default-light" buttonStyle={[pal.border, styles.dateInputButton]} diff --git a/src/view/com/modals/BirthDateSettings.tsx b/src/view/com/modals/BirthDateSettings.tsx index c78f06ed43..1505d224fd 100644 --- a/src/view/com/modals/BirthDateSettings.tsx +++ b/src/view/com/modals/BirthDateSettings.tsx @@ -23,7 +23,7 @@ import { } from '#/state/queries/preferences' import {logger} from '#/logger' -export const snapPoints = ['50%'] +export const snapPoints = ['50%', '90%'] function Inner({preferences}: {preferences: UsePreferencesQueryResponse}) { const pal = usePalette('default') @@ -63,6 +63,7 @@ function Inner({preferences}: {preferences: UsePreferencesQueryResponse}) { { + return new Intl.DateTimeFormat(LOCALE.languageTag, { + timeZone: props.handleAsUTC ? 'UTC' : undefined, + }) + }, [props.handleAsUTC]) + const onChangeInternal = useCallback( (event: DateTimePickerEvent, date: Date | undefined) => { setShow(false) @@ -64,7 +74,7 @@ export function DateInput(props: Props) { - {props.value.toLocaleDateString()} + {formatter.format(props.value)} @@ -73,6 +83,7 @@ export function DateInput(props: Props) { Date: Thu, 28 Dec 2023 15:46:37 -0800 Subject: [PATCH 034/115] Disable BlurView on android (#2351) * A couple of small tweaks * Force the UI to re-render by setting a key * Disable to blurview on android * Remove hackfix --- .../com/modals/report/InputIssueDetails.tsx | 3 +- src/view/com/modals/report/Modal.tsx | 6 ++-- src/view/com/util/BlurView.android.tsx | 30 +++++++++++++++++++ 3 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 src/view/com/util/BlurView.android.tsx diff --git a/src/view/com/modals/report/InputIssueDetails.tsx b/src/view/com/modals/report/InputIssueDetails.tsx index 2f701b7995..2bc86f75e7 100644 --- a/src/view/com/modals/report/InputIssueDetails.tsx +++ b/src/view/com/modals/report/InputIssueDetails.tsx @@ -42,7 +42,8 @@ export function InputIssueDetails({ accessibilityHint="Add more details to your report"> - Back + {' '} + Back diff --git a/src/view/com/modals/report/Modal.tsx b/src/view/com/modals/report/Modal.tsx index 60c3f06b77..afd0d417dc 100644 --- a/src/view/com/modals/report/Modal.tsx +++ b/src/view/com/modals/report/Modal.tsx @@ -44,9 +44,9 @@ export function Component(content: ReportComponentProps) { const {isMobile} = useWebMediaQueries() const [isProcessing, setIsProcessing] = useState(false) const [showDetailsInput, setShowDetailsInput] = useState(false) - const [error, setError] = useState() - const [issue, setIssue] = useState() - const [details, setDetails] = useState() + const [error, setError] = useState('') + const [issue, setIssue] = useState('') + const [details, setDetails] = useState('') const isAccountReport = 'did' in content const subjectKey = isAccountReport ? content.did : content.uri const atUri = useMemo( diff --git a/src/view/com/util/BlurView.android.tsx b/src/view/com/util/BlurView.android.tsx new file mode 100644 index 0000000000..eee1d9d867 --- /dev/null +++ b/src/view/com/util/BlurView.android.tsx @@ -0,0 +1,30 @@ +import React from 'react' +import {StyleSheet, View, ViewProps} from 'react-native' +import {addStyle} from 'lib/styles' + +type BlurViewProps = ViewProps & { + blurType?: 'dark' | 'light' + blurAmount?: number +} + +export const BlurView = ({ + style, + blurType, + ...props +}: React.PropsWithChildren) => { + if (blurType === 'dark') { + style = addStyle(style, styles.dark) + } else { + style = addStyle(style, styles.light) + } + return +} + +const styles = StyleSheet.create({ + dark: { + backgroundColor: '#0008', + }, + light: { + backgroundColor: '#fff8', + }, +}) From 2a369e7e479d9ca1f17bf670eeb4b52d5682f362 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 28 Dec 2023 15:46:50 -0800 Subject: [PATCH 035/115] Disable page-transition animations on android (#2352) --- src/Navigation.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Navigation.tsx b/src/Navigation.tsx index c9f9272194..27174a31f0 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -26,7 +26,7 @@ import {BottomBar} from './view/shell/bottom-bar/BottomBar' import {buildStateObject} from 'lib/routes/helpers' import {State, RouteParams} from 'lib/routes/types' import {colors} from 'lib/styles' -import {isNative} from 'platform/detection' +import {isAndroid, isNative} from 'platform/detection' import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle' import {router} from './routes' import {usePalette} from 'lib/hooks/usePalette' @@ -286,6 +286,7 @@ function HomeTabNavigator() { return ( Date: Thu, 28 Dec 2023 15:47:05 -0800 Subject: [PATCH 036/115] Use memory caching for android lightbox (#2354) --- .../ImageViewing/components/ImageItem/ImageItem.android.tsx | 1 + 1 file changed, 1 insertion(+) 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 ea740ec912..003ad61ba6 100644 --- a/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.android.tsx +++ b/src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.android.tsx @@ -320,6 +320,7 @@ const ImageItem = ({ accessibilityLabel={imageSrc.alt} accessibilityHint="" onLoad={() => setIsLoaded(true)} + cachePolicy="memory" /> From 709b0b60029f1d6d9f18f81788a1420c69591959 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 28 Dec 2023 15:47:39 -0800 Subject: [PATCH 037/115] Fix sizing of the leftnav new post btn (#2248) --- src/view/shell/desktop/LeftNav.tsx | 41 +++++++++++++++++------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/src/view/shell/desktop/LeftNav.tsx b/src/view/shell/desktop/LeftNav.tsx index f3c8c1d110..3925b51808 100644 --- a/src/view/shell/desktop/LeftNav.tsx +++ b/src/view/shell/desktop/LeftNav.tsx @@ -239,24 +239,26 @@ function ComposeBtn() { return null } return ( - - - - - - New Post - - + + + + + + + New Post + + + ) } @@ -512,6 +514,9 @@ const styles = StyleSheet.create({ fontSize: 14, }, + newPostBtnContainer: { + flexDirection: 'row', + }, newPostBtn: { flexDirection: 'row', alignItems: 'center', From 9e330d2c6a2c4c1ffd0f1fc01e6ce910b1453422 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 28 Dec 2023 15:48:55 -0800 Subject: [PATCH 038/115] Create account tweaks (#2365) * Disable autocomplete, autocapitalize, and autocorrect in create account login * Add username textContentType to login to try to prompt password manager more regularly * Fix type --- src/view/com/auth/create/Step2.tsx | 9 +++++++++ src/view/com/auth/login/LoginForm.tsx | 1 + src/view/screens/Search/Search.tsx | 1 + 3 files changed, 11 insertions(+) diff --git a/src/view/com/auth/create/Step2.tsx b/src/view/com/auth/create/Step2.tsx index 123b5f662e..8b143ff37c 100644 --- a/src/view/com/auth/create/Step2.tsx +++ b/src/view/com/auth/create/Step2.tsx @@ -71,6 +71,9 @@ export function Step2({ onChange={value => uiDispatch({type: 'set-invite-code', value})} accessibilityLabel={_(msg`Invite code`)} accessibilityHint="Input invite code to proceed" + autoCapitalize="none" + autoComplete="off" + autoCorrect={false} /> )} @@ -105,6 +108,9 @@ export function Step2({ accessibilityLabel={_(msg`Email`)} accessibilityHint="Input email for Bluesky waitlist" accessibilityLabelledBy="email" + autoCapitalize="none" + autoComplete="off" + autoCorrect={false} /> @@ -126,6 +132,9 @@ export function Step2({ accessibilityLabel={_(msg`Password`)} accessibilityHint="Set password" accessibilityLabelledBy="password" + autoCapitalize="none" + autoComplete="off" + autoCorrect={false} /> diff --git a/src/view/com/auth/login/LoginForm.tsx b/src/view/com/auth/login/LoginForm.tsx index a39d0d9bfe..727a0e9456 100644 --- a/src/view/com/auth/login/LoginForm.tsx +++ b/src/view/com/auth/login/LoginForm.tsx @@ -174,6 +174,7 @@ export const LoginForm = ({ autoCorrect={false} autoComplete="username" returnKeyType="next" + textContentType="username" onSubmitEditing={() => { passwordInputRef.current?.focus() }} diff --git a/src/view/screens/Search/Search.tsx b/src/view/screens/Search/Search.tsx index df3c382676..da3a82a4d3 100644 --- a/src/view/screens/Search/Search.tsx +++ b/src/view/screens/Search/Search.tsx @@ -612,6 +612,7 @@ export function SearchScreen( ) : ( From 7634b581dd91ffe99226c578378605af6367a1c1 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 28 Dec 2023 15:52:38 -0800 Subject: [PATCH 039/115] 1.62 --- app.config.js | 2 +- package.json | 2 +- src/locale/locales/de/messages.po | 234 ++++++++++++++++-------------- src/locale/locales/en/messages.po | 234 ++++++++++++++++-------------- src/locale/locales/es/messages.po | 234 ++++++++++++++++-------------- src/locale/locales/fr/messages.po | 234 ++++++++++++++++-------------- src/locale/locales/hi/messages.po | 234 ++++++++++++++++-------------- src/locale/locales/ja/messages.po | 234 ++++++++++++++++-------------- 8 files changed, 734 insertions(+), 674 deletions(-) diff --git a/app.config.js b/app.config.js index 831791c2d6..e290c07c92 100644 --- a/app.config.js +++ b/app.config.js @@ -9,7 +9,7 @@ module.exports = function () { /** * iOS build number. Must be incremented for each TestFlight version. */ - const IOS_BUILD_NUMBER = '3' + const IOS_BUILD_NUMBER = '1' /** * Android build number. Must be incremented for each release. diff --git a/package.json b/package.json index b7e12e3a4a..01f3a02bc9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bsky.app", - "version": "1.61.0", + "version": "1.62.0", "private": true, "engines": { "node": ">=18" diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index 2298624853..38ae34dd7d 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: src/view/shell/desktop/RightNav.tsx:160 +#: src/view/shell/desktop/RightNav.tsx:168 msgid "{0, plural, one {# invite code available} other {# invite codes available}}" msgstr "" @@ -25,7 +25,7 @@ msgstr "{0}" msgid "{0} {purposeLabel} List" msgstr "{0} {purposeLabel} Liste" -#: src/view/shell/desktop/RightNav.tsx:143 +#: src/view/shell/desktop/RightNav.tsx:151 msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" msgstr "" @@ -79,7 +79,7 @@ msgstr "Konto Optionen" #: src/view/com/modals/ListAddRemoveUsers.tsx:264 #: src/view/com/modals/UserAddRemoveLists.tsx:193 -#: src/view/screens/ProfileList.tsx:754 +#: src/view/screens/ProfileList.tsx:763 msgid "Add" msgstr "Hinzufügen" @@ -87,7 +87,7 @@ msgstr "Hinzufügen" msgid "Add a content warning" msgstr "Eine Inhaltswarnung hinzufügen" -#: src/view/screens/ProfileList.tsx:744 +#: src/view/screens/ProfileList.tsx:753 msgid "Add a user to this list" msgstr "Einen Benutzer zu dieser Liste hinzufügen" @@ -126,7 +126,7 @@ msgstr "Fügen Sie den folgenden DNS-Eintrag zu Ihrem Domainnamen hinzu:" msgid "Add to Lists" msgstr "Den Listen hinzufügen" -#: src/view/screens/ProfileFeed.tsx:270 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Add to my feeds" msgstr "Zu meinen Feeds hinzufügen" @@ -167,7 +167,7 @@ msgstr "Es wurde eine E-Mail an {0} gesendet. Sie enthält einen Bestätigungsco msgid "An email has been sent to your previous address, {0}. It includes a confirmation code which you can enter below." msgstr "Es wurde eine E-Mail an Ihre frühere Adresse {0} gesendet. Sie enthält einen Bestätigungscode, den Sie unten eingeben können." -#: src/view/com/notifications/FeedItem.tsx:236 +#: src/view/com/notifications/FeedItem.tsx:237 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "und" @@ -216,7 +216,7 @@ msgstr "Sind Sie sicher, dass Sie das App-Passwort \"{name}\" löschen möchten? msgid "Are you sure you'd like to discard this draft?" msgstr "Sind Sie sicher, dass Sie diesen Entwurf verwerfen möchten?" -#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:353 msgid "Are you sure?" msgstr "Sind Sie sicher?" @@ -231,9 +231,9 @@ msgstr "Künstlerische oder nicht-erotische Nacktheit." #: src/view/com/auth/create/CreateAccount.tsx:141 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:166 -#: src/view/com/auth/login/LoginForm.tsx:249 +#: src/view/com/auth/login/LoginForm.tsx:250 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 -#: src/view/com/modals/report/InputIssueDetails.tsx:45 +#: src/view/com/modals/report/InputIssueDetails.tsx:46 #: src/view/com/post-thread/PostThread.tsx:388 #: src/view/com/post-thread/PostThread.tsx:438 #: src/view/com/post-thread/PostThread.tsx:446 @@ -245,8 +245,8 @@ msgstr "Zurück" msgid "Basics" msgstr "Grundlagen" -#: src/view/com/auth/create/Step2.tsx:131 -#: src/view/com/modals/BirthDateSettings.tsx:72 +#: src/view/com/auth/create/Step2.tsx:156 +#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "Geburtstag" @@ -259,15 +259,15 @@ msgstr "Geburtstag:" msgid "Block Account" msgstr "Konto sperren" -#: src/view/screens/ProfileList.tsx:522 +#: src/view/screens/ProfileList.tsx:523 msgid "Block accounts" msgstr "Kontos sperren" -#: src/view/screens/ProfileList.tsx:472 +#: src/view/screens/ProfileList.tsx:473 msgid "Block list" msgstr " Liste sperren" -#: src/view/screens/ProfileList.tsx:307 +#: src/view/screens/ProfileList.tsx:308 msgid "Block these accounts?" msgstr "Diese Kontos sperren?" @@ -291,7 +291,7 @@ msgstr "Gesperrte Konten können nicht in Ihren Beiträgen antworten, Sie erwäh msgid "Blocked post." msgstr "Gesperrter Posten." -#: src/view/screens/ProfileList.tsx:309 +#: src/view/screens/ProfileList.tsx:310 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 Ihren Beiträgen antworten, Sie erwähnen oder anderweitig mit Ihnen interagieren." @@ -360,7 +360,7 @@ msgstr "Darf nur Buchstaben, Zahlen, Leerzeichen, Bindestriche und Unterstriche #: src/view/com/modals/LinkWarning.tsx:85 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 -#: src/view/screens/Search/Search.tsx:584 +#: src/view/screens/Search/Search.tsx:601 #: src/view/shell/desktop/Search.tsx:182 msgid "Cancel" msgstr "Abbrechen" @@ -432,6 +432,10 @@ msgstr "Sehen Sie sich einige empfohlene Benutzer an. Folgen Sie ihnen, um ähnl msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Prüfen Sie Ihren Posteingang auf eine E-Mail mit dem Bestätigungscode, den Sie unten eingeben müssen:" +#: src/view/com/modals/Threadgate.tsx:72 +msgid "Choose \"Everybody\" or \"Nobody\"" +msgstr "" + #: src/view/com/modals/ServerInput.tsx:38 msgid "Choose Service" msgstr "Service auswählen" @@ -440,7 +444,7 @@ msgstr "Service auswählen" msgid "Choose the algorithms that power your experience with custom feeds." msgstr "Wählen Sie die Algorithmen, die Ihr Erlebnis mit benutzerdefinierten Feeds unterstützen." -#: src/view/com/auth/create/Step2.tsx:106 +#: src/view/com/auth/create/Step2.tsx:127 msgid "Choose your password" msgstr "Wählen Sie Ihr Passwort" @@ -460,8 +464,8 @@ msgstr "Alle alten Speicherdaten löschen" msgid "Clear all storage data (restart after this)" msgstr "Alle alten Speicherdaten löschen (danach neu starten)" -#: src/view/com/util/forms/SearchInput.tsx:73 -#: src/view/screens/Search/Search.tsx:569 +#: src/view/com/util/forms/SearchInput.tsx:74 +#: src/view/screens/Search/Search.tsx:582 msgid "Clear search query" msgstr "Suchanfrage löschen" @@ -522,7 +526,7 @@ msgid "Confirmation code" msgstr "Bestätigungscode" #: src/view/com/auth/create/CreateAccount.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:268 +#: src/view/com/auth/login/LoginForm.tsx:269 msgid "Connecting..." msgstr "Verbinden..." @@ -561,7 +565,7 @@ msgstr "Kopiert" msgid "Copy" msgstr "Kopie" -#: src/view/screens/ProfileList.tsx:384 +#: src/view/screens/ProfileList.tsx:385 msgid "Copy link to list" msgstr "Link zur Liste kopieren" @@ -581,11 +585,11 @@ msgstr "Posten Text kopieren" msgid "Copyright Policy" msgstr "Urheberrechtspolitik" -#: src/view/screens/ProfileFeed.tsx:94 +#: src/view/screens/ProfileFeed.tsx:95 msgid "Could not load feed" msgstr "Feed konnte nicht geladen werden" -#: src/view/screens/ProfileList.tsx:830 +#: src/view/screens/ProfileList.tsx:839 msgid "Could not load list" msgstr "Liste konnte nicht geladen werden" @@ -629,8 +633,8 @@ msgstr "Konto löschen" msgid "Delete app password" msgstr "App-Passwort löschen" -#: src/view/screens/ProfileList.tsx:351 -#: src/view/screens/ProfileList.tsx:411 +#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:412 msgid "Delete List" msgstr "Liste löschen" @@ -729,7 +733,7 @@ msgstr "Jeder Code funktioniert einmal. Sie werden regelmäßig weitere Einladun msgid "Edit image" msgstr "Bild bearbeiten" -#: src/view/screens/ProfileList.tsx:399 +#: src/view/screens/ProfileList.tsx:400 msgid "Edit list details" msgstr "Listendetails bearbeiten" @@ -754,14 +758,14 @@ msgstr "Profil bearbeiten" msgid "Edit Saved Feeds" msgstr "Gespeicherte Feeds bearbeiten" -#: src/view/com/auth/create/Step2.tsx:90 +#: src/view/com/auth/create/Step2.tsx:108 #: src/view/com/auth/login/ForgotPasswordForm.tsx:148 #: src/view/com/modals/ChangeEmail.tsx:141 #: src/view/com/modals/Waitlist.tsx:88 msgid "Email" msgstr "E-Mail" -#: src/view/com/auth/create/Step2.tsx:81 +#: src/view/com/auth/create/Step2.tsx:99 msgid "Email address" msgstr "E-Mail Adresse" @@ -793,7 +797,7 @@ msgstr "Geben Sie die zu verwendende Domain ein" 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 "Geben Sie die E-Mail-Adresse ein, die Sie zur Erstellung Ihres Kontos verwendet haben. Wir senden Ihnen einen \"Reset-Code\" zu, mit dem Sie ein neues Passwort festlegen können." -#: src/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:104 msgid "Enter your email address" msgstr "Geben Sie Ihre E-Mail Adresse ein" @@ -822,7 +826,7 @@ msgstr "Alt-Text erweitern" msgid "Failed to load recommended feeds" msgstr "Empfohlene Feeds konnten nicht geladen werden" -#: src/view/screens/Feeds.tsx:554 +#: src/view/screens/Feeds.tsx:556 msgid "Feed offline" msgstr "Feed offline" @@ -830,7 +834,7 @@ msgstr "Feed offline" msgid "Feed Preferences" msgstr "Feed-Einstellungen" -#: src/view/shell/desktop/RightNav.tsx:65 +#: src/view/shell/desktop/RightNav.tsx:73 #: src/view/shell/Drawer.tsx:311 msgid "Feedback" msgstr "Rückmeldung" @@ -838,7 +842,7 @@ msgstr "Rückmeldung" #: src/view/screens/Feeds.tsx:475 #: src/view/screens/Profile.tsx:165 #: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:340 +#: src/view/shell/desktop/LeftNav.tsx:342 #: src/view/shell/Drawer.tsx:474 #: src/view/shell/Drawer.tsx:475 msgid "Feeds" @@ -852,11 +856,11 @@ msgstr "Feeds werden von Nutzern erstellt, um Inhalte zu kuratieren. Wählen Sie msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Feeds sind benutzerdefinierte Algorithmen, die von den Nutzern mit ein wenig Programmierkenntnissen erstellt werden. <0/> für weitere Informationen." -#: src/view/screens/Search/Search.tsx:414 +#: src/view/screens/Search/Search.tsx:427 msgid "Find users on Bluesky" msgstr "Benutzer auf Bluesky finden" -#: src/view/screens/Search/Search.tsx:412 +#: src/view/screens/Search/Search.tsx:425 msgid "Find users with the search tool on the right" msgstr "Benutzer mit der Suchfunktion auf der rechten Seite finden" @@ -913,11 +917,11 @@ msgstr "Aus Sicherheitsgründen müssen wir Ihnen einen Bestätigungscode an Ihr 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 können Sie es nicht mehr einsehen. Wenn Sie dieses Passwort verlieren, müssen Sie ein neues generieren." -#: src/view/com/auth/login/LoginForm.tsx:231 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Forgot" msgstr "Vergessen" -#: src/view/com/auth/login/LoginForm.tsx:228 +#: src/view/com/auth/login/LoginForm.tsx:229 msgid "Forgot password" msgstr "Passwort vergessen" @@ -941,15 +945,15 @@ msgstr "Anfangen" msgid "Go back" msgstr "Zurückgehen" -#: src/view/screens/ProfileFeed.tsx:103 -#: src/view/screens/ProfileFeed.tsx:108 -#: src/view/screens/ProfileList.tsx:839 -#: src/view/screens/ProfileList.tsx:844 +#: src/view/screens/ProfileFeed.tsx:104 +#: src/view/screens/ProfileFeed.tsx:109 +#: src/view/screens/ProfileList.tsx:848 +#: src/view/screens/ProfileList.tsx:853 msgid "Go Back" msgstr "Zurückgehen" #: src/view/com/auth/login/ForgotPasswordForm.tsx:181 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:279 #: src/view/com/auth/login/SetNewPasswordForm.tsx:163 msgid "Go to next" msgstr "Weiter zum nächsten" @@ -958,7 +962,7 @@ msgstr "Weiter zum nächsten" msgid "Handle" msgstr "Handgriff" -#: src/view/shell/desktop/RightNav.tsx:94 +#: src/view/shell/desktop/RightNav.tsx:102 #: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "Hilfe" @@ -967,7 +971,7 @@ msgstr "Hilfe" msgid "Here is your app password." msgstr "Hier ist Ihr App-Passwort." -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:324 #: src/view/com/util/moderation/ContentHider.tsx:103 msgid "Hide" msgstr "Ausblenden" @@ -980,7 +984,7 @@ msgstr "" msgid "Hide this post?" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:308 +#: src/view/com/notifications/FeedItem.tsx:316 msgid "Hide user list" msgstr "Benutzerliste ausblenden" @@ -1005,7 +1009,7 @@ msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, wir haben Probleme, diesen Feed zu finden. Vielleicht wurde er gelöscht." #: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:304 +#: src/view/shell/desktop/LeftNav.tsx:306 #: src/view/shell/Drawer.tsx:398 #: src/view/shell/Drawer.tsx:399 msgid "Home" @@ -1060,7 +1064,7 @@ msgstr "Einladung" msgid "Invite a Friend" msgstr "Einen Freund einladen" -#: src/view/com/auth/create/Step2.tsx:57 +#: src/view/com/auth/create/Step2.tsx:72 msgid "Invite code" msgstr "Einladungscode" @@ -1080,8 +1084,8 @@ msgstr "Arbeitsplätze" msgid "Join the waitlist" msgstr "Auf die Warteliste setzen" -#: src/view/com/auth/create/Step2.tsx:68 -#: src/view/com/auth/create/Step2.tsx:72 +#: src/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:90 msgid "Join the waitlist." msgstr "Auf die Warteliste setzen" @@ -1141,7 +1145,7 @@ msgstr "Lassen Sie Ihr Passwort zurücksetzen!" msgid "Library" msgstr "Bibliothek" -#: src/view/screens/ProfileFeed.tsx:577 +#: src/view/screens/ProfileFeed.tsx:586 msgid "Like this feed" msgstr "Dieser Feed gefallen" @@ -1163,7 +1167,7 @@ msgid "List Name" msgstr "Namen auflisten" #: src/view/screens/Profile.tsx:166 -#: src/view/shell/desktop/LeftNav.tsx:377 +#: src/view/shell/desktop/LeftNav.tsx:379 #: src/view/shell/Drawer.tsx:490 #: src/view/shell/Drawer.tsx:491 msgid "Lists" @@ -1174,7 +1178,7 @@ msgstr "Listen" msgid "Load more posts" msgstr "Mehr Beiträge laden" -#: src/view/screens/Notifications.tsx:144 +#: src/view/screens/Notifications.tsx:148 msgid "Load new notifications" msgstr "Neue Benachrichtigungen laden" @@ -1218,7 +1222,7 @@ msgstr "genannte Nutzer" msgid "Mentioned users" msgstr "Genannte Nutzer" -#: src/view/screens/Search/Search.tsx:529 +#: src/view/screens/Search/Search.tsx:537 msgid "Menu" msgstr "Menü" @@ -1228,7 +1232,7 @@ msgstr "Meldung vom Server" #: src/view/screens/Moderation.tsx:64 #: src/view/screens/Settings.tsx:563 -#: src/view/shell/desktop/LeftNav.tsx:395 +#: src/view/shell/desktop/LeftNav.tsx:397 #: src/view/shell/Drawer.tsx:509 #: src/view/shell/Drawer.tsx:510 msgid "Moderation" @@ -1247,8 +1251,8 @@ msgid "More feeds" msgstr "Mehr Feeds " #: src/view/com/profile/ProfileHeader.tsx:548 -#: src/view/screens/ProfileFeed.tsx:360 -#: src/view/screens/ProfileList.tsx:583 +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileList.tsx:584 msgid "More options" msgstr "Mehr Optionen" @@ -1256,15 +1260,15 @@ msgstr "Mehr Optionen" msgid "Mute Account" msgstr "Stummes Konto" -#: src/view/screens/ProfileList.tsx:510 +#: src/view/screens/ProfileList.tsx:511 msgid "Mute accounts" msgstr "Stummes Konto" -#: src/view/screens/ProfileList.tsx:457 +#: src/view/screens/ProfileList.tsx:458 msgid "Mute list" msgstr "Stumme Liste" -#: src/view/screens/ProfileList.tsx:270 +#: src/view/screens/ProfileList.tsx:271 msgid "Mute these accounts?" msgstr "Diese Konten stummschalten?" @@ -1284,7 +1288,7 @@ msgstr "Stumme Kontos" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Bei stummgeschalteten Konten werden deren Beiträge aus deinem Feed und deinen Benachrichtigungen entfernt. Stummschaltungen sind vollständig privat." -#: src/view/screens/ProfileList.tsx:272 +#: src/view/screens/ProfileList.tsx:273 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "Stummschalten ist privat. Stummgeschaltete Konten können mit Ihnen interagieren, aber Sie sehen ihre Beiträge nicht und erhalten keine Benachrichtigungen von ihnen." @@ -1319,23 +1323,23 @@ msgid "New" msgstr "Neu" #: src/view/com/feeds/FeedPage.tsx:200 -#: src/view/screens/Feeds.tsx:505 +#: src/view/screens/Feeds.tsx:507 #: src/view/screens/Profile.tsx:354 -#: src/view/screens/ProfileFeed.tsx:430 -#: src/view/screens/ProfileList.tsx:193 -#: src/view/screens/ProfileList.tsx:221 -#: src/view/shell/desktop/LeftNav.tsx:247 +#: src/view/screens/ProfileFeed.tsx:431 +#: src/view/screens/ProfileList.tsx:194 +#: src/view/screens/ProfileList.tsx:222 +#: src/view/shell/desktop/LeftNav.tsx:248 msgid "New post" msgstr "Neuer Posten " -#: src/view/shell/desktop/LeftNav.tsx:257 +#: src/view/shell/desktop/LeftNav.tsx:258 msgid "New Post" msgstr "Neuer Posten " #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 -#: src/view/com/auth/login/LoginForm.tsx:281 +#: src/view/com/auth/login/LoginForm.tsx:282 #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -1346,14 +1350,15 @@ msgstr "Nächster" msgid "Next image" msgstr "Nächstes Bild " +#: src/view/screens/PreferencesHomeFeed.tsx:120 #: src/view/screens/PreferencesHomeFeed.tsx:191 #: src/view/screens/PreferencesHomeFeed.tsx:226 #: src/view/screens/PreferencesHomeFeed.tsx:263 msgid "No" msgstr "Nein" -#: src/view/screens/ProfileFeed.tsx:570 -#: src/view/screens/ProfileList.tsx:711 +#: src/view/screens/ProfileFeed.tsx:579 +#: src/view/screens/ProfileList.tsx:720 msgid "No description" msgstr "Ohne Beschreibung" @@ -1366,9 +1371,9 @@ msgid "No results found for \"{query}\"" msgstr "Keine Ergebnisse gefunden für \"{query}\"" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:263 -#: src/view/screens/Search/Search.tsx:291 -#: src/view/screens/Search/Search.tsx:607 +#: src/view/screens/Search/Search.tsx:270 +#: src/view/screens/Search/Search.tsx:298 +#: src/view/screens/Search/Search.tsx:629 #: src/view/shell/desktop/Search.tsx:210 msgid "No results found for {query}" msgstr "Keine Ergebnisse gefunden für {query}" @@ -1385,10 +1390,10 @@ msgstr "Nicht anwendbar." 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 nur die Sichtbarkeit Ihrer Inhalte auf der Bluesky-App und -Website ein, und andere Apps respektieren diese Einstellung möglicherweise nicht. Deine Inhalte können für abgemeldete Benutzer von anderen Apps und Websites weiterhin angezeigt werden." -#: src/view/screens/Notifications.tsx:109 -#: src/view/screens/Notifications.tsx:133 +#: src/view/screens/Notifications.tsx:113 +#: src/view/screens/Notifications.tsx:137 #: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:359 +#: src/view/shell/desktop/LeftNav.tsx:361 #: src/view/shell/Drawer.tsx:435 #: src/view/shell/Drawer.tsx:436 msgid "Notifications" @@ -1418,7 +1423,7 @@ msgstr "Offene Navigation" msgid "Opens configurable language settings" msgstr "Öffnet die konfigurierbaren Spracheinstellungen" -#: src/view/shell/desktop/RightNav.tsx:148 +#: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" msgstr "Öffnet die Liste der Einladungscodes" @@ -1455,6 +1460,10 @@ msgstr "Öffnet die Systemprotokollseite" msgid "Opens the threads preferences" msgstr "Öffnet die Thread-Einstellungen" +#: src/view/com/modals/Threadgate.tsx:89 +msgid "Or combine these options:" +msgstr "" + #: src/view/com/auth/login/ChooseAccountForm.tsx:138 msgid "Other account" msgstr "Anderes Konto " @@ -1472,9 +1481,9 @@ msgstr "Andere..." msgid "Page not found" msgstr "Seite nicht gefunden" -#: src/view/com/auth/create/Step2.tsx:101 -#: src/view/com/auth/create/Step2.tsx:111 -#: src/view/com/auth/login/LoginForm.tsx:216 +#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:132 +#: src/view/com/auth/login/LoginForm.tsx:217 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 #: src/view/com/modals/DeleteAccount.tsx:191 msgid "Password" @@ -1576,7 +1585,7 @@ msgstr "Primäre Sprache" msgid "Prioritize Your Follows" msgstr "Priorisieren Sie Ihre Anhängerschaft" -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "Privatsphäre" @@ -1591,7 +1600,7 @@ msgid "Processing..." msgstr "Verarbeitung..." #: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:413 +#: src/view/shell/desktop/LeftNav.tsx:415 #: src/view/shell/Drawer.tsx:70 #: src/view/shell/Drawer.tsx:544 #: src/view/shell/Drawer.tsx:545 @@ -1653,7 +1662,7 @@ msgstr "Feed entfernen" #: src/view/com/feeds/FeedSourceCard.tsx:105 #: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/screens/ProfileFeed.tsx:270 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Remove from my feeds" msgstr "Aus meinen Feeds entfernen" @@ -1698,11 +1707,11 @@ msgstr "Bericht {Sammlungsname}" msgid "Report Account" msgstr "Bericht Konto" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:291 msgid "Report feed" msgstr "Bericht Feed" -#: src/view/screens/ProfileList.tsx:425 +#: src/view/screens/ProfileList.tsx:426 msgid "Report List" msgstr "Bericht Liste" @@ -1729,7 +1738,7 @@ msgstr "Nachgetragen von" msgid "Request Change" msgstr "Änderung beantragen" -#: src/view/com/auth/create/Step2.tsx:53 +#: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" msgstr "Für diesen Anbieter erforderlich" @@ -1759,16 +1768,16 @@ msgstr "Setzt den Zustand der Einstellungen zurück" #: src/view/com/auth/create/CreateAccount.tsx:163 #: src/view/com/auth/create/CreateAccount.tsx:167 -#: src/view/com/auth/login/LoginForm.tsx:258 -#: src/view/com/auth/login/LoginForm.tsx:261 +#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:65 msgid "Retry" msgstr "Wiederholung" #: src/view/com/modals/AltImage.tsx:115 -#: src/view/com/modals/BirthDateSettings.tsx:93 -#: src/view/com/modals/BirthDateSettings.tsx:96 +#: 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:249 #: src/view/com/modals/CreateOrEditList.tsx:257 @@ -1797,11 +1806,11 @@ msgid "Saved Feeds" msgstr "Gespeicherte Feeds" #: src/view/com/modals/ListAddRemoveUsers.tsx:75 -#: src/view/com/util/forms/SearchInput.tsx:64 -#: src/view/screens/Search/Search.tsx:393 -#: src/view/screens/Search/Search.tsx:559 +#: src/view/com/util/forms/SearchInput.tsx:65 +#: src/view/screens/Search/Search.tsx:406 +#: src/view/screens/Search/Search.tsx:572 #: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:322 +#: src/view/shell/desktop/LeftNav.tsx:324 #: src/view/shell/desktop/Search.tsx:161 #: src/view/shell/desktop/Search.tsx:170 #: src/view/shell/Drawer.tsx:362 @@ -1892,7 +1901,7 @@ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your f msgstr "Setzen Sie diese Einstellung auf \"Ja\", um Beispiele für Ihre gespeicherten Feeds in Ihrem folgenden Feed anzuzeigen. Dies ist eine experimentelle Funktion." #: src/view/screens/Settings.tsx:277 -#: src/view/shell/desktop/LeftNav.tsx:431 +#: src/view/shell/desktop/LeftNav.tsx:433 #: src/view/shell/Drawer.tsx:565 #: src/view/shell/Drawer.tsx:566 msgid "Settings" @@ -1904,11 +1913,11 @@ msgstr "Sexuelle Aktivitäten oder erotische Nacktheit." #: src/view/com/profile/ProfileHeader.tsx:338 #: src/view/com/util/forms/PostDropdownBtn.tsx:139 -#: src/view/screens/ProfileList.tsx:384 +#: src/view/screens/ProfileList.tsx:385 msgid "Share" msgstr "Teilen" -#: src/view/screens/ProfileFeed.tsx:302 +#: src/view/screens/ProfileFeed.tsx:303 msgid "Share feed" msgstr "Feeds teilen" @@ -1941,7 +1950,7 @@ msgstr "Antworten von Personen, denen Sie folgen, vor allen anderen Antworten an msgid "Show Reposts" msgstr "Wiederholungen anzeigen" -#: src/view/com/notifications/FeedItem.tsx:337 +#: src/view/com/notifications/FeedItem.tsx:345 msgid "Show users" msgstr "Benutzer zeigen" @@ -2040,15 +2049,15 @@ msgstr "Märchenbuch" msgid "Submit" msgstr "Einreichen" -#: src/view/screens/ProfileList.tsx:574 +#: src/view/screens/ProfileList.tsx:575 msgid "Subscribe" msgstr "Abonnieren" -#: src/view/screens/ProfileList.tsx:570 +#: src/view/screens/ProfileList.tsx:571 msgid "Subscribe to this list" msgstr "Abonnieren Sie diese Liste" -#: src/view/screens/Search/Search.tsx:349 +#: src/view/screens/Search/Search.tsx:362 msgid "Suggested Follows" msgstr "Vorgeschlagene Followerliste" @@ -2069,7 +2078,7 @@ msgstr "System-Protokoll" msgid "Tall" msgstr "Groß" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/view/shell/desktop/RightNav.tsx:93 msgid "Terms" msgstr "Bedingungen" @@ -2080,7 +2089,7 @@ msgid "Terms of Service" msgstr "Bedingungen der Dienstleistung" #: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:50 +#: src/view/com/modals/report/InputIssueDetails.tsx:51 msgid "Text input field" msgstr "Text-Eingabefeld" @@ -2181,8 +2190,8 @@ msgstr "Dropdown umschalten" msgid "Transformations" msgstr "Verwandlungen" -#: src/view/com/post-thread/PostThreadItem.tsx:704 -#: src/view/com/post-thread/PostThreadItem.tsx:706 +#: src/view/com/post-thread/PostThreadItem.tsx:705 +#: src/view/com/post-thread/PostThreadItem.tsx:707 #: src/view/com/util/forms/PostDropdownBtn.tsx:111 msgid "Translate" msgstr "Übersetze" @@ -2191,11 +2200,11 @@ msgstr "Übersetze" msgid "Try again" msgstr "Nochmals versuchen" -#: src/view/screens/ProfileList.tsx:472 +#: src/view/screens/ProfileList.tsx:473 msgid "Un-block list" msgstr "Liste freigeben" -#: src/view/screens/ProfileList.tsx:457 +#: src/view/screens/ProfileList.tsx:458 msgid "Un-mute list" msgstr "Stummschaltliste aufheben" @@ -2231,7 +2240,7 @@ msgstr "Konto entstören" msgid "Unmute thread" msgstr "Thema aufheben" -#: src/view/screens/ProfileList.tsx:440 +#: src/view/screens/ProfileList.tsx:441 msgid "Unpin moderation list" msgstr "Moderation Liste" @@ -2276,11 +2285,11 @@ msgid "User Lists" msgstr "Benutzer Liste" #: src/view/com/auth/login/LoginForm.tsx:170 -#: src/view/com/auth/login/LoginForm.tsx:187 +#: src/view/com/auth/login/LoginForm.tsx:188 msgid "Username or email address" msgstr "Benutzername oder E-Mail Adresse" -#: src/view/screens/ProfileList.tsx:738 +#: src/view/screens/ProfileList.tsx:747 msgid "Users" msgstr "Benutzer" @@ -2325,7 +2334,7 @@ msgstr "Seite besuchen" msgid "We're so excited to have you join us!" msgstr "Wir freuen uns, Sie bei uns begrüßen zu dürfen!" -#: src/view/screens/Search/Search.tsx:236 +#: src/view/screens/Search/Search.tsx:243 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "Es tut uns leid, aber Ihre Suche konnte nicht abgeschlossen werden. Bitte versuchen Sie es in ein paar Minuten erneut." @@ -2374,6 +2383,7 @@ msgstr "Posten schreiben" msgid "Write your reply" msgstr "Schreiben Sie Ihre Antwort" +#: src/view/screens/PreferencesHomeFeed.tsx:120 #: src/view/screens/PreferencesHomeFeed.tsx:192 #: src/view/screens/PreferencesHomeFeed.tsx:227 #: src/view/screens/PreferencesHomeFeed.tsx:262 @@ -2434,11 +2444,11 @@ msgstr "Sie haben noch keine Konten stummgeschaltet. Um ein Konto stumm zu schal msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "Sie erhalten eine E-Mail mit einem \"Reset-Code\". Geben Sie diesen Code hier ein und geben Sie dann Ihr neues Passwort ein." -#: src/view/com/auth/create/Step2.tsx:43 +#: src/view/com/auth/create/Step2.tsx:58 msgid "Your account" msgstr "Ihr Konto" -#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:146 msgid "Your birth date" msgstr "Ihr Geburtsdatum" @@ -2468,7 +2478,7 @@ msgid "Your hosting provider" msgstr "Hosting-Anbieter" #: src/view/screens/Settings.tsx:402 -#: src/view/shell/desktop/RightNav.tsx:129 +#: src/view/shell/desktop/RightNav.tsx:137 #: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "Ihre Einladungscodes werden ausgeblendet, wenn Sie sich mit einem App-Passwort anmelden." diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index 7139489a90..4256cbfaae 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -21,7 +21,7 @@ msgstr "" #~ msgid ". This warning is only available for posts with media attached." #~ msgstr "" -#: src/view/shell/desktop/RightNav.tsx:160 +#: src/view/shell/desktop/RightNav.tsx:168 msgid "{0, plural, one {# invite code available} other {# invite codes available}}" msgstr "" @@ -33,7 +33,7 @@ msgstr "" msgid "{0} {purposeLabel} List" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:143 +#: src/view/shell/desktop/RightNav.tsx:151 msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" msgstr "" @@ -99,7 +99,7 @@ msgstr "" #: src/view/com/modals/ListAddRemoveUsers.tsx:264 #: src/view/com/modals/UserAddRemoveLists.tsx:193 -#: src/view/screens/ProfileList.tsx:754 +#: src/view/screens/ProfileList.tsx:763 msgid "Add" msgstr "" @@ -107,7 +107,7 @@ msgstr "" msgid "Add a content warning" msgstr "" -#: src/view/screens/ProfileList.tsx:744 +#: src/view/screens/ProfileList.tsx:753 msgid "Add a user to this list" msgstr "" @@ -146,7 +146,7 @@ msgstr "" msgid "Add to Lists" msgstr "" -#: src/view/screens/ProfileFeed.tsx:270 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Add to my feeds" msgstr "" @@ -187,7 +187,7 @@ 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/notifications/FeedItem.tsx:236 +#: src/view/com/notifications/FeedItem.tsx:237 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "" @@ -240,7 +240,7 @@ msgstr "" msgid "Are you sure you'd like to discard this draft?" msgstr "" -#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:353 msgid "Are you sure?" msgstr "" @@ -259,9 +259,9 @@ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:141 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:166 -#: src/view/com/auth/login/LoginForm.tsx:249 +#: src/view/com/auth/login/LoginForm.tsx:250 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 -#: src/view/com/modals/report/InputIssueDetails.tsx:45 +#: src/view/com/modals/report/InputIssueDetails.tsx:46 #: src/view/com/post-thread/PostThread.tsx:388 #: src/view/com/post-thread/PostThread.tsx:438 #: src/view/com/post-thread/PostThread.tsx:446 @@ -273,8 +273,8 @@ msgstr "" msgid "Basics" msgstr "" -#: src/view/com/auth/create/Step2.tsx:131 -#: src/view/com/modals/BirthDateSettings.tsx:72 +#: src/view/com/auth/create/Step2.tsx:156 +#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "" @@ -287,15 +287,15 @@ msgstr "" msgid "Block Account" msgstr "" -#: src/view/screens/ProfileList.tsx:522 +#: src/view/screens/ProfileList.tsx:523 msgid "Block accounts" msgstr "" -#: src/view/screens/ProfileList.tsx:472 +#: src/view/screens/ProfileList.tsx:473 msgid "Block list" msgstr "" -#: src/view/screens/ProfileList.tsx:307 +#: src/view/screens/ProfileList.tsx:308 msgid "Block these accounts?" msgstr "" @@ -319,7 +319,7 @@ msgstr "" msgid "Blocked post." msgstr "" -#: src/view/screens/ProfileList.tsx:309 +#: src/view/screens/ProfileList.tsx:310 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "" @@ -388,7 +388,7 @@ msgstr "" #: src/view/com/modals/LinkWarning.tsx:85 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 -#: src/view/screens/Search/Search.tsx:584 +#: src/view/screens/Search/Search.tsx:601 #: src/view/shell/desktop/Search.tsx:182 msgid "Cancel" msgstr "" @@ -460,6 +460,10 @@ msgstr "" msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "" +#: src/view/com/modals/Threadgate.tsx:72 +msgid "Choose \"Everybody\" or \"Nobody\"" +msgstr "" + #: src/view/com/modals/ServerInput.tsx:38 msgid "Choose Service" msgstr "" @@ -472,7 +476,7 @@ msgstr "" #~ msgid "Choose your" #~ msgstr "" -#: src/view/com/auth/create/Step2.tsx:106 +#: src/view/com/auth/create/Step2.tsx:127 msgid "Choose your password" msgstr "" @@ -492,8 +496,8 @@ msgstr "" msgid "Clear all storage data (restart after this)" msgstr "" -#: src/view/com/util/forms/SearchInput.tsx:73 -#: src/view/screens/Search/Search.tsx:569 +#: src/view/com/util/forms/SearchInput.tsx:74 +#: src/view/screens/Search/Search.tsx:582 msgid "Clear search query" msgstr "" @@ -554,7 +558,7 @@ msgid "Confirmation code" msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:268 +#: src/view/com/auth/login/LoginForm.tsx:269 msgid "Connecting..." msgstr "" @@ -593,7 +597,7 @@ msgstr "" msgid "Copy" msgstr "" -#: src/view/screens/ProfileList.tsx:384 +#: src/view/screens/ProfileList.tsx:385 msgid "Copy link to list" msgstr "" @@ -613,11 +617,11 @@ msgstr "" msgid "Copyright Policy" msgstr "" -#: src/view/screens/ProfileFeed.tsx:94 +#: src/view/screens/ProfileFeed.tsx:95 msgid "Could not load feed" msgstr "" -#: src/view/screens/ProfileList.tsx:830 +#: src/view/screens/ProfileList.tsx:839 msgid "Could not load list" msgstr "" @@ -665,8 +669,8 @@ msgstr "" msgid "Delete app password" msgstr "" -#: src/view/screens/ProfileList.tsx:351 -#: src/view/screens/ProfileList.tsx:411 +#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:412 msgid "Delete List" msgstr "" @@ -765,7 +769,7 @@ msgstr "" msgid "Edit image" msgstr "" -#: src/view/screens/ProfileList.tsx:399 +#: src/view/screens/ProfileList.tsx:400 msgid "Edit list details" msgstr "" @@ -790,14 +794,14 @@ msgstr "" msgid "Edit Saved Feeds" msgstr "" -#: src/view/com/auth/create/Step2.tsx:90 +#: src/view/com/auth/create/Step2.tsx:108 #: src/view/com/auth/login/ForgotPasswordForm.tsx:148 #: src/view/com/modals/ChangeEmail.tsx:141 #: src/view/com/modals/Waitlist.tsx:88 msgid "Email" msgstr "" -#: src/view/com/auth/create/Step2.tsx:81 +#: src/view/com/auth/create/Step2.tsx:99 msgid "Email address" msgstr "" @@ -829,7 +833,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/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:104 msgid "Enter your email address" msgstr "" @@ -858,7 +862,7 @@ msgstr "" msgid "Failed to load recommended feeds" msgstr "" -#: src/view/screens/Feeds.tsx:554 +#: src/view/screens/Feeds.tsx:556 msgid "Feed offline" msgstr "" @@ -866,7 +870,7 @@ msgstr "" msgid "Feed Preferences" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:65 +#: src/view/shell/desktop/RightNav.tsx:73 #: src/view/shell/Drawer.tsx:311 msgid "Feedback" msgstr "" @@ -874,7 +878,7 @@ msgstr "" #: src/view/screens/Feeds.tsx:475 #: src/view/screens/Profile.tsx:165 #: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:340 +#: src/view/shell/desktop/LeftNav.tsx:342 #: src/view/shell/Drawer.tsx:474 #: src/view/shell/Drawer.tsx:475 msgid "Feeds" @@ -888,11 +892,11 @@ msgstr "" msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "" -#: src/view/screens/Search/Search.tsx:414 +#: src/view/screens/Search/Search.tsx:427 msgid "Find users on Bluesky" msgstr "" -#: src/view/screens/Search/Search.tsx:412 +#: src/view/screens/Search/Search.tsx:425 msgid "Find users with the search tool on the right" msgstr "" @@ -953,11 +957,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:231 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Forgot" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:228 +#: src/view/com/auth/login/LoginForm.tsx:229 msgid "Forgot password" msgstr "" @@ -981,15 +985,15 @@ msgstr "" msgid "Go back" msgstr "" -#: src/view/screens/ProfileFeed.tsx:103 -#: src/view/screens/ProfileFeed.tsx:108 -#: src/view/screens/ProfileList.tsx:839 -#: src/view/screens/ProfileList.tsx:844 +#: src/view/screens/ProfileFeed.tsx:104 +#: src/view/screens/ProfileFeed.tsx:109 +#: src/view/screens/ProfileList.tsx:848 +#: src/view/screens/ProfileList.tsx:853 msgid "Go Back" msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:181 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:279 #: src/view/com/auth/login/SetNewPasswordForm.tsx:163 msgid "Go to next" msgstr "" @@ -998,7 +1002,7 @@ msgstr "" msgid "Handle" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:94 +#: src/view/shell/desktop/RightNav.tsx:102 #: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "" @@ -1007,7 +1011,7 @@ msgstr "" msgid "Here is your app password." msgstr "" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:324 #: src/view/com/util/moderation/ContentHider.tsx:103 msgid "Hide" msgstr "" @@ -1020,7 +1024,7 @@ msgstr "" msgid "Hide this post?" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:308 +#: src/view/com/notifications/FeedItem.tsx:316 msgid "Hide user list" msgstr "" @@ -1053,7 +1057,7 @@ msgstr "" #~ msgstr "" #: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:304 +#: src/view/shell/desktop/LeftNav.tsx:306 #: src/view/shell/Drawer.tsx:398 #: src/view/shell/Drawer.tsx:399 msgid "Home" @@ -1113,7 +1117,7 @@ msgstr "" msgid "Invite a Friend" msgstr "" -#: src/view/com/auth/create/Step2.tsx:57 +#: src/view/com/auth/create/Step2.tsx:72 msgid "Invite code" msgstr "" @@ -1133,8 +1137,8 @@ msgstr "" msgid "Join the waitlist" msgstr "" -#: src/view/com/auth/create/Step2.tsx:68 -#: src/view/com/auth/create/Step2.tsx:72 +#: src/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:90 msgid "Join the waitlist." msgstr "" @@ -1198,7 +1202,7 @@ msgstr "" #~ msgid "Light" #~ msgstr "" -#: src/view/screens/ProfileFeed.tsx:577 +#: src/view/screens/ProfileFeed.tsx:586 msgid "Like this feed" msgstr "" @@ -1228,7 +1232,7 @@ msgid "List Name" msgstr "" #: src/view/screens/Profile.tsx:166 -#: src/view/shell/desktop/LeftNav.tsx:377 +#: src/view/shell/desktop/LeftNav.tsx:379 #: src/view/shell/Drawer.tsx:490 #: src/view/shell/Drawer.tsx:491 msgid "Lists" @@ -1239,7 +1243,7 @@ msgstr "" msgid "Load more posts" msgstr "" -#: src/view/screens/Notifications.tsx:144 +#: src/view/screens/Notifications.tsx:148 msgid "Load new notifications" msgstr "" @@ -1287,7 +1291,7 @@ msgstr "" msgid "Mentioned users" msgstr "" -#: src/view/screens/Search/Search.tsx:529 +#: src/view/screens/Search/Search.tsx:537 msgid "Menu" msgstr "" @@ -1297,7 +1301,7 @@ msgstr "" #: src/view/screens/Moderation.tsx:64 #: src/view/screens/Settings.tsx:563 -#: src/view/shell/desktop/LeftNav.tsx:395 +#: src/view/shell/desktop/LeftNav.tsx:397 #: src/view/shell/Drawer.tsx:509 #: src/view/shell/Drawer.tsx:510 msgid "Moderation" @@ -1316,8 +1320,8 @@ msgid "More feeds" msgstr "" #: src/view/com/profile/ProfileHeader.tsx:548 -#: src/view/screens/ProfileFeed.tsx:360 -#: src/view/screens/ProfileList.tsx:583 +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileList.tsx:584 msgid "More options" msgstr "" @@ -1329,15 +1333,15 @@ msgstr "" msgid "Mute Account" msgstr "" -#: src/view/screens/ProfileList.tsx:510 +#: src/view/screens/ProfileList.tsx:511 msgid "Mute accounts" msgstr "" -#: src/view/screens/ProfileList.tsx:457 +#: src/view/screens/ProfileList.tsx:458 msgid "Mute list" msgstr "" -#: src/view/screens/ProfileList.tsx:270 +#: src/view/screens/ProfileList.tsx:271 msgid "Mute these accounts?" msgstr "" @@ -1357,7 +1361,7 @@ msgstr "" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "" -#: src/view/screens/ProfileList.tsx:272 +#: src/view/screens/ProfileList.tsx:273 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "" @@ -1396,23 +1400,23 @@ msgid "New" msgstr "" #: src/view/com/feeds/FeedPage.tsx:200 -#: src/view/screens/Feeds.tsx:505 +#: src/view/screens/Feeds.tsx:507 #: src/view/screens/Profile.tsx:354 -#: src/view/screens/ProfileFeed.tsx:430 -#: src/view/screens/ProfileList.tsx:193 -#: src/view/screens/ProfileList.tsx:221 -#: src/view/shell/desktop/LeftNav.tsx:247 +#: src/view/screens/ProfileFeed.tsx:431 +#: src/view/screens/ProfileList.tsx:194 +#: src/view/screens/ProfileList.tsx:222 +#: src/view/shell/desktop/LeftNav.tsx:248 msgid "New post" msgstr "" -#: src/view/shell/desktop/LeftNav.tsx:257 +#: src/view/shell/desktop/LeftNav.tsx:258 msgid "New Post" msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 -#: src/view/com/auth/login/LoginForm.tsx:281 +#: src/view/com/auth/login/LoginForm.tsx:282 #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -1423,14 +1427,15 @@ msgstr "" msgid "Next image" msgstr "" +#: src/view/screens/PreferencesHomeFeed.tsx:120 #: src/view/screens/PreferencesHomeFeed.tsx:191 #: src/view/screens/PreferencesHomeFeed.tsx:226 #: src/view/screens/PreferencesHomeFeed.tsx:263 msgid "No" msgstr "" -#: src/view/screens/ProfileFeed.tsx:570 -#: src/view/screens/ProfileList.tsx:711 +#: src/view/screens/ProfileFeed.tsx:579 +#: src/view/screens/ProfileList.tsx:720 msgid "No description" msgstr "" @@ -1448,9 +1453,9 @@ msgstr "" #~ msgstr "" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:263 -#: src/view/screens/Search/Search.tsx:291 -#: src/view/screens/Search/Search.tsx:607 +#: src/view/screens/Search/Search.tsx:270 +#: src/view/screens/Search/Search.tsx:298 +#: src/view/screens/Search/Search.tsx:629 #: src/view/shell/desktop/Search.tsx:210 msgid "No results found for {query}" msgstr "" @@ -1479,10 +1484,10 @@ msgstr "" #~ msgid "Note: Third-party apps that display Bluesky content may not respect this setting." #~ msgstr "" -#: src/view/screens/Notifications.tsx:109 -#: src/view/screens/Notifications.tsx:133 +#: src/view/screens/Notifications.tsx:113 +#: src/view/screens/Notifications.tsx:137 #: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:359 +#: src/view/shell/desktop/LeftNav.tsx:361 #: src/view/shell/Drawer.tsx:435 #: src/view/shell/Drawer.tsx:436 msgid "Notifications" @@ -1512,7 +1517,7 @@ msgstr "" msgid "Opens configurable language settings" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:148 +#: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" msgstr "" @@ -1549,6 +1554,10 @@ msgstr "" msgid "Opens the threads preferences" msgstr "" +#: src/view/com/modals/Threadgate.tsx:89 +msgid "Or combine these options:" +msgstr "" + #: src/view/com/auth/login/ChooseAccountForm.tsx:138 msgid "Other account" msgstr "" @@ -1566,9 +1575,9 @@ msgstr "" msgid "Page not found" msgstr "" -#: src/view/com/auth/create/Step2.tsx:101 -#: src/view/com/auth/create/Step2.tsx:111 -#: src/view/com/auth/login/LoginForm.tsx:216 +#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:132 +#: src/view/com/auth/login/LoginForm.tsx:217 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 #: src/view/com/modals/DeleteAccount.tsx:191 msgid "Password" @@ -1670,7 +1679,7 @@ msgstr "" msgid "Prioritize Your Follows" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "" @@ -1685,7 +1694,7 @@ msgid "Processing..." msgstr "" #: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:413 +#: src/view/shell/desktop/LeftNav.tsx:415 #: src/view/shell/Drawer.tsx:70 #: src/view/shell/Drawer.tsx:544 #: src/view/shell/Drawer.tsx:545 @@ -1752,7 +1761,7 @@ msgstr "" #: src/view/com/feeds/FeedSourceCard.tsx:105 #: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/screens/ProfileFeed.tsx:270 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Remove from my feeds" msgstr "" @@ -1797,11 +1806,11 @@ msgstr "" msgid "Report Account" msgstr "" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:291 msgid "Report feed" msgstr "" -#: src/view/screens/ProfileList.tsx:425 +#: src/view/screens/ProfileList.tsx:426 msgid "Report List" msgstr "" @@ -1836,7 +1845,7 @@ msgstr "" #~ msgid "Require alt text before posting" #~ msgstr "" -#: src/view/com/auth/create/Step2.tsx:53 +#: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" msgstr "" @@ -1866,8 +1875,8 @@ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:163 #: src/view/com/auth/create/CreateAccount.tsx:167 -#: src/view/com/auth/login/LoginForm.tsx:258 -#: src/view/com/auth/login/LoginForm.tsx:261 +#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:65 msgid "Retry" @@ -1878,8 +1887,8 @@ msgstr "" #~ msgstr "" #: src/view/com/modals/AltImage.tsx:115 -#: src/view/com/modals/BirthDateSettings.tsx:93 -#: src/view/com/modals/BirthDateSettings.tsx:96 +#: 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:249 #: src/view/com/modals/CreateOrEditList.tsx:257 @@ -1912,11 +1921,11 @@ msgid "Saved Feeds" msgstr "" #: src/view/com/modals/ListAddRemoveUsers.tsx:75 -#: src/view/com/util/forms/SearchInput.tsx:64 -#: src/view/screens/Search/Search.tsx:393 -#: src/view/screens/Search/Search.tsx:559 +#: src/view/com/util/forms/SearchInput.tsx:65 +#: src/view/screens/Search/Search.tsx:406 +#: src/view/screens/Search/Search.tsx:572 #: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:322 +#: src/view/shell/desktop/LeftNav.tsx:324 #: src/view/shell/desktop/Search.tsx:161 #: src/view/shell/desktop/Search.tsx:170 #: src/view/shell/Drawer.tsx:362 @@ -2011,7 +2020,7 @@ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your f msgstr "" #: src/view/screens/Settings.tsx:277 -#: src/view/shell/desktop/LeftNav.tsx:431 +#: src/view/shell/desktop/LeftNav.tsx:433 #: src/view/shell/Drawer.tsx:565 #: src/view/shell/Drawer.tsx:566 msgid "Settings" @@ -2023,11 +2032,11 @@ msgstr "" #: src/view/com/profile/ProfileHeader.tsx:338 #: src/view/com/util/forms/PostDropdownBtn.tsx:139 -#: src/view/screens/ProfileList.tsx:384 +#: src/view/screens/ProfileList.tsx:385 msgid "Share" msgstr "" -#: src/view/screens/ProfileFeed.tsx:302 +#: src/view/screens/ProfileFeed.tsx:303 msgid "Share feed" msgstr "" @@ -2064,7 +2073,7 @@ msgstr "" msgid "Show Reposts" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:337 +#: src/view/com/notifications/FeedItem.tsx:345 msgid "Show users" msgstr "" @@ -2163,15 +2172,15 @@ msgstr "" msgid "Submit" msgstr "Submit" -#: src/view/screens/ProfileList.tsx:574 +#: src/view/screens/ProfileList.tsx:575 msgid "Subscribe" msgstr "" -#: src/view/screens/ProfileList.tsx:570 +#: src/view/screens/ProfileList.tsx:571 msgid "Subscribe to this list" msgstr "" -#: src/view/screens/Search/Search.tsx:349 +#: src/view/screens/Search/Search.tsx:362 msgid "Suggested Follows" msgstr "" @@ -2196,7 +2205,7 @@ msgstr "" msgid "Tall" msgstr "" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/view/shell/desktop/RightNav.tsx:93 msgid "Terms" msgstr "" @@ -2207,7 +2216,7 @@ msgid "Terms of Service" msgstr "" #: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:50 +#: src/view/com/modals/report/InputIssueDetails.tsx:51 msgid "Text input field" msgstr "" @@ -2308,8 +2317,8 @@ msgstr "" msgid "Transformations" msgstr "" -#: src/view/com/post-thread/PostThreadItem.tsx:704 -#: src/view/com/post-thread/PostThreadItem.tsx:706 +#: src/view/com/post-thread/PostThreadItem.tsx:705 +#: src/view/com/post-thread/PostThreadItem.tsx:707 #: src/view/com/util/forms/PostDropdownBtn.tsx:111 msgid "Translate" msgstr "" @@ -2318,11 +2327,11 @@ msgstr "" msgid "Try again" msgstr "" -#: src/view/screens/ProfileList.tsx:472 +#: src/view/screens/ProfileList.tsx:473 msgid "Un-block list" msgstr "" -#: src/view/screens/ProfileList.tsx:457 +#: src/view/screens/ProfileList.tsx:458 msgid "Un-mute list" msgstr "" @@ -2358,7 +2367,7 @@ msgstr "" msgid "Unmute thread" msgstr "" -#: src/view/screens/ProfileList.tsx:440 +#: src/view/screens/ProfileList.tsx:441 msgid "Unpin moderation list" msgstr "" @@ -2403,11 +2412,11 @@ msgid "User Lists" msgstr "" #: src/view/com/auth/login/LoginForm.tsx:170 -#: src/view/com/auth/login/LoginForm.tsx:187 +#: src/view/com/auth/login/LoginForm.tsx:188 msgid "Username or email address" msgstr "" -#: src/view/screens/ProfileList.tsx:738 +#: src/view/screens/ProfileList.tsx:747 msgid "Users" msgstr "" @@ -2464,7 +2473,7 @@ msgstr "" #~ msgid "We're sorry, but this feed is currently receiving high traffic and is temporarily unavailable. Please try again later." #~ msgstr "" -#: src/view/screens/Search/Search.tsx:236 +#: src/view/screens/Search/Search.tsx:243 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "" @@ -2513,6 +2522,7 @@ msgstr "" msgid "Write your reply" msgstr "" +#: src/view/screens/PreferencesHomeFeed.tsx:120 #: src/view/screens/PreferencesHomeFeed.tsx:192 #: src/view/screens/PreferencesHomeFeed.tsx:227 #: src/view/screens/PreferencesHomeFeed.tsx:262 @@ -2573,11 +2583,11 @@ msgstr "" msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "" -#: src/view/com/auth/create/Step2.tsx:43 +#: src/view/com/auth/create/Step2.tsx:58 msgid "Your account" msgstr "" -#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:146 msgid "Your birth date" msgstr "" @@ -2607,7 +2617,7 @@ msgid "Your hosting provider" msgstr "" #: src/view/screens/Settings.tsx:402 -#: src/view/shell/desktop/RightNav.tsx:129 +#: src/view/shell/desktop/RightNav.tsx:137 #: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index d1ea8ece83..1c6bb08d76 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: src/view/shell/desktop/RightNav.tsx:160 +#: src/view/shell/desktop/RightNav.tsx:168 msgid "{0, plural, one {# invite code available} other {# invite codes available}}" msgstr "" @@ -25,7 +25,7 @@ msgstr "{0}" msgid "{0} {purposeLabel} List" msgstr "Lista {purposeLabel} {0}" -#: src/view/shell/desktop/RightNav.tsx:143 +#: src/view/shell/desktop/RightNav.tsx:151 msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" msgstr "" @@ -79,7 +79,7 @@ msgstr "Opciones de la cuenta" #: src/view/com/modals/ListAddRemoveUsers.tsx:264 #: src/view/com/modals/UserAddRemoveLists.tsx:193 -#: src/view/screens/ProfileList.tsx:754 +#: src/view/screens/ProfileList.tsx:763 msgid "Add" msgstr "Agregar" @@ -87,7 +87,7 @@ msgstr "Agregar" msgid "Add a content warning" msgstr "Agregar una advertencia de cuenta" -#: src/view/screens/ProfileList.tsx:744 +#: src/view/screens/ProfileList.tsx:753 msgid "Add a user to this list" msgstr "Agregar un usuario a esta lista" @@ -126,7 +126,7 @@ msgstr "Añade el siguiente registro DNS a tu dominio:" msgid "Add to Lists" msgstr "Agregar a listas" -#: src/view/screens/ProfileFeed.tsx:270 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Add to my feeds" msgstr "Agregar a mis noticias" @@ -167,7 +167,7 @@ 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/notifications/FeedItem.tsx:236 +#: src/view/com/notifications/FeedItem.tsx:237 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "y" @@ -216,7 +216,7 @@ msgstr "¿Estás seguro de que quieres eliminar la contraseña de la app \"{name msgid "Are you sure you'd like to discard this draft?" msgstr "¿Estás seguro de que quieres descartar este borrador?" -#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:353 msgid "Are you sure?" msgstr "¿Estás seguro?" @@ -231,9 +231,9 @@ msgstr "Desnudez artística o no erótica." #: src/view/com/auth/create/CreateAccount.tsx:141 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:166 -#: src/view/com/auth/login/LoginForm.tsx:249 +#: src/view/com/auth/login/LoginForm.tsx:250 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 -#: src/view/com/modals/report/InputIssueDetails.tsx:45 +#: src/view/com/modals/report/InputIssueDetails.tsx:46 #: src/view/com/post-thread/PostThread.tsx:388 #: src/view/com/post-thread/PostThread.tsx:438 #: src/view/com/post-thread/PostThread.tsx:446 @@ -245,8 +245,8 @@ msgstr "Regresar" msgid "Basics" msgstr "Conceptos básicos" -#: src/view/com/auth/create/Step2.tsx:131 -#: src/view/com/modals/BirthDateSettings.tsx:72 +#: src/view/com/auth/create/Step2.tsx:156 +#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "Cumpleaños" @@ -259,15 +259,15 @@ msgstr "Cumpleaños:" msgid "Block Account" msgstr "Bloquear una cuenta" -#: src/view/screens/ProfileList.tsx:522 +#: src/view/screens/ProfileList.tsx:523 msgid "Block accounts" msgstr "Bloquear cuentas" -#: src/view/screens/ProfileList.tsx:472 +#: src/view/screens/ProfileList.tsx:473 msgid "Block list" msgstr "Bloquear una lista" -#: src/view/screens/ProfileList.tsx:307 +#: src/view/screens/ProfileList.tsx:308 msgid "Block these accounts?" msgstr "¿Bloquear estas cuentas?" @@ -291,7 +291,7 @@ msgstr "Las cuentas bloqueadas no pueden responder en tus hilos, mencionarte ni msgid "Blocked post." msgstr "Publicación bloqueada" -#: src/view/screens/ProfileList.tsx:309 +#: src/view/screens/ProfileList.tsx:310 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." @@ -360,7 +360,7 @@ msgstr "Sólo puede contener letras, números, espacios, guiones y guiones bajos #: src/view/com/modals/LinkWarning.tsx:85 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 -#: src/view/screens/Search/Search.tsx:584 +#: src/view/screens/Search/Search.tsx:601 #: src/view/shell/desktop/Search.tsx:182 msgid "Cancel" msgstr "Cancelar" @@ -432,6 +432,10 @@ msgstr "Echa un vistazo a algunos usuarios recomendados. Síguelos para ver usua msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Consulta tu bandeja de entrada para recibir un correo electrónico con el código de confirmación que debes introducir a continuación:" +#: src/view/com/modals/Threadgate.tsx:72 +msgid "Choose \"Everybody\" or \"Nobody\"" +msgstr "" + #: src/view/com/modals/ServerInput.tsx:38 msgid "Choose Service" msgstr "Elige un Servicio" @@ -440,7 +444,7 @@ msgstr "Elige un Servicio" msgid "Choose the algorithms that power your experience with custom feeds." msgstr "Elige los algoritmos que potencian tu experiencia con publicaciones personalizadas." -#: src/view/com/auth/create/Step2.tsx:106 +#: src/view/com/auth/create/Step2.tsx:127 msgid "Choose your password" msgstr "Elige tu contraseña" @@ -460,8 +464,8 @@ msgstr "Borrar todos los datos de almacenamiento" 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:73 -#: src/view/screens/Search/Search.tsx:569 +#: src/view/com/util/forms/SearchInput.tsx:74 +#: src/view/screens/Search/Search.tsx:582 msgid "Clear search query" msgstr "Borrar consulta de búsqueda" @@ -522,7 +526,7 @@ msgid "Confirmation code" msgstr "Código de confirmación" #: src/view/com/auth/create/CreateAccount.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:268 +#: src/view/com/auth/login/LoginForm.tsx:269 msgid "Connecting..." msgstr "Conectando..." @@ -561,7 +565,7 @@ msgstr "Copiado" msgid "Copy" msgstr "Copiar" -#: src/view/screens/ProfileList.tsx:384 +#: src/view/screens/ProfileList.tsx:385 msgid "Copy link to list" msgstr "Copia el enlace a la lista" @@ -581,11 +585,11 @@ msgstr "Copiar el texto de la publicación" msgid "Copyright Policy" msgstr "Política de derechos de autor" -#: src/view/screens/ProfileFeed.tsx:94 +#: src/view/screens/ProfileFeed.tsx:95 msgid "Could not load feed" msgstr "No se ha podido cargar las publicaciones" -#: src/view/screens/ProfileList.tsx:830 +#: src/view/screens/ProfileList.tsx:839 msgid "Could not load list" msgstr "No se ha podido cargar la lista" @@ -629,8 +633,8 @@ msgstr "Borrar la cuenta" msgid "Delete app password" msgstr "Borrar la contraseña de la app" -#: src/view/screens/ProfileList.tsx:351 -#: src/view/screens/ProfileList.tsx:411 +#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:412 msgid "Delete List" msgstr "Borrar la lista" @@ -729,7 +733,7 @@ msgstr "Cada código funciona una vez. Recibirás más códigos de invitación p msgid "Edit image" msgstr "Editar la imagen" -#: src/view/screens/ProfileList.tsx:399 +#: src/view/screens/ProfileList.tsx:400 msgid "Edit list details" msgstr "Editar los detalles de la lista" @@ -754,14 +758,14 @@ msgstr "Editar el perfil" msgid "Edit Saved Feeds" msgstr "Editar mis noticias guardadas" -#: src/view/com/auth/create/Step2.tsx:90 +#: src/view/com/auth/create/Step2.tsx:108 #: src/view/com/auth/login/ForgotPasswordForm.tsx:148 #: src/view/com/modals/ChangeEmail.tsx:141 #: src/view/com/modals/Waitlist.tsx:88 msgid "Email" msgstr "Correo electrónico" -#: src/view/com/auth/create/Step2.tsx:81 +#: src/view/com/auth/create/Step2.tsx:99 msgid "Email address" msgstr "Dirección de correo electrónico" @@ -793,7 +797,7 @@ 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/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:104 msgid "Enter your email address" msgstr "Introduce la dirección de correo electrónico" @@ -822,7 +826,7 @@ msgstr "Expandir el texto alt" msgid "Failed to load recommended feeds" msgstr "Error al cargar las noticias recomendadas" -#: src/view/screens/Feeds.tsx:554 +#: src/view/screens/Feeds.tsx:556 msgid "Feed offline" msgstr "Noticias fuera de línea" @@ -830,7 +834,7 @@ msgstr "Noticias fuera de línea" msgid "Feed Preferences" msgstr "Preferencias de noticias" -#: src/view/shell/desktop/RightNav.tsx:65 +#: src/view/shell/desktop/RightNav.tsx:73 #: src/view/shell/Drawer.tsx:311 msgid "Feedback" msgstr "Comentarios" @@ -838,7 +842,7 @@ msgstr "Comentarios" #: src/view/screens/Feeds.tsx:475 #: src/view/screens/Profile.tsx:165 #: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:340 +#: src/view/shell/desktop/LeftNav.tsx:342 #: src/view/shell/Drawer.tsx:474 #: src/view/shell/Drawer.tsx:475 msgid "Feeds" @@ -852,11 +856,11 @@ msgstr "Se crean las noticias por los usuarios para crear colecciones de conteni msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Las noticias son algoritmos personalizados que los usuarios construyen con un poco de experiencia en codificación. <0/> para más información." -#: src/view/screens/Search/Search.tsx:414 +#: src/view/screens/Search/Search.tsx:427 msgid "Find users on Bluesky" msgstr "Encontrar usuarios en Bluesky" -#: src/view/screens/Search/Search.tsx:412 +#: src/view/screens/Search/Search.tsx:425 msgid "Find users with the search tool on the right" msgstr "Encuentra usuarios con la herramienta de búsqueda de la derecha" @@ -913,11 +917,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:231 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Forgot" msgstr "Lo olvidé" -#: src/view/com/auth/login/LoginForm.tsx:228 +#: src/view/com/auth/login/LoginForm.tsx:229 msgid "Forgot password" msgstr "Olvidé mi contraseña" @@ -941,15 +945,15 @@ msgstr "Comenzar" msgid "Go back" msgstr "Regresar" -#: src/view/screens/ProfileFeed.tsx:103 -#: src/view/screens/ProfileFeed.tsx:108 -#: src/view/screens/ProfileList.tsx:839 -#: src/view/screens/ProfileList.tsx:844 +#: src/view/screens/ProfileFeed.tsx:104 +#: src/view/screens/ProfileFeed.tsx:109 +#: src/view/screens/ProfileList.tsx:848 +#: src/view/screens/ProfileList.tsx:853 msgid "Go Back" msgstr "Regresar" #: src/view/com/auth/login/ForgotPasswordForm.tsx:181 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:279 #: src/view/com/auth/login/SetNewPasswordForm.tsx:163 msgid "Go to next" msgstr "Ir al siguiente" @@ -958,7 +962,7 @@ msgstr "Ir al siguiente" msgid "Handle" msgstr "Identificador" -#: src/view/shell/desktop/RightNav.tsx:94 +#: src/view/shell/desktop/RightNav.tsx:102 #: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "Ayuda" @@ -967,7 +971,7 @@ msgstr "Ayuda" msgid "Here is your app password." msgstr "Aquí tienes tu contraseña de la app." -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:324 #: src/view/com/util/moderation/ContentHider.tsx:103 msgid "Hide" msgstr "Ocultar" @@ -980,7 +984,7 @@ msgstr "" msgid "Hide this post?" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:308 +#: src/view/com/notifications/FeedItem.tsx:316 msgid "Hide user list" msgstr "Ocultar la lista de usuarios" @@ -1005,7 +1009,7 @@ 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/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:304 +#: src/view/shell/desktop/LeftNav.tsx:306 #: src/view/shell/Drawer.tsx:398 #: src/view/shell/Drawer.tsx:399 msgid "Home" @@ -1060,7 +1064,7 @@ msgstr "Invitar" msgid "Invite a Friend" msgstr "Invitar a un amigo" -#: src/view/com/auth/create/Step2.tsx:57 +#: src/view/com/auth/create/Step2.tsx:72 msgid "Invite code" msgstr "Código de invitación" @@ -1080,8 +1084,8 @@ msgstr "Tareas" msgid "Join the waitlist" msgstr "Únete a la lista de espera" -#: src/view/com/auth/create/Step2.tsx:68 -#: src/view/com/auth/create/Step2.tsx:72 +#: src/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:90 msgid "Join the waitlist." msgstr "Únete a la lista de espera." @@ -1141,7 +1145,7 @@ msgstr "¡Vamos a restablecer tu contraseña!" msgid "Library" msgstr "Librería" -#: src/view/screens/ProfileFeed.tsx:577 +#: src/view/screens/ProfileFeed.tsx:586 msgid "Like this feed" msgstr "Dar «me gusta» a esta noticia" @@ -1163,7 +1167,7 @@ msgid "List Name" msgstr "Nombre de la lista" #: src/view/screens/Profile.tsx:166 -#: src/view/shell/desktop/LeftNav.tsx:377 +#: src/view/shell/desktop/LeftNav.tsx:379 #: src/view/shell/Drawer.tsx:490 #: src/view/shell/Drawer.tsx:491 msgid "Lists" @@ -1174,7 +1178,7 @@ msgstr "Listas" msgid "Load more posts" msgstr "Cargar más publicaciones" -#: src/view/screens/Notifications.tsx:144 +#: src/view/screens/Notifications.tsx:148 msgid "Load new notifications" msgstr "Cargar notificaciones nuevas" @@ -1218,7 +1222,7 @@ msgstr "usuarios mencionados" msgid "Mentioned users" msgstr "Usuarios mencionados" -#: src/view/screens/Search/Search.tsx:529 +#: src/view/screens/Search/Search.tsx:537 msgid "Menu" msgstr "Menú" @@ -1228,7 +1232,7 @@ msgstr "Mensaje del servidor" #: src/view/screens/Moderation.tsx:64 #: src/view/screens/Settings.tsx:563 -#: src/view/shell/desktop/LeftNav.tsx:395 +#: src/view/shell/desktop/LeftNav.tsx:397 #: src/view/shell/Drawer.tsx:509 #: src/view/shell/Drawer.tsx:510 msgid "Moderation" @@ -1247,8 +1251,8 @@ msgid "More feeds" msgstr "Más canales de noticias" #: src/view/com/profile/ProfileHeader.tsx:548 -#: src/view/screens/ProfileFeed.tsx:360 -#: src/view/screens/ProfileList.tsx:583 +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileList.tsx:584 msgid "More options" msgstr "Más opciones" @@ -1256,15 +1260,15 @@ msgstr "Más opciones" msgid "Mute Account" msgstr "Silenciar la cuenta" -#: src/view/screens/ProfileList.tsx:510 +#: src/view/screens/ProfileList.tsx:511 msgid "Mute accounts" msgstr "Silenciar las cuentas" -#: src/view/screens/ProfileList.tsx:457 +#: src/view/screens/ProfileList.tsx:458 msgid "Mute list" msgstr "Silenciar la lista" -#: src/view/screens/ProfileList.tsx:270 +#: src/view/screens/ProfileList.tsx:271 msgid "Mute these accounts?" msgstr "¿Silenciar estas cuentas?" @@ -1284,7 +1288,7 @@ 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/ProfileList.tsx:272 +#: src/view/screens/ProfileList.tsx:273 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." @@ -1319,23 +1323,23 @@ msgid "New" msgstr "Nuevo" #: src/view/com/feeds/FeedPage.tsx:200 -#: src/view/screens/Feeds.tsx:505 +#: src/view/screens/Feeds.tsx:507 #: src/view/screens/Profile.tsx:354 -#: src/view/screens/ProfileFeed.tsx:430 -#: src/view/screens/ProfileList.tsx:193 -#: src/view/screens/ProfileList.tsx:221 -#: src/view/shell/desktop/LeftNav.tsx:247 +#: src/view/screens/ProfileFeed.tsx:431 +#: src/view/screens/ProfileList.tsx:194 +#: src/view/screens/ProfileList.tsx:222 +#: src/view/shell/desktop/LeftNav.tsx:248 msgid "New post" msgstr "Publicación nueva" -#: src/view/shell/desktop/LeftNav.tsx:257 +#: src/view/shell/desktop/LeftNav.tsx:258 msgid "New Post" msgstr "Publicación nueva" #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 -#: src/view/com/auth/login/LoginForm.tsx:281 +#: src/view/com/auth/login/LoginForm.tsx:282 #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -1346,14 +1350,15 @@ msgstr "Siguiente" msgid "Next image" msgstr "Imagen nueva" +#: src/view/screens/PreferencesHomeFeed.tsx:120 #: src/view/screens/PreferencesHomeFeed.tsx:191 #: src/view/screens/PreferencesHomeFeed.tsx:226 #: src/view/screens/PreferencesHomeFeed.tsx:263 msgid "No" msgstr "No" -#: src/view/screens/ProfileFeed.tsx:570 -#: src/view/screens/ProfileList.tsx:711 +#: src/view/screens/ProfileFeed.tsx:579 +#: src/view/screens/ProfileList.tsx:720 msgid "No description" msgstr "Sin descripción" @@ -1366,9 +1371,9 @@ 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:263 -#: src/view/screens/Search/Search.tsx:291 -#: src/view/screens/Search/Search.tsx:607 +#: src/view/screens/Search/Search.tsx:270 +#: src/view/screens/Search/Search.tsx:298 +#: src/view/screens/Search/Search.tsx:629 #: src/view/shell/desktop/Search.tsx:210 msgid "No results found for {query}" msgstr "No se han encontrado resultados para {query}" @@ -1385,10 +1390,10 @@ msgstr "No aplicable." 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/view/screens/Notifications.tsx:109 -#: src/view/screens/Notifications.tsx:133 +#: src/view/screens/Notifications.tsx:113 +#: src/view/screens/Notifications.tsx:137 #: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:359 +#: src/view/shell/desktop/LeftNav.tsx:361 #: src/view/shell/Drawer.tsx:435 #: src/view/shell/Drawer.tsx:436 msgid "Notifications" @@ -1418,7 +1423,7 @@ msgstr "Abrir navegación" msgid "Opens configurable language settings" msgstr "Abrir la configuración del idioma que se puede ajustar" -#: src/view/shell/desktop/RightNav.tsx:148 +#: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" msgstr "Abre la lista de códigos de invitación" @@ -1455,6 +1460,10 @@ msgstr "Abre la página de la bitácora del sistema" msgid "Opens the threads preferences" msgstr "Abre las preferencias de hilos" +#: src/view/com/modals/Threadgate.tsx:89 +msgid "Or combine these options:" +msgstr "" + #: src/view/com/auth/login/ChooseAccountForm.tsx:138 msgid "Other account" msgstr "Otra cuenta" @@ -1472,9 +1481,9 @@ msgstr "Otro..." msgid "Page not found" msgstr "Página no encontrada" -#: src/view/com/auth/create/Step2.tsx:101 -#: src/view/com/auth/create/Step2.tsx:111 -#: src/view/com/auth/login/LoginForm.tsx:216 +#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:132 +#: src/view/com/auth/login/LoginForm.tsx:217 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 #: src/view/com/modals/DeleteAccount.tsx:191 msgid "Password" @@ -1576,7 +1585,7 @@ msgstr "Lenguajes primarios" msgid "Prioritize Your Follows" msgstr "Priorizar los usuarios a los que sigue" -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "Privacidad" @@ -1591,7 +1600,7 @@ msgid "Processing..." msgstr "Procesando..." #: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:413 +#: src/view/shell/desktop/LeftNav.tsx:415 #: src/view/shell/Drawer.tsx:70 #: src/view/shell/Drawer.tsx:544 #: src/view/shell/Drawer.tsx:545 @@ -1653,7 +1662,7 @@ msgstr "Eliminar el canal de noticias" #: src/view/com/feeds/FeedSourceCard.tsx:105 #: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/screens/ProfileFeed.tsx:270 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Remove from my feeds" msgstr "Eliminar de mis canales de noticias" @@ -1698,11 +1707,11 @@ msgstr "Informe de {collectionName}" msgid "Report Account" msgstr "Informe de la cuenta" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:291 msgid "Report feed" msgstr "Informe del canal de noticias" -#: src/view/screens/ProfileList.tsx:425 +#: src/view/screens/ProfileList.tsx:426 msgid "Report List" msgstr "Informe de la lista" @@ -1729,7 +1738,7 @@ msgstr "Vuelto a publicar por" msgid "Request Change" msgstr "Solicitar un cambio" -#: src/view/com/auth/create/Step2.tsx:53 +#: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" msgstr "Requerido para este proveedor" @@ -1759,16 +1768,16 @@ msgstr "Restablecer el estado de preferencias" #: src/view/com/auth/create/CreateAccount.tsx:163 #: src/view/com/auth/create/CreateAccount.tsx:167 -#: src/view/com/auth/login/LoginForm.tsx:258 -#: src/view/com/auth/login/LoginForm.tsx:261 +#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:65 msgid "Retry" msgstr "Volver a intentar" #: src/view/com/modals/AltImage.tsx:115 -#: src/view/com/modals/BirthDateSettings.tsx:93 -#: src/view/com/modals/BirthDateSettings.tsx:96 +#: 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:249 #: src/view/com/modals/CreateOrEditList.tsx:257 @@ -1797,11 +1806,11 @@ msgid "Saved Feeds" msgstr "Guardar canales de noticias" #: src/view/com/modals/ListAddRemoveUsers.tsx:75 -#: src/view/com/util/forms/SearchInput.tsx:64 -#: src/view/screens/Search/Search.tsx:393 -#: src/view/screens/Search/Search.tsx:559 +#: src/view/com/util/forms/SearchInput.tsx:65 +#: src/view/screens/Search/Search.tsx:406 +#: src/view/screens/Search/Search.tsx:572 #: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:322 +#: src/view/shell/desktop/LeftNav.tsx:324 #: src/view/shell/desktop/Search.tsx:161 #: src/view/shell/desktop/Search.tsx:170 #: src/view/shell/Drawer.tsx:362 @@ -1892,7 +1901,7 @@ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your f msgstr "Establece este ajuste en \"Sí\" para mostrar muestras de tus noticias guardadas en tu siguiente canal de noticias. Se trata de una función experimental." #: src/view/screens/Settings.tsx:277 -#: src/view/shell/desktop/LeftNav.tsx:431 +#: src/view/shell/desktop/LeftNav.tsx:433 #: src/view/shell/Drawer.tsx:565 #: src/view/shell/Drawer.tsx:566 msgid "Settings" @@ -1904,11 +1913,11 @@ msgstr "Actividad sexual o desnudez erótica." #: src/view/com/profile/ProfileHeader.tsx:338 #: src/view/com/util/forms/PostDropdownBtn.tsx:139 -#: src/view/screens/ProfileList.tsx:384 +#: src/view/screens/ProfileList.tsx:385 msgid "Share" msgstr "Compartir" -#: src/view/screens/ProfileFeed.tsx:302 +#: src/view/screens/ProfileFeed.tsx:303 msgid "Share feed" msgstr "Compartir las noticias" @@ -1941,7 +1950,7 @@ msgstr "Mostrar las respuestas de las personas a quienes sigues antes que el res msgid "Show Reposts" msgstr "Mostrar publicaciones que se han publicado nuevamente" -#: src/view/com/notifications/FeedItem.tsx:337 +#: src/view/com/notifications/FeedItem.tsx:345 msgid "Show users" msgstr "Mostrar usuarios" @@ -2040,15 +2049,15 @@ msgstr "Libro de cuentos" msgid "Submit" msgstr "Enviar" -#: src/view/screens/ProfileList.tsx:574 +#: src/view/screens/ProfileList.tsx:575 msgid "Subscribe" msgstr "Suscribirse" -#: src/view/screens/ProfileList.tsx:570 +#: src/view/screens/ProfileList.tsx:571 msgid "Subscribe to this list" msgstr "Suscribirse a esta lista" -#: src/view/screens/Search/Search.tsx:349 +#: src/view/screens/Search/Search.tsx:362 msgid "Suggested Follows" msgstr "Usuarios sugeridos a seguir" @@ -2069,7 +2078,7 @@ msgstr "Bitácora del sistema" msgid "Tall" msgstr "Alto" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/view/shell/desktop/RightNav.tsx:93 msgid "Terms" msgstr "Condiciones" @@ -2080,7 +2089,7 @@ msgid "Terms of Service" msgstr "Condiciones de servicio" #: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:50 +#: src/view/com/modals/report/InputIssueDetails.tsx:51 msgid "Text input field" msgstr "Campo de introducción de texto" @@ -2181,8 +2190,8 @@ msgstr "Conmutar el menú desplegable" msgid "Transformations" msgstr "Transformaciones" -#: src/view/com/post-thread/PostThreadItem.tsx:704 -#: src/view/com/post-thread/PostThreadItem.tsx:706 +#: src/view/com/post-thread/PostThreadItem.tsx:705 +#: src/view/com/post-thread/PostThreadItem.tsx:707 #: src/view/com/util/forms/PostDropdownBtn.tsx:111 msgid "Translate" msgstr "Traducir" @@ -2191,11 +2200,11 @@ msgstr "Traducir" msgid "Try again" msgstr "Intentar nuevamente" -#: src/view/screens/ProfileList.tsx:472 +#: src/view/screens/ProfileList.tsx:473 msgid "Un-block list" msgstr "Desbloquear una lista" -#: src/view/screens/ProfileList.tsx:457 +#: src/view/screens/ProfileList.tsx:458 msgid "Un-mute list" msgstr "Desactivar la opción de silenciar la lista" @@ -2231,7 +2240,7 @@ msgstr "Desactivar la opción de silenciar la cuenta" msgid "Unmute thread" msgstr "Desactivar la opción de silenciar el hilo" -#: src/view/screens/ProfileList.tsx:440 +#: src/view/screens/ProfileList.tsx:441 msgid "Unpin moderation list" msgstr "Desanclar la lista de moderación" @@ -2276,11 +2285,11 @@ msgid "User Lists" msgstr "Listas de usuarios" #: src/view/com/auth/login/LoginForm.tsx:170 -#: src/view/com/auth/login/LoginForm.tsx:187 +#: src/view/com/auth/login/LoginForm.tsx:188 msgid "Username or email address" msgstr "Nombre de usuario o dirección de correo electrónico" -#: src/view/screens/ProfileList.tsx:738 +#: src/view/screens/ProfileList.tsx:747 msgid "Users" msgstr "Usuarios" @@ -2325,7 +2334,7 @@ msgstr "Visitar el sitio" msgid "We're so excited to have you join us!" msgstr "¡Nos hace mucha ilusión que te unas a nosotros!" -#: src/view/screens/Search/Search.tsx:236 +#: src/view/screens/Search/Search.tsx:243 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." @@ -2374,6 +2383,7 @@ msgstr "Redactar una publicación" msgid "Write your reply" msgstr "Redactar tu respuesta" +#: src/view/screens/PreferencesHomeFeed.tsx:120 #: src/view/screens/PreferencesHomeFeed.tsx:192 #: src/view/screens/PreferencesHomeFeed.tsx:227 #: src/view/screens/PreferencesHomeFeed.tsx:262 @@ -2434,11 +2444,11 @@ msgstr "Aún no has silenciado ninguna cuenta. Para silenciar una cuenta, ve a s 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/view/com/auth/create/Step2.tsx:43 +#: src/view/com/auth/create/Step2.tsx:58 msgid "Your account" msgstr "Tu cuenta" -#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:146 msgid "Your birth date" msgstr "Tu fecha de nacimiento" @@ -2468,7 +2478,7 @@ msgid "Your hosting provider" msgstr "Tu proveedor de alojamiento" #: src/view/screens/Settings.tsx:402 -#: src/view/shell/desktop/RightNav.tsx:129 +#: src/view/shell/desktop/RightNav.tsx:137 #: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "Tus códigos de invitación están ocultos cuando inicias sesión con una contraseña de la app" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 8afd0e5feb..20e9214e80 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: \n" "Plural-Forms: \n" -#: src/view/shell/desktop/RightNav.tsx:160 +#: src/view/shell/desktop/RightNav.tsx:168 msgid "{0, plural, one {# invite code available} other {# invite codes available}}" msgstr "{0, plural, one {# invite code available} other {# invite codes available}}" @@ -25,7 +25,7 @@ msgstr "{0}" msgid "{0} {purposeLabel} List" msgstr "{0} {purposeLabel} Liste" -#: src/view/shell/desktop/RightNav.tsx:143 +#: src/view/shell/desktop/RightNav.tsx:151 msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" msgstr "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" @@ -79,7 +79,7 @@ msgstr "Options de compte" #: src/view/com/modals/ListAddRemoveUsers.tsx:264 #: src/view/com/modals/UserAddRemoveLists.tsx:193 -#: src/view/screens/ProfileList.tsx:754 +#: src/view/screens/ProfileList.tsx:763 msgid "Add" msgstr "Ajouter" @@ -87,7 +87,7 @@ msgstr "Ajouter" msgid "Add a content warning" msgstr "Ajouter un avertissement sur le contenu" -#: src/view/screens/ProfileList.tsx:744 +#: src/view/screens/ProfileList.tsx:753 msgid "Add a user to this list" msgstr "Ajouter un utilisateur à cette liste" @@ -126,7 +126,7 @@ msgstr "Ajoutez le registre DNS suivant à votre domaine :" msgid "Add to Lists" msgstr "Ajouter aux listes" -#: src/view/screens/ProfileFeed.tsx:270 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Add to my feeds" msgstr "Ajouter à mes fils d’actu" @@ -167,7 +167,7 @@ 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/notifications/FeedItem.tsx:236 +#: src/view/com/notifications/FeedItem.tsx:237 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "et" @@ -216,7 +216,7 @@ msgstr "Êtes-vous sûr de vouloir supprimer le mot de passe de l’application msgid "Are you sure you'd like to discard this draft?" msgstr "Êtes-vous sûr de vouloir rejeter ce brouillon ?" -#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:353 msgid "Are you sure?" msgstr "Vous confirmez ?" @@ -231,9 +231,9 @@ msgstr "Nudité artistique ou non érotique." #: src/view/com/auth/create/CreateAccount.tsx:141 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:166 -#: src/view/com/auth/login/LoginForm.tsx:249 +#: src/view/com/auth/login/LoginForm.tsx:250 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 -#: src/view/com/modals/report/InputIssueDetails.tsx:45 +#: src/view/com/modals/report/InputIssueDetails.tsx:46 #: src/view/com/post-thread/PostThread.tsx:388 #: src/view/com/post-thread/PostThread.tsx:438 #: src/view/com/post-thread/PostThread.tsx:446 @@ -245,8 +245,8 @@ msgstr "Arrière" msgid "Basics" msgstr "Principes de base" -#: src/view/com/auth/create/Step2.tsx:131 -#: src/view/com/modals/BirthDateSettings.tsx:72 +#: src/view/com/auth/create/Step2.tsx:156 +#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "Date de naissance" @@ -259,15 +259,15 @@ msgstr "Date de naissance :" msgid "Block Account" msgstr "Bloquer ce compte" -#: src/view/screens/ProfileList.tsx:522 +#: src/view/screens/ProfileList.tsx:523 msgid "Block accounts" msgstr "Bloquer ces comptes" -#: src/view/screens/ProfileList.tsx:472 +#: src/view/screens/ProfileList.tsx:473 msgid "Block list" msgstr "Liste de blocage" -#: src/view/screens/ProfileList.tsx:307 +#: src/view/screens/ProfileList.tsx:308 msgid "Block these accounts?" msgstr "Bloquer ces comptes ?" @@ -291,7 +291,7 @@ msgstr "Les comptes bloqués ne peuvent pas répondre à vos discussions, vous m msgid "Blocked post." msgstr "Publication bloquée." -#: src/view/screens/ProfileList.tsx:309 +#: src/view/screens/ProfileList.tsx:310 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." @@ -360,7 +360,7 @@ msgstr "Ne peut contenir que des lettres, des chiffres, des espaces, des tirets #: src/view/com/modals/LinkWarning.tsx:85 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 -#: src/view/screens/Search/Search.tsx:584 +#: src/view/screens/Search/Search.tsx:601 #: src/view/shell/desktop/Search.tsx:182 msgid "Cancel" msgstr "Annuler" @@ -432,6 +432,10 @@ msgstr "Consultez quelques utilisateurs recommandés. Suivez-les pour voir des u msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "Consultez votre boîte de réception, vous avez du recevoir un e-mail contenant un code de confirmation à saisir ci-dessous :" +#: src/view/com/modals/Threadgate.tsx:72 +msgid "Choose \"Everybody\" or \"Nobody\"" +msgstr "" + #: src/view/com/modals/ServerInput.tsx:38 msgid "Choose Service" msgstr "Choisir un service" @@ -440,7 +444,7 @@ msgstr "Choisir un service" msgid "Choose the algorithms that power your experience with custom feeds." msgstr "Choisissez les algorithmes qui alimentent votre expérience avec des fils d’actualité personnalisés." -#: src/view/com/auth/create/Step2.tsx:106 +#: src/view/com/auth/create/Step2.tsx:127 msgid "Choose your password" msgstr "Choisissez votre mot de passe" @@ -460,8 +464,8 @@ msgstr "Effacer toutes les données de stockage" 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:73 -#: src/view/screens/Search/Search.tsx:569 +#: src/view/com/util/forms/SearchInput.tsx:74 +#: src/view/screens/Search/Search.tsx:582 msgid "Clear search query" msgstr "Effacer la recherche" @@ -522,7 +526,7 @@ msgid "Confirmation code" msgstr "Code de confirmation" #: src/view/com/auth/create/CreateAccount.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:268 +#: src/view/com/auth/login/LoginForm.tsx:269 msgid "Connecting..." msgstr "Connexion..." @@ -561,7 +565,7 @@ msgstr "Copié" msgid "Copy" msgstr "Copie" -#: src/view/screens/ProfileList.tsx:384 +#: src/view/screens/ProfileList.tsx:385 msgid "Copy link to list" msgstr "Copier le lien dans la liste" @@ -581,11 +585,11 @@ msgstr "Copier le texte de la publication" msgid "Copyright Policy" msgstr "Politique sur les droits d’auteur" -#: src/view/screens/ProfileFeed.tsx:94 +#: src/view/screens/ProfileFeed.tsx:95 msgid "Could not load feed" msgstr "Impossible de charger le fil d’actu" -#: src/view/screens/ProfileList.tsx:830 +#: src/view/screens/ProfileList.tsx:839 msgid "Could not load list" msgstr "Impossible de charger la liste" @@ -629,8 +633,8 @@ msgstr "Supprimer compte" msgid "Delete app password" msgstr "Supprimer le mot de passe de l’appli" -#: src/view/screens/ProfileList.tsx:351 -#: src/view/screens/ProfileList.tsx:411 +#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:412 msgid "Delete List" msgstr "Supprimer la liste" @@ -729,7 +733,7 @@ msgstr "Chaque code ne fonctionne qu’une seule fois. Vous recevrez régulière msgid "Edit image" msgstr "Modifier l’image" -#: src/view/screens/ProfileList.tsx:399 +#: src/view/screens/ProfileList.tsx:400 msgid "Edit list details" msgstr "Modifier les infos de la liste" @@ -754,14 +758,14 @@ msgstr "Modifier profil" msgid "Edit Saved Feeds" msgstr "Modifier les fils d’actu enregistrés" -#: src/view/com/auth/create/Step2.tsx:90 +#: src/view/com/auth/create/Step2.tsx:108 #: src/view/com/auth/login/ForgotPasswordForm.tsx:148 #: src/view/com/modals/ChangeEmail.tsx:141 #: src/view/com/modals/Waitlist.tsx:88 msgid "Email" msgstr "E-mail" -#: src/view/com/auth/create/Step2.tsx:81 +#: src/view/com/auth/create/Step2.tsx:99 msgid "Email address" msgstr "Adresse e-mail" @@ -793,7 +797,7 @@ 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/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:104 msgid "Enter your email address" msgstr "Entrez votre e-mail" @@ -822,7 +826,7 @@ msgstr "Développer le texte alt" msgid "Failed to load recommended feeds" msgstr "Échec du chargement des fils d’actu recommandés" -#: src/view/screens/Feeds.tsx:554 +#: src/view/screens/Feeds.tsx:556 msgid "Feed offline" msgstr "Fil d’actu hors ligne" @@ -830,7 +834,7 @@ msgstr "Fil d’actu hors ligne" msgid "Feed Preferences" msgstr "Préférences en matière de fil d’actu" -#: src/view/shell/desktop/RightNav.tsx:65 +#: src/view/shell/desktop/RightNav.tsx:73 #: src/view/shell/Drawer.tsx:311 msgid "Feedback" msgstr "Feedback" @@ -838,7 +842,7 @@ msgstr "Feedback" #: src/view/screens/Feeds.tsx:475 #: src/view/screens/Profile.tsx:165 #: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:340 +#: src/view/shell/desktop/LeftNav.tsx:342 #: src/view/shell/Drawer.tsx:474 #: src/view/shell/Drawer.tsx:475 msgid "Feeds" @@ -852,11 +856,11 @@ msgstr "Les fils d’actu sont créés par les utilisateurs pour rassembler du c msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "Les fils d’actu sont des algorithmes personnalisés que les utilisateurs construisent avec un peu d’expertise en codage. <0/> pour obtenir de plus amples informations." -#: src/view/screens/Search/Search.tsx:414 +#: src/view/screens/Search/Search.tsx:427 msgid "Find users on Bluesky" msgstr "Trouver des utilisateurs sur Bluesky" -#: src/view/screens/Search/Search.tsx:412 +#: src/view/screens/Search/Search.tsx:425 msgid "Find users with the search tool on the right" msgstr "Trouvez des utilisateurs à l’aide de l’outil de recherche, à droite." @@ -913,11 +917,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:231 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Forgot" msgstr "Oublié" -#: src/view/com/auth/login/LoginForm.tsx:228 +#: src/view/com/auth/login/LoginForm.tsx:229 msgid "Forgot password" msgstr "Mot de passe oublié" @@ -941,15 +945,15 @@ msgstr "C’est parti" msgid "Go back" msgstr "Retour" -#: src/view/screens/ProfileFeed.tsx:103 -#: src/view/screens/ProfileFeed.tsx:108 -#: src/view/screens/ProfileList.tsx:839 -#: src/view/screens/ProfileList.tsx:844 +#: src/view/screens/ProfileFeed.tsx:104 +#: src/view/screens/ProfileFeed.tsx:109 +#: src/view/screens/ProfileList.tsx:848 +#: src/view/screens/ProfileList.tsx:853 msgid "Go Back" msgstr "Retour" #: src/view/com/auth/login/ForgotPasswordForm.tsx:181 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:279 #: src/view/com/auth/login/SetNewPasswordForm.tsx:163 msgid "Go to next" msgstr "Aller à la suite" @@ -958,7 +962,7 @@ msgstr "Aller à la suite" msgid "Handle" msgstr "Pseudo" -#: src/view/shell/desktop/RightNav.tsx:94 +#: src/view/shell/desktop/RightNav.tsx:102 #: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "Aide" @@ -967,7 +971,7 @@ msgstr "Aide" msgid "Here is your app password." msgstr "Voici le mot de passe de votre appli." -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:324 #: src/view/com/util/moderation/ContentHider.tsx:103 msgid "Hide" msgstr "Masquer" @@ -980,7 +984,7 @@ msgstr "" msgid "Hide this post?" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:308 +#: src/view/com/notifications/FeedItem.tsx:316 msgid "Hide user list" msgstr "Masquer la liste des utilisateurs" @@ -1005,7 +1009,7 @@ msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "Hmm, nous n’arrivons pas à trouver ce fils d’actu. Il a peut-être été supprimé." #: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:304 +#: src/view/shell/desktop/LeftNav.tsx:306 #: src/view/shell/Drawer.tsx:398 #: src/view/shell/Drawer.tsx:399 msgid "Home" @@ -1060,7 +1064,7 @@ msgstr "Inviter" msgid "Invite a Friend" msgstr "Inviter un ami" -#: src/view/com/auth/create/Step2.tsx:57 +#: src/view/com/auth/create/Step2.tsx:72 msgid "Invite code" msgstr "Code d’invitation" @@ -1080,8 +1084,8 @@ msgstr "Emplois" msgid "Join the waitlist" msgstr "S’inscrire sur la liste d’attente" -#: src/view/com/auth/create/Step2.tsx:68 -#: src/view/com/auth/create/Step2.tsx:72 +#: src/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:90 msgid "Join the waitlist." msgstr "S’inscrire sur la liste d’attente." @@ -1141,7 +1145,7 @@ msgstr "Réinitialisez votre mot de passe !" msgid "Library" msgstr "Bibliothèque" -#: src/view/screens/ProfileFeed.tsx:577 +#: src/view/screens/ProfileFeed.tsx:586 msgid "Like this feed" msgstr "Likez ce fils d’actu" @@ -1163,7 +1167,7 @@ msgid "List Name" msgstr "Nom de liste" #: src/view/screens/Profile.tsx:166 -#: src/view/shell/desktop/LeftNav.tsx:377 +#: src/view/shell/desktop/LeftNav.tsx:379 #: src/view/shell/Drawer.tsx:490 #: src/view/shell/Drawer.tsx:491 msgid "Lists" @@ -1174,7 +1178,7 @@ msgstr "Listes" msgid "Load more posts" msgstr "Charger plus d’articles" -#: src/view/screens/Notifications.tsx:144 +#: src/view/screens/Notifications.tsx:148 msgid "Load new notifications" msgstr "Charger les nouvelles notifications" @@ -1218,7 +1222,7 @@ msgstr "utilisateurs mentionnés" msgid "Mentioned users" msgstr "Utilisateurs mentionnés" -#: src/view/screens/Search/Search.tsx:529 +#: src/view/screens/Search/Search.tsx:537 msgid "Menu" msgstr "Menu" @@ -1228,7 +1232,7 @@ msgstr "Message du serveur" #: src/view/screens/Moderation.tsx:64 #: src/view/screens/Settings.tsx:563 -#: src/view/shell/desktop/LeftNav.tsx:395 +#: src/view/shell/desktop/LeftNav.tsx:397 #: src/view/shell/Drawer.tsx:509 #: src/view/shell/Drawer.tsx:510 msgid "Moderation" @@ -1247,8 +1251,8 @@ msgid "More feeds" msgstr "Plus de fils d’actu" #: src/view/com/profile/ProfileHeader.tsx:548 -#: src/view/screens/ProfileFeed.tsx:360 -#: src/view/screens/ProfileList.tsx:583 +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileList.tsx:584 msgid "More options" msgstr "Plus d’options" @@ -1256,15 +1260,15 @@ msgstr "Plus d’options" msgid "Mute Account" msgstr "Compte en sourdine" -#: src/view/screens/ProfileList.tsx:510 +#: src/view/screens/ProfileList.tsx:511 msgid "Mute accounts" msgstr "Comptes en sourdine" -#: src/view/screens/ProfileList.tsx:457 +#: src/view/screens/ProfileList.tsx:458 msgid "Mute list" msgstr "Mettre en sourdine" -#: src/view/screens/ProfileList.tsx:270 +#: src/view/screens/ProfileList.tsx:271 msgid "Mute these accounts?" msgstr "Mettre ces comptes en sourdine ?" @@ -1284,7 +1288,7 @@ msgstr "Comptes en sourdine" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "Les comptes mis en sourdine voient leurs publications supprimées de votre fil d’actualité et de vos notifications. Cette option est totalement privée." -#: src/view/screens/ProfileList.tsx:272 +#: src/view/screens/ProfileList.tsx:273 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 mettez en sourdine reste privé. Les comptes en sourdine peuvent interagir avec vous, mais vous ne verrez pas leurs publications et ne recevrez pas de notifications de leur part." @@ -1319,23 +1323,23 @@ msgid "New" msgstr "Nouveau" #: src/view/com/feeds/FeedPage.tsx:200 -#: src/view/screens/Feeds.tsx:505 +#: src/view/screens/Feeds.tsx:507 #: src/view/screens/Profile.tsx:354 -#: src/view/screens/ProfileFeed.tsx:430 -#: src/view/screens/ProfileList.tsx:193 -#: src/view/screens/ProfileList.tsx:221 -#: src/view/shell/desktop/LeftNav.tsx:247 +#: src/view/screens/ProfileFeed.tsx:431 +#: src/view/screens/ProfileList.tsx:194 +#: src/view/screens/ProfileList.tsx:222 +#: src/view/shell/desktop/LeftNav.tsx:248 msgid "New post" msgstr "Nouvelle publication" -#: src/view/shell/desktop/LeftNav.tsx:257 +#: src/view/shell/desktop/LeftNav.tsx:258 msgid "New Post" msgstr "Nouvelle publication" #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 -#: src/view/com/auth/login/LoginForm.tsx:281 +#: src/view/com/auth/login/LoginForm.tsx:282 #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -1346,14 +1350,15 @@ msgstr "Suivant" msgid "Next image" msgstr "Image suivante" +#: src/view/screens/PreferencesHomeFeed.tsx:120 #: src/view/screens/PreferencesHomeFeed.tsx:191 #: src/view/screens/PreferencesHomeFeed.tsx:226 #: src/view/screens/PreferencesHomeFeed.tsx:263 msgid "No" msgstr "Non" -#: src/view/screens/ProfileFeed.tsx:570 -#: src/view/screens/ProfileList.tsx:711 +#: src/view/screens/ProfileFeed.tsx:579 +#: src/view/screens/ProfileList.tsx:720 msgid "No description" msgstr "Aucune description" @@ -1366,9 +1371,9 @@ 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:263 -#: src/view/screens/Search/Search.tsx:291 -#: src/view/screens/Search/Search.tsx:607 +#: src/view/screens/Search/Search.tsx:270 +#: src/view/screens/Search/Search.tsx:298 +#: src/view/screens/Search/Search.tsx:629 #: src/view/shell/desktop/Search.tsx:210 msgid "No results found for {query}" msgstr "Aucun résultat trouvé pour {query}" @@ -1385,10 +1390,10 @@ msgstr "Sans objet." 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 utilisateurs déconnectés par d’autres applications et sites Web." -#: src/view/screens/Notifications.tsx:109 -#: src/view/screens/Notifications.tsx:133 +#: src/view/screens/Notifications.tsx:113 +#: src/view/screens/Notifications.tsx:137 #: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:359 +#: src/view/shell/desktop/LeftNav.tsx:361 #: src/view/shell/Drawer.tsx:435 #: src/view/shell/Drawer.tsx:436 msgid "Notifications" @@ -1418,7 +1423,7 @@ msgstr "Navigation ouverte" msgid "Opens configurable language settings" msgstr "Ouvre les paramètres linguistiques configurables" -#: src/view/shell/desktop/RightNav.tsx:148 +#: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" msgstr "Ouvre la liste des codes d’invitation" @@ -1455,6 +1460,10 @@ msgstr "Ouvre la page du journal système" msgid "Opens the threads preferences" msgstr "Ouvre les préférences relatives aux fils de discussion" +#: src/view/com/modals/Threadgate.tsx:89 +msgid "Or combine these options:" +msgstr "" + #: src/view/com/auth/login/ChooseAccountForm.tsx:138 msgid "Other account" msgstr "Autre compte" @@ -1472,9 +1481,9 @@ msgstr "Autre..." msgid "Page not found" msgstr "Page introuvable" -#: src/view/com/auth/create/Step2.tsx:101 -#: src/view/com/auth/create/Step2.tsx:111 -#: src/view/com/auth/login/LoginForm.tsx:216 +#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:132 +#: src/view/com/auth/login/LoginForm.tsx:217 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 #: src/view/com/modals/DeleteAccount.tsx:191 msgid "Password" @@ -1576,7 +1585,7 @@ msgstr "Langue principale" msgid "Prioritize Your Follows" msgstr "Définissez des priorités de vos suivis" -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "Vie privée" @@ -1591,7 +1600,7 @@ msgid "Processing..." msgstr "Traitement..." #: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:413 +#: src/view/shell/desktop/LeftNav.tsx:415 #: src/view/shell/Drawer.tsx:70 #: src/view/shell/Drawer.tsx:544 #: src/view/shell/Drawer.tsx:545 @@ -1653,7 +1662,7 @@ msgstr "Supprimer fil d’actu" #: src/view/com/feeds/FeedSourceCard.tsx:105 #: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/screens/ProfileFeed.tsx:270 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Remove from my feeds" msgstr "Supprimer de mes fils d’actu" @@ -1698,11 +1707,11 @@ msgstr "Signaler {collectionName}" msgid "Report Account" msgstr "Signaler Compte" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:291 msgid "Report feed" msgstr "Signaler fil d’actu" -#: src/view/screens/ProfileList.tsx:425 +#: src/view/screens/ProfileList.tsx:426 msgid "Report List" msgstr "Signaler Liste" @@ -1729,7 +1738,7 @@ msgstr "Republié par" msgid "Request Change" msgstr "Demande de modification" -#: src/view/com/auth/create/Step2.tsx:53 +#: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" msgstr "Obligatoire pour ce fournisseur" @@ -1759,16 +1768,16 @@ msgstr "Réinitialise l’état des préférences" #: src/view/com/auth/create/CreateAccount.tsx:163 #: src/view/com/auth/create/CreateAccount.tsx:167 -#: src/view/com/auth/login/LoginForm.tsx:258 -#: src/view/com/auth/login/LoginForm.tsx:261 +#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:65 msgid "Retry" msgstr "Réessayer" #: src/view/com/modals/AltImage.tsx:115 -#: src/view/com/modals/BirthDateSettings.tsx:93 -#: src/view/com/modals/BirthDateSettings.tsx:96 +#: 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:249 #: src/view/com/modals/CreateOrEditList.tsx:257 @@ -1797,11 +1806,11 @@ msgid "Saved Feeds" msgstr "Fils d’actu enregistrés" #: src/view/com/modals/ListAddRemoveUsers.tsx:75 -#: src/view/com/util/forms/SearchInput.tsx:64 -#: src/view/screens/Search/Search.tsx:393 -#: src/view/screens/Search/Search.tsx:559 +#: src/view/com/util/forms/SearchInput.tsx:65 +#: src/view/screens/Search/Search.tsx:406 +#: src/view/screens/Search/Search.tsx:572 #: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:322 +#: src/view/shell/desktop/LeftNav.tsx:324 #: src/view/shell/desktop/Search.tsx:161 #: src/view/shell/desktop/Search.tsx:170 #: src/view/shell/Drawer.tsx:362 @@ -1892,7 +1901,7 @@ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your f msgstr "Choisissez « Oui » pour afficher des échantillons de vos fils d’actu enregistrés dans votre fils d’actu suivant. C’est une fonctionnalité expérimentale." #: src/view/screens/Settings.tsx:277 -#: src/view/shell/desktop/LeftNav.tsx:431 +#: src/view/shell/desktop/LeftNav.tsx:433 #: src/view/shell/Drawer.tsx:565 #: src/view/shell/Drawer.tsx:566 msgid "Settings" @@ -1904,11 +1913,11 @@ msgstr "Activité sexuelle ou nudité érotique." #: src/view/com/profile/ProfileHeader.tsx:338 #: src/view/com/util/forms/PostDropdownBtn.tsx:139 -#: src/view/screens/ProfileList.tsx:384 +#: src/view/screens/ProfileList.tsx:385 msgid "Share" msgstr "Partager" -#: src/view/screens/ProfileFeed.tsx:302 +#: src/view/screens/ProfileFeed.tsx:303 msgid "Share feed" msgstr "Partager fils d’actu" @@ -1941,7 +1950,7 @@ msgstr "Afficher les réponses des personnes que vous suivez avant toutes les au msgid "Show Reposts" msgstr "Afficher les republications" -#: src/view/com/notifications/FeedItem.tsx:337 +#: src/view/com/notifications/FeedItem.tsx:345 msgid "Show users" msgstr "Afficher les utilisateurs" @@ -2040,15 +2049,15 @@ msgstr "Historique" msgid "Submit" msgstr "Envoyer" -#: src/view/screens/ProfileList.tsx:574 +#: src/view/screens/ProfileList.tsx:575 msgid "Subscribe" msgstr "S’abonner" -#: src/view/screens/ProfileList.tsx:570 +#: src/view/screens/ProfileList.tsx:571 msgid "Subscribe to this list" msgstr "S’abonner à cette liste" -#: src/view/screens/Search/Search.tsx:349 +#: src/view/screens/Search/Search.tsx:362 msgid "Suggested Follows" msgstr "Suivis suggérés" @@ -2069,7 +2078,7 @@ msgstr "Journal système" msgid "Tall" msgstr "Grand" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/view/shell/desktop/RightNav.tsx:93 msgid "Terms" msgstr "Conditions générales" @@ -2080,7 +2089,7 @@ msgid "Terms of Service" msgstr "Conditions d’utilisation" #: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:50 +#: src/view/com/modals/report/InputIssueDetails.tsx:51 msgid "Text input field" msgstr "Champ de saisie de texte" @@ -2181,8 +2190,8 @@ msgstr "Basculer menu déroulant" msgid "Transformations" msgstr "Transformations" -#: src/view/com/post-thread/PostThreadItem.tsx:704 -#: src/view/com/post-thread/PostThreadItem.tsx:706 +#: src/view/com/post-thread/PostThreadItem.tsx:705 +#: src/view/com/post-thread/PostThreadItem.tsx:707 #: src/view/com/util/forms/PostDropdownBtn.tsx:111 msgid "Translate" msgstr "Traduire" @@ -2191,11 +2200,11 @@ msgstr "Traduire" msgid "Try again" msgstr "Réessayer" -#: src/view/screens/ProfileList.tsx:472 +#: src/view/screens/ProfileList.tsx:473 msgid "Un-block list" msgstr "Débloquer liste" -#: src/view/screens/ProfileList.tsx:457 +#: src/view/screens/ProfileList.tsx:458 msgid "Un-mute list" msgstr "Désactiver sourdine sur cette liste" @@ -2231,7 +2240,7 @@ msgstr "Désactiver sourdine sur ce compte" msgid "Unmute thread" msgstr "Désactiver sourdine sur ce fil de discussion" -#: src/view/screens/ProfileList.tsx:440 +#: src/view/screens/ProfileList.tsx:441 msgid "Unpin moderation list" msgstr "Supprimer la liste de modération" @@ -2276,11 +2285,11 @@ msgid "User Lists" msgstr "Listes d’utilisateurs" #: src/view/com/auth/login/LoginForm.tsx:170 -#: src/view/com/auth/login/LoginForm.tsx:187 +#: src/view/com/auth/login/LoginForm.tsx:188 msgid "Username or email address" msgstr "Nom d’utilisateur ou e-mail" -#: src/view/screens/ProfileList.tsx:738 +#: src/view/screens/ProfileList.tsx:747 msgid "Users" msgstr "Utilisateurs" @@ -2325,7 +2334,7 @@ msgstr "Visiter le site" msgid "We're so excited to have you join us!" msgstr "Nous sommes ravis de vous accueillir !" -#: src/view/screens/Search/Search.tsx:236 +#: src/view/screens/Search/Search.tsx:243 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." @@ -2374,6 +2383,7 @@ msgstr "Rédiger une publication" msgid "Write your reply" msgstr "Rédigez votre réponse" +#: src/view/screens/PreferencesHomeFeed.tsx:120 #: src/view/screens/PreferencesHomeFeed.tsx:192 #: src/view/screens/PreferencesHomeFeed.tsx:227 #: src/view/screens/PreferencesHomeFeed.tsx:262 @@ -2434,11 +2444,11 @@ msgstr "Vous n’avez encore mis aucun compte en sourdine. Pour désactiver un c 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/view/com/auth/create/Step2.tsx:43 +#: src/view/com/auth/create/Step2.tsx:58 msgid "Your account" msgstr "Votre compte" -#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:146 msgid "Your birth date" msgstr "Votre date de naissance" @@ -2468,7 +2478,7 @@ msgid "Your hosting provider" msgstr "Votre fournisseur d’hébergement" #: src/view/screens/Settings.tsx:402 -#: src/view/shell/desktop/RightNav.tsx:129 +#: src/view/shell/desktop/RightNav.tsx:137 #: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "Vos codes d’invitation sont cachés lorsque vous êtes connecté à l’aide d’un mot de passe d’application." diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index 6fa32b369f..9dc10b96f6 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -21,7 +21,7 @@ msgstr "" #~ msgid ". This warning is only available for posts with media attached." #~ msgstr "यह चेतावनी केवल मीडिया वाले पोस्ट के लिए उपलब्ध है।" -#: src/view/shell/desktop/RightNav.tsx:160 +#: src/view/shell/desktop/RightNav.tsx:168 msgid "{0, plural, one {# invite code available} other {# invite codes available}}" msgstr "" @@ -33,7 +33,7 @@ msgstr "{0}" msgid "{0} {purposeLabel} List" msgstr "{0} {purposeLabel} सूची" -#: src/view/shell/desktop/RightNav.tsx:143 +#: src/view/shell/desktop/RightNav.tsx:151 msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" msgstr "" @@ -99,7 +99,7 @@ msgstr "अकाउंट के विकल्प" #: src/view/com/modals/ListAddRemoveUsers.tsx:264 #: src/view/com/modals/UserAddRemoveLists.tsx:193 -#: src/view/screens/ProfileList.tsx:754 +#: src/view/screens/ProfileList.tsx:763 msgid "Add" msgstr "ऐड करो" @@ -107,7 +107,7 @@ msgstr "ऐड करो" msgid "Add a content warning" msgstr "सामग्री चेतावनी जोड़ें" -#: src/view/screens/ProfileList.tsx:744 +#: src/view/screens/ProfileList.tsx:753 msgid "Add a user to this list" msgstr "इस सूची में किसी को जोड़ें" @@ -146,7 +146,7 @@ msgstr "अपने डोमेन में निम्नलिखित DN msgid "Add to Lists" msgstr "सूचियों में जोड़ें" -#: src/view/screens/ProfileFeed.tsx:270 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Add to my feeds" msgstr "इस फ़ीड को सहेजें" @@ -187,7 +187,7 @@ 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/notifications/FeedItem.tsx:236 +#: src/view/com/notifications/FeedItem.tsx:237 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "और" @@ -240,7 +240,7 @@ msgstr "क्या आप वाकई ऐप पासवर्ड \"{name}\" msgid "Are you sure you'd like to discard this draft?" msgstr "क्या आप वाकई इस ड्राफ्ट को हटाना करना चाहेंगे?" -#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:353 msgid "Are you sure?" msgstr "क्या आप वास्तव में इसे करना चाहते हैं?" @@ -259,9 +259,9 @@ msgstr "कलात्मक या गैर-कामुक नग्नत #: src/view/com/auth/create/CreateAccount.tsx:141 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:166 -#: src/view/com/auth/login/LoginForm.tsx:249 +#: src/view/com/auth/login/LoginForm.tsx:250 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 -#: src/view/com/modals/report/InputIssueDetails.tsx:45 +#: src/view/com/modals/report/InputIssueDetails.tsx:46 #: src/view/com/post-thread/PostThread.tsx:388 #: src/view/com/post-thread/PostThread.tsx:438 #: src/view/com/post-thread/PostThread.tsx:446 @@ -273,8 +273,8 @@ msgstr "वापस" msgid "Basics" msgstr "मूल बातें" -#: src/view/com/auth/create/Step2.tsx:131 -#: src/view/com/modals/BirthDateSettings.tsx:72 +#: src/view/com/auth/create/Step2.tsx:156 +#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "जन्मदिन" @@ -287,15 +287,15 @@ msgstr "जन्मदिन:" msgid "Block Account" msgstr "खाता ब्लॉक करें" -#: src/view/screens/ProfileList.tsx:522 +#: src/view/screens/ProfileList.tsx:523 msgid "Block accounts" msgstr "खाता ब्लॉक करें" -#: src/view/screens/ProfileList.tsx:472 +#: src/view/screens/ProfileList.tsx:473 msgid "Block list" msgstr "" -#: src/view/screens/ProfileList.tsx:307 +#: src/view/screens/ProfileList.tsx:308 msgid "Block these accounts?" msgstr "खाता ब्लॉक करें?" @@ -319,7 +319,7 @@ msgstr "अवरुद्ध खाते आपके थ्रेड्स msgid "Blocked post." msgstr "ब्लॉक पोस्ट।" -#: src/view/screens/ProfileList.tsx:309 +#: src/view/screens/ProfileList.tsx:310 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "अवरोधन सार्वजनिक है. अवरुद्ध खाते आपके थ्रेड्स में उत्तर नहीं दे सकते, आपका उल्लेख नहीं कर सकते, या अन्यथा आपके साथ बातचीत नहीं कर सकते।" @@ -388,7 +388,7 @@ msgstr "केवल अक्षर, संख्या, रिक्त स् #: src/view/com/modals/LinkWarning.tsx:85 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 -#: src/view/screens/Search/Search.tsx:584 +#: src/view/screens/Search/Search.tsx:601 #: src/view/shell/desktop/Search.tsx:182 msgid "Cancel" msgstr "कैंसिल" @@ -460,6 +460,10 @@ msgstr "कुछ अनुशंसित उपयोगकर्ताओं msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "नीचे प्रवेश करने के लिए OTP कोड के साथ एक ईमेल के लिए अपने इनबॉक्स की जाँच करें:" +#: src/view/com/modals/Threadgate.tsx:72 +msgid "Choose \"Everybody\" or \"Nobody\"" +msgstr "" + #: src/view/com/modals/ServerInput.tsx:38 msgid "Choose Service" msgstr "सेवा चुनें" @@ -468,7 +472,7 @@ msgstr "सेवा चुनें" msgid "Choose the algorithms that power your experience with custom feeds." msgstr "उन एल्गोरिदम का चयन करें जो कस्टम फीड्स के साथ अपने अनुभव को शक्ति देते हैं।।" -#: src/view/com/auth/create/Step2.tsx:106 +#: src/view/com/auth/create/Step2.tsx:127 msgid "Choose your password" msgstr "अपना पासवर्ड चुनें" @@ -488,8 +492,8 @@ msgstr "" msgid "Clear all storage data (restart after this)" msgstr "" -#: src/view/com/util/forms/SearchInput.tsx:73 -#: src/view/screens/Search/Search.tsx:569 +#: src/view/com/util/forms/SearchInput.tsx:74 +#: src/view/screens/Search/Search.tsx:582 msgid "Clear search query" msgstr "खोज क्वेरी साफ़ करें" @@ -550,7 +554,7 @@ msgid "Confirmation code" msgstr "OTP कोड" #: src/view/com/auth/create/CreateAccount.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:268 +#: src/view/com/auth/login/LoginForm.tsx:269 msgid "Connecting..." msgstr "कनेक्टिंग ..।" @@ -589,7 +593,7 @@ msgstr "कॉपी कर ली" msgid "Copy" msgstr "कॉपी" -#: src/view/screens/ProfileList.tsx:384 +#: src/view/screens/ProfileList.tsx:385 msgid "Copy link to list" msgstr "" @@ -609,11 +613,11 @@ msgstr "पोस्ट टेक्स्ट कॉपी करें" msgid "Copyright Policy" msgstr "कॉपीराइट नीति" -#: src/view/screens/ProfileFeed.tsx:94 +#: src/view/screens/ProfileFeed.tsx:95 msgid "Could not load feed" msgstr "फ़ीड लोड नहीं कर सकता" -#: src/view/screens/ProfileList.tsx:830 +#: src/view/screens/ProfileList.tsx:839 msgid "Could not load list" msgstr "सूची लोड नहीं कर सकता" @@ -661,8 +665,8 @@ msgstr "खाता हटाएं" msgid "Delete app password" msgstr "अप्प पासवर्ड हटाएं" -#: src/view/screens/ProfileList.tsx:351 -#: src/view/screens/ProfileList.tsx:411 +#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:412 msgid "Delete List" msgstr "सूची हटाएँ" @@ -761,7 +765,7 @@ msgstr "प्रत्येक कोड एक बार काम करत msgid "Edit image" msgstr "छवि संपादित करें" -#: src/view/screens/ProfileList.tsx:399 +#: src/view/screens/ProfileList.tsx:400 msgid "Edit list details" msgstr "सूची विवरण संपादित करें" @@ -786,14 +790,14 @@ msgstr "मेरी प्रोफ़ाइल संपादित करे msgid "Edit Saved Feeds" msgstr "एडिट सेव्ड फीड" -#: src/view/com/auth/create/Step2.tsx:90 +#: src/view/com/auth/create/Step2.tsx:108 #: src/view/com/auth/login/ForgotPasswordForm.tsx:148 #: src/view/com/modals/ChangeEmail.tsx:141 #: src/view/com/modals/Waitlist.tsx:88 msgid "Email" msgstr "ईमेल" -#: src/view/com/auth/create/Step2.tsx:81 +#: src/view/com/auth/create/Step2.tsx:99 msgid "Email address" msgstr "ईमेल" @@ -825,7 +829,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 "वह ईमेल दर्ज करें जिसका उपयोग आपने अपना खाता बनाने के लिए किया था। हम आपको एक \"reset code\" भेजेंगे ताकि आप एक नया पासवर्ड सेट कर सकें।" -#: src/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:104 msgid "Enter your email address" msgstr "अपना ईमेल पता दर्ज करें" @@ -854,7 +858,7 @@ msgstr "ऑल्ट टेक्स्ट" msgid "Failed to load recommended feeds" msgstr "अनुशंसित फ़ीड लोड करने में विफल" -#: src/view/screens/Feeds.tsx:554 +#: src/view/screens/Feeds.tsx:556 msgid "Feed offline" msgstr "फ़ीड ऑफ़लाइन है" @@ -862,7 +866,7 @@ msgstr "फ़ीड ऑफ़लाइन है" msgid "Feed Preferences" msgstr "फ़ीड प्राथमिकता" -#: src/view/shell/desktop/RightNav.tsx:65 +#: src/view/shell/desktop/RightNav.tsx:73 #: src/view/shell/Drawer.tsx:311 msgid "Feedback" msgstr "प्रतिक्रिया" @@ -870,7 +874,7 @@ msgstr "प्रतिक्रिया" #: src/view/screens/Feeds.tsx:475 #: src/view/screens/Profile.tsx:165 #: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:340 +#: src/view/shell/desktop/LeftNav.tsx:342 #: src/view/shell/Drawer.tsx:474 #: src/view/shell/Drawer.tsx:475 msgid "Feeds" @@ -884,11 +888,11 @@ msgstr "सामग्री को व्यवस्थित करने msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "फ़ीड कस्टम एल्गोरिदम हैं जिन्हें उपयोगकर्ता थोड़ी कोडिंग विशेषज्ञता के साथ बनाते हैं। <0/> अधिक जानकारी के लिए." -#: src/view/screens/Search/Search.tsx:414 +#: src/view/screens/Search/Search.tsx:427 msgid "Find users on Bluesky" msgstr "" -#: src/view/screens/Search/Search.tsx:412 +#: src/view/screens/Search/Search.tsx:425 msgid "Find users with the search tool on the right" msgstr "" @@ -945,11 +949,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:231 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Forgot" msgstr "भूल" -#: src/view/com/auth/login/LoginForm.tsx:228 +#: src/view/com/auth/login/LoginForm.tsx:229 msgid "Forgot password" msgstr "पासवर्ड भूल गए" @@ -973,15 +977,15 @@ msgstr "प्रारंभ करें" msgid "Go back" msgstr "वापस जाओ" -#: src/view/screens/ProfileFeed.tsx:103 -#: src/view/screens/ProfileFeed.tsx:108 -#: src/view/screens/ProfileList.tsx:839 -#: src/view/screens/ProfileList.tsx:844 +#: src/view/screens/ProfileFeed.tsx:104 +#: src/view/screens/ProfileFeed.tsx:109 +#: src/view/screens/ProfileList.tsx:848 +#: src/view/screens/ProfileList.tsx:853 msgid "Go Back" msgstr "वापस जाओ" #: src/view/com/auth/login/ForgotPasswordForm.tsx:181 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:279 #: src/view/com/auth/login/SetNewPasswordForm.tsx:163 msgid "Go to next" msgstr "अगला" @@ -990,7 +994,7 @@ msgstr "अगला" msgid "Handle" msgstr "हैंडल" -#: src/view/shell/desktop/RightNav.tsx:94 +#: src/view/shell/desktop/RightNav.tsx:102 #: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "सहायता" @@ -999,7 +1003,7 @@ msgstr "सहायता" msgid "Here is your app password." msgstr "यहां आपका ऐप पासवर्ड है." -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:324 #: src/view/com/util/moderation/ContentHider.tsx:103 msgid "Hide" msgstr "इसे छिपाएं" @@ -1012,7 +1016,7 @@ msgstr "" msgid "Hide this post?" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:308 +#: src/view/com/notifications/FeedItem.tsx:316 msgid "Hide user list" msgstr "उपयोगकर्ता सूची छुपाएँ" @@ -1045,7 +1049,7 @@ msgstr "" #~ msgstr "" #: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:304 +#: src/view/shell/desktop/LeftNav.tsx:306 #: src/view/shell/Drawer.tsx:398 #: src/view/shell/Drawer.tsx:399 msgid "Home" @@ -1105,7 +1109,7 @@ msgstr "आमंत्रण भेजो" msgid "Invite a Friend" msgstr "एक दोस्त को आमंत्रित करें" -#: src/view/com/auth/create/Step2.tsx:57 +#: src/view/com/auth/create/Step2.tsx:72 msgid "Invite code" msgstr "आमंत्रण कोड" @@ -1125,8 +1129,8 @@ msgstr "" msgid "Join the waitlist" msgstr "प्रतीक्षा सूची में शामिल हों" -#: src/view/com/auth/create/Step2.tsx:68 -#: src/view/com/auth/create/Step2.tsx:72 +#: src/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:90 msgid "Join the waitlist." msgstr "प्रतीक्षा सूची में शामिल हों।।" @@ -1190,7 +1194,7 @@ msgstr "चित्र पुस्तकालय" #~ msgid "Light" #~ msgstr "लाइट मोड" -#: src/view/screens/ProfileFeed.tsx:577 +#: src/view/screens/ProfileFeed.tsx:586 msgid "Like this feed" msgstr "इस फ़ीड को लाइक करो" @@ -1220,7 +1224,7 @@ msgid "List Name" msgstr "सूची का नाम" #: src/view/screens/Profile.tsx:166 -#: src/view/shell/desktop/LeftNav.tsx:377 +#: src/view/shell/desktop/LeftNav.tsx:379 #: src/view/shell/Drawer.tsx:490 #: src/view/shell/Drawer.tsx:491 msgid "Lists" @@ -1231,7 +1235,7 @@ msgstr "सूची" msgid "Load more posts" msgstr "अधिक पोस्ट लोड करें" -#: src/view/screens/Notifications.tsx:144 +#: src/view/screens/Notifications.tsx:148 msgid "Load new notifications" msgstr "नई सूचनाएं लोड करें" @@ -1279,7 +1283,7 @@ msgstr "" msgid "Mentioned users" msgstr "" -#: src/view/screens/Search/Search.tsx:529 +#: src/view/screens/Search/Search.tsx:537 msgid "Menu" msgstr "मेनू" @@ -1289,7 +1293,7 @@ msgstr "" #: src/view/screens/Moderation.tsx:64 #: src/view/screens/Settings.tsx:563 -#: src/view/shell/desktop/LeftNav.tsx:395 +#: src/view/shell/desktop/LeftNav.tsx:397 #: src/view/shell/Drawer.tsx:509 #: src/view/shell/Drawer.tsx:510 msgid "Moderation" @@ -1308,8 +1312,8 @@ msgid "More feeds" msgstr "अधिक फ़ीड" #: src/view/com/profile/ProfileHeader.tsx:548 -#: src/view/screens/ProfileFeed.tsx:360 -#: src/view/screens/ProfileList.tsx:583 +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileList.tsx:584 msgid "More options" msgstr "अधिक विकल्प" @@ -1321,15 +1325,15 @@ msgstr "अधिक विकल्प" msgid "Mute Account" msgstr "खाता म्यूट करें" -#: src/view/screens/ProfileList.tsx:510 +#: src/view/screens/ProfileList.tsx:511 msgid "Mute accounts" msgstr "खातों को म्यूट करें" -#: src/view/screens/ProfileList.tsx:457 +#: src/view/screens/ProfileList.tsx:458 msgid "Mute list" msgstr "" -#: src/view/screens/ProfileList.tsx:270 +#: src/view/screens/ProfileList.tsx:271 msgid "Mute these accounts?" msgstr "इन खातों को म्यूट करें?" @@ -1349,7 +1353,7 @@ msgstr "म्यूट किए गए खाते" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "म्यूट किए गए खातों की पोस्ट आपके फ़ीड और आपकी सूचनाओं से हटा दी जाती हैं। म्यूट पूरी तरह से निजी हैं." -#: src/view/screens/ProfileList.tsx:272 +#: src/view/screens/ProfileList.tsx:273 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "म्यूट करना निजी है. म्यूट किए गए खाते आपके साथ इंटरैक्ट कर सकते हैं, लेकिन आप उनकी पोस्ट नहीं देखेंगे या उनसे सूचनाएं प्राप्त नहीं करेंगे।" @@ -1388,23 +1392,23 @@ msgid "New" msgstr "नया" #: src/view/com/feeds/FeedPage.tsx:200 -#: src/view/screens/Feeds.tsx:505 +#: src/view/screens/Feeds.tsx:507 #: src/view/screens/Profile.tsx:354 -#: src/view/screens/ProfileFeed.tsx:430 -#: src/view/screens/ProfileList.tsx:193 -#: src/view/screens/ProfileList.tsx:221 -#: src/view/shell/desktop/LeftNav.tsx:247 +#: src/view/screens/ProfileFeed.tsx:431 +#: src/view/screens/ProfileList.tsx:194 +#: src/view/screens/ProfileList.tsx:222 +#: src/view/shell/desktop/LeftNav.tsx:248 msgid "New post" msgstr "नई पोस्ट" -#: src/view/shell/desktop/LeftNav.tsx:257 +#: src/view/shell/desktop/LeftNav.tsx:258 msgid "New Post" msgstr "नई पोस्ट" #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 -#: src/view/com/auth/login/LoginForm.tsx:281 +#: src/view/com/auth/login/LoginForm.tsx:282 #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -1415,14 +1419,15 @@ msgstr "अगला" msgid "Next image" msgstr "अगली फोटो" +#: src/view/screens/PreferencesHomeFeed.tsx:120 #: src/view/screens/PreferencesHomeFeed.tsx:191 #: src/view/screens/PreferencesHomeFeed.tsx:226 #: src/view/screens/PreferencesHomeFeed.tsx:263 msgid "No" msgstr "नहीं" -#: src/view/screens/ProfileFeed.tsx:570 -#: src/view/screens/ProfileList.tsx:711 +#: src/view/screens/ProfileFeed.tsx:579 +#: src/view/screens/ProfileList.tsx:720 msgid "No description" msgstr "कोई विवरण नहीं" @@ -1440,9 +1445,9 @@ msgstr "\"{query}\" के लिए कोई परिणाम नहीं #~ msgstr "{0} के लिए कोई परिणाम नहीं मिला" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:263 -#: src/view/screens/Search/Search.tsx:291 -#: src/view/screens/Search/Search.tsx:607 +#: src/view/screens/Search/Search.tsx:270 +#: src/view/screens/Search/Search.tsx:298 +#: src/view/screens/Search/Search.tsx:629 #: src/view/shell/desktop/Search.tsx:210 msgid "No results found for {query}" msgstr "" @@ -1471,10 +1476,10 @@ msgstr "" #~ msgid "Note: Third-party apps that display Bluesky content may not respect this setting." #~ msgstr "" -#: src/view/screens/Notifications.tsx:109 -#: src/view/screens/Notifications.tsx:133 +#: src/view/screens/Notifications.tsx:113 +#: src/view/screens/Notifications.tsx:137 #: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:359 +#: src/view/shell/desktop/LeftNav.tsx:361 #: src/view/shell/Drawer.tsx:435 #: src/view/shell/Drawer.tsx:436 msgid "Notifications" @@ -1504,7 +1509,7 @@ msgstr "ओपन नेविगेशन" msgid "Opens configurable language settings" msgstr "भाषा सेटिंग्स खोलें" -#: src/view/shell/desktop/RightNav.tsx:148 +#: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" msgstr "" @@ -1541,6 +1546,10 @@ msgstr "सिस्टम लॉग पेज खोलें" msgid "Opens the threads preferences" msgstr "धागे वरीयताओं को खोलता है" +#: src/view/com/modals/Threadgate.tsx:89 +msgid "Or combine these options:" +msgstr "" + #: src/view/com/auth/login/ChooseAccountForm.tsx:138 msgid "Other account" msgstr "अन्य खाता" @@ -1558,9 +1567,9 @@ msgstr "अन्य..।" msgid "Page not found" msgstr "पृष्ठ नहीं मिला" -#: src/view/com/auth/create/Step2.tsx:101 -#: src/view/com/auth/create/Step2.tsx:111 -#: src/view/com/auth/login/LoginForm.tsx:216 +#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:132 +#: src/view/com/auth/login/LoginForm.tsx:217 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 #: src/view/com/modals/DeleteAccount.tsx:191 msgid "Password" @@ -1662,7 +1671,7 @@ msgstr "प्राथमिक भाषा" msgid "Prioritize Your Follows" msgstr "अपने फ़ॉलोअर्स को प्राथमिकता दें" -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "गोपनीयता" @@ -1677,7 +1686,7 @@ msgid "Processing..." msgstr "प्रसंस्करण..." #: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:413 +#: src/view/shell/desktop/LeftNav.tsx:415 #: src/view/shell/Drawer.tsx:70 #: src/view/shell/Drawer.tsx:544 #: src/view/shell/Drawer.tsx:545 @@ -1744,7 +1753,7 @@ msgstr "फ़ीड हटाएँ" #: src/view/com/feeds/FeedSourceCard.tsx:105 #: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/screens/ProfileFeed.tsx:270 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Remove from my feeds" msgstr "मेरे फ़ीड से हटाएँ" @@ -1789,11 +1798,11 @@ msgstr "रिपोर्ट {collectionName}" msgid "Report Account" msgstr "रिपोर्ट" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:291 msgid "Report feed" msgstr "रिपोर्ट फ़ीड" -#: src/view/screens/ProfileList.tsx:425 +#: src/view/screens/ProfileList.tsx:426 msgid "Report List" msgstr "रिपोर्ट सूची" @@ -1828,7 +1837,7 @@ msgstr "अनुरोध बदलें" #~ msgid "Require alt text before posting" #~ msgstr "पोस्ट करने से पहले वैकल्पिक टेक्स्ट की आवश्यकता है" -#: src/view/com/auth/create/Step2.tsx:53 +#: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" msgstr "इस प्रदाता के लिए आवश्यक" @@ -1858,8 +1867,8 @@ msgstr "प्राथमिकताओं की स्थिति को #: src/view/com/auth/create/CreateAccount.tsx:163 #: src/view/com/auth/create/CreateAccount.tsx:167 -#: src/view/com/auth/login/LoginForm.tsx:258 -#: src/view/com/auth/login/LoginForm.tsx:261 +#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:65 msgid "Retry" @@ -1870,8 +1879,8 @@ msgstr "फिर से कोशिश करो" #~ msgstr "हैंडल बदलना फिर से कोशिश करो" #: src/view/com/modals/AltImage.tsx:115 -#: src/view/com/modals/BirthDateSettings.tsx:93 -#: src/view/com/modals/BirthDateSettings.tsx:96 +#: 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:249 #: src/view/com/modals/CreateOrEditList.tsx:257 @@ -1904,11 +1913,11 @@ msgid "Saved Feeds" msgstr "सहेजे गए फ़ीड" #: src/view/com/modals/ListAddRemoveUsers.tsx:75 -#: src/view/com/util/forms/SearchInput.tsx:64 -#: src/view/screens/Search/Search.tsx:393 -#: src/view/screens/Search/Search.tsx:559 +#: src/view/com/util/forms/SearchInput.tsx:65 +#: src/view/screens/Search/Search.tsx:406 +#: src/view/screens/Search/Search.tsx:572 #: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:322 +#: src/view/shell/desktop/LeftNav.tsx:324 #: src/view/shell/desktop/Search.tsx:161 #: src/view/shell/desktop/Search.tsx:170 #: src/view/shell/Drawer.tsx:362 @@ -2003,7 +2012,7 @@ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your f msgstr "इस सेटिंग को अपने निम्नलिखित फ़ीड में अपने सहेजे गए फ़ीड के नमूने दिखाने के लिए \"हाँ\" पर सेट करें। यह एक प्रयोगात्मक विशेषता है।।" #: src/view/screens/Settings.tsx:277 -#: src/view/shell/desktop/LeftNav.tsx:431 +#: src/view/shell/desktop/LeftNav.tsx:433 #: src/view/shell/Drawer.tsx:565 #: src/view/shell/Drawer.tsx:566 msgid "Settings" @@ -2015,11 +2024,11 @@ msgstr "यौन गतिविधि या कामुक नग्नत #: src/view/com/profile/ProfileHeader.tsx:338 #: src/view/com/util/forms/PostDropdownBtn.tsx:139 -#: src/view/screens/ProfileList.tsx:384 +#: src/view/screens/ProfileList.tsx:385 msgid "Share" msgstr "शेयर" -#: src/view/screens/ProfileFeed.tsx:302 +#: src/view/screens/ProfileFeed.tsx:303 msgid "Share feed" msgstr "" @@ -2056,7 +2065,7 @@ msgstr "अन्य सभी उत्तरों से पहले उन msgid "Show Reposts" msgstr "रीपोस्ट दिखाएँ" -#: src/view/com/notifications/FeedItem.tsx:337 +#: src/view/com/notifications/FeedItem.tsx:345 msgid "Show users" msgstr "लोग दिखाएँ" @@ -2155,15 +2164,15 @@ msgstr "Storybook" msgid "Submit" msgstr "" -#: src/view/screens/ProfileList.tsx:574 +#: src/view/screens/ProfileList.tsx:575 msgid "Subscribe" msgstr "सब्सक्राइब" -#: src/view/screens/ProfileList.tsx:570 +#: src/view/screens/ProfileList.tsx:571 msgid "Subscribe to this list" msgstr "इस सूची को सब्सक्राइब करें" -#: src/view/screens/Search/Search.tsx:349 +#: src/view/screens/Search/Search.tsx:362 msgid "Suggested Follows" msgstr "अनुशंसित लोग" @@ -2188,7 +2197,7 @@ msgstr "सिस्टम लॉग" msgid "Tall" msgstr "लंबा" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/view/shell/desktop/RightNav.tsx:93 msgid "Terms" msgstr "शर्तें" @@ -2199,7 +2208,7 @@ msgid "Terms of Service" msgstr "सेवा की शर्तें" #: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:50 +#: src/view/com/modals/report/InputIssueDetails.tsx:51 msgid "Text input field" msgstr "पाठ इनपुट फ़ील्ड" @@ -2300,8 +2309,8 @@ msgstr "ड्रॉपडाउन टॉगल करें" msgid "Transformations" msgstr "परिवर्तन" -#: src/view/com/post-thread/PostThreadItem.tsx:704 -#: src/view/com/post-thread/PostThreadItem.tsx:706 +#: src/view/com/post-thread/PostThreadItem.tsx:705 +#: src/view/com/post-thread/PostThreadItem.tsx:707 #: src/view/com/util/forms/PostDropdownBtn.tsx:111 msgid "Translate" msgstr "अनुवाद" @@ -2310,11 +2319,11 @@ msgstr "अनुवाद" msgid "Try again" msgstr "फिर से कोशिश करो" -#: src/view/screens/ProfileList.tsx:472 +#: src/view/screens/ProfileList.tsx:473 msgid "Un-block list" msgstr "" -#: src/view/screens/ProfileList.tsx:457 +#: src/view/screens/ProfileList.tsx:458 msgid "Un-mute list" msgstr "" @@ -2350,7 +2359,7 @@ msgstr "अनम्यूट खाता" msgid "Unmute thread" msgstr "थ्रेड को अनम्यूट करें" -#: src/view/screens/ProfileList.tsx:440 +#: src/view/screens/ProfileList.tsx:441 msgid "Unpin moderation list" msgstr "" @@ -2395,11 +2404,11 @@ msgid "User Lists" msgstr "लोग सूचियाँ" #: src/view/com/auth/login/LoginForm.tsx:170 -#: src/view/com/auth/login/LoginForm.tsx:187 +#: src/view/com/auth/login/LoginForm.tsx:188 msgid "Username or email address" msgstr "यूजर नाम या ईमेल पता" -#: src/view/screens/ProfileList.tsx:738 +#: src/view/screens/ProfileList.tsx:747 msgid "Users" msgstr "यूजर लोग" @@ -2456,7 +2465,7 @@ msgstr "हम आपके हमारी सेवा में शामि #~ msgid "We're sorry, but this feed is currently receiving high traffic and is temporarily unavailable. Please try again later." #~ msgstr "" -#: src/view/screens/Search/Search.tsx:236 +#: src/view/screens/Search/Search.tsx:243 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "" @@ -2505,6 +2514,7 @@ msgstr "पोस्ट लिखो" msgid "Write your reply" msgstr "अपना जवाब दें" +#: src/view/screens/PreferencesHomeFeed.tsx:120 #: src/view/screens/PreferencesHomeFeed.tsx:192 #: src/view/screens/PreferencesHomeFeed.tsx:227 #: src/view/screens/PreferencesHomeFeed.tsx:262 @@ -2565,11 +2575,11 @@ msgstr "आपने अभी तक कोई खाता म्यूट न msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "आपको \"reset code\" के साथ एक ईमेल प्राप्त होगा। उस कोड को यहाँ दर्ज करें, फिर अपना नया पासवर्ड दर्ज करें।।" -#: src/view/com/auth/create/Step2.tsx:43 +#: src/view/com/auth/create/Step2.tsx:58 msgid "Your account" msgstr "आपका खाता" -#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:146 msgid "Your birth date" msgstr "जन्म तिथि" @@ -2599,7 +2609,7 @@ msgid "Your hosting provider" msgstr "आपका होस्टिंग प्रदाता" #: src/view/screens/Settings.tsx:402 -#: src/view/shell/desktop/RightNav.tsx:129 +#: src/view/shell/desktop/RightNav.tsx:137 #: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index d4b2ce3bd7..7adddc8f69 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -13,7 +13,7 @@ msgstr "" "Language-Team: Hima-Zinn, tkusano, dolciss, oboenikui, noritada\n" "Plural-Forms: \n" -#: src/view/shell/desktop/RightNav.tsx:160 +#: src/view/shell/desktop/RightNav.tsx:168 msgid "{0, plural, one {# invite code available} other {# invite codes available}}" msgstr "{0, plural, other {# 個の招待コードが利用可能}}" @@ -25,7 +25,7 @@ msgstr "{0}" msgid "{0} {purposeLabel} List" msgstr "{0} {purposeLabel} リスト" -#: src/view/shell/desktop/RightNav.tsx:143 +#: src/view/shell/desktop/RightNav.tsx:151 msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" msgstr "{invitesAvailable, plural, other {招待コード: # 個利用可能}}" @@ -79,7 +79,7 @@ msgstr "アカウントオプション" #: src/view/com/modals/ListAddRemoveUsers.tsx:264 #: src/view/com/modals/UserAddRemoveLists.tsx:193 -#: src/view/screens/ProfileList.tsx:754 +#: src/view/screens/ProfileList.tsx:763 msgid "Add" msgstr "追加" @@ -87,7 +87,7 @@ msgstr "追加" msgid "Add a content warning" msgstr "コンテンツの警告を追加" -#: src/view/screens/ProfileList.tsx:744 +#: src/view/screens/ProfileList.tsx:753 msgid "Add a user to this list" msgstr "リストにユーザーを追加" @@ -126,7 +126,7 @@ msgstr "次のDNSレコードをドメインに追加してください:" msgid "Add to Lists" msgstr "リストに追加" -#: src/view/screens/ProfileFeed.tsx:270 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Add to my feeds" msgstr "マイフィードに追加" @@ -167,7 +167,7 @@ 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/notifications/FeedItem.tsx:236 +#: src/view/com/notifications/FeedItem.tsx:237 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "および" @@ -216,7 +216,7 @@ msgstr "本当にアプリパスワード「{name}」を削除しますか?" msgid "Are you sure you'd like to discard this draft?" msgstr "本当にこの下書きを破棄しますか?" -#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:353 msgid "Are you sure?" msgstr "本当によろしいですか?" @@ -231,9 +231,9 @@ msgstr "芸術的または性的ではないヌード。" #: src/view/com/auth/create/CreateAccount.tsx:141 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:166 -#: src/view/com/auth/login/LoginForm.tsx:249 +#: src/view/com/auth/login/LoginForm.tsx:250 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 -#: src/view/com/modals/report/InputIssueDetails.tsx:45 +#: src/view/com/modals/report/InputIssueDetails.tsx:46 #: src/view/com/post-thread/PostThread.tsx:388 #: src/view/com/post-thread/PostThread.tsx:438 #: src/view/com/post-thread/PostThread.tsx:446 @@ -245,8 +245,8 @@ msgstr "戻る" msgid "Basics" msgstr "基本" -#: src/view/com/auth/create/Step2.tsx:131 -#: src/view/com/modals/BirthDateSettings.tsx:72 +#: src/view/com/auth/create/Step2.tsx:156 +#: src/view/com/modals/BirthDateSettings.tsx:73 msgid "Birthday" msgstr "誕生日" @@ -259,15 +259,15 @@ msgstr "誕生日:" msgid "Block Account" msgstr "アカウントをブロック" -#: src/view/screens/ProfileList.tsx:522 +#: src/view/screens/ProfileList.tsx:523 msgid "Block accounts" msgstr "アカウントをブロック" -#: src/view/screens/ProfileList.tsx:472 +#: src/view/screens/ProfileList.tsx:473 msgid "Block list" msgstr "リストをブロック" -#: src/view/screens/ProfileList.tsx:307 +#: src/view/screens/ProfileList.tsx:308 msgid "Block these accounts?" msgstr "これらのアカウントをブロックしますか?" @@ -291,7 +291,7 @@ msgstr "ブロック中のアカウントは、あなたのスレッドでの返 msgid "Blocked post." msgstr "投稿をブロックしました。" -#: src/view/screens/ProfileList.tsx:309 +#: src/view/screens/ProfileList.tsx:310 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "ブロックしたことは公開されます。ブロック中のアカウントは、あなたのスレッドでの返信、あなたへのメンション、その他の方法であなたとやり取りすることはできません。" @@ -360,7 +360,7 @@ msgstr "文字、数字、スペース、ハイフン、およびアンダース #: src/view/com/modals/LinkWarning.tsx:85 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 -#: src/view/screens/Search/Search.tsx:584 +#: src/view/screens/Search/Search.tsx:601 #: src/view/shell/desktop/Search.tsx:182 msgid "Cancel" msgstr "キャンセル" @@ -432,6 +432,10 @@ msgstr "おすすめのユーザーを確認してください。フォローす msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "入力したメールアドレスの受信トレイを確認して、以下に入力するための確認コードが記載されたメールが届いていないか確認してください:" +#: src/view/com/modals/Threadgate.tsx:72 +msgid "Choose \"Everybody\" or \"Nobody\"" +msgstr "" + #: src/view/com/modals/ServerInput.tsx:38 msgid "Choose Service" msgstr "サービスを選択" @@ -440,7 +444,7 @@ msgstr "サービスを選択" msgid "Choose the algorithms that power your experience with custom feeds." msgstr "カスタムフィードを使用してあなたの体験を強化するアルゴリズムを選択します。" -#: src/view/com/auth/create/Step2.tsx:106 +#: src/view/com/auth/create/Step2.tsx:127 msgid "Choose your password" msgstr "パスワードを選択" @@ -460,8 +464,8 @@ msgstr "すべてのストレージデータをクリア" msgid "Clear all storage data (restart after this)" msgstr "すべてのストレージデータをクリア(この後再起動します)" -#: src/view/com/util/forms/SearchInput.tsx:73 -#: src/view/screens/Search/Search.tsx:569 +#: src/view/com/util/forms/SearchInput.tsx:74 +#: src/view/screens/Search/Search.tsx:582 msgid "Clear search query" msgstr "検索クエリをクリア" @@ -522,7 +526,7 @@ msgid "Confirmation code" msgstr "確認コード" #: src/view/com/auth/create/CreateAccount.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:268 +#: src/view/com/auth/login/LoginForm.tsx:269 msgid "Connecting..." msgstr "接続中..." @@ -561,7 +565,7 @@ msgstr "コピーしました" msgid "Copy" msgstr "コピー" -#: src/view/screens/ProfileList.tsx:384 +#: src/view/screens/ProfileList.tsx:385 msgid "Copy link to list" msgstr "リストへのリンクをコピー" @@ -581,11 +585,11 @@ msgstr "投稿のテキストをコピー" msgid "Copyright Policy" msgstr "著作権ポリシー" -#: src/view/screens/ProfileFeed.tsx:94 +#: src/view/screens/ProfileFeed.tsx:95 msgid "Could not load feed" msgstr "フィードのロードに失敗しました" -#: src/view/screens/ProfileList.tsx:830 +#: src/view/screens/ProfileList.tsx:839 msgid "Could not load list" msgstr "リストのロードに失敗しました" @@ -629,8 +633,8 @@ msgstr "アカウントを削除" msgid "Delete app password" msgstr "アプリパスワードを削除" -#: src/view/screens/ProfileList.tsx:351 -#: src/view/screens/ProfileList.tsx:411 +#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:412 msgid "Delete List" msgstr "リストを削除" @@ -729,7 +733,7 @@ msgstr "それぞれのコードは一度ずつ動作します。定期的に招 msgid "Edit image" msgstr "画像を編集" -#: src/view/screens/ProfileList.tsx:399 +#: src/view/screens/ProfileList.tsx:400 msgid "Edit list details" msgstr "リストの詳細を編集" @@ -754,14 +758,14 @@ msgstr "プロフィールを編集" msgid "Edit Saved Feeds" msgstr "保存されたフィードを編集" -#: src/view/com/auth/create/Step2.tsx:90 +#: src/view/com/auth/create/Step2.tsx:108 #: src/view/com/auth/login/ForgotPasswordForm.tsx:148 #: src/view/com/modals/ChangeEmail.tsx:141 #: src/view/com/modals/Waitlist.tsx:88 msgid "Email" msgstr "メールアドレス" -#: src/view/com/auth/create/Step2.tsx:81 +#: src/view/com/auth/create/Step2.tsx:99 msgid "Email address" msgstr "メールアドレス" @@ -793,7 +797,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/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:104 msgid "Enter your email address" msgstr "メールアドレスを入力してください" @@ -822,7 +826,7 @@ msgstr "ALTテキストを展開" msgid "Failed to load recommended feeds" msgstr "おすすめのフィードのロードに失敗しました" -#: src/view/screens/Feeds.tsx:554 +#: src/view/screens/Feeds.tsx:556 msgid "Feed offline" msgstr "フィードはオフラインです" @@ -830,7 +834,7 @@ msgstr "フィードはオフラインです" msgid "Feed Preferences" msgstr "フィードの設定" -#: src/view/shell/desktop/RightNav.tsx:65 +#: src/view/shell/desktop/RightNav.tsx:73 #: src/view/shell/Drawer.tsx:311 msgid "Feedback" msgstr "フィードバック" @@ -838,7 +842,7 @@ msgstr "フィードバック" #: src/view/screens/Feeds.tsx:475 #: src/view/screens/Profile.tsx:165 #: src/view/shell/bottom-bar/BottomBar.tsx:181 -#: src/view/shell/desktop/LeftNav.tsx:340 +#: src/view/shell/desktop/LeftNav.tsx:342 #: src/view/shell/Drawer.tsx:474 #: src/view/shell/Drawer.tsx:475 msgid "Feeds" @@ -852,11 +856,11 @@ msgstr "フィードはコンテンツを整理する為にユーザーによっ msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." msgstr "フィードはユーザーがプログラミングの専門知識を持って構築するカスタムアルゴリズムです。詳細については、<0/>を参照してください。" -#: src/view/screens/Search/Search.tsx:414 +#: src/view/screens/Search/Search.tsx:427 msgid "Find users on Bluesky" msgstr "Blueskyでユーザーを検索" -#: src/view/screens/Search/Search.tsx:412 +#: src/view/screens/Search/Search.tsx:425 msgid "Find users with the search tool on the right" msgstr "右側の検索ツールでユーザーを検索" @@ -913,11 +917,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:231 +#: src/view/com/auth/login/LoginForm.tsx:232 msgid "Forgot" msgstr "忘れた" -#: src/view/com/auth/login/LoginForm.tsx:228 +#: src/view/com/auth/login/LoginForm.tsx:229 msgid "Forgot password" msgstr "パスワードを忘れた" @@ -941,15 +945,15 @@ msgstr "はじめに" msgid "Go back" msgstr "戻る" -#: src/view/screens/ProfileFeed.tsx:103 -#: src/view/screens/ProfileFeed.tsx:108 -#: src/view/screens/ProfileList.tsx:839 -#: src/view/screens/ProfileList.tsx:844 +#: src/view/screens/ProfileFeed.tsx:104 +#: src/view/screens/ProfileFeed.tsx:109 +#: src/view/screens/ProfileList.tsx:848 +#: src/view/screens/ProfileList.tsx:853 msgid "Go Back" msgstr "戻る" #: src/view/com/auth/login/ForgotPasswordForm.tsx:181 -#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/LoginForm.tsx:279 #: src/view/com/auth/login/SetNewPasswordForm.tsx:163 msgid "Go to next" msgstr "次へ" @@ -958,7 +962,7 @@ msgstr "次へ" msgid "Handle" msgstr "ハンドル" -#: src/view/shell/desktop/RightNav.tsx:94 +#: src/view/shell/desktop/RightNav.tsx:102 #: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "ヘルプ" @@ -967,7 +971,7 @@ msgstr "ヘルプ" msgid "Here is your app password." msgstr "アプリパスワードをお知らせします。" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:324 #: src/view/com/util/moderation/ContentHider.tsx:103 msgid "Hide" msgstr "非表示" @@ -980,7 +984,7 @@ msgstr "" msgid "Hide this post?" msgstr "" -#: src/view/com/notifications/FeedItem.tsx:308 +#: src/view/com/notifications/FeedItem.tsx:316 msgid "Hide user list" msgstr "ユーザーリストを非表示" @@ -1005,7 +1009,7 @@ msgid "Hmm, we're having trouble finding this feed. It may have been deleted." msgstr "このフィードが見つからないようです。もしかしたら削除されたのかもしれません。" #: src/view/shell/bottom-bar/BottomBar.tsx:137 -#: src/view/shell/desktop/LeftNav.tsx:304 +#: src/view/shell/desktop/LeftNav.tsx:306 #: src/view/shell/Drawer.tsx:398 #: src/view/shell/Drawer.tsx:399 msgid "Home" @@ -1060,7 +1064,7 @@ msgstr "招待" msgid "Invite a Friend" msgstr "友達を招待" -#: src/view/com/auth/create/Step2.tsx:57 +#: src/view/com/auth/create/Step2.tsx:72 msgid "Invite code" msgstr "招待コード" @@ -1080,8 +1084,8 @@ msgstr "仕事" msgid "Join the waitlist" msgstr "Waitlistに参加" -#: src/view/com/auth/create/Step2.tsx:68 -#: src/view/com/auth/create/Step2.tsx:72 +#: src/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:90 msgid "Join the waitlist." msgstr "Waitlistに参加します。" @@ -1141,7 +1145,7 @@ msgstr "パスワードをリセットしましょう!" msgid "Library" msgstr "ライブラリー" -#: src/view/screens/ProfileFeed.tsx:577 +#: src/view/screens/ProfileFeed.tsx:586 msgid "Like this feed" msgstr "このフィードをいいね" @@ -1167,7 +1171,7 @@ msgid "List Name" msgstr "リストの名前" #: src/view/screens/Profile.tsx:166 -#: src/view/shell/desktop/LeftNav.tsx:377 +#: src/view/shell/desktop/LeftNav.tsx:379 #: src/view/shell/Drawer.tsx:490 #: src/view/shell/Drawer.tsx:491 msgid "Lists" @@ -1178,7 +1182,7 @@ msgstr "リスト" msgid "Load more posts" msgstr "投稿をさらにロード" -#: src/view/screens/Notifications.tsx:144 +#: src/view/screens/Notifications.tsx:148 msgid "Load new notifications" msgstr "最新の通知をロード" @@ -1226,7 +1230,7 @@ msgstr "メンションされたユーザー" msgid "Mentioned users" msgstr "メンションされたユーザー" -#: src/view/screens/Search/Search.tsx:529 +#: src/view/screens/Search/Search.tsx:537 msgid "Menu" msgstr "メニュー" @@ -1236,7 +1240,7 @@ msgstr "サーバーからのメッセージ" #: src/view/screens/Moderation.tsx:64 #: src/view/screens/Settings.tsx:563 -#: src/view/shell/desktop/LeftNav.tsx:395 +#: src/view/shell/desktop/LeftNav.tsx:397 #: src/view/shell/Drawer.tsx:509 #: src/view/shell/Drawer.tsx:510 msgid "Moderation" @@ -1255,8 +1259,8 @@ msgid "More feeds" msgstr "その他のフィード" #: src/view/com/profile/ProfileHeader.tsx:548 -#: src/view/screens/ProfileFeed.tsx:360 -#: src/view/screens/ProfileList.tsx:583 +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileList.tsx:584 msgid "More options" msgstr "その他のオプション" @@ -1264,15 +1268,15 @@ msgstr "その他のオプション" msgid "Mute Account" msgstr "アカウントをミュート" -#: src/view/screens/ProfileList.tsx:510 +#: src/view/screens/ProfileList.tsx:511 msgid "Mute accounts" msgstr "アカウントをミュート" -#: src/view/screens/ProfileList.tsx:457 +#: src/view/screens/ProfileList.tsx:458 msgid "Mute list" msgstr "リストをミュート" -#: src/view/screens/ProfileList.tsx:270 +#: src/view/screens/ProfileList.tsx:271 msgid "Mute these accounts?" msgstr "これらのアカウントをミュートしますか?" @@ -1292,7 +1296,7 @@ msgstr "ミュート中のアカウント" msgid "Muted accounts have their posts removed from your feed and from your notifications. Mutes are completely private." msgstr "ミュート中のアカウントの投稿は、フィードや通知から取り除かれます。ミュートの設定は完全に非公開です。" -#: src/view/screens/ProfileList.tsx:272 +#: src/view/screens/ProfileList.tsx:273 msgid "Muting is private. Muted accounts can interact with you, but you will not see their posts or receive notifications from them." msgstr "ミュートの設定は非公開です。ミュート中のアカウントはあなたと引き続き関わることができますが、そのアカウントの投稿や通知を受信することはできません。" @@ -1327,23 +1331,23 @@ msgid "New" msgstr "新規" #: src/view/com/feeds/FeedPage.tsx:200 -#: src/view/screens/Feeds.tsx:505 +#: src/view/screens/Feeds.tsx:507 #: src/view/screens/Profile.tsx:354 -#: src/view/screens/ProfileFeed.tsx:430 -#: src/view/screens/ProfileList.tsx:193 -#: src/view/screens/ProfileList.tsx:221 -#: src/view/shell/desktop/LeftNav.tsx:247 +#: src/view/screens/ProfileFeed.tsx:431 +#: src/view/screens/ProfileList.tsx:194 +#: src/view/screens/ProfileList.tsx:222 +#: src/view/shell/desktop/LeftNav.tsx:248 msgid "New post" msgstr "新しい投稿" -#: src/view/shell/desktop/LeftNav.tsx:257 +#: src/view/shell/desktop/LeftNav.tsx:258 msgid "New Post" msgstr "新しい投稿" #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 -#: src/view/com/auth/login/LoginForm.tsx:281 +#: src/view/com/auth/login/LoginForm.tsx:282 #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -1354,14 +1358,15 @@ msgstr "次へ" msgid "Next image" msgstr "次の画像" +#: src/view/screens/PreferencesHomeFeed.tsx:120 #: src/view/screens/PreferencesHomeFeed.tsx:191 #: src/view/screens/PreferencesHomeFeed.tsx:226 #: src/view/screens/PreferencesHomeFeed.tsx:263 msgid "No" msgstr "いいえ" -#: src/view/screens/ProfileFeed.tsx:570 -#: src/view/screens/ProfileList.tsx:711 +#: src/view/screens/ProfileFeed.tsx:579 +#: src/view/screens/ProfileList.tsx:720 msgid "No description" msgstr "説明はありません" @@ -1374,9 +1379,9 @@ msgid "No results found for \"{query}\"" msgstr "「{query}」の検索結果はありません" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 -#: src/view/screens/Search/Search.tsx:263 -#: src/view/screens/Search/Search.tsx:291 -#: src/view/screens/Search/Search.tsx:607 +#: src/view/screens/Search/Search.tsx:270 +#: src/view/screens/Search/Search.tsx:298 +#: src/view/screens/Search/Search.tsx:629 #: src/view/shell/desktop/Search.tsx:210 msgid "No results found for {query}" msgstr "「{query}」の検索結果はありません" @@ -1397,10 +1402,10 @@ msgstr "該当なし。" 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/view/screens/Notifications.tsx:109 -#: src/view/screens/Notifications.tsx:133 +#: src/view/screens/Notifications.tsx:113 +#: src/view/screens/Notifications.tsx:137 #: src/view/shell/bottom-bar/BottomBar.tsx:205 -#: src/view/shell/desktop/LeftNav.tsx:359 +#: src/view/shell/desktop/LeftNav.tsx:361 #: src/view/shell/Drawer.tsx:435 #: src/view/shell/Drawer.tsx:436 msgid "Notifications" @@ -1430,7 +1435,7 @@ msgstr "ナビゲーションを開く" msgid "Opens configurable language settings" msgstr "構成可能な言語設定を開く" -#: src/view/shell/desktop/RightNav.tsx:148 +#: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" msgstr "招待コードのリストを開く" @@ -1467,6 +1472,10 @@ msgstr "システムログのページを開く" msgid "Opens the threads preferences" msgstr "スレッドの設定を開く" +#: src/view/com/modals/Threadgate.tsx:89 +msgid "Or combine these options:" +msgstr "" + #: src/view/com/auth/login/ChooseAccountForm.tsx:138 msgid "Other account" msgstr "その他のアカウント" @@ -1484,9 +1493,9 @@ msgstr "その他..." msgid "Page not found" msgstr "ページが見つかりません" -#: src/view/com/auth/create/Step2.tsx:101 -#: src/view/com/auth/create/Step2.tsx:111 -#: src/view/com/auth/login/LoginForm.tsx:216 +#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:132 +#: src/view/com/auth/login/LoginForm.tsx:217 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 #: src/view/com/modals/DeleteAccount.tsx:191 msgid "Password" @@ -1588,7 +1597,7 @@ msgstr "第一言語" msgid "Prioritize Your Follows" msgstr "あなたのフォローを優先" -#: src/view/shell/desktop/RightNav.tsx:76 +#: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "プライバシー" @@ -1603,7 +1612,7 @@ msgid "Processing..." msgstr "処理中..." #: src/view/shell/bottom-bar/BottomBar.tsx:247 -#: src/view/shell/desktop/LeftNav.tsx:413 +#: src/view/shell/desktop/LeftNav.tsx:415 #: src/view/shell/Drawer.tsx:70 #: src/view/shell/Drawer.tsx:544 #: src/view/shell/Drawer.tsx:545 @@ -1665,7 +1674,7 @@ msgstr "フィードを削除" #: src/view/com/feeds/FeedSourceCard.tsx:105 #: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/screens/ProfileFeed.tsx:270 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Remove from my feeds" msgstr "マイフィードから削除" @@ -1710,11 +1719,11 @@ msgstr "{collectionName}を報告" msgid "Report Account" msgstr "アカウントを報告" -#: src/view/screens/ProfileFeed.tsx:290 +#: src/view/screens/ProfileFeed.tsx:291 msgid "Report feed" msgstr "フィードを報告" -#: src/view/screens/ProfileList.tsx:425 +#: src/view/screens/ProfileList.tsx:426 msgid "Report List" msgstr "リストを報告" @@ -1741,7 +1750,7 @@ msgstr "リポストしたユーザー" msgid "Request Change" msgstr "変更を要求" -#: src/view/com/auth/create/Step2.tsx:53 +#: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" msgstr "このプロバイダーに必要" @@ -1771,16 +1780,16 @@ msgstr "設定の状態をリセット" #: src/view/com/auth/create/CreateAccount.tsx:163 #: src/view/com/auth/create/CreateAccount.tsx:167 -#: src/view/com/auth/login/LoginForm.tsx:258 -#: src/view/com/auth/login/LoginForm.tsx:261 +#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:65 msgid "Retry" msgstr "再試行" #: src/view/com/modals/AltImage.tsx:115 -#: src/view/com/modals/BirthDateSettings.tsx:93 -#: src/view/com/modals/BirthDateSettings.tsx:96 +#: 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:249 #: src/view/com/modals/CreateOrEditList.tsx:257 @@ -1809,11 +1818,11 @@ msgid "Saved Feeds" msgstr "保存されたフィード" #: src/view/com/modals/ListAddRemoveUsers.tsx:75 -#: src/view/com/util/forms/SearchInput.tsx:64 -#: src/view/screens/Search/Search.tsx:393 -#: src/view/screens/Search/Search.tsx:559 +#: src/view/com/util/forms/SearchInput.tsx:65 +#: src/view/screens/Search/Search.tsx:406 +#: src/view/screens/Search/Search.tsx:572 #: src/view/shell/bottom-bar/BottomBar.tsx:159 -#: src/view/shell/desktop/LeftNav.tsx:322 +#: src/view/shell/desktop/LeftNav.tsx:324 #: src/view/shell/desktop/Search.tsx:161 #: src/view/shell/desktop/Search.tsx:170 #: src/view/shell/Drawer.tsx:362 @@ -1908,7 +1917,7 @@ msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your f msgstr "保存されたフィードのサンプルを次のフィードに表示するには、この設定を「はい」にします。これは実験的な機能です。" #: src/view/screens/Settings.tsx:277 -#: src/view/shell/desktop/LeftNav.tsx:431 +#: src/view/shell/desktop/LeftNav.tsx:433 #: src/view/shell/Drawer.tsx:565 #: src/view/shell/Drawer.tsx:566 msgid "Settings" @@ -1920,11 +1929,11 @@ msgstr "性的行為または性的なヌード。" #: src/view/com/profile/ProfileHeader.tsx:338 #: src/view/com/util/forms/PostDropdownBtn.tsx:139 -#: src/view/screens/ProfileList.tsx:384 +#: src/view/screens/ProfileList.tsx:385 msgid "Share" msgstr "共有" -#: src/view/screens/ProfileFeed.tsx:302 +#: src/view/screens/ProfileFeed.tsx:303 msgid "Share feed" msgstr "フィードを共有" @@ -1957,7 +1966,7 @@ msgstr "自分がフォローしているユーザーからの返信を、他の msgid "Show Reposts" msgstr "リポストを表示" -#: src/view/com/notifications/FeedItem.tsx:337 +#: src/view/com/notifications/FeedItem.tsx:345 msgid "Show users" msgstr "ユーザーを表示" @@ -2056,15 +2065,15 @@ msgstr "ストーリーブック" msgid "Submit" msgstr "送信" -#: src/view/screens/ProfileList.tsx:574 +#: src/view/screens/ProfileList.tsx:575 msgid "Subscribe" msgstr "登録" -#: src/view/screens/ProfileList.tsx:570 +#: src/view/screens/ProfileList.tsx:571 msgid "Subscribe to this list" msgstr "このリストに登録" -#: src/view/screens/Search/Search.tsx:349 +#: src/view/screens/Search/Search.tsx:362 msgid "Suggested Follows" msgstr "おすすめのフォロー" @@ -2085,7 +2094,7 @@ msgstr "システムログ" msgid "Tall" msgstr "トール" -#: src/view/shell/desktop/RightNav.tsx:85 +#: src/view/shell/desktop/RightNav.tsx:93 msgid "Terms" msgstr "条件" @@ -2096,7 +2105,7 @@ msgid "Terms of Service" msgstr "利用規約" #: src/view/com/modals/AppealLabel.tsx:70 -#: src/view/com/modals/report/InputIssueDetails.tsx:50 +#: src/view/com/modals/report/InputIssueDetails.tsx:51 msgid "Text input field" msgstr "テキストの入力フィールド" @@ -2197,8 +2206,8 @@ msgstr "ドロップダウンをトグル" msgid "Transformations" msgstr "変換" -#: src/view/com/post-thread/PostThreadItem.tsx:704 -#: src/view/com/post-thread/PostThreadItem.tsx:706 +#: src/view/com/post-thread/PostThreadItem.tsx:705 +#: src/view/com/post-thread/PostThreadItem.tsx:707 #: src/view/com/util/forms/PostDropdownBtn.tsx:111 msgid "Translate" msgstr "翻訳" @@ -2207,11 +2216,11 @@ msgstr "翻訳" msgid "Try again" msgstr "再試行" -#: src/view/screens/ProfileList.tsx:472 +#: src/view/screens/ProfileList.tsx:473 msgid "Un-block list" msgstr "リストでのブロックを解除" -#: src/view/screens/ProfileList.tsx:457 +#: src/view/screens/ProfileList.tsx:458 msgid "Un-mute list" msgstr "リストでのミュートを解除" @@ -2247,7 +2256,7 @@ msgstr "アカウントのミュートを解除" msgid "Unmute thread" msgstr "スレッドのミュートを解除" -#: src/view/screens/ProfileList.tsx:440 +#: src/view/screens/ProfileList.tsx:441 msgid "Unpin moderation list" msgstr "モデレーションリストのピン留めを解除" @@ -2292,11 +2301,11 @@ msgid "User Lists" msgstr "ユーザーリスト" #: src/view/com/auth/login/LoginForm.tsx:170 -#: src/view/com/auth/login/LoginForm.tsx:187 +#: src/view/com/auth/login/LoginForm.tsx:188 msgid "Username or email address" msgstr "ユーザー名またはメールアドレス" -#: src/view/screens/ProfileList.tsx:738 +#: src/view/screens/ProfileList.tsx:747 msgid "Users" msgstr "ユーザー" @@ -2341,7 +2350,7 @@ msgstr "サイトへアクセス" msgid "We're so excited to have you join us!" msgstr "私たちはあなたが参加してくれることをとても楽しみにしています!" -#: src/view/screens/Search/Search.tsx:236 +#: src/view/screens/Search/Search.tsx:243 msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." msgstr "大変申し訳ありませんが、検索を完了できませんでした。数分後に再試行してください。" @@ -2386,6 +2395,7 @@ msgstr "投稿を書く" msgid "Write your reply" msgstr "返信を書く" +#: src/view/screens/PreferencesHomeFeed.tsx:120 #: src/view/screens/PreferencesHomeFeed.tsx:192 #: src/view/screens/PreferencesHomeFeed.tsx:227 #: src/view/screens/PreferencesHomeFeed.tsx:262 @@ -2446,11 +2456,11 @@ msgstr "ミュートしているアカウントはまだありません。アカ msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "「リセットコード」が記載されたメールが届きます。ここにコードを入力し、新しいパスワードを入力します。" -#: src/view/com/auth/create/Step2.tsx:43 +#: src/view/com/auth/create/Step2.tsx:58 msgid "Your account" msgstr "あなたのアカウント" -#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:146 msgid "Your birth date" msgstr "生年月日" @@ -2480,7 +2490,7 @@ msgid "Your hosting provider" msgstr "ホスティングプロバイダー" #: src/view/screens/Settings.tsx:402 -#: src/view/shell/desktop/RightNav.tsx:129 +#: src/view/shell/desktop/RightNav.tsx:137 #: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "アプリパスワードを使用してログインすると、招待コードは非表示になります。" From b9fc1527495f8a9ed792cf4563650a9f442d62a1 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 28 Dec 2023 19:05:17 -0800 Subject: [PATCH 040/115] Remove the KeyboardAvoidingView in account creation (close #2333) (#2366) * Remove the keyboardavoidingview in account creation (close #2333) * Smaller pad on desktop/tablet --- src/view/com/auth/create/CreateAccount.tsx | 109 ++++++++++----------- 1 file changed, 54 insertions(+), 55 deletions(-) diff --git a/src/view/com/auth/create/CreateAccount.tsx b/src/view/com/auth/create/CreateAccount.tsx index a89e6fb34a..74307a631c 100644 --- a/src/view/com/auth/create/CreateAccount.tsx +++ b/src/view/com/auth/create/CreateAccount.tsx @@ -1,7 +1,6 @@ import React from 'react' import { ActivityIndicator, - KeyboardAvoidingView, ScrollView, StyleSheet, TouchableOpacity, @@ -28,6 +27,7 @@ import {IS_PROD} from '#/lib/constants' import {Step1} from './Step1' import {Step2} from './Step2' import {Step3} from './Step3' +import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' export function CreateAccount({onPressBack}: {onPressBack: () => void}) { const {screen} = useAnalytics() @@ -38,6 +38,7 @@ export function CreateAccount({onPressBack}: {onPressBack: () => void}) { const {createAccount} = useSessionApi() const {mutate: setBirthDate} = usePreferencesSetBirthDateMutation() const {mutate: setSavedFeeds} = useSetSaveFeedsMutation() + const {isTabletOrDesktop} = useWebMediaQueries() React.useEffect(() => { screen('CreateAccount') @@ -120,64 +121,62 @@ export function CreateAccount({onPressBack}: {onPressBack: () => void}) { title={_(msg`Create Account`)} description={_(msg`We're so excited to have you join us!`)}> - - - {uiState.step === 1 && ( - - )} - {uiState.step === 2 && ( - - )} - {uiState.step === 3 && ( - - )} - - + + {uiState.step === 1 && ( + + )} + {uiState.step === 2 && ( + + )} + {uiState.step === 3 && ( + + )} + + + + + Back + + + + {uiState.canNext ? ( - - Back + {uiState.isProcessing ? ( + + ) : ( + + Next + + )} + + ) : serviceInfoError ? ( + refetchServiceInfo()} + accessibilityRole="button" + accessibilityLabel={_(msg`Retry`)} + accessibilityHint="" + accessibilityLiveRegion="polite"> + + Retry - - {uiState.canNext ? ( - - {uiState.isProcessing ? ( - - ) : ( - - Next - - )} - - ) : serviceInfoError ? ( - refetchServiceInfo()} - accessibilityRole="button" - accessibilityLabel={_(msg`Retry`)} - accessibilityHint="" - accessibilityLiveRegion="polite"> - - Retry - - - ) : serviceInfoIsFetching ? ( - <> - - - Connecting... - - - ) : undefined} - - - + ) : serviceInfoIsFetching ? ( + <> + + + Connecting... + + + ) : undefined} + + ) From 1f037a0b4351eda47bae41a8e6004dc0f452afb7 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 28 Dec 2023 19:05:50 -0800 Subject: [PATCH 041/115] Bump ios build number and android version code --- app.config.js | 4 ++-- src/locale/locales/de/messages.po | 6 +++--- src/locale/locales/en/messages.po | 6 +++--- src/locale/locales/es/messages.po | 6 +++--- src/locale/locales/fr/messages.po | 6 +++--- src/locale/locales/hi/messages.po | 6 +++--- src/locale/locales/ja/messages.po | 6 +++--- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/app.config.js b/app.config.js index e290c07c92..312b9ea201 100644 --- a/app.config.js +++ b/app.config.js @@ -9,12 +9,12 @@ module.exports = function () { /** * iOS build number. Must be incremented for each TestFlight version. */ - const IOS_BUILD_NUMBER = '1' + const IOS_BUILD_NUMBER = '2' /** * Android build number. Must be incremented for each release. */ - const ANDROID_VERSION_CODE = 52 + const ANDROID_VERSION_CODE = 53 /** * Uses built-in Expo env vars diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index 38ae34dd7d..b2f65b2ae9 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -598,7 +598,7 @@ msgstr "Liste konnte nicht geladen werden" msgid "Create a new account" msgstr "Ein neues Konto erstellen" -#: src/view/com/auth/create/CreateAccount.tsx:120 +#: src/view/com/auth/create/CreateAccount.tsx:121 msgid "Create Account" msgstr "Neues Konto erstellen" @@ -2208,7 +2208,7 @@ msgstr "Liste freigeben" msgid "Un-mute list" msgstr "Stummschaltliste aufheben" -#: src/view/com/auth/create/CreateAccount.tsx:64 +#: src/view/com/auth/create/CreateAccount.tsx:65 #: src/view/com/auth/login/Login.tsx:76 #: src/view/com/auth/login/LoginForm.tsx:117 msgid "Unable to contact your service. Please check your Internet connection." @@ -2330,7 +2330,7 @@ msgstr "Avatar sehen" msgid "Visit Site" msgstr "Seite besuchen" -#: src/view/com/auth/create/CreateAccount.tsx:121 +#: src/view/com/auth/create/CreateAccount.tsx:122 msgid "We're so excited to have you join us!" msgstr "Wir freuen uns, Sie bei uns begrüßen zu dürfen!" diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index 4256cbfaae..d1982e580a 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -630,7 +630,7 @@ msgstr "" msgid "Create a new account" msgstr "" -#: src/view/com/auth/create/CreateAccount.tsx:120 +#: src/view/com/auth/create/CreateAccount.tsx:121 msgid "Create Account" msgstr "" @@ -2335,7 +2335,7 @@ msgstr "" msgid "Un-mute list" msgstr "" -#: src/view/com/auth/create/CreateAccount.tsx:64 +#: src/view/com/auth/create/CreateAccount.tsx:65 #: src/view/com/auth/login/Login.tsx:76 #: src/view/com/auth/login/LoginForm.tsx:117 msgid "Unable to contact your service. Please check your Internet connection." @@ -2461,7 +2461,7 @@ msgstr "" msgid "Visit Site" msgstr "" -#: src/view/com/auth/create/CreateAccount.tsx:121 +#: src/view/com/auth/create/CreateAccount.tsx:122 msgid "We're so excited to have you join us!" msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index 1c6bb08d76..d2fd294bfc 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -598,7 +598,7 @@ msgstr "No se ha podido cargar la lista" msgid "Create a new account" msgstr "Crear una cuenta nueva" -#: src/view/com/auth/create/CreateAccount.tsx:120 +#: src/view/com/auth/create/CreateAccount.tsx:121 msgid "Create Account" msgstr "Crear una cuenta" @@ -2208,7 +2208,7 @@ msgstr "Desbloquear una lista" msgid "Un-mute list" msgstr "Desactivar la opción de silenciar la lista" -#: src/view/com/auth/create/CreateAccount.tsx:64 +#: src/view/com/auth/create/CreateAccount.tsx:65 #: src/view/com/auth/login/Login.tsx:76 #: src/view/com/auth/login/LoginForm.tsx:117 msgid "Unable to contact your service. Please check your Internet connection." @@ -2330,7 +2330,7 @@ msgstr "Ver el avatar" msgid "Visit Site" msgstr "Visitar el sitio" -#: src/view/com/auth/create/CreateAccount.tsx:121 +#: src/view/com/auth/create/CreateAccount.tsx:122 msgid "We're so excited to have you join us!" msgstr "¡Nos hace mucha ilusión que te unas a nosotros!" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 20e9214e80..58d7f39111 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -598,7 +598,7 @@ msgstr "Impossible de charger la liste" msgid "Create a new account" msgstr "Créer un nouveau compte" -#: src/view/com/auth/create/CreateAccount.tsx:120 +#: src/view/com/auth/create/CreateAccount.tsx:121 msgid "Create Account" msgstr "Créer un compte" @@ -2208,7 +2208,7 @@ msgstr "Débloquer liste" msgid "Un-mute list" msgstr "Désactiver sourdine sur cette liste" -#: src/view/com/auth/create/CreateAccount.tsx:64 +#: src/view/com/auth/create/CreateAccount.tsx:65 #: src/view/com/auth/login/Login.tsx:76 #: src/view/com/auth/login/LoginForm.tsx:117 msgid "Unable to contact your service. Please check your Internet connection." @@ -2330,7 +2330,7 @@ msgstr "Afficher avatar" msgid "Visit Site" msgstr "Visiter le site" -#: src/view/com/auth/create/CreateAccount.tsx:121 +#: src/view/com/auth/create/CreateAccount.tsx:122 msgid "We're so excited to have you join us!" msgstr "Nous sommes ravis de vous accueillir !" diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index 9dc10b96f6..ab67ff125b 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -626,7 +626,7 @@ msgstr "सूची लोड नहीं कर सकता" msgid "Create a new account" msgstr "नया खाता बनाएं" -#: src/view/com/auth/create/CreateAccount.tsx:120 +#: src/view/com/auth/create/CreateAccount.tsx:121 msgid "Create Account" msgstr "खाता बनाएँ" @@ -2327,7 +2327,7 @@ msgstr "" msgid "Un-mute list" msgstr "" -#: src/view/com/auth/create/CreateAccount.tsx:64 +#: src/view/com/auth/create/CreateAccount.tsx:65 #: src/view/com/auth/login/Login.tsx:76 #: src/view/com/auth/login/LoginForm.tsx:117 msgid "Unable to contact your service. Please check your Internet connection." @@ -2453,7 +2453,7 @@ msgstr "अवतार देखें" msgid "Visit Site" msgstr "साइट पर जाएं" -#: src/view/com/auth/create/CreateAccount.tsx:121 +#: src/view/com/auth/create/CreateAccount.tsx:122 msgid "We're so excited to have you join us!" msgstr "हम आपके हमारी सेवा में शामिल होने को लेकर बहुत उत्साहित हैं!" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index 7adddc8f69..c9d5573aad 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -598,7 +598,7 @@ msgstr "リストのロードに失敗しました" msgid "Create a new account" msgstr "新しいアカウントを作成" -#: src/view/com/auth/create/CreateAccount.tsx:120 +#: src/view/com/auth/create/CreateAccount.tsx:121 msgid "Create Account" msgstr "アカウントを作成" @@ -2224,7 +2224,7 @@ msgstr "リストでのブロックを解除" msgid "Un-mute list" msgstr "リストでのミュートを解除" -#: src/view/com/auth/create/CreateAccount.tsx:64 +#: src/view/com/auth/create/CreateAccount.tsx:65 #: src/view/com/auth/login/Login.tsx:76 #: src/view/com/auth/login/LoginForm.tsx:117 msgid "Unable to contact your service. Please check your Internet connection." @@ -2346,7 +2346,7 @@ msgstr "アバターを表示" msgid "Visit Site" msgstr "サイトへアクセス" -#: src/view/com/auth/create/CreateAccount.tsx:121 +#: src/view/com/auth/create/CreateAccount.tsx:122 msgid "We're so excited to have you join us!" msgstr "私たちはあなたが参加してくれることをとても楽しみにしています!" From 4e9e92f976b5c26879e9126f88aaeea0c8b8c3bc Mon Sep 17 00:00:00 2001 From: Noritada Kobayashi Date: Sat, 30 Dec 2023 02:15:13 +0900 Subject: [PATCH 042/115] Localize options in "Thread Preferences" screen (#2373) --- src/view/screens/PreferencesThreads.tsx | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/view/screens/PreferencesThreads.tsx b/src/view/screens/PreferencesThreads.tsx index 73d9419326..35a010b55d 100644 --- a/src/view/screens/PreferencesThreads.tsx +++ b/src/view/screens/PreferencesThreads.tsx @@ -75,10 +75,16 @@ export function PreferencesThreads({navigation}: Props) { setThreadViewPrefs({sort: key})} initialSelection={preferences?.threadViewPrefs?.sort} @@ -97,7 +103,7 @@ export function PreferencesThreads({navigation}: Props) { setThreadViewPrefs({ @@ -120,7 +126,7 @@ export function PreferencesThreads({navigation}: Props) { setThreadViewPrefs({ From 478defce6edfc0e4fc8ad2da466567aa7a13fc18 Mon Sep 17 00:00:00 2001 From: Hailey Date: Fri, 29 Dec 2023 21:42:18 -0800 Subject: [PATCH 043/115] patch expo-image-picker to support "browse" --- patches/expo-image-picker+14.7.1.patch | 64 ++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 patches/expo-image-picker+14.7.1.patch diff --git a/patches/expo-image-picker+14.7.1.patch b/patches/expo-image-picker+14.7.1.patch new file mode 100644 index 0000000000..75fa6598af --- /dev/null +++ b/patches/expo-image-picker+14.7.1.patch @@ -0,0 +1,64 @@ +diff --git a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt +index ff15c91..bc868d1 100644 +--- a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt ++++ b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt +@@ -26,30 +26,16 @@ import java.io.Serializable + * @see [androidx.activity.result.contract.ActivityResultContracts.GetMultipleContents] + */ + internal class ImageLibraryContract( +- private val appContextProvider: AppContextProvider ++ private val appContextProvider: AppContextProvider, + ) : AppContextActivityResultContract { + private val contentResolver: ContentResolver + get() = appContextProvider.appContext.reactContext?.contentResolver + ?: throw Exceptions.ReactContextLost() + + override fun createIntent(context: Context, input: ImageLibraryContractOptions): Intent { +- val request = PickVisualMediaRequest.Builder() +- .setMediaType( +- when (input.options.mediaTypes) { +- MediaTypes.VIDEOS -> { +- PickVisualMedia.VideoOnly +- } +- +- MediaTypes.IMAGES -> { +- PickVisualMedia.ImageOnly +- } +- +- else -> { +- PickVisualMedia.ImageAndVideo +- } +- } +- ) +- .build() ++ val intent = Intent(Intent.ACTION_GET_CONTENT) ++ .addCategory(Intent.CATEGORY_OPENABLE) ++ .setType("image/*") + + if (input.options.allowsMultipleSelection) { + val selectionLimit = input.options.selectionLimit +@@ -57,20 +43,20 @@ internal class ImageLibraryContract( + if (selectionLimit == 1) { + // If multiple selection is allowed but the limit is 1, we should ignore + // the multiple selection flag and just treat it as a single selection. +- return PickVisualMedia().createIntent(context, request) ++ intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, 1) + } + + if (selectionLimit > 1) { +- return PickMultipleVisualMedia(selectionLimit).createIntent(context, request) ++ intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, selectionLimit) + } + + // If the selection limit is 0, it is the same as unlimited selection. + if (selectionLimit == UNLIMITED_SELECTION) { +- return PickMultipleVisualMedia().createIntent(context, request) ++ intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true) + } + } + +- return PickVisualMedia().createIntent(context, request) ++ return intent + } + + override fun parseResult(input: ImageLibraryContractOptions, resultCode: Int, intent: Intent?) = From a4aefcc8f82d08ccbeab6a371078b7336115901c Mon Sep 17 00:00:00 2001 From: Hailey Date: Fri, 29 Dec 2023 21:53:17 -0800 Subject: [PATCH 044/115] allow multiple fix --- patches/expo-image-picker+14.7.1.patch | 1311 +++++++++++++++++++++++- 1 file changed, 1295 insertions(+), 16 deletions(-) diff --git a/patches/expo-image-picker+14.7.1.patch b/patches/expo-image-picker+14.7.1.patch index 75fa6598af..b699cbfb53 100644 --- a/patches/expo-image-picker+14.7.1.patch +++ b/patches/expo-image-picker+14.7.1.patch @@ -1,8 +1,1287 @@ +diff --git a/node_modules/expo-image-picker/android/build/.transforms/54f160321aabf84ba1261ef99240b1d4/results.bin b/node_modules/expo-image-picker/android/build/.transforms/54f160321aabf84ba1261ef99240b1d4/results.bin +new file mode 100644 +index 0000000..61a58fa +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/.transforms/54f160321aabf84ba1261ef99240b1d4/results.bin +@@ -0,0 +1 @@ ++i/classes_dex +diff --git a/node_modules/expo-image-picker/android/build/.transforms/5eb5c83568b220f4a5aabe44f90ea803/results.bin b/node_modules/expo-image-picker/android/build/.transforms/5eb5c83568b220f4a5aabe44f90ea803/results.bin +new file mode 100644 +index 0000000..e3f0ff0 +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/.transforms/5eb5c83568b220f4a5aabe44f90ea803/results.bin +@@ -0,0 +1 @@ ++i/classes_global-synthetics +diff --git a/node_modules/expo-image-picker/android/build/.transforms/b1869b7bbefffaeda4e3781b9873b757/results.bin b/node_modules/expo-image-picker/android/build/.transforms/b1869b7bbefffaeda4e3781b9873b757/results.bin +new file mode 100644 +index 0000000..28bb879 +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/.transforms/b1869b7bbefffaeda4e3781b9873b757/results.bin +@@ -0,0 +1 @@ ++o/classes.jar +diff --git a/node_modules/expo-image-picker/android/build/.transforms/b1869b7bbefffaeda4e3781b9873b757/transformed/classes.jar b/node_modules/expo-image-picker/android/build/.transforms/b1869b7bbefffaeda4e3781b9873b757/transformed/classes.jar +new file mode 100644 +index 0000000..6a26189 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/.transforms/b1869b7bbefffaeda4e3781b9873b757/transformed/classes.jar differ +diff --git a/node_modules/expo-image-picker/android/build/.transforms/b7e7c9414109b0293abaf28b7bcb21a6/results.bin b/node_modules/expo-image-picker/android/build/.transforms/b7e7c9414109b0293abaf28b7bcb21a6/results.bin +new file mode 100644 +index 0000000..0d259dd +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/.transforms/b7e7c9414109b0293abaf28b7bcb21a6/results.bin +@@ -0,0 +1 @@ ++o/classes +diff --git a/node_modules/expo-image-picker/android/build/.transforms/b7e7c9414109b0293abaf28b7bcb21a6/transformed/classes/classes_dex/classes.dex b/node_modules/expo-image-picker/android/build/.transforms/b7e7c9414109b0293abaf28b7bcb21a6/transformed/classes/classes_dex/classes.dex +new file mode 100644 +index 0000000..30c848d +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/.transforms/b7e7c9414109b0293abaf28b7bcb21a6/transformed/classes/classes_dex/classes.dex differ +diff --git a/node_modules/expo-image-picker/android/build/generated/source/buildConfig/debug/expo/modules/imagepicker/BuildConfig.java b/node_modules/expo-image-picker/android/build/generated/source/buildConfig/debug/expo/modules/imagepicker/BuildConfig.java +new file mode 100644 +index 0000000..c084b78 +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/generated/source/buildConfig/debug/expo/modules/imagepicker/BuildConfig.java +@@ -0,0 +1,10 @@ ++/** ++ * Automatically generated file. DO NOT MODIFY ++ */ ++package expo.modules.imagepicker; ++ ++public final class BuildConfig { ++ public static final boolean DEBUG = Boolean.parseBoolean("true"); ++ public static final String LIBRARY_PACKAGE_NAME = "expo.modules.imagepicker"; ++ public static final String BUILD_TYPE = "debug"; ++} +diff --git a/node_modules/expo-image-picker/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml b/node_modules/expo-image-picker/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +new file mode 100644 +index 0000000..6ced075 +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +@@ -0,0 +1,59 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +\ No newline at end of file +diff --git a/node_modules/expo-image-picker/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json b/node_modules/expo-image-picker/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +new file mode 100644 +index 0000000..694308a +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json +@@ -0,0 +1,18 @@ ++{ ++ "version": 3, ++ "artifactType": { ++ "type": "AAPT_FRIENDLY_MERGED_MANIFESTS", ++ "kind": "Directory" ++ }, ++ "applicationId": "expo.modules.imagepicker", ++ "variantName": "debug", ++ "elements": [ ++ { ++ "type": "SINGLE", ++ "filters": [], ++ "attributes": [], ++ "outputFile": "AndroidManifest.xml" ++ } ++ ], ++ "elementType": "File" ++} +\ No newline at end of file +diff --git a/node_modules/expo-image-picker/android/build/intermediates/aar_metadata/debug/aar-metadata.properties b/node_modules/expo-image-picker/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +new file mode 100644 +index 0000000..776557e +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/intermediates/aar_metadata/debug/aar-metadata.properties +@@ -0,0 +1,5 @@ ++aarFormatVersion=1.0 ++aarMetadataVersion=1.0 ++minCompileSdk=1 ++minCompileSdkExtension=0 ++minAndroidGradlePluginVersion=1.0.0 +diff --git a/node_modules/expo-image-picker/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json b/node_modules/expo-image-picker/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +new file mode 100644 +index 0000000..9e26dfe +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +@@ -0,0 +1 @@ ++{} +\ No newline at end of file +diff --git a/node_modules/expo-image-picker/android/build/intermediates/compile_library_classes_jar/debug/classes.jar b/node_modules/expo-image-picker/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +new file mode 100644 +index 0000000..1403112 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/intermediates/compile_library_classes_jar/debug/classes.jar differ +diff --git a/node_modules/expo-image-picker/android/build/intermediates/compile_r_class_jar/debug/R.jar b/node_modules/expo-image-picker/android/build/intermediates/compile_r_class_jar/debug/R.jar +new file mode 100644 +index 0000000..35338b2 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/intermediates/compile_r_class_jar/debug/R.jar differ +diff --git a/node_modules/expo-image-picker/android/build/intermediates/compile_symbol_list/debug/R.txt b/node_modules/expo-image-picker/android/build/intermediates/compile_symbol_list/debug/R.txt +new file mode 100644 +index 0000000..41f932b +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/intermediates/compile_symbol_list/debug/R.txt +@@ -0,0 +1 @@ ++int xml image_picker_provider_paths 0x0 +diff --git a/node_modules/expo-image-picker/android/build/intermediates/compiled_local_resources/debug/out/xml_image_picker_provider_paths.xml.flat b/node_modules/expo-image-picker/android/build/intermediates/compiled_local_resources/debug/out/xml_image_picker_provider_paths.xml.flat +new file mode 100644 +index 0000000..f26d7f0 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/intermediates/compiled_local_resources/debug/out/xml_image_picker_provider_paths.xml.flat differ +diff --git a/node_modules/expo-image-picker/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties b/node_modules/expo-image-picker/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +new file mode 100644 +index 0000000..0c5ebe0 +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +@@ -0,0 +1,2 @@ ++#Sun Dec 24 17:59:41 PST 2023 ++expo.modules.imagepicker.expo-image-picker-main-6\:/xml/image_picker_provider_paths.xml=/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/build/intermediates/packaged_res/debug/xml/image_picker_provider_paths.xml +diff --git a/node_modules/expo-image-picker/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml b/node_modules/expo-image-picker/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +new file mode 100644 +index 0000000..1f6a787 +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +@@ -0,0 +1,2 @@ ++ ++ +\ No newline at end of file +diff --git a/node_modules/expo-image-picker/android/build/intermediates/java_res/debug/out/META-INF/expo-image-picker_debug.kotlin_module b/node_modules/expo-image-picker/android/build/intermediates/java_res/debug/out/META-INF/expo-image-picker_debug.kotlin_module +new file mode 100644 +index 0000000..d9206b6 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/intermediates/java_res/debug/out/META-INF/expo-image-picker_debug.kotlin_module differ +diff --git a/node_modules/expo-image-picker/android/build/intermediates/javac/debug/classes/expo/modules/imagepicker/BuildConfig.class b/node_modules/expo-image-picker/android/build/intermediates/javac/debug/classes/expo/modules/imagepicker/BuildConfig.class +new file mode 100644 +index 0000000..a18a322 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/intermediates/javac/debug/classes/expo/modules/imagepicker/BuildConfig.class differ +diff --git a/node_modules/expo-image-picker/android/build/intermediates/local_only_symbol_list/debug/R-def.txt b/node_modules/expo-image-picker/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +new file mode 100644 +index 0000000..69743a7 +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +@@ -0,0 +1,3 @@ ++R_DEF: Internal format may change without notice ++local ++xml image_picker_provider_paths +diff --git a/node_modules/expo-image-picker/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt b/node_modules/expo-image-picker/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +new file mode 100644 +index 0000000..9cf9e0c +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +@@ -0,0 +1,99 @@ ++1 ++2 ++5 ++6 ++7 ++8 ++8-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:4:3-63 ++8-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:4:20-60 ++9 ++10 ++11 ++11-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:7:3-79 ++11-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:7:20-76 ++12 ++12-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:8:3-78 ++12-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:8:20-75 ++13 ++13-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:9:3-74 ++13-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:9:20-71 ++14 ++14-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:10:3-73 ++14-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:10:20-70 ++15 ++16 ++16-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:41:3-50:13 ++17 ++17-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:42:5-45:14 ++18 ++19 ++20 ++20-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:44:7-67 ++20-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:44:15-64 ++21 ++22 ++22-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:46:5-49:14 ++23 ++24 ++25 ++25-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:48:7-74 ++25-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:48:15-71 ++26 ++27 ++28 ++29 ++29-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:12:3-39:17 ++30 /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:13:5-24:15 ++31 android:name="com.google.android.gms.metadata.ModuleDependencies" ++31-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:14:7-72 ++32 android:enabled="false" ++32-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:15:7-30 ++33 android:exported="false" ++33-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:16:7-31 ++34 tools:ignore="MissingClass" > ++34-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:17:7-34 ++35 ++35-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:18:7-20:23 ++36 ++36-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:19:9-86 ++36-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:19:17-83 ++37 ++38 ++39 /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:21:7-23:28 ++40 android:name="photopicker_activity:0:required" ++40-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:22:9-55 ++41 android:value="" /> ++41-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:23:9-25 ++42 ++43 ++44 /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:26:5-28:53 ++45 android:name="com.canhub.cropper.CropImageActivity" ++45-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:27:7-58 ++46 android:theme="@style/Base.Theme.AppCompat" /> ++46-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:28:7-50 ++47 ++48 /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:30:5-38:16 ++49 android:name="expo.modules.imagepicker.fileprovider.ImagePickerFileProvider" ++49-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:31:7-59 ++50 android:authorities="${applicationId}.ImagePickerFileProvider" ++50-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:32:7-69 ++51 android:exported="false" ++51-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:33:7-31 ++52 android:grantUriPermissions="true" > ++52-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:34:7-41 ++53 /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:35:7-37:63 ++54 android:name="android.support.FILE_PROVIDER_PATHS" ++54-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:36:9-59 ++55 android:resource="@xml/image_picker_provider_paths" /> ++55-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:37:9-60 ++56 ++57 ++58 ++59 +diff --git a/node_modules/expo-image-picker/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml b/node_modules/expo-image-picker/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +new file mode 100644 +index 0000000..e22f8d2 +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +@@ -0,0 +1,59 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +\ No newline at end of file +diff --git a/node_modules/expo-image-picker/android/build/intermediates/navigation_json/debug/navigation.json b/node_modules/expo-image-picker/android/build/intermediates/navigation_json/debug/navigation.json +new file mode 100644 +index 0000000..0637a08 +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/intermediates/navigation_json/debug/navigation.json +@@ -0,0 +1 @@ ++[] +\ No newline at end of file +diff --git a/node_modules/expo-image-picker/android/build/intermediates/packaged_res/debug/xml/image_picker_provider_paths.xml b/node_modules/expo-image-picker/android/build/intermediates/packaged_res/debug/xml/image_picker_provider_paths.xml +new file mode 100644 +index 0000000..975823c +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/intermediates/packaged_res/debug/xml/image_picker_provider_paths.xml +@@ -0,0 +1,6 @@ ++ ++ ++ ++ ++ ++ +diff --git a/node_modules/expo-image-picker/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar b/node_modules/expo-image-picker/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +new file mode 100644 +index 0000000..827f6a6 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar differ +diff --git a/node_modules/expo-image-picker/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt b/node_modules/expo-image-picker/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +new file mode 100644 +index 0000000..14c08a2 +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +@@ -0,0 +1,2 @@ ++expo.modules.imagepicker ++xml image_picker_provider_paths +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +new file mode 100644 +index 0000000..e985e45 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +new file mode 100644 +index 0000000..5522b5a +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +new file mode 100644 +index 0000000..0d5f119 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +new file mode 100644 +index 0000000..cf8a30a +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +new file mode 100644 +index 0000000..695b4ed +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +new file mode 100644 +index 0000000..fcd7532 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +new file mode 100644 +index 0000000..b176bc1 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +new file mode 100644 +index 0000000..4654a88 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +new file mode 100644 +index 0000000..288d1b3 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +new file mode 100644 +index 0000000..b67c227 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +new file mode 100644 +index 0000000..77edd30 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +new file mode 100644 +index 0000000..c6d029d +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +new file mode 100644 +index 0000000..d0a7867 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +new file mode 100644 +index 0000000..4654a88 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +new file mode 100644 +index 0000000..288d1b3 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +new file mode 100644 +index 0000000..b67c227 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +new file mode 100644 +index 0000000..b3d7590 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +new file mode 100644 +index 0000000..c6d029d +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +new file mode 100644 +index 0000000..b69d9dd +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +new file mode 100644 +index 0000000..38206fe +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +new file mode 100644 +index 0000000..05301cb +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +new file mode 100644 +index 0000000..a9f80ae +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +new file mode 100644 +index 0000000..5cd5146 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +new file mode 100644 +index 0000000..cbdfdfa +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +new file mode 100644 +index 0000000..89e8172 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +new file mode 100644 +index 0000000..1a42195 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +new file mode 100644 +index 0000000..a57ce6c +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +new file mode 100644 +index 0000000..68c8906 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +new file mode 100644 +index 0000000..0e7cee8 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +new file mode 100644 +index 0000000..08088ff +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +new file mode 100644 +index 0000000..6bc1f56 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +new file mode 100644 +index 0000000..e540dad +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +new file mode 100644 +index 0000000..b701bcc +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +new file mode 100644 +index 0000000..a9f80ae +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +new file mode 100644 +index 0000000..33c7d6c +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +new file mode 100644 +index 0000000..d8d9406 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +new file mode 100644 +index 0000000..4b68038 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +new file mode 100644 +index 0000000..cfe2ca9 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +new file mode 100644 +index 0000000..6a5a0bc +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +new file mode 100644 +index 0000000..709f734 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +new file mode 100644 +index 0000000..5abaaac +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +new file mode 100644 +index 0000000..14c229c +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +new file mode 100644 +index 0000000..0e02fb1 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +new file mode 100644 +index 0000000..871d04f +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +new file mode 100644 +index 0000000..0d5f119 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +new file mode 100644 +index 0000000..cf8a30a +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +new file mode 100644 +index 0000000..18566ed +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +new file mode 100644 +index 0000000..cb42cd2 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +new file mode 100644 +index 0000000..37fe89e +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +new file mode 100644 +index 0000000..e5f1cff +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +new file mode 100644 +index 0000000..fd3b477 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +new file mode 100644 +index 0000000..fd5292d +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +new file mode 100644 +index 0000000..64528ae +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +new file mode 100644 +index 0000000..07a816a +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +new file mode 100644 +index 0000000..87df8bd +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +new file mode 100644 +index 0000000..63c62aa +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +new file mode 100644 +index 0000000..ef07157 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +new file mode 100644 +index 0000000..575d132 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +new file mode 100644 +index 0000000..350411b +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +new file mode 100644 +index 0000000..d32fe82 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +new file mode 100644 +index 0000000..4fef5ef +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +@@ -0,0 +1,2 @@ ++15 ++0 +\ No newline at end of file +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +new file mode 100644 +index 0000000..5cab27a +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +new file mode 100644 +index 0000000..871d04f +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +new file mode 100644 +index 0000000..0d5f119 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +new file mode 100644 +index 0000000..cf8a30a +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +new file mode 100644 +index 0000000..3763557 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +new file mode 100644 +index 0000000..d006df3 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +new file mode 100644 +index 0000000..e2335ca +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +new file mode 100644 +index 0000000..fbebe84 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +new file mode 100644 +index 0000000..933d553 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +new file mode 100644 +index 0000000..cf8a30a +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +new file mode 100644 +index 0000000..50a5434 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +new file mode 100644 +index 0000000..0c98456 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +new file mode 100644 +index 0000000..8b40cf4 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +new file mode 100644 +index 0000000..44e3774 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +new file mode 100644 +index 0000000..4325453 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +new file mode 100644 +index 0000000..9c73053 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +new file mode 100644 +index 0000000..08a6731 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +new file mode 100644 +index 0000000..4d3c569 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +new file mode 100644 +index 0000000..131e265 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +new file mode 100644 +index 0000000..b62326e +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin differ +diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +new file mode 100644 +index 0000000..6dee0d1 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin differ +diff --git a/node_modules/expo-image-picker/android/build/outputs/logs/manifest-merger-debug-report.txt b/node_modules/expo-image-picker/android/build/outputs/logs/manifest-merger-debug-report.txt +new file mode 100644 +index 0000000..ff82936 +--- /dev/null ++++ b/node_modules/expo-image-picker/android/build/outputs/logs/manifest-merger-debug-report.txt +@@ -0,0 +1,98 @@ ++-- Merging decision tree log --- ++manifest ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:1:1-51:12 ++INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:1:1-51:12 ++ package ++ INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml ++ xmlns:tools ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:2:3-49 ++ xmlns:android ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:1:11-69 ++uses-permission#android.permission.CAMERA ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:4:3-63 ++ android:name ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:4:20-60 ++uses-permission#android.permission.WRITE_EXTERNAL_STORAGE ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:7:3-79 ++ android:name ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:7:20-76 ++uses-permission#android.permission.READ_EXTERNAL_STORAGE ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:8:3-78 ++ android:name ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:8:20-75 ++uses-permission#android.permission.READ_MEDIA_IMAGES ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:9:3-74 ++ android:name ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:9:20-71 ++uses-permission#android.permission.READ_MEDIA_VIDEO ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:10:3-73 ++ android:name ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:10:20-70 ++application ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:12:3-39:17 ++service#com.google.android.gms.metadata.ModuleDependencies ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:13:5-24:15 ++ android:enabled ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:15:7-30 ++ android:exported ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:16:7-31 ++ tools:ignore ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:17:7-34 ++ android:name ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:14:7-72 ++intent-filter#action:name:com.google.android.gms.metadata.MODULE_DEPENDENCIES ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:18:7-20:23 ++action#com.google.android.gms.metadata.MODULE_DEPENDENCIES ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:19:9-86 ++ android:name ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:19:17-83 ++meta-data#photopicker_activity:0:required ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:21:7-23:28 ++ android:value ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:23:9-25 ++ android:name ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:22:9-55 ++activity#com.canhub.cropper.CropImageActivity ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:26:5-28:53 ++ android:theme ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:28:7-50 ++ android:name ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:27:7-58 ++provider#expo.modules.imagepicker.fileprovider.ImagePickerFileProvider ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:30:5-38:16 ++ android:grantUriPermissions ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:34:7-41 ++ android:authorities ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:32:7-69 ++ android:exported ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:33:7-31 ++ android:name ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:31:7-59 ++meta-data#android.support.FILE_PROVIDER_PATHS ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:35:7-37:63 ++ android:resource ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:37:9-60 ++ android:name ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:36:9-59 ++queries ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:41:3-50:13 ++intent#action:name:android.media.action.IMAGE_CAPTURE ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:42:5-45:14 ++action#android.media.action.IMAGE_CAPTURE ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:44:7-67 ++ android:name ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:44:15-64 ++intent#action:name:android.media.action.ACTION_VIDEO_CAPTURE ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:46:5-49:14 ++action#android.media.action.ACTION_VIDEO_CAPTURE ++ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:48:7-74 ++ android:name ++ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:48:15-71 ++uses-sdk ++INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml reason: use-sdk injection requested ++INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml ++INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml ++ android:targetSdkVersion ++ INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml ++ android:minSdkVersion ++ INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml +diff --git a/node_modules/expo-image-picker/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin b/node_modules/expo-image-picker/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +new file mode 100644 +index 0000000..d9da117 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/META-INF/expo-image-picker_debug.kotlin_module b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/META-INF/expo-image-picker_debug.kotlin_module +new file mode 100644 +index 0000000..d9206b6 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/META-INF/expo-image-picker_debug.kotlin_module differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/AdditionalFileData.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/AdditionalFileData.class +new file mode 100644 +index 0000000..29c4c36 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/AdditionalFileData.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/CameraType.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/CameraType.class +new file mode 100644 +index 0000000..e67c990 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/CameraType.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToCreateFileException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToCreateFileException.class +new file mode 100644 +index 0000000..cc5abc7 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToCreateFileException.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToDeduceTypeException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToDeduceTypeException.class +new file mode 100644 +index 0000000..5f76e0c +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToDeduceTypeException.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToExtractVideoMetadataException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToExtractVideoMetadataException.class +new file mode 100644 +index 0000000..84ccf7f +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToExtractVideoMetadataException.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToPickMediaException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToPickMediaException.class +new file mode 100644 +index 0000000..4ea9586 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToPickMediaException.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToReadFileException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToReadFileException.class +new file mode 100644 +index 0000000..0a7f6e8 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToReadFileException.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToWriteExifDataToFileException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToWriteExifDataToFileException.class +new file mode 100644 +index 0000000..bc25e2a +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToWriteExifDataToFileException.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToWriteFileException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToWriteFileException.class +new file mode 100644 +index 0000000..3ab5458 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToWriteFileException.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerAsset.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerAsset.class +new file mode 100644 +index 0000000..3cb3c4a +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerAsset.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerConstants$EXIF_TAGS$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerConstants$EXIF_TAGS$1.class +new file mode 100644 +index 0000000..ba11497 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerConstants$EXIF_TAGS$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerConstants.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerConstants.class +new file mode 100644 +index 0000000..3c690bb +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerConstants.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$5$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$5$1.class +new file mode 100644 +index 0000000..9c42071 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$5$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$6$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$6$1.class +new file mode 100644 +index 0000000..155f61b +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$6$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$1.class +new file mode 100644 +index 0000000..1c93c0c +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$2.class +new file mode 100644 +index 0000000..75ea01c +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$2.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$3.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$3.class +new file mode 100644 +index 0000000..2006e87 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$3.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8.class +new file mode 100644 +index 0000000..7ab31da +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$1.class +new file mode 100644 +index 0000000..2780147 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$10.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$10.class +new file mode 100644 +index 0000000..6092397 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$10.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$11.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$11.class +new file mode 100644 +index 0000000..2ed22da +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$11.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$12.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$12.class +new file mode 100644 +index 0000000..cf9affd +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$12.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$13.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$13.class +new file mode 100644 +index 0000000..0e14ea2 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$13.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$14.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$14.class +new file mode 100644 +index 0000000..4573f32 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$14.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$15.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$15.class +new file mode 100644 +index 0000000..24e8508 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$15.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$16.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$16.class +new file mode 100644 +index 0000000..195b81d +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$16.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$2.class +new file mode 100644 +index 0000000..4a95be0 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$2.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$3.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$3.class +new file mode 100644 +index 0000000..09adc6b +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$3.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$4.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$4.class +new file mode 100644 +index 0000000..cc44444 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$4.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$5.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$5.class +new file mode 100644 +index 0000000..e8b1ed6 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$5.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$6.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$6.class +new file mode 100644 +index 0000000..efb5420 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$6.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$7.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$7.class +new file mode 100644 +index 0000000..f761d29 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$7.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$8.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$8.class +new file mode 100644 +index 0000000..8708ec9 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$8.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$9.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$9.class +new file mode 100644 +index 0000000..ac1bfe2 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$9.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$1.class +new file mode 100644 +index 0000000..255f100 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$2.class +new file mode 100644 +index 0000000..2a37986 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$2.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$3.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$3.class +new file mode 100644 +index 0000000..5385e02 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$3.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$4.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$4.class +new file mode 100644 +index 0000000..bfb5990 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$4.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$5.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$5.class +new file mode 100644 +index 0000000..8c08fde +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$5.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$ensureCameraPermissionsAreGranted$2$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$ensureCameraPermissionsAreGranted$2$1.class +new file mode 100644 +index 0000000..9aa2203 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$ensureCameraPermissionsAreGranted$2$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchContract$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchContract$1.class +new file mode 100644 +index 0000000..8c00e00 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchContract$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchContract$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchContract$2.class +new file mode 100644 +index 0000000..9e70e41 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchContract$2.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchPicker$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchPicker$2.class +new file mode 100644 +index 0000000..acae345 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchPicker$2.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule.class +new file mode 100644 +index 0000000..a5d3b75 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModuleKt.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModuleKt.class +new file mode 100644 +index 0000000..84bcc9d +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModuleKt.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerOptions.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerOptions.class +new file mode 100644 +index 0000000..e8cacff +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerOptions.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerOptionsKt.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerOptionsKt.class +new file mode 100644 +index 0000000..57619fb +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerOptionsKt.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerResponse.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerResponse.class +new file mode 100644 +index 0000000..36e9b07 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerResponse.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$WhenMappings.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$WhenMappings.class +new file mode 100644 +index 0000000..158b981 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$WhenMappings.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$copyExifData$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$copyExifData$2.class +new file mode 100644 +index 0000000..d6eec57 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$copyExifData$2.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$copyFile$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$copyFile$2.class +new file mode 100644 +index 0000000..05fce03 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$copyFile$2.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$items$1$iterator$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$items$1$iterator$1.class +new file mode 100644 +index 0000000..e888969 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$items$1$iterator$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$items$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$items$1.class +new file mode 100644 +index 0000000..202a0ea +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$items$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt.class +new file mode 100644 +index 0000000..3a61baa +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$WhenMappings.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$WhenMappings.class +new file mode 100644 +index 0000000..054a08e +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$WhenMappings.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$handleImage$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$handleImage$1.class +new file mode 100644 +index 0000000..840bc0a +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$handleImage$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$handleVideo$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$handleVideo$1.class +new file mode 100644 +index 0000000..0e75c70 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$handleVideo$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$readExtras$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$readExtras$1.class +new file mode 100644 +index 0000000..1fd6419 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$readExtras$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler.class +new file mode 100644 +index 0000000..4e2c9c4 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaType.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaType.class +new file mode 100644 +index 0000000..fa6ab72 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaType.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes$Companion.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes$Companion.class +new file mode 100644 +index 0000000..60c7730 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes$Companion.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes$WhenMappings.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes$WhenMappings.class +new file mode 100644 +index 0000000..00e9ae9 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes$WhenMappings.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes.class +new file mode 100644 +index 0000000..e7f0623 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingActivityToHandleIntent.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingActivityToHandleIntent.class +new file mode 100644 +index 0000000..328f6cb +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingActivityToHandleIntent.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingCurrentActivityException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingCurrentActivityException.class +new file mode 100644 +index 0000000..9e646d3 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingCurrentActivityException.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingModuleException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingModuleException.class +new file mode 100644 +index 0000000..656b423 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingModuleException.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/PendingMediaPickingResult.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/PendingMediaPickingResult.class +new file mode 100644 +index 0000000..9880991 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/PendingMediaPickingResult.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/UserRejectedPermissionsException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/UserRejectedPermissionsException.class +new file mode 100644 +index 0000000..ba88d5b +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/UserRejectedPermissionsException.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CameraContract.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CameraContract.class +new file mode 100644 +index 0000000..62fe5ed +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CameraContract.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CameraContractOptions.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CameraContractOptions.class +new file mode 100644 +index 0000000..e8fddd3 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CameraContractOptions.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContract$parseResult$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContract$parseResult$1.class +new file mode 100644 +index 0000000..d83278c +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContract$parseResult$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContract.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContract.class +new file mode 100644 +index 0000000..a9ecf12 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContract.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContractOptions.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContractOptions.class +new file mode 100644 +index 0000000..03a69bd +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContractOptions.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImageLibraryContract.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImageLibraryContract.class +new file mode 100644 +index 0000000..3838a8a +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImageLibraryContract.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImageLibraryContractOptions.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImageLibraryContractOptions.class +new file mode 100644 +index 0000000..fcddffb +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImageLibraryContractOptions.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Cancelled.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Cancelled.class +new file mode 100644 +index 0000000..472d641 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Cancelled.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Error.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Error.class +new file mode 100644 +index 0000000..1680608 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Error.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Success.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Success.class +new file mode 100644 +index 0000000..429c1e2 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Success.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult.class +new file mode 100644 +index 0000000..fc70315 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$exportAsync$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$exportAsync$1.class +new file mode 100644 +index 0000000..bffee09 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$exportAsync$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$exportAsync$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$exportAsync$2.class +new file mode 100644 +index 0000000..11b48e8 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$exportAsync$2.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$readBitmap$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$readBitmap$1.class +new file mode 100644 +index 0000000..7282c7f +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$readBitmap$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$readBitmap$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$readBitmap$2.class +new file mode 100644 +index 0000000..6fc077b +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$readBitmap$2.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$writeImage$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$writeImage$2.class +new file mode 100644 +index 0000000..45925a1 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$writeImage$2.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter.class +new file mode 100644 +index 0000000..dc9d51d +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult$data$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult$data$2.class +new file mode 100644 +index 0000000..4edcac9 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult$data$2.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult$exif$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult$exif$2.class +new file mode 100644 +index 0000000..8417050 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult$exif$2.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult.class +new file mode 100644 +index 0000000..bb84177 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExporter.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExporter.class +new file mode 100644 +index 0000000..afd5871 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExporter.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/RawImageExporter$exportAsync$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/RawImageExporter$exportAsync$1.class +new file mode 100644 +index 0000000..1915121 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/RawImageExporter$exportAsync$1.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/RawImageExporter.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/RawImageExporter.class +new file mode 100644 +index 0000000..dca80ae +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/RawImageExporter.class differ +diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/fileprovider/ImagePickerFileProvider.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/fileprovider/ImagePickerFileProvider.class +new file mode 100644 +index 0000000..9f91bb9 +Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/fileprovider/ImagePickerFileProvider.class differ diff --git a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt -index ff15c91..bc868d1 100644 +index ff15c91..41aaf12 100644 --- a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt +++ b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt -@@ -26,30 +26,16 @@ import java.io.Serializable +@@ -26,51 +26,26 @@ import java.io.Serializable * @see [androidx.activity.result.contract.ActivityResultContracts.GetMultipleContents] */ internal class ImageLibraryContract( @@ -36,25 +1315,25 @@ index ff15c91..bc868d1 100644 + .setType("image/*") if (input.options.allowsMultipleSelection) { - val selectionLimit = input.options.selectionLimit -@@ -57,20 +43,20 @@ internal class ImageLibraryContract( - if (selectionLimit == 1) { - // If multiple selection is allowed but the limit is 1, we should ignore - // the multiple selection flag and just treat it as a single selection. +- val selectionLimit = input.options.selectionLimit +- +- if (selectionLimit == 1) { +- // If multiple selection is allowed but the limit is 1, we should ignore +- // the multiple selection flag and just treat it as a single selection. - return PickVisualMedia().createIntent(context, request) -+ intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, 1) ++ if(input.options.selectionLimit == 1) { ++ return intent } - if (selectionLimit > 1) { +- if (selectionLimit > 1) { - return PickMultipleVisualMedia(selectionLimit).createIntent(context, request) -+ intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, selectionLimit) - } - - // If the selection limit is 0, it is the same as unlimited selection. - if (selectionLimit == UNLIMITED_SELECTION) { +- } +- +- // If the selection limit is 0, it is the same as unlimited selection. +- if (selectionLimit == UNLIMITED_SELECTION) { - return PickMultipleVisualMedia().createIntent(context, request) -+ intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true) - } +- } ++ intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true) } - return PickVisualMedia().createIntent(context, request) From 54e6ed8ebc3db55521c1f36009274dd858a3166c Mon Sep 17 00:00:00 2001 From: Hailey Date: Fri, 29 Dec 2023 22:00:52 -0800 Subject: [PATCH 045/115] ensure no more than four assets, show toast if more --- src/lib/media/picker.shared.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/media/picker.shared.ts b/src/lib/media/picker.shared.ts index 00b09c6b87..8bade34e25 100644 --- a/src/lib/media/picker.shared.ts +++ b/src/lib/media/picker.shared.ts @@ -4,6 +4,7 @@ import { MediaTypeOptions, } from 'expo-image-picker' import {getDataUriSize} from './util' +import * as Toast from 'view/com/util/Toast' export async function openPicker(opts?: ImagePickerOptions) { const response = await launchImageLibraryAsync({ @@ -13,7 +14,11 @@ export async function openPicker(opts?: ImagePickerOptions) { ...opts, }) - return (response.assets ?? []).map(image => ({ + if (response.assets && response.assets.length > 4) { + Toast.show('You may only select up to 4 images') + } + + return (response.assets ?? []).slice(0, 4).map(image => ({ mime: 'image/jpeg', height: image.height, width: image.width, From d9e68d160411a8baf7c69161a38943aabac7283d Mon Sep 17 00:00:00 2001 From: Rahul Yadav <52163880+rahulyadav5524@users.noreply.github.com> Date: Sat, 30 Dec 2023 14:46:27 +0530 Subject: [PATCH 046/115] Show setting header in web --- src/view/screens/Settings.tsx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/view/screens/Settings.tsx b/src/view/screens/Settings.tsx index d48112dae3..16efdf3649 100644 --- a/src/view/screens/Settings.tsx +++ b/src/view/screens/Settings.tsx @@ -147,7 +147,7 @@ export function SettingsScreen({}: Props) { const setRequireAltTextEnabled = useSetRequireAltTextEnabled() const onboardingDispatch = useOnboardingDispatch() const navigation = useNavigation() - const {isMobile} = useWebMediaQueries() + const {isMobile, isTabletOrDesktop} = useWebMediaQueries() const {screen, track} = useAnalytics() const {openModal} = useModalControls() const {isSwitchingAccounts, accounts, currentAccount} = useSession() @@ -273,11 +273,17 @@ export function SettingsScreen({}: Props) { }, []) return ( - - + + {currentAccount ? ( @@ -752,7 +758,7 @@ export function SettingsScreen({}: Props) { - + ) } @@ -897,4 +903,14 @@ const styles = StyleSheet.create({ alignItems: 'center', paddingLeft: 18, }, + desktopContainer: { + borderLeftWidth: 1, + borderRightWidth: 1, + }, + noBorder: { + borderBottomWidth: 0, + borderTopWidth: 0, + borderRightWidth: 0, + borderLeftWidth: 0, + }, }) From 87245480d42f0956b06987944ca412538d4fb698 Mon Sep 17 00:00:00 2001 From: Hailey Date: Sun, 31 Dec 2023 16:05:07 -0800 Subject: [PATCH 047/115] who the hell knows --- src/Splash.tsx | 72 +++++++++++++++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 27 deletions(-) diff --git a/src/Splash.tsx b/src/Splash.tsx index fc70bb3b7b..0f4c836164 100644 --- a/src/Splash.tsx +++ b/src/Splash.tsx @@ -2,6 +2,7 @@ import React, {useCallback, useEffect} from 'react' import {View, StyleSheet, Image as RNImage} from 'react-native' import * as SplashScreen from 'expo-splash-screen' import {Image} from 'expo-image' +import {platformApiLevel} from 'expo-device' import Animated, { interpolate, runOnJS, @@ -136,34 +137,51 @@ export function Splash(props: React.PropsWithChildren) { /> )} - - + {platformApiLevel && platformApiLevel <= 27 ? ( + <> + {!isAnimationComplete && ( + + )} + + {props.children} - }> - {!isAnimationComplete && ( - - )} - - - {props.children} - - + + ) : ( + + + + }> + {!isAnimationComplete && ( + + )} + + {props.children} + + + )} ) } From cb6e164cd2be3f3a4c5b92a2ae90a412035cc2a6 Mon Sep 17 00:00:00 2001 From: Hailey Date: Sun, 31 Dec 2023 16:14:24 -0800 Subject: [PATCH 048/115] adjust api level --- src/Splash.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Splash.tsx b/src/Splash.tsx index 0f4c836164..4d8745877e 100644 --- a/src/Splash.tsx +++ b/src/Splash.tsx @@ -137,7 +137,7 @@ export function Splash(props: React.PropsWithChildren) { /> )} - {platformApiLevel && platformApiLevel <= 27 ? ( + {platformApiLevel && platformApiLevel <= 25 ? ( <> {!isAnimationComplete && ( Date: Tue, 2 Jan 2024 11:57:27 -0800 Subject: [PATCH 049/115] Add comment --- src/Splash.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Splash.tsx b/src/Splash.tsx index 4d8745877e..9d47d9323f 100644 --- a/src/Splash.tsx +++ b/src/Splash.tsx @@ -138,6 +138,7 @@ export function Splash(props: React.PropsWithChildren) { )} {platformApiLevel && platformApiLevel <= 25 ? ( + // Use a simple fade on older versions of android (work around a bug) <> {!isAnimationComplete && ( Date: Tue, 2 Jan 2024 12:16:28 -0800 Subject: [PATCH 050/115] emoji picker improvements (#2392) * rework emoji picker * dynamic position * always prefer the left if it will fit * add accessibility label * Update EmojiPicker.web.tsx oops. remove accessibility from fake button --- src/state/shell/composer.tsx | 1 + src/view/com/composer/Composer.tsx | 21 ++- .../com/composer/text-input/TextInput.tsx | 2 + .../com/composer/text-input/TextInput.web.tsx | 5 + .../text-input/web/EmojiPicker.web.tsx | 142 +++++++++++------- src/view/shell/Composer.web.tsx | 26 ++++ 6 files changed, 137 insertions(+), 60 deletions(-) diff --git a/src/state/shell/composer.tsx b/src/state/shell/composer.tsx index bdf5e4a7a1..9cf8ef8deb 100644 --- a/src/state/shell/composer.tsx +++ b/src/state/shell/composer.tsx @@ -30,6 +30,7 @@ export interface ComposerOpts { onPost?: () => void quote?: ComposerOptsQuote mention?: string // handle of user to mention + openPicker?: (pos: DOMRect | undefined) => void } type StateContext = ComposerOpts | undefined diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 9f60923d61..b15afe6f02 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -6,6 +6,7 @@ import { Keyboard, KeyboardAvoidingView, Platform, + Pressable, ScrollView, StyleSheet, TouchableOpacity, @@ -46,7 +47,6 @@ import {Gallery} from './photos/Gallery' import {MAX_GRAPHEME_LENGTH} from 'lib/constants' import {LabelsBtn} from './labels/LabelsBtn' import {SelectLangBtn} from './select-language/SelectLangBtn' -import {EmojiPickerButton} from './text-input/web/EmojiPicker.web' import {insertMentionAt} from 'lib/strings/mention-manip' import {Trans, msg} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -70,6 +70,7 @@ export const ComposePost = observer(function ComposePost({ onPost, quote: initQuote, mention: initMention, + openPicker, }: Props) { const {currentAccount} = useSession() const {data: currentProfile} = useProfileQuery({did: currentAccount!.did}) @@ -274,6 +275,10 @@ export const ComposePost = observer(function ComposePost({ const canSelectImages = useMemo(() => gallery.size < 4, [gallery.size]) const hasMedia = gallery.size > 0 || Boolean(extLink) + const onEmojiButtonPress = useCallback(() => { + openPicker?.(textInput.current?.getCursorPosition()) + }, [openPicker]) + return ( ) : null} - {!isMobile ? : null} + {!isMobile ? ( + + + + ) : null} diff --git a/src/view/com/composer/text-input/TextInput.tsx b/src/view/com/composer/text-input/TextInput.tsx index 7e39f6aedf..57bfd0a882 100644 --- a/src/view/com/composer/text-input/TextInput.tsx +++ b/src/view/com/composer/text-input/TextInput.tsx @@ -32,6 +32,7 @@ import {POST_IMG_MAX} from 'lib/constants' export interface TextInputRef { focus: () => void blur: () => void + getCursorPosition: () => DOMRect | undefined } interface TextInputProps extends ComponentProps { @@ -74,6 +75,7 @@ export const TextInput = forwardRef(function TextInputImpl( blur: () => { textInput.current?.blur() }, + getCursorPosition: () => undefined, // Not implemented on native })) const onChangeText = useCallback( diff --git a/src/view/com/composer/text-input/TextInput.web.tsx b/src/view/com/composer/text-input/TextInput.web.tsx index 206a3205b2..ec3a042a3e 100644 --- a/src/view/com/composer/text-input/TextInput.web.tsx +++ b/src/view/com/composer/text-input/TextInput.web.tsx @@ -22,6 +22,7 @@ import {useActorAutocompleteFn} from '#/state/queries/actor-autocomplete' export interface TextInputRef { focus: () => void blur: () => void + getCursorPosition: () => DOMRect | undefined } interface TextInputProps { @@ -169,6 +170,10 @@ export const TextInput = React.forwardRef(function TextInputImpl( React.useImperativeHandle(ref, () => ({ focus: () => {}, // TODO blur: () => {}, // TODO + getCursorPosition: () => { + const pos = editor?.state.selection.$anchor.pos + return pos ? editor?.view.coordsAtPos(pos) : undefined + }, })) return ( 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 f4b2d99b05..6d16403ff9 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,17 @@ import React from 'react' import Picker from '@emoji-mart/react' -import {StyleSheet, TouchableWithoutFeedback, View} from 'react-native' -import * as DropdownMenu from '@radix-ui/react-dropdown-menu' +import { + StyleSheet, + TouchableWithoutFeedback, + useWindowDimensions, + View, +} from 'react-native' import {textInputWebEmitter} from '../TextInput.web' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {usePalette} from 'lib/hooks/usePalette' -import {useMediaQuery} from 'react-responsive' + +const HEIGHT_OFFSET = 40 +const WIDTH_OFFSET = 100 +const PICKER_HEIGHT = 435 + HEIGHT_OFFSET +const PICKER_WIDTH = 350 + WIDTH_OFFSET export type Emoji = { aliases?: string[] @@ -18,59 +24,87 @@ export type Emoji = { unified: string } -export function EmojiPickerButton() { - const pal = usePalette('default') - const [open, setOpen] = React.useState(false) - const onOpenChange = (o: boolean) => { - setOpen(o) - } - const close = () => { - setOpen(false) - } - - return ( - - - - - - - - - - ) +export interface EmojiPickerState { + isOpen: boolean + pos: {top: number; left: number; right: number; bottom: number} } -export function EmojiPicker({close}: {close: () => void}) { +interface IProps { + state: EmojiPickerState + close: () => void +} + +export function EmojiPicker({state, close}: IProps) { + const {height, width} = useWindowDimensions() + + const isShiftDown = React.useRef(false) + + const position = React.useMemo(() => { + const fitsBelow = state.pos.top + PICKER_HEIGHT < height + const fitsAbove = PICKER_HEIGHT < state.pos.top + const placeOnLeft = PICKER_WIDTH < state.pos.left + const screenYMiddle = height / 2 - PICKER_HEIGHT / 2 + + if (fitsBelow) { + return { + top: state.pos.top + HEIGHT_OFFSET, + } + } else if (fitsAbove) { + return { + bottom: height - state.pos.bottom + HEIGHT_OFFSET, + } + } else { + return { + top: screenYMiddle, + left: placeOnLeft ? state.pos.left - PICKER_WIDTH : undefined, + right: !placeOnLeft + ? width - state.pos.right - PICKER_WIDTH + : undefined, + } + } + }, [state.pos, height, width]) + + React.useEffect(() => { + if (!state.isOpen) return + + const onKeyDown = (e: KeyboardEvent) => { + if (e.key === 'Shift') { + isShiftDown.current = true + } + } + const onKeyUp = (e: KeyboardEvent) => { + if (e.key === 'Shift') { + isShiftDown.current = false + } + } + window.addEventListener('keydown', onKeyDown, true) + window.addEventListener('keyup', onKeyUp, true) + + return () => { + window.removeEventListener('keydown', onKeyDown, true) + window.removeEventListener('keyup', onKeyUp, true) + } + }, [state.isOpen]) + const onInsert = (emoji: Emoji) => { textInputWebEmitter.emit('emoji-inserted', emoji) - close() + + if (!isShiftDown.current) { + close() + } } - const reducedPadding = useMediaQuery({query: '(max-height: 750px)'}) - const noPadding = useMediaQuery({query: '(max-height: 550px)'}) - const noPicker = useMediaQuery({query: '(max-height: 350px)'}) + + if (!state.isOpen) return null return ( - // eslint-disable-next-line react-native-a11y/has-valid-accessibility-descriptors - + {/* eslint-disable-next-line react-native-a11y/has-valid-accessibility-descriptors */} - { - e.stopPropagation() // prevent event from bubbling up to the mask - }}> - + e.stopPropagation()}> + { return (await import('./EmojiPickerData.json')).default @@ -93,15 +127,7 @@ const styles = StyleSheet.create({ right: 0, width: '100%', height: '100%', - }, - trigger: { - backgroundColor: 'transparent', - // @ts-ignore web only -prf - border: 'none', - paddingTop: 4, - paddingLeft: 12, - paddingRight: 12, - cursor: 'pointer', + alignItems: 'center', }, picker: { marginHorizontal: 'auto', diff --git a/src/view/shell/Composer.web.tsx b/src/view/shell/Composer.web.tsx index 73f9f540e0..ed64bc7995 100644 --- a/src/view/shell/Composer.web.tsx +++ b/src/view/shell/Composer.web.tsx @@ -5,6 +5,10 @@ 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 { + EmojiPicker, + EmojiPickerState, +} from 'view/com/composer/text-input/web/EmojiPicker.web.tsx' const BOTTOM_BAR_HEIGHT = 61 @@ -13,6 +17,26 @@ export function Composer({}: {winHeight: number}) { const {isMobile} = useWebMediaQueries() const state = useComposerState() + const [pickerState, setPickerState] = React.useState({ + isOpen: false, + pos: {top: 0, left: 0, right: 0, bottom: 0}, + }) + + const onOpenPicker = React.useCallback((pos: DOMRect | undefined) => { + if (!pos) return + setPickerState({ + isOpen: true, + pos, + }) + }, []) + + const onClosePicker = React.useCallback(() => { + setPickerState(prev => ({ + ...prev, + isOpen: false, + })) + }, []) + // rendering // = @@ -41,8 +65,10 @@ export function Composer({}: {winHeight: number}) { quote={state.quote} onPost={state.onPost} mention={state.mention} + openPicker={onOpenPicker} /> + ) } From eeafd03ddf234272223f8ac08e005b2da1358fe7 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Tue, 2 Jan 2024 12:52:36 -0800 Subject: [PATCH 051/115] Remove intermediate build files from patch --- patches/expo-image-picker+14.7.1.patch | 1279 ------------------------ 1 file changed, 1279 deletions(-) diff --git a/patches/expo-image-picker+14.7.1.patch b/patches/expo-image-picker+14.7.1.patch index b699cbfb53..2d37a182a8 100644 --- a/patches/expo-image-picker+14.7.1.patch +++ b/patches/expo-image-picker+14.7.1.patch @@ -1,1282 +1,3 @@ -diff --git a/node_modules/expo-image-picker/android/build/.transforms/54f160321aabf84ba1261ef99240b1d4/results.bin b/node_modules/expo-image-picker/android/build/.transforms/54f160321aabf84ba1261ef99240b1d4/results.bin -new file mode 100644 -index 0000000..61a58fa ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/.transforms/54f160321aabf84ba1261ef99240b1d4/results.bin -@@ -0,0 +1 @@ -+i/classes_dex -diff --git a/node_modules/expo-image-picker/android/build/.transforms/5eb5c83568b220f4a5aabe44f90ea803/results.bin b/node_modules/expo-image-picker/android/build/.transforms/5eb5c83568b220f4a5aabe44f90ea803/results.bin -new file mode 100644 -index 0000000..e3f0ff0 ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/.transforms/5eb5c83568b220f4a5aabe44f90ea803/results.bin -@@ -0,0 +1 @@ -+i/classes_global-synthetics -diff --git a/node_modules/expo-image-picker/android/build/.transforms/b1869b7bbefffaeda4e3781b9873b757/results.bin b/node_modules/expo-image-picker/android/build/.transforms/b1869b7bbefffaeda4e3781b9873b757/results.bin -new file mode 100644 -index 0000000..28bb879 ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/.transforms/b1869b7bbefffaeda4e3781b9873b757/results.bin -@@ -0,0 +1 @@ -+o/classes.jar -diff --git a/node_modules/expo-image-picker/android/build/.transforms/b1869b7bbefffaeda4e3781b9873b757/transformed/classes.jar b/node_modules/expo-image-picker/android/build/.transforms/b1869b7bbefffaeda4e3781b9873b757/transformed/classes.jar -new file mode 100644 -index 0000000..6a26189 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/.transforms/b1869b7bbefffaeda4e3781b9873b757/transformed/classes.jar differ -diff --git a/node_modules/expo-image-picker/android/build/.transforms/b7e7c9414109b0293abaf28b7bcb21a6/results.bin b/node_modules/expo-image-picker/android/build/.transforms/b7e7c9414109b0293abaf28b7bcb21a6/results.bin -new file mode 100644 -index 0000000..0d259dd ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/.transforms/b7e7c9414109b0293abaf28b7bcb21a6/results.bin -@@ -0,0 +1 @@ -+o/classes -diff --git a/node_modules/expo-image-picker/android/build/.transforms/b7e7c9414109b0293abaf28b7bcb21a6/transformed/classes/classes_dex/classes.dex b/node_modules/expo-image-picker/android/build/.transforms/b7e7c9414109b0293abaf28b7bcb21a6/transformed/classes/classes_dex/classes.dex -new file mode 100644 -index 0000000..30c848d -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/.transforms/b7e7c9414109b0293abaf28b7bcb21a6/transformed/classes/classes_dex/classes.dex differ -diff --git a/node_modules/expo-image-picker/android/build/generated/source/buildConfig/debug/expo/modules/imagepicker/BuildConfig.java b/node_modules/expo-image-picker/android/build/generated/source/buildConfig/debug/expo/modules/imagepicker/BuildConfig.java -new file mode 100644 -index 0000000..c084b78 ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/generated/source/buildConfig/debug/expo/modules/imagepicker/BuildConfig.java -@@ -0,0 +1,10 @@ -+/** -+ * Automatically generated file. DO NOT MODIFY -+ */ -+package expo.modules.imagepicker; -+ -+public final class BuildConfig { -+ public static final boolean DEBUG = Boolean.parseBoolean("true"); -+ public static final String LIBRARY_PACKAGE_NAME = "expo.modules.imagepicker"; -+ public static final String BUILD_TYPE = "debug"; -+} -diff --git a/node_modules/expo-image-picker/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml b/node_modules/expo-image-picker/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml -new file mode 100644 -index 0000000..6ced075 ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml -@@ -0,0 +1,59 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/node_modules/expo-image-picker/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json b/node_modules/expo-image-picker/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json -new file mode 100644 -index 0000000..694308a ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output-metadata.json -@@ -0,0 +1,18 @@ -+{ -+ "version": 3, -+ "artifactType": { -+ "type": "AAPT_FRIENDLY_MERGED_MANIFESTS", -+ "kind": "Directory" -+ }, -+ "applicationId": "expo.modules.imagepicker", -+ "variantName": "debug", -+ "elements": [ -+ { -+ "type": "SINGLE", -+ "filters": [], -+ "attributes": [], -+ "outputFile": "AndroidManifest.xml" -+ } -+ ], -+ "elementType": "File" -+} -\ No newline at end of file -diff --git a/node_modules/expo-image-picker/android/build/intermediates/aar_metadata/debug/aar-metadata.properties b/node_modules/expo-image-picker/android/build/intermediates/aar_metadata/debug/aar-metadata.properties -new file mode 100644 -index 0000000..776557e ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/intermediates/aar_metadata/debug/aar-metadata.properties -@@ -0,0 +1,5 @@ -+aarFormatVersion=1.0 -+aarMetadataVersion=1.0 -+minCompileSdk=1 -+minCompileSdkExtension=0 -+minAndroidGradlePluginVersion=1.0.0 -diff --git a/node_modules/expo-image-picker/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json b/node_modules/expo-image-picker/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json -new file mode 100644 -index 0000000..9e26dfe ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json -@@ -0,0 +1 @@ -+{} -\ No newline at end of file -diff --git a/node_modules/expo-image-picker/android/build/intermediates/compile_library_classes_jar/debug/classes.jar b/node_modules/expo-image-picker/android/build/intermediates/compile_library_classes_jar/debug/classes.jar -new file mode 100644 -index 0000000..1403112 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/intermediates/compile_library_classes_jar/debug/classes.jar differ -diff --git a/node_modules/expo-image-picker/android/build/intermediates/compile_r_class_jar/debug/R.jar b/node_modules/expo-image-picker/android/build/intermediates/compile_r_class_jar/debug/R.jar -new file mode 100644 -index 0000000..35338b2 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/intermediates/compile_r_class_jar/debug/R.jar differ -diff --git a/node_modules/expo-image-picker/android/build/intermediates/compile_symbol_list/debug/R.txt b/node_modules/expo-image-picker/android/build/intermediates/compile_symbol_list/debug/R.txt -new file mode 100644 -index 0000000..41f932b ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/intermediates/compile_symbol_list/debug/R.txt -@@ -0,0 +1 @@ -+int xml image_picker_provider_paths 0x0 -diff --git a/node_modules/expo-image-picker/android/build/intermediates/compiled_local_resources/debug/out/xml_image_picker_provider_paths.xml.flat b/node_modules/expo-image-picker/android/build/intermediates/compiled_local_resources/debug/out/xml_image_picker_provider_paths.xml.flat -new file mode 100644 -index 0000000..f26d7f0 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/intermediates/compiled_local_resources/debug/out/xml_image_picker_provider_paths.xml.flat differ -diff --git a/node_modules/expo-image-picker/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties b/node_modules/expo-image-picker/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties -new file mode 100644 -index 0000000..0c5ebe0 ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties -@@ -0,0 +1,2 @@ -+#Sun Dec 24 17:59:41 PST 2023 -+expo.modules.imagepicker.expo-image-picker-main-6\:/xml/image_picker_provider_paths.xml=/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/build/intermediates/packaged_res/debug/xml/image_picker_provider_paths.xml -diff --git a/node_modules/expo-image-picker/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml b/node_modules/expo-image-picker/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml -new file mode 100644 -index 0000000..1f6a787 ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml -@@ -0,0 +1,2 @@ -+ -+ -\ No newline at end of file -diff --git a/node_modules/expo-image-picker/android/build/intermediates/java_res/debug/out/META-INF/expo-image-picker_debug.kotlin_module b/node_modules/expo-image-picker/android/build/intermediates/java_res/debug/out/META-INF/expo-image-picker_debug.kotlin_module -new file mode 100644 -index 0000000..d9206b6 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/intermediates/java_res/debug/out/META-INF/expo-image-picker_debug.kotlin_module differ -diff --git a/node_modules/expo-image-picker/android/build/intermediates/javac/debug/classes/expo/modules/imagepicker/BuildConfig.class b/node_modules/expo-image-picker/android/build/intermediates/javac/debug/classes/expo/modules/imagepicker/BuildConfig.class -new file mode 100644 -index 0000000..a18a322 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/intermediates/javac/debug/classes/expo/modules/imagepicker/BuildConfig.class differ -diff --git a/node_modules/expo-image-picker/android/build/intermediates/local_only_symbol_list/debug/R-def.txt b/node_modules/expo-image-picker/android/build/intermediates/local_only_symbol_list/debug/R-def.txt -new file mode 100644 -index 0000000..69743a7 ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/intermediates/local_only_symbol_list/debug/R-def.txt -@@ -0,0 +1,3 @@ -+R_DEF: Internal format may change without notice -+local -+xml image_picker_provider_paths -diff --git a/node_modules/expo-image-picker/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt b/node_modules/expo-image-picker/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt -new file mode 100644 -index 0000000..9cf9e0c ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt -@@ -0,0 +1,99 @@ -+1 -+2 -+5 -+6 -+7 -+8 -+8-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:4:3-63 -+8-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:4:20-60 -+9 -+10 -+11 -+11-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:7:3-79 -+11-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:7:20-76 -+12 -+12-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:8:3-78 -+12-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:8:20-75 -+13 -+13-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:9:3-74 -+13-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:9:20-71 -+14 -+14-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:10:3-73 -+14-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:10:20-70 -+15 -+16 -+16-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:41:3-50:13 -+17 -+17-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:42:5-45:14 -+18 -+19 -+20 -+20-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:44:7-67 -+20-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:44:15-64 -+21 -+22 -+22-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:46:5-49:14 -+23 -+24 -+25 -+25-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:48:7-74 -+25-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:48:15-71 -+26 -+27 -+28 -+29 -+29-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:12:3-39:17 -+30 /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:13:5-24:15 -+31 android:name="com.google.android.gms.metadata.ModuleDependencies" -+31-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:14:7-72 -+32 android:enabled="false" -+32-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:15:7-30 -+33 android:exported="false" -+33-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:16:7-31 -+34 tools:ignore="MissingClass" > -+34-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:17:7-34 -+35 -+35-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:18:7-20:23 -+36 -+36-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:19:9-86 -+36-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:19:17-83 -+37 -+38 -+39 /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:21:7-23:28 -+40 android:name="photopicker_activity:0:required" -+40-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:22:9-55 -+41 android:value="" /> -+41-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:23:9-25 -+42 -+43 -+44 /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:26:5-28:53 -+45 android:name="com.canhub.cropper.CropImageActivity" -+45-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:27:7-58 -+46 android:theme="@style/Base.Theme.AppCompat" /> -+46-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:28:7-50 -+47 -+48 /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:30:5-38:16 -+49 android:name="expo.modules.imagepicker.fileprovider.ImagePickerFileProvider" -+49-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:31:7-59 -+50 android:authorities="${applicationId}.ImagePickerFileProvider" -+50-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:32:7-69 -+51 android:exported="false" -+51-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:33:7-31 -+52 android:grantUriPermissions="true" > -+52-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:34:7-41 -+53 /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:35:7-37:63 -+54 android:name="android.support.FILE_PROVIDER_PATHS" -+54-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:36:9-59 -+55 android:resource="@xml/image_picker_provider_paths" /> -+55-->/Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:37:9-60 -+56 -+57 -+58 -+59 -diff --git a/node_modules/expo-image-picker/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml b/node_modules/expo-image-picker/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml -new file mode 100644 -index 0000000..e22f8d2 ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml -@@ -0,0 +1,59 @@ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -\ No newline at end of file -diff --git a/node_modules/expo-image-picker/android/build/intermediates/navigation_json/debug/navigation.json b/node_modules/expo-image-picker/android/build/intermediates/navigation_json/debug/navigation.json -new file mode 100644 -index 0000000..0637a08 ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/intermediates/navigation_json/debug/navigation.json -@@ -0,0 +1 @@ -+[] -\ No newline at end of file -diff --git a/node_modules/expo-image-picker/android/build/intermediates/packaged_res/debug/xml/image_picker_provider_paths.xml b/node_modules/expo-image-picker/android/build/intermediates/packaged_res/debug/xml/image_picker_provider_paths.xml -new file mode 100644 -index 0000000..975823c ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/intermediates/packaged_res/debug/xml/image_picker_provider_paths.xml -@@ -0,0 +1,6 @@ -+ -+ -+ -+ -+ -+ -diff --git a/node_modules/expo-image-picker/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar b/node_modules/expo-image-picker/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar -new file mode 100644 -index 0000000..827f6a6 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar differ -diff --git a/node_modules/expo-image-picker/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt b/node_modules/expo-image-picker/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt -new file mode 100644 -index 0000000..14c08a2 ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt -@@ -0,0 +1,2 @@ -+expo.modules.imagepicker -+xml image_picker_provider_paths -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab -new file mode 100644 -index 0000000..e985e45 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream -new file mode 100644 -index 0000000..5522b5a -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len -new file mode 100644 -index 0000000..0d5f119 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len -new file mode 100644 -index 0000000..cf8a30a -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at -new file mode 100644 -index 0000000..695b4ed -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i -new file mode 100644 -index 0000000..fcd7532 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab -new file mode 100644 -index 0000000..b176bc1 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream -new file mode 100644 -index 0000000..4654a88 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len -new file mode 100644 -index 0000000..288d1b3 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len -new file mode 100644 -index 0000000..b67c227 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at -new file mode 100644 -index 0000000..77edd30 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i -new file mode 100644 -index 0000000..c6d029d -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab -new file mode 100644 -index 0000000..d0a7867 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream -new file mode 100644 -index 0000000..4654a88 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len -new file mode 100644 -index 0000000..288d1b3 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len -new file mode 100644 -index 0000000..b67c227 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at -new file mode 100644 -index 0000000..b3d7590 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i -new file mode 100644 -index 0000000..c6d029d -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab -new file mode 100644 -index 0000000..b69d9dd -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream -new file mode 100644 -index 0000000..38206fe -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len -new file mode 100644 -index 0000000..05301cb -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len -new file mode 100644 -index 0000000..a9f80ae -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at -new file mode 100644 -index 0000000..5cd5146 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i -new file mode 100644 -index 0000000..cbdfdfa -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab -new file mode 100644 -index 0000000..89e8172 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream -new file mode 100644 -index 0000000..1a42195 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len -new file mode 100644 -index 0000000..a57ce6c -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len -new file mode 100644 -index 0000000..68c8906 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at -new file mode 100644 -index 0000000..0e7cee8 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i -new file mode 100644 -index 0000000..08088ff -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab -new file mode 100644 -index 0000000..6bc1f56 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream -new file mode 100644 -index 0000000..e540dad -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len -new file mode 100644 -index 0000000..b701bcc -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len -new file mode 100644 -index 0000000..a9f80ae -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at -new file mode 100644 -index 0000000..33c7d6c -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i -new file mode 100644 -index 0000000..d8d9406 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab -new file mode 100644 -index 0000000..4b68038 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream -new file mode 100644 -index 0000000..cfe2ca9 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len -new file mode 100644 -index 0000000..6a5a0bc -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len -new file mode 100644 -index 0000000..709f734 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at -new file mode 100644 -index 0000000..5abaaac -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i -new file mode 100644 -index 0000000..14c229c -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab -new file mode 100644 -index 0000000..0e02fb1 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream -new file mode 100644 -index 0000000..871d04f -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len -new file mode 100644 -index 0000000..0d5f119 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len -new file mode 100644 -index 0000000..cf8a30a -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at -new file mode 100644 -index 0000000..18566ed -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i -new file mode 100644 -index 0000000..cb42cd2 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab -new file mode 100644 -index 0000000..37fe89e -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream -new file mode 100644 -index 0000000..e5f1cff -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len -new file mode 100644 -index 0000000..fd3b477 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len -new file mode 100644 -index 0000000..fd5292d -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at -new file mode 100644 -index 0000000..64528ae -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i -new file mode 100644 -index 0000000..07a816a -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab -new file mode 100644 -index 0000000..87df8bd -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream -new file mode 100644 -index 0000000..63c62aa -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len -new file mode 100644 -index 0000000..ef07157 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len -new file mode 100644 -index 0000000..575d132 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at -new file mode 100644 -index 0000000..350411b -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i -new file mode 100644 -index 0000000..d32fe82 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab -new file mode 100644 -index 0000000..4fef5ef ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab -@@ -0,0 +1,2 @@ -+15 -+0 -\ No newline at end of file -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab -new file mode 100644 -index 0000000..5cab27a -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream -new file mode 100644 -index 0000000..871d04f -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len -new file mode 100644 -index 0000000..0d5f119 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len -new file mode 100644 -index 0000000..cf8a30a -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at -new file mode 100644 -index 0000000..3763557 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i -new file mode 100644 -index 0000000..d006df3 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab -new file mode 100644 -index 0000000..e2335ca -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream -new file mode 100644 -index 0000000..fbebe84 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len -new file mode 100644 -index 0000000..933d553 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len -new file mode 100644 -index 0000000..cf8a30a -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at -new file mode 100644 -index 0000000..50a5434 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i -new file mode 100644 -index 0000000..0c98456 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab -new file mode 100644 -index 0000000..8b40cf4 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream -new file mode 100644 -index 0000000..44e3774 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len -new file mode 100644 -index 0000000..4325453 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len -new file mode 100644 -index 0000000..9c73053 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at -new file mode 100644 -index 0000000..08a6731 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i -new file mode 100644 -index 0000000..4d3c569 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len -new file mode 100644 -index 0000000..131e265 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin -new file mode 100644 -index 0000000..b62326e -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin differ -diff --git a/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin -new file mode 100644 -index 0000000..6dee0d1 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin differ -diff --git a/node_modules/expo-image-picker/android/build/outputs/logs/manifest-merger-debug-report.txt b/node_modules/expo-image-picker/android/build/outputs/logs/manifest-merger-debug-report.txt -new file mode 100644 -index 0000000..ff82936 ---- /dev/null -+++ b/node_modules/expo-image-picker/android/build/outputs/logs/manifest-merger-debug-report.txt -@@ -0,0 +1,98 @@ -+-- Merging decision tree log --- -+manifest -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:1:1-51:12 -+INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:1:1-51:12 -+ package -+ INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml -+ xmlns:tools -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:2:3-49 -+ xmlns:android -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:1:11-69 -+uses-permission#android.permission.CAMERA -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:4:3-63 -+ android:name -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:4:20-60 -+uses-permission#android.permission.WRITE_EXTERNAL_STORAGE -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:7:3-79 -+ android:name -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:7:20-76 -+uses-permission#android.permission.READ_EXTERNAL_STORAGE -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:8:3-78 -+ android:name -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:8:20-75 -+uses-permission#android.permission.READ_MEDIA_IMAGES -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:9:3-74 -+ android:name -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:9:20-71 -+uses-permission#android.permission.READ_MEDIA_VIDEO -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:10:3-73 -+ android:name -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:10:20-70 -+application -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:12:3-39:17 -+service#com.google.android.gms.metadata.ModuleDependencies -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:13:5-24:15 -+ android:enabled -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:15:7-30 -+ android:exported -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:16:7-31 -+ tools:ignore -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:17:7-34 -+ android:name -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:14:7-72 -+intent-filter#action:name:com.google.android.gms.metadata.MODULE_DEPENDENCIES -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:18:7-20:23 -+action#com.google.android.gms.metadata.MODULE_DEPENDENCIES -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:19:9-86 -+ android:name -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:19:17-83 -+meta-data#photopicker_activity:0:required -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:21:7-23:28 -+ android:value -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:23:9-25 -+ android:name -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:22:9-55 -+activity#com.canhub.cropper.CropImageActivity -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:26:5-28:53 -+ android:theme -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:28:7-50 -+ android:name -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:27:7-58 -+provider#expo.modules.imagepicker.fileprovider.ImagePickerFileProvider -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:30:5-38:16 -+ android:grantUriPermissions -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:34:7-41 -+ android:authorities -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:32:7-69 -+ android:exported -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:33:7-31 -+ android:name -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:31:7-59 -+meta-data#android.support.FILE_PROVIDER_PATHS -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:35:7-37:63 -+ android:resource -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:37:9-60 -+ android:name -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:36:9-59 -+queries -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:41:3-50:13 -+intent#action:name:android.media.action.IMAGE_CAPTURE -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:42:5-45:14 -+action#android.media.action.IMAGE_CAPTURE -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:44:7-67 -+ android:name -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:44:15-64 -+intent#action:name:android.media.action.ACTION_VIDEO_CAPTURE -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:46:5-49:14 -+action#android.media.action.ACTION_VIDEO_CAPTURE -+ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:48:7-74 -+ android:name -+ ADDED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml:48:15-71 -+uses-sdk -+INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml reason: use-sdk injection requested -+INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml -+INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml -+ android:targetSdkVersion -+ INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml -+ android:minSdkVersion -+ INJECTED from /Users/hailey/Projects/social-app/node_modules/expo-image-picker/android/src/main/AndroidManifest.xml -diff --git a/node_modules/expo-image-picker/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin b/node_modules/expo-image-picker/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin -new file mode 100644 -index 0000000..d9da117 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/META-INF/expo-image-picker_debug.kotlin_module b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/META-INF/expo-image-picker_debug.kotlin_module -new file mode 100644 -index 0000000..d9206b6 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/META-INF/expo-image-picker_debug.kotlin_module differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/AdditionalFileData.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/AdditionalFileData.class -new file mode 100644 -index 0000000..29c4c36 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/AdditionalFileData.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/CameraType.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/CameraType.class -new file mode 100644 -index 0000000..e67c990 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/CameraType.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToCreateFileException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToCreateFileException.class -new file mode 100644 -index 0000000..cc5abc7 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToCreateFileException.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToDeduceTypeException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToDeduceTypeException.class -new file mode 100644 -index 0000000..5f76e0c -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToDeduceTypeException.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToExtractVideoMetadataException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToExtractVideoMetadataException.class -new file mode 100644 -index 0000000..84ccf7f -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToExtractVideoMetadataException.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToPickMediaException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToPickMediaException.class -new file mode 100644 -index 0000000..4ea9586 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToPickMediaException.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToReadFileException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToReadFileException.class -new file mode 100644 -index 0000000..0a7f6e8 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToReadFileException.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToWriteExifDataToFileException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToWriteExifDataToFileException.class -new file mode 100644 -index 0000000..bc25e2a -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToWriteExifDataToFileException.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToWriteFileException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToWriteFileException.class -new file mode 100644 -index 0000000..3ab5458 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/FailedToWriteFileException.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerAsset.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerAsset.class -new file mode 100644 -index 0000000..3cb3c4a -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerAsset.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerConstants$EXIF_TAGS$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerConstants$EXIF_TAGS$1.class -new file mode 100644 -index 0000000..ba11497 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerConstants$EXIF_TAGS$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerConstants.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerConstants.class -new file mode 100644 -index 0000000..3c690bb -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerConstants.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$5$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$5$1.class -new file mode 100644 -index 0000000..9c42071 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$5$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$6$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$6$1.class -new file mode 100644 -index 0000000..155f61b -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$6$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$1.class -new file mode 100644 -index 0000000..1c93c0c -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$2.class -new file mode 100644 -index 0000000..75ea01c -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$2.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$3.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$3.class -new file mode 100644 -index 0000000..2006e87 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8$3.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8.class -new file mode 100644 -index 0000000..7ab31da -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$1$8.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$1.class -new file mode 100644 -index 0000000..2780147 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$10.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$10.class -new file mode 100644 -index 0000000..6092397 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$10.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$11.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$11.class -new file mode 100644 -index 0000000..2ed22da -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$11.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$12.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$12.class -new file mode 100644 -index 0000000..cf9affd -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$12.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$13.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$13.class -new file mode 100644 -index 0000000..0e14ea2 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$13.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$14.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$14.class -new file mode 100644 -index 0000000..4573f32 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$14.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$15.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$15.class -new file mode 100644 -index 0000000..24e8508 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$15.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$16.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$16.class -new file mode 100644 -index 0000000..195b81d -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$16.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$2.class -new file mode 100644 -index 0000000..4a95be0 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$2.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$3.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$3.class -new file mode 100644 -index 0000000..09adc6b -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$3.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$4.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$4.class -new file mode 100644 -index 0000000..cc44444 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$4.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$5.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$5.class -new file mode 100644 -index 0000000..e8b1ed6 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$5.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$6.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$6.class -new file mode 100644 -index 0000000..efb5420 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$6.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$7.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$7.class -new file mode 100644 -index 0000000..f761d29 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$7.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$8.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$8.class -new file mode 100644 -index 0000000..8708ec9 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$8.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$9.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$9.class -new file mode 100644 -index 0000000..ac1bfe2 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$AsyncFunction$9.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$1.class -new file mode 100644 -index 0000000..255f100 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$2.class -new file mode 100644 -index 0000000..2a37986 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$2.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$3.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$3.class -new file mode 100644 -index 0000000..5385e02 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$3.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$4.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$4.class -new file mode 100644 -index 0000000..bfb5990 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$4.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$5.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$5.class -new file mode 100644 -index 0000000..8c08fde -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$definition$lambda$7$$inlined$Coroutine$5.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$ensureCameraPermissionsAreGranted$2$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$ensureCameraPermissionsAreGranted$2$1.class -new file mode 100644 -index 0000000..9aa2203 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$ensureCameraPermissionsAreGranted$2$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchContract$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchContract$1.class -new file mode 100644 -index 0000000..8c00e00 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchContract$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchContract$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchContract$2.class -new file mode 100644 -index 0000000..9e70e41 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchContract$2.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchPicker$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchPicker$2.class -new file mode 100644 -index 0000000..acae345 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule$launchPicker$2.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule.class -new file mode 100644 -index 0000000..a5d3b75 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModule.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModuleKt.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModuleKt.class -new file mode 100644 -index 0000000..84bcc9d -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerModuleKt.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerOptions.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerOptions.class -new file mode 100644 -index 0000000..e8cacff -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerOptions.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerOptionsKt.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerOptionsKt.class -new file mode 100644 -index 0000000..57619fb -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerOptionsKt.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerResponse.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerResponse.class -new file mode 100644 -index 0000000..36e9b07 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerResponse.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$WhenMappings.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$WhenMappings.class -new file mode 100644 -index 0000000..158b981 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$WhenMappings.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$copyExifData$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$copyExifData$2.class -new file mode 100644 -index 0000000..d6eec57 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$copyExifData$2.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$copyFile$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$copyFile$2.class -new file mode 100644 -index 0000000..05fce03 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$copyFile$2.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$items$1$iterator$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$items$1$iterator$1.class -new file mode 100644 -index 0000000..e888969 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$items$1$iterator$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$items$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$items$1.class -new file mode 100644 -index 0000000..202a0ea -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt$items$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt.class -new file mode 100644 -index 0000000..3a61baa -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/ImagePickerUtilsKt.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$WhenMappings.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$WhenMappings.class -new file mode 100644 -index 0000000..054a08e -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$WhenMappings.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$handleImage$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$handleImage$1.class -new file mode 100644 -index 0000000..840bc0a -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$handleImage$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$handleVideo$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$handleVideo$1.class -new file mode 100644 -index 0000000..0e75c70 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$handleVideo$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$readExtras$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$readExtras$1.class -new file mode 100644 -index 0000000..1fd6419 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler$readExtras$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler.class -new file mode 100644 -index 0000000..4e2c9c4 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaHandler.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaType.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaType.class -new file mode 100644 -index 0000000..fa6ab72 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaType.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes$Companion.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes$Companion.class -new file mode 100644 -index 0000000..60c7730 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes$Companion.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes$WhenMappings.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes$WhenMappings.class -new file mode 100644 -index 0000000..00e9ae9 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes$WhenMappings.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes.class -new file mode 100644 -index 0000000..e7f0623 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MediaTypes.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingActivityToHandleIntent.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingActivityToHandleIntent.class -new file mode 100644 -index 0000000..328f6cb -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingActivityToHandleIntent.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingCurrentActivityException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingCurrentActivityException.class -new file mode 100644 -index 0000000..9e646d3 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingCurrentActivityException.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingModuleException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingModuleException.class -new file mode 100644 -index 0000000..656b423 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/MissingModuleException.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/PendingMediaPickingResult.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/PendingMediaPickingResult.class -new file mode 100644 -index 0000000..9880991 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/PendingMediaPickingResult.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/UserRejectedPermissionsException.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/UserRejectedPermissionsException.class -new file mode 100644 -index 0000000..ba88d5b -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/UserRejectedPermissionsException.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CameraContract.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CameraContract.class -new file mode 100644 -index 0000000..62fe5ed -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CameraContract.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CameraContractOptions.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CameraContractOptions.class -new file mode 100644 -index 0000000..e8fddd3 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CameraContractOptions.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContract$parseResult$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContract$parseResult$1.class -new file mode 100644 -index 0000000..d83278c -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContract$parseResult$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContract.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContract.class -new file mode 100644 -index 0000000..a9ecf12 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContract.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContractOptions.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContractOptions.class -new file mode 100644 -index 0000000..03a69bd -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/CropImageContractOptions.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImageLibraryContract.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImageLibraryContract.class -new file mode 100644 -index 0000000..3838a8a -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImageLibraryContract.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImageLibraryContractOptions.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImageLibraryContractOptions.class -new file mode 100644 -index 0000000..fcddffb -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImageLibraryContractOptions.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Cancelled.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Cancelled.class -new file mode 100644 -index 0000000..472d641 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Cancelled.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Error.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Error.class -new file mode 100644 -index 0000000..1680608 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Error.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Success.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Success.class -new file mode 100644 -index 0000000..429c1e2 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult$Success.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult.class -new file mode 100644 -index 0000000..fc70315 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/contracts/ImagePickerContractResult.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$exportAsync$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$exportAsync$1.class -new file mode 100644 -index 0000000..bffee09 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$exportAsync$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$exportAsync$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$exportAsync$2.class -new file mode 100644 -index 0000000..11b48e8 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$exportAsync$2.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$readBitmap$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$readBitmap$1.class -new file mode 100644 -index 0000000..7282c7f -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$readBitmap$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$readBitmap$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$readBitmap$2.class -new file mode 100644 -index 0000000..6fc077b -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$readBitmap$2.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$writeImage$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$writeImage$2.class -new file mode 100644 -index 0000000..45925a1 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter$writeImage$2.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter.class -new file mode 100644 -index 0000000..dc9d51d -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/CompressionImageExporter.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult$data$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult$data$2.class -new file mode 100644 -index 0000000..4edcac9 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult$data$2.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult$exif$2.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult$exif$2.class -new file mode 100644 -index 0000000..8417050 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult$exif$2.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult.class -new file mode 100644 -index 0000000..bb84177 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExportResult.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExporter.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExporter.class -new file mode 100644 -index 0000000..afd5871 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/ImageExporter.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/RawImageExporter$exportAsync$1.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/RawImageExporter$exportAsync$1.class -new file mode 100644 -index 0000000..1915121 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/RawImageExporter$exportAsync$1.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/RawImageExporter.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/RawImageExporter.class -new file mode 100644 -index 0000000..dca80ae -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/exporters/RawImageExporter.class differ -diff --git a/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/fileprovider/ImagePickerFileProvider.class b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/fileprovider/ImagePickerFileProvider.class -new file mode 100644 -index 0000000..9f91bb9 -Binary files /dev/null and b/node_modules/expo-image-picker/android/build/tmp/kotlin-classes/debug/expo/modules/imagepicker/fileprovider/ImagePickerFileProvider.class differ diff --git a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt b/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt index ff15c91..41aaf12 100644 --- a/node_modules/expo-image-picker/android/src/main/java/expo/modules/imagepicker/contracts/ImageLibraryContract.kt From 21f7cf216af7536592f39c7446e11591312ba870 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Tue, 2 Jan 2024 12:53:52 -0800 Subject: [PATCH 052/115] Add patch explanation md --- patches/expo-image-picker+14.7.1.patch.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 patches/expo-image-picker+14.7.1.patch.md diff --git a/patches/expo-image-picker+14.7.1.patch.md b/patches/expo-image-picker+14.7.1.patch.md new file mode 100644 index 0000000000..47c0daed5d --- /dev/null +++ b/patches/expo-image-picker+14.7.1.patch.md @@ -0,0 +1,3 @@ +added by https://github.com/bluesky-social/social-app/pull/2384#pullrequestreview-1800985521 + +hackfixes the image picker on android so that the user can select from their typical image sources \ No newline at end of file From d95972c9ffec4965e2a203454b7645905359e93d Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Tue, 2 Jan 2024 15:14:09 -0800 Subject: [PATCH 053/115] Rework alt-text input to use bottom sheet (#2355) * Rework alt-text input to use bottom sheet * Add translations --- src/view/com/modals/AltImage.tsx | 147 ++++++++++++++----------------- 1 file changed, 65 insertions(+), 82 deletions(-) diff --git a/src/view/com/modals/AltImage.tsx b/src/view/com/modals/AltImage.tsx index a2e9183179..5156511d65 100644 --- a/src/view/com/modals/AltImage.tsx +++ b/src/view/com/modals/AltImage.tsx @@ -1,14 +1,12 @@ import React, {useMemo, useCallback, useState} from 'react' import { ImageStyle, - KeyboardAvoidingView, - ScrollView, StyleSheet, - TextInput, TouchableOpacity, View, useWindowDimensions, } 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' @@ -17,13 +15,13 @@ import {MAX_ALT_TEXT} from 'lib/constants' import {useTheme} from 'lib/ThemeContext' import {Text} from '../util/text/Text' import LinearGradient from 'react-native-linear-gradient' -import {isAndroid, isWeb} from 'platform/detection' +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' -export const snapPoints = ['fullscreen'] +export const snapPoints = ['100%'] interface Props { image: ImageModel @@ -54,102 +52,86 @@ export function Component({image}: Props) { } }, [image, windim]) + const onUpdate = useCallback( + (v: string) => { + v = enforceLen(v, MAX_ALT_TEXT) + setAltText(v) + image.setAltText(v) + }, + [setAltText, image], + ) + const onPressSave = useCallback(() => { image.setAltText(altText) closeModal() }, [closeModal, image, altText]) - const onPressCancel = () => { - closeModal() - } - return ( - - - - - - - setAltText(enforceLen(text, MAX_ALT_TEXT))} - accessibilityLabel={_(msg`Image alt text`)} - accessibilityHint="" - accessibilityLabelledBy="imageAltText" - autoFocus + + + + - - - - - Save - - - - - - - Cancel - - - - - - + + + + + + Done + + + + + + ) } const styles = StyleSheet.create({ - container: { - flex: 1, - height: '100%', - width: '100%', - paddingVertical: isWeb ? 0 : 18, - }, scrollContainer: { flex: 1, height: '100%', paddingHorizontal: isWeb ? 0 : 12, + paddingVertical: isWeb ? 0 : 24, }, scrollInner: { gap: 12, + paddingTop: isWeb ? 0 : 12, }, imageContainer: { borderRadius: 8, @@ -173,5 +155,6 @@ const styles = StyleSheet.create({ }, buttonControls: { gap: 8, + paddingBottom: isWeb ? 0 : 50, }, }) From 2f6f27c4fb50cbefc2aef00d589fc3629a0e091a Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 3 Jan 2024 00:11:04 -0600 Subject: [PATCH 054/115] Add some more logging (#2402) * Add a few logs * Report unknown create account errors separately * Downgrade to warn * Nvm --- src/state/session/index.tsx | 12 ++++-------- src/view/com/auth/create/state.ts | 8 +++++++- src/view/com/auth/login/LoginForm.tsx | 6 +++++- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/state/session/index.tsx b/src/state/session/index.tsx index aa8c94ebcd..a452d6aa6c 100644 --- a/src/state/session/index.tsx +++ b/src/state/session/index.tsx @@ -181,14 +181,10 @@ export function Provider({children}: React.PropsWithChildren<{}>) { const createAccount = React.useCallback( async ({service, email, password, handle, inviteCode}: any) => { - logger.debug( - `session: creating account`, - { - service, - handle, - }, - logger.DebugContext.session, - ) + logger.info(`session: creating account`, { + service, + handle, + }) track('Try Create Account') const agent = new BskyAgent({service}) diff --git a/src/view/com/auth/create/state.ts b/src/view/com/auth/create/state.ts index a77d2a44fe..62a8495b38 100644 --- a/src/view/com/auth/create/state.ts +++ b/src/view/com/auth/create/state.ts @@ -136,7 +136,13 @@ export async function submit({ msg`Invite code not accepted. Check that you input it correctly and try again.`, ) } - logger.error('Failed to create account', {error: e}) + + if ([400, 429].includes(e.status)) { + logger.warn('Failed to create account', {error: e}) + } else { + logger.error(`Failed to create account (${e.status} status)`, {error: e}) + } + uiDispatch({type: 'set-processing', value: false}) uiDispatch({type: 'set-error', value: cleanError(errMsg)}) throw e diff --git a/src/view/com/auth/login/LoginForm.tsx b/src/view/com/auth/login/LoginForm.tsx index 727a0e9456..98c5eb3745 100644 --- a/src/view/com/auth/login/LoginForm.tsx +++ b/src/view/com/auth/login/LoginForm.tsx @@ -107,17 +107,21 @@ export const LoginForm = ({ }) } catch (e: any) { const errMsg = e.toString() - logger.warn('Failed to login', {error: e}) setIsProcessing(false) if (errMsg.includes('Authentication Required')) { + logger.info('Failed to login due to invalid credentials', { + error: errMsg, + }) setError(_(msg`Invalid username or password`)) } else if (isNetworkError(e)) { + logger.warn('Failed to login due to network error', {error: errMsg}) setError( _( msg`Unable to contact your service. Please check your Internet connection.`, ), ) } else { + logger.warn('Failed to login', {error: errMsg}) setError(cleanError(errMsg)) } } From db3bf784fb25740cf3658094677c1b275ad78f24 Mon Sep 17 00:00:00 2001 From: Mathieu Acthernoene Date: Wed, 3 Jan 2024 07:21:17 +0100 Subject: [PATCH 055/115] Remove splashscreen blink (#2378) * chore: remove unused react-native-splash-screen package * Fix splashscreen white blink --- package.json | 1 - src/Splash.tsx | 60 +++++++++++++++++++++++++------------------------- yarn.lock | 5 ----- 3 files changed, 30 insertions(+), 36 deletions(-) diff --git a/package.json b/package.json index 01f3a02bc9..c8052e0410 100644 --- a/package.json +++ b/package.json @@ -158,7 +158,6 @@ "react-native-root-siblings": "^4.1.1", "react-native-safe-area-context": "4.7.4", "react-native-screens": "~3.27.0", - "react-native-splash-screen": "^3.3.0", "react-native-svg": "14.0.0", "react-native-url-polyfill": "^1.3.0", "react-native-uuid": "^2.0.1", diff --git a/src/Splash.tsx b/src/Splash.tsx index 9d47d9323f..0ddb0520d3 100644 --- a/src/Splash.tsx +++ b/src/Splash.tsx @@ -51,7 +51,8 @@ export function Splash(props: React.PropsWithChildren) { const outroAppOpacity = useSharedValue(0) const [isAnimationComplete, setIsAnimationComplete] = React.useState(false) const [isImageLoaded, setIsImageLoaded] = React.useState(false) - const isReady = props.isReady && isImageLoaded + const [isLayoutReady, setIsLayoutReady] = React.useState(false) + const isReady = props.isReady && isImageLoaded && isLayoutReady const logoAnimations = useAnimatedStyle(() => { return { @@ -89,45 +90,44 @@ export function Splash(props: React.PropsWithChildren) { }) const onFinish = useCallback(() => setIsAnimationComplete(true), []) + const onLayout = useCallback(() => setIsLayoutReady(true), []) + const onLoadEnd = useCallback(() => setIsImageLoaded(true), []) useEffect(() => { if (isReady) { - // hide on mount - SplashScreen.hideAsync().catch(() => {}) - - intro.value = withTiming( - 1, - {duration: 400, easing: Easing.out(Easing.cubic)}, - async () => { - // set these values to check animation at specific point - // outroLogo.value = 0.1 - // outroApp.value = 0.1 - outroLogo.value = withTiming( + SplashScreen.hideAsync() + .then(() => { + intro.value = withTiming( 1, - {duration: 1200, easing: Easing.in(Easing.cubic)}, - () => { - runOnJS(onFinish)() + {duration: 400, easing: Easing.out(Easing.cubic)}, + async () => { + // set these values to check animation at specific point + // outroLogo.value = 0.1 + // outroApp.value = 0.1 + outroLogo.value = withTiming( + 1, + {duration: 1200, easing: Easing.in(Easing.cubic)}, + () => { + runOnJS(onFinish)() + }, + ) + outroApp.value = withTiming(1, { + duration: 1200, + easing: Easing.inOut(Easing.cubic), + }) + outroAppOpacity.value = withTiming(1, { + duration: 1200, + easing: Easing.in(Easing.cubic), + }) }, ) - outroApp.value = withTiming(1, { - duration: 1200, - easing: Easing.inOut(Easing.cubic), - }) - outroAppOpacity.value = withTiming(1, { - duration: 1200, - easing: Easing.in(Easing.cubic), - }) - }, - ) + }) + .catch(() => {}) } }, [onFinish, intro, outroLogo, outroApp, outroAppOpacity, isReady]) - const onLoadEnd = useCallback(() => { - setIsImageLoaded(true) - }, [setIsImageLoaded]) - return ( - + {!isAnimationComplete && ( Date: Tue, 2 Jan 2024 22:36:43 -0800 Subject: [PATCH 056/115] Fix various issues with screen dimension detection in external player (#2349) * various dimension fixes * use reactive hook for dimensions * remove debug * accurate dismissing of player --- .../util/post-embeds/ExternalPlayerEmbed.tsx | 64 +++++++++++++------ 1 file changed, 45 insertions(+), 19 deletions(-) diff --git a/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx b/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx index 580cf363ac..ff3dc1ca44 100644 --- a/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx +++ b/src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx @@ -1,14 +1,21 @@ import React from 'react' import { ActivityIndicator, - Dimensions, GestureResponderEvent, Pressable, StyleSheet, + useWindowDimensions, View, } from 'react-native' +import Animated, { + measure, + runOnJS, + 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 YoutubePlayer from 'react-native-youtube-iframe' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {EmbedPlayerParams, getPlayerHeight} from 'lib/strings/embed-player' @@ -116,6 +123,8 @@ export function ExternalPlayer({ params: EmbedPlayerParams }) { const navigation = useNavigation() + const insets = useSafeAreaInsets() + const windowDims = useWindowDimensions() const [isPlayerActive, setPlayerActive] = React.useState(false) const [isLoading, setIsLoading] = React.useState(true) @@ -124,34 +133,51 @@ export function ExternalPlayer({ height: 0, }) - const viewRef = React.useRef(null) + const viewRef = useAnimatedRef() + + const frameCallback = useFrameCallback(() => { + const measurement = measure(viewRef) + if (!measurement) return + + const {height: winHeight, width: winWidth} = windowDims + + // Get the proper screen height depending on what is going on + const realWinHeight = isNative // If it is native, we always want the larger number + ? winHeight > winWidth + ? winHeight + : winWidth + : winHeight // On web, we always want the actual screen height + + const top = measurement.pageY + const bot = measurement.pageY + measurement.height + + // We can use the same logic on all platforms against the screenHeight that we get above + const isVisible = top <= realWinHeight - insets.bottom && bot >= insets.top + + if (!isVisible) { + runOnJS(setPlayerActive)(false) + } + }, false) // False here disables autostarting the callback // watch for leaving the viewport due to scrolling React.useEffect(() => { + // We don't want to do anything if the player isn't active + if (!isPlayerActive) return + // Interval for scrolling works in most cases, However, for twitch embeds, if we navigate away from the screen the webview will // continue playing. We need to watch for the blur event const unsubscribe = navigation.addListener('blur', () => { setPlayerActive(false) }) - const interval = setInterval(() => { - viewRef.current?.measure((x, y, w, h, pageX, pageY) => { - const window = Dimensions.get('window') - const top = pageY - const bot = pageY + h - const isVisible = isNative - ? top >= 0 && bot <= window.height - : !(top >= window.height || bot <= 0) - if (!isVisible) { - setPlayerActive(false) - } - }) - }, 1e3) + // Start watching for changes + frameCallback.setActive(true) + return () => { unsubscribe() - clearInterval(interval) + frameCallback.setActive(false) } - }, [viewRef, navigation]) + }, [navigation, isPlayerActive, frameCallback]) // calculate height for the player and the screen size const height = React.useMemo( @@ -187,7 +213,7 @@ export function ExternalPlayer({ ) return ( - - + ) } From ffd08570a523f8295209d3038e9461e7ce7cb161 Mon Sep 17 00:00:00 2001 From: Minseo Lee Date: Wed, 3 Jan 2024 20:34:21 +0900 Subject: [PATCH 057/115] Add Korean localization (#2395) * Create messages.po * Add Korean localization --- lingui.config.js | 2 +- src/locale/helpers.ts | 14 +- src/locale/i18n.ts | 35 +- src/locale/i18n.web.ts | 28 +- src/locale/languages.ts | 14 +- src/locale/locales/ko/messages.po | 3281 +++++++++++++++++++++++++++++ 6 files changed, 3334 insertions(+), 40 deletions(-) create mode 100644 src/locale/locales/ko/messages.po diff --git a/lingui.config.js b/lingui.config.js index 58e8d65c57..0f30be0b52 100644 --- a/lingui.config.js +++ b/lingui.config.js @@ -1,6 +1,6 @@ /** @type {import('@lingui/conf').LinguiConfig} */ module.exports = { - locales: ['en', 'hi', 'ja', 'fr', 'de', 'es'], + locales: ['en', 'hi', 'ja', 'fr', 'de', 'es', 'ko'], catalogs: [ { path: '/src/locale/locales/{locale}/messages', diff --git a/src/locale/helpers.ts b/src/locale/helpers.ts index ef09e5e684..cdb5514b5f 100644 --- a/src/locale/helpers.ts +++ b/src/locale/helpers.ts @@ -110,18 +110,20 @@ export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage { switch (lang) { case 'en': return AppLanguage.en - case 'hi': - return AppLanguage.hi - case 'ja': - return AppLanguage.ja - case 'fr': - return AppLanguage.fr // DISABLED until this translation is fixed -prf // case 'de': // return AppLanguage.de // DISABLED until this translation is more thoroughly reviewed -prf // case 'es': // return AppLanguage.es + case 'fr': + return AppLanguage.fr + case 'hi': + return AppLanguage.hi + case 'ja': + return AppLanguage.ja + case 'ko': + return AppLanguage.ko default: continue } diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts index 164fce9fc7..5377d58fad 100644 --- a/src/locale/i18n.ts +++ b/src/locale/i18n.ts @@ -3,13 +3,14 @@ import {i18n} from '@lingui/core' import {useLanguagePrefs} from '#/state/preferences' import {messages as messagesEn} from '#/locale/locales/en/messages' -import {messages as messagesHi} from '#/locale/locales/hi/messages' -import {messages as messagesJa} from '#/locale/locales/ja/messages' -import {messages as messagesFr} from '#/locale/locales/fr/messages' // DISABLED until this translation is fixed -prf // import {messages as messagesDe} from '#/locale/locales/de/messages' // DISABLED until this translation is more thoroughly reviewed -prf // 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 messagesJa} from '#/locale/locales/ja/messages' +import {messages as messagesKo} from '#/locale/locales/ko/messages' import {sanitizeAppLanguageSetting} from '#/locale/helpers' import {AppLanguage} from '#/locale/languages' @@ -19,18 +20,6 @@ import {AppLanguage} from '#/locale/languages' */ export async function dynamicActivate(locale: AppLanguage) { switch (locale) { - case AppLanguage.hi: { - i18n.loadAndActivate({locale, messages: messagesHi}) - break - } - case AppLanguage.ja: { - i18n.loadAndActivate({locale, messages: messagesJa}) - break - } - case AppLanguage.fr: { - i18n.loadAndActivate({locale, messages: messagesFr}) - break - } // DISABLED until this translation is fixed -prf // case AppLanguage.de: { // i18n.loadAndActivate({locale, messages: messagesDe}) @@ -41,6 +30,22 @@ export async function dynamicActivate(locale: AppLanguage) { // i18n.loadAndActivate({locale, messages: messagesEs}) // break // } + case AppLanguage.fr: { + i18n.loadAndActivate({locale, messages: messagesFr}) + break + } + case AppLanguage.hi: { + i18n.loadAndActivate({locale, messages: messagesHi}) + break + } + case AppLanguage.ja: { + i18n.loadAndActivate({locale, messages: messagesJa}) + break + } + case AppLanguage.ko: { + i18n.loadAndActivate({locale, messages: messagesKo}) + break + } default: { i18n.loadAndActivate({locale, messages: messagesEn}) break diff --git a/src/locale/i18n.web.ts b/src/locale/i18n.web.ts index bf6f6e1964..9890289d79 100644 --- a/src/locale/i18n.web.ts +++ b/src/locale/i18n.web.ts @@ -12,18 +12,6 @@ export async function dynamicActivate(locale: AppLanguage) { let mod: any switch (locale) { - case AppLanguage.hi: { - mod = await import(`./locales/hi/messages`) - break - } - case AppLanguage.ja: { - mod = await import(`./locales/ja/messages`) - break - } - case AppLanguage.fr: { - mod = await import(`./locales/fr/messages`) - break - } // DISABLED until this translation is fixed -prf // case AppLanguage.de: { // mod = await import(`./locales/de/messages`) @@ -34,6 +22,22 @@ export async function dynamicActivate(locale: AppLanguage) { // mod = await import(`./locales/es/messages`) // break // } + case AppLanguage.fr: { + mod = await import(`./locales/fr/messages`) + break + } + case AppLanguage.hi: { + mod = await import(`./locales/hi/messages`) + break + } + case AppLanguage.ja: { + mod = await import(`./locales/ja/messages`) + break + } + case AppLanguage.ko: { + mod = await import(`./locales/ko/messages`) + break + } default: { mod = await import(`./locales/en/messages`) break diff --git a/src/locale/languages.ts b/src/locale/languages.ts index d7559b5782..31ee5b6070 100644 --- a/src/locale/languages.ts +++ b/src/locale/languages.ts @@ -6,13 +6,14 @@ interface Language { export enum AppLanguage { en = 'en', - hi = 'hi', - ja = 'ja', - fr = 'fr', // DISABLED until this translation is fixed -prf // de = 'de', // DISABLED until this translation is more thoroughly reviewed -prf // es = 'es', + fr = 'fr', + hi = 'hi', + ja = 'ja', + ko = 'ko', } interface AppLanguageConfig { @@ -22,13 +23,14 @@ interface AppLanguageConfig { export const APP_LANGUAGES: AppLanguageConfig[] = [ {code2: AppLanguage.en, name: 'English'}, - {code2: AppLanguage.hi, name: 'हिंदी'}, - {code2: AppLanguage.ja, name: '日本語'}, - {code2: AppLanguage.fr, name: 'Français'}, // DISABLED until this translation is fixed -prf // {code2: AppLanguage.de, name: 'Deutsch'}, // DISABLED until this translation is more thoroughly reviewed -prf // {code2: AppLanguage.es, name: 'Español'}, + {code2: AppLanguage.fr, name: 'Français'}, + {code2: AppLanguage.hi, name: 'हिंदी'}, + {code2: AppLanguage.ja, name: '日本語'}, + {code2: AppLanguage.ko, name: '한국어'}, ] export const LANGUAGES: Language[] = [ diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po new file mode 100644 index 0000000000..8e64132a72 --- /dev/null +++ b/src/locale/locales/ko/messages.po @@ -0,0 +1,3281 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2023-11-05 16:01-0800\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: ko\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: quiple\n" +"Language-Team: quiple\n" +"Plural-Forms: \n" + +#: src/view/screens/Profile.tsx:214 +#~ msgid "- end of feed -" +#~ msgstr "- 피드 끝 -" + +#: src/view/com/modals/SelfLabel.tsx:138 +#~ msgid ". This warning is only available for posts with media attached." +#~ msgstr ". 이 경고는 미디어가 첨부된 게시물에만 사용할 수 있습니다." + +#: src/view/shell/desktop/RightNav.tsx:168 +msgid "{0, plural, one {# invite code available} other {# invite codes available}}" +msgstr "{0, plural, one {초대 코드 #개 사용 가능} other {초대 코드 #개 사용 가능}}" + +#: src/view/com/modals/Repost.tsx:44 +msgid "{0}" +msgstr "{0}" + +#: src/view/com/modals/CreateOrEditList.tsx:177 +msgid "{0} {purposeLabel} List" +msgstr "{purposeLabel} 리스트 {0}" + +#: src/lib/strings/time.ts:28 +msgid "{0}d" +msgstr "{0}일" + +#: src/lib/strings/time.ts:26 +msgid "{0}h" +msgstr "{0}시간" + +#: src/lib/strings/time.ts:24 +msgid "{0}m" +msgstr "{0}분" + +#: src/lib/strings/time.ts:30 +msgid "{0}mo" +msgstr "{0}개월" + +#: src/lib/strings/time.ts:22 +msgid "{diffSeconds}s" +msgstr "{diffSeconds}초" + +#: src/view/shell/desktop/RightNav.tsx:151 +msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" +msgstr "{invitesAvailable, plural, one {초대 코드: #개 사용 가능} other {초대 코드: #개 사용 가능}}" + +#: src/view/screens/Settings.tsx:408 +#: src/view/shell/Drawer.tsx:659 +msgid "{invitesAvailable} invite code available" +msgstr "초대 코드 {invitesAvailable}개 사용 가능" + +#: src/view/screens/Settings.tsx:410 +#: src/view/shell/Drawer.tsx:661 +msgid "{invitesAvailable} invite codes available" +msgstr "초대 코드 {invitesAvailable}개 사용 가능" + +#: src/view/screens/Search/Search.tsx:87 +msgid "{message}" +msgstr "{message}" + +#: src/view/com/modals/CreateOrEditList.tsx:133 +msgid "{purposeLabel} list created" +msgstr "{purposeLabel} 리스트 생성됨" + +#: src/view/com/modals/CreateOrEditList.tsx:124 +msgid "{purposeLabel} list updated" +msgstr "{purposeLabel} 리스트 업데이트됨" + +#: src/view/com/threadgate/WhoCanReply.tsx:158 +msgid "<0/> members" +msgstr "<0/> 멤버" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:30 +msgid "<0>Choose your<1>Recommended<2>Feeds" +msgstr "<1>추천 피드<0>선택하기" + +#: src/view/com/modals/DeleteAccount.tsx:82 +msgid "<0>Delete Account <1><2>\"<3>{0}<4>\"" +msgstr "<1><2>\"<3>{0}<4>\"<0> 계정 삭제" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:37 +msgid "<0>Follow some<1>Recommended<2>Users" +msgstr "<1>추천 사용자<0>팔로우하기" + +#: src/view/com/modals/AddAppPasswords.tsx:132 +#~ msgid "<0>Here is your app password. Use this to sign into the other app along with your handle." +#~ msgstr "<0>앱 비밀번호입니다. 이 비밀번호와 핸들을 사용하여 다른 앱에 로그인하세요." + +#: src/view/screens/Moderation.tsx:212 +#~ msgid "<0>Note: This setting may not be respected by third-party apps that display Bluesky content." +#~ msgstr "<0>참고: Bluesky 콘텐츠를 표시하는 타사 앱은 이 설정을 준수하지 않을 수 있습니다." + +#: src/view/screens/Moderation.tsx:212 +#~ msgid "<0>Note: Your profile and posts will remain publicly available. Third-party apps that display Bluesky content may not respect this setting." +#~ msgstr "<0>참고: 프로필과 게시물은 공개 상태로 유지됩니다. Bluesky 콘텐츠를 표시하는 타사 앱은 이 설정을 준수하지 않을 수 있습니다." + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:22 +msgid "<0>Welcome to<1>Bluesky" +msgstr "<1>Bluesky<0>에 오신 것을 환영합니다" + +#: src/view/com/util/moderation/LabelInfo.tsx:45 +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 "새 버전의 앱을 사용할 수 있습니다. 앱을 계속 사용하려면 업데이트하세요." + +#: src/view/com/modals/EditImage.tsx:299 +#: src/view/screens/Settings.tsx:418 +msgid "Accessibility" +msgstr "접근성" + +#: src/view/com/auth/login/LoginForm.tsx:159 +#: src/view/screens/Settings.tsx:287 +msgid "Account" +msgstr "계정" + +#: src/view/com/profile/ProfileHeader.tsx:293 +msgid "Account blocked" +msgstr "계정 차단됨" + +#: src/view/com/profile/ProfileHeader.tsx:260 +msgid "Account muted" +msgstr "계정 뮤트됨" + +#: src/view/com/util/AccountDropdownBtn.tsx:41 +msgid "Account options" +msgstr "계정 옵션" + +#: src/view/com/util/AccountDropdownBtn.tsx:25 +msgid "Account removed from quick access" +msgstr "퀵 액세스에서 계정 제거" + +#: src/view/com/profile/ProfileHeader.tsx:315 +msgid "Account unblocked" +msgstr "계정 차단 해제됨" + +#: src/view/com/profile/ProfileHeader.tsx:273 +msgid "Account unmuted" +msgstr "계정 언뮤트됨" + +#: src/state/queries/preferences/moderation.ts:138 +msgid "Accounts falsely claiming to be people or orgs" +msgstr "사람 또는 조직을 사칭하는 계정" + +#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:151 +#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/UserAddRemoveLists.tsx:193 +#: src/view/screens/ProfileList.tsx:772 +msgid "Add" +msgstr "추가" + +#: src/view/com/modals/SelfLabel.tsx:56 +msgid "Add a content warning" +msgstr "콘텐츠 경고 추가" + +#: src/view/screens/ProfileList.tsx:762 +msgid "Add a user to this list" +msgstr "이 리스트에 사용자 추가" + +#: src/view/screens/Settings.tsx:356 +#: src/view/screens/Settings.tsx:365 +msgid "Add account" +msgstr "계정 추가" + +#: src/view/com/composer/photos/Gallery.tsx:119 +#: src/view/com/composer/photos/Gallery.tsx:180 +msgid "Add alt text" +msgstr "대체 텍스트 추가" + +#: src/view/com/modals/report/InputIssueDetails.tsx:41 +#: src/view/com/modals/report/Modal.tsx:194 +msgid "Add details" +msgstr "상세 내용 추가" + +#: src/view/com/modals/report/Modal.tsx:197 +msgid "Add details to report" +msgstr "신고 상세 내용 추가" + +#: src/view/com/composer/Composer.tsx:444 +msgid "Add link card" +msgstr "링크 카드 추가" + +#: src/view/com/composer/Composer.tsx:447 +msgid "Add link card:" +msgstr "링크 카드 추가:" + +#: src/view/com/modals/ChangeHandle.tsx:415 +msgid "Add the following DNS record to your domain:" +msgstr "도메인에 다음 DNS 레코드를 추가하세요:" + +#: src/view/com/profile/ProfileHeader.tsx:357 +msgid "Add to Lists" +msgstr "리스트에 추가" + +#: src/view/screens/ProfileFeed.tsx:281 +msgid "Add to my feeds" +msgstr "내 피드에 추가" + +#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:140 +msgid "Added" +msgstr "추가됨" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:191 +#: src/view/com/modals/UserAddRemoveLists.tsx:128 +msgid "Added to list" +msgstr "리스트에 추가됨" + +#: src/view/com/feeds/FeedSourceCard.tsx:125 +msgid "Added to my feeds" +msgstr "내 피드에 추가됨" + +#: src/view/screens/PreferencesHomeFeed.tsx:167 +msgid "Adjust the number of likes a reply must have to be shown in your feed." +msgstr "답글이 피드에 표시되기 위해 필요한 좋아요 표시 수를 조정합니다." + +#: src/view/com/modals/SelfLabel.tsx:75 +msgid "Adult Content" +msgstr "성인 콘텐츠" + +#: src/view/com/modals/ContentFilteringSettings.tsx:137 +msgid "Adult content can only be enabled via the Web at <0/>." +msgstr "성인 콘텐츠는 <0/>에서 웹을 통해서만 활성화할 수 있습니다." + +#: src/view/screens/Settings.tsx:570 +msgid "Advanced" +msgstr "고급" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:98 +msgid "Already signed in as @{0}" +msgstr "이미 @{0}(으)로 로그인했습니다." + +#: src/view/com/composer/photos/Gallery.tsx:130 +msgid "ALT" +msgstr "ALT" + +#: src/view/com/modals/EditImage.tsx:315 +msgid "Alt text" +msgstr "대체 텍스트" + +#: 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 "대체 텍스트는 시각장애인과 저시력 사용자를 위해 이미지를 설명하며 모든 사용자의 이해를 돕습니다." + +#: src/view/com/modals/VerifyEmail.tsx:118 +msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." +msgstr "{0}(으)로 이메일을 전송했습니다. 이 이메일에는 아래에 입력하는 확인 코드가 포함되어 있습니다." + +#: 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 "이전 주소인 {0}(으)로 이메일을 전송했습니다. 이 이메일에는 아래에 입력하는 확인 코드가 포함되어 있습니다." + +#: src/view/com/profile/FollowButton.tsx:30 +#: src/view/com/profile/FollowButton.tsx:40 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:183 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:193 +msgid "An issue occurred, please try again." +msgstr "문제가 발생했습니다. 다시 시도해 주세요." + +#: src/view/com/auth/create/Policies.tsx:80 +#: src/view/com/notifications/FeedItem.tsx:240 +#: src/view/com/threadgate/WhoCanReply.tsx:178 +msgid "and" +msgstr "및" + +#: src/view/screens/LanguageSettings.tsx:95 +msgid "App Language" +msgstr "앱 언어" + +#: src/view/screens/AppPasswords.tsx:227 +msgid "App password deleted" +msgstr "앱 비밀번호 삭제됨" + +#: src/view/com/modals/AddAppPasswords.tsx:133 +msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." +msgstr "앱 비밀번호 이름에는 문자, 숫자, 공백, 대시, 밑줄만 사용할 수 있습니다." + +#: src/view/com/modals/AddAppPasswords.tsx:98 +msgid "App Password names must be at least 4 characters long." +msgstr "앱 비밀번호 이름은 4자 이상이어야 합니다." + +#: src/view/screens/Settings.tsx:590 +msgid "App passwords" +msgstr "앱 비밀번호" + +#: src/view/screens/AppPasswords.tsx:186 +msgid "App Passwords" +msgstr "앱 비밀번호" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:238 +msgid "Appeal content warning" +msgstr "콘텐츠 경고 이의신청" + +#: src/view/com/modals/AppealLabel.tsx:65 +msgid "Appeal Content Warning" +msgstr "콘텐츠 경고 이의신청" + +#: src/view/com/modals/AppealLabel.tsx:65 +#~ msgid "Appeal Decision" +#~ msgstr "이의신청" + +#: src/view/com/util/moderation/LabelInfo.tsx:52 +msgid "Appeal this decision" +msgstr "이 결정에 이의신청" + +#: src/view/com/util/moderation/LabelInfo.tsx:56 +msgid "Appeal this decision." +msgstr "이 결정에 이의신청합니다." + +#: src/view/screens/Settings.tsx:433 +msgid "Appearance" +msgstr "모양" + +#: src/view/screens/Moderation.tsx:206 +#~ msgid "Apps that respect this setting, including the official Bluesky app and bsky.app website, won't show your content to logged out users." +#~ msgstr "Bluesky 공식 앱과 bsky.app 웹사이트를 포함하여 이 설정을 준수하는 앱은 로그아웃한 사용자에게 내 콘텐츠를 표시하지 않습니다." + +#: src/view/screens/AppPasswords.tsx:223 +msgid "Are you sure you want to delete the app password \"{name}\"?" +msgstr "앱 비밀번호 \"{name}\"을(를) 삭제하시겠습니까?" + +#: src/view/com/composer/Composer.tsx:142 +msgid "Are you sure you'd like to discard this draft?" +msgstr "이 초안을 삭제하시겠습니까?" + +#: src/view/screens/ProfileList.tsx:361 +msgid "Are you sure?" +msgstr "확실합니까?" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:221 +msgid "Are you sure? This cannot be undone." +msgstr "확실합니까? 취소할 수 없습니다." + +#: src/view/com/modals/SelfLabel.tsx:123 +msgid "Artistic or non-erotic nudity." +msgstr "선정적이지 않거나 예술적인 노출." + +#: src/view/screens/Moderation.tsx:189 +#~ msgid "Ask apps to limit the visibility of my account" +#~ msgstr "내 계정의 공개 범위를 제한하도록 앱에 요청하기" + +#: src/view/com/auth/create/CreateAccount.tsx:141 +#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:166 +#: src/view/com/auth/login/LoginForm.tsx:250 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:148 +#: src/view/com/modals/report/InputIssueDetails.tsx:46 +#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:438 +#: src/view/com/post-thread/PostThread.tsx:446 +#: src/view/com/profile/ProfileHeader.tsx:676 +msgid "Back" +msgstr "뒤로" + +#: src/view/screens/Settings.tsx:462 +msgid "Basics" +msgstr "기본" + +#: src/view/com/auth/create/Step2.tsx:156 +#: src/view/com/modals/BirthDateSettings.tsx:73 +msgid "Birthday" +msgstr "생년월일" + +#: src/view/screens/Settings.tsx:313 +msgid "Birthday:" +msgstr "생년월일:" + +#: src/view/com/profile/ProfileHeader.tsx:286 +#: src/view/com/profile/ProfileHeader.tsx:393 +msgid "Block Account" +msgstr "계정 차단" + +#: src/view/screens/ProfileList.tsx:531 +msgid "Block accounts" +msgstr "계정 차단" + +#: src/view/screens/ProfileList.tsx:481 +msgid "Block list" +msgstr "리스트 차단" + +#: src/view/screens/ProfileList.tsx:312 +msgid "Block these accounts?" +msgstr "이 계정들을 차단하시겠습니까?" + +#: src/view/screens/Moderation.tsx:123 +msgid "Blocked accounts" +msgstr "차단한 계정" + +#: src/view/screens/ModerationBlockedAccounts.tsx:107 +msgid "Blocked Accounts" +msgstr "차단한 계정" + +#: src/view/com/profile/ProfileHeader.tsx:288 +msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." +msgstr "차단한 계정은 내 스레드에 답글을 달거나 나를 멘션하거나 기타 다른 방식으로 나와 상호작용할 수 없습니다." + +#: 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 "차단한 계정은 내 스레드에 답글을 달거나 나를 멘션하거나 기타 다른 방식으로 나와 상호작용할 수 없습니다. 차단한 계정의 콘텐츠를 볼 수 없으며 해당 계정도 내 콘텐츠를 볼 수 없게 됩니다." + +#: src/view/com/post-thread/PostThread.tsx:250 +msgid "Blocked post." +msgstr "차단된 게시물." + +#: src/view/screens/ProfileList.tsx:314 +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/auth/SplashScreen.web.tsx:113 +msgid "Blog" +msgstr "블로그" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:31 +msgid "Bluesky" +msgstr "Bluesky" + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:82 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +msgid "Bluesky is flexible." +msgstr "Bluesky는 유연합니다." + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:71 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +msgid "Bluesky is open." +msgstr "Bluesky는 열려 있습니다." + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:58 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +msgid "Bluesky is public." +msgstr "Bluesky는 공개적입니다." + +#: 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는 더 건강한 커뮤니티를 구축하기 위해 초대 방식을 사용합니다. 초대해 준 사람이 없는 경우 대기자 명단에 등록하면 곧 초대를 보내겠습니다." + +#: src/view/screens/Moderation.tsx:225 +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는 로그아웃한 사용자에게 내 프로필과 게시물을 표시하지 않습니다. 다른 앱에서는 이 설정을 따르지 않을 수 있습니다. 내 계정을 비공개로 전환하지는 않습니다." + +#: src/view/com/modals/ServerInput.tsx:78 +msgid "Bluesky.Social" +msgstr "Bluesky.Social" + +#: src/view/screens/Settings.tsx:719 +msgid "Build version {0} {1}" +msgstr "빌드 버전 {0} {1}" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/SplashScreen.web.tsx:108 +msgid "Business" +msgstr "비즈니스" + +#: src/view/com/auth/create/Policies.tsx:87 +msgid "By creating an account you agree to the {els}." +msgstr "계정을 만들면 {els}에 동의하는 것입니다." + +#: 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 "카메라" + +#: src/view/com/modals/AddAppPasswords.tsx:218 +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/view/com/composer/Composer.tsx:291 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/modals/AltImage.tsx:128 +#: src/view/com/modals/ChangeEmail.tsx:218 +#: src/view/com/modals/ChangeEmail.tsx:220 +#: src/view/com/modals/ChangeHandle.tsx:153 +#: src/view/com/modals/Confirm.tsx:88 +#: src/view/com/modals/Confirm.tsx:91 +#: src/view/com/modals/CreateOrEditList.tsx:268 +#: src/view/com/modals/CreateOrEditList.tsx:273 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 +#: src/view/com/modals/DeleteAccount.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:225 +#: src/view/com/modals/EditImage.tsx:323 +#: src/view/com/modals/EditProfile.tsx:249 +#: src/view/com/modals/LinkWarning.tsx:85 +#: src/view/com/modals/LinkWarning.tsx:87 +#: src/view/com/modals/Repost.tsx:73 +#: src/view/com/modals/Waitlist.tsx:136 +#: src/view/screens/Search/Search.tsx:601 +#: src/view/shell/desktop/Search.tsx:182 +msgid "Cancel" +msgstr "취소" + +#: src/view/com/modals/DeleteAccount.tsx:148 +#: src/view/com/modals/DeleteAccount.tsx:221 +msgid "Cancel account deletion" +msgstr "계정 삭제 취소" + +#: src/view/com/modals/AltImage.tsx:123 +msgid "Cancel add image alt text" +msgstr "이미지 대체 텍스트 추가 취소" + +#: src/view/com/modals/ChangeHandle.tsx:149 +msgid "Cancel change handle" +msgstr "핸들 변경 취소" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:134 +msgid "Cancel image crop" +msgstr "이미지 자르기 취소" + +#: src/view/com/modals/EditProfile.tsx:244 +msgid "Cancel profile editing" +msgstr "프로필 편집 취소" + +#: src/view/com/modals/Repost.tsx:64 +msgid "Cancel quote post" +msgstr "게시물 인용 취소" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:87 +#: src/view/shell/desktop/Search.tsx:178 +msgid "Cancel search" +msgstr "검색 취소" + +#: src/view/com/modals/Waitlist.tsx:132 +msgid "Cancel waitlist signup" +msgstr "대기자 명단 등록 취소" + +#: src/view/screens/Settings.tsx:307 +msgid "Change" +msgstr "변경" + +#: src/view/screens/Settings.tsx:602 +#: src/view/screens/Settings.tsx:611 +msgid "Change handle" +msgstr "핸들 변경" + +#: src/view/com/modals/ChangeHandle.tsx:161 +msgid "Change Handle" +msgstr "핸들 변경" + +#: src/view/com/modals/VerifyEmail.tsx:141 +msgid "Change my email" +msgstr "내 이메일 변경" + +#: src/view/com/modals/ChangeEmail.tsx:109 +msgid "Change Your Email" +msgstr "이메일 변경" + +#: 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 "몇 가지 추천 피드를 확인하세요. +를 탭하여 고정된 피드 목록에 추가합니다." + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:185 +msgid "Check out some recommended users. Follow them to see similar users." +msgstr "추천 사용자를 확인하세요. 해당 사용자를 팔로우하여 비슷한 사용자를 만날 수 있습니다." + +#: src/view/com/modals/DeleteAccount.tsx:165 +msgid "Check your inbox for an email with the confirmation code to enter below:" +msgstr "받은 편지함에서 아래에 입력하는 확인 코드가 포함된 이메일이 있는지 확인하세요:" + +#: src/view/com/modals/Threadgate.tsx:72 +msgid "Choose \"Everybody\" or \"Nobody\"" +msgstr "\"모두\" 또는 \"없음\"을 선택하세요." + +#: src/view/com/modals/ServerInput.tsx:38 +msgid "Choose Service" +msgstr "서비스 선택" + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:85 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +msgid "Choose the algorithms that power your experience with custom feeds." +msgstr "맞춤 피드를 통해 사용자 경험을 강화하는 알고리즘을 선택합니다." + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:65 +#~ msgid "Choose your" +#~ msgstr "Choose your" + +#: src/view/com/auth/create/Step2.tsx:127 +msgid "Choose your password" +msgstr "비밀번호를 입력하세요" + +#: src/view/screens/Settings.tsx:695 +msgid "Clear all legacy storage data" +msgstr "모든 레거시 스토리지 데이터 지우기" + +#: src/view/screens/Settings.tsx:697 +msgid "Clear all legacy storage data (restart after this)" +msgstr "모든 레거시 스토리지 데이터 지우기 (이후 다시 시작)" + +#: src/view/screens/Settings.tsx:707 +msgid "Clear all storage data" +msgstr "모든 스토리지 데이터 지우기" + +#: src/view/screens/Settings.tsx:709 +msgid "Clear all storage data (restart after this)" +msgstr "모든 스토리지 데이터 지우기 (이후 다시 시작)" + +#: src/view/com/util/forms/SearchInput.tsx:74 +#: src/view/screens/Search/Search.tsx:582 +msgid "Clear search query" +msgstr "검색어 지우기" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:38 +msgid "Close alert" +msgstr "알림 닫기" + +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +msgid "Close bottom drawer" +msgstr "하단 서랍 닫기" + +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +msgid "Close image" +msgstr "이미지 닫기" + +#: src/view/com/lightbox/Lightbox.web.tsx:112 +msgid "Close image viewer" +msgstr "이미지 뷰어 닫기" + +#: src/view/shell/index.web.tsx:49 +msgid "Close navigation footer" +msgstr "탐색 푸터 닫기" + +#: src/view/screens/CommunityGuidelines.tsx:32 +msgid "Community Guidelines" +msgstr "커뮤니티 가이드라인" + +#: src/view/com/composer/Prompt.tsx:24 +msgid "Compose reply" +msgstr "답글 작성하기" + +#: src/view/com/modals/AppealLabel.tsx:98 +#: src/view/com/modals/Confirm.tsx:75 +#: src/view/com/modals/Confirm.tsx:78 +#: src/view/com/modals/SelfLabel.tsx:154 +#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/com/modals/VerifyEmail.tsx:227 +#: src/view/screens/PreferencesHomeFeed.tsx:302 +#: src/view/screens/PreferencesThreads.tsx:159 +msgid "Confirm" +msgstr "확인" + +#: src/view/com/modals/ChangeEmail.tsx:193 +#: src/view/com/modals/ChangeEmail.tsx:195 +msgid "Confirm Change" +msgstr "변경 확인" + +#: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:34 +msgid "Confirm content language settings" +msgstr "콘텐츠 언어 설정 확인" + +#: src/view/com/modals/DeleteAccount.tsx:211 +msgid "Confirm delete account" +msgstr "계정 삭제 확인" + +#: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:178 +#: src/view/com/modals/VerifyEmail.tsx:159 +msgid "Confirmation code" +msgstr "확인 코드" + +#: src/view/com/auth/create/CreateAccount.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:269 +msgid "Connecting..." +msgstr "연결 중…" + +#: src/view/screens/Moderation.tsx:81 +msgid "Content filtering" +msgstr "콘텐츠 필터링" + +#: src/view/com/modals/ContentFilteringSettings.tsx:44 +msgid "Content Filtering" +msgstr "콘텐츠 필터링" + +#: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 +#: src/view/screens/LanguageSettings.tsx:278 +msgid "Content Languages" +msgstr "콘텐츠 언어" + +#: src/view/com/util/moderation/ScreenHider.tsx:78 +msgid "Content Warning" +msgstr "콘텐츠 경고" + +#: src/view/com/composer/labels/LabelsBtn.tsx:31 +msgid "Content warnings" +msgstr "콘텐츠 경고" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +msgid "Continue" +msgstr "계속" + +#: src/view/com/modals/AddAppPasswords.tsx:197 +#: src/view/com/modals/InviteCodes.tsx:182 +msgid "Copied" +msgstr "복사됨" + +#: src/view/screens/Settings.tsx:236 +msgid "Copied build version to clipboard" +msgstr "빌드 버전 클립보드에 복사됨" + +#: src/lib/sharing.ts:23 +#: src/view/com/modals/AddAppPasswords.tsx:75 +#: src/view/com/modals/ChangeHandle.tsx:325 +#: src/view/com/modals/InviteCodes.tsx:152 +#: src/view/com/util/forms/PostDropdownBtn.tsx:100 +msgid "Copied to clipboard" +msgstr "클립보드에 복사됨" + +#: src/view/com/modals/AddAppPasswords.tsx:190 +msgid "Copy" +msgstr "복사" + +#: src/view/com/modals/ChangeHandle.tsx:479 +msgid "Copy {0}" +msgstr "{0} 복사" + +#: src/view/screens/ProfileList.tsx:393 +msgid "Copy link to list" +msgstr "리스트 링크 복사" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:141 +msgid "Copy link to post" +msgstr "게시물 링크 복사" + +#: src/view/com/profile/ProfileHeader.tsx:342 +msgid "Copy link to profile" +msgstr "프로필 링크 복사" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:127 +msgid "Copy post text" +msgstr "게시물 텍스트 복사" + +#: src/view/screens/CopyrightPolicy.tsx:29 +msgid "Copyright Policy" +msgstr "저작권 정책" + +#: src/view/screens/ProfileFeed.tsx:95 +msgid "Could not load feed" +msgstr "피드를 불러올 수 없습니다" + +#: src/view/screens/ProfileList.tsx:848 +msgid "Could not load list" +msgstr "리스트를 불러올 수 없습니다" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 +#: src/view/com/auth/SplashScreen.tsx:46 +#: src/view/com/auth/SplashScreen.web.tsx:78 +msgid "Create a new account" +msgstr "새 계정 만들기" + +#: src/view/com/auth/create/CreateAccount.tsx:121 +msgid "Create Account" +msgstr "계정 만들기" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:54 +#: src/view/com/auth/SplashScreen.tsx:43 +msgid "Create new account" +msgstr "새 계정 만들기" + +#: src/view/screens/AppPasswords.tsx:248 +msgid "Created {0}" +msgstr "{0} 생성됨" + +#: src/view/com/modals/ChangeHandle.tsx:387 +#: src/view/com/modals/ServerInput.tsx:102 +msgid "Custom domain" +msgstr "사용자 지정 도메인" + +#: src/view/screens/Settings.tsx:616 +msgid "Danger Zone" +msgstr "위험 구역" + +#: src/view/screens/Settings.tsx:452 +msgid "Dark" +msgstr "어두움" + +#: src/view/com/auth/create/Step1.tsx:61 +msgid "default" +msgstr "기본" + +#: src/view/screens/Settings.tsx:623 +msgid "Delete account" +msgstr "계정 삭제" + +#: src/view/com/modals/DeleteAccount.tsx:83 +#~ msgid "Delete Account" +#~ msgstr "계정 삭제" + +#: src/view/screens/AppPasswords.tsx:221 +#: src/view/screens/AppPasswords.tsx:241 +msgid "Delete app password" +msgstr "앱 비밀번호 삭제" + +#: src/view/screens/ProfileList.tsx:360 +#: src/view/screens/ProfileList.tsx:420 +msgid "Delete List" +msgstr "리스트 삭제" + +#: src/view/com/modals/DeleteAccount.tsx:214 +msgid "Delete my account" +msgstr "내 계정 삭제" + +#: src/view/screens/Settings.tsx:633 +msgid "Delete my account…" +msgstr "내 계정 삭제…" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:216 +msgid "Delete post" +msgstr "게시물 삭제" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +msgid "Delete this post?" +msgstr "이 게시물을 삭제하시겠습니까?" + +#: src/view/com/post-thread/PostThread.tsx:242 +msgid "Deleted post." +msgstr "삭제된 게시물." + +#: src/view/com/modals/CreateOrEditList.tsx:219 +#: src/view/com/modals/CreateOrEditList.tsx:235 +#: src/view/com/modals/EditProfile.tsx:198 +#: src/view/com/modals/EditProfile.tsx:210 +msgid "Description" +msgstr "설명" + +#: src/view/com/auth/create/Step1.tsx:96 +msgid "Dev Server" +msgstr "개발 서버" + +#: src/view/screens/Settings.tsx:638 +msgid "Developer Tools" +msgstr "개발자 도구" + +#: src/view/com/composer/Composer.tsx:210 +msgid "Did you want to say anything?" +msgstr "하고 싶은 말이 있나요?" + +#: src/view/com/composer/Composer.tsx:143 +msgid "Discard" +msgstr "삭제" + +#: src/view/com/composer/Composer.tsx:137 +msgid "Discard draft" +msgstr "초안 삭제" + +#: src/view/screens/Moderation.tsx:207 +msgid "Discourage apps from showing my account to logged-out users" +msgstr "앱이 로그아웃한 사용자에게 내 계정을 표시하지 않도록 설정하기" + +#: src/view/com/posts/FollowingEmptyState.tsx:74 +msgid "Discover new custom feeds" +msgstr "새로운 맞춤 피드 찾아보기" + +#: src/view/screens/Feeds.tsx:405 +msgid "Discover new feeds" +msgstr "새 피드 발견하기" + +#: src/view/com/modals/EditProfile.tsx:192 +msgid "Display name" +msgstr "표시 이름" + +#: src/view/com/modals/EditProfile.tsx:180 +msgid "Display Name" +msgstr "표시 이름" + +#: src/view/com/modals/ChangeHandle.tsx:396 +msgid "DNS Panel" +msgstr "DNS 패널" + +#: src/state/queries/preferences/moderation.ts:108 +msgid "Does not include nudity" +msgstr "신체 노출 미포함" + +#: src/view/com/modals/ChangeHandle.tsx:480 +msgid "Domain Value" +msgstr "도메인 값" + +#: src/view/com/modals/ChangeHandle.tsx:487 +msgid "Domain verified!" +msgstr "도메인을 확인했습니다!" + +#: src/view/com/auth/create/Step2.tsx:83 +msgid "Don't have an invite code?" +msgstr "초대 코드가 없으십니까?" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: 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/EditImage.tsx:333 +#: src/view/com/modals/InviteCodes.tsx:80 +#: src/view/com/modals/InviteCodes.tsx:123 +#: src/view/com/modals/ListAddRemoveUsers.tsx:142 +#: 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:79 +#: src/view/com/modals/UserAddRemoveLists.tsx:82 +#: src/view/screens/PreferencesHomeFeed.tsx:305 +#: src/view/screens/PreferencesThreads.tsx:162 +msgid "Done" +msgstr "완료" + +#: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 +msgid "Done{extraText}" +msgstr "완료{extraText}" + +#: src/view/com/modals/InviteCodes.tsx:96 +msgid "Each code works once. You'll receive more invite codes periodically." +msgstr "각 코드는 한 번만 사용할 수 있습니다. 주기적으로 더 많은 초대 코드를 받게 됩니다." + +#: src/view/com/modals/CreateOrEditList.tsx:178 +msgid "Edit" +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:408 +msgid "Edit list details" +msgstr "리스트 상세 편집" + +#: src/view/screens/Feeds.tsx:367 +#: src/view/screens/SavedFeeds.tsx:84 +msgid "Edit My Feeds" +msgstr "내 피드 편집" + +#: src/view/com/modals/EditProfile.tsx:152 +msgid "Edit my profile" +msgstr "내 프로필 편집" + +#: src/view/com/profile/ProfileHeader.tsx:457 +msgid "Edit profile" +msgstr "프로필 편집" + +#: src/view/com/profile/ProfileHeader.tsx:460 +msgid "Edit Profile" +msgstr "프로필 편집" + +#: src/view/screens/Feeds.tsx:330 +msgid "Edit Saved Feeds" +msgstr "저장된 피드 편집" + +#: src/view/com/auth/create/Step2.tsx:108 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:148 +#: src/view/com/modals/ChangeEmail.tsx:141 +#: src/view/com/modals/Waitlist.tsx:88 +msgid "Email" +msgstr "이메일" + +#: src/view/com/auth/create/Step2.tsx:99 +msgid "Email address" +msgstr "이메일 주소" + +#: src/view/com/modals/ChangeEmail.tsx:56 +#: src/view/com/modals/ChangeEmail.tsx:88 +msgid "Email updated" +msgstr "이메일 변경됨" + +#: src/view/com/modals/ChangeEmail.tsx:111 +msgid "Email Updated" +msgstr "이메일 변경됨" + +#: src/view/com/modals/VerifyEmail.tsx:78 +msgid "Email verified" +msgstr "이메일 확인됨" + +#: src/view/screens/Settings.tsx:291 +msgid "Email:" +msgstr "이메일:" + +#: src/view/com/modals/ContentFilteringSettings.tsx:158 +msgid "Enable Adult Content" +msgstr "성인 콘텐츠 활성화" + +#: src/view/screens/PreferencesHomeFeed.tsx:141 +msgid "Enable this setting to only see replies between people you follow." +msgstr "내가 팔로우하는 사람들 간의 답글만 표시합니다." + +#: src/view/screens/Profile.tsx:427 +msgid "End of feed" +msgstr "피드 끝" + +#: src/view/com/auth/create/Step1.tsx:71 +msgid "Enter the address of your provider:" +msgstr "제공자 주소를 입력하세요:" + +#: src/view/com/modals/ChangeHandle.tsx:369 +msgid "Enter the domain you want to use" +msgstr "사용할 도메인 입력" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:101 +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/view/com/auth/create/Step2.tsx:104 +msgid "Enter your email address" +msgstr "이메일 주소를 입력하세요" + +#: src/view/com/modals/ChangeEmail.tsx:117 +msgid "Enter your new email address below." +msgstr "아래에 새 이메일 주소를 입력하세요." + +#: src/view/com/auth/login/Login.tsx:99 +msgid "Enter your username and password" +msgstr "사용자 이름 및 비밀번호 입력" + +#: src/view/screens/Search/Search.tsx:105 +msgid "Error:" +msgstr "오류:" + +#: src/view/com/modals/Threadgate.tsx:76 +msgid "Everybody" +msgstr "모두" + +#: src/state/queries/preferences/moderation.ts:131 +msgid "Excessive unwanted interactions" +msgstr "원치 않는 과도한 상호작용" + +#: src/view/com/lightbox/Lightbox.web.tsx:156 +msgid "Expand alt text" +msgstr "대체 텍스트 확장" + +#: src/state/queries/preferences/moderation.ts:91 +msgid "Explicit Sexual Images" +msgstr "노골적인 성적 이미지" + +#: src/view/com/modals/AddAppPasswords.tsx:114 +#: src/view/com/modals/AddAppPasswords.tsx:118 +msgid "Failed to create app password." +msgstr "앱 비밀번호를 만들지 못했습니다." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:78 +msgid "Failed to delete post, please try again" +msgstr "게시물을 삭제하지 못했습니다. 다시 시도해 주세요." + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 +msgid "Failed to load recommended feeds" +msgstr "추천 피드를 불러오지 못했습니다" + +#: src/view/com/lightbox/Lightbox.tsx:83 +msgid "Failed to save image: {0}" +msgstr "이미지를 저장하지 못했습니다: {0}" + +#: src/view/screens/Feeds.tsx:556 +msgid "Feed offline" +msgstr "피드 오프라인" + +#: src/view/com/feeds/FeedPage.tsx:143 +msgid "Feed Preferences" +msgstr "피드 설정" + +#: src/view/shell/desktop/RightNav.tsx:73 +#: src/view/shell/Drawer.tsx:311 +msgid "Feedback" +msgstr "피드백" + +#: src/view/screens/Feeds.tsx:475 +#: src/view/screens/Profile.tsx:165 +#: src/view/shell/bottom-bar/BottomBar.tsx:181 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:474 +#: src/view/shell/Drawer.tsx:475 +msgid "Feeds" +msgstr "피드" + +#: 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 "피드는 콘텐츠를 큐레이션하기 위해 사용자에 의해 만들어집니다. 관심 있는 피드를 선택하세요." + +#: src/view/screens/SavedFeeds.tsx:156 +msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." +msgstr "피드는 사용자가 약간의 코딩 전문 지식으로 구축할 수 있는 맞춤 알고리즘입니다. <0/>에서 자세한 내용을 확인하세요." + +#: src/view/com/modals/ChangeHandle.tsx:480 +msgid "File Contents" +msgstr "파일 내용" + +#: src/view/com/posts/FollowingEmptyState.tsx:57 +msgid "Find accounts to follow" +msgstr "팔로우할 계정 찾아보기" + +#: src/view/screens/Search/Search.tsx:427 +msgid "Find users on Bluesky" +msgstr "Bluesky에서 사용자 찾기" + +#: src/view/screens/Search/Search.tsx:425 +msgid "Find users with the search tool on the right" +msgstr "오른쪽의 검색 도구로 사용자 찾기" + +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:152 +msgid "Finding similar accounts..." +msgstr "유사한 계정을 찾는 중…" + +#: src/view/screens/PreferencesHomeFeed.tsx:105 +msgid "Fine-tune the content you see on your home screen." +msgstr "홈 화면에 표시되는 콘텐츠를 미세 조정합니다." + +#: src/view/screens/PreferencesThreads.tsx:60 +msgid "Fine-tune the discussion threads." +msgstr "토론 스레드를 미세 조정합니다." + +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:138 +#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/ProfileHeader.tsx:542 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:241 +msgid "Follow" +msgstr "팔로우" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:42 +#~ msgid "Follow some" +#~ msgstr "팔로우:" + +#: 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 "일부 사용자를 팔로우하여 시작하세요. 관심 있는 사용자를 기반으로 더 많은 사용자를 추천해 드릴 수 있습니다." + +#: src/view/com/modals/Threadgate.tsx:98 +msgid "Followed users" +msgstr "팔로우한 사용자" + +#: src/view/screens/PreferencesHomeFeed.tsx:148 +msgid "Followed users only" +msgstr "팔로우한 사용자만" + +#: src/view/com/notifications/FeedItem.tsx:166 +msgid "followed you" +msgstr "님이 나를 팔로우했습니다" + +#: src/view/screens/ProfileFollowers.tsx:25 +msgid "Followers" +msgstr "팔로워" + +#: src/view/com/profile/ProfileHeader.tsx:628 +msgid "following" +msgstr "팔로우 중" + +#: src/view/com/profile/ProfileHeader.tsx:526 +#: src/view/screens/ProfileFollows.tsx:25 +msgid "Following" +msgstr "팔로우 중" + +#: src/view/com/profile/ProfileHeader.tsx:196 +msgid "Following {0}" +msgstr "{0} 팔로우 중" + +#: src/view/com/profile/ProfileHeader.tsx:575 +msgid "Follows you" +msgstr "나를 팔로우함" + +#: src/view/com/modals/DeleteAccount.tsx:109 +msgid "For security reasons, we'll need to send a confirmation code to your email address." +msgstr "보안상의 이유로 이메일 주소로 확인 코드를 보내야 합니다." + +#: src/view/com/modals/AddAppPasswords.tsx:211 +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:232 +msgid "Forgot" +msgstr "분실" + +#: src/view/com/auth/login/LoginForm.tsx:229 +msgid "Forgot password" +msgstr "비밀번호 분실" + +#: src/view/com/auth/login/Login.tsx:127 +#: src/view/com/auth/login/Login.tsx:143 +msgid "Forgot Password" +msgstr "비밀번호 분실" + +#: src/view/com/composer/photos/SelectPhotoBtn.tsx:43 +msgid "Gallery" +msgstr "갤러리" + +#: src/view/com/modals/VerifyEmail.tsx:183 +msgid "Get Started" +msgstr "시작하기" + +#: 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 "뒤로" + +#: src/view/screens/ProfileFeed.tsx:104 +#: src/view/screens/ProfileFeed.tsx:109 +#: src/view/screens/ProfileList.tsx:857 +#: src/view/screens/ProfileList.tsx:862 +msgid "Go Back" +msgstr "뒤로" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:181 +#: src/view/com/auth/login/LoginForm.tsx:279 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:163 +msgid "Go to next" +msgstr "다음" + +#: src/state/queries/preferences/moderation.ts:116 +msgid "Gore, self-harm, torture" +msgstr "고어, 자해, 고문" + +#: src/view/com/modals/ChangeHandle.tsx:265 +msgid "Handle" +msgstr "핸들" + +#: src/state/queries/preferences/moderation.ts:123 +msgid "Hate Group Iconography" +msgstr "증오 단체 도상학" + +#: src/view/shell/desktop/RightNav.tsx:102 +#: src/view/shell/Drawer.tsx:321 +msgid "Help" +msgstr "도움말" + +#: src/view/com/modals/AddAppPasswords.tsx:152 +msgid "Here is your app password." +msgstr "앱 비밀번호입니다." + +#: src/view/com/modals/ContentFilteringSettings.tsx:211 +#: src/view/com/modals/ContentFilteringSettings.tsx:238 +#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/util/moderation/ContentHider.tsx:103 +msgid "Hide" +msgstr "숨기기" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +msgid "Hide post" +msgstr "게시물 숨기기" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:179 +msgid "Hide this post?" +msgstr "이 게시물을 숨기시겠습니까?" + +#: src/view/com/notifications/FeedItem.tsx:319 +msgid "Hide user list" +msgstr "사용자 리스트 숨기기" + +#: src/view/com/posts/FeedErrorMessage.tsx:102 +#~ msgid "Hmm, some kind of issue occured when contacting the feed server. Please let the feed owner know about this issue." +#~ msgstr "피드 서버에 연결하는 중 어떤 문제가 발생했습니다. 피드 소유자에게 이 문제에 대해 알려주세요." + +#: src/view/com/posts/FeedErrorMessage.tsx:110 +msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." +msgstr "피드 서버에 연결하는 중 어떤 문제가 발생했습니다. 피드 소유자에게 이 문제에 대해 알려주세요." + +#: src/view/com/posts/FeedErrorMessage.tsx:98 +msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." +msgstr "피드 서버가 잘못 구성된 것 같습니다. 피드 소유자에게 이 문제에 대해 알려주세요." + +#: src/view/com/posts/FeedErrorMessage.tsx:104 +msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." +msgstr "피드 서버가 오프라인 상태인 것 같습니다. 피드 소유자에게 이 문제에 대해 알려주세요." + +#: src/view/com/posts/FeedErrorMessage.tsx:101 +msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." +msgstr "피드 서버에서 잘못된 응답을 보냈습니다. 피드 소유자에게 이 문제에 대해 알려주세요." + +#: src/view/com/posts/FeedErrorMessage.tsx:95 +msgid "Hmm, we're having trouble finding this feed. It may have been deleted." +msgstr "이 피드를 찾는 데 문제가 있습니다. 피드가 삭제되었을 수 있습니다." + +#: src/view/com/posts/FeedErrorMessage.tsx:87 +#~ msgid "Hmmm, we're having trouble finding this feed. It may have been deleted." +#~ msgstr "이 피드를 찾는 데 문제가 있습니다. 피드가 삭제되었을 수 있습니다." + +#: 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 +msgid "Home" +msgstr "홈" + +#: src/view/com/pager/FeedsTabBarMobile.tsx:96 +#: src/view/screens/PreferencesHomeFeed.tsx:98 +#: src/view/screens/Settings.tsx:482 +msgid "Home Feed Preferences" +msgstr "홈 피드 설정" + +#: src/view/com/modals/ChangeHandle.tsx:419 +msgid "Host" +msgstr "호스트" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:114 +msgid "Hosting provider" +msgstr "호스팅 제공자" + +#: src/view/com/auth/create/Step1.tsx:76 +#: src/view/com/auth/create/Step1.tsx:81 +msgid "Hosting provider address" +msgstr "호스팅 제공자 주소" + +#: src/view/com/modals/VerifyEmail.tsx:208 +msgid "I have a code" +msgstr "코드가 있습니다" + +#: src/view/com/modals/ChangeHandle.tsx:281 +msgid "I have my own domain" +msgstr "내 도메인을 가지고 있습니다" + +#: src/state/queries/preferences/moderation.ts:92 +msgid "i.e. pornography" +msgstr "예: 포르노그래피" + +#: src/view/com/modals/SelfLabel.tsx:127 +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/com/modals/AltImage.tsx:97 +msgid "Image alt text" +msgstr "이미지 대체 텍스트" + +#: src/view/com/util/UserAvatar.tsx:308 +#: src/view/com/util/UserBanner.tsx:116 +msgid "Image options" +msgstr "이미지 옵션" + +#: src/state/queries/preferences/moderation.ts:124 +msgid "Images of terror groups, articles covering events, etc." +msgstr "테러 단체의 이미지, 사건 관련 기사 등" + +#: src/state/queries/preferences/moderation.ts:137 +msgid "Impersonation" +msgstr "사칭" + +#: src/view/com/search/Suggestions.tsx:104 +#: src/view/com/search/Suggestions.tsx:115 +#~ msgid "In Your Network" +#~ msgstr "내 네트워크" + +#: src/state/queries/preferences/moderation.ts:100 +msgid "Including non-sexual and artistic" +msgstr "선정적이지 않거나 예술적 콘텐츠 포함" + +#: src/view/com/auth/login/LoginForm.tsx:113 +msgid "Invalid username or password" +msgstr "잘못된 사용자 이름 또는 비밀번호" + +#: src/view/screens/Settings.tsx:384 +msgid "Invite" +msgstr "초대" + +#: src/view/com/modals/InviteCodes.tsx:93 +#: src/view/screens/Settings.tsx:372 +msgid "Invite a Friend" +msgstr "친구 초대하기" + +#: src/view/com/auth/create/Step2.tsx:63 +#: src/view/com/auth/create/Step2.tsx:72 +msgid "Invite code" +msgstr "초대 코드" + +#: src/view/com/auth/create/state.ts:136 +msgid "Invite code not accepted. Check that you input it correctly and try again." +msgstr "초대 코드가 올바르지 않습니다. 코드를 올바르게 입력했는지 확인한 후 다시 시도하세요." + +#: src/view/shell/Drawer.tsx:640 +msgid "Invite codes: {invitesAvailable} available" +msgstr "초대 코드: {invitesAvailable}개 사용 가능" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/SplashScreen.web.tsx:118 +msgid "Jobs" +msgstr "채용" + +#: src/view/com/modals/Waitlist.tsx:67 +msgid "Join the waitlist" +msgstr "대기자 명단 등록" + +#: src/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:90 +msgid "Join the waitlist." +msgstr "대기자 명단에 등록하세요." + +#: src/view/com/modals/Waitlist.tsx:124 +msgid "Join Waitlist" +msgstr "대기자 명단 등록" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +msgid "Language selection" +msgstr "언어 선택" + +#: src/view/screens/LanguageSettings.tsx:89 +msgid "Language Settings" +msgstr "언어 설정" + +#: src/view/screens/Settings.tsx:542 +msgid "Languages" +msgstr "언어" + +#: src/view/com/auth/create/StepHeader.tsx:14 +msgid "Last step!" +msgstr "마지막 단계예요!" + +#: src/view/com/util/moderation/ContentHider.tsx:101 +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 +msgid "Learn More" +msgstr "더 알아보기" + +#: src/view/com/util/moderation/ContentHider.tsx:83 +#: src/view/com/util/moderation/PostAlerts.tsx:40 +#: src/view/com/util/moderation/PostHider.tsx:76 +#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 +#: src/view/com/util/moderation/ScreenHider.tsx:101 +msgid "Learn more about this warning" +msgstr "이 경고에 대해 더 알아보기" + +#: src/view/screens/Moderation.tsx:242 +msgid "Learn more about what is public on Bluesky." +msgstr "Bluesky에서 공개되는 항목에 대해 자세히 알아보세요." + +#: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 +msgid "Leave them all unchecked to see any language." +msgstr "모든 언어를 보려면 모두 선택하지 않은 상태로 두세요." + +#: src/view/com/modals/LinkWarning.tsx:49 +msgid "Leaving Bluesky" +msgstr "Bluesky 떠나기" + +#: src/view/screens/Settings.tsx:273 +msgid "Legacy storage cleared, you need to restart the app now." +msgstr "레거시 스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." + +#: src/view/com/auth/login/Login.tsx:128 +#: src/view/com/auth/login/Login.tsx:144 +msgid "Let's get your password reset!" +msgstr "비밀번호를 재설정해 봅시다!" + +#: src/view/com/util/UserAvatar.tsx:245 +#: src/view/com/util/UserBanner.tsx:60 +msgid "Library" +msgstr "라이브러리" + +#: src/view/screens/Settings.tsx:446 +msgid "Light" +msgstr "밝음" + +#: src/view/screens/ProfileFeed.tsx:599 +msgid "Like this feed" +msgstr "이 피드" + +#: src/view/screens/PostLikedBy.tsx:27 +#: src/view/screens/ProfileFeedLikedBy.tsx:27 +msgid "Liked by" +msgstr "좋아요 표시한 계정" + +#: src/view/com/notifications/FeedItem.tsx:171 +msgid "liked your custom feed{0}" +msgstr "님이 내 맞춤 피드{0}을(를) 좋아합니다" + +#: src/view/com/notifications/FeedItem.tsx:155 +msgid "liked your post" +msgstr "님이 내 게시물을 좋아합니다" + +#: src/view/screens/Profile.tsx:164 +msgid "Likes" +msgstr "좋아요" + +#: src/view/screens/Moderation.tsx:203 +#~ msgid "Limit the visibility of my account" +#~ msgstr "내 계정 공개 범위 제한" + +#: src/view/screens/Moderation.tsx:203 +#~ msgid "Limit the visibility of my account to logged-out users" +#~ msgstr "내 계정의 공개 범위를 로그아웃한 사용자로 제한" + +#: src/view/com/modals/CreateOrEditList.tsx:187 +msgid "List Avatar" +msgstr "리스트 아바타" + +#: src/view/screens/ProfileList.tsx:320 +msgid "List blocked" +msgstr "리스트 차단됨" + +#: src/view/screens/ProfileList.tsx:364 +msgid "List deleted" +msgstr "리스트 삭제됨" + +#: src/view/screens/ProfileList.tsx:279 +msgid "List muted" +msgstr "리스트 뮤트됨" + +#: src/view/com/modals/CreateOrEditList.tsx:200 +msgid "List Name" +msgstr "리스트 이름" + +#: src/view/screens/ProfileList.tsx:339 +msgid "List unblocked" +msgstr "리스트 차단 해제됨" + +#: src/view/screens/ProfileList.tsx:298 +msgid "List unmuted" +msgstr "리스트 언뮤트됨" + +#: src/view/screens/Profile.tsx:166 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:490 +#: src/view/shell/Drawer.tsx:491 +msgid "Lists" +msgstr "리스트" + +#: src/view/com/post-thread/PostThread.tsx:259 +#: src/view/com/post-thread/PostThread.tsx:267 +msgid "Load more posts" +msgstr "더 많은 게시물 불러오기" + +#: src/view/screens/Notifications.tsx:148 +msgid "Load new notifications" +msgstr "새 알림 불러오기" + +#: src/view/com/feeds/FeedPage.tsx:189 +#: src/view/screens/ProfileList.tsx:655 +msgid "Load new posts" +msgstr "새 게시물 불러오기" + +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +msgid "Loading..." +msgstr "불러오는 중…" + +#: src/view/com/modals/ServerInput.tsx:50 +msgid "Local dev server" +msgstr "로컬 개발 서버" + +#: src/view/screens/Moderation.tsx:134 +#~ msgid "Logged-out users" +#~ msgstr "로그아웃한 사용자" + +#: src/view/screens/Moderation.tsx:136 +msgid "Logged-out visibility" +msgstr "로그아웃 표시" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +msgid "Login to account that is not listed" +msgstr "목록에 없는 계정으로 로그인" + +#: src/view/screens/ProfileFeed.tsx:472 +#~ 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 "이 피드는 Bluesky 계정이 있는 사용자만 이용할 수 있는 것 같습니다. 이 피드를 보려면 가입하거나 로그인하세요!" + +#: src/view/com/modals/LinkWarning.tsx:63 +msgid "Make sure this is where you intend to go!" +msgstr "이곳이 당신이 가고자 하는 곳인지 확인하세요!" + +#: src/view/screens/Profile.tsx:163 +msgid "Media" +msgstr "미디어" + +#: src/view/com/threadgate/WhoCanReply.tsx:139 +msgid "mentioned users" +msgstr "멘션한 사용자" + +#: src/view/com/modals/Threadgate.tsx:93 +msgid "Mentioned users" +msgstr "멘션한 사용자" + +#: src/view/screens/Search/Search.tsx:537 +msgid "Menu" +msgstr "메뉴" + +#: src/view/com/posts/FeedErrorMessage.tsx:194 +msgid "Message from server" +msgstr "서버에서 보낸 메시지" + +#: src/view/com/modals/CreateOrEditList.tsx:68 +#: src/view/screens/Moderation.tsx:64 +#: src/view/screens/Settings.tsx:564 +#: src/view/shell/desktop/LeftNav.tsx:397 +#: src/view/shell/Drawer.tsx:509 +#: src/view/shell/Drawer.tsx:510 +msgid "Moderation" +msgstr "검토" + +#: src/view/screens/Moderation.tsx:95 +msgid "Moderation lists" +msgstr "검토 리스트" + +#: src/view/screens/ModerationModlists.tsx:58 +msgid "Moderation Lists" +msgstr "검토 리스트" + +#: src/view/shell/desktop/Feeds.tsx:53 +msgid "More feeds" +msgstr "피드 더 보기" + +#: src/view/com/profile/ProfileHeader.tsx:552 +#: src/view/screens/ProfileFeed.tsx:371 +#: src/view/screens/ProfileList.tsx:592 +msgid "More options" +msgstr "옵션 더 보기" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#~ msgid "More post options" +#~ msgstr "게시물 옵션 더 보기" + +#: src/view/screens/PreferencesThreads.tsx:82 +msgid "Most-liked replies first" +msgstr "좋아요 많은 순" + +#: src/view/com/profile/ProfileHeader.tsx:374 +msgid "Mute Account" +msgstr "계정 뮤트" + +#: src/view/screens/ProfileList.tsx:519 +msgid "Mute accounts" +msgstr "계정 뮤트" + +#: src/view/screens/ProfileList.tsx:466 +msgid "Mute list" +msgstr "리스트 뮤트" + +#: src/view/screens/ProfileList.tsx:271 +msgid "Mute these accounts?" +msgstr "이 계정들을 뮤트하시겠습니까?" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:159 +msgid "Mute thread" +msgstr "스레드 뮤트" + +#: src/view/screens/Moderation.tsx:109 +msgid "Muted accounts" +msgstr "뮤트한 계정" + +#: src/view/screens/ModerationMutedAccounts.tsx:107 +msgid "Muted Accounts" +msgstr "뮤트한 계정" + +#: 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 "계정을 뮤트하면 피드와 알림에서 해당 계정의 게시물이 사라집니다. 뮤트 목록은 완전히 비공개로 유지됩니다." + +#: src/view/screens/ProfileList.tsx:273 +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/screens/Moderation.tsx:134 +#~ msgid "My Account" +#~ msgstr "내 계정" + +#: src/view/com/modals/BirthDateSettings.tsx:56 +msgid "My Birthday" +msgstr "내 생년월일" + +#: src/view/screens/Feeds.tsx:363 +msgid "My Feeds" +msgstr "내 피드" + +#: src/view/shell/desktop/LeftNav.tsx:65 +msgid "My Profile" +msgstr "내 프로필" + +#: src/view/screens/Settings.tsx:521 +msgid "My Saved Feeds" +msgstr "내 저장된 피드" + +#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/CreateOrEditList.tsx:212 +msgid "Name" +msgstr "이름" + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:74 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +msgid "Never lose access to your followers and data." +msgstr "팔로워와 데이터에 대한 접근 권한을 잃지 않습니다." + +#: src/view/com/modals/ChangeHandle.tsx:518 +msgid "Nevermind, create a handle for me" +msgstr "취소하고 나만의 핸들 만들기" + +#: src/view/com/modals/CreateOrEditList.tsx:178 +#: src/view/screens/Lists.tsx:76 +#: src/view/screens/ModerationModlists.tsx:78 +msgid "New" +msgstr "신규" + +#: src/view/com/feeds/FeedPage.tsx:200 +#: src/view/screens/Feeds.tsx:507 +#: src/view/screens/Profile.tsx:354 +#: src/view/screens/ProfileFeed.tsx:441 +#: src/view/screens/ProfileList.tsx:194 +#: src/view/screens/ProfileList.tsx:222 +#: src/view/shell/desktop/LeftNav.tsx:248 +msgid "New post" +msgstr "새 게시물" + +#: src/view/shell/desktop/LeftNav.tsx:258 +msgid "New Post" +msgstr "새 게시물" + +#: src/view/screens/PreferencesThreads.tsx:79 +msgid "Newest replies first" +msgstr "새로운 순" + +#: src/view/com/auth/create/CreateAccount.tsx:154 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:174 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:184 +#: src/view/com/auth/login/LoginForm.tsx:282 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:156 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:166 +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:105 +msgid "Next" +msgstr "다음" + +#: src/view/com/lightbox/Lightbox.web.tsx:142 +msgid "Next image" +msgstr "다음 이미지" + +#: src/view/screens/PreferencesHomeFeed.tsx:123 +#: src/view/screens/PreferencesHomeFeed.tsx:194 +#: src/view/screens/PreferencesHomeFeed.tsx:229 +#: src/view/screens/PreferencesHomeFeed.tsx:266 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 +msgid "No" +msgstr "아니요" + +#: src/view/screens/ProfileFeed.tsx:592 +#: src/view/screens/ProfileList.tsx:729 +msgid "No description" +msgstr "설명 없음" + +#: src/view/com/modals/ChangeHandle.tsx:404 +msgid "No DNS Panel" +msgstr "DNS 패널 없음" + +#: src/view/com/profile/ProfileHeader.tsx:217 +msgid "No longer following {0}" +msgstr "더 이상 {0}(을)를 팔로우하지 않음" + +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 +msgid "No result" +msgstr "결과 없음" + +#: src/view/screens/Feeds.tsx:452 +msgid "No results found for \"{query}\"" +msgstr "\"{query}\"에 대한 결과를 찾을 수 없습니다." + +#: src/view/com/modals/ListAddUser.tsx:142 +#: src/view/shell/desktop/Search.tsx:112 +#~ msgid "No results found for {0}" +#~ msgstr "{0}에 대한 결과를 찾을 수 없습니다." + +#: src/view/com/modals/ListAddRemoveUsers.tsx:127 +#: src/view/screens/Search/Search.tsx:270 +#: src/view/screens/Search/Search.tsx:298 +#: src/view/screens/Search/Search.tsx:629 +#: src/view/shell/desktop/Search.tsx:210 +msgid "No results found for {query}" +msgstr "{query}에 대한 결과를 찾을 수 없습니다." + +#: src/view/com/modals/Threadgate.tsx:82 +msgid "Nobody" +msgstr "없음" + +#: src/view/com/modals/SelfLabel.tsx:136 +#~ msgid "Not Applicable" +#~ msgstr "해당 없음" + +#: src/view/com/modals/SelfLabel.tsx:135 +msgid "Not Applicable." +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:232 +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/view/screens/Moderation.tsx:227 +#~ msgid "Note: Third-party apps that display Bluesky content may not respect this setting." +#~ msgstr "참고: Bluesky 콘텐츠를 표시하는 타사 앱은 이 설정을 준수하지 않을 수 있습니다." + +#: src/view/screens/Notifications.tsx:113 +#: src/view/screens/Notifications.tsx:137 +#: 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 +msgid "Notifications" +msgstr "알림" + +#: src/lib/strings/time.ts:20 +msgid "now" +msgstr "지금" + +#: src/view/com/util/ErrorBoundary.tsx:34 +msgid "Oh no!" +msgstr "안 돼!" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 +msgid "Okay" +msgstr "확인" + +#: src/view/screens/PreferencesThreads.tsx:78 +msgid "Oldest replies first" +msgstr "오래된 순" + +#: src/view/screens/Settings.tsx:229 +msgid "Onboarding reset" +msgstr "온보딩 재설정" + +#: src/view/com/composer/Composer.tsx:360 +msgid "One or more images is missing alt text." +msgstr "하나 이상의 이미지에 대체 텍스트가 누락되었습니다." + +#: src/view/com/threadgate/WhoCanReply.tsx:100 +msgid "Only {0} can reply." +msgstr "{0}만 답글을 달 수 있습니다." + +#: src/view/com/pager/FeedsTabBarMobile.tsx:76 +msgid "Open navigation" +msgstr "내비게이션을 엽니다" + +#: src/view/screens/Settings.tsx:534 +msgid "Opens configurable language settings" +msgstr "구성 가능한 언어 설정을 엽니다" + +#: src/view/shell/desktop/RightNav.tsx:156 +#: src/view/shell/Drawer.tsx:641 +msgid "Opens list of invite codes" +msgstr "초대 코드 목록 열기" + +#: src/view/com/modals/ChangeHandle.tsx:279 +msgid "Opens modal for using custom domain" +msgstr "사용자 지정 도메인을 사용하기 위한 대화 상자를 엽니다" + +#: src/view/screens/Settings.tsx:559 +msgid "Opens moderation settings" +msgstr "검토 설정을 엽니다" + +#: src/view/screens/Settings.tsx:515 +msgid "Opens screen with all saved feeds" +msgstr "모든 저장된 피드 화면을 엽니다" + +#: src/view/screens/Settings.tsx:582 +msgid "Opens the app password settings page" +msgstr "비밀번호 설정 페이지를 엽니다" + +#: src/view/screens/Settings.tsx:474 +msgid "Opens the home feed preferences" +msgstr "홈 피드 설정을 엽니다" + +#: src/view/screens/Settings.tsx:665 +msgid "Opens the storybook page" +msgstr "스토리북 페이지를 엽니다" + +#: src/view/screens/Settings.tsx:645 +msgid "Opens the system log page" +msgstr "시스템 로그 페이지를 엽니다" + +#: src/view/screens/Settings.tsx:495 +msgid "Opens the threads preferences" +msgstr "스레드 설정을 엽니다" + +#: src/view/com/modals/Threadgate.tsx:89 +msgid "Or combine these options:" +msgstr "또는 다음 옵션을 결합하세요:" + +#: src/view/com/auth/create/Step1.tsx:67 +msgid "Other" +msgstr "기타" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +msgid "Other account" +msgstr "다른 계정" + +#: src/state/queries/preferences/moderation.ts:99 +msgid "Other Nudity" +msgstr "기타 신체 노출" + +#: src/view/com/modals/ServerInput.tsx:88 +msgid "Other service" +msgstr "다른 서비스" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +msgid "Other..." +msgstr "기타…" + +#: src/view/screens/NotFound.tsx:42 +#: src/view/screens/NotFound.tsx:45 +msgid "Page not found" +msgstr "페이지를 찾을 수 없음" + +#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:132 +#: src/view/com/auth/login/LoginForm.tsx:217 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:193 +msgid "Password" +msgstr "비밀번호" + +#: src/view/com/auth/login/Login.tsx:157 +msgid "Password updated" +msgstr "비밀번호 변경됨" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:28 +msgid "Password updated!" +msgstr "비밀번호 변경됨" + +#: src/view/com/lightbox/Lightbox.tsx:66 +msgid "Permission to access camera roll is required." +msgstr "앨범에 접근할 수 있는 권한이 필요합니다." + +#: src/view/com/lightbox/Lightbox.tsx:72 +msgid "Permission to access camera roll was denied. Please enable it in your system settings." +msgstr "앨범에 접근할 수 있는 권한이 거부되었습니다. 시스템 설정에서 활성화하세요." + +#: src/view/com/modals/SelfLabel.tsx:121 +msgid "Pictures meant for adults." +msgstr "성인용 사진." + +#: src/view/screens/ProfileFeed.tsx:362 +#: src/view/screens/ProfileList.tsx:556 +msgid "Pin to home" +msgstr "홈에 고정" + +#: src/view/screens/SavedFeeds.tsx:88 +msgid "Pinned Feeds" +msgstr "고정된 피드" + +#: src/view/com/auth/create/state.ts:116 +msgid "Please choose your handle." +msgstr "핸들을 입력하세요." + +#: src/view/com/auth/create/state.ts:109 +msgid "Please choose your password." +msgstr "비밀번호를 입력하세요." + +#: 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 "이메일을 변경하기 전에 이메일을 확인해 주세요. 이는 이메일 변경 도구가 추가되는 동안 일시적으로 요구되는 사항이며 곧 제거될 예정입니다." + +#: src/view/com/modals/AddAppPasswords.tsx:89 +msgid "Please enter a name for your app password. All spaces is not allowed." +msgstr "앱 비밀번호의 이름을 입력하세요. 모든 공백은 허용되지 않습니다." + +#: src/view/com/modals/AddAppPasswords.tsx:144 +msgid "Please enter a unique name for this App Password or use our randomly generated one." +msgstr "이 앱 비밀번호에 대해 고유한 이름을 입력하거나 무작위로 생성된 이름을 사용하세요." + +#: src/view/com/auth/create/state.ts:95 +msgid "Please enter your email." +msgstr "이메일을 입력하세요." + +#: src/view/com/modals/DeleteAccount.tsx:182 +msgid "Please enter your password as well:" +msgstr "비밀번호도 입력해 주세요:" + +#: src/lib/hooks/useAccountSwitcher.ts:42 +msgid "Please sign in as @{0}" +msgstr "@{0}(으)로 로그인하세요." + +#: 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 "이 콘텐츠 경고가 잘못 적용되었다고 생각하는 이유를 알려주세요!" + +#: src/view/com/modals/AppealLabel.tsx:72 +#: src/view/com/modals/AppealLabel.tsx:75 +#~ msgid "Please tell us why you think this decision was incorrect." +#~ msgstr "이 결정이 잘못되었다고 생각하는 이유를 알려주세요." + +#: src/view/com/composer/Composer.tsx:214 +msgid "Please wait for your link card to finish loading" +msgstr "링크 카드를 완전히 불러올 때까지 기다려주세요." + +#: src/view/com/post-thread/PostThread.tsx:225 +#: src/view/screens/PostThread.tsx:80 +msgid "Post" +msgstr "게시물" + +#: src/view/com/composer/Composer.tsx:336 +#: src/view/com/composer/Composer.tsx:343 +msgid "Post (verb)" +msgstr "게시하기" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:74 +msgid "Post deleted" +msgstr "게시물 삭제됨" + +#: src/view/com/post-thread/PostThread.tsx:378 +msgid "Post hidden" +msgstr "게시물 숨김" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +msgid "Post language" +msgstr "게시물 언어" + +#: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:75 +msgid "Post Languages" +msgstr "게시물 언어" + +#: src/view/com/post-thread/PostThread.tsx:430 +msgid "Post not found" +msgstr "게시물을 찾을 수 없음" + +#: src/view/screens/Profile.tsx:161 +msgid "Posts" +msgstr "게시물" + +#: src/view/com/modals/LinkWarning.tsx:44 +msgid "Potentially Misleading Link" +msgstr "오해의 소지가 있는 링크" + +#: src/view/com/lightbox/Lightbox.web.tsx:128 +msgid "Previous image" +msgstr "이전 이미지" + +#: src/view/screens/LanguageSettings.tsx:187 +msgid "Primary Language" +msgstr "주 언어" + +#: src/view/screens/PreferencesThreads.tsx:97 +msgid "Prioritize Your Follows" +msgstr "내 팔로우 우선시키기" + +#: src/view/shell/desktop/RightNav.tsx:84 +msgid "Privacy" +msgstr "개인정보" + +#: src/view/com/auth/create/Policies.tsx:69 +#: src/view/screens/PrivacyPolicy.tsx:29 +#: src/view/screens/Settings.tsx:751 +#: src/view/shell/Drawer.tsx:262 +msgid "Privacy Policy" +msgstr "개인정보 처리방침" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:190 +msgid "Processing..." +msgstr "처리 중…" + +#: 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:544 +#: src/view/shell/Drawer.tsx:545 +msgid "Profile" +msgstr "프로필" + +#: src/view/com/modals/EditProfile.tsx:128 +msgid "Profile updated" +msgstr "프로필 업데이트됨" + +#: src/view/screens/Settings.tsx:809 +msgid "Protect your account by verifying your email." +msgstr "이메일을 인증하여 계정을 보호하세요." + +#: src/view/screens/ModerationModlists.tsx:61 +msgid "Public, shareable lists of users to mute or block in bulk." +msgstr "음소거하거나 일괄 차단할 수 있는 공개적이고 공유할 수 있는 사용자 목록입니다." + +#: src/view/screens/Lists.tsx:61 +msgid "Public, shareable lists which can drive feeds." +msgstr "피드를 탐색할 수 있는 공개적이고 공유할 수 있는 목록입니다." + +#: src/view/com/composer/Composer.tsx:324 +msgid "Publish post" +msgstr "게시물 게시하기" + +#: src/view/com/composer/Composer.tsx:324 +msgid "Publish reply" +msgstr "답글 게시하기" + +#: src/view/com/modals/Repost.tsx:52 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 +msgid "Quote post" +msgstr "게시물 인용" + +#: src/view/com/modals/Repost.tsx:56 +msgid "Quote Post" +msgstr "게시물 인용" + +#: src/view/screens/PreferencesThreads.tsx:86 +msgid "Random (aka \"Poster's Roulette\")" +msgstr "무작위" + +#: src/view/com/modals/EditImage.tsx:236 +msgid "Ratios" +msgstr "비율" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:73 +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:50 +#~ msgid "Recommended" +#~ msgstr "추천" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 +msgid "Recommended Feeds" +msgstr "추천 피드" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:180 +msgid "Recommended Users" +msgstr "추천 사용자" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/UserAddRemoveLists.tsx:193 +#: src/view/com/util/UserAvatar.tsx:282 +#: src/view/com/util/UserBanner.tsx:89 +msgid "Remove" +msgstr "제거" + +#: src/view/com/feeds/FeedSourceCard.tsx:106 +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:130 +msgid "Remove feed" +msgstr "피드 제거" + +#: src/view/com/feeds/FeedSourceCard.tsx:105 +#: src/view/com/feeds/FeedSourceCard.tsx:172 +#: src/view/screens/ProfileFeed.tsx:281 +msgid "Remove from my feeds" +msgstr "내 피드에서 제거" + +#: src/view/com/composer/photos/Gallery.tsx:167 +msgid "Remove image" +msgstr "이미지 제거" + +#: src/view/com/composer/ExternalEmbed.tsx:70 +msgid "Remove image preview" +msgstr "이미지 미리보기 제거" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +msgid "Remove this feed from my feeds?" +msgstr "이 피드를 내 피드에서 제거하시겠습니까?" + +#: src/view/com/posts/FeedErrorMessage.tsx:131 +msgid "Remove this feed from your saved feeds?" +msgstr "이 피드를 저장된 피드에서 제거하시겠습니까?" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:199 +#: src/view/com/modals/UserAddRemoveLists.tsx:136 +msgid "Removed from list" +msgstr "리스트에서 제거됨" + +#: src/view/com/feeds/FeedSourceCard.tsx:111 +#: src/view/com/feeds/FeedSourceCard.tsx:178 +msgid "Removed from my feeds" +msgstr "내 피드에서 제거됨" + +#: src/view/screens/Profile.tsx:162 +msgid "Replies" +msgstr "답글" + +#: src/view/com/threadgate/WhoCanReply.tsx:98 +msgid "Replies to this thread are disabled" +msgstr "이 스레드에 대한 답글이 비활성화됩니다." + +#: src/view/com/composer/Composer.tsx:336 +msgid "Reply" +msgstr "답글" + +#: src/view/screens/PreferencesHomeFeed.tsx:138 +msgid "Reply Filters" +msgstr "답글 필터" + +#: src/view/com/modals/report/Modal.tsx:169 +msgid "Report {collectionName}" +msgstr "{collectionName} 신고" + +#: src/view/com/profile/ProfileHeader.tsx:408 +msgid "Report Account" +msgstr "계정 신고" + +#: src/view/screens/ProfileFeed.tsx:301 +msgid "Report feed" +msgstr "피드 신고" + +#: src/view/screens/ProfileList.tsx:434 +msgid "Report List" +msgstr "리스트 신고" + +#: src/view/com/modals/report/SendReportButton.tsx:37 +#: src/view/com/util/forms/PostDropdownBtn.tsx:198 +msgid "Report post" +msgstr "포스트 신고" + +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +msgid "Repost" +msgstr "재게시" + +#: 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 "재게시 또는 게시물 인용" + +#: src/view/screens/PostRepostedBy.tsx:27 +msgid "Reposted by" +msgstr "재게시한 계정" + +#: src/view/com/posts/FeedItem.tsx:203 +msgid "Reposted by {0}" +msgstr "{0} 님이 재게시함" + +#: src/view/com/posts/FeedItem.tsx:220 +msgid "Reposted by <0/>" +msgstr "<0/> 님이 재게시함" + +#: src/view/com/notifications/FeedItem.tsx:162 +msgid "reposted your post" +msgstr "님이 내 게시물을 재게시했습니다" + +#: src/view/com/modals/ChangeEmail.tsx:181 +#: src/view/com/modals/ChangeEmail.tsx:183 +msgid "Request Change" +msgstr "변경 요청" + +#: src/view/screens/Moderation.tsx:188 +#~ msgid "Request to limit the visibility of my account" +#~ msgstr "내 계정의 공개 범위 제한 요청하기" + +#: src/view/screens/Settings.tsx:423 +msgid "Require alt text before posting" +msgstr "게시하기 전 대체 텍스트 필수" + +#: src/view/com/auth/create/Step2.tsx:68 +msgid "Required for this provider" +msgstr "이 제공자에서 필수" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:108 +msgid "Reset code" +msgstr "코드 재설정" + +#: src/view/screens/Settings.tsx:687 +msgid "Reset onboarding state" +msgstr "온보딩 상태 재설정" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:98 +msgid "Reset password" +msgstr "비밀번호 재설정" + +#: src/view/screens/Settings.tsx:677 +msgid "Reset preferences state" +msgstr "설정 상태 재설정" + +#: src/view/screens/Settings.tsx:685 +msgid "Resets the onboarding state" +msgstr "온보딩 상태 재설정" + +#: src/view/screens/Settings.tsx:675 +msgid "Resets the preferences state" +msgstr "설정 상태 재설정" + +#: src/view/com/auth/create/CreateAccount.tsx:163 +#: src/view/com/auth/create/CreateAccount.tsx:167 +#: src/view/com/auth/login/LoginForm.tsx:259 +#: src/view/com/auth/login/LoginForm.tsx:262 +#: src/view/com/util/error/ErrorMessage.tsx:55 +#: src/view/com/util/error/ErrorScreen.tsx:65 +msgid "Retry" +msgstr "다시 시도" + +#: src/view/com/modals/ChangeHandle.tsx:169 +#~ msgid "Retry change handle" +#~ msgstr "핸들 변경 다시 시도" + +#: src/view/com/modals/AltImage.tsx:115 +#: 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:250 +#: src/view/com/modals/CreateOrEditList.tsx:258 +#: src/view/com/modals/EditProfile.tsx:224 +#: src/view/screens/ProfileFeed.tsx:354 +msgid "Save" +msgstr "저장" + +#: src/view/com/modals/AltImage.tsx:106 +msgid "Save alt text" +msgstr "대체 텍스트 저장" + +#: src/view/com/modals/UserAddRemoveLists.tsx:212 +#~ msgid "Save changes" +#~ msgstr "변경 사항 저장" + +#: src/view/com/modals/EditProfile.tsx:232 +msgid "Save Changes" +msgstr "변경 사항 저장" + +#: src/view/com/modals/ChangeHandle.tsx:170 +msgid "Save handle change" +msgstr "핸들 변경 저장" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:144 +msgid "Save image crop" +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/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:406 +#: src/view/screens/Search/Search.tsx:559 +#: src/view/screens/Search/Search.tsx:572 +#: src/view/shell/bottom-bar/BottomBar.tsx:159 +#: src/view/shell/desktop/LeftNav.tsx:324 +#: src/view/shell/desktop/Search.tsx:161 +#: src/view/shell/desktop/Search.tsx:170 +#: src/view/shell/Drawer.tsx:362 +#: src/view/shell/Drawer.tsx:363 +msgid "Search" +msgstr "검색" + +#: src/view/screens/Search/Search.tsx:390 +#~ msgid "Search for posts and users." +#~ msgstr "게시물 및 사용자를 검색합니다." + +#: 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 "사용자 검색하기" + +#: src/view/com/modals/ChangeEmail.tsx:110 +msgid "Security Step Required" +msgstr "보안 단계 필요" + +#: src/view/screens/SavedFeeds.tsx:163 +msgid "See this guide" +msgstr "이 가이드" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:39 +msgid "See what's next" +msgstr "See what's next" + +#: src/view/com/modals/ServerInput.tsx:75 +msgid "Select Bluesky Social" +msgstr "Bluesky Social 선택" + +#: src/view/com/auth/login/Login.tsx:117 +msgid "Select from an existing account" +msgstr "기존 계정에서 선택" + +#: src/view/com/auth/login/LoginForm.tsx:143 +msgid "Select service" +msgstr "서비스 선택" + +#: 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 "구독하는 피드에 포함할 언어를 선택합니다. 선택하지 않으면 모든 언어가 표시됩니다." + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app" +msgstr "앱에 표시되는 기본 텍스트의 언어를 선택합니다." + +#: src/view/screens/LanguageSettings.tsx:190 +msgid "Select your preferred language for translations in your feed." +msgstr "피드에서 번역을 위해 선호하는 언어를 선택합니다." + +#: src/view/com/modals/VerifyEmail.tsx:196 +msgid "Send Confirmation Email" +msgstr "확인 이메일 전송" + +#: src/view/com/modals/DeleteAccount.tsx:129 +msgid "Send email" +msgstr "이메일 전송" + +#: src/view/com/modals/DeleteAccount.tsx:140 +msgid "Send Email" +msgstr "이메일 전송" + +#: src/view/shell/Drawer.tsx:295 +#: src/view/shell/Drawer.tsx:316 +msgid "Send feedback" +msgstr "피드백 전송" + +#: src/view/com/modals/report/SendReportButton.tsx:45 +msgid "Send Report" +msgstr "신고 전송" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:78 +msgid "Set new password" +msgstr "새 비밀번호 설정" + +#: src/view/screens/PreferencesHomeFeed.tsx:219 +msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." +msgstr "피드에서 모든 인용 게시물을 숨기려면 이 설정을 \"아니요\"로 설정합니다. 재게시는 계속 표시됩니다." + +#: src/view/screens/PreferencesHomeFeed.tsx:116 +msgid "Set this setting to \"No\" to hide all replies from your feed." +msgstr "피드에서 모든 답글을 숨기려면 이 설정을 \"아니요\"로 설정합니다." + +#: src/view/screens/PreferencesHomeFeed.tsx:185 +msgid "Set this setting to \"No\" to hide all reposts from your feed." +msgstr "피드에서 모든 재게시를 숨기려면 이 설정을 \"아니요\"로 설정합니다." + +#: 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 "스레드 보기에 답글을 표시하려면 이 설정을 \"예\"로 설정합니다. 이는 실험적인 기능입니다." + +#: src/view/screens/PreferencesHomeFeed.tsx:255 +msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." +msgstr "팔로우한 피드에 저장된 피드 샘플을 표시하려면 이 설정을 \"예\"로 설정합니다. 이는 실험적인 기능입니다." + +#: src/view/screens/Settings.tsx:278 +#: src/view/shell/desktop/LeftNav.tsx:433 +#: src/view/shell/Drawer.tsx:565 +#: src/view/shell/Drawer.tsx:566 +msgid "Settings" +msgstr "설정" + +#: src/view/com/modals/SelfLabel.tsx:125 +msgid "Sexual activity or erotic nudity." +msgstr "성행위 또는 선정적인 노출." + +#: src/state/queries/preferences/moderation.ts:107 +msgid "Sexually Suggestive" +msgstr "성적 암시" + +#: src/view/com/profile/ProfileHeader.tsx:342 +#: src/view/com/util/forms/PostDropdownBtn.tsx:141 +#: src/view/screens/ProfileList.tsx:393 +msgid "Share" +msgstr "공유" + +#: src/view/screens/ProfileFeed.tsx:313 +msgid "Share feed" +msgstr "피드 공유" + +#: src/view/screens/ProfileFeed.tsx:276 +#~ msgid "Share link" +#~ msgstr "링크 공유" + +#: src/view/com/modals/ContentFilteringSettings.tsx:253 +#: src/view/com/util/moderation/ContentHider.tsx:105 +#: src/view/screens/Settings.tsx:317 +msgid "Show" +msgstr "표시" + +#: src/view/screens/PreferencesHomeFeed.tsx:62 +msgid "Show all replies" +msgstr "모든 답글 표시" + +#: src/view/com/util/moderation/ScreenHider.tsx:132 +msgid "Show anyway" +msgstr "무시하고 표시" + +#: src/view/screens/PreferencesHomeFeed.tsx:252 +msgid "Show Posts from My Feeds" +msgstr "내 피드에서 게시물 표시" + +#: src/view/screens/PreferencesHomeFeed.tsx:216 +msgid "Show Quote Posts" +msgstr "인용 게시물 표시" + +#: src/view/screens/PreferencesHomeFeed.tsx:113 +msgid "Show Replies" +msgstr "답글 표시" + +#: src/view/screens/PreferencesThreads.tsx:100 +msgid "Show replies by people you follow before all other replies." +msgstr "내가 팔로우하는 사람들의 답글을 다른 모든 답글보다 먼저 표시합니다." + +#: src/view/screens/PreferencesHomeFeed.tsx:64 +msgid "Show replies with at least {value} {0}" +msgstr "좋아요가 {value}개 이상인 답글 표시" + +#: src/view/screens/PreferencesHomeFeed.tsx:182 +msgid "Show Reposts" +msgstr "재게시 표시" + +#: src/view/com/notifications/FeedItem.tsx:348 +msgid "Show users" +msgstr "사용자 표시" + +#: 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:177 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:180 +#: 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:57 +#: src/view/com/auth/SplashScreen.web.tsx:88 +msgid "Sign In" +msgstr "로그인" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +msgid "Sign in as {0}" +msgstr "{0}(으)로 로그인" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/Login.tsx:116 +msgid "Sign in as..." +msgstr "로그인" + +#: src/view/com/auth/login/LoginForm.tsx:130 +msgid "Sign into" +msgstr "로그인" + +#: src/view/com/modals/SwitchAccount.tsx:64 +#: src/view/com/modals/SwitchAccount.tsx:67 +#: src/view/screens/Settings.tsx:102 +#: src/view/screens/Settings.tsx:105 +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/BottomBarWeb.tsx:167 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:170 +#: src/view/shell/NavSignupCard.tsx:49 +#: src/view/shell/NavSignupCard.tsx:50 +#: src/view/shell/NavSignupCard.tsx:52 +msgid "Sign up" +msgstr "가입하기" + +#: src/view/shell/NavSignupCard.tsx:42 +msgid "Sign up or sign in to join the conversation" +msgstr "가입 또는 로그인하여 대화에 참여하세요" + +#: src/view/com/util/moderation/ScreenHider.tsx:76 +msgid "Sign-in Required" +msgstr "로그인 필요" + +#: src/view/screens/Settings.tsx:328 +msgid "Signed in as" +msgstr "로그인한 계정" + +#: src/lib/hooks/useAccountSwitcher.ts:36 +#: src/view/com/auth/login/ChooseAccountForm.tsx:103 +msgid "Signed in as @{0}" +msgstr "@{0}(으)로 로그인했습니다." + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +msgid "Skip" +msgstr "건너뛰기" + +#: src/lib/hooks/useAccountSwitcher.ts:47 +msgid "Sorry! We need you to enter your password." +msgstr "죄송합니다. 비밀번호를 입력해 주세요." + +#: src/App.native.tsx:57 +#~ msgid "Sorry! Your session expired. Please log in again." +#~ msgstr "죄송합니다. 세션이 만료되었습니다. 다시 로그인해 주세요." + +#: src/view/screens/PreferencesThreads.tsx:69 +msgid "Sort Replies" +msgstr "답글 정렬" + +#: src/view/screens/PreferencesThreads.tsx:72 +msgid "Sort replies to the same post by:" +msgstr "동일한 게시물에 대한 답글을 정렬하는 기준입니다." + +#: src/state/queries/preferences/moderation.ts:130 +msgid "Spam" +msgstr "스팸" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:122 +msgid "Square" +msgstr "정사각형" + +#: src/view/com/auth/create/Step1.tsx:90 +#: src/view/com/modals/ServerInput.tsx:62 +msgid "Staging" +msgstr "스테이징" + +#: src/view/screens/Settings.tsx:731 +msgid "Status page" +msgstr "상태 페이지" + +#: src/view/com/auth/create/CreateAccount.tsx:120 +msgid "Step {0}" +msgstr "{0}단계" + +#: src/view/com/auth/create/StepHeader.tsx:16 +msgid "Step {step} of 3" +msgstr "3단계 중 {step}단계" + +#: src/view/screens/Settings.tsx:269 +msgid "Storage cleared, you need to restart the app now." +msgstr "스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." + +#: src/view/screens/Settings.tsx:667 +msgid "Storybook" +msgstr "스토리북" + +#: src/view/com/modals/AppealLabel.tsx:101 +msgid "Submit" +msgstr "확인" + +#: src/view/screens/ProfileList.tsx:583 +msgid "Subscribe" +msgstr "구독" + +#: src/view/screens/ProfileList.tsx:579 +msgid "Subscribe to this list" +msgstr "이 리스트로 구독" + +#: src/view/screens/Search/Search.tsx:362 +msgid "Suggested Follows" +msgstr "팔로우 추천" + +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 +msgid "Suggested for you" +msgstr "나를 위한 추천" + +#: src/view/screens/Support.tsx:30 +#: src/view/screens/Support.tsx:33 +msgid "Support" +msgstr "지원" + +#: src/view/com/modals/SwitchAccount.tsx:115 +msgid "Switch Account" +msgstr "계정 전환" + +#: src/view/screens/Settings.tsx:439 +msgid "System" +msgstr "시스템" + +#: src/view/screens/Settings.tsx:647 +msgid "System log" +msgstr "시스템 로그" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:112 +msgid "Tall" +msgstr "세로" + +#: src/view/shell/desktop/RightNav.tsx:93 +msgid "Terms" +msgstr "이용약관" + +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings.tsx:745 +#: src/view/screens/TermsOfService.tsx:29 +#: src/view/shell/Drawer.tsx:256 +msgid "Terms of Service" +msgstr "서비스 이용약관" + +#: src/view/com/modals/AppealLabel.tsx:70 +#: src/view/com/modals/report/InputIssueDetails.tsx:51 +msgid "Text input field" +msgstr "텍스트 입력 필드" + +#: src/view/com/modals/report/Modal.tsx:82 +msgid "Thank you for your report! We'll look into it promptly." +msgstr "신고해 주셔서 감사합니다! 즉시 검토하겠습니다." + +#: src/view/com/modals/ChangeHandle.tsx:464 +msgid "That contains the following:" +msgstr "텍스트 파일 내용:" + +#: src/view/com/profile/ProfileHeader.tsx:310 +msgid "The account will be able to interact with you after unblocking." +msgstr "차단을 해제하면 해당 계정이 나와 상호작용할 수 있게 됩니다." + +#: src/view/screens/CommunityGuidelines.tsx:36 +msgid "The Community Guidelines have been moved to <0/>" +msgstr "커뮤니티 가이드라인이 <0/>(으)로 이동되었습니다." + +#: src/view/screens/CopyrightPolicy.tsx:33 +msgid "The Copyright Policy has been moved to <0/>" +msgstr "저작권 정책이 <0/>(으)로 이동되었습니다." + +#: src/view/com/post-thread/PostThread.tsx:433 +msgid "The post may have been deleted." +msgstr "게시물이 삭제되었을 수 있습니다." + +#: src/view/screens/PrivacyPolicy.tsx:33 +msgid "The Privacy Policy has been moved to <0/>" +msgstr "개인정보 처리방침이 <0/>(으)로 이동되었습니다." + +#: 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 "지원 양식이 이동되었습니다. 도움이 필요하다면 {HELP_DESK_URL}을 방문하거나 <0/>로 문의해 주세요." + +#: src/view/screens/Debug.tsx:184 +msgid "The task has been completed" +msgstr "작업을 완료했습니다." + +#: src/view/screens/Debug.tsx:188 +msgid "The task has been completed successfully and with no problems" +msgstr "작업을 문제 없이 성공적으로 완료했습니다." + +#: src/view/screens/TermsOfService.tsx:33 +msgid "The Terms of Service have been moved to" +msgstr "서비스 이용약관이 다음으로 이동되었습니다:" + +#: src/view/screens/ProfileFeed.tsx:557 +msgid "There was an an issue contacting the server, please check your internet connection and try again." +msgstr "서버에 연결하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." + +#: src/view/screens/ProfileFeed.tsx:218 +msgid "There was an an issue updating your feeds, please check your internet connection and try again." +msgstr "피드를 업데이트하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." + +#: src/view/screens/ProfileFeed.tsx:245 +#: src/view/screens/ProfileList.tsx:263 +#: 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 "서버에 연결하는 동안 문제가 발생했습니다." + +#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:58 +#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:67 +#: 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 "서버에 연결하는 동안 문제가 발생했습니다." + +#: src/view/com/modals/ContentFilteringSettings.tsx:126 +msgid "There was an issue syncing your preferences with the server" +msgstr "설정을 서버와 동기화하는 동안 문제가 발생했습니다." + +#: 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 "문제가 발생했습니다! {0}" + +#: src/view/screens/ProfileList.tsx:284 +#: src/view/screens/ProfileList.tsx:303 +#: src/view/screens/ProfileList.tsx:325 +#: src/view/screens/ProfileList.tsx:344 +msgid "There was an issue. Please check your internet connection and try again." +msgstr "문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." + +#: src/view/com/util/ErrorBoundary.tsx:35 +msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" +msgstr "애플리케이션에 예기치 않은 문제가 발생했습니다. 이런 일이 발생하면 저희에게 알려주세요!" + +#: src/view/com/util/moderation/LabelInfo.tsx:45 +#~ msgid "This {0} has been labeled." +#~ msgstr "이 {0}에 레이블이 지정되었습니다." + +#: src/view/com/util/moderation/ScreenHider.tsx:88 +msgid "This {screenDescription} has been flagged:" +msgstr "이 {screenDescription}에 플래그가 지정되었습니다:" + +#: src/view/com/util/moderation/ScreenHider.tsx:83 +msgid "This account has requested that users sign in to view their profile." +msgstr "이 계정의 프로필을 보려면 로그인해야 합니다." + +#: src/view/com/posts/FeedErrorMessage.tsx:107 +msgid "This content is not viewable without a Bluesky account." +msgstr "이 콘텐츠는 Bluesky 계정이 없으면 볼 수 없습니다." + +#: src/view/com/posts/FeedErrorMessage.tsx:113 +msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." +msgstr "이 피드는 현재 트래픽이 많아 일시적으로 사용할 수 없습니다. 나중에 다시 시도해 주세요." + +#: src/view/screens/Profile.tsx:392 +#: src/view/screens/ProfileFeed.tsx:484 +#: src/view/screens/ProfileList.tsx:636 +msgid "This feed is empty!" +msgstr "이 피드는 비어 있습니다." + +#: src/view/com/modals/BirthDateSettings.tsx:61 +msgid "This information is not shared with other users." +msgstr "이 정보는 다른 사용자와 공유되지 않습니다." + +#: src/view/com/modals/VerifyEmail.tsx:113 +msgid "This is important in case you ever need to change your email or reset your password." +msgstr "이는 이메일을 변경하거나 비밀번호를 재설정해야 할 때 중요한 정보입니다." + +#: src/view/com/auth/create/Step1.tsx:55 +msgid "This is the service that keeps you online." +msgstr "온라인 상태를 유지할 수 있게 하는 서비스입니다." + +#: src/view/com/modals/LinkWarning.tsx:56 +msgid "This link is taking you to the following website:" +msgstr "이 링크를 클릭하면 다음 웹사이트로 이동합니다:" + +#: src/view/screens/ProfileList.tsx:794 +msgid "This list is empty!" +msgstr "이 리스트는 비어 있습니다." + +#: src/view/com/modals/AddAppPasswords.tsx:105 +msgid "This name is already in use" +msgstr "이 이름은 이미 사용 중입니다." + +#: src/view/com/post-thread/PostThreadItem.tsx:123 +msgid "This post has been deleted." +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:444 +msgid "This should create a domain record at:" +msgstr "이 도메인에 레코드가 추가됩니다:" + +#: src/view/com/modals/SelfLabel.tsx:137 +msgid "This warning is only available for posts with media attached." +msgstr "이 경고는 미디어가 첨부된 게시물에만 사용할 수 있습니다." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:180 +msgid "This will hide this post from your feeds." +msgstr "피드에서 이 게시물을 숨깁니다." + +#: src/view/screens/PreferencesThreads.tsx:53 +#: src/view/screens/Settings.tsx:504 +msgid "Thread Preferences" +msgstr "스레드 설정" + +#: src/view/screens/PreferencesThreads.tsx:119 +msgid "Threaded Mode" +msgstr "스레드 모드" + +#: src/view/com/util/forms/DropdownButton.tsx:230 +msgid "Toggle dropdown" +msgstr "드롭다운 열기 및 닫기" + +#: src/view/com/modals/EditImage.tsx:271 +msgid "Transformations" +msgstr "변형" + +#: src/view/com/post-thread/PostThreadItem.tsx:705 +#: src/view/com/post-thread/PostThreadItem.tsx:707 +#: src/view/com/util/forms/PostDropdownBtn.tsx:113 +msgid "Translate" +msgstr "번역" + +#: src/view/com/util/error/ErrorScreen.tsx:73 +msgid "Try again" +msgstr "다시 시도" + +#: src/view/com/modals/ChangeHandle.tsx:427 +msgid "Type" +msgstr "유형" + +#: src/view/screens/ProfileList.tsx:481 +msgid "Un-block list" +msgstr "리스트 차단 해제" + +#: src/view/screens/ProfileList.tsx:466 +msgid "Un-mute list" +msgstr "리스트 언뮤트" + +#: src/view/com/auth/create/CreateAccount.tsx:65 +#: src/view/com/auth/login/Login.tsx:76 +#: src/view/com/auth/login/LoginForm.tsx:117 +msgid "Unable to contact your service. Please check your Internet connection." +msgstr "서비스에 연결할 수 없습니다. 인터넷 연결을 확인하세요." + +#: src/view/com/profile/ProfileHeader.tsx:470 +#: src/view/com/profile/ProfileHeader.tsx:473 +#: src/view/screens/ProfileList.tsx:565 +msgid "Unblock" +msgstr "차단 해제" + +#: src/view/com/profile/ProfileHeader.tsx:308 +#: src/view/com/profile/ProfileHeader.tsx:392 +msgid "Unblock Account" +msgstr "계정 차단 해제" + +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +msgid "Undo repost" +msgstr "재게시 취소" + +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:138 +#: src/view/com/profile/FollowButton.tsx:55 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:241 +msgid "Unfollow" +msgstr "언팔로우" + +#: src/view/com/auth/create/state.ts:210 +msgid "Unfortunately, you do not meet the requirements to create an account." +msgstr "아쉽지만 계정을 만들 수 있는 요건을 충족하지 못했습니다." + +#: src/view/screens/ProfileList.tsx:572 +msgid "Unmute" +msgstr "언뮤트" + +#: src/view/com/profile/ProfileHeader.tsx:373 +msgid "Unmute Account" +msgstr "계정 언뮤트" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:159 +msgid "Unmute thread" +msgstr "스레드 언뮤트" + +#: src/view/screens/ProfileFeed.tsx:362 +#: src/view/screens/ProfileList.tsx:556 +msgid "Unpin" +msgstr "고정 해제" + +#: src/view/screens/ProfileList.tsx:449 +msgid "Unpin moderation list" +msgstr "검토 리스트 고정 해제" + +#: src/view/screens/ProfileFeed.tsx:354 +msgid "Unsave" +msgstr "저장 해제" + +#: src/view/com/modals/UserAddRemoveLists.tsx:54 +msgid "Update {displayName} in Lists" +msgstr "리스트에서 {displayName} 업데이트" + +#: src/lib/hooks/useOTAUpdate.ts:15 +msgid "Update Available" +msgstr "업데이트 사용 가능" + +#: src/view/com/modals/ChangeHandle.tsx:507 +msgid "Update to {handle}" +msgstr "{handle}로 변경" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:172 +msgid "Updating..." +msgstr "업데이트 중…" + +#: src/view/com/modals/ChangeHandle.tsx:453 +msgid "Upload a text file to:" +msgstr "텍스트 파일 업로드 경로:" + +#: src/view/screens/AppPasswords.tsx:194 +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 +msgid "Use default provider" +msgstr "기본 제공자 사용" + +#: src/view/com/modals/AddAppPasswords.tsx:154 +msgid "Use this to sign into the other app along with your handle." +msgstr "이 비밀번호와 핸들을 사용하여 다른 앱에 로그인하세요." + +#: src/view/com/modals/InviteCodes.tsx:200 +msgid "Used by:" +msgstr "사용 계정:" + +#: src/view/com/modals/CreateOrEditList.tsx:68 +msgid "User" +msgstr "사용자" + +#: src/view/com/auth/create/Step3.tsx:38 +msgid "User handle" +msgstr "사용자 핸들" + +#: src/view/screens/Lists.tsx:58 +msgid "User Lists" +msgstr "사용자 리스트" + +#: src/view/com/auth/login/LoginForm.tsx:170 +#: src/view/com/auth/login/LoginForm.tsx:188 +msgid "Username or email address" +msgstr "사용자 이름 또는 이메일 주소" + +#: src/view/screens/ProfileList.tsx:756 +msgid "Users" +msgstr "사용자" + +#: src/view/com/threadgate/WhoCanReply.tsx:143 +msgid "users followed by <0/>" +msgstr "<0/>(이)가 팔로우한 사용자" + +#: src/view/com/threadgate/WhoCanReply.tsx:115 +#~ msgid "Users followed by <0/>" +#~ msgstr "<0/>(이)가 팔로우한 사용자" + +#: src/view/com/modals/Threadgate.tsx:106 +msgid "Users in \"{0}\"" +msgstr "\"{0}\"에 있는 사용자" + +#: src/view/com/modals/ChangeHandle.tsx:435 +msgid "Value" +msgstr "값" + +#: src/view/com/modals/ChangeHandle.tsx:508 +msgid "Verify {0}" +msgstr "{0} 확인" + +#: src/view/screens/Settings.tsx:770 +msgid "Verify email" +msgstr "이메일 확인" + +#: src/view/screens/Settings.tsx:795 +msgid "Verify my email" +msgstr "내 이메일 확인" + +#: src/view/screens/Settings.tsx:804 +msgid "Verify My Email" +msgstr "내 이메일 확인" + +#: src/view/com/modals/ChangeEmail.tsx:205 +#: src/view/com/modals/ChangeEmail.tsx:207 +msgid "Verify New Email" +msgstr "새 이메일 확인" + +#: src/view/screens/Log.tsx:52 +msgid "View debug entry" +msgstr "디버그 항목 보기" + +#: src/view/com/posts/FeedSlice.tsx:103 +msgid "View full thread" +msgstr "전체 스레드 보기" + +#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +msgid "View the avatar" +msgstr "아바타 보기" + +#: src/state/queries/preferences/moderation.ts:115 +msgid "Violent / Bloody" +msgstr "폭력 및 유혈" + +#: src/view/com/modals/LinkWarning.tsx:73 +msgid "Visit Site" +msgstr "사이트 방문" + +#: src/view/com/modals/ContentFilteringSettings.tsx:246 +msgid "Warn" +msgstr "경고" + +#: src/view/com/modals/AppealLabel.tsx:48 +msgid "We'll look into your appeal promptly." +msgstr "이의신청을 즉시 검토하겠습니다." + +#: src/view/com/auth/create/CreateAccount.tsx:122 +msgid "We're so excited to have you join us!" +msgstr "당신과 함께하게 되어 정말 기쁘네요!" + +#: src/view/com/posts/FeedErrorMessage.tsx:99 +#~ msgid "We're sorry, but this content is not viewable without a Bluesky account." +#~ msgstr "죄송하지만 이 콘텐츠는 Bluesky 계정이 없으면 볼 수 없습니다." + +#: src/view/com/posts/FeedErrorMessage.tsx:105 +#~ msgid "We're sorry, but this feed is currently receiving high traffic and is temporarily unavailable. Please try again later." +#~ msgstr "죄송하지만 현재 트래픽이 많아 이 피드를 일시적으로 사용할 수 없습니다. 잠시 후 다시 시도해 주세요." + +#: src/view/screens/Search/Search.tsx:243 +msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." +msgstr "죄송하지만 검색을 완료할 수 없습니다. 몇 분 후에 다시 시도해 주세요." + +#: 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 +msgid "Welcome to <0>Bluesky" +msgstr "<0>Bluesky에 오신 것을 환영합니다" + +#: src/view/com/modals/report/Modal.tsx:172 +msgid "What is the issue with this {collectionName}?" +msgstr "이 {collectionName}에 어떤 문제가 있습니까?" + +#: src/view/com/auth/SplashScreen.tsx:34 +#: src/view/com/composer/Composer.tsx:274 +msgid "What's up?" +msgstr "무슨 일이 일어나고 있나요?" + +#: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:78 +msgid "Which languages are used in this post?" +msgstr "이 게시물에는 어떤 언어가 사용됩니까?" + +#: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:77 +msgid "Which languages would you like to see in your algorithmic feeds?" +msgstr "알고리즘 피드에 어떤 언어를 표시하시겠습니까?" + +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +#: src/view/com/modals/Threadgate.tsx:66 +msgid "Who can reply" +msgstr "답글을 달 수 있는 사람" + +#: src/view/com/threadgate/WhoCanReply.tsx:79 +#~ msgid "Who can reply?" +#~ msgstr "답글을 달 수 있는 사람" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:102 +msgid "Wide" +msgstr "가로" + +#: src/view/com/composer/Composer.tsx:415 +msgid "Write post" +msgstr "게시물 작성" + +#: src/view/com/composer/Composer.tsx:273 +#: src/view/com/composer/Prompt.tsx:33 +msgid "Write your reply" +msgstr "답글 작성하기" + +#: src/view/screens/PreferencesHomeFeed.tsx:123 +#: src/view/screens/PreferencesHomeFeed.tsx:195 +#: src/view/screens/PreferencesHomeFeed.tsx:230 +#: src/view/screens/PreferencesHomeFeed.tsx:265 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 +msgid "Yes" +msgstr "예" + +#: src/view/com/posts/FollowingEmptyState.tsx:67 +msgid "You can also discover new Custom Feeds to follow." +msgstr "팔로우할 새로운 맞춤 피드를 찾을 수도 있습니다." + +#: src/view/com/auth/create/Step1.tsx:106 +msgid "You can change hosting providers at any time." +msgstr "언제든지 호스팅 제공자를 변경할 수 있습니다." + +#: 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 "이제 새 비밀번호로 로그인할 수 있습니다." + +#: 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를 좀 더 오래 사용하신 후에 보내드리겠습니다." + +#: src/view/screens/SavedFeeds.tsx:102 +msgid "You don't have any pinned feeds." +msgstr "고정된 피드가 없습니다." + +#: src/view/screens/Feeds.tsx:383 +msgid "You don't have any saved feeds!" +msgstr "저장된 피드가 없습니다!" + +#: src/view/screens/SavedFeeds.tsx:135 +msgid "You don't have any saved feeds." +msgstr "저장된 피드가 없습니다." + +#: src/view/com/post-thread/PostThread.tsx:381 +msgid "You have blocked the author or you have been blocked by the author." +msgstr "작성자를 차단했거나 작성자가 나를 차단한 경우입니다." + +#: src/view/com/feeds/ProfileFeedgens.tsx:134 +msgid "You have no feeds." +msgstr "피드가 없습니다." + +#: src/view/com/lists/MyLists.tsx:89 +#: src/view/com/lists/ProfileLists.tsx:138 +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 "아직 어떤 계정도 차단하지 않았습니다. 계정을 차단하려면 해당 계정의 프로필로 이동하여 계정 메뉴에서 \"계정 차단\"을 선택하세요." + +#: src/view/screens/AppPasswords.tsx:86 +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 "아직 어떤 계정도 뮤트하지 않았습니다. 계정을 뮤트하려면 해당 계정의 프로필로 이동하여 계정 메뉴에서 \"계정 뮤트\"를 선택하세요." + +#: src/view/com/modals/ContentFilteringSettings.tsx:166 +msgid "You must be 18 or older to enable adult content." +msgstr "성인 콘텐츠를 활성화하려면 18세 이상이어야 합니다." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:88 +msgid "You will no longer receive notifications for this thread" +msgstr "이 스레드에 대한 알림을 더 이상 받지 않습니다." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:91 +msgid "You will now receive notifications for this thread" +msgstr "이제 이 스레드에 대한 알림을 받습니다." + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:81 +msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." +msgstr "\"재설정 코드\"가 포함된 이메일을 받게 되면 여기에 해당 코드를 입력한 다음 새 비밀번호를 입력합니다." + +#: src/view/com/composer/Composer.tsx:263 +msgid "Your {0} has been published" +msgstr "내 {0}(을)를 게시했습니다." + +#: src/view/com/auth/create/Step2.tsx:58 +msgid "Your account" +msgstr "내 계정" + +#: src/view/com/modals/DeleteAccount.tsx:65 +msgid "Your account has been deleted" +msgstr "계정을 삭제했습니다." + +#: src/view/com/auth/create/Step2.tsx:146 +msgid "Your birth date" +msgstr "생년월일" + +#: src/view/com/auth/create/state.ts:102 +msgid "Your email appears to be invalid." +msgstr "이메일이 잘못된 것 같습니다." + +#: src/view/com/modals/Waitlist.tsx:107 +msgid "Your email has been saved! We'll be in touch soon." +msgstr "이메일이 저장되었습니다! 가까운 시일 내에 연락드리겠습니다." + +#: 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 "이메일이 변경되었지만 인증되지 않았습니다. 다음 단계로 새 이메일을 인증해 주세요." + +#: src/view/com/modals/VerifyEmail.tsx:108 +msgid "Your email has not yet been verified. This is an important security step which we recommend." +msgstr "이메일이 아직 인증되지 않았습니다. 이는 중요한 보안 단계이므로 권장하는 사항입니다." + +#: src/view/com/posts/FollowingEmptyState.tsx:47 +msgid "Your following feed is empty! Follow more users to see what's happening." +msgstr "팔로우 중인 피드가 비어 있습니다! 더 많은 사용자를 팔로우하여 무슨 일이 일어나고 있는지 확인하세요." + +#: src/view/com/auth/create/Step3.tsx:42 +#: src/view/com/modals/ChangeHandle.tsx:270 +msgid "Your full handle will be" +msgstr "내 전체 핸들:" + +#: src/view/com/auth/create/Step1.tsx:53 +msgid "Your hosting provider" +msgstr "호스팅 제공자" + +#: src/view/screens/Settings.tsx:403 +#: src/view/shell/desktop/RightNav.tsx:137 +#: src/view/shell/Drawer.tsx:655 +msgid "Your invite codes are hidden when logged in using an App Password" +msgstr "앱 비밀번호를 사용하여 로그인하면 초대 코드가 숨겨집니다" + +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:61 +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +msgid "Your posts, likes, and blocks are public. Mutes are private." +msgstr "내 게시물, 좋아요, 차단 목록은 공개됩니다. 뮤트 목록은 공개되지 않습니다." + +#: src/view/com/modals/SwitchAccount.tsx:82 +msgid "Your profile" +msgstr "내 프로필" + +#: src/view/screens/Moderation.tsx:205 +#~ msgid "Your profile and account will not be visible to anyone visiting the Bluesky app without an account, or to account holders who are not logged in. Enabling this will not make your profile private." +#~ msgstr "내 프로필과 계정은 계정 없이 Bluesky 앱을 방문하는 사람이나 로그인하지 않은 계정에게 표시되지 않습니다. 이 기능을 활성화해도 내 프로필이 비공개로 전환되지는 않습니다." + +#: src/view/screens/Moderation.tsx:220 +#~ msgid "Your profile and content will not be visible to anyone visiting the Bluesky app without an account. Enabling this will not make your profile private." +#~ msgstr "내 프로필과 콘텐츠는 계정 없이 Bluesky 앱을 방문하는 사람에게 표시되지 않습니다. 이 기능을 활성화해도 내 프로필이 비공개로 전환되지는 않습니다." + +#: src/view/screens/Moderation.tsx:220 +#~ 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/auth/create/Step3.tsx:28 +msgid "Your user handle" +msgstr "내 사용자 핸들" From 61ef0a824239462c10e15d35963d2a8ebc898012 Mon Sep 17 00:00:00 2001 From: Noritada Kobayashi Date: Wed, 3 Jan 2024 20:56:30 +0900 Subject: [PATCH 058/115] Localize the option to make alt text mandatory (#2376) --- src/view/screens/Settings.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/view/screens/Settings.tsx b/src/view/screens/Settings.tsx index d48112dae3..5b381a1388 100644 --- a/src/view/screens/Settings.tsx +++ b/src/view/screens/Settings.tsx @@ -419,7 +419,7 @@ export function SettingsScreen({}: Props) { setRequireAltTextEnabled(!requireAltTextEnabled)} From 7f999d9ebde47746ea6dcc09acae554d89abd69a Mon Sep 17 00:00:00 2001 From: Stanislas Signoud Date: Wed, 3 Jan 2024 15:39:45 +0100 Subject: [PATCH 059/115] Improve French localization (#2393) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Extract latest strings from the codebase * Improve French translation - Add missing translations - Always use French guillemets («») when applicable - Always add an article (le/la/l’) before nouns - Use … character instead of three dots - Change "Mettre en sourdine" into "Masquer", used in other products for "Mute" (and shorter) - Change other usages of "Masquer" into its synonym "Cacher" to prevent confusion between concepts - Shorten "Nouvelle publication" into "Nouv. publication" to prevent it overflowing in the main blue button - Fixed other little errors * Extract even newer strings from the codebase * Translate latest new strings into French * Move from publication to post in French localization --- src/locale/locales/fr/messages.po | 341 ++++++++++++++++-------------- 1 file changed, 185 insertions(+), 156 deletions(-) diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 58d7f39111..075ebabe59 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -57,7 +57,7 @@ msgstr "<0>Suivre certains<1>utilisateurs<2>recommandés" #: src/view/com/util/moderation/LabelInfo.tsx:45 msgid "A content warning has been applied to this {0}." -msgstr "" +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." @@ -68,7 +68,7 @@ msgstr "Une nouvelle version de l’application est disponible. Veuillez faire l msgid "Accessibility" msgstr "Accessibilité" -#: src/view/com/auth/login/LoginForm.tsx:159 +#: src/view/com/auth/login/LoginForm.tsx:163 #: src/view/screens/Settings.tsx:286 msgid "Account" msgstr "Compte" @@ -98,6 +98,7 @@ msgstr "Ajouter un compte" #: src/view/com/composer/photos/Gallery.tsx:119 #: src/view/com/composer/photos/Gallery.tsx:180 +#: src/view/com/modals/AltImage.tsx:93 msgid "Add alt text" msgstr "Ajouter un texte alt" @@ -110,17 +111,17 @@ msgstr "Ajouter des détails" msgid "Add details to report" msgstr "Ajouter des détails au rapport" -#: src/view/com/composer/Composer.tsx:442 +#: src/view/com/composer/Composer.tsx:447 msgid "Add link card" -msgstr "Ajouter une carte link card" +msgstr "Ajouter une carte de lien" -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:450 msgid "Add link card:" -msgstr "Ajouter une carte link card :" +msgstr "Ajouter une carte de lien :" #: src/view/com/modals/ChangeHandle.tsx:415 msgid "Add the following DNS record to your domain:" -msgstr "Ajoutez le registre DNS suivant à votre domaine :" +msgstr "Ajoutez l’enregistrement DNS suivant à votre domaine :" #: src/view/com/profile/ProfileHeader.tsx:353 msgid "Add to Lists" @@ -178,19 +179,19 @@ msgstr "Langue de l’application" #: src/view/screens/Settings.tsx:589 msgid "App passwords" -msgstr "Mots de passe de l’appli" +msgstr "Mots de passe d’application" #: src/view/screens/AppPasswords.tsx:186 msgid "App Passwords" -msgstr "Mots de passe de l’appli" +msgstr "Mots de passe d’application" #: src/view/com/util/forms/PostDropdownBtn.tsx:236 msgid "Appeal content warning" -msgstr "" +msgstr "Faire appel de l’avertissement sur le contenu" #: src/view/com/modals/AppealLabel.tsx:65 msgid "Appeal Content Warning" -msgstr "" +msgstr "Appel de l’avertissement sur le contenu" #: src/view/com/modals/AppealLabel.tsx:65 #~ msgid "Appeal Decision" @@ -210,9 +211,9 @@ msgstr "Affichage" #: src/view/screens/AppPasswords.tsx:223 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}\" ?" +msgstr "Êtes-vous sûr de vouloir supprimer le mot de passe de l’application « {name} » ?" -#: src/view/com/composer/Composer.tsx:142 +#: src/view/com/composer/Composer.tsx:143 msgid "Are you sure you'd like to discard this draft?" msgstr "Êtes-vous sûr de vouloir rejeter ce brouillon ?" @@ -231,7 +232,7 @@ msgstr "Nudité artistique ou non érotique." #: src/view/com/auth/create/CreateAccount.tsx:141 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:166 -#: src/view/com/auth/login/LoginForm.tsx:250 +#: src/view/com/auth/login/LoginForm.tsx:254 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 #: src/view/com/modals/report/InputIssueDetails.tsx:46 #: src/view/com/post-thread/PostThread.tsx:388 @@ -289,7 +290,7 @@ msgstr "Les comptes bloqués ne peuvent pas répondre à vos discussions, vous m #: src/view/com/post-thread/PostThread.tsx:250 msgid "Blocked post." -msgstr "Publication bloquée." +msgstr "Post bloqué." #: src/view/screens/ProfileList.tsx:310 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." @@ -345,9 +346,8 @@ 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/view/com/composer/Composer.tsx:289 -#: src/view/com/composer/Composer.tsx:292 -#: src/view/com/modals/AltImage.tsx:128 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Composer.tsx:297 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 #: src/view/com/modals/Confirm.tsx:88 @@ -368,23 +368,23 @@ msgstr "Annuler" #: src/view/com/modals/DeleteAccount.tsx:146 #: src/view/com/modals/DeleteAccount.tsx:219 msgid "Cancel account deletion" -msgstr "Annuler suppression de compte" +msgstr "Annuler la suppression de compte" #: src/view/com/modals/AltImage.tsx:123 -msgid "Cancel add image alt text" -msgstr "Annuler l’ajout d’un texte alt à l’image" +#~ msgid "Cancel add image alt text" +#~ msgstr "Annuler l’ajout d’un texte alt à l’image" #: src/view/com/modals/ChangeHandle.tsx:149 msgid "Cancel change handle" -msgstr "Annuler changement pseudo" +msgstr "Annuler le changement de pseudo" #: src/view/com/modals/crop-image/CropImage.web.tsx:134 msgid "Cancel image crop" -msgstr "Annuler recadrage de l’image" +msgstr "Annuler le recadrage de l’image" #: src/view/com/modals/EditProfile.tsx:243 msgid "Cancel profile editing" -msgstr "Annuler modification du profil" +msgstr "Annuler la modification du profil" #: src/view/com/modals/Repost.tsx:64 msgid "Cancel quote post" @@ -406,11 +406,11 @@ msgstr "Changer" #: src/view/screens/Settings.tsx:601 #: src/view/screens/Settings.tsx:610 msgid "Change handle" -msgstr "Changer pseudo" +msgstr "Changer le pseudo" #: src/view/com/modals/ChangeHandle.tsx:161 msgid "Change Handle" -msgstr "Changer Pseudo" +msgstr "Changer le pseudo" #: src/view/com/modals/VerifyEmail.tsx:141 msgid "Change my email" @@ -434,7 +434,7 @@ msgstr "Consultez votre boîte de réception, vous avez du recevoir un e-mail co #: src/view/com/modals/Threadgate.tsx:72 msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "" +msgstr "Choisir « Tout le monde » ou « Personne »" #: src/view/com/modals/ServerInput.tsx:38 msgid "Choose Service" @@ -502,7 +502,7 @@ msgstr "Rédiger une réponse" #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:225 #: src/view/screens/PreferencesHomeFeed.tsx:299 -#: src/view/screens/PreferencesThreads.tsx:153 +#: src/view/screens/PreferencesThreads.tsx:159 msgid "Confirm" msgstr "Confirmer" @@ -526,9 +526,9 @@ msgid "Confirmation code" msgstr "Code de confirmation" #: src/view/com/auth/create/CreateAccount.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:273 msgid "Connecting..." -msgstr "Connexion..." +msgstr "Connexion…" #: src/view/screens/Moderation.tsx:81 msgid "Content filtering" @@ -571,7 +571,7 @@ msgstr "Copier le lien dans la liste" #: src/view/com/util/forms/PostDropdownBtn.tsx:139 msgid "Copy link to post" -msgstr "Copier le lien dans la publication" +msgstr "Copier le lien vers le post" #: src/view/com/profile/ProfileHeader.tsx:338 msgid "Copy link to profile" @@ -579,7 +579,7 @@ msgstr "Copier le lien sur le profil" #: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Copy post text" -msgstr "Copier le texte de la publication" +msgstr "Copier le texte du post" #: src/view/screens/CopyrightPolicy.tsx:29 msgid "Copyright Policy" @@ -622,11 +622,11 @@ msgstr "Zone de danger" #: src/view/screens/Settings.tsx:622 msgid "Delete account" -msgstr "Supprimer compte" +msgstr "Supprimer le compte" #: src/view/com/modals/DeleteAccount.tsx:83 msgid "Delete Account" -msgstr "Supprimer compte" +msgstr "Supprimer le compte" #: src/view/screens/AppPasswords.tsx:221 #: src/view/screens/AppPasswords.tsx:241 @@ -644,19 +644,19 @@ msgstr "Supprimer mon compte" #: src/view/screens/Settings.tsx:632 msgid "Delete my account…" -msgstr "Supprimer mon compte..." +msgstr "Supprimer mon compte…" #: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Delete post" -msgstr "Supprimer publication" +msgstr "Supprimer le post" #: src/view/com/util/forms/PostDropdownBtn.tsx:218 msgid "Delete this post?" -msgstr "Supprimer cette publication ?" +msgstr "Supprimer ce post ?" #: src/view/com/post-thread/PostThread.tsx:242 msgid "Deleted post." -msgstr "Publication supprimée." +msgstr "Post supprimé." #: src/view/com/modals/CreateOrEditList.tsx:218 #: src/view/com/modals/CreateOrEditList.tsx:234 @@ -671,23 +671,23 @@ msgstr "Serveur de dév" #: src/view/screens/Settings.tsx:637 msgid "Developer Tools" -msgstr "Outils du dév" +msgstr "Outils de dév" -#: src/view/com/composer/Composer.tsx:210 +#: src/view/com/composer/Composer.tsx:211 msgid "Did you want to say anything?" -msgstr "" +msgstr "Vous vouliez dire quelque chose ?" -#: src/view/com/composer/Composer.tsx:143 +#: src/view/com/composer/Composer.tsx:144 msgid "Discard" msgstr "Ignorer" -#: src/view/com/composer/Composer.tsx:137 +#: src/view/com/composer/Composer.tsx:138 msgid "Discard draft" -msgstr "Ignorer brouillon" +msgstr "Ignorer le brouillon" #: src/view/screens/Moderation.tsx:207 msgid "Discourage apps from showing my account to logged-out users" -msgstr "Empêcher les appli de montrer mon compte aux utilisateurs déconnectés" +msgstr "Empêcher les applis de montrer mon compte aux utilisateurs déconnectés" #: src/view/screens/Feeds.tsx:405 msgid "Discover new feeds" @@ -695,17 +695,18 @@ msgstr "Découvrir de nouveaux fils d’actu" #: src/view/com/modals/EditProfile.tsx:191 msgid "Display name" -msgstr "Afficher nom" +msgstr "Afficher le nom" #: src/view/com/modals/EditProfile.tsx:179 msgid "Display Name" -msgstr "Afficher nom" +msgstr "Afficher le nom" #: src/view/com/modals/ChangeHandle.tsx:485 msgid "Domain verified!" msgstr "Domaine vérifié !" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/AltImage.tsx:115 #: src/view/com/modals/ContentFilteringSettings.tsx:88 #: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 @@ -716,7 +717,7 @@ msgstr "Domaine vérifié !" #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:79 #: src/view/screens/PreferencesHomeFeed.tsx:302 -#: src/view/screens/PreferencesThreads.tsx:156 +#: src/view/screens/PreferencesThreads.tsx:162 msgid "Done" msgstr "Terminé" @@ -748,11 +749,11 @@ msgstr "Modifier mon profil" #: src/view/com/profile/ProfileHeader.tsx:453 msgid "Edit profile" -msgstr "Modifier profil" +msgstr "Modifier le profil" #: src/view/com/profile/ProfileHeader.tsx:456 msgid "Edit Profile" -msgstr "Modifier profil" +msgstr "Modifier le profil" #: src/view/screens/Feeds.tsx:330 msgid "Edit Saved Feeds" @@ -862,11 +863,11 @@ msgstr "Trouver des utilisateurs sur Bluesky" #: src/view/screens/Search/Search.tsx:425 msgid "Find users with the search tool on the right" -msgstr "Trouvez des utilisateurs à l’aide de l’outil de recherche, à droite." +msgstr "Trouvez des utilisateurs à l’aide de l’outil de recherche, à droite" #: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 msgid "Finding similar accounts..." -msgstr "Recherche de comptes similaires..." +msgstr "Recherche de comptes similaires…" #: src/view/screens/PreferencesHomeFeed.tsx:102 msgid "Fine-tune the content you see on your home screen." @@ -917,11 +918,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:232 +#: src/view/com/auth/login/LoginForm.tsx:236 msgid "Forgot" msgstr "Oublié" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Forgot password" msgstr "Mot de passe oublié" @@ -953,7 +954,7 @@ msgid "Go Back" msgstr "Retour" #: src/view/com/auth/login/ForgotPasswordForm.tsx:181 -#: src/view/com/auth/login/LoginForm.tsx:279 +#: src/view/com/auth/login/LoginForm.tsx:283 #: src/view/com/auth/login/SetNewPasswordForm.tsx:163 msgid "Go to next" msgstr "Aller à la suite" @@ -978,15 +979,15 @@ msgstr "Masquer" #: src/view/com/util/forms/PostDropdownBtn.tsx:173 msgid "Hide post" -msgstr "" +msgstr "Cacher ce post" #: src/view/com/util/forms/PostDropdownBtn.tsx:177 msgid "Hide this post?" -msgstr "" +msgstr "Cacher ce post ?" #: src/view/com/notifications/FeedItem.tsx:316 msgid "Hide user list" -msgstr "Masquer la liste des utilisateurs" +msgstr "Cacher la liste des utilisateurs" #: src/view/com/posts/FeedErrorMessage.tsx:110 msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." @@ -998,11 +999,11 @@ msgstr "Hmm, le serveur du fils d’actu semble être mal configuré. Veuillez i #: src/view/com/posts/FeedErrorMessage.tsx:104 msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." -msgstr "Mmm... le serveur de fils d’actu semble être hors ligne. Veuillez informer le propriétaire du fil d’actu de ce problème." +msgstr "Mmm… le serveur de fils d’actu semble être hors ligne. Veuillez informer le propriétaire du fil d’actu de ce problème." #: src/view/com/posts/FeedErrorMessage.tsx:101 msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." -msgstr "Mmm... le serveur de fils d’actu ne répond pas. Veuillez informer le propriétaire du fil d’actu de ce problème." +msgstr "Mmm… le serveur de fils d’actu ne répond pas. Veuillez informer le propriétaire du fil d’actu de ce problème." #: src/view/com/posts/FeedErrorMessage.tsx:95 msgid "Hmm, we're having trouble finding this feed. It may have been deleted." @@ -1051,7 +1052,7 @@ msgstr "Texte alt de l’image" msgid "Image options" msgstr "Options d’images" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:115 msgid "Invalid username or password" msgstr "Nom d’utilisateur ou mot de passe incorrect" @@ -1147,7 +1148,7 @@ msgstr "Bibliothèque" #: src/view/screens/ProfileFeed.tsx:586 msgid "Like this feed" -msgstr "Likez ce fils d’actu" +msgstr "Liker ce fil d’actu" #: src/view/screens/PostLikedBy.tsx:27 #: src/view/screens/ProfileFeedLikedBy.tsx:27 @@ -1188,7 +1189,7 @@ msgstr "Charger les nouveaux messages" #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 msgid "Loading..." -msgstr "Chargement..." +msgstr "Chargement…" #: src/view/com/modals/ServerInput.tsx:50 msgid "Local dev server" @@ -1256,41 +1257,45 @@ msgstr "Plus de fils d’actu" msgid "More options" msgstr "Plus d’options" +#: src/view/screens/PreferencesThreads.tsx:82 +msgid "Most-liked replies first" +msgstr "Réponses les plus likées en premier" + #: src/view/com/profile/ProfileHeader.tsx:370 msgid "Mute Account" -msgstr "Compte en sourdine" +msgstr "Masquer le compte" #: src/view/screens/ProfileList.tsx:511 msgid "Mute accounts" -msgstr "Comptes en sourdine" +msgstr "Masquer les comptes" #: src/view/screens/ProfileList.tsx:458 msgid "Mute list" -msgstr "Mettre en sourdine" +msgstr "Masquer la liste" #: src/view/screens/ProfileList.tsx:271 msgid "Mute these accounts?" -msgstr "Mettre ces comptes en sourdine ?" +msgstr "Masquer ces comptes ?" #: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Mute thread" -msgstr "Mettre fil en sourdine" +msgstr "Masquer ce fil de discussion" #: src/view/screens/Moderation.tsx:109 msgid "Muted accounts" -msgstr "Comptes en sourdine" +msgstr "Comptes masqués" #: src/view/screens/ModerationMutedAccounts.tsx:107 msgid "Muted Accounts" -msgstr "Comptes en sourdine" +msgstr "Comptes masqués" #: 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 "Les comptes mis en sourdine voient leurs publications supprimées de votre fil d’actualité et de vos notifications. Cette option est totalement privée." +msgstr "Les comptes masqués voient leurs posts supprimés de votre fil d’actualité et de vos notifications. Cette option est totalement privée." #: src/view/screens/ProfileList.tsx:273 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 mettez en sourdine reste privé. Les comptes en sourdine peuvent interagir avec vous, mais vous ne verrez pas leurs publications et ne recevrez pas de notifications de leur part." +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 msgid "My Birthday" @@ -1330,16 +1335,20 @@ msgstr "Nouveau" #: src/view/screens/ProfileList.tsx:222 #: src/view/shell/desktop/LeftNav.tsx:248 msgid "New post" -msgstr "Nouvelle publication" +msgstr "Nouveau post" #: src/view/shell/desktop/LeftNav.tsx:258 msgid "New Post" -msgstr "Nouvelle publication" +msgstr "Nouveau post" + +#: src/view/screens/PreferencesThreads.tsx:79 +msgid "Newest replies first" +msgstr "Réponses les plus récentes en premier" #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 -#: src/view/com/auth/login/LoginForm.tsx:282 +#: src/view/com/auth/login/LoginForm.tsx:286 #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -1354,6 +1363,8 @@ msgstr "Image suivante" #: src/view/screens/PreferencesHomeFeed.tsx:191 #: src/view/screens/PreferencesHomeFeed.tsx:226 #: src/view/screens/PreferencesHomeFeed.tsx:263 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "Non" @@ -1368,7 +1379,7 @@ msgstr "Aucun résultat" #: src/view/screens/Feeds.tsx:452 msgid "No results found for \"{query}\"" -msgstr "Aucun résultat trouvé pour \"{query}\"" +msgstr "Aucun résultat trouvé pour « {query} »" #: src/view/com/modals/ListAddRemoveUsers.tsx:127 #: src/view/screens/Search/Search.tsx:270 @@ -1407,7 +1418,11 @@ msgstr "Oh non !" msgid "Okay" msgstr "D’accord" -#: src/view/com/composer/Composer.tsx:358 +#: src/view/screens/PreferencesThreads.tsx:78 +msgid "Oldest replies first" +msgstr "Plus anciennes réponses en premier" + +#: src/view/com/composer/Composer.tsx:363 msgid "One or more images is missing alt text." msgstr "Une ou plusieurs images n’ont pas de texte alt." @@ -1415,6 +1430,11 @@ msgstr "Une ou plusieurs images n’ont pas de texte alt." msgid "Only {0} can reply." msgstr "Seul {0} peut répondre." +#: src/view/com/composer/Composer.tsx:468 +#: src/view/com/composer/Composer.tsx:469 +msgid "Open emoji picker" +msgstr "Ouvrir le sélecteur d’emoji" + #: src/view/com/pager/FeedsTabBarMobile.tsx:76 msgid "Open navigation" msgstr "Navigation ouverte" @@ -1462,7 +1482,7 @@ msgstr "Ouvre les préférences relatives aux fils de discussion" #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" -msgstr "" +msgstr "Ou une combinaison de ces options :" #: src/view/com/auth/login/ChooseAccountForm.tsx:138 msgid "Other account" @@ -1474,7 +1494,7 @@ msgstr "Autre service" #: src/view/com/composer/select-language/SelectLangBtn.tsx:91 msgid "Other..." -msgstr "Autre..." +msgstr "Autre…" #: src/view/screens/NotFound.tsx:42 #: src/view/screens/NotFound.tsx:45 @@ -1483,7 +1503,7 @@ msgstr "Page introuvable" #: src/view/com/auth/create/Step2.tsx:122 #: src/view/com/auth/create/Step2.tsx:132 -#: src/view/com/auth/login/LoginForm.tsx:217 +#: src/view/com/auth/login/LoginForm.tsx:221 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 #: src/view/com/modals/DeleteAccount.tsx:191 msgid "Password" @@ -1532,42 +1552,42 @@ msgstr "Veuillez également entrer votre mot de passe :" #: 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 "" +msgstr "Dites-nous donc pourquoi vous pensez que cet avertissement de contenu a été appliqué à tort !" #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "Dites-nous pourquoi vous pensez que cette décision était incorrecte." -#: src/view/com/composer/Composer.tsx:214 +#: src/view/com/composer/Composer.tsx:215 msgid "Please wait for your link card to finish loading" -msgstr "" +msgstr "Veuillez patienter le temps que votre carte de lien soit chargée" -#: src/view/com/composer/Composer.tsx:341 +#: src/view/com/composer/Composer.tsx:346 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" -msgstr "Publication" +msgstr "Post" #: src/view/com/post-thread/PostThread.tsx:378 msgid "Post hidden" -msgstr "Publications cachées" +msgstr "Posts cachés" #: src/view/com/composer/select-language/SelectLangBtn.tsx:87 msgid "Post language" -msgstr "Langue de publication" +msgstr "Langue du post" #: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:75 msgid "Post Languages" -msgstr "Langues de publication" +msgstr "Langues du post" #: src/view/com/post-thread/PostThread.tsx:430 msgid "Post not found" -msgstr "Publication introuvable" +msgstr "Post introuvable" #: src/view/screens/Profile.tsx:161 msgid "Posts" -msgstr "Publications" +msgstr "Posts" #: src/view/com/modals/LinkWarning.tsx:44 msgid "Potentially Misleading Link" @@ -1581,7 +1601,7 @@ msgstr "Image précédente" msgid "Primary Language" msgstr "Langue principale" -#: src/view/screens/PreferencesThreads.tsx:91 +#: src/view/screens/PreferencesThreads.tsx:97 msgid "Prioritize Your Follows" msgstr "Définissez des priorités de vos suivis" @@ -1597,7 +1617,7 @@ msgstr "Charte de confidentialité" #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 msgid "Processing..." -msgstr "Traitement..." +msgstr "Traitement…" #: src/view/shell/bottom-bar/BottomBar.tsx:247 #: src/view/shell/desktop/LeftNav.tsx:415 @@ -1613,7 +1633,7 @@ msgstr "Protégez votre compte en vérifiant votre e-mail." #: src/view/screens/ModerationModlists.tsx:61 msgid "Public, shareable lists of users to mute or block in bulk." -msgstr "Listes publiques et partageables d’utilisateurs à mettre en sourdine ou à bloquer." +msgstr "Listes publiques et partageables d’utilisateurs à masquer ou à bloquer." #: src/view/screens/Lists.tsx:61 msgid "Public, shareable lists which can drive feeds." @@ -1622,11 +1642,15 @@ msgstr "Les listes publiques et partageables qui peuvent alimenter les fils d’ #: src/view/com/modals/Repost.tsx:52 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 msgid "Quote post" -msgstr "Citer une publication" +msgstr "Citer le post" #: src/view/com/modals/Repost.tsx:56 msgid "Quote Post" -msgstr "Citer une publication" +msgstr "Citer un post" + +#: src/view/screens/PreferencesThreads.tsx:86 +msgid "Random (aka \"Poster's Roulette\")" +msgstr "Aléatoire" #: src/view/com/modals/EditImage.tsx:236 msgid "Ratios" @@ -1668,19 +1692,19 @@ msgstr "Supprimer de mes fils d’actu" #: src/view/com/composer/photos/Gallery.tsx:167 msgid "Remove image" -msgstr "Supprimer image" +msgstr "Supprimer l’image" #: src/view/com/composer/ExternalEmbed.tsx:70 msgid "Remove image preview" -msgstr "Supprimer aperçu d’image" +msgstr "Supprimer l’aperçu d’image" #: src/view/com/feeds/FeedSourceCard.tsx:173 msgid "Remove this feed from my feeds?" -msgstr "Supprimer ce fils d’actu ?" +msgstr "Supprimer ce fil d’actu ?" #: src/view/com/posts/FeedErrorMessage.tsx:131 msgid "Remove this feed from your saved feeds?" -msgstr "Supprimer ce fils d’actu de vos fils d’actu enregistrés ?" +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:136 @@ -1705,20 +1729,20 @@ msgstr "Signaler {collectionName}" #: src/view/com/profile/ProfileHeader.tsx:404 msgid "Report Account" -msgstr "Signaler Compte" +msgstr "Signaler le compte" #: src/view/screens/ProfileFeed.tsx:291 msgid "Report feed" -msgstr "Signaler fil d’actu" +msgstr "Signaler le fil d’actu" #: src/view/screens/ProfileList.tsx:426 msgid "Report List" -msgstr "Signaler Liste" +msgstr "Signaler la liste" #: src/view/com/modals/report/SendReportButton.tsx:37 #: src/view/com/util/forms/PostDropdownBtn.tsx:196 msgid "Report post" -msgstr "Signaler publication" +msgstr "Signaler le post" #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Repost" @@ -1738,13 +1762,17 @@ msgstr "Republié par" msgid "Request Change" msgstr "Demande de modification" +#: src/view/screens/Settings.tsx:422 +msgid "Require alt text before posting" +msgstr "Nécessiter un texte alt avant de publier" + #: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" msgstr "Obligatoire pour ce fournisseur" #: src/view/com/auth/login/SetNewPasswordForm.tsx:108 msgid "Reset code" -msgstr "Réinitialiser code" +msgstr "Réinitialiser le code" #: src/view/screens/Settings.tsx:686 msgid "Reset onboarding state" @@ -1768,14 +1796,13 @@ msgstr "Réinitialise l’état des préférences" #: src/view/com/auth/create/CreateAccount.tsx:163 #: src/view/com/auth/create/CreateAccount.tsx:167 -#: src/view/com/auth/login/LoginForm.tsx:259 -#: src/view/com/auth/login/LoginForm.tsx:262 +#: src/view/com/auth/login/LoginForm.tsx:263 +#: src/view/com/auth/login/LoginForm.tsx:266 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:65 msgid "Retry" msgstr "Réessayer" -#: src/view/com/modals/AltImage.tsx:115 #: src/view/com/modals/BirthDateSettings.tsx:94 #: src/view/com/modals/BirthDateSettings.tsx:97 #: src/view/com/modals/ChangeHandle.tsx:173 @@ -1787,11 +1814,11 @@ msgstr "Enregistrer" #: src/view/com/modals/AltImage.tsx:106 msgid "Save alt text" -msgstr "Enregistrer texte alt" +msgstr "Enregistrer le texte alt" #: src/view/com/modals/EditProfile.tsx:231 msgid "Save Changes" -msgstr "Enregistrer modifications" +msgstr "Enregistrer les modifications" #: src/view/com/modals/ChangeHandle.tsx:170 msgid "Save handle change" @@ -1821,7 +1848,7 @@ msgstr "Recherche" #: src/view/com/auth/LoggedOut.tsx:104 #: src/view/com/auth/LoggedOut.tsx:105 msgid "Search for users" -msgstr "" +msgstr "Rechercher des utilisateurs" #: src/view/com/modals/ChangeEmail.tsx:110 msgid "Security Step Required" @@ -1839,7 +1866,7 @@ msgstr "Sélectionner Bluesky Social" msgid "Select from an existing account" msgstr "Sélectionner un compte existant" -#: src/view/com/auth/login/LoginForm.tsx:143 +#: src/view/com/auth/login/LoginForm.tsx:147 msgid "Select service" msgstr "Sélectionner un service" @@ -1870,11 +1897,11 @@ msgstr "Envoyer e-mail" #: src/view/shell/Drawer.tsx:295 #: src/view/shell/Drawer.tsx:316 msgid "Send feedback" -msgstr "Envoyer commentaire" +msgstr "Envoyer des commentaires" #: src/view/com/modals/report/SendReportButton.tsx:45 msgid "Send Report" -msgstr "Envoyer rapport" +msgstr "Envoyer le rapport" #: src/view/com/auth/login/SetNewPasswordForm.tsx:78 msgid "Set new password" @@ -1882,17 +1909,17 @@ msgstr "Définir un nouveau mot de passe" #: src/view/screens/PreferencesHomeFeed.tsx:216 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." -msgstr "Choisissez « Non » pour masquer toutes les citations sur votre fils d’actu. Les republications seront toujours visibles." +msgstr "Choisissez « Non » pour cacher toutes les citations sur votre fils d’actu. Les reposts seront toujours visibles." #: src/view/screens/PreferencesHomeFeed.tsx:113 msgid "Set this setting to \"No\" to hide all replies from your feed." -msgstr "Choisissez « Non » pour masquer toutes les réponses dans votre fils d’actu." +msgstr "Choisissez « Non » pour cacher toutes les réponses dans votre fils d’actu." #: src/view/screens/PreferencesHomeFeed.tsx:182 msgid "Set this setting to \"No\" to hide all reposts from your feed." -msgstr "Choisissez « Non » pour masquer toutes les republications de votre fils d’actu." +msgstr "Choisissez « Non » pour cacher toutes les reposts de votre fils d’actu." -#: src/view/screens/PreferencesThreads.tsx:116 +#: 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 "Choisissez « Oui » pour afficher les réponses dans un fil de discussion. C’est une fonctionnalité expérimentale." @@ -1919,7 +1946,7 @@ msgstr "Partager" #: src/view/screens/ProfileFeed.tsx:303 msgid "Share feed" -msgstr "Partager fils d’actu" +msgstr "Partager le fil d’actu" #: src/view/com/util/moderation/ContentHider.tsx:105 #: src/view/screens/Settings.tsx:316 @@ -1932,23 +1959,23 @@ msgstr "Afficher quand même" #: src/view/screens/PreferencesHomeFeed.tsx:249 msgid "Show Posts from My Feeds" -msgstr "Afficher les Publications de Mes fils d’actu" +msgstr "Afficher les posts de mes fils d’actu" #: src/view/screens/PreferencesHomeFeed.tsx:213 msgid "Show Quote Posts" -msgstr "Afficher les Publications de citation" +msgstr "Afficher les posts de citation" #: src/view/screens/PreferencesHomeFeed.tsx:110 msgid "Show Replies" -msgstr "Afficher réponses" +msgstr "Afficher les réponses" -#: src/view/screens/PreferencesThreads.tsx:94 +#: src/view/screens/PreferencesThreads.tsx:100 msgid "Show replies by people you follow before all other replies." msgstr "Afficher les réponses des personnes que vous suivez avant toutes les autres réponses." #: src/view/screens/PreferencesHomeFeed.tsx:179 msgid "Show Reposts" -msgstr "Afficher les republications" +msgstr "Afficher les reposts" #: src/view/com/notifications/FeedItem.tsx:345 msgid "Show users" @@ -1981,9 +2008,9 @@ msgstr "Se connecter en tant que {0}" #: src/view/com/auth/login/ChooseAccountForm.tsx:118 #: src/view/com/auth/login/Login.tsx:116 msgid "Sign in as..." -msgstr "Se connecter en tant que..." +msgstr "Se connecter en tant que…" -#: src/view/com/auth/login/LoginForm.tsx:130 +#: src/view/com/auth/login/LoginForm.tsx:134 msgid "Sign into" msgstr "Se connecter à" @@ -2022,11 +2049,11 @@ msgstr "Ignorer" #: src/view/screens/PreferencesThreads.tsx:69 msgid "Sort Replies" -msgstr "Trier réponses" +msgstr "Trier les réponses" #: src/view/screens/PreferencesThreads.tsx:72 msgid "Sort replies to the same post by:" -msgstr "Trier les réponses à la même publication par :" +msgstr "Trier les réponses au même post par :" #: src/view/com/modals/crop-image/CropImage.web.tsx:122 msgid "Square" @@ -2107,7 +2134,7 @@ msgstr "Notre politique de droits d’auteur a été déplacée vers <0/>" #: src/view/com/post-thread/PostThread.tsx:433 msgid "The post may have been deleted." -msgstr "Cette publication a peut-être été supprimée." +msgstr "Ce post a peut-être été supprimé." #: src/view/screens/PrivacyPolicy.tsx:33 msgid "The Privacy Policy has been moved to <0/>" @@ -2115,7 +2142,7 @@ msgstr "Notre politique de confidentialité a été déplacée vers <0/>" #: 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 "Le formulaire d’assistance a été déplacé. Si vous avez besoin d’aide, veuillez <0/> ou rendez-vous {HELP_DESK_URL} pour nous contacter." +msgstr "Le formulaire d’assistance a été déplacé. Si vous avez besoin d’aide, veuillez <0/> ou rendez-vous sur {HELP_DESK_URL} pour nous contacter." #: src/view/screens/TermsOfService.tsx:33 msgid "The Terms of Service have been moved to" @@ -2163,7 +2190,7 @@ msgstr "Ce lien vous conduit au site Web suivant :" #: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." -msgstr "Cette publication a été supprimée." +msgstr "Ce post a été supprimé." #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." @@ -2171,20 +2198,20 @@ msgstr "Cet avertissement n’est disponible que pour les messages contenant des #: src/view/com/util/forms/PostDropdownBtn.tsx:178 msgid "This will hide this post from your feeds." -msgstr "" +msgstr "Cela va masquer ce post de vos fils d’actu." #: src/view/screens/PreferencesThreads.tsx:53 #: src/view/screens/Settings.tsx:503 msgid "Thread Preferences" msgstr "Préférences des fils de discussion" -#: src/view/screens/PreferencesThreads.tsx:113 +#: src/view/screens/PreferencesThreads.tsx:119 msgid "Threaded Mode" msgstr "Mode arborescent" #: src/view/com/util/forms/DropdownButton.tsx:230 msgid "Toggle dropdown" -msgstr "Basculer menu déroulant" +msgstr "Activer le menu déroulant" #: src/view/com/modals/EditImage.tsx:271 msgid "Transformations" @@ -2202,15 +2229,15 @@ msgstr "Réessayer" #: src/view/screens/ProfileList.tsx:473 msgid "Un-block list" -msgstr "Débloquer liste" +msgstr "Débloquer la liste" #: src/view/screens/ProfileList.tsx:458 msgid "Un-mute list" -msgstr "Désactiver sourdine sur cette liste" +msgstr "Réafficher cette liste" #: src/view/com/auth/create/CreateAccount.tsx:65 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:117 +#: src/view/com/auth/login/LoginForm.tsx:120 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Impossible de contacter votre service. Veuillez vérifier votre connexion Internet." @@ -2222,23 +2249,23 @@ msgstr "Débloquer" #: src/view/com/profile/ProfileHeader.tsx:304 #: src/view/com/profile/ProfileHeader.tsx:388 msgid "Unblock Account" -msgstr "Débloquer compte" +msgstr "Débloquer le compte" #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Undo repost" -msgstr "Annuler transfert" +msgstr "Annuler le repost" -#: src/view/com/auth/create/state.ts:210 +#: src/view/com/auth/create/state.ts:216 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/profile/ProfileHeader.tsx:369 msgid "Unmute Account" -msgstr "Désactiver sourdine sur ce compte" +msgstr "Réafficher ce compte" #: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Unmute thread" -msgstr "Désactiver sourdine sur ce fil de discussion" +msgstr "Réafficher ce fil de discussion" #: src/view/screens/ProfileList.tsx:441 msgid "Unpin moderation list" @@ -2254,7 +2281,7 @@ msgstr "Mise à jour disponible" #: src/view/com/auth/login/SetNewPasswordForm.tsx:172 msgid "Updating..." -msgstr "Mise à jour..." +msgstr "Mise à jour…" #: src/view/com/modals/ChangeHandle.tsx:453 msgid "Upload a text file to:" @@ -2284,8 +2311,8 @@ msgstr "Pseudo utilisateur" msgid "User Lists" msgstr "Listes d’utilisateurs" -#: src/view/com/auth/login/LoginForm.tsx:170 -#: src/view/com/auth/login/LoginForm.tsx:188 +#: src/view/com/auth/login/LoginForm.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:192 msgid "Username or email address" msgstr "Nom d’utilisateur ou e-mail" @@ -2299,11 +2326,11 @@ msgstr "utilisateurs suivis par <0/>" #: src/view/com/modals/Threadgate.tsx:106 msgid "Users in \"{0}\"" -msgstr "Utilisateurs dans \"{0}\"" +msgstr "Utilisateurs dans « {0} »" #: src/view/screens/Settings.tsx:769 msgid "Verify email" -msgstr "Confirmer e-mail" +msgstr "Confirmer l’e-mail" #: src/view/screens/Settings.tsx:794 msgid "Verify my email" @@ -2316,7 +2343,7 @@ msgstr "Confirmer mon e-mail" #: src/view/com/modals/ChangeEmail.tsx:205 #: src/view/com/modals/ChangeEmail.tsx:207 msgid "Verify New Email" -msgstr "Confirmer nouvel e-mail" +msgstr "Confirmer le nouvel e-mail" #: src/view/screens/Log.tsx:52 msgid "View debug entry" @@ -2324,7 +2351,7 @@ msgstr "Afficher l’entrée de débogage" #: src/view/com/profile/ProfileSubpageHeader.tsx:128 msgid "View the avatar" -msgstr "Afficher avatar" +msgstr "Afficher l’avatar" #: src/view/com/modals/LinkWarning.tsx:73 msgid "Visit Site" @@ -2356,11 +2383,11 @@ msgstr "Quel est le problème avec cette {collectionName} ?" #: src/view/com/auth/SplashScreen.tsx:34 msgid "What's up?" -msgstr "" +msgstr "Quoi de neuf ?" #: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:78 msgid "Which languages are used in this post?" -msgstr "Quelles sont les langues utilisées dans cette publication ?" +msgstr "Quelles sont les langues utilisées dans ce post ?" #: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:77 msgid "Which languages would you like to see in your algorithmic feeds?" @@ -2375,9 +2402,9 @@ msgstr "Qui peut répondre ?" msgid "Wide" msgstr "Large" -#: src/view/com/composer/Composer.tsx:413 +#: src/view/com/composer/Composer.tsx:418 msgid "Write post" -msgstr "Rédiger une publication" +msgstr "Rédiger un post" #: src/view/com/composer/Prompt.tsx:33 msgid "Write your reply" @@ -2387,6 +2414,8 @@ msgstr "Rédigez votre réponse" #: src/view/screens/PreferencesHomeFeed.tsx:192 #: src/view/screens/PreferencesHomeFeed.tsx:227 #: src/view/screens/PreferencesHomeFeed.tsx:262 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Oui" @@ -2417,7 +2446,7 @@ msgstr "Vous n’avez encore aucun fil enregistré." #: src/view/com/post-thread/PostThread.tsx:381 msgid "You have blocked the author or you have been blocked by the author." -msgstr "Vous avez bloqué cet auteur ou il/elle vous a bloqué." +msgstr "Vous avez bloqué cet auteur ou vous avez été bloqué par celui-ci." #: src/view/com/feeds/ProfileFeedgens.tsx:134 msgid "You have no feeds." @@ -2430,7 +2459,7 @@ 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 compte » dans le menu de son compte." +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:86 msgid "You have not created any app passwords yet. You can create one by pressing the button below." @@ -2438,7 +2467,7 @@ msgstr "Vous n’avez encore créé aucun mot de passe pour l’appli. Vous pouv #: 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 mis aucun compte en sourdine. Pour désactiver un compte, allez sur son profil et sélectionnez « Désactiver compte » dans le menu de son compte." +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/view/com/auth/login/SetNewPasswordForm.tsx:81 msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." @@ -2485,7 +2514,7 @@ msgstr "Vos codes d’invitation sont cachés lorsque vous êtes connecté à l #: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 msgid "Your posts, likes, and blocks are public. Mutes are private." -msgstr "Vos publications, les mentions « J’aime » et les blocages sont publics. Les sourdines sont privées." +msgstr "Vos posts, les mentions « J’aime » et les blocages sont publics. Les silences (comptes masqués) sont privés." #: src/view/com/modals/SwitchAccount.tsx:82 msgid "Your profile" From 032a5bd8a744d5096938301ac25b709a50a4db1d Mon Sep 17 00:00:00 2001 From: Noritada Kobayashi Date: Wed, 3 Jan 2024 23:50:41 +0900 Subject: [PATCH 060/115] Add and fix Japanese localization (#2374) --- src/locale/locales/ja/messages.po | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index c9d5573aad..15140b2292 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -434,7 +434,7 @@ msgstr "入力したメールアドレスの受信トレイを確認して、以 #: src/view/com/modals/Threadgate.tsx:72 msgid "Choose \"Everybody\" or \"Nobody\"" -msgstr "" +msgstr "「全員」と「返信不可」のどちらかを選択" #: src/view/com/modals/ServerInput.tsx:38 msgid "Choose Service" @@ -978,11 +978,11 @@ msgstr "非表示" #: src/view/com/util/forms/PostDropdownBtn.tsx:173 msgid "Hide post" -msgstr "" +msgstr "投稿を非表示にする" #: src/view/com/util/forms/PostDropdownBtn.tsx:177 msgid "Hide this post?" -msgstr "" +msgstr "この投稿を非表示にしますか?" #: src/view/com/notifications/FeedItem.tsx:316 msgid "Hide user list" @@ -1204,7 +1204,7 @@ msgstr "ローカル開発者サーバー" #: src/view/screens/Moderation.tsx:136 msgid "Logged-out visibility" -msgstr "ログアウトした状態の可視性" +msgstr "ログアウトしたユーザーからの可視性" #: src/view/com/auth/login/ChooseAccountForm.tsx:133 msgid "Login to account that is not listed" @@ -1474,7 +1474,7 @@ msgstr "スレッドの設定を開く" #: src/view/com/modals/Threadgate.tsx:89 msgid "Or combine these options:" -msgstr "" +msgstr "または以下のオプションを組み合わせてください:" #: src/view/com/auth/login/ChooseAccountForm.tsx:138 msgid "Other account" @@ -1553,7 +1553,7 @@ msgstr "" #: src/view/com/composer/Composer.tsx:214 msgid "Please wait for your link card to finish loading" -msgstr "" +msgstr "リンクカードがロードされるまでお待ちください" #: src/view/com/composer/Composer.tsx:341 #: src/view/com/post-thread/PostThread.tsx:225 @@ -1837,7 +1837,7 @@ msgstr "検索" #: src/view/com/auth/LoggedOut.tsx:104 #: src/view/com/auth/LoggedOut.tsx:105 msgid "Search for users" -msgstr "" +msgstr "ユーザーを検索" #: src/view/com/modals/ChangeEmail.tsx:110 msgid "Security Step Required" @@ -1914,7 +1914,7 @@ msgstr "スレッド表示で返信を表示するには、この設定を「は #: src/view/screens/PreferencesHomeFeed.tsx:252 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." -msgstr "保存されたフィードのサンプルを次のフィードに表示するには、この設定を「はい」にします。これは実験的な機能です。" +msgstr "保存されたフィードから投稿を抽出して「Following」フィードに表示するには、この設定を「はい」にします。これは実験的な機能です。" #: src/view/screens/Settings.tsx:277 #: src/view/shell/desktop/LeftNav.tsx:433 @@ -2187,7 +2187,7 @@ msgstr "この警告は、メディアが接続されている投稿にのみ使 #: src/view/com/util/forms/PostDropdownBtn.tsx:178 msgid "This will hide this post from your feeds." -msgstr "" +msgstr "この投稿をあなたのフィードにおいて非表示にします。" #: src/view/screens/PreferencesThreads.tsx:53 #: src/view/screens/Settings.tsx:503 From a410aad23ce2e0e8406cbc9c7a12a5660550d1bb Mon Sep 17 00:00:00 2001 From: Ansh Date: Wed, 3 Jan 2024 21:16:23 +0530 Subject: [PATCH 061/115] Improve French Localization (#2404) * update messages.po for french * Update src/locale/locales/fr/messages.po Co-authored-by: Stanislas Signoud * change based on feedback --------- Co-authored-by: Stanislas Signoud --- src/locale/locales/fr/messages.po | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 075ebabe59..4ad9d8e7cb 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -193,7 +193,6 @@ msgstr "Faire appel de l’avertissement sur le contenu" msgid "Appeal Content Warning" msgstr "Appel de l’avertissement sur le contenu" -#: src/view/com/modals/AppealLabel.tsx:65 #~ msgid "Appeal Decision" #~ msgstr "Appel de la décision" @@ -975,7 +974,7 @@ msgstr "Voici le mot de passe de votre appli." #: src/view/com/notifications/FeedItem.tsx:324 #: src/view/com/util/moderation/ContentHider.tsx:103 msgid "Hide" -msgstr "Masquer" +msgstr "Cacher" #: src/view/com/util/forms/PostDropdownBtn.tsx:173 msgid "Hide post" @@ -1203,10 +1202,6 @@ msgstr "Visibilité déconnectée" msgid "Login to account that is not listed" msgstr "Se connecter à un compte qui n’est pas listé" -#: src/view/screens/ProfileFeed.tsx:472 -#~ 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 "On dirait que ce fils d’actu n’est disponible que pour les utilisateurs disposant d’un compte Bluesky. Veuillez vous inscrire ou vous connecter pour voir ce fils d’actu !" - #: src/view/com/modals/LinkWarning.tsx:63 msgid "Make sure this is where you intend to go!" msgstr "Assurez-vous que c’est bien là que vous avez l’intention d’aller !" @@ -1345,6 +1340,10 @@ msgstr "Nouveau post" msgid "Newest replies first" msgstr "Réponses les plus récentes en premier" +#: src/view/screens/PreferencesThreads.tsx:79 +msgid "Newest replies first" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 @@ -1554,8 +1553,6 @@ msgstr "Veuillez également entrer votre mot de passe :" 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/AppealLabel.tsx:72 -#: src/view/com/modals/AppealLabel.tsx:75 #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "Dites-nous pourquoi vous pensez que cette décision était incorrecte." @@ -1652,6 +1649,10 @@ msgstr "Citer un post" msgid "Random (aka \"Poster's Roulette\")" msgstr "Aléatoire" +#: src/view/screens/PreferencesThreads.tsx:86 +msgid "Random (aka \"Poster's Roulette\")" +msgstr "" + #: src/view/com/modals/EditImage.tsx:236 msgid "Ratios" msgstr "Ratios" @@ -2152,7 +2153,6 @@ msgstr "Nos conditions d’utilisation ont été déplacées vers" 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é !" -#: src/view/com/util/moderation/LabelInfo.tsx:45 #~ msgid "This {0} has been labeled." #~ msgstr "Ce {0} a été classé." @@ -2377,10 +2377,6 @@ msgstr "Bienvenue sur <0>Bluesky" msgid "What is the issue with this {collectionName}?" msgstr "Quel est le problème avec cette {collectionName} ?" -#: src/view/com/auth/SplashScreen.tsx:34 -#~ msgid "What's next?" -#~ msgstr "Et après ?" - #: src/view/com/auth/SplashScreen.tsx:34 msgid "What's up?" msgstr "Quoi de neuf ?" From 2c31e2a042f73d99be114cf6cb4a2eb9d5407d68 Mon Sep 17 00:00:00 2001 From: Rahul Yadav <52163880+rahulyadav5524@users.noreply.github.com> Date: Wed, 3 Jan 2024 22:38:21 +0530 Subject: [PATCH 062/115] Fixed slider flicker issue when sliding in revese side (#2368) --- src/view/screens/PreferencesHomeFeed.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/view/screens/PreferencesHomeFeed.tsx b/src/view/screens/PreferencesHomeFeed.tsx index 20ef729236..874272831f 100644 --- a/src/view/screens/PreferencesHomeFeed.tsx +++ b/src/view/screens/PreferencesHomeFeed.tsx @@ -29,6 +29,7 @@ function RepliesThresholdInput({ const pal = usePalette('default') const [value, setValue] = useState(initialValue) const {mutate: setFeedViewPref} = useSetFeedViewPreferencesMutation() + const preValue = React.useRef(initialValue) const save = React.useMemo( () => debounce( @@ -46,7 +47,12 @@ function RepliesThresholdInput({ { - const threshold = Math.floor(Array.isArray(v) ? v[0] : v) + let threshold = Array.isArray(v) ? v[0] : v + if (threshold > preValue.current) threshold = Math.floor(threshold) + else threshold = Math.ceil(threshold) + + preValue.current = threshold + setValue(threshold) save(threshold) }} From df277e5977cb0b1f7e11c7e94265029f8e37ece4 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Wed, 3 Jan 2024 09:53:41 -0800 Subject: [PATCH 063/115] Multiple improvements to link cards and quote posts (#2398) * fix canvas * fix external link embed styles * Use the same link-card style on web and mobile and give a little more height on desktop to the card images * Use dark border on link embeds to match quote post style * Fix the highlighting behavior on linkcards and quoteposts --------- Co-authored-by: Hailey --- src/lib/media/manip.web.ts | 10 ++--- src/lib/themes.ts | 2 + .../util/post-embeds/ExternalLinkEmbed.tsx | 40 +++++-------------- src/view/com/util/post-embeds/QuoteEmbed.tsx | 1 + src/view/com/util/post-embeds/index.tsx | 18 ++++----- 5 files changed, 27 insertions(+), 44 deletions(-) diff --git a/src/lib/media/manip.web.ts b/src/lib/media/manip.web.ts index 914b05d2e0..bdf6836a10 100644 --- a/src/lib/media/manip.web.ts +++ b/src/lib/media/manip.web.ts @@ -117,9 +117,6 @@ function createResizedImage( return reject(new Error('Failed to resize image')) } - canvas.width = width - canvas.height = height - let scale = 1 if (mode === 'cover') { scale = img.width < img.height ? width / img.width : height / img.height @@ -128,10 +125,11 @@ function createResizedImage( } let w = img.width * scale let h = img.height * scale - let x = (width - w) / 2 - let y = (height - h) / 2 - ctx.drawImage(img, x, y, w, h) + canvas.width = w + canvas.height = h + + ctx.drawImage(img, 0, 0, w, h) resolve(canvas.toDataURL('image/jpeg', quality)) }) img.src = dataUri diff --git a/src/lib/themes.ts b/src/lib/themes.ts index b778d5b30d..ad7574db6e 100644 --- a/src/lib/themes.ts +++ b/src/lib/themes.ts @@ -25,6 +25,7 @@ export const defaultTheme: Theme = { postCtrl: '#71768A', brandText: '#0066FF', emptyStateIcon: '#B6B6C9', + borderLinkHover: '#cac1c1', }, primary: { background: colors.blue3, @@ -310,6 +311,7 @@ export const darkTheme: Theme = { postCtrl: '#707489', brandText: '#0085ff', emptyStateIcon: colors.gray4, + borderLinkHover: colors.gray5, }, primary: { ...defaultTheme.palette.primary, diff --git a/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx b/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx index 27aa804d35..1523dcf530 100644 --- a/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx +++ b/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx @@ -23,29 +23,16 @@ export const ExternalLinkEmbed = ({ ) return ( - + {link.thumb && !embedPlayerParams ? ( + style={{ + borderTopLeftRadius: 6, + borderTopRightRadius: 6, + width: '100%', + height: isMobile ? 200 : 300, + overflow: 'hidden', + }}> {toNiceDomain(link.uri)} - + {link.title || link.uri} {link.description ? ( {link.description} @@ -90,8 +73,7 @@ export const ExternalLinkEmbed = ({ const styles = StyleSheet.create({ extImage: { - width: '100%', - height: 200, + flex: 1, }, extUri: { marginTop: 2, diff --git a/src/view/com/util/post-embeds/QuoteEmbed.tsx b/src/view/com/util/post-embeds/QuoteEmbed.tsx index e793f983e4..fbb89af27b 100644 --- a/src/view/com/util/post-embeds/QuoteEmbed.tsx +++ b/src/view/com/util/post-embeds/QuoteEmbed.tsx @@ -98,6 +98,7 @@ export function QuoteEmbed({ return ( + @@ -168,11 +168,14 @@ export function PostEmbeds({ const link = embed.external return ( - - - - - + + + ) } @@ -180,9 +183,6 @@ export function PostEmbeds({ } const styles = StyleSheet.create({ - stackContainer: { - gap: 6, - }, imagesContainer: { marginTop: 8, }, From 1b0c73a2a392fb4aa2e116d00c96744aa20ce0e7 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 3 Jan 2024 11:56:07 -0600 Subject: [PATCH 064/115] Fix: Web design issues (#2377) (#2410) * Fix web design issues * Fix Right Nav width design issue Co-authored-by: Rahul Yadav <52163880+rahulyadav5524@users.noreply.github.com> --- src/lib/styles.ts | 1 + src/view/com/feeds/FeedSourceCard.tsx | 2 +- src/view/screens/Moderation.tsx | 8 +++++++- src/view/screens/SavedFeeds.tsx | 12 +++++++++--- src/view/shell/desktop/RightNav.tsx | 6 +++--- 5 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/lib/styles.ts b/src/lib/styles.ts index 152e60eb0f..5a10fea864 100644 --- a/src/lib/styles.ts +++ b/src/lib/styles.ts @@ -167,6 +167,7 @@ export const s = StyleSheet.create({ flexGrow1: {flexGrow: 1}, alignCenter: {alignItems: 'center'}, alignBaseline: {alignItems: 'baseline'}, + justifyCenter: {justifyContent: 'center'}, // position absolute: {position: 'absolute'}, diff --git a/src/view/com/feeds/FeedSourceCard.tsx b/src/view/com/feeds/FeedSourceCard.tsx index 99e2b474f6..338ffc3d02 100644 --- a/src/view/com/feeds/FeedSourceCard.tsx +++ b/src/view/com/feeds/FeedSourceCard.tsx @@ -229,7 +229,7 @@ export function FeedSourceCardLoaded({ {showSaveBtn && feed.type === 'feed' && ( - + - + - + Pinned Feeds @@ -288,7 +288,7 @@ function ListItem({ @@ -344,7 +344,7 @@ const styles = StyleSheet.create({ webArrowUpButton: { marginBottom: 10, }, - noBorder: { + noTopBorder: { borderTopWidth: 0, }, footerText: { @@ -352,4 +352,10 @@ const styles = StyleSheet.create({ paddingTop: 22, paddingBottom: 100, }, + noBorder: { + borderBottomWidth: 0, + borderRightWidth: 0, + borderLeftWidth: 0, + borderTopWidth: 0, + }, }) diff --git a/src/view/shell/desktop/RightNav.tsx b/src/view/shell/desktop/RightNav.tsx index 02b742dc94..894624a6ef 100644 --- a/src/view/shell/desktop/RightNav.tsx +++ b/src/view/shell/desktop/RightNav.tsx @@ -180,14 +180,14 @@ const styles = StyleSheet.create({ position: 'absolute', // @ts-ignore web only left: 'calc(50vw + 320px)', - width: 304, + width: 300, maxHeight: '100%', overflowY: 'auto', }, message: { paddingVertical: 18, - paddingHorizontal: 10, + paddingHorizontal: 12, }, messageLine: { marginBottom: 10, @@ -195,7 +195,7 @@ const styles = StyleSheet.create({ inviteCodes: { borderTopWidth: 1, - paddingHorizontal: 16, + paddingHorizontal: 12, paddingVertical: 12, flexDirection: 'row', }, From 4baef7a2d5d57b437b4420ed6ba1f44b52995d4e Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 3 Jan 2024 11:58:05 -0600 Subject: [PATCH 065/115] Update IS_PROD check (#2337) * Update IS_PROD check to work now and after federation * Use correct sandbox PDS * Just use simple check for now --- src/lib/constants.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/constants.ts b/src/lib/constants.ts index aa5983be7d..e566d40d55 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -41,7 +41,7 @@ export function IS_LOCAL_DEV(url: string) { } export function IS_STAGING(url: string) { - return !IS_LOCAL_DEV(url) && !IS_PROD(url) + return url.startsWith('https://staging.bsky.dev') } export function IS_PROD(url: string) { @@ -51,7 +51,8 @@ export function IS_PROD(url: string) { // -prf return ( url.startsWith('https://bsky.social') || - url.startsWith('https://api.bsky.app') + url.startsWith('https://api.bsky.app') || + /bsky\.network\/?$/.test(url) ) } From 3bee621347df21cf174c6ab3537aba991de0f4d6 Mon Sep 17 00:00:00 2001 From: Ansh Date: Wed, 3 Jan 2024 23:44:36 +0530 Subject: [PATCH 066/115] Enable Spanish Localization (#2405) * add `es` to `lingui.config.js` * update messages.po * enable spanish localization --- lingui.config.js | 2 +- src/locale/helpers.ts | 4 +- src/locale/i18n.ts | 12 +-- src/locale/i18n.web.ts | 9 +- src/locale/languages.ts | 6 +- src/locale/locales/es/messages.po | 154 +++++++++++++++--------------- 6 files changed, 93 insertions(+), 94 deletions(-) diff --git a/lingui.config.js b/lingui.config.js index 0f30be0b52..ebf1ca08a7 100644 --- a/lingui.config.js +++ b/lingui.config.js @@ -1,6 +1,6 @@ /** @type {import('@lingui/conf').LinguiConfig} */ module.exports = { - locales: ['en', 'hi', 'ja', 'fr', 'de', 'es', 'ko'], + locales: ['en', 'hi', 'ja', 'fr', 'de', 'es', 'ko', 'es'], catalogs: [ { path: '/src/locale/locales/{locale}/messages', diff --git a/src/locale/helpers.ts b/src/locale/helpers.ts index cdb5514b5f..a9752c76ac 100644 --- a/src/locale/helpers.ts +++ b/src/locale/helpers.ts @@ -114,8 +114,8 @@ export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage { // case 'de': // return AppLanguage.de // DISABLED until this translation is more thoroughly reviewed -prf - // case 'es': - // return AppLanguage.es + case 'es': + return AppLanguage.es case 'fr': return AppLanguage.fr case 'hi': diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts index 5377d58fad..1442641dac 100644 --- a/src/locale/i18n.ts +++ b/src/locale/i18n.ts @@ -5,8 +5,7 @@ import {useLanguagePrefs} from '#/state/preferences' import {messages as messagesEn} from '#/locale/locales/en/messages' // DISABLED until this translation is fixed -prf // import {messages as messagesDe} from '#/locale/locales/de/messages' -// DISABLED until this translation is more thoroughly reviewed -prf -// import {messages as messagesEs} from '#/locale/locales/es/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 messagesJa} from '#/locale/locales/ja/messages' @@ -25,11 +24,10 @@ export async function dynamicActivate(locale: AppLanguage) { // i18n.loadAndActivate({locale, messages: messagesDe}) // break // } - // DISABLED until this translation is more thoroughly reviewed -prf - // case AppLanguage.es: { - // i18n.loadAndActivate({locale, messages: messagesEs}) - // break - // } + case AppLanguage.es: { + i18n.loadAndActivate({locale, messages: messagesEs}) + break + } case AppLanguage.fr: { i18n.loadAndActivate({locale, messages: messagesFr}) break diff --git a/src/locale/i18n.web.ts b/src/locale/i18n.web.ts index 9890289d79..8a1d293cde 100644 --- a/src/locale/i18n.web.ts +++ b/src/locale/i18n.web.ts @@ -17,11 +17,10 @@ export async function dynamicActivate(locale: AppLanguage) { // mod = await import(`./locales/de/messages`) // break // } - // DISABLED until this translation is more thoroughly reviewed -prf - // case AppLanguage.es: { - // mod = await import(`./locales/es/messages`) - // break - // } + case AppLanguage.es: { + mod = await import(`./locales/es/messages`) + break + } case AppLanguage.fr: { mod = await import(`./locales/fr/messages`) break diff --git a/src/locale/languages.ts b/src/locale/languages.ts index 31ee5b6070..d8b0fa2081 100644 --- a/src/locale/languages.ts +++ b/src/locale/languages.ts @@ -8,8 +8,7 @@ export enum AppLanguage { en = 'en', // DISABLED until this translation is fixed -prf // de = 'de', - // DISABLED until this translation is more thoroughly reviewed -prf - // es = 'es', + es = 'es', fr = 'fr', hi = 'hi', ja = 'ja', @@ -25,8 +24,7 @@ export const APP_LANGUAGES: AppLanguageConfig[] = [ {code2: AppLanguage.en, name: 'English'}, // DISABLED until this translation is fixed -prf // {code2: AppLanguage.de, name: 'Deutsch'}, - // DISABLED until this translation is more thoroughly reviewed -prf - // {code2: AppLanguage.es, name: 'Español'}, + {code2: AppLanguage.es, name: 'Español'}, {code2: AppLanguage.fr, name: 'Français'}, {code2: AppLanguage.hi, name: 'हिंदी'}, {code2: AppLanguage.ja, name: '日本語'}, diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index d2fd294bfc..c041c56f73 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -15,7 +15,7 @@ msgstr "" #: src/view/shell/desktop/RightNav.tsx:168 msgid "{0, plural, one {# invite code available} other {# invite codes available}}" -msgstr "" +msgstr "{0, plural, uno {# invite code available} otro {# invite codes available}}" #: src/view/com/modals/Repost.tsx:44 msgid "{0}" @@ -27,7 +27,7 @@ msgstr "Lista {purposeLabel} {0}" #: src/view/shell/desktop/RightNav.tsx:151 msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" -msgstr "" +msgstr "{invitesAvailable, plural, uno {Invite codes: # available} otro {Invite codes: # available}}" #: src/view/screens/Settings.tsx:407 #: src/view/shell/Drawer.tsx:659 @@ -57,7 +57,7 @@ msgstr "<0>Sigue a algunos<1>usuarios<2>recomendados" #: src/view/com/util/moderation/LabelInfo.tsx:45 msgid "A content warning has been applied to this {0}." -msgstr "" +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." @@ -68,7 +68,7 @@ msgstr "Ya está disponible una nueva versión de la aplicación. Actualízala p msgid "Accessibility" msgstr "Accesibilidad" -#: src/view/com/auth/login/LoginForm.tsx:159 +#: src/view/com/auth/login/LoginForm.tsx:163 #: src/view/screens/Settings.tsx:286 msgid "Account" msgstr "Cuenta" @@ -98,6 +98,7 @@ msgstr "Agregar una cuenta" #: src/view/com/composer/photos/Gallery.tsx:119 #: src/view/com/composer/photos/Gallery.tsx:180 +#: src/view/com/modals/AltImage.tsx:93 msgid "Add alt text" msgstr "Agregar texto alt" @@ -110,11 +111,11 @@ msgstr "Agregar detalles" msgid "Add details to report" msgstr "Agregar detalles al informe" -#: src/view/com/composer/Composer.tsx:442 +#: src/view/com/composer/Composer.tsx:447 msgid "Add link card" msgstr "Agregar una tarjeta de enlace" -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:450 msgid "Add link card:" msgstr "Agregar una tarjeta de enlace:" @@ -186,15 +187,11 @@ msgstr "Contraseñas de la app" #: src/view/com/util/forms/PostDropdownBtn.tsx:236 msgid "Appeal content warning" -msgstr "" +msgstr "Aviso sobre el contenido del recurso" #: src/view/com/modals/AppealLabel.tsx:65 msgid "Appeal Content Warning" -msgstr "" - -#: src/view/com/modals/AppealLabel.tsx:65 -#~ msgid "Appeal Decision" -#~ msgstr "Decisión de apelación" +msgstr "Aviso sobre el Contenido del Recurso" #: src/view/com/util/moderation/LabelInfo.tsx:52 msgid "Appeal this decision" @@ -212,7 +209,7 @@ msgstr "Aspecto exterior" 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:142 +#: src/view/com/composer/Composer.tsx:143 msgid "Are you sure you'd like to discard this draft?" msgstr "¿Estás seguro de que quieres descartar este borrador?" @@ -222,7 +219,7 @@ msgstr "¿Estás seguro?" #: src/view/com/util/forms/PostDropdownBtn.tsx:219 msgid "Are you sure? This cannot be undone." -msgstr "¿Estás seguro? Esto no puede deshacerse," +msgstr "¿Estás seguro? Esto no puede deshacerse." #: src/view/com/modals/SelfLabel.tsx:123 msgid "Artistic or non-erotic nudity." @@ -231,7 +228,7 @@ msgstr "Desnudez artística o no erótica." #: src/view/com/auth/create/CreateAccount.tsx:141 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:166 -#: src/view/com/auth/login/LoginForm.tsx:250 +#: src/view/com/auth/login/LoginForm.tsx:254 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 #: src/view/com/modals/report/InputIssueDetails.tsx:46 #: src/view/com/post-thread/PostThread.tsx:388 @@ -289,7 +286,7 @@ msgstr "Las cuentas bloqueadas no pueden responder en tus hilos, mencionarte ni #: src/view/com/post-thread/PostThread.tsx:250 msgid "Blocked post." -msgstr "Publicación bloqueada" +msgstr "Publicación bloqueada." #: src/view/screens/ProfileList.tsx:310 msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." @@ -345,9 +342,8 @@ 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/view/com/composer/Composer.tsx:289 -#: src/view/com/composer/Composer.tsx:292 -#: src/view/com/modals/AltImage.tsx:128 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Composer.tsx:297 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 #: src/view/com/modals/Confirm.tsx:88 @@ -371,8 +367,8 @@ msgid "Cancel account deletion" msgstr "Cancelar la eliminación de la cuenta" #: src/view/com/modals/AltImage.tsx:123 -msgid "Cancel add image alt text" -msgstr "Cancelar añadir texto alternativo a la imagen" +#~ msgid "Cancel add image alt text" +#~ msgstr "Cancelar añadir texto alternativo a la imagen" #: src/view/com/modals/ChangeHandle.tsx:149 msgid "Cancel change handle" @@ -502,7 +498,7 @@ msgstr "Redactar la respuesta" #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:225 #: src/view/screens/PreferencesHomeFeed.tsx:299 -#: src/view/screens/PreferencesThreads.tsx:153 +#: src/view/screens/PreferencesThreads.tsx:159 msgid "Confirm" msgstr "Confirmar" @@ -526,7 +522,7 @@ msgid "Confirmation code" msgstr "Código de confirmación" #: src/view/com/auth/create/CreateAccount.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:273 msgid "Connecting..." msgstr "Conectando..." @@ -673,15 +669,15 @@ msgstr "Servidor de desarrollo" msgid "Developer Tools" msgstr "Herramientas de desarrollador" -#: src/view/com/composer/Composer.tsx:210 +#: src/view/com/composer/Composer.tsx:211 msgid "Did you want to say anything?" -msgstr "" +msgstr "¿Quieres decir algo?" -#: src/view/com/composer/Composer.tsx:143 +#: src/view/com/composer/Composer.tsx:144 msgid "Discard" msgstr "Descartar" -#: src/view/com/composer/Composer.tsx:137 +#: src/view/com/composer/Composer.tsx:138 msgid "Discard draft" msgstr "Descartar el borrador" @@ -706,6 +702,7 @@ msgid "Domain verified!" msgstr "¡Dominio verificado!" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/AltImage.tsx:115 #: src/view/com/modals/ContentFilteringSettings.tsx:88 #: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 @@ -716,7 +713,7 @@ msgstr "¡Dominio verificado!" #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:79 #: src/view/screens/PreferencesHomeFeed.tsx:302 -#: src/view/screens/PreferencesThreads.tsx:156 +#: src/view/screens/PreferencesThreads.tsx:162 msgid "Done" msgstr "Listo" @@ -917,11 +914,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:232 +#: src/view/com/auth/login/LoginForm.tsx:236 msgid "Forgot" msgstr "Lo olvidé" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Forgot password" msgstr "Olvidé mi contraseña" @@ -953,7 +950,7 @@ msgid "Go Back" msgstr "Regresar" #: src/view/com/auth/login/ForgotPasswordForm.tsx:181 -#: src/view/com/auth/login/LoginForm.tsx:279 +#: src/view/com/auth/login/LoginForm.tsx:283 #: src/view/com/auth/login/SetNewPasswordForm.tsx:163 msgid "Go to next" msgstr "Ir al siguiente" @@ -978,11 +975,11 @@ msgstr "Ocultar" #: src/view/com/util/forms/PostDropdownBtn.tsx:173 msgid "Hide post" -msgstr "" +msgstr "Ocultar publicación" #: src/view/com/util/forms/PostDropdownBtn.tsx:177 msgid "Hide this post?" -msgstr "" +msgstr "¿Ocultar esta publicación?" #: src/view/com/notifications/FeedItem.tsx:316 msgid "Hide user list" @@ -1051,7 +1048,7 @@ msgstr "Texto alt de la imagen" msgid "Image options" msgstr "Opciones de la imagen" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:115 msgid "Invalid username or password" msgstr "Nombre de usuario o contraseña no válidos" @@ -1202,10 +1199,6 @@ msgstr "Visibilidad de desconexión" msgid "Login to account that is not listed" msgstr "Acceder a una cuenta que no está en la lista" -#: src/view/screens/ProfileFeed.tsx:472 -#~ 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 "Parece que este canal de noticias sólo está disponible para usuarios con una cuenta Bluesky. Por favor, ¡regístrate o inicia sesión para ver este canal!" - #: src/view/com/modals/LinkWarning.tsx:63 msgid "Make sure this is where you intend to go!" msgstr "¡Asegúrate de que es aquí a donde pretendes ir!" @@ -1256,6 +1249,10 @@ msgstr "Más canales de noticias" msgid "More options" msgstr "Más opciones" +#: src/view/screens/PreferencesThreads.tsx:82 +msgid "Most-liked replies first" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:370 msgid "Mute Account" msgstr "Silenciar la cuenta" @@ -1336,10 +1333,14 @@ msgstr "Publicación nueva" msgid "New Post" msgstr "Publicación nueva" +#: src/view/screens/PreferencesThreads.tsx:79 +msgid "Newest replies first" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 -#: src/view/com/auth/login/LoginForm.tsx:282 +#: src/view/com/auth/login/LoginForm.tsx:286 #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -1354,6 +1355,8 @@ msgstr "Imagen nueva" #: src/view/screens/PreferencesHomeFeed.tsx:191 #: src/view/screens/PreferencesHomeFeed.tsx:226 #: src/view/screens/PreferencesHomeFeed.tsx:263 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "No" @@ -1407,7 +1410,11 @@ msgstr "¡Qué problema!" msgid "Okay" msgstr "Está bien" -#: src/view/com/composer/Composer.tsx:358 +#: src/view/screens/PreferencesThreads.tsx:78 +msgid "Oldest replies first" +msgstr "" + +#: src/view/com/composer/Composer.tsx:363 msgid "One or more images is missing alt text." msgstr "Falta el texto alternativo en una o varias imágenes." @@ -1415,6 +1422,11 @@ msgstr "Falta el texto alternativo en una o varias imágenes." msgid "Only {0} can reply." msgstr "Solo {0} puede responder." +#: src/view/com/composer/Composer.tsx:468 +#: src/view/com/composer/Composer.tsx:469 +msgid "Open emoji picker" +msgstr "" + #: src/view/com/pager/FeedsTabBarMobile.tsx:76 msgid "Open navigation" msgstr "Abrir navegación" @@ -1483,7 +1495,7 @@ msgstr "Página no encontrada" #: src/view/com/auth/create/Step2.tsx:122 #: src/view/com/auth/create/Step2.tsx:132 -#: src/view/com/auth/login/LoginForm.tsx:217 +#: src/view/com/auth/login/LoginForm.tsx:221 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 #: src/view/com/modals/DeleteAccount.tsx:191 msgid "Password" @@ -1532,18 +1544,13 @@ msgstr "Introduce tu contraseña, también:" #: 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 "" +msgstr "Por favor, dinos por qué crees que esta advertencia de contenido se ha aplicado incorrectamente!" -#: src/view/com/modals/AppealLabel.tsx:72 -#: src/view/com/modals/AppealLabel.tsx:75 -#~ msgid "Please tell us why you think this decision was incorrect." -#~ msgstr "Por favor, dinos por qué crees que esta decisión fue incorrecta." - -#: src/view/com/composer/Composer.tsx:214 +#: src/view/com/composer/Composer.tsx:215 msgid "Please wait for your link card to finish loading" -msgstr "" +msgstr "Por favor, espera a que tu tarjeta de enlace termine de cargarse" -#: src/view/com/composer/Composer.tsx:341 +#: src/view/com/composer/Composer.tsx:346 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" @@ -1581,7 +1588,7 @@ msgstr "Imagen previa" msgid "Primary Language" msgstr "Lenguajes primarios" -#: src/view/screens/PreferencesThreads.tsx:91 +#: src/view/screens/PreferencesThreads.tsx:97 msgid "Prioritize Your Follows" msgstr "Priorizar los usuarios a los que sigue" @@ -1628,6 +1635,10 @@ msgstr "Citar una publicación" msgid "Quote Post" msgstr "Citar una publicación" +#: src/view/screens/PreferencesThreads.tsx:86 +msgid "Random (aka \"Poster's Roulette\")" +msgstr "" + #: src/view/com/modals/EditImage.tsx:236 msgid "Ratios" msgstr "Proporciones" @@ -1768,14 +1779,13 @@ msgstr "Restablecer el estado de preferencias" #: src/view/com/auth/create/CreateAccount.tsx:163 #: src/view/com/auth/create/CreateAccount.tsx:167 -#: src/view/com/auth/login/LoginForm.tsx:259 -#: src/view/com/auth/login/LoginForm.tsx:262 +#: src/view/com/auth/login/LoginForm.tsx:263 +#: src/view/com/auth/login/LoginForm.tsx:266 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:65 msgid "Retry" msgstr "Volver a intentar" -#: src/view/com/modals/AltImage.tsx:115 #: src/view/com/modals/BirthDateSettings.tsx:94 #: src/view/com/modals/BirthDateSettings.tsx:97 #: src/view/com/modals/ChangeHandle.tsx:173 @@ -1821,7 +1831,7 @@ msgstr "Buscar" #: src/view/com/auth/LoggedOut.tsx:104 #: src/view/com/auth/LoggedOut.tsx:105 msgid "Search for users" -msgstr "" +msgstr "Buscar usuarios" #: src/view/com/modals/ChangeEmail.tsx:110 msgid "Security Step Required" @@ -1839,7 +1849,7 @@ msgstr "Seleccionar Bluesky Social" msgid "Select from an existing account" msgstr "Selecciona de una cuenta existente" -#: src/view/com/auth/login/LoginForm.tsx:143 +#: src/view/com/auth/login/LoginForm.tsx:147 msgid "Select service" msgstr "Selecciona el servicio" @@ -1892,7 +1902,7 @@ msgstr "Establece este ajuste en \"No\" para ocultar todas las respuestas de tus msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Establece este ajuste en \"No\" para ocultar todas las veces que se han vuelto a publicar desde tus noticias." -#: src/view/screens/PreferencesThreads.tsx:116 +#: 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 "Establece este ajuste en \"Sí\" para mostrar las respuestas en una vista de hilos. Se trata de una función experimental." @@ -1942,7 +1952,7 @@ msgstr "Mostrar publicaciones de citas" msgid "Show Replies" msgstr "Mostrar respuestas" -#: src/view/screens/PreferencesThreads.tsx:94 +#: src/view/screens/PreferencesThreads.tsx:100 msgid "Show replies by people you follow before all other replies." msgstr "Mostrar las respuestas de las personas a quienes sigues antes que el resto de respuestas." @@ -1983,7 +1993,7 @@ msgstr "Iniciar sesión como {0}" msgid "Sign in as..." msgstr "Iniciar sesión como ..." -#: src/view/com/auth/login/LoginForm.tsx:130 +#: src/view/com/auth/login/LoginForm.tsx:134 msgid "Sign into" msgstr "Iniciar sesión en" @@ -2125,10 +2135,6 @@ msgstr "Las condiciones de servicio se han trasladado a" 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!" -#: src/view/com/util/moderation/LabelInfo.tsx:45 -#~ msgid "This {0} has been labeled." -#~ msgstr "Este {0} ha sido etiquetado." - #: src/view/com/util/moderation/ScreenHider.tsx:88 msgid "This {screenDescription} has been flagged:" msgstr "Esta {screenDescription} ha sido marcada:" @@ -2171,14 +2177,14 @@ msgstr "Esta advertencia sólo está disponible para las publicaciones con medio #: src/view/com/util/forms/PostDropdownBtn.tsx:178 msgid "This will hide this post from your feeds." -msgstr "" +msgstr "Esto ocultará esta entrada de tus contenidos." #: src/view/screens/PreferencesThreads.tsx:53 #: src/view/screens/Settings.tsx:503 msgid "Thread Preferences" msgstr "Preferencias de hilos" -#: src/view/screens/PreferencesThreads.tsx:113 +#: src/view/screens/PreferencesThreads.tsx:119 msgid "Threaded Mode" msgstr "Modo con hilos" @@ -2210,7 +2216,7 @@ msgstr "Desactivar la opción de silenciar la lista" #: src/view/com/auth/create/CreateAccount.tsx:65 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:117 +#: src/view/com/auth/login/LoginForm.tsx:120 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." @@ -2228,7 +2234,7 @@ msgstr "Desbloquear una cuenta" msgid "Undo repost" msgstr "Deshacer esta publicación" -#: src/view/com/auth/create/state.ts:210 +#: src/view/com/auth/create/state.ts:216 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "Lamentablemente, no cumples los requisitos para crear una cuenta." @@ -2284,8 +2290,8 @@ msgstr "Identificador del usuario" msgid "User Lists" msgstr "Listas de usuarios" -#: src/view/com/auth/login/LoginForm.tsx:170 -#: src/view/com/auth/login/LoginForm.tsx:188 +#: src/view/com/auth/login/LoginForm.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:192 msgid "Username or email address" msgstr "Nombre de usuario o dirección de correo electrónico" @@ -2350,13 +2356,9 @@ msgstr "Bienvenido a <0>Bluesky" msgid "What is the issue with this {collectionName}?" msgstr "¿Cuál es el problema con esta {collectionName}?" -#: src/view/com/auth/SplashScreen.tsx:34 -#~ msgid "What's next?" -#~ msgstr "¿Qué sigue?" - #: src/view/com/auth/SplashScreen.tsx:34 msgid "What's up?" -msgstr "" +msgstr "¿Qué hay de nuevo?" #: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:78 msgid "Which languages are used in this post?" @@ -2375,7 +2377,7 @@ msgstr "Quién puede responder" msgid "Wide" msgstr "Ancho" -#: src/view/com/composer/Composer.tsx:413 +#: src/view/com/composer/Composer.tsx:418 msgid "Write post" msgstr "Redactar una publicación" @@ -2387,6 +2389,8 @@ msgstr "Redactar tu respuesta" #: src/view/screens/PreferencesHomeFeed.tsx:192 #: src/view/screens/PreferencesHomeFeed.tsx:227 #: src/view/screens/PreferencesHomeFeed.tsx:262 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Sí" From d49045b61bcf58ed443566ece6cfb28ec21264d9 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Wed, 3 Jan 2024 10:33:28 -0800 Subject: [PATCH 067/115] Fix to spanish localization file --- src/locale/locales/es/messages.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index c041c56f73..f0c4ad2fa1 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -15,7 +15,7 @@ msgstr "" #: src/view/shell/desktop/RightNav.tsx:168 msgid "{0, plural, one {# invite code available} other {# invite codes available}}" -msgstr "{0, plural, uno {# invite code available} otro {# invite codes available}}" +msgstr "{0, plural, one {# invite code available} other {# invite codes available}}" #: src/view/com/modals/Repost.tsx:44 msgid "{0}" @@ -27,7 +27,7 @@ msgstr "Lista {purposeLabel} {0}" #: src/view/shell/desktop/RightNav.tsx:151 msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" -msgstr "{invitesAvailable, plural, uno {Invite codes: # available} otro {Invite codes: # available}}" +msgstr "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" #: src/view/screens/Settings.tsx:407 #: src/view/shell/Drawer.tsx:659 From 7299c730cf4eb6d750b932d8438ec4552b09b1d1 Mon Sep 17 00:00:00 2001 From: Ansh Date: Thu, 4 Jan 2024 00:12:42 +0530 Subject: [PATCH 068/115] Recompile all locales (#2411) --- src/locale/locales/de/messages.po | 155 +++-- src/locale/locales/en/messages.po | 157 +++-- src/locale/locales/es/messages.po | 52 +- src/locale/locales/fr/messages.po | 56 +- src/locale/locales/hi/messages.po | 157 +++-- src/locale/locales/ja/messages.po | 155 +++-- src/locale/locales/ko/messages.po | 1079 ++++++++++++++--------------- 7 files changed, 938 insertions(+), 873 deletions(-) diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index b2f65b2ae9..35305b55a7 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -68,7 +68,7 @@ msgstr "Eine neue Version der App ist verfügbar. Bitte aktualisieren Sie die Ap msgid "Accessibility" msgstr "Zugänglichkeit" -#: src/view/com/auth/login/LoginForm.tsx:159 +#: src/view/com/auth/login/LoginForm.tsx:163 #: src/view/screens/Settings.tsx:286 msgid "Account" msgstr "Konto" @@ -98,6 +98,7 @@ msgstr "Konto hinzufügen" #: src/view/com/composer/photos/Gallery.tsx:119 #: src/view/com/composer/photos/Gallery.tsx:180 +#: src/view/com/modals/AltImage.tsx:93 msgid "Add alt text" msgstr "Alt Text hinzufügen" @@ -110,11 +111,11 @@ msgstr "Einzelheiten hinzufügen" msgid "Add details to report" msgstr "Einzelheiten zum Bericht hinzufügen" -#: src/view/com/composer/Composer.tsx:442 +#: src/view/com/composer/Composer.tsx:447 msgid "Add link card" msgstr "Link Karte hinzufügen" -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:450 msgid "Add link card:" msgstr "Link Karte hinzufügen:" @@ -135,7 +136,7 @@ msgstr "Zu meinen Feeds hinzufügen" msgid "Added to list" msgstr "Den Listen hinzufügen" -#: src/view/screens/PreferencesHomeFeed.tsx:164 +#: src/view/screens/PreferencesHomeFeed.tsx:170 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Passen Sie die Anzahl der Likes an, die eine Antwort haben muss, um in Ihrem Feed angezeigt zu werden." @@ -212,7 +213,7 @@ msgstr "Aussehen" msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "Sind Sie sicher, dass Sie das App-Passwort \"{name}\" löschen möchten?" -#: src/view/com/composer/Composer.tsx:142 +#: src/view/com/composer/Composer.tsx:143 msgid "Are you sure you'd like to discard this draft?" msgstr "Sind Sie sicher, dass Sie diesen Entwurf verwerfen möchten?" @@ -231,7 +232,7 @@ msgstr "Künstlerische oder nicht-erotische Nacktheit." #: src/view/com/auth/create/CreateAccount.tsx:141 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:166 -#: src/view/com/auth/login/LoginForm.tsx:250 +#: src/view/com/auth/login/LoginForm.tsx:254 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 #: src/view/com/modals/report/InputIssueDetails.tsx:46 #: src/view/com/post-thread/PostThread.tsx:388 @@ -345,9 +346,8 @@ 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/view/com/composer/Composer.tsx:289 -#: src/view/com/composer/Composer.tsx:292 -#: src/view/com/modals/AltImage.tsx:128 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Composer.tsx:297 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 #: src/view/com/modals/Confirm.tsx:88 @@ -371,8 +371,8 @@ msgid "Cancel account deletion" msgstr "Kontolöschung abbrechen" #: src/view/com/modals/AltImage.tsx:123 -msgid "Cancel add image alt text" -msgstr "Abbrechen Bild-Alt-Text hinzufügen" +#~ msgid "Cancel add image alt text" +#~ msgstr "Abbrechen Bild-Alt-Text hinzufügen" #: src/view/com/modals/ChangeHandle.tsx:149 msgid "Cancel change handle" @@ -501,8 +501,8 @@ msgstr "Antwort zusammenstellen" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:225 -#: src/view/screens/PreferencesHomeFeed.tsx:299 -#: src/view/screens/PreferencesThreads.tsx:153 +#: src/view/screens/PreferencesHomeFeed.tsx:305 +#: src/view/screens/PreferencesThreads.tsx:159 msgid "Confirm" msgstr "Bestätigen" @@ -526,7 +526,7 @@ msgid "Confirmation code" msgstr "Bestätigungscode" #: src/view/com/auth/create/CreateAccount.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:273 msgid "Connecting..." msgstr "Verbinden..." @@ -673,15 +673,15 @@ msgstr "Entwicklungs-Server" msgid "Developer Tools" msgstr "Werkzeuge für Entwickler" -#: src/view/com/composer/Composer.tsx:210 +#: src/view/com/composer/Composer.tsx:211 msgid "Did you want to say anything?" msgstr "" -#: src/view/com/composer/Composer.tsx:143 +#: src/view/com/composer/Composer.tsx:144 msgid "Discard" msgstr "Verwerfen" -#: src/view/com/composer/Composer.tsx:137 +#: src/view/com/composer/Composer.tsx:138 msgid "Discard draft" msgstr "Verwerfen" @@ -706,6 +706,7 @@ msgid "Domain verified!" msgstr "Domain geprüft!" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/AltImage.tsx:115 #: src/view/com/modals/ContentFilteringSettings.tsx:88 #: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 @@ -715,8 +716,8 @@ msgstr "Domain geprüft!" #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:79 -#: src/view/screens/PreferencesHomeFeed.tsx:302 -#: src/view/screens/PreferencesThreads.tsx:156 +#: src/view/screens/PreferencesHomeFeed.tsx:308 +#: src/view/screens/PreferencesThreads.tsx:162 msgid "Done" msgstr "Erledigt" @@ -777,7 +778,7 @@ msgstr "Email aktualiziert" msgid "Email:" msgstr "E-Mail:" -#: src/view/screens/PreferencesHomeFeed.tsx:138 +#: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." msgstr "Aktivieren Sie diese Einstellung, um nur Antworten zwischen Personen zu sehen, denen Sie folgen." @@ -868,7 +869,7 @@ msgstr "Benutzer mit der Suchfunktion auf der rechten Seite finden" msgid "Finding similar accounts..." msgstr "Suche nach ähnlichen Konten..." -#: src/view/screens/PreferencesHomeFeed.tsx:102 +#: src/view/screens/PreferencesHomeFeed.tsx:108 msgid "Fine-tune the content you see on your home screen." msgstr "Optimieren Sie die Inhalte, die Sie auf Ihrem Startbildschirm sehen." @@ -888,7 +889,7 @@ msgstr "Folgen Sie einigen Nutzern, um loszulegen. Wir können Ihnen weitere Nut msgid "Followed users" msgstr "Verfolgte Benutzer" -#: src/view/screens/PreferencesHomeFeed.tsx:145 +#: src/view/screens/PreferencesHomeFeed.tsx:151 msgid "Followed users only" msgstr "Nur verfolgte Benutzer" @@ -917,11 +918,11 @@ msgstr "Aus Sicherheitsgründen müssen wir Ihnen einen Bestätigungscode an Ihr 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 können Sie es nicht mehr einsehen. Wenn Sie dieses Passwort verlieren, müssen Sie ein neues generieren." -#: src/view/com/auth/login/LoginForm.tsx:232 +#: src/view/com/auth/login/LoginForm.tsx:236 msgid "Forgot" msgstr "Vergessen" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Forgot password" msgstr "Passwort vergessen" @@ -953,7 +954,7 @@ msgid "Go Back" msgstr "Zurückgehen" #: src/view/com/auth/login/ForgotPasswordForm.tsx:181 -#: src/view/com/auth/login/LoginForm.tsx:279 +#: src/view/com/auth/login/LoginForm.tsx:283 #: src/view/com/auth/login/SetNewPasswordForm.tsx:163 msgid "Go to next" msgstr "Weiter zum nächsten" @@ -1016,7 +1017,7 @@ msgid "Home" msgstr "Startseite" #: src/view/com/pager/FeedsTabBarMobile.tsx:96 -#: src/view/screens/PreferencesHomeFeed.tsx:95 +#: src/view/screens/PreferencesHomeFeed.tsx:101 #: src/view/screens/Settings.tsx:481 msgid "Home Feed Preferences" msgstr "Startseite Feed-Einstellungen" @@ -1051,7 +1052,7 @@ msgstr "Bild-Alt-Text" msgid "Image options" msgstr "Bild-Optionen" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:115 msgid "Invalid username or password" msgstr "Ungültiger Benutzername oder Passwort" @@ -1256,6 +1257,10 @@ msgstr "Mehr Feeds " msgid "More options" msgstr "Mehr Optionen" +#: src/view/screens/PreferencesThreads.tsx:82 +msgid "Most-liked replies first" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:370 msgid "Mute Account" msgstr "Stummes Konto" @@ -1336,10 +1341,14 @@ msgstr "Neuer Posten " msgid "New Post" msgstr "Neuer Posten " +#: src/view/screens/PreferencesThreads.tsx:79 +msgid "Newest replies first" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 -#: src/view/com/auth/login/LoginForm.tsx:282 +#: src/view/com/auth/login/LoginForm.tsx:286 #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -1350,10 +1359,12 @@ msgstr "Nächster" msgid "Next image" msgstr "Nächstes Bild " -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:191 -#: src/view/screens/PreferencesHomeFeed.tsx:226 -#: src/view/screens/PreferencesHomeFeed.tsx:263 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:197 +#: src/view/screens/PreferencesHomeFeed.tsx:232 +#: src/view/screens/PreferencesHomeFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "Nein" @@ -1407,7 +1418,11 @@ msgstr "Ach nein!" msgid "Okay" msgstr "Okay" -#: src/view/com/composer/Composer.tsx:358 +#: src/view/screens/PreferencesThreads.tsx:78 +msgid "Oldest replies first" +msgstr "" + +#: src/view/com/composer/Composer.tsx:363 msgid "One or more images is missing alt text." msgstr "Bei einem oder mehreren Bildern fehlt der Alt-Text." @@ -1415,6 +1430,11 @@ msgstr "Bei einem oder mehreren Bildern fehlt der Alt-Text." msgid "Only {0} can reply." msgstr "Nur {0} kann antworten." +#: src/view/com/composer/Composer.tsx:468 +#: src/view/com/composer/Composer.tsx:469 +msgid "Open emoji picker" +msgstr "" + #: src/view/com/pager/FeedsTabBarMobile.tsx:76 msgid "Open navigation" msgstr "Offene Navigation" @@ -1483,7 +1503,7 @@ msgstr "Seite nicht gefunden" #: src/view/com/auth/create/Step2.tsx:122 #: src/view/com/auth/create/Step2.tsx:132 -#: src/view/com/auth/login/LoginForm.tsx:217 +#: src/view/com/auth/login/LoginForm.tsx:221 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 #: src/view/com/modals/DeleteAccount.tsx:191 msgid "Password" @@ -1539,11 +1559,11 @@ msgstr "" #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "Bitte teilen Sie uns mit, warum diese Entscheidung Ihrer Meinung nach falsch war." -#: src/view/com/composer/Composer.tsx:214 +#: src/view/com/composer/Composer.tsx:215 msgid "Please wait for your link card to finish loading" msgstr "" -#: src/view/com/composer/Composer.tsx:341 +#: src/view/com/composer/Composer.tsx:346 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" @@ -1581,7 +1601,7 @@ msgstr "Vorheriges Bild" msgid "Primary Language" msgstr "Primäre Sprache" -#: src/view/screens/PreferencesThreads.tsx:91 +#: src/view/screens/PreferencesThreads.tsx:97 msgid "Prioritize Your Follows" msgstr "Priorisieren Sie Ihre Anhängerschaft" @@ -1628,6 +1648,10 @@ msgstr "Angebotsposten" msgid "Quote Post" msgstr "Angebotsposten" +#: src/view/screens/PreferencesThreads.tsx:86 +msgid "Random (aka \"Poster's Roulette\")" +msgstr "" + #: src/view/com/modals/EditImage.tsx:236 msgid "Ratios" msgstr "Verhältnisse" @@ -1695,7 +1719,7 @@ msgstr "Antworten" msgid "Replies to this thread are disabled" msgstr "Antworten auf diesen Thread sind deaktiviert" -#: src/view/screens/PreferencesHomeFeed.tsx:135 +#: src/view/screens/PreferencesHomeFeed.tsx:141 msgid "Reply Filters" msgstr "Antwort-Filter" @@ -1738,6 +1762,10 @@ msgstr "Nachgetragen von" msgid "Request Change" msgstr "Änderung beantragen" +#: src/view/screens/Settings.tsx:422 +msgid "Require alt text before posting" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" msgstr "Für diesen Anbieter erforderlich" @@ -1768,14 +1796,13 @@ msgstr "Setzt den Zustand der Einstellungen zurück" #: src/view/com/auth/create/CreateAccount.tsx:163 #: src/view/com/auth/create/CreateAccount.tsx:167 -#: src/view/com/auth/login/LoginForm.tsx:259 -#: src/view/com/auth/login/LoginForm.tsx:262 +#: src/view/com/auth/login/LoginForm.tsx:263 +#: src/view/com/auth/login/LoginForm.tsx:266 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:65 msgid "Retry" msgstr "Wiederholung" -#: src/view/com/modals/AltImage.tsx:115 #: src/view/com/modals/BirthDateSettings.tsx:94 #: src/view/com/modals/BirthDateSettings.tsx:97 #: src/view/com/modals/ChangeHandle.tsx:173 @@ -1839,7 +1866,7 @@ msgstr "Wählen Sie Bluesky Social" msgid "Select from an existing account" msgstr "Aus einem bestehenden Konto auswählen" -#: src/view/com/auth/login/LoginForm.tsx:143 +#: src/view/com/auth/login/LoginForm.tsx:147 msgid "Select service" msgstr "Dienst auswählen" @@ -1880,23 +1907,23 @@ msgstr "Bericht senden" msgid "Set new password" msgstr "Neues Passwort festlegen" -#: src/view/screens/PreferencesHomeFeed.tsx:216 +#: src/view/screens/PreferencesHomeFeed.tsx:222 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Setzen Sie diese Einstellung auf \"Nein\", um alle zitierten Beiträge aus Ihrem Feed auszublenden. Neu eingestellte Beiträge sind weiterhin sichtbar." -#: src/view/screens/PreferencesHomeFeed.tsx:113 +#: src/view/screens/PreferencesHomeFeed.tsx:119 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Setzen Sie diese Einstellung auf \"Nein\", um alle Antworten aus Ihrem Feed auszublenden." -#: src/view/screens/PreferencesHomeFeed.tsx:182 +#: src/view/screens/PreferencesHomeFeed.tsx:188 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Setzen Sie diese Einstellung auf \"Nein\", um alle wieder geposteten Beiträge aus Ihrem Feed auszublenden." -#: src/view/screens/PreferencesThreads.tsx:116 +#: 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 "Setzen Sie diese Einstellung auf \"Ja\", um Antworten in einer Thread-Ansicht anzuzeigen. Dies ist eine experimentelle Funktion." -#: src/view/screens/PreferencesHomeFeed.tsx:252 +#: src/view/screens/PreferencesHomeFeed.tsx:258 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." msgstr "Setzen Sie diese Einstellung auf \"Ja\", um Beispiele für Ihre gespeicherten Feeds in Ihrem folgenden Feed anzuzeigen. Dies ist eine experimentelle Funktion." @@ -1930,23 +1957,23 @@ msgstr "Zeigen" msgid "Show anyway" msgstr "Trotzdem anzeigen" -#: src/view/screens/PreferencesHomeFeed.tsx:249 +#: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "Beiträge von My Feeds anzeigen" -#: src/view/screens/PreferencesHomeFeed.tsx:213 +#: src/view/screens/PreferencesHomeFeed.tsx:219 msgid "Show Quote Posts" msgstr "Angebotsposten zeigen" -#: src/view/screens/PreferencesHomeFeed.tsx:110 +#: src/view/screens/PreferencesHomeFeed.tsx:116 msgid "Show Replies" msgstr "Antworten zeigen" -#: src/view/screens/PreferencesThreads.tsx:94 +#: src/view/screens/PreferencesThreads.tsx:100 msgid "Show replies by people you follow before all other replies." msgstr "Antworten von Personen, denen Sie folgen, vor allen anderen Antworten anzeigen." -#: src/view/screens/PreferencesHomeFeed.tsx:179 +#: src/view/screens/PreferencesHomeFeed.tsx:185 msgid "Show Reposts" msgstr "Wiederholungen anzeigen" @@ -1983,7 +2010,7 @@ msgstr "Eintragen als {0}" msgid "Sign in as..." msgstr "Eintragen als..." -#: src/view/com/auth/login/LoginForm.tsx:130 +#: src/view/com/auth/login/LoginForm.tsx:134 msgid "Sign into" msgstr "Anmelden" @@ -2178,7 +2205,7 @@ msgstr "" msgid "Thread Preferences" msgstr "Einstellungen zum Thema" -#: src/view/screens/PreferencesThreads.tsx:113 +#: src/view/screens/PreferencesThreads.tsx:119 msgid "Threaded Mode" msgstr "Gewindemodus" @@ -2210,7 +2237,7 @@ msgstr "Stummschaltliste aufheben" #: src/view/com/auth/create/CreateAccount.tsx:65 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:117 +#: src/view/com/auth/login/LoginForm.tsx:120 msgid "Unable to contact your service. Please check your Internet connection." msgstr "Sie können Ihren Dienst nicht kontaktieren. Bitte überprüfen Sie Ihre Internetverbindung." @@ -2228,7 +2255,7 @@ msgstr "Konto freischalten" msgid "Undo repost" msgstr "Umbuchung rückgängig machen" -#: src/view/com/auth/create/state.ts:210 +#: src/view/com/auth/create/state.ts:216 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "Leider erfüllen Sie nicht die Voraussetzungen, um ein Konto zu erstellen." @@ -2284,8 +2311,8 @@ msgstr "Benutzerhandgriff" msgid "User Lists" msgstr "Benutzer Liste" -#: src/view/com/auth/login/LoginForm.tsx:170 -#: src/view/com/auth/login/LoginForm.tsx:188 +#: src/view/com/auth/login/LoginForm.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:192 msgid "Username or email address" msgstr "Benutzername oder E-Mail Adresse" @@ -2375,7 +2402,7 @@ msgstr "Wer kann antworten." msgid "Wide" msgstr "Breit" -#: src/view/com/composer/Composer.tsx:413 +#: src/view/com/composer/Composer.tsx:418 msgid "Write post" msgstr "Posten schreiben" @@ -2383,10 +2410,12 @@ msgstr "Posten schreiben" msgid "Write your reply" msgstr "Schreiben Sie Ihre Antwort" -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:192 -#: src/view/screens/PreferencesHomeFeed.tsx:227 -#: src/view/screens/PreferencesHomeFeed.tsx:262 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:198 +#: src/view/screens/PreferencesHomeFeed.tsx:233 +#: src/view/screens/PreferencesHomeFeed.tsx:268 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "Ja" diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index d1982e580a..4cb4554ac7 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -88,7 +88,7 @@ msgstr "" msgid "Accessibility" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:159 +#: src/view/com/auth/login/LoginForm.tsx:163 #: src/view/screens/Settings.tsx:286 msgid "Account" msgstr "" @@ -118,6 +118,7 @@ msgstr "" #: src/view/com/composer/photos/Gallery.tsx:119 #: src/view/com/composer/photos/Gallery.tsx:180 +#: src/view/com/modals/AltImage.tsx:93 msgid "Add alt text" msgstr "" @@ -130,11 +131,11 @@ msgstr "" msgid "Add details to report" msgstr "" -#: src/view/com/composer/Composer.tsx:442 +#: src/view/com/composer/Composer.tsx:447 msgid "Add link card" msgstr "" -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:450 msgid "Add link card:" msgstr "" @@ -155,7 +156,7 @@ msgstr "" msgid "Added to list" msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:164 +#: src/view/screens/PreferencesHomeFeed.tsx:170 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "" @@ -236,7 +237,7 @@ msgstr "" msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "" -#: src/view/com/composer/Composer.tsx:142 +#: src/view/com/composer/Composer.tsx:143 msgid "Are you sure you'd like to discard this draft?" msgstr "" @@ -259,7 +260,7 @@ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:141 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:166 -#: src/view/com/auth/login/LoginForm.tsx:250 +#: src/view/com/auth/login/LoginForm.tsx:254 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 #: src/view/com/modals/report/InputIssueDetails.tsx:46 #: src/view/com/post-thread/PostThread.tsx:388 @@ -373,9 +374,8 @@ 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/view/com/composer/Composer.tsx:289 -#: src/view/com/composer/Composer.tsx:292 -#: src/view/com/modals/AltImage.tsx:128 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Composer.tsx:297 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 #: src/view/com/modals/Confirm.tsx:88 @@ -399,8 +399,8 @@ msgid "Cancel account deletion" msgstr "" #: src/view/com/modals/AltImage.tsx:123 -msgid "Cancel add image alt text" -msgstr "" +#~ msgid "Cancel add image alt text" +#~ msgstr "" #: src/view/com/modals/ChangeHandle.tsx:149 msgid "Cancel change handle" @@ -533,8 +533,8 @@ msgstr "" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:225 -#: src/view/screens/PreferencesHomeFeed.tsx:299 -#: src/view/screens/PreferencesThreads.tsx:153 +#: src/view/screens/PreferencesHomeFeed.tsx:305 +#: src/view/screens/PreferencesThreads.tsx:159 msgid "Confirm" msgstr "" @@ -558,7 +558,7 @@ msgid "Confirmation code" msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:273 msgid "Connecting..." msgstr "" @@ -709,15 +709,15 @@ msgstr "" msgid "Developer Tools" msgstr "" -#: src/view/com/composer/Composer.tsx:210 +#: src/view/com/composer/Composer.tsx:211 msgid "Did you want to say anything?" msgstr "" -#: src/view/com/composer/Composer.tsx:143 +#: src/view/com/composer/Composer.tsx:144 msgid "Discard" msgstr "" -#: src/view/com/composer/Composer.tsx:137 +#: src/view/com/composer/Composer.tsx:138 msgid "Discard draft" msgstr "" @@ -742,6 +742,7 @@ msgid "Domain verified!" msgstr "" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/AltImage.tsx:115 #: src/view/com/modals/ContentFilteringSettings.tsx:88 #: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 @@ -751,8 +752,8 @@ msgstr "" #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:79 -#: src/view/screens/PreferencesHomeFeed.tsx:302 -#: src/view/screens/PreferencesThreads.tsx:156 +#: src/view/screens/PreferencesHomeFeed.tsx:308 +#: src/view/screens/PreferencesThreads.tsx:162 msgid "Done" msgstr "" @@ -813,7 +814,7 @@ msgstr "" msgid "Email:" msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:138 +#: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." msgstr "" @@ -904,7 +905,7 @@ msgstr "" msgid "Finding similar accounts..." msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:102 +#: src/view/screens/PreferencesHomeFeed.tsx:108 msgid "Fine-tune the content you see on your home screen." msgstr "" @@ -928,7 +929,7 @@ msgstr "" msgid "Followed users" msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:145 +#: src/view/screens/PreferencesHomeFeed.tsx:151 msgid "Followed users only" msgstr "" @@ -957,11 +958,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:232 +#: src/view/com/auth/login/LoginForm.tsx:236 msgid "Forgot" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Forgot password" msgstr "" @@ -993,7 +994,7 @@ msgid "Go Back" msgstr "" #: src/view/com/auth/login/ForgotPasswordForm.tsx:181 -#: src/view/com/auth/login/LoginForm.tsx:279 +#: src/view/com/auth/login/LoginForm.tsx:283 #: src/view/com/auth/login/SetNewPasswordForm.tsx:163 msgid "Go to next" msgstr "" @@ -1064,7 +1065,7 @@ msgid "Home" msgstr "" #: src/view/com/pager/FeedsTabBarMobile.tsx:96 -#: src/view/screens/PreferencesHomeFeed.tsx:95 +#: src/view/screens/PreferencesHomeFeed.tsx:101 #: src/view/screens/Settings.tsx:481 msgid "Home Feed Preferences" msgstr "" @@ -1104,7 +1105,7 @@ msgstr "" #~ msgid "In Your Network" #~ msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:115 msgid "Invalid username or password" msgstr "" @@ -1329,6 +1330,10 @@ msgstr "" #~ msgid "More post options" #~ msgstr "" +#: src/view/screens/PreferencesThreads.tsx:82 +msgid "Most-liked replies first" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:370 msgid "Mute Account" msgstr "" @@ -1413,10 +1418,14 @@ msgstr "" msgid "New Post" msgstr "" +#: src/view/screens/PreferencesThreads.tsx:79 +msgid "Newest replies first" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 -#: src/view/com/auth/login/LoginForm.tsx:282 +#: src/view/com/auth/login/LoginForm.tsx:286 #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -1427,10 +1436,12 @@ msgstr "" msgid "Next image" msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:191 -#: src/view/screens/PreferencesHomeFeed.tsx:226 -#: src/view/screens/PreferencesHomeFeed.tsx:263 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:197 +#: src/view/screens/PreferencesHomeFeed.tsx:232 +#: src/view/screens/PreferencesHomeFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "" @@ -1501,7 +1512,11 @@ msgstr "" msgid "Okay" msgstr "" -#: src/view/com/composer/Composer.tsx:358 +#: src/view/screens/PreferencesThreads.tsx:78 +msgid "Oldest replies first" +msgstr "" + +#: src/view/com/composer/Composer.tsx:363 msgid "One or more images is missing alt text." msgstr "" @@ -1509,6 +1524,11 @@ msgstr "" msgid "Only {0} can reply." msgstr "" +#: src/view/com/composer/Composer.tsx:468 +#: src/view/com/composer/Composer.tsx:469 +msgid "Open emoji picker" +msgstr "" + #: src/view/com/pager/FeedsTabBarMobile.tsx:76 msgid "Open navigation" msgstr "" @@ -1577,7 +1597,7 @@ msgstr "" #: src/view/com/auth/create/Step2.tsx:122 #: src/view/com/auth/create/Step2.tsx:132 -#: src/view/com/auth/login/LoginForm.tsx:217 +#: src/view/com/auth/login/LoginForm.tsx:221 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 #: src/view/com/modals/DeleteAccount.tsx:191 msgid "Password" @@ -1633,11 +1653,11 @@ msgstr "" #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "" -#: src/view/com/composer/Composer.tsx:214 +#: src/view/com/composer/Composer.tsx:215 msgid "Please wait for your link card to finish loading" msgstr "" -#: src/view/com/composer/Composer.tsx:341 +#: src/view/com/composer/Composer.tsx:346 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" @@ -1675,7 +1695,7 @@ msgstr "" msgid "Primary Language" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:91 +#: src/view/screens/PreferencesThreads.tsx:97 msgid "Prioritize Your Follows" msgstr "" @@ -1722,6 +1742,10 @@ msgstr "" msgid "Quote Post" msgstr "" +#: src/view/screens/PreferencesThreads.tsx:86 +msgid "Random (aka \"Poster's Roulette\")" +msgstr "" + #: src/view/com/modals/EditImage.tsx:236 msgid "Ratios" msgstr "" @@ -1794,7 +1818,7 @@ msgstr "" msgid "Replies to this thread are disabled" msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:135 +#: src/view/screens/PreferencesHomeFeed.tsx:141 msgid "Reply Filters" msgstr "" @@ -1841,9 +1865,9 @@ msgstr "" #~ msgid "Request to limit the visibility of my account" #~ msgstr "" -#: src/view/screens/Settings.tsx:382 -#~ msgid "Require alt text before posting" -#~ msgstr "" +#: src/view/screens/Settings.tsx:422 +msgid "Require alt text before posting" +msgstr "" #: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" @@ -1875,8 +1899,8 @@ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:163 #: src/view/com/auth/create/CreateAccount.tsx:167 -#: src/view/com/auth/login/LoginForm.tsx:259 -#: src/view/com/auth/login/LoginForm.tsx:262 +#: src/view/com/auth/login/LoginForm.tsx:263 +#: src/view/com/auth/login/LoginForm.tsx:266 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:65 msgid "Retry" @@ -1886,7 +1910,6 @@ msgstr "" #~ msgid "Retry change handle" #~ msgstr "" -#: src/view/com/modals/AltImage.tsx:115 #: src/view/com/modals/BirthDateSettings.tsx:94 #: src/view/com/modals/BirthDateSettings.tsx:97 #: src/view/com/modals/ChangeHandle.tsx:173 @@ -1958,7 +1981,7 @@ msgstr "" msgid "Select from an existing account" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:143 +#: src/view/com/auth/login/LoginForm.tsx:147 msgid "Select service" msgstr "" @@ -1999,23 +2022,23 @@ msgstr "" msgid "Set new password" msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:216 +#: src/view/screens/PreferencesHomeFeed.tsx:222 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:113 +#: src/view/screens/PreferencesHomeFeed.tsx:119 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:182 +#: src/view/screens/PreferencesHomeFeed.tsx:188 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "" -#: src/view/screens/PreferencesThreads.tsx:116 +#: 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 "" -#: src/view/screens/PreferencesHomeFeed.tsx:252 +#: src/view/screens/PreferencesHomeFeed.tsx:258 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." msgstr "" @@ -2053,23 +2076,23 @@ msgstr "" msgid "Show anyway" msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:249 +#: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:213 +#: src/view/screens/PreferencesHomeFeed.tsx:219 msgid "Show Quote Posts" msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:110 +#: src/view/screens/PreferencesHomeFeed.tsx:116 msgid "Show Replies" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:94 +#: src/view/screens/PreferencesThreads.tsx:100 msgid "Show replies by people you follow before all other replies." msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:179 +#: src/view/screens/PreferencesHomeFeed.tsx:185 msgid "Show Reposts" msgstr "" @@ -2106,7 +2129,7 @@ msgstr "" msgid "Sign in as..." msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:130 +#: src/view/com/auth/login/LoginForm.tsx:134 msgid "Sign into" msgstr "" @@ -2305,7 +2328,7 @@ msgstr "" msgid "Thread Preferences" msgstr "" -#: src/view/screens/PreferencesThreads.tsx:113 +#: src/view/screens/PreferencesThreads.tsx:119 msgid "Threaded Mode" msgstr "" @@ -2337,7 +2360,7 @@ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:65 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:117 +#: src/view/com/auth/login/LoginForm.tsx:120 msgid "Unable to contact your service. Please check your Internet connection." msgstr "" @@ -2355,7 +2378,7 @@ msgstr "" msgid "Undo repost" msgstr "" -#: src/view/com/auth/create/state.ts:210 +#: src/view/com/auth/create/state.ts:216 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "" @@ -2411,8 +2434,8 @@ msgstr "" msgid "User Lists" msgstr "" -#: src/view/com/auth/login/LoginForm.tsx:170 -#: src/view/com/auth/login/LoginForm.tsx:188 +#: src/view/com/auth/login/LoginForm.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:192 msgid "Username or email address" msgstr "" @@ -2514,7 +2537,7 @@ msgstr "" msgid "Wide" msgstr "" -#: src/view/com/composer/Composer.tsx:413 +#: src/view/com/composer/Composer.tsx:418 msgid "Write post" msgstr "" @@ -2522,10 +2545,12 @@ msgstr "" msgid "Write your reply" msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:192 -#: src/view/screens/PreferencesHomeFeed.tsx:227 -#: src/view/screens/PreferencesHomeFeed.tsx:262 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:198 +#: src/view/screens/PreferencesHomeFeed.tsx:233 +#: src/view/screens/PreferencesHomeFeed.tsx:268 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index f0c4ad2fa1..9cea00365c 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -136,7 +136,7 @@ msgstr "Agregar a mis noticias" msgid "Added to list" msgstr "Agregar a una lista" -#: src/view/screens/PreferencesHomeFeed.tsx:164 +#: src/view/screens/PreferencesHomeFeed.tsx:170 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." @@ -497,7 +497,7 @@ msgstr "Redactar la respuesta" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:225 -#: src/view/screens/PreferencesHomeFeed.tsx:299 +#: src/view/screens/PreferencesHomeFeed.tsx:305 #: src/view/screens/PreferencesThreads.tsx:159 msgid "Confirm" msgstr "Confirmar" @@ -712,7 +712,7 @@ msgstr "¡Dominio verificado!" #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:79 -#: src/view/screens/PreferencesHomeFeed.tsx:302 +#: src/view/screens/PreferencesHomeFeed.tsx:308 #: src/view/screens/PreferencesThreads.tsx:162 msgid "Done" msgstr "Listo" @@ -774,7 +774,7 @@ msgstr "Correo electrónico actualizado" msgid "Email:" msgstr "Correo electrónico:" -#: src/view/screens/PreferencesHomeFeed.tsx:138 +#: src/view/screens/PreferencesHomeFeed.tsx:144 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." @@ -865,7 +865,7 @@ msgstr "Encuentra usuarios con la herramienta de búsqueda de la derecha" msgid "Finding similar accounts..." msgstr "Encontrar cuentas similares..." -#: src/view/screens/PreferencesHomeFeed.tsx:102 +#: src/view/screens/PreferencesHomeFeed.tsx:108 msgid "Fine-tune the content you see on your home screen." msgstr "Ajusta el contenido que ves en tu pantalla de inicio." @@ -885,7 +885,7 @@ msgstr "Sigue a algunos usuarios para empezar. Podemos recomendarte más usuario msgid "Followed users" msgstr "Usuarios seguidos" -#: src/view/screens/PreferencesHomeFeed.tsx:145 +#: src/view/screens/PreferencesHomeFeed.tsx:151 msgid "Followed users only" msgstr "Solo usuarios seguidos" @@ -1013,7 +1013,7 @@ msgid "Home" msgstr "Página inicial" #: src/view/com/pager/FeedsTabBarMobile.tsx:96 -#: src/view/screens/PreferencesHomeFeed.tsx:95 +#: src/view/screens/PreferencesHomeFeed.tsx:101 #: src/view/screens/Settings.tsx:481 msgid "Home Feed Preferences" msgstr "Preferencias de noticias de la página inicial" @@ -1351,10 +1351,10 @@ msgstr "Siguiente" msgid "Next image" msgstr "Imagen nueva" -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:191 -#: src/view/screens/PreferencesHomeFeed.tsx:226 -#: src/view/screens/PreferencesHomeFeed.tsx:263 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:197 +#: src/view/screens/PreferencesHomeFeed.tsx:232 +#: src/view/screens/PreferencesHomeFeed.tsx:269 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" @@ -1706,7 +1706,7 @@ msgstr "Respuestas" msgid "Replies to this thread are disabled" msgstr "Las respuestas a este hilo están desactivadas" -#: src/view/screens/PreferencesHomeFeed.tsx:135 +#: src/view/screens/PreferencesHomeFeed.tsx:141 msgid "Reply Filters" msgstr "Filtros de respuestas" @@ -1749,6 +1749,10 @@ msgstr "Vuelto a publicar por" msgid "Request Change" msgstr "Solicitar un cambio" +#: src/view/screens/Settings.tsx:422 +msgid "Require alt text before posting" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" msgstr "Requerido para este proveedor" @@ -1890,15 +1894,15 @@ msgstr "Enviar el informe" msgid "Set new password" msgstr "Establecer la contraseña nueva" -#: src/view/screens/PreferencesHomeFeed.tsx:216 +#: src/view/screens/PreferencesHomeFeed.tsx:222 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Establece este ajuste en \"No\" para ocultar todas las publicaciones de citas de tus noticias. Las repeticiones seguirán siendo visibles." -#: src/view/screens/PreferencesHomeFeed.tsx:113 +#: src/view/screens/PreferencesHomeFeed.tsx:119 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Establece este ajuste en \"No\" para ocultar todas las respuestas de tus noticias." -#: src/view/screens/PreferencesHomeFeed.tsx:182 +#: src/view/screens/PreferencesHomeFeed.tsx:188 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Establece este ajuste en \"No\" para ocultar todas las veces que se han vuelto a publicar desde tus noticias." @@ -1906,7 +1910,7 @@ msgstr "Establece este ajuste en \"No\" para ocultar todas las veces que se han msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Establece este ajuste en \"Sí\" para mostrar las respuestas en una vista de hilos. Se trata de una función experimental." -#: src/view/screens/PreferencesHomeFeed.tsx:252 +#: src/view/screens/PreferencesHomeFeed.tsx:258 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." msgstr "Establece este ajuste en \"Sí\" para mostrar muestras de tus noticias guardadas en tu siguiente canal de noticias. Se trata de una función experimental." @@ -1940,15 +1944,15 @@ msgstr "Mostrar" msgid "Show anyway" msgstr "Mostrar de todas maneras" -#: src/view/screens/PreferencesHomeFeed.tsx:249 +#: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "Mostrar publicaciones de mis noticias" -#: src/view/screens/PreferencesHomeFeed.tsx:213 +#: src/view/screens/PreferencesHomeFeed.tsx:219 msgid "Show Quote Posts" msgstr "Mostrar publicaciones de citas" -#: src/view/screens/PreferencesHomeFeed.tsx:110 +#: src/view/screens/PreferencesHomeFeed.tsx:116 msgid "Show Replies" msgstr "Mostrar respuestas" @@ -1956,7 +1960,7 @@ msgstr "Mostrar respuestas" msgid "Show replies by people you follow before all other replies." msgstr "Mostrar las respuestas de las personas a quienes sigues antes que el resto de respuestas." -#: src/view/screens/PreferencesHomeFeed.tsx:179 +#: src/view/screens/PreferencesHomeFeed.tsx:185 msgid "Show Reposts" msgstr "Mostrar publicaciones que se han publicado nuevamente" @@ -2385,10 +2389,10 @@ msgstr "Redactar una publicación" msgid "Write your reply" msgstr "Redactar tu respuesta" -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:192 -#: src/view/screens/PreferencesHomeFeed.tsx:227 -#: src/view/screens/PreferencesHomeFeed.tsx:262 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:198 +#: src/view/screens/PreferencesHomeFeed.tsx:233 +#: src/view/screens/PreferencesHomeFeed.tsx:268 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index 4ad9d8e7cb..c4f30087fc 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -136,7 +136,7 @@ msgstr "Ajouter à mes fils d’actu" msgid "Added to list" msgstr "Ajouté à la liste" -#: src/view/screens/PreferencesHomeFeed.tsx:164 +#: src/view/screens/PreferencesHomeFeed.tsx:170 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’actualité." @@ -500,7 +500,7 @@ msgstr "Rédiger une réponse" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:225 -#: src/view/screens/PreferencesHomeFeed.tsx:299 +#: src/view/screens/PreferencesHomeFeed.tsx:305 #: src/view/screens/PreferencesThreads.tsx:159 msgid "Confirm" msgstr "Confirmer" @@ -715,7 +715,7 @@ msgstr "Domaine vérifié !" #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:79 -#: src/view/screens/PreferencesHomeFeed.tsx:302 +#: src/view/screens/PreferencesHomeFeed.tsx:308 #: src/view/screens/PreferencesThreads.tsx:162 msgid "Done" msgstr "Terminé" @@ -777,7 +777,7 @@ msgstr "E-mail mis à jour" msgid "Email:" msgstr "E-mail :" -#: src/view/screens/PreferencesHomeFeed.tsx:138 +#: src/view/screens/PreferencesHomeFeed.tsx:144 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." @@ -868,7 +868,7 @@ msgstr "Trouvez des utilisateurs à l’aide de l’outil de recherche, à droit msgid "Finding similar accounts..." msgstr "Recherche de comptes similaires…" -#: src/view/screens/PreferencesHomeFeed.tsx:102 +#: src/view/screens/PreferencesHomeFeed.tsx:108 msgid "Fine-tune the content you see on your home screen." msgstr "Affinez le contenu de votre écran d’accueil." @@ -888,7 +888,7 @@ msgstr "Suivez quelques utilisateurs pour commencer. Nous pouvons vous recommand msgid "Followed users" msgstr "Utilisateurs suivis" -#: src/view/screens/PreferencesHomeFeed.tsx:145 +#: src/view/screens/PreferencesHomeFeed.tsx:151 msgid "Followed users only" msgstr "Utilisateurs suivis uniquement" @@ -1016,7 +1016,7 @@ msgid "Home" msgstr "Accueil" #: src/view/com/pager/FeedsTabBarMobile.tsx:96 -#: src/view/screens/PreferencesHomeFeed.tsx:95 +#: src/view/screens/PreferencesHomeFeed.tsx:101 #: src/view/screens/Settings.tsx:481 msgid "Home Feed Preferences" msgstr "Préférences de fils d’actu de l’accueil" @@ -1336,10 +1336,6 @@ msgstr "Nouveau post" msgid "New Post" msgstr "Nouveau post" -#: src/view/screens/PreferencesThreads.tsx:79 -msgid "Newest replies first" -msgstr "Réponses les plus récentes en premier" - #: src/view/screens/PreferencesThreads.tsx:79 msgid "Newest replies first" msgstr "" @@ -1358,10 +1354,10 @@ msgstr "Suivant" msgid "Next image" msgstr "Image suivante" -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:191 -#: src/view/screens/PreferencesHomeFeed.tsx:226 -#: src/view/screens/PreferencesHomeFeed.tsx:263 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:197 +#: src/view/screens/PreferencesHomeFeed.tsx:232 +#: src/view/screens/PreferencesHomeFeed.tsx:269 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" @@ -1645,10 +1641,6 @@ msgstr "Citer le post" msgid "Quote Post" msgstr "Citer un post" -#: src/view/screens/PreferencesThreads.tsx:86 -msgid "Random (aka \"Poster's Roulette\")" -msgstr "Aléatoire" - #: src/view/screens/PreferencesThreads.tsx:86 msgid "Random (aka \"Poster's Roulette\")" msgstr "" @@ -1720,7 +1712,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/screens/PreferencesHomeFeed.tsx:135 +#: src/view/screens/PreferencesHomeFeed.tsx:141 msgid "Reply Filters" msgstr "Filtres de réponse" @@ -1908,15 +1900,15 @@ msgstr "Envoyer le rapport" msgid "Set new password" msgstr "Définir un nouveau mot de passe" -#: src/view/screens/PreferencesHomeFeed.tsx:216 +#: src/view/screens/PreferencesHomeFeed.tsx:222 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Choisissez « Non » pour cacher toutes les citations sur votre fils d’actu. Les reposts seront toujours visibles." -#: src/view/screens/PreferencesHomeFeed.tsx:113 +#: src/view/screens/PreferencesHomeFeed.tsx:119 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Choisissez « Non » pour cacher toutes les réponses dans votre fils d’actu." -#: src/view/screens/PreferencesHomeFeed.tsx:182 +#: src/view/screens/PreferencesHomeFeed.tsx:188 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Choisissez « Non » pour cacher toutes les reposts de votre fils d’actu." @@ -1924,7 +1916,7 @@ msgstr "Choisissez « Non » pour cacher toutes les reposts de votre fils d’ msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Choisissez « Oui » pour afficher les réponses dans un fil de discussion. C’est une fonctionnalité expérimentale." -#: src/view/screens/PreferencesHomeFeed.tsx:252 +#: src/view/screens/PreferencesHomeFeed.tsx:258 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." msgstr "Choisissez « Oui » pour afficher des échantillons de vos fils d’actu enregistrés dans votre fils d’actu suivant. C’est une fonctionnalité expérimentale." @@ -1958,15 +1950,15 @@ msgstr "Afficher" msgid "Show anyway" msgstr "Afficher quand même" -#: src/view/screens/PreferencesHomeFeed.tsx:249 +#: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "Afficher les posts de mes fils d’actu" -#: src/view/screens/PreferencesHomeFeed.tsx:213 +#: src/view/screens/PreferencesHomeFeed.tsx:219 msgid "Show Quote Posts" msgstr "Afficher les posts de citation" -#: src/view/screens/PreferencesHomeFeed.tsx:110 +#: src/view/screens/PreferencesHomeFeed.tsx:116 msgid "Show Replies" msgstr "Afficher les réponses" @@ -1974,7 +1966,7 @@ msgstr "Afficher les réponses" msgid "Show replies by people you follow before all other replies." msgstr "Afficher les réponses des personnes que vous suivez avant toutes les autres réponses." -#: src/view/screens/PreferencesHomeFeed.tsx:179 +#: src/view/screens/PreferencesHomeFeed.tsx:185 msgid "Show Reposts" msgstr "Afficher les reposts" @@ -2406,10 +2398,10 @@ msgstr "Rédiger un post" msgid "Write your reply" msgstr "Rédigez votre réponse" -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:192 -#: src/view/screens/PreferencesHomeFeed.tsx:227 -#: src/view/screens/PreferencesHomeFeed.tsx:262 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:198 +#: src/view/screens/PreferencesHomeFeed.tsx:233 +#: src/view/screens/PreferencesHomeFeed.tsx:268 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index ab67ff125b..2f2244d52e 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -88,7 +88,7 @@ msgstr "ऐप का एक नया संस्करण उपलब्ध msgid "Accessibility" msgstr "प्रवेर्शयोग्यता" -#: src/view/com/auth/login/LoginForm.tsx:159 +#: src/view/com/auth/login/LoginForm.tsx:163 #: src/view/screens/Settings.tsx:286 msgid "Account" msgstr "अकाउंट" @@ -118,6 +118,7 @@ msgstr "अकाउंट जोड़ें" #: src/view/com/composer/photos/Gallery.tsx:119 #: src/view/com/composer/photos/Gallery.tsx:180 +#: src/view/com/modals/AltImage.tsx:93 msgid "Add alt text" msgstr "इस फ़ोटो में विवरण जोड़ें" @@ -130,11 +131,11 @@ msgstr "विवरण जोड़ें" msgid "Add details to report" msgstr "रिपोर्ट करने के लिए विवरण जोड़ें" -#: src/view/com/composer/Composer.tsx:442 +#: src/view/com/composer/Composer.tsx:447 msgid "Add link card" msgstr "लिंक कार्ड जोड़ें" -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:450 msgid "Add link card:" msgstr "लिंक कार्ड जोड़ें:" @@ -155,7 +156,7 @@ msgstr "इस फ़ीड को सहेजें" msgid "Added to list" msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:164 +#: src/view/screens/PreferencesHomeFeed.tsx:170 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "पसंद की संख्या को समायोजित करें उत्तर को आपके फ़ीड में दिखाया जाना चाहिए।।" @@ -236,7 +237,7 @@ msgstr "दिखावट" msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "क्या आप वाकई ऐप पासवर्ड \"{name}\" हटाना चाहते हैं?" -#: src/view/com/composer/Composer.tsx:142 +#: src/view/com/composer/Composer.tsx:143 msgid "Are you sure you'd like to discard this draft?" msgstr "क्या आप वाकई इस ड्राफ्ट को हटाना करना चाहेंगे?" @@ -259,7 +260,7 @@ msgstr "कलात्मक या गैर-कामुक नग्नत #: src/view/com/auth/create/CreateAccount.tsx:141 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:166 -#: src/view/com/auth/login/LoginForm.tsx:250 +#: src/view/com/auth/login/LoginForm.tsx:254 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 #: src/view/com/modals/report/InputIssueDetails.tsx:46 #: src/view/com/post-thread/PostThread.tsx:388 @@ -373,9 +374,8 @@ 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/view/com/composer/Composer.tsx:289 -#: src/view/com/composer/Composer.tsx:292 -#: src/view/com/modals/AltImage.tsx:128 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Composer.tsx:297 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 #: src/view/com/modals/Confirm.tsx:88 @@ -399,8 +399,8 @@ msgid "Cancel account deletion" msgstr "अकाउंट बंद मत करो" #: src/view/com/modals/AltImage.tsx:123 -msgid "Cancel add image alt text" -msgstr "ऑल्ट टेक्स्ट मत जोड़ें" +#~ msgid "Cancel add image alt text" +#~ msgstr "ऑल्ट टेक्स्ट मत जोड़ें" #: src/view/com/modals/ChangeHandle.tsx:149 msgid "Cancel change handle" @@ -529,8 +529,8 @@ msgstr "जवाब लिखो" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:225 -#: src/view/screens/PreferencesHomeFeed.tsx:299 -#: src/view/screens/PreferencesThreads.tsx:153 +#: src/view/screens/PreferencesHomeFeed.tsx:305 +#: src/view/screens/PreferencesThreads.tsx:159 msgid "Confirm" msgstr "हो गया" @@ -554,7 +554,7 @@ msgid "Confirmation code" msgstr "OTP कोड" #: src/view/com/auth/create/CreateAccount.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:273 msgid "Connecting..." msgstr "कनेक्टिंग ..।" @@ -705,15 +705,15 @@ msgstr "देव सर्वर" msgid "Developer Tools" msgstr "डेवलपर उपकरण" -#: src/view/com/composer/Composer.tsx:210 +#: src/view/com/composer/Composer.tsx:211 msgid "Did you want to say anything?" msgstr "" -#: src/view/com/composer/Composer.tsx:143 +#: src/view/com/composer/Composer.tsx:144 msgid "Discard" msgstr "" -#: src/view/com/composer/Composer.tsx:137 +#: src/view/com/composer/Composer.tsx:138 msgid "Discard draft" msgstr "ड्राफ्ट हटाएं" @@ -738,6 +738,7 @@ msgid "Domain verified!" msgstr "डोमेन सत्यापित!" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/AltImage.tsx:115 #: src/view/com/modals/ContentFilteringSettings.tsx:88 #: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 @@ -747,8 +748,8 @@ msgstr "डोमेन सत्यापित!" #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:79 -#: src/view/screens/PreferencesHomeFeed.tsx:302 -#: src/view/screens/PreferencesThreads.tsx:156 +#: src/view/screens/PreferencesHomeFeed.tsx:308 +#: src/view/screens/PreferencesThreads.tsx:162 msgid "Done" msgstr "खत्म" @@ -809,7 +810,7 @@ msgstr "ईमेल अपडेट किया गया" msgid "Email:" msgstr "ईमेल:" -#: src/view/screens/PreferencesHomeFeed.tsx:138 +#: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." msgstr "इस सेटिंग को केवल उन लोगों के बीच जवाब देखने में सक्षम करें जिन्हें आप फॉलो करते हैं।।" @@ -900,7 +901,7 @@ msgstr "" msgid "Finding similar accounts..." msgstr "मिलते-जुलते खाते ढूँढना" -#: src/view/screens/PreferencesHomeFeed.tsx:102 +#: src/view/screens/PreferencesHomeFeed.tsx:108 msgid "Fine-tune the content you see on your home screen." msgstr "अपने मुख्य फ़ीड की स्क्रीन पर दिखाई देने वाली सामग्री को ठीक करें।।" @@ -920,7 +921,7 @@ msgstr "आरंभ करने के लिए कुछ उपयोगक msgid "Followed users" msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:145 +#: src/view/screens/PreferencesHomeFeed.tsx:151 msgid "Followed users only" msgstr "केवल वे यूजर को फ़ॉलो किया गया" @@ -949,11 +950,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:232 +#: src/view/com/auth/login/LoginForm.tsx:236 msgid "Forgot" msgstr "भूल" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Forgot password" msgstr "पासवर्ड भूल गए" @@ -985,7 +986,7 @@ msgid "Go Back" msgstr "वापस जाओ" #: src/view/com/auth/login/ForgotPasswordForm.tsx:181 -#: src/view/com/auth/login/LoginForm.tsx:279 +#: src/view/com/auth/login/LoginForm.tsx:283 #: src/view/com/auth/login/SetNewPasswordForm.tsx:163 msgid "Go to next" msgstr "अगला" @@ -1056,7 +1057,7 @@ msgid "Home" msgstr "होम फीड" #: src/view/com/pager/FeedsTabBarMobile.tsx:96 -#: src/view/screens/PreferencesHomeFeed.tsx:95 +#: src/view/screens/PreferencesHomeFeed.tsx:101 #: src/view/screens/Settings.tsx:481 msgid "Home Feed Preferences" msgstr "होम फ़ीड प्राथमिकताएं" @@ -1096,7 +1097,7 @@ msgstr "छवि विकल्प" #~ msgid "In Your Network" #~ msgstr "आपके नेटवर्क में" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:115 msgid "Invalid username or password" msgstr "अवैध उपयोगकर्ता नाम या पासवर्ड" @@ -1321,6 +1322,10 @@ msgstr "अधिक विकल्प" #~ msgid "More post options" #~ msgstr "पोस्ट विकल्प" +#: src/view/screens/PreferencesThreads.tsx:82 +msgid "Most-liked replies first" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:370 msgid "Mute Account" msgstr "खाता म्यूट करें" @@ -1405,10 +1410,14 @@ msgstr "नई पोस्ट" msgid "New Post" msgstr "नई पोस्ट" +#: src/view/screens/PreferencesThreads.tsx:79 +msgid "Newest replies first" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 -#: src/view/com/auth/login/LoginForm.tsx:282 +#: src/view/com/auth/login/LoginForm.tsx:286 #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -1419,10 +1428,12 @@ msgstr "अगला" msgid "Next image" msgstr "अगली फोटो" -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:191 -#: src/view/screens/PreferencesHomeFeed.tsx:226 -#: src/view/screens/PreferencesHomeFeed.tsx:263 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:197 +#: src/view/screens/PreferencesHomeFeed.tsx:232 +#: src/view/screens/PreferencesHomeFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "नहीं" @@ -1493,7 +1504,11 @@ msgstr "अरे नहीं!" msgid "Okay" msgstr "ठीक है" -#: src/view/com/composer/Composer.tsx:358 +#: src/view/screens/PreferencesThreads.tsx:78 +msgid "Oldest replies first" +msgstr "" + +#: src/view/com/composer/Composer.tsx:363 msgid "One or more images is missing alt text." msgstr "एक या अधिक छवियाँ alt पाठ याद आती हैं।।" @@ -1501,6 +1516,11 @@ msgstr "एक या अधिक छवियाँ alt पाठ याद msgid "Only {0} can reply." msgstr "" +#: src/view/com/composer/Composer.tsx:468 +#: src/view/com/composer/Composer.tsx:469 +msgid "Open emoji picker" +msgstr "" + #: src/view/com/pager/FeedsTabBarMobile.tsx:76 msgid "Open navigation" msgstr "ओपन नेविगेशन" @@ -1569,7 +1589,7 @@ msgstr "पृष्ठ नहीं मिला" #: src/view/com/auth/create/Step2.tsx:122 #: src/view/com/auth/create/Step2.tsx:132 -#: src/view/com/auth/login/LoginForm.tsx:217 +#: src/view/com/auth/login/LoginForm.tsx:221 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 #: src/view/com/modals/DeleteAccount.tsx:191 msgid "Password" @@ -1625,11 +1645,11 @@ msgstr "" #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "" -#: src/view/com/composer/Composer.tsx:214 +#: src/view/com/composer/Composer.tsx:215 msgid "Please wait for your link card to finish loading" msgstr "" -#: src/view/com/composer/Composer.tsx:341 +#: src/view/com/composer/Composer.tsx:346 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" @@ -1667,7 +1687,7 @@ msgstr "पिछली छवि" msgid "Primary Language" msgstr "प्राथमिक भाषा" -#: src/view/screens/PreferencesThreads.tsx:91 +#: src/view/screens/PreferencesThreads.tsx:97 msgid "Prioritize Your Follows" msgstr "अपने फ़ॉलोअर्स को प्राथमिकता दें" @@ -1714,6 +1734,10 @@ msgstr "कोटे पोस्ट" msgid "Quote Post" msgstr "कोटे पोस्ट" +#: src/view/screens/PreferencesThreads.tsx:86 +msgid "Random (aka \"Poster's Roulette\")" +msgstr "" + #: src/view/com/modals/EditImage.tsx:236 msgid "Ratios" msgstr "अनुपात" @@ -1786,7 +1810,7 @@ msgstr "" msgid "Replies to this thread are disabled" msgstr "" -#: src/view/screens/PreferencesHomeFeed.tsx:135 +#: src/view/screens/PreferencesHomeFeed.tsx:141 msgid "Reply Filters" msgstr "फिल्टर" @@ -1833,9 +1857,9 @@ msgstr "अनुरोध बदलें" #~ msgid "Request to limit the visibility of my account" #~ msgstr "" -#: src/view/screens/Settings.tsx:382 -#~ msgid "Require alt text before posting" -#~ msgstr "पोस्ट करने से पहले वैकल्पिक टेक्स्ट की आवश्यकता है" +#: src/view/screens/Settings.tsx:422 +msgid "Require alt text before posting" +msgstr "पोस्ट करने से पहले वैकल्पिक टेक्स्ट की आवश्यकता है" #: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" @@ -1867,8 +1891,8 @@ msgstr "प्राथमिकताओं की स्थिति को #: src/view/com/auth/create/CreateAccount.tsx:163 #: src/view/com/auth/create/CreateAccount.tsx:167 -#: src/view/com/auth/login/LoginForm.tsx:259 -#: src/view/com/auth/login/LoginForm.tsx:262 +#: src/view/com/auth/login/LoginForm.tsx:263 +#: src/view/com/auth/login/LoginForm.tsx:266 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:65 msgid "Retry" @@ -1878,7 +1902,6 @@ msgstr "फिर से कोशिश करो" #~ msgid "Retry change handle" #~ msgstr "हैंडल बदलना फिर से कोशिश करो" -#: src/view/com/modals/AltImage.tsx:115 #: src/view/com/modals/BirthDateSettings.tsx:94 #: src/view/com/modals/BirthDateSettings.tsx:97 #: src/view/com/modals/ChangeHandle.tsx:173 @@ -1950,7 +1973,7 @@ msgstr "Bluesky Social का चयन करें" msgid "Select from an existing account" msgstr "मौजूदा खाते से चुनें" -#: src/view/com/auth/login/LoginForm.tsx:143 +#: src/view/com/auth/login/LoginForm.tsx:147 msgid "Select service" msgstr "सेवा चुनें" @@ -1991,23 +2014,23 @@ msgstr "रिपोर्ट भेजें" msgid "Set new password" msgstr "नया पासवर्ड सेट करें" -#: src/view/screens/PreferencesHomeFeed.tsx:216 +#: src/view/screens/PreferencesHomeFeed.tsx:222 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "अपने फ़ीड से सभी उद्धरण पदों को छिपाने के लिए इस सेटिंग को \"नहीं\" में सेट करें। Reposts अभी भी दिखाई देगा।।" -#: src/view/screens/PreferencesHomeFeed.tsx:113 +#: src/view/screens/PreferencesHomeFeed.tsx:119 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "इस सेटिंग को अपने फ़ीड से सभी उत्तरों को छिपाने के लिए \"नहीं\" पर सेट करें।।" -#: src/view/screens/PreferencesHomeFeed.tsx:182 +#: src/view/screens/PreferencesHomeFeed.tsx:188 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "इस सेटिंग को अपने फ़ीड से सभी पोस्ट छिपाने के लिए \"नहीं\" करने के लिए सेट करें।।" -#: src/view/screens/PreferencesThreads.tsx:116 +#: 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 "इस सेटिंग को \"हाँ\" में सेट करने के लिए एक थ्रेडेड व्यू में जवाब दिखाने के लिए। यह एक प्रयोगात्मक विशेषता है।।" -#: src/view/screens/PreferencesHomeFeed.tsx:252 +#: src/view/screens/PreferencesHomeFeed.tsx:258 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." msgstr "इस सेटिंग को अपने निम्नलिखित फ़ीड में अपने सहेजे गए फ़ीड के नमूने दिखाने के लिए \"हाँ\" पर सेट करें। यह एक प्रयोगात्मक विशेषता है।।" @@ -2045,23 +2068,23 @@ msgstr "दिखाओ" msgid "Show anyway" msgstr "दिखाओ" -#: src/view/screens/PreferencesHomeFeed.tsx:249 +#: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "मेरी फीड से पोस्ट दिखाएं" -#: src/view/screens/PreferencesHomeFeed.tsx:213 +#: src/view/screens/PreferencesHomeFeed.tsx:219 msgid "Show Quote Posts" msgstr "उद्धरण पोस्ट दिखाओ" -#: src/view/screens/PreferencesHomeFeed.tsx:110 +#: src/view/screens/PreferencesHomeFeed.tsx:116 msgid "Show Replies" msgstr "उत्तर दिखाएँ" -#: src/view/screens/PreferencesThreads.tsx:94 +#: src/view/screens/PreferencesThreads.tsx:100 msgid "Show replies by people you follow before all other replies." msgstr "अन्य सभी उत्तरों से पहले उन लोगों के उत्तर दिखाएं जिन्हें आप फ़ॉलो करते हैं।" -#: src/view/screens/PreferencesHomeFeed.tsx:179 +#: src/view/screens/PreferencesHomeFeed.tsx:185 msgid "Show Reposts" msgstr "रीपोस्ट दिखाएँ" @@ -2098,7 +2121,7 @@ msgstr "{0} के रूप में साइन इन करें" msgid "Sign in as..." msgstr "... के रूप में साइन इन करें" -#: src/view/com/auth/login/LoginForm.tsx:130 +#: src/view/com/auth/login/LoginForm.tsx:134 msgid "Sign into" msgstr "साइन इन करें" @@ -2297,7 +2320,7 @@ msgstr "" msgid "Thread Preferences" msgstr "थ्रेड प्राथमिकता" -#: src/view/screens/PreferencesThreads.tsx:113 +#: src/view/screens/PreferencesThreads.tsx:119 msgid "Threaded Mode" msgstr "थ्रेड मोड" @@ -2329,7 +2352,7 @@ msgstr "" #: src/view/com/auth/create/CreateAccount.tsx:65 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:117 +#: src/view/com/auth/login/LoginForm.tsx:120 msgid "Unable to contact your service. Please check your Internet connection." msgstr "आपकी सेवा से संपर्क करने में असमर्थ। कृपया अपने इंटरनेट कनेक्शन की जांच करें।।" @@ -2347,7 +2370,7 @@ msgstr "अनब्लॉक खाता" msgid "Undo repost" msgstr "पुनः पोस्ट पूर्ववत करें" -#: src/view/com/auth/create/state.ts:210 +#: src/view/com/auth/create/state.ts:216 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "" @@ -2403,8 +2426,8 @@ msgstr "यूजर हैंडल" msgid "User Lists" msgstr "लोग सूचियाँ" -#: src/view/com/auth/login/LoginForm.tsx:170 -#: src/view/com/auth/login/LoginForm.tsx:188 +#: src/view/com/auth/login/LoginForm.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:192 msgid "Username or email address" msgstr "यूजर नाम या ईमेल पता" @@ -2506,7 +2529,7 @@ msgstr "" msgid "Wide" msgstr "चौड़ा" -#: src/view/com/composer/Composer.tsx:413 +#: src/view/com/composer/Composer.tsx:418 msgid "Write post" msgstr "पोस्ट लिखो" @@ -2514,10 +2537,12 @@ msgstr "पोस्ट लिखो" msgid "Write your reply" msgstr "अपना जवाब दें" -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:192 -#: src/view/screens/PreferencesHomeFeed.tsx:227 -#: src/view/screens/PreferencesHomeFeed.tsx:262 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:198 +#: src/view/screens/PreferencesHomeFeed.tsx:233 +#: src/view/screens/PreferencesHomeFeed.tsx:268 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "हाँ" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index 15140b2292..5b9f58061e 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -68,7 +68,7 @@ msgstr "新しいバージョンのアプリが利用可能です。継続して msgid "Accessibility" msgstr "アクセシビリティ" -#: src/view/com/auth/login/LoginForm.tsx:159 +#: src/view/com/auth/login/LoginForm.tsx:163 #: src/view/screens/Settings.tsx:286 msgid "Account" msgstr "アカウント" @@ -98,6 +98,7 @@ msgstr "アカウントを追加" #: src/view/com/composer/photos/Gallery.tsx:119 #: src/view/com/composer/photos/Gallery.tsx:180 +#: src/view/com/modals/AltImage.tsx:93 msgid "Add alt text" msgstr "ALTテキストを追加" @@ -110,11 +111,11 @@ msgstr "詳細を追加" msgid "Add details to report" msgstr "レポートに詳細を追加" -#: src/view/com/composer/Composer.tsx:442 +#: src/view/com/composer/Composer.tsx:447 msgid "Add link card" msgstr "リンクカードを追加" -#: src/view/com/composer/Composer.tsx:445 +#: src/view/com/composer/Composer.tsx:450 msgid "Add link card:" msgstr "リンクカードを追加:" @@ -135,7 +136,7 @@ msgstr "マイフィードに追加" msgid "Added to list" msgstr "リストに追加" -#: src/view/screens/PreferencesHomeFeed.tsx:164 +#: src/view/screens/PreferencesHomeFeed.tsx:170 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "返信がフィードに表示されるために必要な「いいね」の数を調整します。" @@ -212,7 +213,7 @@ msgstr "外観" msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "本当にアプリパスワード「{name}」を削除しますか?" -#: src/view/com/composer/Composer.tsx:142 +#: src/view/com/composer/Composer.tsx:143 msgid "Are you sure you'd like to discard this draft?" msgstr "本当にこの下書きを破棄しますか?" @@ -231,7 +232,7 @@ msgstr "芸術的または性的ではないヌード。" #: src/view/com/auth/create/CreateAccount.tsx:141 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:166 -#: src/view/com/auth/login/LoginForm.tsx:250 +#: src/view/com/auth/login/LoginForm.tsx:254 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 #: src/view/com/modals/report/InputIssueDetails.tsx:46 #: src/view/com/post-thread/PostThread.tsx:388 @@ -345,9 +346,8 @@ 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/view/com/composer/Composer.tsx:289 -#: src/view/com/composer/Composer.tsx:292 -#: src/view/com/modals/AltImage.tsx:128 +#: src/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Composer.tsx:297 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 #: src/view/com/modals/Confirm.tsx:88 @@ -371,8 +371,8 @@ msgid "Cancel account deletion" msgstr "アカウントの削除をキャンセル" #: src/view/com/modals/AltImage.tsx:123 -msgid "Cancel add image alt text" -msgstr "画像のALTテキストの追加をキャンセル" +#~ msgid "Cancel add image alt text" +#~ msgstr "画像のALTテキストの追加をキャンセル" #: src/view/com/modals/ChangeHandle.tsx:149 msgid "Cancel change handle" @@ -501,8 +501,8 @@ msgstr "返信を作成" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:225 -#: src/view/screens/PreferencesHomeFeed.tsx:299 -#: src/view/screens/PreferencesThreads.tsx:153 +#: src/view/screens/PreferencesHomeFeed.tsx:305 +#: src/view/screens/PreferencesThreads.tsx:159 msgid "Confirm" msgstr "確認" @@ -526,7 +526,7 @@ msgid "Confirmation code" msgstr "確認コード" #: src/view/com/auth/create/CreateAccount.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:273 msgid "Connecting..." msgstr "接続中..." @@ -673,15 +673,15 @@ msgstr "開発者サーバー" msgid "Developer Tools" msgstr "開発者ツール" -#: src/view/com/composer/Composer.tsx:210 +#: src/view/com/composer/Composer.tsx:211 msgid "Did you want to say anything?" msgstr "" -#: src/view/com/composer/Composer.tsx:143 +#: src/view/com/composer/Composer.tsx:144 msgid "Discard" msgstr "破棄" -#: src/view/com/composer/Composer.tsx:137 +#: src/view/com/composer/Composer.tsx:138 msgid "Discard draft" msgstr "下書きを破棄" @@ -706,6 +706,7 @@ msgid "Domain verified!" msgstr "ドメインを確認しました!" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/AltImage.tsx:115 #: src/view/com/modals/ContentFilteringSettings.tsx:88 #: src/view/com/modals/ContentFilteringSettings.tsx:96 #: src/view/com/modals/crop-image/CropImage.web.tsx:152 @@ -715,8 +716,8 @@ msgstr "ドメインを確認しました!" #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:79 -#: src/view/screens/PreferencesHomeFeed.tsx:302 -#: src/view/screens/PreferencesThreads.tsx:156 +#: src/view/screens/PreferencesHomeFeed.tsx:308 +#: src/view/screens/PreferencesThreads.tsx:162 msgid "Done" msgstr "完了" @@ -777,7 +778,7 @@ msgstr "メールアドレスを更新" msgid "Email:" msgstr "メールアドレス:" -#: src/view/screens/PreferencesHomeFeed.tsx:138 +#: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." msgstr "この設定を有効にすると、自分がフォローしているユーザーからの返信だけが表示されます。" @@ -868,7 +869,7 @@ msgstr "右側の検索ツールでユーザーを検索" msgid "Finding similar accounts..." msgstr "似ているアカウントを検索中..." -#: src/view/screens/PreferencesHomeFeed.tsx:102 +#: src/view/screens/PreferencesHomeFeed.tsx:108 msgid "Fine-tune the content you see on your home screen." msgstr "ホーム画面に表示されるコンテンツを微調整します。" @@ -888,7 +889,7 @@ msgstr "何人かのユーザーをフォローして開始します。興味を msgid "Followed users" msgstr "自分がフォローしているユーザー" -#: src/view/screens/PreferencesHomeFeed.tsx:145 +#: src/view/screens/PreferencesHomeFeed.tsx:151 msgid "Followed users only" msgstr "自分がフォローしているユーザーのみ" @@ -917,11 +918,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:232 +#: src/view/com/auth/login/LoginForm.tsx:236 msgid "Forgot" msgstr "忘れた" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Forgot password" msgstr "パスワードを忘れた" @@ -953,7 +954,7 @@ msgid "Go Back" msgstr "戻る" #: src/view/com/auth/login/ForgotPasswordForm.tsx:181 -#: src/view/com/auth/login/LoginForm.tsx:279 +#: src/view/com/auth/login/LoginForm.tsx:283 #: src/view/com/auth/login/SetNewPasswordForm.tsx:163 msgid "Go to next" msgstr "次へ" @@ -1016,7 +1017,7 @@ msgid "Home" msgstr "ホーム" #: src/view/com/pager/FeedsTabBarMobile.tsx:96 -#: src/view/screens/PreferencesHomeFeed.tsx:95 +#: src/view/screens/PreferencesHomeFeed.tsx:101 #: src/view/screens/Settings.tsx:481 msgid "Home Feed Preferences" msgstr "ホームフィードの設定" @@ -1051,7 +1052,7 @@ msgstr "画像のALTテキスト" msgid "Image options" msgstr "画像のオプション" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:115 msgid "Invalid username or password" msgstr "無効なユーザー名またはパスワード" @@ -1264,6 +1265,10 @@ msgstr "その他のフィード" msgid "More options" msgstr "その他のオプション" +#: src/view/screens/PreferencesThreads.tsx:82 +msgid "Most-liked replies first" +msgstr "" + #: src/view/com/profile/ProfileHeader.tsx:370 msgid "Mute Account" msgstr "アカウントをミュート" @@ -1344,10 +1349,14 @@ msgstr "新しい投稿" msgid "New Post" msgstr "新しい投稿" +#: src/view/screens/PreferencesThreads.tsx:79 +msgid "Newest replies first" +msgstr "" + #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 -#: src/view/com/auth/login/LoginForm.tsx:282 +#: src/view/com/auth/login/LoginForm.tsx:286 #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 @@ -1358,10 +1367,12 @@ msgstr "次へ" msgid "Next image" msgstr "次の画像" -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:191 -#: src/view/screens/PreferencesHomeFeed.tsx:226 -#: src/view/screens/PreferencesHomeFeed.tsx:263 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:197 +#: src/view/screens/PreferencesHomeFeed.tsx:232 +#: src/view/screens/PreferencesHomeFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "いいえ" @@ -1419,7 +1430,11 @@ msgstr "ちょっと!" msgid "Okay" msgstr "OK" -#: src/view/com/composer/Composer.tsx:358 +#: src/view/screens/PreferencesThreads.tsx:78 +msgid "Oldest replies first" +msgstr "" + +#: src/view/com/composer/Composer.tsx:363 msgid "One or more images is missing alt text." msgstr "1つもしくは複数の画像にALTテキストがありません。" @@ -1427,6 +1442,11 @@ msgstr "1つもしくは複数の画像にALTテキストがありません。" msgid "Only {0} can reply." msgstr "{0}のみ返信可能" +#: src/view/com/composer/Composer.tsx:468 +#: src/view/com/composer/Composer.tsx:469 +msgid "Open emoji picker" +msgstr "" + #: src/view/com/pager/FeedsTabBarMobile.tsx:76 msgid "Open navigation" msgstr "ナビゲーションを開く" @@ -1495,7 +1515,7 @@ msgstr "ページが見つかりません" #: src/view/com/auth/create/Step2.tsx:122 #: src/view/com/auth/create/Step2.tsx:132 -#: src/view/com/auth/login/LoginForm.tsx:217 +#: src/view/com/auth/login/LoginForm.tsx:221 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 #: src/view/com/modals/DeleteAccount.tsx:191 msgid "Password" @@ -1551,11 +1571,11 @@ msgstr "" #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "この判断が誤っていると考える理由を教えてください。" -#: src/view/com/composer/Composer.tsx:214 +#: src/view/com/composer/Composer.tsx:215 msgid "Please wait for your link card to finish loading" msgstr "リンクカードがロードされるまでお待ちください" -#: src/view/com/composer/Composer.tsx:341 +#: src/view/com/composer/Composer.tsx:346 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" @@ -1593,7 +1613,7 @@ msgstr "前の画像" msgid "Primary Language" msgstr "第一言語" -#: src/view/screens/PreferencesThreads.tsx:91 +#: src/view/screens/PreferencesThreads.tsx:97 msgid "Prioritize Your Follows" msgstr "あなたのフォローを優先" @@ -1640,6 +1660,10 @@ msgstr "引用" msgid "Quote Post" msgstr "引用" +#: src/view/screens/PreferencesThreads.tsx:86 +msgid "Random (aka \"Poster's Roulette\")" +msgstr "" + #: src/view/com/modals/EditImage.tsx:236 msgid "Ratios" msgstr "比率" @@ -1707,7 +1731,7 @@ msgstr "返信" msgid "Replies to this thread are disabled" msgstr "このスレッドへの返信はできません" -#: src/view/screens/PreferencesHomeFeed.tsx:135 +#: src/view/screens/PreferencesHomeFeed.tsx:141 msgid "Reply Filters" msgstr "返信のフィルター" @@ -1750,6 +1774,10 @@ msgstr "リポストしたユーザー" msgid "Request Change" msgstr "変更を要求" +#: src/view/screens/Settings.tsx:422 +msgid "Require alt text before posting" +msgstr "" + #: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" msgstr "このプロバイダーに必要" @@ -1780,14 +1808,13 @@ msgstr "設定の状態をリセット" #: src/view/com/auth/create/CreateAccount.tsx:163 #: src/view/com/auth/create/CreateAccount.tsx:167 -#: src/view/com/auth/login/LoginForm.tsx:259 -#: src/view/com/auth/login/LoginForm.tsx:262 +#: src/view/com/auth/login/LoginForm.tsx:263 +#: src/view/com/auth/login/LoginForm.tsx:266 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:65 msgid "Retry" msgstr "再試行" -#: src/view/com/modals/AltImage.tsx:115 #: src/view/com/modals/BirthDateSettings.tsx:94 #: src/view/com/modals/BirthDateSettings.tsx:97 #: src/view/com/modals/ChangeHandle.tsx:173 @@ -1855,7 +1882,7 @@ msgstr "Bluesky Socialを選択" msgid "Select from an existing account" msgstr "既存のアカウントから選択" -#: src/view/com/auth/login/LoginForm.tsx:143 +#: src/view/com/auth/login/LoginForm.tsx:147 msgid "Select service" msgstr "サービスを選択" @@ -1896,23 +1923,23 @@ msgstr "報告を送信" msgid "Set new password" msgstr "新しいパスワードを設定" -#: src/view/screens/PreferencesHomeFeed.tsx:216 +#: src/view/screens/PreferencesHomeFeed.tsx:222 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "フィード内の引用をすべて非表示にするには、この設定を「いいえ」にします。リポストは引き続き表示されます。" -#: src/view/screens/PreferencesHomeFeed.tsx:113 +#: src/view/screens/PreferencesHomeFeed.tsx:119 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "フィード内の返信をすべて非表示にするには、この設定を「いいえ」にします。" -#: src/view/screens/PreferencesHomeFeed.tsx:182 +#: src/view/screens/PreferencesHomeFeed.tsx:188 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "フィード内のリポストをすべて非表示にするには、この設定を「いいえ」にします。" -#: src/view/screens/PreferencesThreads.tsx:116 +#: 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 "スレッド表示で返信を表示するには、この設定を「はい」にします。これは実験的な機能です。" -#: src/view/screens/PreferencesHomeFeed.tsx:252 +#: src/view/screens/PreferencesHomeFeed.tsx:258 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." msgstr "保存されたフィードから投稿を抽出して「Following」フィードに表示するには、この設定を「はい」にします。これは実験的な機能です。" @@ -1946,23 +1973,23 @@ msgstr "表示" msgid "Show anyway" msgstr "とにかく表示" -#: src/view/screens/PreferencesHomeFeed.tsx:249 +#: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "マイフィードからの投稿を表示" -#: src/view/screens/PreferencesHomeFeed.tsx:213 +#: src/view/screens/PreferencesHomeFeed.tsx:219 msgid "Show Quote Posts" msgstr "引用を表示" -#: src/view/screens/PreferencesHomeFeed.tsx:110 +#: src/view/screens/PreferencesHomeFeed.tsx:116 msgid "Show Replies" msgstr "返信を表示" -#: src/view/screens/PreferencesThreads.tsx:94 +#: src/view/screens/PreferencesThreads.tsx:100 msgid "Show replies by people you follow before all other replies." msgstr "自分がフォローしているユーザーからの返信を、他のすべての返信の前に表示します。" -#: src/view/screens/PreferencesHomeFeed.tsx:179 +#: src/view/screens/PreferencesHomeFeed.tsx:185 msgid "Show Reposts" msgstr "リポストを表示" @@ -1999,7 +2026,7 @@ msgstr "{0}としてサインイン" msgid "Sign in as..." msgstr "アカウントの選択" -#: src/view/com/auth/login/LoginForm.tsx:130 +#: src/view/com/auth/login/LoginForm.tsx:134 msgid "Sign into" msgstr "サインイン" @@ -2194,7 +2221,7 @@ msgstr "この投稿をあなたのフィードにおいて非表示にします msgid "Thread Preferences" msgstr "スレッドの設定" -#: src/view/screens/PreferencesThreads.tsx:113 +#: src/view/screens/PreferencesThreads.tsx:119 msgid "Threaded Mode" msgstr "スレッドモード" @@ -2226,7 +2253,7 @@ msgstr "リストでのミュートを解除" #: src/view/com/auth/create/CreateAccount.tsx:65 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:117 +#: src/view/com/auth/login/LoginForm.tsx:120 msgid "Unable to contact your service. Please check your Internet connection." msgstr "あなたのサービスに接続できません。インターネットの接続を確認してください。" @@ -2244,7 +2271,7 @@ msgstr "アカウントのブロックを解除" msgid "Undo repost" msgstr "リポストを元に戻す" -#: src/view/com/auth/create/state.ts:210 +#: src/view/com/auth/create/state.ts:216 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "残念ながら、アカウントを作成するための要件を満たしていません。" @@ -2300,8 +2327,8 @@ msgstr "ユーザーハンドル" msgid "User Lists" msgstr "ユーザーリスト" -#: src/view/com/auth/login/LoginForm.tsx:170 -#: src/view/com/auth/login/LoginForm.tsx:188 +#: src/view/com/auth/login/LoginForm.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:192 msgid "Username or email address" msgstr "ユーザー名またはメールアドレス" @@ -2387,7 +2414,7 @@ msgstr "返信できるユーザー" msgid "Wide" msgstr "ワイド" -#: src/view/com/composer/Composer.tsx:413 +#: src/view/com/composer/Composer.tsx:418 msgid "Write post" msgstr "投稿を書く" @@ -2395,10 +2422,12 @@ msgstr "投稿を書く" msgid "Write your reply" msgstr "返信を書く" -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:192 -#: src/view/screens/PreferencesHomeFeed.tsx:227 -#: src/view/screens/PreferencesHomeFeed.tsx:262 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:198 +#: src/view/screens/PreferencesHomeFeed.tsx:233 +#: src/view/screens/PreferencesHomeFeed.tsx:268 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "はい" diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index 8e64132a72..1245f3653f 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -29,40 +29,40 @@ msgstr "{0, plural, one {초대 코드 #개 사용 가능} other {초대 코드 msgid "{0}" msgstr "{0}" -#: src/view/com/modals/CreateOrEditList.tsx:177 +#: src/view/com/modals/CreateOrEditList.tsx:176 msgid "{0} {purposeLabel} List" msgstr "{purposeLabel} 리스트 {0}" #: src/lib/strings/time.ts:28 -msgid "{0}d" -msgstr "{0}일" +#~ msgid "{0}d" +#~ msgstr "{0}일" #: src/lib/strings/time.ts:26 -msgid "{0}h" -msgstr "{0}시간" +#~ msgid "{0}h" +#~ msgstr "{0}시간" #: src/lib/strings/time.ts:24 -msgid "{0}m" -msgstr "{0}분" +#~ msgid "{0}m" +#~ msgstr "{0}분" #: src/lib/strings/time.ts:30 -msgid "{0}mo" -msgstr "{0}개월" +#~ msgid "{0}mo" +#~ msgstr "{0}개월" #: src/lib/strings/time.ts:22 -msgid "{diffSeconds}s" -msgstr "{diffSeconds}초" +#~ msgid "{diffSeconds}s" +#~ msgstr "{diffSeconds}초" #: src/view/shell/desktop/RightNav.tsx:151 msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" msgstr "{invitesAvailable, plural, one {초대 코드: #개 사용 가능} other {초대 코드: #개 사용 가능}}" -#: src/view/screens/Settings.tsx:408 +#: src/view/screens/Settings.tsx:407 #: src/view/shell/Drawer.tsx:659 msgid "{invitesAvailable} invite code available" msgstr "초대 코드 {invitesAvailable}개 사용 가능" -#: src/view/screens/Settings.tsx:410 +#: src/view/screens/Settings.tsx:409 #: src/view/shell/Drawer.tsx:661 msgid "{invitesAvailable} invite codes available" msgstr "초대 코드 {invitesAvailable}개 사용 가능" @@ -72,12 +72,12 @@ msgid "{message}" msgstr "{message}" #: src/view/com/modals/CreateOrEditList.tsx:133 -msgid "{purposeLabel} list created" -msgstr "{purposeLabel} 리스트 생성됨" +#~ msgid "{purposeLabel} list created" +#~ msgstr "{purposeLabel} 리스트 생성됨" #: src/view/com/modals/CreateOrEditList.tsx:124 -msgid "{purposeLabel} list updated" -msgstr "{purposeLabel} 리스트 업데이트됨" +#~ msgid "{purposeLabel} list updated" +#~ msgstr "{purposeLabel} 리스트 업데이트됨" #: src/view/com/threadgate/WhoCanReply.tsx:158 msgid "<0/> members" @@ -88,8 +88,8 @@ msgid "<0>Choose your<1>Recommended<2>Feeds" msgstr "<1>추천 피드<0>선택하기" #: src/view/com/modals/DeleteAccount.tsx:82 -msgid "<0>Delete Account <1><2>\"<3>{0}<4>\"" -msgstr "<1><2>\"<3>{0}<4>\"<0> 계정 삭제" +#~ msgid "<0>Delete Account <1><2>\"<3>{0}<4>\"" +#~ msgstr "<1><2>\"<3>{0}<4>\"<0> 계정 삭제" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:37 msgid "<0>Follow some<1>Recommended<2>Users" @@ -108,8 +108,8 @@ msgstr "<1>추천 사용자<0>팔로우하기" #~ msgstr "<0>참고: 프로필과 게시물은 공개 상태로 유지됩니다. Bluesky 콘텐츠를 표시하는 타사 앱은 이 설정을 준수하지 않을 수 있습니다." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:22 -msgid "<0>Welcome to<1>Bluesky" -msgstr "<1>Bluesky<0>에 오신 것을 환영합니다" +#~ msgid "<0>Welcome to<1>Bluesky" +#~ msgstr "<1>Bluesky<0>에 오신 것을 환영합니다" #: src/view/com/util/moderation/LabelInfo.tsx:45 msgid "A content warning has been applied to this {0}." @@ -120,47 +120,46 @@ msgid "A new version of the app is available. Please update to continue using th msgstr "새 버전의 앱을 사용할 수 있습니다. 앱을 계속 사용하려면 업데이트하세요." #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings.tsx:418 +#: src/view/screens/Settings.tsx:417 msgid "Accessibility" msgstr "접근성" -#: src/view/com/auth/login/LoginForm.tsx:159 -#: src/view/screens/Settings.tsx:287 +#: src/view/com/auth/login/LoginForm.tsx:163 +#: src/view/screens/Settings.tsx:286 msgid "Account" msgstr "계정" #: src/view/com/profile/ProfileHeader.tsx:293 -msgid "Account blocked" -msgstr "계정 차단됨" +#~ msgid "Account blocked" +#~ msgstr "계정 차단됨" #: src/view/com/profile/ProfileHeader.tsx:260 -msgid "Account muted" -msgstr "계정 뮤트됨" +#~ msgid "Account muted" +#~ msgstr "계정 뮤트됨" #: src/view/com/util/AccountDropdownBtn.tsx:41 msgid "Account options" msgstr "계정 옵션" #: src/view/com/util/AccountDropdownBtn.tsx:25 -msgid "Account removed from quick access" -msgstr "퀵 액세스에서 계정 제거" +#~ msgid "Account removed from quick access" +#~ msgstr "퀵 액세스에서 계정 제거" #: src/view/com/profile/ProfileHeader.tsx:315 -msgid "Account unblocked" -msgstr "계정 차단 해제됨" +#~ msgid "Account unblocked" +#~ msgstr "계정 차단 해제됨" #: src/view/com/profile/ProfileHeader.tsx:273 -msgid "Account unmuted" -msgstr "계정 언뮤트됨" +#~ msgid "Account unmuted" +#~ msgstr "계정 언뮤트됨" #: src/state/queries/preferences/moderation.ts:138 -msgid "Accounts falsely claiming to be people or orgs" -msgstr "사람 또는 조직을 사칭하는 계정" +#~ msgid "Accounts falsely claiming to be people or orgs" +#~ msgstr "사람 또는 조직을 사칭하는 계정" -#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:151 #: src/view/com/modals/ListAddRemoveUsers.tsx:264 #: src/view/com/modals/UserAddRemoveLists.tsx:193 -#: src/view/screens/ProfileList.tsx:772 +#: src/view/screens/ProfileList.tsx:763 msgid "Add" msgstr "추가" @@ -168,34 +167,35 @@ msgstr "추가" msgid "Add a content warning" msgstr "콘텐츠 경고 추가" -#: src/view/screens/ProfileList.tsx:762 +#: src/view/screens/ProfileList.tsx:753 msgid "Add a user to this list" msgstr "이 리스트에 사용자 추가" -#: src/view/screens/Settings.tsx:356 -#: src/view/screens/Settings.tsx:365 +#: src/view/screens/Settings.tsx:355 +#: src/view/screens/Settings.tsx:364 msgid "Add account" msgstr "계정 추가" #: src/view/com/composer/photos/Gallery.tsx:119 #: src/view/com/composer/photos/Gallery.tsx:180 +#: src/view/com/modals/AltImage.tsx:93 msgid "Add alt text" msgstr "대체 텍스트 추가" #: src/view/com/modals/report/InputIssueDetails.tsx:41 -#: src/view/com/modals/report/Modal.tsx:194 +#: src/view/com/modals/report/Modal.tsx:191 msgid "Add details" msgstr "상세 내용 추가" -#: src/view/com/modals/report/Modal.tsx:197 +#: src/view/com/modals/report/Modal.tsx:194 msgid "Add details to report" msgstr "신고 상세 내용 추가" -#: src/view/com/composer/Composer.tsx:444 +#: src/view/com/composer/Composer.tsx:447 msgid "Add link card" msgstr "링크 카드 추가" -#: src/view/com/composer/Composer.tsx:447 +#: src/view/com/composer/Composer.tsx:450 msgid "Add link card:" msgstr "링크 카드 추가:" @@ -203,17 +203,17 @@ msgstr "링크 카드 추가:" msgid "Add the following DNS record to your domain:" msgstr "도메인에 다음 DNS 레코드를 추가하세요:" -#: src/view/com/profile/ProfileHeader.tsx:357 +#: src/view/com/profile/ProfileHeader.tsx:353 msgid "Add to Lists" msgstr "리스트에 추가" -#: src/view/screens/ProfileFeed.tsx:281 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Add to my feeds" msgstr "내 피드에 추가" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:140 -msgid "Added" -msgstr "추가됨" +#~ msgid "Added" +#~ msgstr "추가됨" #: src/view/com/modals/ListAddRemoveUsers.tsx:191 #: src/view/com/modals/UserAddRemoveLists.tsx:128 @@ -221,10 +221,10 @@ msgid "Added to list" msgstr "리스트에 추가됨" #: src/view/com/feeds/FeedSourceCard.tsx:125 -msgid "Added to my feeds" -msgstr "내 피드에 추가됨" +#~ msgid "Added to my feeds" +#~ msgstr "내 피드에 추가됨" -#: src/view/screens/PreferencesHomeFeed.tsx:167 +#: src/view/screens/PreferencesHomeFeed.tsx:170 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "답글이 피드에 표시되기 위해 필요한 좋아요 표시 수를 조정합니다." @@ -233,16 +233,16 @@ msgid "Adult Content" msgstr "성인 콘텐츠" #: src/view/com/modals/ContentFilteringSettings.tsx:137 -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.tsx:570 +#: src/view/screens/Settings.tsx:569 msgid "Advanced" msgstr "고급" #: src/view/com/auth/login/ChooseAccountForm.tsx:98 -msgid "Already signed in as @{0}" -msgstr "이미 @{0}(으)로 로그인했습니다." +#~ msgid "Already signed in as @{0}" +#~ msgstr "이미 @{0}(으)로 로그인했습니다." #: src/view/com/composer/photos/Gallery.tsx:130 msgid "ALT" @@ -268,11 +268,10 @@ msgstr "이전 주소인 {0}(으)로 이메일을 전송했습니다. 이 이메 #: src/view/com/profile/FollowButton.tsx:40 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:183 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:193 -msgid "An issue occurred, please try again." -msgstr "문제가 발생했습니다. 다시 시도해 주세요." +#~ msgid "An issue occurred, please try again." +#~ msgstr "문제가 발생했습니다. 다시 시도해 주세요." -#: src/view/com/auth/create/Policies.tsx:80 -#: src/view/com/notifications/FeedItem.tsx:240 +#: src/view/com/notifications/FeedItem.tsx:237 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "및" @@ -282,18 +281,18 @@ msgid "App Language" msgstr "앱 언어" #: src/view/screens/AppPasswords.tsx:227 -msgid "App password deleted" -msgstr "앱 비밀번호 삭제됨" +#~ msgid "App password deleted" +#~ msgstr "앱 비밀번호 삭제됨" #: src/view/com/modals/AddAppPasswords.tsx:133 -msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." -msgstr "앱 비밀번호 이름에는 문자, 숫자, 공백, 대시, 밑줄만 사용할 수 있습니다." +#~ msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." +#~ msgstr "앱 비밀번호 이름에는 문자, 숫자, 공백, 대시, 밑줄만 사용할 수 있습니다." #: src/view/com/modals/AddAppPasswords.tsx:98 -msgid "App Password names must be at least 4 characters long." -msgstr "앱 비밀번호 이름은 4자 이상이어야 합니다." +#~ msgid "App Password names must be at least 4 characters long." +#~ msgstr "앱 비밀번호 이름은 4자 이상이어야 합니다." -#: src/view/screens/Settings.tsx:590 +#: src/view/screens/Settings.tsx:589 msgid "App passwords" msgstr "앱 비밀번호" @@ -301,7 +300,7 @@ msgstr "앱 비밀번호" msgid "App Passwords" msgstr "앱 비밀번호" -#: src/view/com/util/forms/PostDropdownBtn.tsx:238 +#: src/view/com/util/forms/PostDropdownBtn.tsx:236 msgid "Appeal content warning" msgstr "콘텐츠 경고 이의신청" @@ -321,7 +320,7 @@ msgstr "이 결정에 이의신청" msgid "Appeal this decision." msgstr "이 결정에 이의신청합니다." -#: src/view/screens/Settings.tsx:433 +#: src/view/screens/Settings.tsx:432 msgid "Appearance" msgstr "모양" @@ -333,15 +332,15 @@ msgstr "모양" msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "앱 비밀번호 \"{name}\"을(를) 삭제하시겠습니까?" -#: src/view/com/composer/Composer.tsx:142 +#: src/view/com/composer/Composer.tsx:143 msgid "Are you sure you'd like to discard this draft?" msgstr "이 초안을 삭제하시겠습니까?" -#: src/view/screens/ProfileList.tsx:361 +#: src/view/screens/ProfileList.tsx:353 msgid "Are you sure?" msgstr "확실합니까?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:221 +#: src/view/com/util/forms/PostDropdownBtn.tsx:219 msgid "Are you sure? This cannot be undone." msgstr "확실합니까? 취소할 수 없습니다." @@ -356,17 +355,17 @@ msgstr "선정적이지 않거나 예술적인 노출." #: src/view/com/auth/create/CreateAccount.tsx:141 #: src/view/com/auth/login/ChooseAccountForm.tsx:151 #: src/view/com/auth/login/ForgotPasswordForm.tsx:166 -#: src/view/com/auth/login/LoginForm.tsx:250 +#: src/view/com/auth/login/LoginForm.tsx:254 #: src/view/com/auth/login/SetNewPasswordForm.tsx:148 #: src/view/com/modals/report/InputIssueDetails.tsx:46 #: src/view/com/post-thread/PostThread.tsx:388 #: src/view/com/post-thread/PostThread.tsx:438 #: src/view/com/post-thread/PostThread.tsx:446 -#: src/view/com/profile/ProfileHeader.tsx:676 +#: src/view/com/profile/ProfileHeader.tsx:672 msgid "Back" msgstr "뒤로" -#: src/view/screens/Settings.tsx:462 +#: src/view/screens/Settings.tsx:461 msgid "Basics" msgstr "기본" @@ -375,24 +374,24 @@ msgstr "기본" msgid "Birthday" msgstr "생년월일" -#: src/view/screens/Settings.tsx:313 +#: src/view/screens/Settings.tsx:312 msgid "Birthday:" msgstr "생년월일:" -#: src/view/com/profile/ProfileHeader.tsx:286 -#: src/view/com/profile/ProfileHeader.tsx:393 +#: src/view/com/profile/ProfileHeader.tsx:282 +#: src/view/com/profile/ProfileHeader.tsx:389 msgid "Block Account" msgstr "계정 차단" -#: src/view/screens/ProfileList.tsx:531 +#: src/view/screens/ProfileList.tsx:523 msgid "Block accounts" msgstr "계정 차단" -#: src/view/screens/ProfileList.tsx:481 +#: src/view/screens/ProfileList.tsx:473 msgid "Block list" msgstr "리스트 차단" -#: src/view/screens/ProfileList.tsx:312 +#: src/view/screens/ProfileList.tsx:308 msgid "Block these accounts?" msgstr "이 계정들을 차단하시겠습니까?" @@ -404,7 +403,7 @@ msgstr "차단한 계정" msgid "Blocked Accounts" msgstr "차단한 계정" -#: src/view/com/profile/ProfileHeader.tsx:288 +#: src/view/com/profile/ProfileHeader.tsx:284 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "차단한 계정은 내 스레드에 답글을 달거나 나를 멘션하거나 기타 다른 방식으로 나와 상호작용할 수 없습니다." @@ -416,12 +415,11 @@ msgstr "차단한 계정은 내 스레드에 답글을 달거나 나를 멘션 msgid "Blocked post." msgstr "차단된 게시물." -#: src/view/screens/ProfileList.tsx:314 +#: src/view/screens/ProfileList.tsx:310 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/auth/SplashScreen.web.tsx:113 msgid "Blog" msgstr "블로그" @@ -429,17 +427,14 @@ msgstr "블로그" msgid "Bluesky" msgstr "Bluesky" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:82 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 msgid "Bluesky is flexible." msgstr "Bluesky는 유연합니다." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:71 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 msgid "Bluesky is open." msgstr "Bluesky는 열려 있습니다." -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:58 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 msgid "Bluesky is public." msgstr "Bluesky는 공개적입니다." @@ -456,18 +451,17 @@ msgstr "Bluesky는 로그아웃한 사용자에게 내 프로필과 게시물을 msgid "Bluesky.Social" msgstr "Bluesky.Social" -#: src/view/screens/Settings.tsx:719 +#: src/view/screens/Settings.tsx:718 msgid "Build version {0} {1}" msgstr "빌드 버전 {0} {1}" #: src/view/com/auth/HomeLoggedOutCTA.tsx:87 -#: src/view/com/auth/SplashScreen.web.tsx:108 msgid "Business" msgstr "비즈니스" #: src/view/com/auth/create/Policies.tsx:87 -msgid "By creating an account you agree to the {els}." -msgstr "계정을 만들면 {els}에 동의하는 것입니다." +#~ msgid "By creating an account you agree to the {els}." +#~ msgstr "계정을 만들면 {els}에 동의하는 것입니다." #: src/view/com/composer/photos/OpenCameraBtn.tsx:60 #: src/view/com/util/UserAvatar.tsx:221 @@ -475,27 +469,22 @@ msgstr "계정을 만들면 {els}에 동의하는 것입니다." msgid "Camera" msgstr "카메라" -#: src/view/com/modals/AddAppPasswords.tsx:218 +#: src/view/com/modals/AddAppPasswords.tsx:214 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/view/com/composer/Composer.tsx:291 #: src/view/com/composer/Composer.tsx:294 -#: src/view/com/modals/AltImage.tsx:128 +#: src/view/com/composer/Composer.tsx:297 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 -#: src/view/com/modals/ChangeHandle.tsx:153 #: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/Confirm.tsx:91 -#: src/view/com/modals/CreateOrEditList.tsx:268 -#: src/view/com/modals/CreateOrEditList.tsx:273 -#: src/view/com/modals/crop-image/CropImage.web.tsx:137 -#: src/view/com/modals/DeleteAccount.tsx:152 -#: src/view/com/modals/DeleteAccount.tsx:225 +#: src/view/com/modals/CreateOrEditList.tsx:267 +#: src/view/com/modals/CreateOrEditList.tsx:272 +#: src/view/com/modals/DeleteAccount.tsx:150 +#: src/view/com/modals/DeleteAccount.tsx:223 #: src/view/com/modals/EditImage.tsx:323 -#: src/view/com/modals/EditProfile.tsx:249 +#: src/view/com/modals/EditProfile.tsx:248 #: src/view/com/modals/LinkWarning.tsx:85 -#: src/view/com/modals/LinkWarning.tsx:87 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 #: src/view/screens/Search/Search.tsx:601 @@ -503,14 +492,14 @@ msgstr "글자, 숫자, 공백, 대시, 밑줄만 포함할 수 있습니다. msgid "Cancel" msgstr "취소" -#: src/view/com/modals/DeleteAccount.tsx:148 -#: src/view/com/modals/DeleteAccount.tsx:221 +#: src/view/com/modals/DeleteAccount.tsx:146 +#: src/view/com/modals/DeleteAccount.tsx:219 msgid "Cancel account deletion" msgstr "계정 삭제 취소" #: src/view/com/modals/AltImage.tsx:123 -msgid "Cancel add image alt text" -msgstr "이미지 대체 텍스트 추가 취소" +#~ msgid "Cancel add image alt text" +#~ msgstr "이미지 대체 텍스트 추가 취소" #: src/view/com/modals/ChangeHandle.tsx:149 msgid "Cancel change handle" @@ -520,7 +509,7 @@ msgstr "핸들 변경 취소" msgid "Cancel image crop" msgstr "이미지 자르기 취소" -#: src/view/com/modals/EditProfile.tsx:244 +#: src/view/com/modals/EditProfile.tsx:243 msgid "Cancel profile editing" msgstr "프로필 편집 취소" @@ -537,12 +526,12 @@ msgstr "검색 취소" msgid "Cancel waitlist signup" msgstr "대기자 명단 등록 취소" -#: src/view/screens/Settings.tsx:307 +#: src/view/screens/Settings.tsx:306 msgid "Change" msgstr "변경" -#: src/view/screens/Settings.tsx:602 -#: src/view/screens/Settings.tsx:611 +#: src/view/screens/Settings.tsx:601 +#: src/view/screens/Settings.tsx:610 msgid "Change handle" msgstr "핸들 변경" @@ -566,7 +555,7 @@ msgstr "몇 가지 추천 피드를 확인하세요. +를 탭하여 고정된 msgid "Check out some recommended users. Follow them to see similar users." msgstr "추천 사용자를 확인하세요. 해당 사용자를 팔로우하여 비슷한 사용자를 만날 수 있습니다." -#: src/view/com/modals/DeleteAccount.tsx:165 +#: src/view/com/modals/DeleteAccount.tsx:163 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "받은 편지함에서 아래에 입력하는 확인 코드가 포함된 이메일이 있는지 확인하세요:" @@ -578,7 +567,6 @@ msgstr "\"모두\" 또는 \"없음\"을 선택하세요." msgid "Choose Service" msgstr "서비스 선택" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:85 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "맞춤 피드를 통해 사용자 경험을 강화하는 알고리즘을 선택합니다." @@ -591,19 +579,19 @@ msgstr "맞춤 피드를 통해 사용자 경험을 강화하는 알고리즘을 msgid "Choose your password" msgstr "비밀번호를 입력하세요" -#: src/view/screens/Settings.tsx:695 +#: src/view/screens/Settings.tsx:694 msgid "Clear all legacy storage data" msgstr "모든 레거시 스토리지 데이터 지우기" -#: src/view/screens/Settings.tsx:697 +#: src/view/screens/Settings.tsx:696 msgid "Clear all legacy storage data (restart after this)" msgstr "모든 레거시 스토리지 데이터 지우기 (이후 다시 시작)" -#: src/view/screens/Settings.tsx:707 +#: src/view/screens/Settings.tsx:706 msgid "Clear all storage data" msgstr "모든 스토리지 데이터 지우기" -#: src/view/screens/Settings.tsx:709 +#: src/view/screens/Settings.tsx:708 msgid "Clear all storage data (restart after this)" msgstr "모든 스토리지 데이터 지우기 (이후 다시 시작)" @@ -642,11 +630,9 @@ msgstr "답글 작성하기" #: src/view/com/modals/AppealLabel.tsx:98 #: src/view/com/modals/Confirm.tsx:75 -#: src/view/com/modals/Confirm.tsx:78 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:225 -#: src/view/com/modals/VerifyEmail.tsx:227 -#: src/view/screens/PreferencesHomeFeed.tsx:302 +#: src/view/screens/PreferencesHomeFeed.tsx:305 #: src/view/screens/PreferencesThreads.tsx:159 msgid "Confirm" msgstr "확인" @@ -660,18 +646,18 @@ msgstr "변경 확인" msgid "Confirm content language settings" msgstr "콘텐츠 언어 설정 확인" -#: src/view/com/modals/DeleteAccount.tsx:211 +#: src/view/com/modals/DeleteAccount.tsx:209 msgid "Confirm delete account" msgstr "계정 삭제 확인" #: src/view/com/modals/ChangeEmail.tsx:157 -#: src/view/com/modals/DeleteAccount.tsx:178 +#: src/view/com/modals/DeleteAccount.tsx:176 #: src/view/com/modals/VerifyEmail.tsx:159 msgid "Confirmation code" msgstr "확인 코드" #: src/view/com/auth/create/CreateAccount.tsx:174 -#: src/view/com/auth/login/LoginForm.tsx:269 +#: src/view/com/auth/login/LoginForm.tsx:273 msgid "Connecting..." msgstr "연결 중…" @@ -701,44 +687,44 @@ msgstr "콘텐츠 경고" msgid "Continue" msgstr "계속" -#: src/view/com/modals/AddAppPasswords.tsx:197 -#: src/view/com/modals/InviteCodes.tsx:182 +#: src/view/com/modals/AddAppPasswords.tsx:193 +#: src/view/com/modals/InviteCodes.tsx:179 msgid "Copied" msgstr "복사됨" #: src/view/screens/Settings.tsx:236 -msgid "Copied build version to clipboard" -msgstr "빌드 버전 클립보드에 복사됨" +#~ msgid "Copied build version to clipboard" +#~ msgstr "빌드 버전 클립보드에 복사됨" #: src/lib/sharing.ts:23 #: src/view/com/modals/AddAppPasswords.tsx:75 #: src/view/com/modals/ChangeHandle.tsx:325 #: src/view/com/modals/InviteCodes.tsx:152 #: src/view/com/util/forms/PostDropdownBtn.tsx:100 -msgid "Copied to clipboard" -msgstr "클립보드에 복사됨" +#~ msgid "Copied to clipboard" +#~ msgstr "클립보드에 복사됨" -#: src/view/com/modals/AddAppPasswords.tsx:190 +#: src/view/com/modals/AddAppPasswords.tsx:186 msgid "Copy" msgstr "복사" #: src/view/com/modals/ChangeHandle.tsx:479 -msgid "Copy {0}" -msgstr "{0} 복사" +#~ msgid "Copy {0}" +#~ msgstr "{0} 복사" -#: src/view/screens/ProfileList.tsx:393 +#: src/view/screens/ProfileList.tsx:385 msgid "Copy link to list" msgstr "리스트 링크 복사" -#: src/view/com/util/forms/PostDropdownBtn.tsx:141 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 msgid "Copy link to post" msgstr "게시물 링크 복사" -#: src/view/com/profile/ProfileHeader.tsx:342 +#: src/view/com/profile/ProfileHeader.tsx:338 msgid "Copy link to profile" msgstr "프로필 링크 복사" -#: src/view/com/util/forms/PostDropdownBtn.tsx:127 +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 msgid "Copy post text" msgstr "게시물 텍스트 복사" @@ -750,13 +736,12 @@ msgstr "저작권 정책" msgid "Could not load feed" msgstr "피드를 불러올 수 없습니다" -#: src/view/screens/ProfileList.tsx:848 +#: src/view/screens/ProfileList.tsx:839 msgid "Could not load list" msgstr "리스트를 불러올 수 없습니다" #: src/view/com/auth/HomeLoggedOutCTA.tsx:62 #: src/view/com/auth/SplashScreen.tsx:46 -#: src/view/com/auth/SplashScreen.web.tsx:78 msgid "Create a new account" msgstr "새 계정 만들기" @@ -778,49 +763,49 @@ msgstr "{0} 생성됨" msgid "Custom domain" msgstr "사용자 지정 도메인" -#: src/view/screens/Settings.tsx:616 +#: src/view/screens/Settings.tsx:615 msgid "Danger Zone" msgstr "위험 구역" #: src/view/screens/Settings.tsx:452 -msgid "Dark" -msgstr "어두움" +#~ msgid "Dark" +#~ msgstr "어두움" #: src/view/com/auth/create/Step1.tsx:61 -msgid "default" -msgstr "기본" +#~ msgid "default" +#~ msgstr "기본" -#: src/view/screens/Settings.tsx:623 +#: src/view/screens/Settings.tsx:622 msgid "Delete account" msgstr "계정 삭제" #: src/view/com/modals/DeleteAccount.tsx:83 -#~ msgid "Delete Account" -#~ msgstr "계정 삭제" +msgid "Delete Account" +msgstr "계정 삭제" #: src/view/screens/AppPasswords.tsx:221 #: src/view/screens/AppPasswords.tsx:241 msgid "Delete app password" msgstr "앱 비밀번호 삭제" -#: src/view/screens/ProfileList.tsx:360 -#: src/view/screens/ProfileList.tsx:420 +#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:412 msgid "Delete List" msgstr "리스트 삭제" -#: src/view/com/modals/DeleteAccount.tsx:214 +#: src/view/com/modals/DeleteAccount.tsx:212 msgid "Delete my account" msgstr "내 계정 삭제" -#: src/view/screens/Settings.tsx:633 +#: src/view/screens/Settings.tsx:632 msgid "Delete my account…" msgstr "내 계정 삭제…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:216 +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 msgid "Delete post" msgstr "게시물 삭제" -#: src/view/com/util/forms/PostDropdownBtn.tsx:220 +#: src/view/com/util/forms/PostDropdownBtn.tsx:218 msgid "Delete this post?" msgstr "이 게시물을 삭제하시겠습니까?" @@ -828,10 +813,10 @@ msgstr "이 게시물을 삭제하시겠습니까?" msgid "Deleted post." msgstr "삭제된 게시물." -#: src/view/com/modals/CreateOrEditList.tsx:219 -#: src/view/com/modals/CreateOrEditList.tsx:235 -#: src/view/com/modals/EditProfile.tsx:198 -#: src/view/com/modals/EditProfile.tsx:210 +#: src/view/com/modals/CreateOrEditList.tsx:218 +#: src/view/com/modals/CreateOrEditList.tsx:234 +#: src/view/com/modals/EditProfile.tsx:197 +#: src/view/com/modals/EditProfile.tsx:209 msgid "Description" msgstr "설명" @@ -839,19 +824,19 @@ msgstr "설명" msgid "Dev Server" msgstr "개발 서버" -#: src/view/screens/Settings.tsx:638 +#: src/view/screens/Settings.tsx:637 msgid "Developer Tools" msgstr "개발자 도구" -#: src/view/com/composer/Composer.tsx:210 +#: src/view/com/composer/Composer.tsx:211 msgid "Did you want to say anything?" msgstr "하고 싶은 말이 있나요?" -#: src/view/com/composer/Composer.tsx:143 +#: src/view/com/composer/Composer.tsx:144 msgid "Discard" msgstr "삭제" -#: src/view/com/composer/Composer.tsx:137 +#: src/view/com/composer/Composer.tsx:138 msgid "Discard draft" msgstr "초안 삭제" @@ -860,56 +845,53 @@ msgid "Discourage apps from showing my account to logged-out users" msgstr "앱이 로그아웃한 사용자에게 내 계정을 표시하지 않도록 설정하기" #: src/view/com/posts/FollowingEmptyState.tsx:74 -msgid "Discover new custom feeds" -msgstr "새로운 맞춤 피드 찾아보기" +#~ msgid "Discover new custom feeds" +#~ msgstr "새로운 맞춤 피드 찾아보기" #: src/view/screens/Feeds.tsx:405 msgid "Discover new feeds" msgstr "새 피드 발견하기" -#: src/view/com/modals/EditProfile.tsx:192 +#: src/view/com/modals/EditProfile.tsx:191 msgid "Display name" msgstr "표시 이름" -#: src/view/com/modals/EditProfile.tsx:180 +#: src/view/com/modals/EditProfile.tsx:179 msgid "Display Name" msgstr "표시 이름" #: src/view/com/modals/ChangeHandle.tsx:396 -msgid "DNS Panel" -msgstr "DNS 패널" +#~ msgid "DNS Panel" +#~ msgstr "DNS 패널" #: src/state/queries/preferences/moderation.ts:108 -msgid "Does not include nudity" -msgstr "신체 노출 미포함" +#~ msgid "Does not include nudity" +#~ msgstr "신체 노출 미포함" #: src/view/com/modals/ChangeHandle.tsx:480 -msgid "Domain Value" -msgstr "도메인 값" +#~ msgid "Domain Value" +#~ msgstr "도메인 값" -#: src/view/com/modals/ChangeHandle.tsx:487 +#: src/view/com/modals/ChangeHandle.tsx:485 msgid "Domain verified!" msgstr "도메인을 확인했습니다!" #: src/view/com/auth/create/Step2.tsx:83 -msgid "Don't have an invite code?" -msgstr "초대 코드가 없으십니까?" +#~ msgid "Don't have an invite code?" +#~ msgstr "초대 코드가 없으십니까?" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/AltImage.tsx:115 #: 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/EditImage.tsx:333 -#: src/view/com/modals/InviteCodes.tsx:80 -#: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 -#: 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:79 -#: src/view/com/modals/UserAddRemoveLists.tsx:82 -#: src/view/screens/PreferencesHomeFeed.tsx:305 +#: src/view/screens/PreferencesHomeFeed.tsx:308 #: src/view/screens/PreferencesThreads.tsx:162 msgid "Done" msgstr "완료" @@ -918,20 +900,20 @@ msgstr "완료" msgid "Done{extraText}" msgstr "완료{extraText}" -#: src/view/com/modals/InviteCodes.tsx:96 +#: src/view/com/modals/InviteCodes.tsx:94 msgid "Each code works once. You'll receive more invite codes periodically." msgstr "각 코드는 한 번만 사용할 수 있습니다. 주기적으로 더 많은 초대 코드를 받게 됩니다." #: src/view/com/modals/CreateOrEditList.tsx:178 -msgid "Edit" -msgstr "편집" +#~ msgid "Edit" +#~ 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:408 +#: src/view/screens/ProfileList.tsx:400 msgid "Edit list details" msgstr "리스트 상세 편집" @@ -940,15 +922,15 @@ msgstr "리스트 상세 편집" msgid "Edit My Feeds" msgstr "내 피드 편집" -#: src/view/com/modals/EditProfile.tsx:152 +#: src/view/com/modals/EditProfile.tsx:151 msgid "Edit my profile" msgstr "내 프로필 편집" -#: src/view/com/profile/ProfileHeader.tsx:457 +#: src/view/com/profile/ProfileHeader.tsx:453 msgid "Edit profile" msgstr "프로필 편집" -#: src/view/com/profile/ProfileHeader.tsx:460 +#: src/view/com/profile/ProfileHeader.tsx:456 msgid "Edit Profile" msgstr "프로필 편집" @@ -969,30 +951,30 @@ msgstr "이메일 주소" #: src/view/com/modals/ChangeEmail.tsx:56 #: src/view/com/modals/ChangeEmail.tsx:88 -msgid "Email updated" -msgstr "이메일 변경됨" +#~ msgid "Email updated" +#~ msgstr "이메일 변경됨" #: src/view/com/modals/ChangeEmail.tsx:111 msgid "Email Updated" msgstr "이메일 변경됨" #: src/view/com/modals/VerifyEmail.tsx:78 -msgid "Email verified" -msgstr "이메일 확인됨" +#~ msgid "Email verified" +#~ msgstr "이메일 확인됨" -#: src/view/screens/Settings.tsx:291 +#: src/view/screens/Settings.tsx:290 msgid "Email:" msgstr "이메일:" #: src/view/com/modals/ContentFilteringSettings.tsx:158 -msgid "Enable Adult Content" -msgstr "성인 콘텐츠 활성화" +#~ msgid "Enable Adult Content" +#~ msgstr "성인 콘텐츠 활성화" -#: src/view/screens/PreferencesHomeFeed.tsx:141 +#: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." msgstr "내가 팔로우하는 사람들 간의 답글만 표시합니다." -#: src/view/screens/Profile.tsx:427 +#: src/view/screens/Profile.tsx:426 msgid "End of feed" msgstr "피드 끝" @@ -1029,25 +1011,25 @@ msgid "Everybody" msgstr "모두" #: src/state/queries/preferences/moderation.ts:131 -msgid "Excessive unwanted interactions" -msgstr "원치 않는 과도한 상호작용" +#~ msgid "Excessive unwanted interactions" +#~ msgstr "원치 않는 과도한 상호작용" #: src/view/com/lightbox/Lightbox.web.tsx:156 msgid "Expand alt text" msgstr "대체 텍스트 확장" #: src/state/queries/preferences/moderation.ts:91 -msgid "Explicit Sexual Images" -msgstr "노골적인 성적 이미지" +#~ msgid "Explicit Sexual Images" +#~ msgstr "노골적인 성적 이미지" #: src/view/com/modals/AddAppPasswords.tsx:114 #: src/view/com/modals/AddAppPasswords.tsx:118 -msgid "Failed to create app password." -msgstr "앱 비밀번호를 만들지 못했습니다." +#~ msgid "Failed to create app password." +#~ msgstr "앱 비밀번호를 만들지 못했습니다." #: src/view/com/util/forms/PostDropdownBtn.tsx:78 -msgid "Failed to delete post, please try again" -msgstr "게시물을 삭제하지 못했습니다. 다시 시도해 주세요." +#~ msgid "Failed to delete post, please try again" +#~ msgstr "게시물을 삭제하지 못했습니다. 다시 시도해 주세요." #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 @@ -1055,8 +1037,8 @@ msgid "Failed to load recommended feeds" msgstr "추천 피드를 불러오지 못했습니다" #: src/view/com/lightbox/Lightbox.tsx:83 -msgid "Failed to save image: {0}" -msgstr "이미지를 저장하지 못했습니다: {0}" +#~ msgid "Failed to save image: {0}" +#~ msgstr "이미지를 저장하지 못했습니다: {0}" #: src/view/screens/Feeds.tsx:556 msgid "Feed offline" @@ -1089,12 +1071,12 @@ msgid "Feeds are custom algorithms that users build with a little coding experti msgstr "피드는 사용자가 약간의 코딩 전문 지식으로 구축할 수 있는 맞춤 알고리즘입니다. <0/>에서 자세한 내용을 확인하세요." #: src/view/com/modals/ChangeHandle.tsx:480 -msgid "File Contents" -msgstr "파일 내용" +#~ msgid "File Contents" +#~ msgstr "파일 내용" #: src/view/com/posts/FollowingEmptyState.tsx:57 -msgid "Find accounts to follow" -msgstr "팔로우할 계정 찾아보기" +#~ msgid "Find accounts to follow" +#~ msgstr "팔로우할 계정 찾아보기" #: src/view/screens/Search/Search.tsx:427 msgid "Find users on Bluesky" @@ -1104,11 +1086,11 @@ msgstr "Bluesky에서 사용자 찾기" msgid "Find users with the search tool on the right" msgstr "오른쪽의 검색 도구로 사용자 찾기" -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:152 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 msgid "Finding similar accounts..." msgstr "유사한 계정을 찾는 중…" -#: src/view/screens/PreferencesHomeFeed.tsx:105 +#: src/view/screens/PreferencesHomeFeed.tsx:108 msgid "Fine-tune the content you see on your home screen." msgstr "홈 화면에 표시되는 콘텐츠를 미세 조정합니다." @@ -1116,10 +1098,7 @@ msgstr "홈 화면에 표시되는 콘텐츠를 미세 조정합니다." msgid "Fine-tune the discussion threads." msgstr "토론 스레드를 미세 조정합니다." -#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:138 -#: src/view/com/profile/FollowButton.tsx:64 -#: src/view/com/profile/ProfileHeader.tsx:542 -#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:241 +#: src/view/com/profile/ProfileHeader.tsx:538 msgid "Follow" msgstr "팔로우" @@ -1135,48 +1114,48 @@ msgstr "일부 사용자를 팔로우하여 시작하세요. 관심 있는 사 msgid "Followed users" msgstr "팔로우한 사용자" -#: src/view/screens/PreferencesHomeFeed.tsx:148 +#: src/view/screens/PreferencesHomeFeed.tsx:151 msgid "Followed users only" msgstr "팔로우한 사용자만" #: src/view/com/notifications/FeedItem.tsx:166 -msgid "followed you" -msgstr "님이 나를 팔로우했습니다" +#~ msgid "followed you" +#~ msgstr "님이 나를 팔로우했습니다" #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "팔로워" -#: src/view/com/profile/ProfileHeader.tsx:628 +#: src/view/com/profile/ProfileHeader.tsx:624 msgid "following" msgstr "팔로우 중" -#: src/view/com/profile/ProfileHeader.tsx:526 +#: src/view/com/profile/ProfileHeader.tsx:522 #: src/view/screens/ProfileFollows.tsx:25 msgid "Following" msgstr "팔로우 중" #: src/view/com/profile/ProfileHeader.tsx:196 -msgid "Following {0}" -msgstr "{0} 팔로우 중" +#~ msgid "Following {0}" +#~ msgstr "{0} 팔로우 중" -#: src/view/com/profile/ProfileHeader.tsx:575 +#: src/view/com/profile/ProfileHeader.tsx:571 msgid "Follows you" msgstr "나를 팔로우함" -#: src/view/com/modals/DeleteAccount.tsx:109 +#: src/view/com/modals/DeleteAccount.tsx:107 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "보안상의 이유로 이메일 주소로 확인 코드를 보내야 합니다." -#: src/view/com/modals/AddAppPasswords.tsx:211 +#: src/view/com/modals/AddAppPasswords.tsx:207 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:232 +#: src/view/com/auth/login/LoginForm.tsx:236 msgid "Forgot" msgstr "분실" -#: src/view/com/auth/login/LoginForm.tsx:229 +#: src/view/com/auth/login/LoginForm.tsx:233 msgid "Forgot password" msgstr "비밀번호 분실" @@ -1202,54 +1181,52 @@ msgstr "뒤로" #: src/view/screens/ProfileFeed.tsx:104 #: src/view/screens/ProfileFeed.tsx:109 -#: src/view/screens/ProfileList.tsx:857 -#: src/view/screens/ProfileList.tsx:862 +#: src/view/screens/ProfileList.tsx:848 +#: src/view/screens/ProfileList.tsx:853 msgid "Go Back" msgstr "뒤로" #: src/view/com/auth/login/ForgotPasswordForm.tsx:181 -#: src/view/com/auth/login/LoginForm.tsx:279 +#: src/view/com/auth/login/LoginForm.tsx:283 #: src/view/com/auth/login/SetNewPasswordForm.tsx:163 msgid "Go to next" msgstr "다음" #: src/state/queries/preferences/moderation.ts:116 -msgid "Gore, self-harm, torture" -msgstr "고어, 자해, 고문" +#~ msgid "Gore, self-harm, torture" +#~ msgstr "고어, 자해, 고문" #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "핸들" #: src/state/queries/preferences/moderation.ts:123 -msgid "Hate Group Iconography" -msgstr "증오 단체 도상학" +#~ msgid "Hate Group Iconography" +#~ msgstr "증오 단체 도상학" #: src/view/shell/desktop/RightNav.tsx:102 #: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "도움말" -#: src/view/com/modals/AddAppPasswords.tsx:152 +#: src/view/com/modals/AddAppPasswords.tsx:148 msgid "Here is your app password." msgstr "앱 비밀번호입니다." -#: src/view/com/modals/ContentFilteringSettings.tsx:211 -#: src/view/com/modals/ContentFilteringSettings.tsx:238 -#: src/view/com/notifications/FeedItem.tsx:327 +#: src/view/com/notifications/FeedItem.tsx:324 #: src/view/com/util/moderation/ContentHider.tsx:103 msgid "Hide" msgstr "숨기기" -#: src/view/com/util/forms/PostDropdownBtn.tsx:175 +#: src/view/com/util/forms/PostDropdownBtn.tsx:173 msgid "Hide post" msgstr "게시물 숨기기" -#: src/view/com/util/forms/PostDropdownBtn.tsx:179 +#: src/view/com/util/forms/PostDropdownBtn.tsx:177 msgid "Hide this post?" msgstr "이 게시물을 숨기시겠습니까?" -#: src/view/com/notifications/FeedItem.tsx:319 +#: src/view/com/notifications/FeedItem.tsx:316 msgid "Hide user list" msgstr "사용자 리스트 숨기기" @@ -1289,14 +1266,14 @@ msgid "Home" msgstr "홈" #: src/view/com/pager/FeedsTabBarMobile.tsx:96 -#: src/view/screens/PreferencesHomeFeed.tsx:98 -#: src/view/screens/Settings.tsx:482 +#: src/view/screens/PreferencesHomeFeed.tsx:101 +#: src/view/screens/Settings.tsx:481 msgid "Home Feed Preferences" msgstr "홈 피드 설정" #: src/view/com/modals/ChangeHandle.tsx:419 -msgid "Host" -msgstr "호스트" +#~ msgid "Host" +#~ msgstr "호스트" #: src/view/com/auth/login/ForgotPasswordForm.tsx:114 msgid "Hosting provider" @@ -1316,16 +1293,16 @@ msgid "I have my own domain" msgstr "내 도메인을 가지고 있습니다" #: src/state/queries/preferences/moderation.ts:92 -msgid "i.e. pornography" -msgstr "예: 포르노그래피" +#~ msgid "i.e. pornography" +#~ msgstr "예: 포르노그래피" #: src/view/com/modals/SelfLabel.tsx:127 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 "당신이 거주하는 국가의 법률에 따라 아직 성인이 아닌 경우, 부모 또는 법적 보호자가 당신을 대신하여 본 약관을 읽어야 합니다." +#~ 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/com/modals/AltImage.tsx:97 msgid "Image alt text" @@ -1337,12 +1314,12 @@ msgid "Image options" msgstr "이미지 옵션" #: src/state/queries/preferences/moderation.ts:124 -msgid "Images of terror groups, articles covering events, etc." -msgstr "테러 단체의 이미지, 사건 관련 기사 등" +#~ msgid "Images of terror groups, articles covering events, etc." +#~ msgstr "테러 단체의 이미지, 사건 관련 기사 등" #: src/state/queries/preferences/moderation.ts:137 -msgid "Impersonation" -msgstr "사칭" +#~ msgid "Impersonation" +#~ msgstr "사칭" #: src/view/com/search/Suggestions.tsx:104 #: src/view/com/search/Suggestions.tsx:115 @@ -1350,23 +1327,22 @@ msgstr "사칭" #~ msgstr "내 네트워크" #: src/state/queries/preferences/moderation.ts:100 -msgid "Including non-sexual and artistic" -msgstr "선정적이지 않거나 예술적 콘텐츠 포함" +#~ msgid "Including non-sexual and artistic" +#~ msgstr "선정적이지 않거나 예술적 콘텐츠 포함" -#: src/view/com/auth/login/LoginForm.tsx:113 +#: src/view/com/auth/login/LoginForm.tsx:115 msgid "Invalid username or password" msgstr "잘못된 사용자 이름 또는 비밀번호" -#: src/view/screens/Settings.tsx:384 +#: src/view/screens/Settings.tsx:383 msgid "Invite" msgstr "초대" -#: src/view/com/modals/InviteCodes.tsx:93 -#: src/view/screens/Settings.tsx:372 +#: src/view/com/modals/InviteCodes.tsx:91 +#: src/view/screens/Settings.tsx:371 msgid "Invite a Friend" msgstr "친구 초대하기" -#: src/view/com/auth/create/Step2.tsx:63 #: src/view/com/auth/create/Step2.tsx:72 msgid "Invite code" msgstr "초대 코드" @@ -1380,7 +1356,6 @@ msgid "Invite codes: {invitesAvailable} available" msgstr "초대 코드: {invitesAvailable}개 사용 가능" #: src/view/com/auth/HomeLoggedOutCTA.tsx:99 -#: src/view/com/auth/SplashScreen.web.tsx:118 msgid "Jobs" msgstr "채용" @@ -1405,13 +1380,13 @@ msgstr "언어 선택" msgid "Language Settings" msgstr "언어 설정" -#: src/view/screens/Settings.tsx:542 +#: src/view/screens/Settings.tsx:541 msgid "Languages" msgstr "언어" #: src/view/com/auth/create/StepHeader.tsx:14 -msgid "Last step!" -msgstr "마지막 단계예요!" +#~ msgid "Last step!" +#~ msgstr "마지막 단계예요!" #: src/view/com/util/moderation/ContentHider.tsx:101 msgid "Learn more" @@ -1444,8 +1419,8 @@ msgid "Leaving Bluesky" msgstr "Bluesky 떠나기" #: src/view/screens/Settings.tsx:273 -msgid "Legacy storage cleared, you need to restart the app now." -msgstr "레거시 스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." +#~ msgid "Legacy storage cleared, you need to restart the app now." +#~ msgstr "레거시 스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." #: src/view/com/auth/login/Login.tsx:128 #: src/view/com/auth/login/Login.tsx:144 @@ -1458,10 +1433,10 @@ msgid "Library" msgstr "라이브러리" #: src/view/screens/Settings.tsx:446 -msgid "Light" -msgstr "밝음" +#~ msgid "Light" +#~ msgstr "밝음" -#: src/view/screens/ProfileFeed.tsx:599 +#: src/view/screens/ProfileFeed.tsx:586 msgid "Like this feed" msgstr "이 피드" @@ -1471,12 +1446,12 @@ msgid "Liked by" msgstr "좋아요 표시한 계정" #: src/view/com/notifications/FeedItem.tsx:171 -msgid "liked your custom feed{0}" -msgstr "님이 내 맞춤 피드{0}을(를) 좋아합니다" +#~ msgid "liked your custom feed{0}" +#~ msgstr "님이 내 맞춤 피드{0}을(를) 좋아합니다" #: src/view/com/notifications/FeedItem.tsx:155 -msgid "liked your post" -msgstr "님이 내 게시물을 좋아합니다" +#~ msgid "liked your post" +#~ msgstr "님이 내 게시물을 좋아합니다" #: src/view/screens/Profile.tsx:164 msgid "Likes" @@ -1490,33 +1465,33 @@ msgstr "좋아요" #~ msgid "Limit the visibility of my account to logged-out users" #~ msgstr "내 계정의 공개 범위를 로그아웃한 사용자로 제한" -#: src/view/com/modals/CreateOrEditList.tsx:187 +#: src/view/com/modals/CreateOrEditList.tsx:186 msgid "List Avatar" msgstr "리스트 아바타" #: src/view/screens/ProfileList.tsx:320 -msgid "List blocked" -msgstr "리스트 차단됨" +#~ msgid "List blocked" +#~ msgstr "리스트 차단됨" #: src/view/screens/ProfileList.tsx:364 -msgid "List deleted" -msgstr "리스트 삭제됨" +#~ msgid "List deleted" +#~ msgstr "리스트 삭제됨" #: src/view/screens/ProfileList.tsx:279 -msgid "List muted" -msgstr "리스트 뮤트됨" +#~ msgid "List muted" +#~ msgstr "리스트 뮤트됨" -#: src/view/com/modals/CreateOrEditList.tsx:200 +#: src/view/com/modals/CreateOrEditList.tsx:199 msgid "List Name" msgstr "리스트 이름" #: src/view/screens/ProfileList.tsx:339 -msgid "List unblocked" -msgstr "리스트 차단 해제됨" +#~ msgid "List unblocked" +#~ msgstr "리스트 차단 해제됨" #: src/view/screens/ProfileList.tsx:298 -msgid "List unmuted" -msgstr "리스트 언뮤트됨" +#~ msgid "List unmuted" +#~ msgstr "리스트 언뮤트됨" #: src/view/screens/Profile.tsx:166 #: src/view/shell/desktop/LeftNav.tsx:379 @@ -1535,7 +1510,6 @@ msgid "Load new notifications" msgstr "새 알림 불러오기" #: src/view/com/feeds/FeedPage.tsx:189 -#: src/view/screens/ProfileList.tsx:655 msgid "Load new posts" msgstr "새 게시물 불러오기" @@ -1587,9 +1561,8 @@ msgstr "메뉴" msgid "Message from server" msgstr "서버에서 보낸 메시지" -#: src/view/com/modals/CreateOrEditList.tsx:68 #: src/view/screens/Moderation.tsx:64 -#: src/view/screens/Settings.tsx:564 +#: src/view/screens/Settings.tsx:563 #: src/view/shell/desktop/LeftNav.tsx:397 #: src/view/shell/Drawer.tsx:509 #: src/view/shell/Drawer.tsx:510 @@ -1608,9 +1581,9 @@ msgstr "검토 리스트" msgid "More feeds" msgstr "피드 더 보기" -#: src/view/com/profile/ProfileHeader.tsx:552 -#: src/view/screens/ProfileFeed.tsx:371 -#: src/view/screens/ProfileList.tsx:592 +#: src/view/com/profile/ProfileHeader.tsx:548 +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileList.tsx:584 msgid "More options" msgstr "옵션 더 보기" @@ -1622,15 +1595,15 @@ msgstr "옵션 더 보기" msgid "Most-liked replies first" msgstr "좋아요 많은 순" -#: src/view/com/profile/ProfileHeader.tsx:374 +#: src/view/com/profile/ProfileHeader.tsx:370 msgid "Mute Account" msgstr "계정 뮤트" -#: src/view/screens/ProfileList.tsx:519 +#: src/view/screens/ProfileList.tsx:511 msgid "Mute accounts" msgstr "계정 뮤트" -#: src/view/screens/ProfileList.tsx:466 +#: src/view/screens/ProfileList.tsx:458 msgid "Mute list" msgstr "리스트 뮤트" @@ -1638,7 +1611,7 @@ msgstr "리스트 뮤트" msgid "Mute these accounts?" msgstr "이 계정들을 뮤트하시겠습니까?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:159 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Mute thread" msgstr "스레드 뮤트" @@ -1674,25 +1647,23 @@ msgstr "내 피드" msgid "My Profile" msgstr "내 프로필" -#: src/view/screens/Settings.tsx:521 +#: src/view/screens/Settings.tsx:520 msgid "My Saved Feeds" msgstr "내 저장된 피드" -#: src/view/com/modals/AddAppPasswords.tsx:181 -#: src/view/com/modals/CreateOrEditList.tsx:212 +#: src/view/com/modals/AddAppPasswords.tsx:177 +#: src/view/com/modals/CreateOrEditList.tsx:211 msgid "Name" msgstr "이름" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:74 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." msgstr "팔로워와 데이터에 대한 접근 권한을 잃지 않습니다." #: src/view/com/modals/ChangeHandle.tsx:518 -msgid "Nevermind, create a handle for me" -msgstr "취소하고 나만의 핸들 만들기" +#~ msgid "Nevermind, create a handle for me" +#~ msgstr "취소하고 나만의 핸들 만들기" -#: src/view/com/modals/CreateOrEditList.tsx:178 #: src/view/screens/Lists.tsx:76 #: src/view/screens/ModerationModlists.tsx:78 msgid "New" @@ -1701,7 +1672,7 @@ msgstr "신규" #: src/view/com/feeds/FeedPage.tsx:200 #: src/view/screens/Feeds.tsx:507 #: src/view/screens/Profile.tsx:354 -#: src/view/screens/ProfileFeed.tsx:441 +#: src/view/screens/ProfileFeed.tsx:431 #: src/view/screens/ProfileList.tsx:194 #: src/view/screens/ProfileList.tsx:222 #: src/view/shell/desktop/LeftNav.tsx:248 @@ -1719,11 +1690,10 @@ msgstr "새로운 순" #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 #: src/view/com/auth/login/ForgotPasswordForm.tsx:184 -#: src/view/com/auth/login/LoginForm.tsx:282 +#: src/view/com/auth/login/LoginForm.tsx:286 #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:105 msgid "Next" msgstr "다음" @@ -1731,27 +1701,27 @@ msgstr "다음" msgid "Next image" msgstr "다음 이미지" -#: src/view/screens/PreferencesHomeFeed.tsx:123 -#: src/view/screens/PreferencesHomeFeed.tsx:194 -#: src/view/screens/PreferencesHomeFeed.tsx:229 -#: src/view/screens/PreferencesHomeFeed.tsx:266 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:197 +#: src/view/screens/PreferencesHomeFeed.tsx:232 +#: src/view/screens/PreferencesHomeFeed.tsx:269 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" msgstr "아니요" -#: src/view/screens/ProfileFeed.tsx:592 -#: src/view/screens/ProfileList.tsx:729 +#: src/view/screens/ProfileFeed.tsx:579 +#: src/view/screens/ProfileList.tsx:720 msgid "No description" msgstr "설명 없음" #: src/view/com/modals/ChangeHandle.tsx:404 -msgid "No DNS Panel" -msgstr "DNS 패널 없음" +#~ msgid "No DNS Panel" +#~ msgstr "DNS 패널 없음" #: src/view/com/profile/ProfileHeader.tsx:217 -msgid "No longer following {0}" -msgstr "더 이상 {0}(을)를 팔로우하지 않음" +#~ msgid "No longer following {0}" +#~ msgstr "더 이상 {0}(을)를 팔로우하지 않음" #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 msgid "No result" @@ -1808,8 +1778,8 @@ msgid "Notifications" msgstr "알림" #: src/lib/strings/time.ts:20 -msgid "now" -msgstr "지금" +#~ msgid "now" +#~ msgstr "지금" #: src/view/com/util/ErrorBoundary.tsx:34 msgid "Oh no!" @@ -1824,10 +1794,10 @@ msgid "Oldest replies first" msgstr "오래된 순" #: src/view/screens/Settings.tsx:229 -msgid "Onboarding reset" -msgstr "온보딩 재설정" +#~ msgid "Onboarding reset" +#~ msgstr "온보딩 재설정" -#: src/view/com/composer/Composer.tsx:360 +#: src/view/com/composer/Composer.tsx:363 msgid "One or more images is missing alt text." msgstr "하나 이상의 이미지에 대체 텍스트가 누락되었습니다." @@ -1835,11 +1805,16 @@ msgstr "하나 이상의 이미지에 대체 텍스트가 누락되었습니다. msgid "Only {0} can reply." msgstr "{0}만 답글을 달 수 있습니다." +#: src/view/com/composer/Composer.tsx:468 +#: src/view/com/composer/Composer.tsx:469 +msgid "Open emoji picker" +msgstr "" + #: src/view/com/pager/FeedsTabBarMobile.tsx:76 msgid "Open navigation" msgstr "내비게이션을 엽니다" -#: src/view/screens/Settings.tsx:534 +#: src/view/screens/Settings.tsx:533 msgid "Opens configurable language settings" msgstr "구성 가능한 언어 설정을 엽니다" @@ -1852,31 +1827,31 @@ msgstr "초대 코드 목록 열기" msgid "Opens modal for using custom domain" msgstr "사용자 지정 도메인을 사용하기 위한 대화 상자를 엽니다" -#: src/view/screens/Settings.tsx:559 +#: src/view/screens/Settings.tsx:558 msgid "Opens moderation settings" msgstr "검토 설정을 엽니다" -#: src/view/screens/Settings.tsx:515 +#: src/view/screens/Settings.tsx:514 msgid "Opens screen with all saved feeds" msgstr "모든 저장된 피드 화면을 엽니다" -#: src/view/screens/Settings.tsx:582 +#: src/view/screens/Settings.tsx:581 msgid "Opens the app password settings page" msgstr "비밀번호 설정 페이지를 엽니다" -#: src/view/screens/Settings.tsx:474 +#: src/view/screens/Settings.tsx:473 msgid "Opens the home feed preferences" msgstr "홈 피드 설정을 엽니다" -#: src/view/screens/Settings.tsx:665 +#: src/view/screens/Settings.tsx:664 msgid "Opens the storybook page" msgstr "스토리북 페이지를 엽니다" -#: src/view/screens/Settings.tsx:645 +#: src/view/screens/Settings.tsx:644 msgid "Opens the system log page" msgstr "시스템 로그 페이지를 엽니다" -#: src/view/screens/Settings.tsx:495 +#: src/view/screens/Settings.tsx:494 msgid "Opens the threads preferences" msgstr "스레드 설정을 엽니다" @@ -1885,16 +1860,16 @@ msgid "Or combine these options:" msgstr "또는 다음 옵션을 결합하세요:" #: src/view/com/auth/create/Step1.tsx:67 -msgid "Other" -msgstr "기타" +#~ msgid "Other" +#~ msgstr "기타" #: src/view/com/auth/login/ChooseAccountForm.tsx:138 msgid "Other account" msgstr "다른 계정" #: src/state/queries/preferences/moderation.ts:99 -msgid "Other Nudity" -msgstr "기타 신체 노출" +#~ msgid "Other Nudity" +#~ msgstr "기타 신체 노출" #: src/view/com/modals/ServerInput.tsx:88 msgid "Other service" @@ -1911,9 +1886,9 @@ msgstr "페이지를 찾을 수 없음" #: src/view/com/auth/create/Step2.tsx:122 #: src/view/com/auth/create/Step2.tsx:132 -#: src/view/com/auth/login/LoginForm.tsx:217 +#: src/view/com/auth/login/LoginForm.tsx:221 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 -#: src/view/com/modals/DeleteAccount.tsx:193 +#: src/view/com/modals/DeleteAccount.tsx:191 msgid "Password" msgstr "비밀번호" @@ -1926,12 +1901,12 @@ msgid "Password updated!" msgstr "비밀번호 변경됨" #: src/view/com/lightbox/Lightbox.tsx:66 -msgid "Permission to access camera roll is required." -msgstr "앨범에 접근할 수 있는 권한이 필요합니다." +#~ msgid "Permission to access camera roll is required." +#~ msgstr "앨범에 접근할 수 있는 권한이 필요합니다." #: src/view/com/lightbox/Lightbox.tsx:72 -msgid "Permission to access camera roll was denied. Please enable it in your system settings." -msgstr "앨범에 접근할 수 있는 권한이 거부되었습니다. 시스템 설정에서 활성화하세요." +#~ msgid "Permission to access camera roll was denied. Please enable it in your system settings." +#~ msgstr "앨범에 접근할 수 있는 권한이 거부되었습니다. 시스템 설정에서 활성화하세요." #: src/view/com/modals/SelfLabel.tsx:121 msgid "Pictures meant for adults." @@ -1939,8 +1914,8 @@ msgstr "성인용 사진." #: src/view/screens/ProfileFeed.tsx:362 #: src/view/screens/ProfileList.tsx:556 -msgid "Pin to home" -msgstr "홈에 고정" +#~ msgid "Pin to home" +#~ msgstr "홈에 고정" #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" @@ -1959,10 +1934,10 @@ msgid "Please confirm your email before changing it. This is a temporary require msgstr "이메일을 변경하기 전에 이메일을 확인해 주세요. 이는 이메일 변경 도구가 추가되는 동안 일시적으로 요구되는 사항이며 곧 제거될 예정입니다." #: src/view/com/modals/AddAppPasswords.tsx:89 -msgid "Please enter a name for your app password. All spaces is not allowed." -msgstr "앱 비밀번호의 이름을 입력하세요. 모든 공백은 허용되지 않습니다." +#~ msgid "Please enter a name for your app password. All spaces is not allowed." +#~ msgstr "앱 비밀번호의 이름을 입력하세요. 모든 공백은 허용되지 않습니다." -#: src/view/com/modals/AddAppPasswords.tsx:144 +#: src/view/com/modals/AddAppPasswords.tsx:140 msgid "Please enter a unique name for this App Password or use our randomly generated one." msgstr "이 앱 비밀번호에 대해 고유한 이름을 입력하거나 무작위로 생성된 이름을 사용하세요." @@ -1970,13 +1945,13 @@ msgstr "이 앱 비밀번호에 대해 고유한 이름을 입력하거나 무 msgid "Please enter your email." msgstr "이메일을 입력하세요." -#: src/view/com/modals/DeleteAccount.tsx:182 +#: src/view/com/modals/DeleteAccount.tsx:180 msgid "Please enter your password as well:" msgstr "비밀번호도 입력해 주세요:" #: src/lib/hooks/useAccountSwitcher.ts:42 -msgid "Please sign in as @{0}" -msgstr "@{0}(으)로 로그인하세요." +#~ msgid "Please sign in as @{0}" +#~ msgstr "@{0}(으)로 로그인하세요." #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 @@ -1988,10 +1963,11 @@ msgstr "이 콘텐츠 경고가 잘못 적용되었다고 생각하는 이유를 #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "이 결정이 잘못되었다고 생각하는 이유를 알려주세요." -#: src/view/com/composer/Composer.tsx:214 +#: src/view/com/composer/Composer.tsx:215 msgid "Please wait for your link card to finish loading" msgstr "링크 카드를 완전히 불러올 때까지 기다려주세요." +#: src/view/com/composer/Composer.tsx:346 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" @@ -1999,12 +1975,12 @@ msgstr "게시물" #: src/view/com/composer/Composer.tsx:336 #: src/view/com/composer/Composer.tsx:343 -msgid "Post (verb)" -msgstr "게시하기" +#~ msgid "Post (verb)" +#~ msgstr "게시하기" #: src/view/com/util/forms/PostDropdownBtn.tsx:74 -msgid "Post deleted" -msgstr "게시물 삭제됨" +#~ msgid "Post deleted" +#~ msgstr "게시물 삭제됨" #: src/view/com/post-thread/PostThread.tsx:378 msgid "Post hidden" @@ -2046,9 +2022,8 @@ msgstr "내 팔로우 우선시키기" msgid "Privacy" msgstr "개인정보" -#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings.tsx:751 +#: src/view/screens/Settings.tsx:750 #: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "개인정보 처리방침" @@ -2066,10 +2041,10 @@ msgid "Profile" msgstr "프로필" #: src/view/com/modals/EditProfile.tsx:128 -msgid "Profile updated" -msgstr "프로필 업데이트됨" +#~ msgid "Profile updated" +#~ msgstr "프로필 업데이트됨" -#: src/view/screens/Settings.tsx:809 +#: src/view/screens/Settings.tsx:808 msgid "Protect your account by verifying your email." msgstr "이메일을 인증하여 계정을 보호하세요." @@ -2082,12 +2057,12 @@ msgid "Public, shareable lists which can drive feeds." msgstr "피드를 탐색할 수 있는 공개적이고 공유할 수 있는 목록입니다." #: src/view/com/composer/Composer.tsx:324 -msgid "Publish post" -msgstr "게시물 게시하기" +#~ msgid "Publish post" +#~ msgstr "게시물 게시하기" #: src/view/com/composer/Composer.tsx:324 -msgid "Publish reply" -msgstr "답글 게시하기" +#~ msgid "Publish reply" +#~ msgstr "답글 게시하기" #: src/view/com/modals/Repost.tsx:52 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 @@ -2141,7 +2116,7 @@ msgstr "피드 제거" #: src/view/com/feeds/FeedSourceCard.tsx:105 #: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/screens/ProfileFeed.tsx:281 +#: src/view/screens/ProfileFeed.tsx:271 msgid "Remove from my feeds" msgstr "내 피드에서 제거" @@ -2168,8 +2143,8 @@ msgstr "리스트에서 제거됨" #: src/view/com/feeds/FeedSourceCard.tsx:111 #: src/view/com/feeds/FeedSourceCard.tsx:178 -msgid "Removed from my feeds" -msgstr "내 피드에서 제거됨" +#~ msgid "Removed from my feeds" +#~ msgstr "내 피드에서 제거됨" #: src/view/screens/Profile.tsx:162 msgid "Replies" @@ -2180,31 +2155,31 @@ msgid "Replies to this thread are disabled" msgstr "이 스레드에 대한 답글이 비활성화됩니다." #: src/view/com/composer/Composer.tsx:336 -msgid "Reply" -msgstr "답글" +#~ msgid "Reply" +#~ msgstr "답글" -#: src/view/screens/PreferencesHomeFeed.tsx:138 +#: src/view/screens/PreferencesHomeFeed.tsx:141 msgid "Reply Filters" msgstr "답글 필터" -#: src/view/com/modals/report/Modal.tsx:169 +#: src/view/com/modals/report/Modal.tsx:166 msgid "Report {collectionName}" msgstr "{collectionName} 신고" -#: src/view/com/profile/ProfileHeader.tsx:408 +#: src/view/com/profile/ProfileHeader.tsx:404 msgid "Report Account" msgstr "계정 신고" -#: src/view/screens/ProfileFeed.tsx:301 +#: src/view/screens/ProfileFeed.tsx:291 msgid "Report feed" msgstr "피드 신고" -#: src/view/screens/ProfileList.tsx:434 +#: src/view/screens/ProfileList.tsx:426 msgid "Report List" msgstr "리스트 신고" #: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:198 +#: src/view/com/util/forms/PostDropdownBtn.tsx:196 msgid "Report post" msgstr "포스트 신고" @@ -2222,16 +2197,16 @@ msgid "Reposted by" msgstr "재게시한 계정" #: src/view/com/posts/FeedItem.tsx:203 -msgid "Reposted by {0}" -msgstr "{0} 님이 재게시함" +#~ msgid "Reposted by {0}" +#~ msgstr "{0} 님이 재게시함" #: src/view/com/posts/FeedItem.tsx:220 -msgid "Reposted by <0/>" -msgstr "<0/> 님이 재게시함" +#~ msgid "Reposted by <0/>" +#~ msgstr "<0/> 님이 재게시함" #: src/view/com/notifications/FeedItem.tsx:162 -msgid "reposted your post" -msgstr "님이 내 게시물을 재게시했습니다" +#~ msgid "reposted your post" +#~ msgstr "님이 내 게시물을 재게시했습니다" #: src/view/com/modals/ChangeEmail.tsx:181 #: src/view/com/modals/ChangeEmail.tsx:183 @@ -2242,7 +2217,7 @@ msgstr "변경 요청" #~ msgid "Request to limit the visibility of my account" #~ msgstr "내 계정의 공개 범위 제한 요청하기" -#: src/view/screens/Settings.tsx:423 +#: src/view/screens/Settings.tsx:422 msgid "Require alt text before posting" msgstr "게시하기 전 대체 텍스트 필수" @@ -2254,7 +2229,7 @@ msgstr "이 제공자에서 필수" msgid "Reset code" msgstr "코드 재설정" -#: src/view/screens/Settings.tsx:687 +#: src/view/screens/Settings.tsx:686 msgid "Reset onboarding state" msgstr "온보딩 상태 재설정" @@ -2262,22 +2237,22 @@ msgstr "온보딩 상태 재설정" msgid "Reset password" msgstr "비밀번호 재설정" -#: src/view/screens/Settings.tsx:677 +#: src/view/screens/Settings.tsx:676 msgid "Reset preferences state" msgstr "설정 상태 재설정" -#: src/view/screens/Settings.tsx:685 +#: src/view/screens/Settings.tsx:684 msgid "Resets the onboarding state" msgstr "온보딩 상태 재설정" -#: src/view/screens/Settings.tsx:675 +#: src/view/screens/Settings.tsx:674 msgid "Resets the preferences state" msgstr "설정 상태 재설정" #: src/view/com/auth/create/CreateAccount.tsx:163 #: src/view/com/auth/create/CreateAccount.tsx:167 -#: src/view/com/auth/login/LoginForm.tsx:259 -#: src/view/com/auth/login/LoginForm.tsx:262 +#: src/view/com/auth/login/LoginForm.tsx:263 +#: src/view/com/auth/login/LoginForm.tsx:266 #: src/view/com/util/error/ErrorMessage.tsx:55 #: src/view/com/util/error/ErrorScreen.tsx:65 msgid "Retry" @@ -2287,14 +2262,12 @@ msgstr "다시 시도" #~ msgid "Retry change handle" #~ msgstr "핸들 변경 다시 시도" -#: src/view/com/modals/AltImage.tsx:115 #: 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:250 -#: src/view/com/modals/CreateOrEditList.tsx:258 -#: src/view/com/modals/EditProfile.tsx:224 -#: src/view/screens/ProfileFeed.tsx:354 +#: src/view/com/modals/CreateOrEditList.tsx:249 +#: src/view/com/modals/CreateOrEditList.tsx:257 +#: src/view/com/modals/EditProfile.tsx:223 msgid "Save" msgstr "저장" @@ -2306,7 +2279,7 @@ msgstr "대체 텍스트 저장" #~ msgid "Save changes" #~ msgstr "변경 사항 저장" -#: src/view/com/modals/EditProfile.tsx:232 +#: src/view/com/modals/EditProfile.tsx:231 msgid "Save Changes" msgstr "변경 사항 저장" @@ -2323,14 +2296,12 @@ msgid "Saved Feeds" msgstr "저장된 피드" #: src/view/com/lightbox/Lightbox.tsx:81 -msgid "Saved to your camera roll." -msgstr "내 앨범에 저장됨" +#~ msgid "Saved to your camera roll." +#~ msgstr "내 앨범에 저장됨" #: 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:406 -#: src/view/screens/Search/Search.tsx:559 #: src/view/screens/Search/Search.tsx:572 #: src/view/shell/bottom-bar/BottomBar.tsx:159 #: src/view/shell/desktop/LeftNav.tsx:324 @@ -2347,7 +2318,6 @@ msgstr "검색" #: 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 "사용자 검색하기" @@ -2356,8 +2326,8 @@ msgid "Security Step Required" msgstr "보안 단계 필요" #: src/view/screens/SavedFeeds.tsx:163 -msgid "See this guide" -msgstr "이 가이드" +#~ msgid "See this guide" +#~ msgstr "이 가이드" #: src/view/com/auth/HomeLoggedOutCTA.tsx:39 msgid "See what's next" @@ -2371,7 +2341,7 @@ msgstr "Bluesky Social 선택" msgid "Select from an existing account" msgstr "기존 계정에서 선택" -#: src/view/com/auth/login/LoginForm.tsx:143 +#: src/view/com/auth/login/LoginForm.tsx:147 msgid "Select service" msgstr "서비스 선택" @@ -2391,11 +2361,11 @@ msgstr "피드에서 번역을 위해 선호하는 언어를 선택합니다." msgid "Send Confirmation Email" msgstr "확인 이메일 전송" -#: src/view/com/modals/DeleteAccount.tsx:129 +#: src/view/com/modals/DeleteAccount.tsx:127 msgid "Send email" msgstr "이메일 전송" -#: src/view/com/modals/DeleteAccount.tsx:140 +#: src/view/com/modals/DeleteAccount.tsx:138 msgid "Send Email" msgstr "이메일 전송" @@ -2412,15 +2382,15 @@ msgstr "신고 전송" msgid "Set new password" msgstr "새 비밀번호 설정" -#: src/view/screens/PreferencesHomeFeed.tsx:219 +#: src/view/screens/PreferencesHomeFeed.tsx:222 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "피드에서 모든 인용 게시물을 숨기려면 이 설정을 \"아니요\"로 설정합니다. 재게시는 계속 표시됩니다." -#: src/view/screens/PreferencesHomeFeed.tsx:116 +#: src/view/screens/PreferencesHomeFeed.tsx:119 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "피드에서 모든 답글을 숨기려면 이 설정을 \"아니요\"로 설정합니다." -#: src/view/screens/PreferencesHomeFeed.tsx:185 +#: src/view/screens/PreferencesHomeFeed.tsx:188 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "피드에서 모든 재게시를 숨기려면 이 설정을 \"아니요\"로 설정합니다." @@ -2428,11 +2398,11 @@ msgstr "피드에서 모든 재게시를 숨기려면 이 설정을 \"아니요\ msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "스레드 보기에 답글을 표시하려면 이 설정을 \"예\"로 설정합니다. 이는 실험적인 기능입니다." -#: src/view/screens/PreferencesHomeFeed.tsx:255 +#: src/view/screens/PreferencesHomeFeed.tsx:258 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." msgstr "팔로우한 피드에 저장된 피드 샘플을 표시하려면 이 설정을 \"예\"로 설정합니다. 이는 실험적인 기능입니다." -#: src/view/screens/Settings.tsx:278 +#: src/view/screens/Settings.tsx:277 #: src/view/shell/desktop/LeftNav.tsx:433 #: src/view/shell/Drawer.tsx:565 #: src/view/shell/Drawer.tsx:566 @@ -2444,16 +2414,16 @@ msgid "Sexual activity or erotic nudity." msgstr "성행위 또는 선정적인 노출." #: src/state/queries/preferences/moderation.ts:107 -msgid "Sexually Suggestive" -msgstr "성적 암시" +#~ msgid "Sexually Suggestive" +#~ msgstr "성적 암시" -#: src/view/com/profile/ProfileHeader.tsx:342 -#: src/view/com/util/forms/PostDropdownBtn.tsx:141 -#: src/view/screens/ProfileList.tsx:393 +#: src/view/com/profile/ProfileHeader.tsx:338 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/screens/ProfileList.tsx:385 msgid "Share" msgstr "공유" -#: src/view/screens/ProfileFeed.tsx:313 +#: src/view/screens/ProfileFeed.tsx:303 msgid "Share feed" msgstr "피드 공유" @@ -2461,29 +2431,28 @@ msgstr "피드 공유" #~ msgid "Share link" #~ msgstr "링크 공유" -#: src/view/com/modals/ContentFilteringSettings.tsx:253 #: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/screens/Settings.tsx:317 +#: src/view/screens/Settings.tsx:316 msgid "Show" msgstr "표시" #: src/view/screens/PreferencesHomeFeed.tsx:62 -msgid "Show all replies" -msgstr "모든 답글 표시" +#~ msgid "Show all replies" +#~ msgstr "모든 답글 표시" #: src/view/com/util/moderation/ScreenHider.tsx:132 msgid "Show anyway" msgstr "무시하고 표시" -#: src/view/screens/PreferencesHomeFeed.tsx:252 +#: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "내 피드에서 게시물 표시" -#: src/view/screens/PreferencesHomeFeed.tsx:216 +#: src/view/screens/PreferencesHomeFeed.tsx:219 msgid "Show Quote Posts" msgstr "인용 게시물 표시" -#: src/view/screens/PreferencesHomeFeed.tsx:113 +#: src/view/screens/PreferencesHomeFeed.tsx:116 msgid "Show Replies" msgstr "답글 표시" @@ -2492,14 +2461,14 @@ msgid "Show replies by people you follow before all other replies." msgstr "내가 팔로우하는 사람들의 답글을 다른 모든 답글보다 먼저 표시합니다." #: src/view/screens/PreferencesHomeFeed.tsx:64 -msgid "Show replies with at least {value} {0}" -msgstr "좋아요가 {value}개 이상인 답글 표시" +#~ msgid "Show replies with at least {value} {0}" +#~ msgstr "좋아요가 {value}개 이상인 답글 표시" -#: src/view/screens/PreferencesHomeFeed.tsx:182 +#: src/view/screens/PreferencesHomeFeed.tsx:185 msgid "Show Reposts" msgstr "재게시 표시" -#: src/view/com/notifications/FeedItem.tsx:348 +#: src/view/com/notifications/FeedItem.tsx:345 msgid "Show users" msgstr "사용자 표시" @@ -2514,13 +2483,12 @@ msgstr "사용자 표시" #: src/view/shell/bottom-bar/BottomBarWeb.tsx:180 #: 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:57 -#: src/view/com/auth/SplashScreen.web.tsx:88 +#: src/view/com/auth/SplashScreen.web.tsx:87 msgid "Sign In" msgstr "로그인" @@ -2533,14 +2501,12 @@ msgstr "{0}(으)로 로그인" msgid "Sign in as..." msgstr "로그인" -#: src/view/com/auth/login/LoginForm.tsx:130 +#: src/view/com/auth/login/LoginForm.tsx:134 msgid "Sign into" msgstr "로그인" #: src/view/com/modals/SwitchAccount.tsx:64 #: src/view/com/modals/SwitchAccount.tsx:67 -#: src/view/screens/Settings.tsx:102 -#: src/view/screens/Settings.tsx:105 msgid "Sign out" msgstr "로그아웃" @@ -2564,22 +2530,22 @@ msgstr "가입 또는 로그인하여 대화에 참여하세요" msgid "Sign-in Required" msgstr "로그인 필요" -#: src/view/screens/Settings.tsx:328 +#: src/view/screens/Settings.tsx:327 msgid "Signed in as" msgstr "로그인한 계정" #: src/lib/hooks/useAccountSwitcher.ts:36 #: src/view/com/auth/login/ChooseAccountForm.tsx:103 -msgid "Signed in as @{0}" -msgstr "@{0}(으)로 로그인했습니다." +#~ msgid "Signed in as @{0}" +#~ msgstr "@{0}(으)로 로그인했습니다." #: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 msgid "Skip" msgstr "건너뛰기" #: src/lib/hooks/useAccountSwitcher.ts:47 -msgid "Sorry! We need you to enter your password." -msgstr "죄송합니다. 비밀번호를 입력해 주세요." +#~ msgid "Sorry! We need you to enter your password." +#~ msgstr "죄송합니다. 비밀번호를 입력해 주세요." #: src/App.native.tsx:57 #~ msgid "Sorry! Your session expired. Please log in again." @@ -2594,8 +2560,8 @@ msgid "Sort replies to the same post by:" msgstr "동일한 게시물에 대한 답글을 정렬하는 기준입니다." #: src/state/queries/preferences/moderation.ts:130 -msgid "Spam" -msgstr "스팸" +#~ msgid "Spam" +#~ msgstr "스팸" #: src/view/com/modals/crop-image/CropImage.web.tsx:122 msgid "Square" @@ -2606,23 +2572,23 @@ msgstr "정사각형" msgid "Staging" msgstr "스테이징" -#: src/view/screens/Settings.tsx:731 +#: src/view/screens/Settings.tsx:730 msgid "Status page" msgstr "상태 페이지" #: src/view/com/auth/create/CreateAccount.tsx:120 -msgid "Step {0}" -msgstr "{0}단계" +#~ msgid "Step {0}" +#~ msgstr "{0}단계" #: src/view/com/auth/create/StepHeader.tsx:16 -msgid "Step {step} of 3" -msgstr "3단계 중 {step}단계" +#~ msgid "Step {step} of 3" +#~ msgstr "3단계 중 {step}단계" #: src/view/screens/Settings.tsx:269 -msgid "Storage cleared, you need to restart the app now." -msgstr "스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." +#~ msgid "Storage cleared, you need to restart the app now." +#~ msgstr "스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." -#: src/view/screens/Settings.tsx:667 +#: src/view/screens/Settings.tsx:666 msgid "Storybook" msgstr "스토리북" @@ -2630,11 +2596,11 @@ msgstr "스토리북" msgid "Submit" msgstr "확인" -#: src/view/screens/ProfileList.tsx:583 +#: src/view/screens/ProfileList.tsx:575 msgid "Subscribe" msgstr "구독" -#: src/view/screens/ProfileList.tsx:579 +#: src/view/screens/ProfileList.tsx:571 msgid "Subscribe to this list" msgstr "이 리스트로 구독" @@ -2643,8 +2609,8 @@ msgid "Suggested Follows" msgstr "팔로우 추천" #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 -msgid "Suggested for you" -msgstr "나를 위한 추천" +#~ msgid "Suggested for you" +#~ msgstr "나를 위한 추천" #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 @@ -2656,10 +2622,10 @@ msgid "Switch Account" msgstr "계정 전환" #: src/view/screens/Settings.tsx:439 -msgid "System" -msgstr "시스템" +#~ msgid "System" +#~ msgstr "시스템" -#: src/view/screens/Settings.tsx:647 +#: src/view/screens/Settings.tsx:646 msgid "System log" msgstr "시스템 로그" @@ -2671,8 +2637,7 @@ msgstr "세로" msgid "Terms" msgstr "이용약관" -#: src/view/com/auth/create/Policies.tsx:59 -#: src/view/screens/Settings.tsx:745 +#: src/view/screens/Settings.tsx:744 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" @@ -2684,14 +2649,14 @@ msgid "Text input field" msgstr "텍스트 입력 필드" #: src/view/com/modals/report/Modal.tsx:82 -msgid "Thank you for your report! We'll look into it promptly." -msgstr "신고해 주셔서 감사합니다! 즉시 검토하겠습니다." +#~ msgid "Thank you for your report! We'll look into it promptly." +#~ msgstr "신고해 주셔서 감사합니다! 즉시 검토하겠습니다." #: src/view/com/modals/ChangeHandle.tsx:464 -msgid "That contains the following:" -msgstr "텍스트 파일 내용:" +#~ msgid "That contains the following:" +#~ msgstr "텍스트 파일 내용:" -#: src/view/com/profile/ProfileHeader.tsx:310 +#: src/view/com/profile/ProfileHeader.tsx:306 msgid "The account will be able to interact with you after unblocking." msgstr "차단을 해제하면 해당 계정이 나와 상호작용할 수 있게 됩니다." @@ -2716,44 +2681,44 @@ msgid "The support form has been moved. If you need help, please<0/> or visit {H msgstr "지원 양식이 이동되었습니다. 도움이 필요하다면 {HELP_DESK_URL}을 방문하거나 <0/>로 문의해 주세요." #: src/view/screens/Debug.tsx:184 -msgid "The task has been completed" -msgstr "작업을 완료했습니다." +#~ msgid "The task has been completed" +#~ msgstr "작업을 완료했습니다." #: src/view/screens/Debug.tsx:188 -msgid "The task has been completed successfully and with no problems" -msgstr "작업을 문제 없이 성공적으로 완료했습니다." +#~ msgid "The task has been completed successfully and with no problems" +#~ msgstr "작업을 문제 없이 성공적으로 완료했습니다." #: src/view/screens/TermsOfService.tsx:33 msgid "The Terms of Service have been moved to" msgstr "서비스 이용약관이 다음으로 이동되었습니다:" #: src/view/screens/ProfileFeed.tsx:557 -msgid "There was an an issue contacting the server, please check your internet connection and try again." -msgstr "서버에 연결하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." +#~ msgid "There was an an issue contacting the server, please check your internet connection and try again." +#~ msgstr "서버에 연결하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." #: src/view/screens/ProfileFeed.tsx:218 -msgid "There was an an issue updating your feeds, please check your internet connection and try again." -msgstr "피드를 업데이트하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." +#~ msgid "There was an an issue updating your feeds, please check your internet connection and try again." +#~ msgstr "피드를 업데이트하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." #: src/view/screens/ProfileFeed.tsx:245 #: src/view/screens/ProfileList.tsx:263 #: 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 "서버에 연결하는 동안 문제가 발생했습니다." +#~ msgid "There was an issue contacting the server" +#~ msgstr "서버에 연결하는 동안 문제가 발생했습니다." #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:58 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:67 #: 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 "서버에 연결하는 동안 문제가 발생했습니다." +#~ msgid "There was an issue contacting your server" +#~ msgstr "서버에 연결하는 동안 문제가 발생했습니다." #: src/view/com/modals/ContentFilteringSettings.tsx:126 -msgid "There was an issue syncing your preferences with the server" -msgstr "설정을 서버와 동기화하는 동안 문제가 발생했습니다." +#~ msgid "There was an issue syncing your preferences with the server" +#~ msgstr "설정을 서버와 동기화하는 동안 문제가 발생했습니다." #: src/view/com/profile/ProfileHeader.tsx:204 #: src/view/com/profile/ProfileHeader.tsx:225 @@ -2761,15 +2726,15 @@ msgstr "설정을 서버와 동기화하는 동안 문제가 발생했습니다. #: 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 "문제가 발생했습니다! {0}" +#~ msgid "There was an issue! {0}" +#~ msgstr "문제가 발생했습니다! {0}" #: src/view/screens/ProfileList.tsx:284 #: src/view/screens/ProfileList.tsx:303 #: src/view/screens/ProfileList.tsx:325 #: src/view/screens/ProfileList.tsx:344 -msgid "There was an issue. Please check your internet connection and try again." -msgstr "문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." +#~ msgid "There was an issue. Please check your internet connection and try again." +#~ msgstr "문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." #: src/view/com/util/ErrorBoundary.tsx:35 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" @@ -2798,8 +2763,8 @@ msgstr "이 피드는 현재 트래픽이 많아 일시적으로 사용할 수 #: src/view/screens/Profile.tsx:392 #: src/view/screens/ProfileFeed.tsx:484 #: src/view/screens/ProfileList.tsx:636 -msgid "This feed is empty!" -msgstr "이 피드는 비어 있습니다." +#~ msgid "This feed is empty!" +#~ msgstr "이 피드는 비어 있습니다." #: src/view/com/modals/BirthDateSettings.tsx:61 msgid "This information is not shared with other users." @@ -2818,35 +2783,35 @@ msgid "This link is taking you to the following website:" msgstr "이 링크를 클릭하면 다음 웹사이트로 이동합니다:" #: src/view/screens/ProfileList.tsx:794 -msgid "This list is empty!" -msgstr "이 리스트는 비어 있습니다." +#~ msgid "This list is empty!" +#~ msgstr "이 리스트는 비어 있습니다." #: src/view/com/modals/AddAppPasswords.tsx:105 -msgid "This name is already in use" -msgstr "이 이름은 이미 사용 중입니다." +#~ msgid "This name is already in use" +#~ msgstr "이 이름은 이미 사용 중입니다." #: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "이 게시물은 삭제되었습니다." #: src/view/com/auth/create/Policies.tsx:46 -msgid "This service has not provided terms of service or a privacy policy." -msgstr "이 서비스에는 서비스 이용약관이나 개인정보 처리방침이 제공되지 않습니다." +#~ msgid "This service has not provided terms of service or a privacy policy." +#~ msgstr "이 서비스에는 서비스 이용약관이나 개인정보 처리방침이 제공되지 않습니다." #: src/view/com/modals/ChangeHandle.tsx:444 -msgid "This should create a domain record at:" -msgstr "이 도메인에 레코드가 추가됩니다:" +#~ msgid "This should create a domain record at:" +#~ msgstr "이 도메인에 레코드가 추가됩니다:" #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "이 경고는 미디어가 첨부된 게시물에만 사용할 수 있습니다." -#: src/view/com/util/forms/PostDropdownBtn.tsx:180 +#: src/view/com/util/forms/PostDropdownBtn.tsx:178 msgid "This will hide this post from your feeds." msgstr "피드에서 이 게시물을 숨깁니다." #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings.tsx:504 +#: src/view/screens/Settings.tsx:503 msgid "Thread Preferences" msgstr "스레드 설정" @@ -2864,7 +2829,7 @@ msgstr "변형" #: src/view/com/post-thread/PostThreadItem.tsx:705 #: src/view/com/post-thread/PostThreadItem.tsx:707 -#: src/view/com/util/forms/PostDropdownBtn.tsx:113 +#: src/view/com/util/forms/PostDropdownBtn.tsx:111 msgid "Translate" msgstr "번역" @@ -2873,31 +2838,30 @@ msgid "Try again" msgstr "다시 시도" #: src/view/com/modals/ChangeHandle.tsx:427 -msgid "Type" -msgstr "유형" +#~ msgid "Type" +#~ msgstr "유형" -#: src/view/screens/ProfileList.tsx:481 +#: src/view/screens/ProfileList.tsx:473 msgid "Un-block list" msgstr "리스트 차단 해제" -#: src/view/screens/ProfileList.tsx:466 +#: src/view/screens/ProfileList.tsx:458 msgid "Un-mute list" msgstr "리스트 언뮤트" #: src/view/com/auth/create/CreateAccount.tsx:65 #: src/view/com/auth/login/Login.tsx:76 -#: src/view/com/auth/login/LoginForm.tsx:117 +#: src/view/com/auth/login/LoginForm.tsx:120 msgid "Unable to contact your service. Please check your Internet connection." msgstr "서비스에 연결할 수 없습니다. 인터넷 연결을 확인하세요." -#: src/view/com/profile/ProfileHeader.tsx:470 -#: src/view/com/profile/ProfileHeader.tsx:473 -#: src/view/screens/ProfileList.tsx:565 +#: src/view/com/profile/ProfileHeader.tsx:466 +#: src/view/com/profile/ProfileHeader.tsx:469 msgid "Unblock" msgstr "차단 해제" -#: src/view/com/profile/ProfileHeader.tsx:308 -#: src/view/com/profile/ProfileHeader.tsx:392 +#: src/view/com/profile/ProfileHeader.tsx:304 +#: src/view/com/profile/ProfileHeader.tsx:388 msgid "Unblock Account" msgstr "계정 차단 해제" @@ -2908,37 +2872,37 @@ msgstr "재게시 취소" #: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:138 #: src/view/com/profile/FollowButton.tsx:55 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:241 -msgid "Unfollow" -msgstr "언팔로우" +#~ msgid "Unfollow" +#~ msgstr "언팔로우" -#: src/view/com/auth/create/state.ts:210 +#: src/view/com/auth/create/state.ts:216 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "아쉽지만 계정을 만들 수 있는 요건을 충족하지 못했습니다." #: src/view/screens/ProfileList.tsx:572 -msgid "Unmute" -msgstr "언뮤트" +#~ msgid "Unmute" +#~ msgstr "언뮤트" -#: src/view/com/profile/ProfileHeader.tsx:373 +#: src/view/com/profile/ProfileHeader.tsx:369 msgid "Unmute Account" msgstr "계정 언뮤트" -#: src/view/com/util/forms/PostDropdownBtn.tsx:159 +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 msgid "Unmute thread" msgstr "스레드 언뮤트" #: src/view/screens/ProfileFeed.tsx:362 #: src/view/screens/ProfileList.tsx:556 -msgid "Unpin" -msgstr "고정 해제" +#~ msgid "Unpin" +#~ msgstr "고정 해제" -#: src/view/screens/ProfileList.tsx:449 +#: src/view/screens/ProfileList.tsx:441 msgid "Unpin moderation list" msgstr "검토 리스트 고정 해제" #: src/view/screens/ProfileFeed.tsx:354 -msgid "Unsave" -msgstr "저장 해제" +#~ msgid "Unsave" +#~ msgstr "저장 해제" #: src/view/com/modals/UserAddRemoveLists.tsx:54 msgid "Update {displayName} in Lists" @@ -2949,8 +2913,8 @@ msgid "Update Available" msgstr "업데이트 사용 가능" #: src/view/com/modals/ChangeHandle.tsx:507 -msgid "Update to {handle}" -msgstr "{handle}로 변경" +#~ msgid "Update to {handle}" +#~ msgstr "{handle}로 변경" #: src/view/com/auth/login/SetNewPasswordForm.tsx:172 msgid "Updating..." @@ -2964,21 +2928,21 @@ msgstr "텍스트 파일 업로드 경로:" 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:513 msgid "Use default provider" msgstr "기본 제공자 사용" -#: src/view/com/modals/AddAppPasswords.tsx:154 +#: src/view/com/modals/AddAppPasswords.tsx:150 msgid "Use this to sign into the other app along with your handle." msgstr "이 비밀번호와 핸들을 사용하여 다른 앱에 로그인하세요." -#: src/view/com/modals/InviteCodes.tsx:200 +#: src/view/com/modals/InviteCodes.tsx:197 msgid "Used by:" msgstr "사용 계정:" #: src/view/com/modals/CreateOrEditList.tsx:68 -msgid "User" -msgstr "사용자" +#~ msgid "User" +#~ msgstr "사용자" #: src/view/com/auth/create/Step3.tsx:38 msgid "User handle" @@ -2988,12 +2952,12 @@ msgstr "사용자 핸들" msgid "User Lists" msgstr "사용자 리스트" -#: src/view/com/auth/login/LoginForm.tsx:170 -#: src/view/com/auth/login/LoginForm.tsx:188 +#: src/view/com/auth/login/LoginForm.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:192 msgid "Username or email address" msgstr "사용자 이름 또는 이메일 주소" -#: src/view/screens/ProfileList.tsx:756 +#: src/view/screens/ProfileList.tsx:747 msgid "Users" msgstr "사용자" @@ -3010,22 +2974,22 @@ msgid "Users in \"{0}\"" msgstr "\"{0}\"에 있는 사용자" #: src/view/com/modals/ChangeHandle.tsx:435 -msgid "Value" -msgstr "값" +#~ msgid "Value" +#~ msgstr "값" #: src/view/com/modals/ChangeHandle.tsx:508 -msgid "Verify {0}" -msgstr "{0} 확인" +#~ msgid "Verify {0}" +#~ msgstr "{0} 확인" -#: src/view/screens/Settings.tsx:770 +#: src/view/screens/Settings.tsx:769 msgid "Verify email" msgstr "이메일 확인" -#: src/view/screens/Settings.tsx:795 +#: src/view/screens/Settings.tsx:794 msgid "Verify my email" msgstr "내 이메일 확인" -#: src/view/screens/Settings.tsx:804 +#: src/view/screens/Settings.tsx:803 msgid "Verify My Email" msgstr "내 이메일 확인" @@ -3039,28 +3003,28 @@ msgid "View debug entry" msgstr "디버그 항목 보기" #: src/view/com/posts/FeedSlice.tsx:103 -msgid "View full thread" -msgstr "전체 스레드 보기" +#~ msgid "View full thread" +#~ msgstr "전체 스레드 보기" #: src/view/com/profile/ProfileSubpageHeader.tsx:128 msgid "View the avatar" msgstr "아바타 보기" #: src/state/queries/preferences/moderation.ts:115 -msgid "Violent / Bloody" -msgstr "폭력 및 유혈" +#~ msgid "Violent / Bloody" +#~ msgstr "폭력 및 유혈" #: src/view/com/modals/LinkWarning.tsx:73 msgid "Visit Site" msgstr "사이트 방문" #: src/view/com/modals/ContentFilteringSettings.tsx:246 -msgid "Warn" -msgstr "경고" +#~ msgid "Warn" +#~ 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/view/com/auth/create/CreateAccount.tsx:122 msgid "We're so excited to have you join us!" @@ -3086,12 +3050,11 @@ msgstr "죄송합니다! 페이지를 찾을 수 없습니다." msgid "Welcome to <0>Bluesky" msgstr "<0>Bluesky에 오신 것을 환영합니다" -#: src/view/com/modals/report/Modal.tsx:172 +#: src/view/com/modals/report/Modal.tsx:169 msgid "What is the issue with this {collectionName}?" msgstr "이 {collectionName}에 어떤 문제가 있습니까?" #: src/view/com/auth/SplashScreen.tsx:34 -#: src/view/com/composer/Composer.tsx:274 msgid "What's up?" msgstr "무슨 일이 일어나고 있나요?" @@ -3116,27 +3079,26 @@ msgstr "답글을 달 수 있는 사람" msgid "Wide" msgstr "가로" -#: src/view/com/composer/Composer.tsx:415 +#: src/view/com/composer/Composer.tsx:418 msgid "Write post" msgstr "게시물 작성" -#: src/view/com/composer/Composer.tsx:273 #: src/view/com/composer/Prompt.tsx:33 msgid "Write your reply" msgstr "답글 작성하기" -#: src/view/screens/PreferencesHomeFeed.tsx:123 -#: src/view/screens/PreferencesHomeFeed.tsx:195 -#: src/view/screens/PreferencesHomeFeed.tsx:230 -#: src/view/screens/PreferencesHomeFeed.tsx:265 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:198 +#: src/view/screens/PreferencesHomeFeed.tsx:233 +#: src/view/screens/PreferencesHomeFeed.tsx:268 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" msgstr "예" #: src/view/com/posts/FollowingEmptyState.tsx:67 -msgid "You can also discover new Custom Feeds to follow." -msgstr "팔로우할 새로운 맞춤 피드를 찾을 수도 있습니다." +#~ msgid "You can also discover new Custom Feeds to follow." +#~ msgstr "팔로우할 새로운 맞춤 피드를 찾을 수도 있습니다." #: src/view/com/auth/create/Step1.tsx:106 msgid "You can change hosting providers at any time." @@ -3147,7 +3109,7 @@ msgstr "언제든지 호스팅 제공자를 변경할 수 있습니다." msgid "You can now sign in with your new password." msgstr "이제 새 비밀번호로 로그인할 수 있습니다." -#: src/view/com/modals/InviteCodes.tsx:66 +#: src/view/com/modals/InviteCodes.tsx:64 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를 좀 더 오래 사용하신 후에 보내드리겠습니다." @@ -3189,32 +3151,32 @@ msgid "You have not muted any accounts yet. To mute an account, go to their prof msgstr "아직 어떤 계정도 뮤트하지 않았습니다. 계정을 뮤트하려면 해당 계정의 프로필로 이동하여 계정 메뉴에서 \"계정 뮤트\"를 선택하세요." #: src/view/com/modals/ContentFilteringSettings.tsx:166 -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/view/com/util/forms/PostDropdownBtn.tsx:88 -msgid "You will no longer receive notifications for this thread" -msgstr "이 스레드에 대한 알림을 더 이상 받지 않습니다." +#~ msgid "You will no longer receive notifications for this thread" +#~ msgstr "이 스레드에 대한 알림을 더 이상 받지 않습니다." #: src/view/com/util/forms/PostDropdownBtn.tsx:91 -msgid "You will now receive notifications for this thread" -msgstr "이제 이 스레드에 대한 알림을 받습니다." +#~ msgid "You will now receive notifications for this thread" +#~ msgstr "이제 이 스레드에 대한 알림을 받습니다." #: src/view/com/auth/login/SetNewPasswordForm.tsx:81 msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "\"재설정 코드\"가 포함된 이메일을 받게 되면 여기에 해당 코드를 입력한 다음 새 비밀번호를 입력합니다." #: src/view/com/composer/Composer.tsx:263 -msgid "Your {0} has been published" -msgstr "내 {0}(을)를 게시했습니다." +#~ msgid "Your {0} has been published" +#~ msgstr "내 {0}(을)를 게시했습니다." #: src/view/com/auth/create/Step2.tsx:58 msgid "Your account" msgstr "내 계정" #: src/view/com/modals/DeleteAccount.tsx:65 -msgid "Your account has been deleted" -msgstr "계정을 삭제했습니다." +#~ msgid "Your account has been deleted" +#~ msgstr "계정을 삭제했습니다." #: src/view/com/auth/create/Step2.tsx:146 msgid "Your birth date" @@ -3237,8 +3199,8 @@ msgid "Your email has not yet been verified. This is an important security step msgstr "이메일이 아직 인증되지 않았습니다. 이는 중요한 보안 단계이므로 권장하는 사항입니다." #: src/view/com/posts/FollowingEmptyState.tsx:47 -msgid "Your following feed is empty! Follow more users to see what's happening." -msgstr "팔로우 중인 피드가 비어 있습니다! 더 많은 사용자를 팔로우하여 무슨 일이 일어나고 있는지 확인하세요." +#~ msgid "Your following feed is empty! Follow more users to see what's happening." +#~ msgstr "팔로우 중인 피드가 비어 있습니다! 더 많은 사용자를 팔로우하여 무슨 일이 일어나고 있는지 확인하세요." #: src/view/com/auth/create/Step3.tsx:42 #: src/view/com/modals/ChangeHandle.tsx:270 @@ -3249,13 +3211,12 @@ msgstr "내 전체 핸들:" msgid "Your hosting provider" msgstr "호스팅 제공자" -#: src/view/screens/Settings.tsx:403 +#: src/view/screens/Settings.tsx:402 #: src/view/shell/desktop/RightNav.tsx:137 #: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "앱 비밀번호를 사용하여 로그인하면 초대 코드가 숨겨집니다" -#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:61 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "내 게시물, 좋아요, 차단 목록은 공개됩니다. 뮤트 목록은 공개되지 않습니다." From 1fed517a17fd66940e4ec5d455a91485bee22a67 Mon Sep 17 00:00:00 2001 From: Ansh Date: Thu, 4 Jan 2024 00:15:56 +0530 Subject: [PATCH 069/115] Add Portuguese Localization (#2407) * Create messages. * Update helpers.test.ts * Update helpers.ts * Update i18n.ts * Update i18n.web.ts * Update languages.ts * Update i18n.ts * Update lingui.config.js * Correct file name and remove unused variables! * Update Language-Team * Update Bump ios build * Fix for Stop the user from posting before the link card finishes loading #2328 * Update based in model en * Update last version lang * Update messages.po tsx:160 and tsx:143 * Bump ios build number and android version code * adjustment * adjustment 100% * Update Date * Update Day for Merge * Update Name Maison for Maison da Silva * fix order of case * fix lint * add tag for BR portugese * add tag for BR * update `pt` to `pt-BR` --------- Co-authored-by: Maison da Silva --- lingui.config.js | 2 +- src/locale/__tests__/helpers.test.ts | 1 + src/locale/helpers.ts | 2 + src/locale/i18n.ts | 5 + src/locale/i18n.web.ts | 4 + src/locale/languages.ts | 2 + src/locale/locales/pt-BR/messages.po | 2672 ++++++++++++++++++++++++++ 7 files changed, 2687 insertions(+), 1 deletion(-) create mode 100644 src/locale/locales/pt-BR/messages.po diff --git a/lingui.config.js b/lingui.config.js index ebf1ca08a7..6be3922ef5 100644 --- a/lingui.config.js +++ b/lingui.config.js @@ -1,6 +1,6 @@ /** @type {import('@lingui/conf').LinguiConfig} */ module.exports = { - locales: ['en', 'hi', 'ja', 'fr', 'de', 'es', 'ko', 'es'], + locales: ['en', 'hi', 'ja', 'fr', 'de', 'es', 'ko', 'es', 'pt-BR'], catalogs: [ { path: '/src/locale/locales/{locale}/messages', diff --git a/src/locale/__tests__/helpers.test.ts b/src/locale/__tests__/helpers.test.ts index d4028c643b..15b420fdee 100644 --- a/src/locale/__tests__/helpers.test.ts +++ b/src/locale/__tests__/helpers.test.ts @@ -5,6 +5,7 @@ import {AppLanguage} from '#/locale/languages' test('sanitizeAppLanguageSetting', () => { expect(sanitizeAppLanguageSetting('en')).toBe(AppLanguage.en) + expect(sanitizeAppLanguageSetting('pt-BR')).toBe(AppLanguage.pt_BR) expect(sanitizeAppLanguageSetting('hi')).toBe(AppLanguage.hi) expect(sanitizeAppLanguageSetting('foo')).toBe(AppLanguage.en) expect(sanitizeAppLanguageSetting('en,foo')).toBe(AppLanguage.en) diff --git a/src/locale/helpers.ts b/src/locale/helpers.ts index a9752c76ac..a24b69b4eb 100644 --- a/src/locale/helpers.ts +++ b/src/locale/helpers.ts @@ -124,6 +124,8 @@ export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage { return AppLanguage.ja case 'ko': return AppLanguage.ko + case 'pt-BR': + return AppLanguage.pt_BR default: continue } diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts index 1442641dac..7a2fa022e5 100644 --- a/src/locale/i18n.ts +++ b/src/locale/i18n.ts @@ -10,6 +10,7 @@ import {messages as messagesFr} from '#/locale/locales/fr/messages' import {messages as messagesHi} from '#/locale/locales/hi/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 {sanitizeAppLanguageSetting} from '#/locale/helpers' import {AppLanguage} from '#/locale/languages' @@ -44,6 +45,10 @@ export async function dynamicActivate(locale: AppLanguage) { i18n.loadAndActivate({locale, messages: messagesKo}) break } + case AppLanguage.pt_BR: { + i18n.loadAndActivate({locale, messages: messagesPt_BR}) + break + } default: { i18n.loadAndActivate({locale, messages: messagesEn}) break diff --git a/src/locale/i18n.web.ts b/src/locale/i18n.web.ts index 8a1d293cde..e98dcafae6 100644 --- a/src/locale/i18n.web.ts +++ b/src/locale/i18n.web.ts @@ -37,6 +37,10 @@ export async function dynamicActivate(locale: AppLanguage) { mod = await import(`./locales/ko/messages`) break } + case AppLanguage.pt_BR: { + mod = await import(`./locales/pt-BR/messages`) + break + } default: { mod = await import(`./locales/en/messages`) break diff --git a/src/locale/languages.ts b/src/locale/languages.ts index d8b0fa2081..3b51e61ce3 100644 --- a/src/locale/languages.ts +++ b/src/locale/languages.ts @@ -13,6 +13,7 @@ export enum AppLanguage { hi = 'hi', ja = 'ja', ko = 'ko', + pt_BR = 'pt-BR', } interface AppLanguageConfig { @@ -29,6 +30,7 @@ export const APP_LANGUAGES: AppLanguageConfig[] = [ {code2: AppLanguage.hi, name: 'हिंदी'}, {code2: AppLanguage.ja, name: '日本語'}, {code2: AppLanguage.ko, name: '한국어'}, + {code2: AppLanguage.pt_BR, name: 'Portuguese (BR)'}, ] export const LANGUAGES: Language[] = [ diff --git a/src/locale/locales/pt-BR/messages.po b/src/locale/locales/pt-BR/messages.po new file mode 100644 index 0000000000..257d5dac92 --- /dev/null +++ b/src/locale/locales/pt-BR/messages.po @@ -0,0 +1,2672 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2023-12-22 01:56+0530\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: pt-BR\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-12-31 00:34\n" +"Last-Translator: Maison da Silva\n" +"Language-Team: maisondasilva\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/view/screens/Profile.tsx:214 +#~ msgid "- end of feed -" +#~ msgstr "" + +#: src/view/com/modals/SelfLabel.tsx:138 +#~ msgid ". This warning is only available for posts with media attached." +#~ msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:168 +msgid "{0, plural, one {# invite code available} other {# invite codes available}}" +msgstr "{0, plural, one {# convite disponível} other {# convites disponíveis}}" + +#: src/view/com/modals/Repost.tsx:44 +msgid "{0}" +msgstr "{0}" + +#: src/view/com/modals/CreateOrEditList.tsx:176 +msgid "{0} {purposeLabel} List" +msgstr "Lista {0} {purposeLabel}" + +#: src/view/shell/desktop/RightNav.tsx:151 +msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" +msgstr "{invitesAvailable, plural, one {Códigos de convite: # disponível} other {Códigos de convite: # disponíveis}}" + +#: src/view/screens/Settings.tsx:407 +#: src/view/shell/Drawer.tsx:659 +msgid "{invitesAvailable} invite code available" +msgstr "Código de convite {invitesAvailable} disponível" + +#: src/view/screens/Settings.tsx:409 +#: src/view/shell/Drawer.tsx:661 +msgid "{invitesAvailable} invite codes available" +msgstr "Códigos de convite {invitesAvailable} disponíveis" + +#: src/view/screens/Search/Search.tsx:87 +msgid "{message}" +msgstr "{message}" + +#: src/view/com/threadgate/WhoCanReply.tsx:158 +msgid "<0/> members" +msgstr "<0/> membros" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:30 +msgid "<0>Choose your<1>Recommended<2>Feeds" +msgstr "<0>Escolha seu<1>Recomendado<2>Feeds" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:37 +msgid "<0>Follow some<1>Recommended<2>Users" +msgstr "<0>Seguir alguns<1>Recomendado<2>Usuários" + +#: src/view/com/modals/AddAppPasswords.tsx:132 +#~ msgid "<0>Here is your app password. Use this to sign into the other app along with your handle." +#~ msgstr "" + +#: src/view/screens/Moderation.tsx:212 +#~ msgid "<0>Note: This setting may not be respected by third-party apps that display Bluesky content." +#~ msgstr "" + +#: src/view/screens/Moderation.tsx:212 +#~ msgid "<0>Note: Your profile and posts will remain publicly available. Third-party apps that display Bluesky content may not respect this setting." +#~ msgstr "" + +#: 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}." + +#: 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." + +#: src/view/com/modals/EditImage.tsx:299 +#: src/view/screens/Settings.tsx:417 +msgid "Accessibility" +msgstr "Acessibilidade" + +#: src/view/com/auth/login/LoginForm.tsx:163 +#: src/view/screens/Settings.tsx:286 +msgid "Account" +msgstr "Conta" + +#: src/view/com/util/AccountDropdownBtn.tsx:41 +msgid "Account options" +msgstr "Opções da conta" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/UserAddRemoveLists.tsx:193 +#: src/view/screens/ProfileList.tsx:763 +msgid "Add" +msgstr "Adicionar" + +#: src/view/com/modals/SelfLabel.tsx:56 +msgid "Add a content warning" +msgstr "Adicionar um aviso de conteúdo" + +#: src/view/screens/ProfileList.tsx:753 +msgid "Add a user to this list" +msgstr "Adicionar um usuário a esta lista" + +#: src/view/screens/Settings.tsx:355 +#: src/view/screens/Settings.tsx:364 +msgid "Add account" +msgstr "Adicionar conta" + +#: src/view/com/composer/photos/Gallery.tsx:119 +#: src/view/com/composer/photos/Gallery.tsx:180 +#: src/view/com/modals/AltImage.tsx:93 +msgid "Add alt text" +msgstr "Adicionar texto alternativo" + +#: src/view/com/modals/report/InputIssueDetails.tsx:41 +#: src/view/com/modals/report/Modal.tsx:191 +msgid "Add details" +msgstr "Adicionar detalhes" + +#: src/view/com/modals/report/Modal.tsx:194 +msgid "Add details to report" +msgstr "Adicionar detalhes ao relatório" + +#: src/view/com/composer/Composer.tsx:447 +msgid "Add link card" +msgstr "Adicionar cartão de link" + +#: src/view/com/composer/Composer.tsx:450 +msgid "Add link card:" +msgstr "Adicionar cartão de link:" + +#: src/view/com/modals/ChangeHandle.tsx:415 +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:353 +msgid "Add to Lists" +msgstr "Adicionar às Listas" + +#: src/view/screens/ProfileFeed.tsx:271 +msgid "Add to my feeds" +msgstr "Adicionar aos meus feeds" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:191 +#: src/view/com/modals/UserAddRemoveLists.tsx:128 +msgid "Added to list" +msgstr "Adicionado à lista" + +#: src/view/screens/PreferencesHomeFeed.tsx:164 +msgid "Adjust the number of likes a reply must have to be shown in your feed." +msgstr "Ajuste o número de curtidas que uma resposta deve ser mostrada no seu feed." + +#: src/view/com/modals/SelfLabel.tsx:75 +msgid "Adult Content" +msgstr "Conteúdo Adulto" + +#: src/view/screens/Settings.tsx:569 +msgid "Advanced" +msgstr "Avançado" + +#: src/view/com/composer/photos/Gallery.tsx:130 +msgid "ALT" +msgstr "ALT" + +#: src/view/com/modals/EditImage.tsx:315 +msgid "Alt text" +msgstr "Texto alternativo" + +#: 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 "O texto alternativo descreve imagens para usuários cegos e com baixa visão e ajuda a dar contexto a todos." + +#: src/view/com/modals/VerifyEmail.tsx:118 +msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." +msgstr "Um email foi enviado para {0}. Ele inclui um código de confirmação que você pode inserir abaixo." + +#: 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 "Um email foi enviado para seu endereço anterior, {0}. Ele inclui um código de confirmação que você pode inserir abaixo." + +#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/threadgate/WhoCanReply.tsx:178 +msgid "and" +msgstr "e" + +#: src/view/screens/LanguageSettings.tsx:95 +msgid "App Language" +msgstr "Idioma do aplicativo" + +#: src/view/screens/Settings.tsx:589 +msgid "App passwords" +msgstr "Senhas de aplicativos" + +#: src/view/screens/AppPasswords.tsx:186 +msgid "App Passwords" +msgstr "Senhas de Aplicativos" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:236 +msgid "Appeal content warning" +msgstr "Aviso de conteúdo de apelação" + +#: src/view/com/modals/AppealLabel.tsx:65 +msgid "Appeal Content Warning" +msgstr "Aviso de Conteúdo de Apelação" + +#: src/view/com/modals/AppealLabel.tsx:65 +#~ msgid "Appeal Decision" +#~ msgstr "" + +#: src/view/com/util/moderation/LabelInfo.tsx:52 +msgid "Appeal this decision" +msgstr "Apelar a esta decisão" + +#: src/view/com/util/moderation/LabelInfo.tsx:56 +msgid "Appeal this decision." +msgstr "Apelar a esta decisão." + +#: src/view/screens/Settings.tsx:432 +msgid "Appearance" +msgstr "Aparência" + +#: src/view/screens/Moderation.tsx:206 +#~ msgid "Apps that respect this setting, including the official Bluesky app and bsky.app website, won't show your content to logged out users." +#~ msgstr "" + +#: src/view/screens/AppPasswords.tsx:223 +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:143 +msgid "Are you sure you'd like to discard this draft?" +msgstr "Tem certeza que deseja descartar este rascunho?" + +#: src/view/screens/ProfileList.tsx:353 +msgid "Are you sure?" +msgstr "Tem certeza?" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:219 +msgid "Are you sure? This cannot be undone." +msgstr "Tem certeza? Esta ação não poderá ser desfeita." + +#: src/view/com/modals/SelfLabel.tsx:123 +msgid "Artistic or non-erotic nudity." +msgstr "Nudez artística ou não erótica." + +#: src/view/screens/Moderation.tsx:189 +#~ msgid "Ask apps to limit the visibility of my account" +#~ msgstr "" + +#: src/view/com/auth/create/CreateAccount.tsx:141 +#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:166 +#: src/view/com/auth/login/LoginForm.tsx:254 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:148 +#: src/view/com/modals/report/InputIssueDetails.tsx:46 +#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:438 +#: src/view/com/post-thread/PostThread.tsx:446 +#: src/view/com/profile/ProfileHeader.tsx:672 +msgid "Back" +msgstr "Voltar" + +#: src/view/screens/Settings.tsx:461 +msgid "Basics" +msgstr "Básicos" + +#: src/view/com/auth/create/Step2.tsx:156 +#: src/view/com/modals/BirthDateSettings.tsx:73 +msgid "Birthday" +msgstr "Aniversário" + +#: src/view/screens/Settings.tsx:312 +msgid "Birthday:" +msgstr "Aniversário:" + +#: src/view/com/profile/ProfileHeader.tsx:282 +#: src/view/com/profile/ProfileHeader.tsx:389 +msgid "Block Account" +msgstr "Bloquear Conta" + +#: src/view/screens/ProfileList.tsx:523 +msgid "Block accounts" +msgstr "Bloquear contas" + +#: src/view/screens/ProfileList.tsx:473 +msgid "Block list" +msgstr "Lista de bloqueio" + +#: src/view/screens/ProfileList.tsx:308 +msgid "Block these accounts?" +msgstr "Bloquear esta conta?" + +#: src/view/screens/Moderation.tsx:123 +msgid "Blocked accounts" +msgstr "Contas bloqueadas" + +#: src/view/screens/ModerationBlockedAccounts.tsx:107 +msgid "Blocked Accounts" +msgstr "Contas Bloqueadas" + +#: src/view/com/profile/ProfileHeader.tsx:284 +msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." +msgstr "Contas bloqueadas não podem responder em seus tópicos, mencioná-lo ou interagir com você." + +#: 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 "Contas bloqueadas não podem responder em seus tópicos, mencioná-lo ou interagir com você. Você não verá o seu conteúdo e eles serão impedidos de ver o seu." + +#: src/view/com/post-thread/PostThread.tsx:250 +msgid "Blocked post." +msgstr "Post bloqueado." + +#: src/view/screens/ProfileList.tsx:310 +msgid "Blocking is public. Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." +msgstr "Bloquear é público. Contas bloqueadas não podem responder em seus tópicos, mencioná-lo ou interagir com você." + +#: 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/WelcomeMobile.tsx:80 +msgid "Bluesky is flexible." +msgstr "Bluesky é flexível." + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +msgid "Bluesky is open." +msgstr "Bluesky está aberto." + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +msgid "Bluesky is public." +msgstr "Bluesky é público." + +#: 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 "O Bluesky usa convites para criar uma comunidade mais saudável. Se você não conhece ninguém com um convite, você pode se inscrever na lista de espera e nós enviaremos um em breve." + +#: src/view/screens/Moderation.tsx:225 +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 não podem honrar esta solicitação. Isso não torna a sua conta privada." + +#: src/view/com/modals/ServerInput.tsx:78 +msgid "Bluesky.Social" +msgstr "Bluesky.Social" + +#: src/view/screens/Settings.tsx:718 +msgid "Build version {0} {1}" +msgstr "Versão da compilação {0} {1}" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +msgid "Business" +msgstr "Negócios" + +#: 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 "Câmera" + +#: src/view/com/modals/AddAppPasswords.tsx:214 +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/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Composer.tsx:297 +#: src/view/com/modals/ChangeEmail.tsx:218 +#: src/view/com/modals/ChangeEmail.tsx:220 +#: src/view/com/modals/Confirm.tsx:88 +#: src/view/com/modals/CreateOrEditList.tsx:267 +#: src/view/com/modals/CreateOrEditList.tsx:272 +#: src/view/com/modals/DeleteAccount.tsx:150 +#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/EditImage.tsx:323 +#: src/view/com/modals/EditProfile.tsx:248 +#: src/view/com/modals/LinkWarning.tsx:85 +#: src/view/com/modals/Repost.tsx:73 +#: src/view/com/modals/Waitlist.tsx:136 +#: src/view/screens/Search/Search.tsx:601 +#: src/view/shell/desktop/Search.tsx:182 +msgid "Cancel" +msgstr "Cancelar" + +#: src/view/com/modals/DeleteAccount.tsx:146 +#: src/view/com/modals/DeleteAccount.tsx:219 +msgid "Cancel account deletion" +msgstr "Cancelar exclusão da conta" + +#: src/view/com/modals/AltImage.tsx:123 +#~ msgid "Cancel add image alt text" +#~ msgstr "Cancelar adição de texto alternativo da imagem" + +#: src/view/com/modals/ChangeHandle.tsx:149 +msgid "Cancel change handle" +msgstr "Cancelar alteração de identificador" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:134 +msgid "Cancel image crop" +msgstr "Cancelar corte da imagem" + +#: src/view/com/modals/EditProfile.tsx:243 +msgid "Cancel profile editing" +msgstr "Cancelar edição do perfil" + +#: src/view/com/modals/Repost.tsx:64 +msgid "Cancel quote post" +msgstr "Cancelar citação de um post" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:87 +#: src/view/shell/desktop/Search.tsx:178 +msgid "Cancel search" +msgstr "Cancelar busca" + +#: src/view/com/modals/Waitlist.tsx:132 +msgid "Cancel waitlist signup" +msgstr "Cancelar inscrição na lista de espera" + +#: src/view/screens/Settings.tsx:306 +msgid "Change" +msgstr "Alterar" + +#: src/view/screens/Settings.tsx:601 +#: src/view/screens/Settings.tsx:610 +msgid "Change handle" +msgstr "Alterar Identificador" + +#: src/view/com/modals/ChangeHandle.tsx:161 +msgid "Change Handle" +msgstr "Alterar Identificador" + +#: src/view/com/modals/VerifyEmail.tsx:141 +msgid "Change my email" +msgstr "Alterar meu email" + +#: src/view/com/modals/ChangeEmail.tsx:109 +msgid "Change Your Email" +msgstr "Altere o Seu Email" + +#: 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 "Confira alguns feeds recomendados. Toque em + para adicioná-los a sua lista de feeds fixados." + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:185 +msgid "Check out some recommended users. Follow them to see similar users." +msgstr "Confira alguns usuários recomendados. Siga-os para ver usuários semelhantes." + +#: src/view/com/modals/DeleteAccount.tsx:163 +msgid "Check your inbox for an email with the confirmation code to enter below:" +msgstr "Verifique sua caixa de entrada para um email com o código de confirmação abaixo:" + +#: src/view/com/modals/Threadgate.tsx:72 +msgid "Choose \"Everybody\" or \"Nobody\"" +msgstr "Escolha \"Everybody\" ou \"Nobody\"" + +#: src/view/com/modals/ServerInput.tsx:38 +msgid "Choose Service" +msgstr "Escolher o Serviço" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +msgid "Choose the algorithms that power your experience with custom feeds." +msgstr "Escolha os algoritmos que alimentam a sua experiência com feeds personalizados." + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:65 +#~ msgid "Choose your" +#~ msgstr "" + +#: src/view/com/auth/create/Step2.tsx:127 +msgid "Choose your password" +msgstr "Escolha sua senha" + +#: src/view/screens/Settings.tsx:694 +msgid "Clear all legacy storage data" +msgstr "Limpar todos os dados de armazenamento legados" + +#: src/view/screens/Settings.tsx:696 +msgid "Clear all legacy storage data (restart after this)" +msgstr "Limpar todos os dados de armazenamento legados (reinicie após isso)" + +#: src/view/screens/Settings.tsx:706 +msgid "Clear all storage data" +msgstr "Limpar todos os dados de armazenamento" + +#: src/view/screens/Settings.tsx:708 +msgid "Clear all storage data (restart after this)" +msgstr "Limpar todos os dados de armazenamento (reiniciar após isso)" + +#: src/view/com/util/forms/SearchInput.tsx:74 +#: src/view/screens/Search/Search.tsx:582 +msgid "Clear search query" +msgstr "Limpar consulta de busca" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:38 +msgid "Close alert" +msgstr "Fechar alerta" + +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +msgid "Close bottom drawer" +msgstr "Fechar gaveta inferior" + +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +msgid "Close image" +msgstr "Fechar imagem" + +#: src/view/com/lightbox/Lightbox.web.tsx:112 +msgid "Close image viewer" +msgstr "Fechar visualizador de imagens" + +#: src/view/shell/index.web.tsx:49 +msgid "Close navigation footer" +msgstr "Feche o painel de navegação" + +#: src/view/screens/CommunityGuidelines.tsx:32 +msgid "Community Guidelines" +msgstr "Diretrizes da Comunidade" + +#: src/view/com/composer/Prompt.tsx:24 +msgid "Compose reply" +msgstr "Escrever resposta" + +#: src/view/com/modals/AppealLabel.tsx:98 +#: src/view/com/modals/Confirm.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:154 +#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/screens/PreferencesHomeFeed.tsx:299 +#: src/view/screens/PreferencesThreads.tsx:159 +msgid "Confirm" +msgstr "Confirme" + +#: src/view/com/modals/ChangeEmail.tsx:193 +#: src/view/com/modals/ChangeEmail.tsx:195 +msgid "Confirm Change" +msgstr "Confirmar Alterações" + +#: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:34 +msgid "Confirm content language settings" +msgstr "Confirmar configurações de idioma de conteúdo" + +#: src/view/com/modals/DeleteAccount.tsx:209 +msgid "Confirm delete account" +msgstr "Confirmar a exclusão da conta" + +#: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 +#: src/view/com/modals/VerifyEmail.tsx:159 +msgid "Confirmation code" +msgstr "Código de confirmação" + +#: src/view/com/auth/create/CreateAccount.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:273 +msgid "Connecting..." +msgstr "Conectando..." + +#: src/view/screens/Moderation.tsx:81 +msgid "Content filtering" +msgstr "Filtragem de conteúdo" + +#: src/view/com/modals/ContentFilteringSettings.tsx:44 +msgid "Content Filtering" +msgstr "Filtragem de Conteúdo" + +#: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 +#: src/view/screens/LanguageSettings.tsx:278 +msgid "Content Languages" +msgstr "Idiomas de Conteúdo" + +#: src/view/com/util/moderation/ScreenHider.tsx:78 +msgid "Content Warning" +msgstr "Aviso de Conteúdo" + +#: src/view/com/composer/labels/LabelsBtn.tsx:31 +msgid "Content warnings" +msgstr "Avisos de conteúdo" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +msgid "Continue" +msgstr "Continuar" + +#: src/view/com/modals/AddAppPasswords.tsx:193 +#: src/view/com/modals/InviteCodes.tsx:179 +msgid "Copied" +msgstr "Copiado" + +#: src/view/com/modals/AddAppPasswords.tsx:186 +msgid "Copy" +msgstr "Copiar" + +#: src/view/screens/ProfileList.tsx:385 +msgid "Copy link to list" +msgstr "Copiar link da lista" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +msgid "Copy link to post" +msgstr "Copiar link para postar" + +#: src/view/com/profile/ProfileHeader.tsx:338 +msgid "Copy link to profile" +msgstr "Copiar link do perfil" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 +msgid "Copy post text" +msgstr "Copiar texto da postagem" + +#: src/view/screens/CopyrightPolicy.tsx:29 +msgid "Copyright Policy" +msgstr "Política de Direitos Autorais" + +#: src/view/screens/ProfileFeed.tsx:95 +msgid "Could not load feed" +msgstr "Não foi possível carregar o feed" + +#: src/view/screens/ProfileList.tsx:839 +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:46 +msgid "Create a new account" +msgstr "Criar uma nova conta" + +#: src/view/com/auth/create/CreateAccount.tsx:121 +msgid "Create Account" +msgstr "Criar Conta" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:54 +#: src/view/com/auth/SplashScreen.tsx:43 +msgid "Create new account" +msgstr "Criar uma nova conta" + +#: src/view/screens/AppPasswords.tsx:248 +msgid "Created {0}" +msgstr "Criado {0}" + +#: src/view/com/modals/ChangeHandle.tsx:387 +#: src/view/com/modals/ServerInput.tsx:102 +msgid "Custom domain" +msgstr "Domínio personalizado" + +#: src/view/screens/Settings.tsx:615 +msgid "Danger Zone" +msgstr "Zona de Perigo" + +#: src/view/screens/Settings.tsx:411 +#~ msgid "Dark" +#~ msgstr "" + +#: src/view/screens/Settings.tsx:622 +msgid "Delete account" +msgstr "Excluir a conta" + +#: src/view/com/modals/DeleteAccount.tsx:83 +msgid "Delete Account" +msgstr "Excluir a Conta" + +#: src/view/screens/AppPasswords.tsx:221 +#: src/view/screens/AppPasswords.tsx:241 +msgid "Delete app password" +msgstr "Excluir senha do aplicativo" + +#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:412 +msgid "Delete List" +msgstr "Excluir Lista" + +#: src/view/com/modals/DeleteAccount.tsx:212 +msgid "Delete my account" +msgstr "Excluir minha conta" + +#: src/view/screens/Settings.tsx:632 +msgid "Delete my account…" +msgstr "Excluir minha conta…" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 +msgid "Delete post" +msgstr "Excluir post" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:218 +msgid "Delete this post?" +msgstr "Excluir este post?" + +#: src/view/com/post-thread/PostThread.tsx:242 +msgid "Deleted post." +msgstr "Post excluído." + +#: src/view/com/modals/CreateOrEditList.tsx:218 +#: src/view/com/modals/CreateOrEditList.tsx:234 +#: src/view/com/modals/EditProfile.tsx:197 +#: src/view/com/modals/EditProfile.tsx:209 +msgid "Description" +msgstr "Descrição" + +#: src/view/com/auth/create/Step1.tsx:96 +msgid "Dev Server" +msgstr "Servidor de Desenvolvimento" + +#: src/view/screens/Settings.tsx:637 +msgid "Developer Tools" +msgstr "Ferramentas do Desenvolvedor" + +#: src/view/com/composer/Composer.tsx:211 +msgid "Did you want to say anything?" +msgstr "Você gostaria de dizer alguma coisa?" + +#: src/view/com/composer/Composer.tsx:144 +msgid "Discard" +msgstr "Descartar" + +#: src/view/com/composer/Composer.tsx:138 +msgid "Discard draft" +msgstr "Descartar rascunho" + +#: src/view/screens/Moderation.tsx:207 +msgid "Discourage apps from showing my account to logged-out users" +msgstr "Desencorajar aplicativos de mostrar minha conta para usuários desconectados" + +#: src/view/screens/Feeds.tsx:405 +msgid "Discover new feeds" +msgstr "Descubra novos feeds" + +#: src/view/com/modals/EditProfile.tsx:191 +msgid "Display name" +msgstr "Nome de exibição" + +#: src/view/com/modals/EditProfile.tsx:179 +msgid "Display Name" +msgstr "Nome de Exibição" + +#: src/view/com/modals/ChangeHandle.tsx:485 +msgid "Domain verified!" +msgstr "Domínio verificado!" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/AltImage.tsx:115 +#: 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/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:142 +#: 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:79 +#: src/view/screens/PreferencesHomeFeed.tsx:302 +#: src/view/screens/PreferencesThreads.tsx:162 +msgid "Done" +msgstr "Feito" + +#: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 +msgid "Done{extraText}" +msgstr "Feito{extraText}" + +#: src/view/com/modals/InviteCodes.tsx:94 +msgid "Each code works once. You'll receive more invite codes periodically." +msgstr "Cada código só funciona uma vez. Você receberá mais códigos de convite periodicamente." + +#: 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:400 +msgid "Edit list details" +msgstr "Editar detalhes da lista" + +#: src/view/screens/Feeds.tsx:367 +#: src/view/screens/SavedFeeds.tsx:84 +msgid "Edit My Feeds" +msgstr "Editar Meus Feeds" + +#: src/view/com/modals/EditProfile.tsx:151 +msgid "Edit my profile" +msgstr "Editar meu perfil" + +#: src/view/com/profile/ProfileHeader.tsx:453 +msgid "Edit profile" +msgstr "Editar perfil" + +#: src/view/com/profile/ProfileHeader.tsx:456 +msgid "Edit Profile" +msgstr "Editar Perfil" + +#: src/view/screens/Feeds.tsx:330 +msgid "Edit Saved Feeds" +msgstr "Editar Feeds Salvos" + +#: src/view/com/auth/create/Step2.tsx:108 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:148 +#: src/view/com/modals/ChangeEmail.tsx:141 +#: src/view/com/modals/Waitlist.tsx:88 +msgid "Email" +msgstr "Email" + +#: src/view/com/auth/create/Step2.tsx:99 +msgid "Email address" +msgstr "Endereço de email" + +#: src/view/com/modals/ChangeEmail.tsx:111 +msgid "Email Updated" +msgstr "Email Atualizado" + +#: src/view/screens/Settings.tsx:290 +msgid "Email:" +msgstr "Email:" + +#: src/view/screens/PreferencesHomeFeed.tsx:138 +msgid "Enable this setting to only see replies between people you follow." +msgstr "Ative esta configuração para ver apenas as respostas entre as pessoas que você segue." + +#: src/view/screens/Profile.tsx:426 +msgid "End of feed" +msgstr "Fim do feed" + +#: src/view/com/auth/create/Step1.tsx:71 +msgid "Enter the address of your provider:" +msgstr "Digite o endereço do seu provedor:" + +#: src/view/com/modals/ChangeHandle.tsx:369 +msgid "Enter the domain you want to use" +msgstr "Digite o domínio que você deseja usar" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:101 +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 email 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/view/com/auth/create/Step2.tsx:104 +msgid "Enter your email address" +msgstr "Digite seu endereço de email" + +#: src/view/com/modals/ChangeEmail.tsx:117 +msgid "Enter your new email address below." +msgstr "Digite seu novo endereço de email abaixo." + +#: src/view/com/auth/login/Login.tsx:99 +msgid "Enter your username and password" +msgstr "Digite seu nome de usuário e senha" + +#: src/view/screens/Search/Search.tsx:105 +msgid "Error:" +msgstr "Erro:" + +#: src/view/com/modals/Threadgate.tsx:76 +msgid "Everybody" +msgstr "Todos" + +#: src/view/com/lightbox/Lightbox.web.tsx:156 +msgid "Expand alt text" +msgstr "Expandir texto alternativo" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 +msgid "Failed to load recommended feeds" +msgstr "Falha ao carregar feeds recomendados" + +#: src/view/screens/Feeds.tsx:556 +msgid "Feed offline" +msgstr "Feed offline" + +#: src/view/com/feeds/FeedPage.tsx:143 +msgid "Feed Preferences" +msgstr "Preferências de Feed" + +#: src/view/shell/desktop/RightNav.tsx:73 +#: src/view/shell/Drawer.tsx:311 +msgid "Feedback" +msgstr "Comentários" + +#: src/view/screens/Feeds.tsx:475 +#: src/view/screens/Profile.tsx:165 +#: src/view/shell/bottom-bar/BottomBar.tsx:181 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:474 +#: src/view/shell/Drawer.tsx:475 +msgid "Feeds" +msgstr "Feeds" + +#: 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 "Os feeds são criados por usuários para curadoria de conteúdo. Escolha alguns feeds que você acha interessantes." + +#: src/view/screens/SavedFeeds.tsx:156 +msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." +msgstr "Os feeds são algoritmos personalizados que os usuários criam com um pouco de experiência em condificação. <0/> para mais informações." + +#: src/view/screens/Search/Search.tsx:427 +msgid "Find users on Bluesky" +msgstr "Encontrar usuários no Bluesky" + +#: src/view/screens/Search/Search.tsx:425 +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 +msgid "Finding similar accounts..." +msgstr "Procurando contas semelhantes..." + +#: src/view/screens/PreferencesHomeFeed.tsx:102 +msgid "Fine-tune the content you see on your home screen." +msgstr "Ajuste o conteúdo que você vê na sua tela inicial." + +#: src/view/screens/PreferencesThreads.tsx:60 +msgid "Fine-tune the discussion threads." +msgstr "Ajuste os tópicos de discussão." + +#: src/view/com/profile/ProfileHeader.tsx:538 +msgid "Follow" +msgstr "Seguir" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:42 +#~ msgid "Follow some" +#~ msgstr "" + +#: 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 "Seguir alguns usuários para começar. Nós podemos recomendar mais usuários com base em quem você acha interessante." + +#: src/view/com/modals/Threadgate.tsx:98 +msgid "Followed users" +msgstr "Usuários seguidos" + +#: src/view/screens/PreferencesHomeFeed.tsx:145 +msgid "Followed users only" +msgstr "Somente usuários seguidos" + +#: src/view/screens/ProfileFollowers.tsx:25 +msgid "Followers" +msgstr "Seguidores" + +#: src/view/com/profile/ProfileHeader.tsx:624 +msgid "following" +msgstr "seguindo" + +#: src/view/com/profile/ProfileHeader.tsx:522 +#: src/view/screens/ProfileFollows.tsx:25 +msgid "Following" +msgstr "Seguindo" + +#: src/view/com/profile/ProfileHeader.tsx:571 +msgid "Follows you" +msgstr "Segue você" + +#: src/view/com/modals/DeleteAccount.tsx:107 +msgid "For security reasons, we'll need to send a confirmation code to your email address." +msgstr "Por motivos de segurança, precisamos enviar um código de confirmação para seu endereço de email." + +#: src/view/com/modals/AddAppPasswords.tsx:207 +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 isto novamente. Se você perder esta senha, precisará gerar uma nova." + +#: src/view/com/auth/login/LoginForm.tsx:236 +msgid "Forgot" +msgstr "Esqueceu" + +#: src/view/com/auth/login/LoginForm.tsx:233 +msgid "Forgot password" +msgstr "Esqueci a senha" + +#: src/view/com/auth/login/Login.tsx:127 +#: src/view/com/auth/login/Login.tsx:143 +msgid "Forgot Password" +msgstr "Esqueci a Senha" + +#: src/view/com/composer/photos/SelectPhotoBtn.tsx:43 +msgid "Gallery" +msgstr "Galeria" + +#: src/view/com/modals/VerifyEmail.tsx:183 +msgid "Get Started" +msgstr "Vamos começar" + +#: 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 "Voltar atrás" + +#: src/view/screens/ProfileFeed.tsx:104 +#: src/view/screens/ProfileFeed.tsx:109 +#: src/view/screens/ProfileList.tsx:848 +#: src/view/screens/ProfileList.tsx:853 +msgid "Go Back" +msgstr "Voltar Atrás" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:181 +#: src/view/com/auth/login/LoginForm.tsx:283 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:163 +msgid "Go to next" +msgstr "Ir para o próximo" + +#: src/view/com/modals/ChangeHandle.tsx:265 +msgid "Handle" +msgstr "Identificador" + +#: src/view/shell/desktop/RightNav.tsx:102 +#: src/view/shell/Drawer.tsx:321 +msgid "Help" +msgstr "Ajuda" + +#: src/view/com/modals/AddAppPasswords.tsx:148 +msgid "Here is your app password." +msgstr "Aqui está a sua senha do aplicativo." + +#: src/view/com/notifications/FeedItem.tsx:324 +#: src/view/com/util/moderation/ContentHider.tsx:103 +msgid "Hide" +msgstr "Ocultar" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:173 +msgid "Hide post" +msgstr "Ocultar post" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:177 +msgid "Hide this post?" +msgstr "Ocultar este post?" + +#: src/view/com/notifications/FeedItem.tsx:316 +msgid "Hide user list" +msgstr "Ocultar lista de usuários" + +#: src/view/com/posts/FeedErrorMessage.tsx:102 +#~ msgid "Hmm, some kind of issue occured when contacting the feed server. Please let the feed owner know about this issue." +#~ msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:110 +msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." +msgstr "Hmm, ocorreu algum tipo de problema ao entrar em contato com o servidor do feed. Por favor, avise o proprietário do feed sobre este problema." + +#: src/view/com/posts/FeedErrorMessage.tsx:98 +msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." +msgstr "Hmm, o servidor de feed parece estar mal configurado. Por favor, deixe o proprietário do feed saber sobre este problema." + +#: src/view/com/posts/FeedErrorMessage.tsx:104 +msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." +msgstr "Hmm, o servidor de feed parece estar offline. Por favor, avise o autor do feed sobre este problema." + +#: src/view/com/posts/FeedErrorMessage.tsx:101 +msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." +msgstr "Hmm, o servidor de feed deu uma má resposta. Por favor, avise o autor do feed sobre este problema." + +#: src/view/com/posts/FeedErrorMessage.tsx:95 +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/view/com/posts/FeedErrorMessage.tsx:87 +#~ msgid "Hmmm, we're having trouble finding this feed. It may have been deleted." +#~ msgstr "" + +#: 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 +msgid "Home" +msgstr "Página Inicial" + +#: src/view/com/pager/FeedsTabBarMobile.tsx:96 +#: src/view/screens/PreferencesHomeFeed.tsx:95 +#: src/view/screens/Settings.tsx:481 +msgid "Home Feed Preferences" +msgstr "Preferências do Feed Inicial" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:114 +msgid "Hosting provider" +msgstr "Provedor de hospedagem" + +#: src/view/com/auth/create/Step1.tsx:76 +#: src/view/com/auth/create/Step1.tsx:81 +msgid "Hosting provider address" +msgstr "Endereço do provedor de hospedagem" + +#: src/view/com/modals/VerifyEmail.tsx:208 +msgid "I have a code" +msgstr "Eu tenho um código" + +#: src/view/com/modals/ChangeHandle.tsx:281 +msgid "I have my own domain" +msgstr "Eu tenho meu próprio domínio" + +#: src/view/com/modals/SelfLabel.tsx:127 +msgid "If none are selected, suitable for all ages." +msgstr "Se nenhum for selecionado, adequado para todas as idades." + +#: src/view/com/modals/AltImage.tsx:97 +msgid "Image alt text" +msgstr "Texto alternativo da imagem" + +#: src/view/com/util/UserAvatar.tsx:308 +#: src/view/com/util/UserBanner.tsx:116 +msgid "Image options" +msgstr "Opções de imagem" + +#: src/view/com/search/Suggestions.tsx:104 +#: src/view/com/search/Suggestions.tsx:115 +#~ msgid "In Your Network" +#~ msgstr "" + +#: src/view/com/auth/login/LoginForm.tsx:115 +msgid "Invalid username or password" +msgstr "Nome de usuário ou senha inválido" + +#: src/view/screens/Settings.tsx:383 +msgid "Invite" +msgstr "Convite" + +#: src/view/com/modals/InviteCodes.tsx:91 +#: src/view/screens/Settings.tsx:371 +msgid "Invite a Friend" +msgstr "Convide um Amigo" + +#: src/view/com/auth/create/Step2.tsx:72 +msgid "Invite code" +msgstr "Código de convite" + +#: src/view/com/auth/create/state.ts:136 +msgid "Invite code not accepted. Check that you input it correctly and try again." +msgstr "Código de convite não aceito. Verifique se você o inseriu corretamente e tente novamente." + +#: src/view/shell/Drawer.tsx:640 +msgid "Invite codes: {invitesAvailable} available" +msgstr "Códigos de convite: {invitesAvailable} disponível" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +msgid "Jobs" +msgstr "Empregos" + +#: src/view/com/modals/Waitlist.tsx:67 +msgid "Join the waitlist" +msgstr "Junte-se à lista de espera" + +#: src/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:90 +msgid "Join the waitlist." +msgstr "Junte-se à lista de espera." + +#: src/view/com/modals/Waitlist.tsx:124 +msgid "Join Waitlist" +msgstr "Junte-se à Lista de Espera" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +msgid "Language selection" +msgstr "Seleção de idioma" + +#: src/view/screens/LanguageSettings.tsx:89 +msgid "Language Settings" +msgstr "Configurações de Idiomas" + +#: src/view/screens/Settings.tsx:541 +msgid "Languages" +msgstr "Idiomas" + +#: src/view/com/util/moderation/ContentHider.tsx:101 +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 +msgid "Learn More" +msgstr "Saiba Mais" + +#: src/view/com/util/moderation/ContentHider.tsx:83 +#: src/view/com/util/moderation/PostAlerts.tsx:40 +#: src/view/com/util/moderation/PostHider.tsx:76 +#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 +#: src/view/com/util/moderation/ScreenHider.tsx:101 +msgid "Learn more about this warning" +msgstr "Saiba mais sobre este aviso" + +#: src/view/screens/Moderation.tsx:242 +msgid "Learn more about what is public on Bluesky." +msgstr "Saiba mais sobre o que é público no Bluesky." + +#: 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." + +#: src/view/com/modals/LinkWarning.tsx:49 +msgid "Leaving Bluesky" +msgstr "Saindo do Bluesky" + +#: src/view/com/auth/login/Login.tsx:128 +#: src/view/com/auth/login/Login.tsx:144 +msgid "Let's get your password reset!" +msgstr "Vamos redefinir sua senha!" + +#: src/view/com/util/UserAvatar.tsx:245 +#: src/view/com/util/UserBanner.tsx:60 +msgid "Library" +msgstr "Biblioteca" + +#: src/view/screens/Settings.tsx:405 +#~ msgid "Light" +#~ msgstr "" + +#: src/view/screens/ProfileFeed.tsx:586 +msgid "Like this feed" +msgstr "Curtir este feed" + +#: src/view/screens/PostLikedBy.tsx:27 +#: src/view/screens/ProfileFeedLikedBy.tsx:27 +msgid "Liked by" +msgstr "Curtido por" + +#: src/view/screens/Profile.tsx:164 +msgid "Likes" +msgstr "Curtidas" + +#: src/view/screens/Moderation.tsx:203 +#~ msgid "Limit the visibility of my account" +#~ msgstr "" + +#: src/view/screens/Moderation.tsx:203 +#~ msgid "Limit the visibility of my account to logged-out users" +#~ msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:186 +msgid "List Avatar" +msgstr "Listar Avatar" + +#: src/view/com/modals/CreateOrEditList.tsx:199 +msgid "List Name" +msgstr "Lista de Nomes" + +#: src/view/screens/Profile.tsx:166 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:490 +#: src/view/shell/Drawer.tsx:491 +msgid "Lists" +msgstr "Listas" + +#: src/view/com/post-thread/PostThread.tsx:259 +#: src/view/com/post-thread/PostThread.tsx:267 +msgid "Load more posts" +msgstr "Carregar mais posts" + +#: src/view/screens/Notifications.tsx:148 +msgid "Load new notifications" +msgstr "Carregar novas notificações" + +#: src/view/com/feeds/FeedPage.tsx:189 +msgid "Load new posts" +msgstr "Carregar novos posts" + +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +msgid "Loading..." +msgstr "Carregando..." + +#: src/view/com/modals/ServerInput.tsx:50 +msgid "Local dev server" +msgstr "Servidor de desenvolvimento local" + +#: src/view/screens/Moderation.tsx:134 +#~ msgid "Logged-out users" +#~ msgstr "" + +#: src/view/screens/Moderation.tsx:136 +msgid "Logged-out visibility" +msgstr "Visibilidade desconectada" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +msgid "Login to account that is not listed" +msgstr "Fazer login em uma conta que não está listada" + +#: src/view/screens/ProfileFeed.tsx:472 +#~ 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 "" + +#: src/view/com/modals/LinkWarning.tsx:63 +msgid "Make sure this is where you intend to go!" +msgstr "Certifique-se de que é para lá que você pretende ir!" + +#: src/view/screens/Profile.tsx:163 +msgid "Media" +msgstr "Mídia" + +#: src/view/com/threadgate/WhoCanReply.tsx:139 +msgid "mentioned users" +msgstr "usuários mencionados" + +#: src/view/com/modals/Threadgate.tsx:93 +msgid "Mentioned users" +msgstr "Usuários mencionados" + +#: src/view/screens/Search/Search.tsx:537 +msgid "Menu" +msgstr "Menu" + +#: src/view/com/posts/FeedErrorMessage.tsx:194 +msgid "Message from server" +msgstr "Mensagem do servidor" + +#: src/view/screens/Moderation.tsx:64 +#: src/view/screens/Settings.tsx:563 +#: src/view/shell/desktop/LeftNav.tsx:397 +#: src/view/shell/Drawer.tsx:509 +#: src/view/shell/Drawer.tsx:510 +msgid "Moderation" +msgstr "Moderação" + +#: src/view/screens/Moderation.tsx:95 +msgid "Moderation lists" +msgstr "Listas de moderação" + +#: src/view/screens/ModerationModlists.tsx:58 +msgid "Moderation Lists" +msgstr "Listas de Moderação" + +#: src/view/shell/desktop/Feeds.tsx:53 +msgid "More feeds" +msgstr "Mais feeds" + +#: src/view/com/profile/ProfileHeader.tsx:548 +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileList.tsx:584 +msgid "More options" +msgstr "Mais opções" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#~ msgid "More post options" +#~ msgstr "" + +#: src/view/screens/PreferencesThreads.tsx:82 +msgid "Most-liked replies first" +msgstr "" + +#: src/view/com/profile/ProfileHeader.tsx:370 +msgid "Mute Account" +msgstr "Silenciar Conta" + +#: src/view/screens/ProfileList.tsx:511 +msgid "Mute accounts" +msgstr "Silenciar contas" + +#: src/view/screens/ProfileList.tsx:458 +msgid "Mute list" +msgstr "Lista de silenciados" + +#: src/view/screens/ProfileList.tsx:271 +msgid "Mute these accounts?" +msgstr "Silenciar essas contas?" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 +msgid "Mute thread" +msgstr "Silenciar tópico" + +#: src/view/screens/Moderation.tsx:109 +msgid "Muted accounts" +msgstr "Contas silenciadas" + +#: src/view/screens/ModerationMutedAccounts.tsx:107 +msgid "Muted Accounts" +msgstr "Contas Silenciadas" + +#: 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 "Contas silenciadas tem seus posts removidos do seu feed e das suas notificações. Os silenciamentos são completamente privados." + +#: src/view/screens/ProfileList.tsx:273 +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/screens/Moderation.tsx:134 +#~ msgid "My Account" +#~ msgstr "" + +#: src/view/com/modals/BirthDateSettings.tsx:56 +msgid "My Birthday" +msgstr "Meu Aniversário" + +#: src/view/screens/Feeds.tsx:363 +msgid "My Feeds" +msgstr "Meus Feeds" + +#: src/view/shell/desktop/LeftNav.tsx:65 +msgid "My Profile" +msgstr "Meu Perfil" + +#: src/view/screens/Settings.tsx:520 +msgid "My Saved Feeds" +msgstr "Meus Feeds Salvos" + +#: src/view/com/modals/AddAppPasswords.tsx:177 +#: src/view/com/modals/CreateOrEditList.tsx:211 +msgid "Name" +msgstr "Nome" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +msgid "Never lose access to your followers and data." +msgstr "Nunca perca o acesso aos seus seguidores e dados." + +#: src/view/screens/Lists.tsx:76 +#: src/view/screens/ModerationModlists.tsx:78 +msgid "New" +msgstr "Novo" + +#: src/view/com/feeds/FeedPage.tsx:200 +#: src/view/screens/Feeds.tsx:507 +#: src/view/screens/Profile.tsx:354 +#: src/view/screens/ProfileFeed.tsx:431 +#: src/view/screens/ProfileList.tsx:194 +#: src/view/screens/ProfileList.tsx:222 +#: src/view/shell/desktop/LeftNav.tsx:248 +msgid "New post" +msgstr "Novo post" + +#: src/view/shell/desktop/LeftNav.tsx:258 +msgid "New Post" +msgstr "Novo Post" + +#: src/view/screens/PreferencesThreads.tsx:79 +msgid "Newest replies first" +msgstr "" + +#: src/view/com/auth/create/CreateAccount.tsx:154 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:174 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:184 +#: src/view/com/auth/login/LoginForm.tsx:286 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:156 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:166 +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 +msgid "Next" +msgstr "Próximo" + +#: src/view/com/lightbox/Lightbox.web.tsx:142 +msgid "Next image" +msgstr "Próxima imagem" + +#: src/view/screens/PreferencesHomeFeed.tsx:120 +#: src/view/screens/PreferencesHomeFeed.tsx:191 +#: src/view/screens/PreferencesHomeFeed.tsx:226 +#: src/view/screens/PreferencesHomeFeed.tsx:263 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 +msgid "No" +msgstr "Não" + +#: src/view/screens/ProfileFeed.tsx:579 +#: src/view/screens/ProfileList.tsx:720 +msgid "No description" +msgstr "Sem descrição" + +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 +msgid "No result" +msgstr "Nenhum resultado" + +#: src/view/screens/Feeds.tsx:452 +msgid "No results found for \"{query}\"" +msgstr "Nenhum resultado encontrado para \"{query}\"" + +#: src/view/com/modals/ListAddUser.tsx:142 +#: src/view/shell/desktop/Search.tsx:112 +#~ msgid "No results found for {0}" +#~ msgstr "" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:127 +#: src/view/screens/Search/Search.tsx:270 +#: src/view/screens/Search/Search.tsx:298 +#: src/view/screens/Search/Search.tsx:629 +#: src/view/shell/desktop/Search.tsx:210 +msgid "No results found for {query}" +msgstr "Nenhum resultado encontrado para {query}" + +#: src/view/com/modals/Threadgate.tsx:82 +msgid "Nobody" +msgstr "Ninguém" + +#: src/view/com/modals/SelfLabel.tsx:136 +#~ msgid "Not Applicable" +#~ msgstr "" + +#: src/view/com/modals/SelfLabel.tsx:135 +msgid "Not Applicable." +msgstr "Não Aplicável." + +#: 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 "" + +#: src/view/screens/Moderation.tsx:232 +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. Essa configuração limita somente a visibilidade do seu conteúdo no site e aplicativo do Bluesky, e outros aplicativos podem não respeitar essa configuração. Seu conteúdo ainda pode ser exibido para usuários desconectados por outros aplicativos e sites." + +#: src/view/screens/Moderation.tsx:227 +#~ msgid "Note: Third-party apps that display Bluesky content may not respect this setting." +#~ msgstr "" + +#: src/view/screens/Notifications.tsx:113 +#: src/view/screens/Notifications.tsx:137 +#: 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 +msgid "Notifications" +msgstr "Notificações" + +#: src/view/com/util/ErrorBoundary.tsx:34 +msgid "Oh no!" +msgstr "Oh, não!" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 +msgid "Okay" +msgstr "Ok" + +#: src/view/screens/PreferencesThreads.tsx:78 +msgid "Oldest replies first" +msgstr "" + +#: src/view/com/composer/Composer.tsx:363 +msgid "One or more images is missing alt text." +msgstr "Uma ou mais imagens estão sem texto alternativo." + +#: src/view/com/threadgate/WhoCanReply.tsx:100 +msgid "Only {0} can reply." +msgstr "Apenas {0} pode responder." + +#: src/view/com/composer/Composer.tsx:468 +#: src/view/com/composer/Composer.tsx:469 +msgid "Open emoji picker" +msgstr "" + +#: src/view/com/pager/FeedsTabBarMobile.tsx:76 +msgid "Open navigation" +msgstr "Abrir navegação" + +#: src/view/screens/Settings.tsx:533 +msgid "Opens configurable language settings" +msgstr "Abre definições de idioma configuráveis" + +#: src/view/shell/desktop/RightNav.tsx:156 +#: src/view/shell/Drawer.tsx:641 +msgid "Opens list of invite codes" +msgstr "Abre a lista de códigos de convite" + +#: src/view/com/modals/ChangeHandle.tsx:279 +msgid "Opens modal for using custom domain" +msgstr "Abre modal para usar o domínio personalizado" + +#: src/view/screens/Settings.tsx:558 +msgid "Opens moderation settings" +msgstr "Abre configurações de moderação" + +#: src/view/screens/Settings.tsx:514 +msgid "Opens screen with all saved feeds" +msgstr "Abre a tela com todos os feeds salvos" + +#: src/view/screens/Settings.tsx:581 +msgid "Opens the app password settings page" +msgstr "Abre a página de configurações de senha do aplicativo" + +#: src/view/screens/Settings.tsx:473 +msgid "Opens the home feed preferences" +msgstr "Abre as preferências do feed inicial" + +#: src/view/screens/Settings.tsx:664 +msgid "Opens the storybook page" +msgstr "Abre a página do storybook" + +#: src/view/screens/Settings.tsx:644 +msgid "Opens the system log page" +msgstr "Abre a página de log do sistema" + +#: src/view/screens/Settings.tsx:494 +msgid "Opens the threads preferences" +msgstr "Abrir as preferências dos tópicos" + +#: 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 +msgid "Other account" +msgstr "Outra conta" + +#: src/view/com/modals/ServerInput.tsx:88 +msgid "Other service" +msgstr "Outro serviço" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +msgid "Other..." +msgstr "Outro..." + +#: src/view/screens/NotFound.tsx:42 +#: src/view/screens/NotFound.tsx:45 +msgid "Page not found" +msgstr "Página não encontrada" + +#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:132 +#: src/view/com/auth/login/LoginForm.tsx:221 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:191 +msgid "Password" +msgstr "Senha" + +#: src/view/com/auth/login/Login.tsx:157 +msgid "Password updated" +msgstr "Senha atualizada" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:28 +msgid "Password updated!" +msgstr "Senha atualizada!" + +#: src/view/com/modals/SelfLabel.tsx:121 +msgid "Pictures meant for adults." +msgstr "Imagens destinadas a adultos." + +#: src/view/screens/SavedFeeds.tsx:88 +msgid "Pinned Feeds" +msgstr "Feeds Fixados" + +#: src/view/com/auth/create/state.ts:116 +msgid "Please choose your handle." +msgstr "Por favor, escolha o seu identificador." + +#: src/view/com/auth/create/state.ts:109 +msgid "Please choose your password." +msgstr "Por favor, escolha sua senha." + +#: 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 "Por favor, confirme seu email antes de alterá-lo. Este é um requisito temporário enquanto ferramentas de atualização de email são adicionadas, e em breve serão removidos." + +#: src/view/com/modals/AddAppPasswords.tsx:140 +msgid "Please enter a unique name for this App Password or use our randomly generated one." +msgstr "Por favor, insira um nome único para esta Senha do Aplicativo ou use nossa senha gerada aleatoriamente." + +#: src/view/com/auth/create/state.ts:95 +msgid "Please enter your email." +msgstr "Por favor, digite o seu email." + +#: src/view/com/modals/DeleteAccount.tsx:180 +msgid "Please enter your password as well:" +msgstr "Por favor, digite sua senha também:" + +#: 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!" + +#: src/view/com/modals/AppealLabel.tsx:72 +#: src/view/com/modals/AppealLabel.tsx:75 +#~ msgid "Please tell us why you think this decision was incorrect." +#~ msgstr "" + +#: src/view/com/composer/Composer.tsx:215 +msgid "Please wait for your link card to finish loading" +msgstr "Aguarde até que o cartão de link termine de carregar" + +#: src/view/com/composer/Composer.tsx:346 +#: src/view/com/post-thread/PostThread.tsx:225 +#: src/view/screens/PostThread.tsx:80 +msgid "Post" +msgstr "Post" + +#: src/view/com/post-thread/PostThread.tsx:378 +msgid "Post hidden" +msgstr "Post oculto" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +msgid "Post language" +msgstr "Idioma do post" + +#: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:75 +msgid "Post Languages" +msgstr "Idioma do Post" + +#: src/view/com/post-thread/PostThread.tsx:430 +msgid "Post not found" +msgstr "Post não encontrado" + +#: src/view/screens/Profile.tsx:161 +msgid "Posts" +msgstr "Posts" + +#: src/view/com/modals/LinkWarning.tsx:44 +msgid "Potentially Misleading Link" +msgstr "Link Potencialmente Enganoso" + +#: src/view/com/lightbox/Lightbox.web.tsx:128 +msgid "Previous image" +msgstr "Imagem anterior" + +#: src/view/screens/LanguageSettings.tsx:187 +msgid "Primary Language" +msgstr "Idioma Principal" + +#: src/view/screens/PreferencesThreads.tsx:97 +msgid "Prioritize Your Follows" +msgstr "Priorizar seus Seguidores" + +#: src/view/shell/desktop/RightNav.tsx:84 +msgid "Privacy" +msgstr "Privacidade" + +#: src/view/screens/PrivacyPolicy.tsx:29 +#: src/view/screens/Settings.tsx:750 +#: src/view/shell/Drawer.tsx:262 +msgid "Privacy Policy" +msgstr "Política de Privacidade" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:190 +msgid "Processing..." +msgstr "Processando..." + +#: 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:544 +#: src/view/shell/Drawer.tsx:545 +msgid "Profile" +msgstr "Perfil" + +#: src/view/screens/Settings.tsx:808 +msgid "Protect your account by verifying your email." +msgstr "Proteja a sua conta verificando o seu email." + +#: src/view/screens/ModerationModlists.tsx:61 +msgid "Public, shareable lists of users to mute or block in bulk." +msgstr "Listas públicas e compartilháveis de usuários para silenciar ou bloquear em massa." + +#: src/view/screens/Lists.tsx:61 +msgid "Public, shareable lists which can drive feeds." +msgstr "Listas públicas e compartilháveis que podem gerar feeds." + +#: src/view/com/modals/Repost.tsx:52 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 +msgid "Quote post" +msgstr "Citar post" + +#: src/view/com/modals/Repost.tsx:56 +msgid "Quote Post" +msgstr "Citar Post" + +#: src/view/screens/PreferencesThreads.tsx:86 +msgid "Random (aka \"Poster's Roulette\")" +msgstr "" + +#: src/view/com/modals/EditImage.tsx:236 +msgid "Ratios" +msgstr "Índices" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:73 +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:50 +#~ msgid "Recommended" +#~ msgstr "" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 +msgid "Recommended Feeds" +msgstr "Feeds Recomendados" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:180 +msgid "Recommended Users" +msgstr "Usuários Recomendados" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/UserAddRemoveLists.tsx:193 +#: src/view/com/util/UserAvatar.tsx:282 +#: src/view/com/util/UserBanner.tsx:89 +msgid "Remove" +msgstr "Remover" + +#: src/view/com/feeds/FeedSourceCard.tsx:106 +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:130 +msgid "Remove feed" +msgstr "Remover feed" + +#: src/view/com/feeds/FeedSourceCard.tsx:105 +#: src/view/com/feeds/FeedSourceCard.tsx:172 +#: src/view/screens/ProfileFeed.tsx:271 +msgid "Remove from my feeds" +msgstr "Remover dos meus feeds" + +#: src/view/com/composer/photos/Gallery.tsx:167 +msgid "Remove image" +msgstr "Remover imagem" + +#: src/view/com/composer/ExternalEmbed.tsx:70 +msgid "Remove image preview" +msgstr "Remover visualização da imagem" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +msgid "Remove this feed from my feeds?" +msgstr "Remover este feed dos meus feeds?" + +#: src/view/com/posts/FeedErrorMessage.tsx:131 +msgid "Remove this feed from your saved feeds?" +msgstr "Remover esse feed de seus feeds salvos?" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:199 +#: src/view/com/modals/UserAddRemoveLists.tsx:136 +msgid "Removed from list" +msgstr "Removido da lista" + +#: src/view/screens/Profile.tsx:162 +msgid "Replies" +msgstr "Respostas" + +#: src/view/com/threadgate/WhoCanReply.tsx:98 +msgid "Replies to this thread are disabled" +msgstr "Respostas para este tópico estão desativadas" + +#: src/view/screens/PreferencesHomeFeed.tsx:135 +msgid "Reply Filters" +msgstr "Filtros de Resposta" + +#: src/view/com/modals/report/Modal.tsx:166 +msgid "Report {collectionName}" +msgstr "Denunciar {collectionName}" + +#: src/view/com/profile/ProfileHeader.tsx:404 +msgid "Report Account" +msgstr "Denunciar Conta" + +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Report feed" +msgstr "Denunciar feed" + +#: src/view/screens/ProfileList.tsx:426 +msgid "Report List" +msgstr "Denunciar Lista" + +#: src/view/com/modals/report/SendReportButton.tsx:37 +#: src/view/com/util/forms/PostDropdownBtn.tsx:196 +msgid "Report post" +msgstr "Denunciar post" + +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +msgid "Repost" +msgstr "Repostar" + +#: 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 "Repostar ou citar uma post" + +#: src/view/screens/PostRepostedBy.tsx:27 +msgid "Reposted by" +msgstr "Repostado por" + +#: src/view/com/modals/ChangeEmail.tsx:181 +#: src/view/com/modals/ChangeEmail.tsx:183 +msgid "Request Change" +msgstr "Solicitar Alteração" + +#: src/view/screens/Moderation.tsx:188 +#~ msgid "Request to limit the visibility of my account" +#~ msgstr "" + +#: src/view/screens/Settings.tsx:422 +msgid "Require alt text before posting" +msgstr "" + +#: src/view/com/auth/create/Step2.tsx:68 +msgid "Required for this provider" +msgstr "Obrigatório para este provedor" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:108 +msgid "Reset code" +msgstr "Código de redefinição" + +#: src/view/screens/Settings.tsx:686 +msgid "Reset onboarding state" +msgstr "Redefinir estado de integração" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:98 +msgid "Reset password" +msgstr "Redefinir senha" + +#: src/view/screens/Settings.tsx:676 +msgid "Reset preferences state" +msgstr "Redefinir estado das preferências" + +#: src/view/screens/Settings.tsx:684 +msgid "Resets the onboarding state" +msgstr "Redefine o estado de integração" + +#: src/view/screens/Settings.tsx:674 +msgid "Resets the preferences state" +msgstr "Redefine o estado das preferências" + +#: src/view/com/auth/create/CreateAccount.tsx:163 +#: src/view/com/auth/create/CreateAccount.tsx:167 +#: src/view/com/auth/login/LoginForm.tsx:263 +#: src/view/com/auth/login/LoginForm.tsx:266 +#: src/view/com/util/error/ErrorMessage.tsx:55 +#: src/view/com/util/error/ErrorScreen.tsx:65 +msgid "Retry" +msgstr "Tente novamente" + +#: src/view/com/modals/ChangeHandle.tsx:169 +#~ msgid "Retry change handle" +#~ msgstr "" + +#: 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:249 +#: src/view/com/modals/CreateOrEditList.tsx:257 +#: src/view/com/modals/EditProfile.tsx:223 +msgid "Save" +msgstr "Salvar" + +#: src/view/com/modals/AltImage.tsx:106 +msgid "Save alt text" +msgstr "Salvar texto alternativo" + +#: src/view/com/modals/UserAddRemoveLists.tsx:212 +#~ msgid "Save changes" +#~ msgstr "" + +#: src/view/com/modals/EditProfile.tsx:231 +msgid "Save Changes" +msgstr "Salvar Alterações" + +#: src/view/com/modals/ChangeHandle.tsx:170 +msgid "Save handle change" +msgstr "Salvar identificador alterado" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:144 +msgid "Save image crop" +msgstr "Salvar corte de imagem" + +#: src/view/screens/SavedFeeds.tsx:122 +msgid "Saved Feeds" +msgstr "Feeds Salvos" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/view/com/util/forms/SearchInput.tsx:65 +#: src/view/screens/Search/Search.tsx:406 +#: src/view/screens/Search/Search.tsx:572 +#: src/view/shell/bottom-bar/BottomBar.tsx:159 +#: src/view/shell/desktop/LeftNav.tsx:324 +#: src/view/shell/desktop/Search.tsx:161 +#: src/view/shell/desktop/Search.tsx:170 +#: src/view/shell/Drawer.tsx:362 +#: src/view/shell/Drawer.tsx:363 +msgid "Search" +msgstr "Buscar" + +#: src/view/screens/Search/Search.tsx:390 +#~ msgid "Search for posts and users." +#~ msgstr "" + +#: src/view/com/auth/LoggedOut.tsx:104 +#: src/view/com/auth/LoggedOut.tsx:105 +msgid "Search for users" +msgstr "Buscar por usuários" + +#: src/view/com/modals/ChangeEmail.tsx:110 +msgid "Security Step Required" +msgstr "Passo de Segurança Necessário" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:39 +msgid "See what's next" +msgstr "Veja o que vem a seguir" + +#: src/view/com/modals/ServerInput.tsx:75 +msgid "Select Bluesky Social" +msgstr "Selecione Bluesky Social" + +#: src/view/com/auth/login/Login.tsx:117 +msgid "Select from an existing account" +msgstr "Selecione em uma conta existente" + +#: src/view/com/auth/login/LoginForm.tsx:147 +msgid "Select service" +msgstr "Selecione o serviço" + +#: 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 "Selecione quais idiomas você deseja que seus feeds subscritos incluam. Se nenhum for selecionado, todas as línguas serão exibidas." + +#: 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 para o texto padrão a ser exibido no aplicativo" + +#: src/view/screens/LanguageSettings.tsx:190 +msgid "Select your preferred language for translations in your feed." +msgstr "Selecione seu idioma preferido para as traduções do seu feed." + +#: src/view/com/modals/VerifyEmail.tsx:196 +msgid "Send Confirmation Email" +msgstr "Enviar Email de Confirmação" + +#: src/view/com/modals/DeleteAccount.tsx:127 +msgid "Send email" +msgstr "Enviar email" + +#: src/view/com/modals/DeleteAccount.tsx:138 +msgid "Send Email" +msgstr "Enviar Email" + +#: src/view/shell/Drawer.tsx:295 +#: src/view/shell/Drawer.tsx:316 +msgid "Send feedback" +msgstr "Enviar comentários" + +#: src/view/com/modals/report/SendReportButton.tsx:45 +msgid "Send Report" +msgstr "Enviar um Relatório" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:78 +msgid "Set new password" +msgstr "Defina uma nova senha" + +#: src/view/screens/PreferencesHomeFeed.tsx:216 +msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." +msgstr "Defina esta configuração como \"Não\" para ocultar todos os posts citados do seu feed. Repostagens ainda serão visíveis." + +#: src/view/screens/PreferencesHomeFeed.tsx:113 +msgid "Set this setting to \"No\" to hide all replies from your feed." +msgstr "Defina essa configuração como \"Não\" para ocultar todas as respostas do seu feed." + +#: src/view/screens/PreferencesHomeFeed.tsx:182 +msgid "Set this setting to \"No\" to hide all reposts from your feed." +msgstr "Defina essa configuração como \"Não\" para ocultar todas as repostagens do seu feed." + +#: 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 "Defina esta configuração como \"Sim\" para mostrar respostas em uma visualização thread. Este é um recurso experimental." + +#: src/view/screens/PreferencesHomeFeed.tsx:252 +msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." +msgstr "Defina essa configuração como \"Sim\" para mostrar amostras de seus feeds salvos no seu seguinte feed. Este é um recurso experimental." + +#: src/view/screens/Settings.tsx:277 +#: src/view/shell/desktop/LeftNav.tsx:433 +#: src/view/shell/Drawer.tsx:565 +#: src/view/shell/Drawer.tsx:566 +msgid "Settings" +msgstr "Configurações" + +#: src/view/com/modals/SelfLabel.tsx:125 +msgid "Sexual activity or erotic nudity." +msgstr "Atividade sexual ou nudez erótica." + +#: src/view/com/profile/ProfileHeader.tsx:338 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/screens/ProfileList.tsx:385 +msgid "Share" +msgstr "Compartilhar" + +#: src/view/screens/ProfileFeed.tsx:303 +msgid "Share feed" +msgstr "Compartilhar feed" + +#: src/view/screens/ProfileFeed.tsx:276 +#~ msgid "Share link" +#~ msgstr "" + +#: src/view/com/util/moderation/ContentHider.tsx:105 +#: src/view/screens/Settings.tsx:316 +msgid "Show" +msgstr "Mostrar" + +#: src/view/com/util/moderation/ScreenHider.tsx:132 +msgid "Show anyway" +msgstr "Mostrar mesmo assim" + +#: src/view/screens/PreferencesHomeFeed.tsx:249 +msgid "Show Posts from My Feeds" +msgstr "Mostrar Posts dos meus Feeds" + +#: src/view/screens/PreferencesHomeFeed.tsx:213 +msgid "Show Quote Posts" +msgstr "Mostrar Posts de Citações" + +#: src/view/screens/PreferencesHomeFeed.tsx:110 +msgid "Show Replies" +msgstr "Mostrar Respostas" + +#: src/view/screens/PreferencesThreads.tsx:100 +msgid "Show replies by people you follow before all other replies." +msgstr "Mostrar as respostas de pessoas que você segue antes de todas as outras respostas." + +#: src/view/screens/PreferencesHomeFeed.tsx:179 +msgid "Show Reposts" +msgstr "Mostrar Repostagens" + +#: src/view/com/notifications/FeedItem.tsx:345 +msgid "Show users" +msgstr "Mostrar usuários" + +#: 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:177 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:180 +#: src/view/shell/NavSignupCard.tsx:58 +#: src/view/shell/NavSignupCard.tsx:59 +msgid "Sign in" +msgstr "Fazer login" + +#: 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 "Fazer Login" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +msgid "Sign in as {0}" +msgstr "Fazer login como {0}" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/Login.tsx:116 +msgid "Sign in as..." +msgstr "Fazer login como..." + +#: src/view/com/auth/login/LoginForm.tsx:134 +msgid "Sign into" +msgstr "Fazer login" + +#: src/view/com/modals/SwitchAccount.tsx:64 +#: src/view/com/modals/SwitchAccount.tsx:67 +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/BottomBarWeb.tsx:167 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:170 +#: src/view/shell/NavSignupCard.tsx:49 +#: src/view/shell/NavSignupCard.tsx:50 +#: src/view/shell/NavSignupCard.tsx:52 +msgid "Sign up" +msgstr "Inscrever-se" + +#: src/view/shell/NavSignupCard.tsx:42 +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 +msgid "Sign-in Required" +msgstr "É Necessário Fazer Login" + +#: src/view/screens/Settings.tsx:327 +msgid "Signed in as" +msgstr "Entrou como" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +msgid "Skip" +msgstr "Pular" + +#: src/view/screens/PreferencesThreads.tsx:69 +msgid "Sort Replies" +msgstr "Classificar Respostas" + +#: src/view/screens/PreferencesThreads.tsx:72 +msgid "Sort replies to the same post by:" +msgstr "Classificar respostas para o mesmo post por:" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:122 +msgid "Square" +msgstr "Quadrado" + +#: src/view/com/auth/create/Step1.tsx:90 +#: src/view/com/modals/ServerInput.tsx:62 +msgid "Staging" +msgstr "Encenação" + +#: src/view/screens/Settings.tsx:730 +msgid "Status page" +msgstr "Página de status" + +#: src/view/screens/Settings.tsx:666 +msgid "Storybook" +msgstr "Storybook" + +#: src/view/com/modals/AppealLabel.tsx:101 +msgid "Submit" +msgstr "Enviar" + +#: src/view/screens/ProfileList.tsx:575 +msgid "Subscribe" +msgstr "Assinar" + +#: src/view/screens/ProfileList.tsx:571 +msgid "Subscribe to this list" +msgstr "Assinar esta lista" + +#: src/view/screens/Search/Search.tsx:362 +msgid "Suggested Follows" +msgstr "Seguidores Sugeridos" + +#: src/view/screens/Support.tsx:30 +#: src/view/screens/Support.tsx:33 +msgid "Support" +msgstr "Suporte" + +#: src/view/com/modals/SwitchAccount.tsx:115 +msgid "Switch Account" +msgstr "Alterar Conta" + +#: src/view/screens/Settings.tsx:398 +#~ msgid "System" +#~ msgstr "" + +#: src/view/screens/Settings.tsx:646 +msgid "System log" +msgstr "Log do sistema" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:112 +msgid "Tall" +msgstr "Alto" + +#: src/view/shell/desktop/RightNav.tsx:93 +msgid "Terms" +msgstr "Termos" + +#: src/view/screens/Settings.tsx:744 +#: src/view/screens/TermsOfService.tsx:29 +#: src/view/shell/Drawer.tsx:256 +msgid "Terms of Service" +msgstr "Termos de Serviço" + +#: src/view/com/modals/AppealLabel.tsx:70 +#: src/view/com/modals/report/InputIssueDetails.tsx:51 +msgid "Text input field" +msgstr "Campo de entrada de texto" + +#: src/view/com/profile/ProfileHeader.tsx:306 +msgid "The account will be able to interact with you after unblocking." +msgstr "A conta poderá interagir com você após o desbloqueio." + +#: src/view/screens/CommunityGuidelines.tsx:36 +msgid "The Community Guidelines have been moved to <0/>" +msgstr "As Diretrizes da Comunidade foram movidas para <0/>" + +#: src/view/screens/CopyrightPolicy.tsx:33 +msgid "The Copyright Policy has been moved to <0/>" +msgstr "A Política de Direitos Autorais foi movida para <0/>" + +#: src/view/com/post-thread/PostThread.tsx:433 +msgid "The post may have been deleted." +msgstr "O post pode ter sido excluído." + +#: src/view/screens/PrivacyPolicy.tsx:33 +msgid "The Privacy Policy has been moved to <0/>" +msgstr "A Política de Privacidade foi movida para <0/>" + +#: 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 "O formulário de suporte foi movido. Se precisar de ajuda, por favor <0/> ou visite {HELP_DESK_URL} para entrar em contato conosco." + +#: src/view/screens/TermsOfService.tsx:33 +msgid "The Terms of Service have been moved to" +msgstr "Os Termos de Serviço foram movidos para" + +#: src/view/com/util/ErrorBoundary.tsx:35 +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ê!" + +#: src/view/com/util/moderation/LabelInfo.tsx:45 +#~ msgid "This {0} has been labeled." +#~ msgstr "" + +#: src/view/com/util/moderation/ScreenHider.tsx:88 +msgid "This {screenDescription} has been flagged:" +msgstr "Este {screenDescription} foi sinalizado:" + +#: src/view/com/util/moderation/ScreenHider.tsx:83 +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 seus perfis." + +#: src/view/com/posts/FeedErrorMessage.tsx:107 +msgid "This content is not viewable without a Bluesky account." +msgstr "Este conteúdo não está visível sem uma conta Bluesky." + +#: src/view/com/posts/FeedErrorMessage.tsx:113 +msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." +msgstr "Este feed está recebendo alto tráfego e está temporariamente indisponível. Por favor, tente novamente mais tarde." + +#: src/view/com/modals/BirthDateSettings.tsx:61 +msgid "This information is not shared with other users." +msgstr "Esta informação não é compartilhada com outros usuários." + +#: src/view/com/modals/VerifyEmail.tsx:113 +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 email ou redefinir sua senha." + +#: src/view/com/auth/create/Step1.tsx:55 +msgid "This is the service that keeps you online." +msgstr "Este é o serviço que o mantém online." + +#: src/view/com/modals/LinkWarning.tsx:56 +msgid "This link is taking you to the following website:" +msgstr "Esse link está levando você ao seguinte site:" + +#: src/view/com/post-thread/PostThreadItem.tsx:123 +msgid "This post has been deleted." +msgstr "Este post foi excluído." + +#: 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/view/com/util/forms/PostDropdownBtn.tsx:178 +msgid "This will hide this post from your feeds." +msgstr "Isso ocultará esse post de seus feeds." + +#: src/view/screens/PreferencesThreads.tsx:53 +#: src/view/screens/Settings.tsx:503 +msgid "Thread Preferences" +msgstr "Preferências de Tópico" + +#: src/view/screens/PreferencesThreads.tsx:119 +msgid "Threaded Mode" +msgstr "Modo Tópico" + +#: src/view/com/util/forms/DropdownButton.tsx:230 +msgid "Toggle dropdown" +msgstr "Alternar menu suspenso" + +#: src/view/com/modals/EditImage.tsx:271 +msgid "Transformations" +msgstr "Transformações" + +#: src/view/com/post-thread/PostThreadItem.tsx:705 +#: src/view/com/post-thread/PostThreadItem.tsx:707 +#: src/view/com/util/forms/PostDropdownBtn.tsx:111 +msgid "Translate" +msgstr "Traduzir" + +#: src/view/com/util/error/ErrorScreen.tsx:73 +msgid "Try again" +msgstr "Tente novamente" + +#: src/view/screens/ProfileList.tsx:473 +msgid "Un-block list" +msgstr "Lista de desbloqueio" + +#: src/view/screens/ProfileList.tsx:458 +msgid "Un-mute list" +msgstr "Lista de não silenciados" + +#: src/view/com/auth/create/CreateAccount.tsx:65 +#: src/view/com/auth/login/Login.tsx:76 +#: src/view/com/auth/login/LoginForm.tsx:120 +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:466 +#: src/view/com/profile/ProfileHeader.tsx:469 +msgid "Unblock" +msgstr "Desbloquear" + +#: src/view/com/profile/ProfileHeader.tsx:304 +#: src/view/com/profile/ProfileHeader.tsx:388 +msgid "Unblock Account" +msgstr "Desbloquear Conta" + +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +msgid "Undo repost" +msgstr "Desfazer repost" + +#: src/view/com/auth/create/state.ts:216 +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/profile/ProfileHeader.tsx:369 +msgid "Unmute Account" +msgstr "Não Silenciar Conta" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 +msgid "Unmute thread" +msgstr "Não silenciar o tópico" + +#: src/view/screens/ProfileList.tsx:441 +msgid "Unpin moderation list" +msgstr "Desafixar lista de moderação" + +#: src/view/com/modals/UserAddRemoveLists.tsx:54 +msgid "Update {displayName} in Lists" +msgstr "Atualizar {displayName} nas Listas" + +#: src/lib/hooks/useOTAUpdate.ts:15 +msgid "Update Available" +msgstr "Atualização Disponível" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:172 +msgid "Updating..." +msgstr "Atualizando..." + +#: src/view/com/modals/ChangeHandle.tsx:453 +msgid "Upload a text file to:" +msgstr "Carregar um arquivo de texto para:" + +#: src/view/screens/AppPasswords.tsx:194 +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 Bluesky sem dar acesso total à sua conta ou senha." + +#: src/view/com/modals/ChangeHandle.tsx:513 +msgid "Use default provider" +msgstr "Usar provedor padrão" + +#: src/view/com/modals/AddAppPasswords.tsx:150 +msgid "Use this to sign into the other app along with your handle." +msgstr "Use isto para entrar no outro aplicativo juntamente com seu identificador." + +#: src/view/com/modals/InviteCodes.tsx:197 +msgid "Used by:" +msgstr "Usado por:" + +#: src/view/com/auth/create/Step3.tsx:38 +msgid "User handle" +msgstr "Identificador de usuário" + +#: src/view/screens/Lists.tsx:58 +msgid "User Lists" +msgstr "Listas de Usuários" + +#: src/view/com/auth/login/LoginForm.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:192 +msgid "Username or email address" +msgstr "Nome de usuário ou endereço de email" + +#: src/view/screens/ProfileList.tsx:747 +msgid "Users" +msgstr "Usuários" + +#: src/view/com/threadgate/WhoCanReply.tsx:143 +msgid "users followed by <0/>" +msgstr "usuários seguidos por <0/>" + +#: src/view/com/threadgate/WhoCanReply.tsx:115 +#~ msgid "Users followed by <0/>" +#~ msgstr "" + +#: src/view/com/modals/Threadgate.tsx:106 +msgid "Users in \"{0}\"" +msgstr "Usuários em \"{0}\"" + +#: src/view/screens/Settings.tsx:769 +msgid "Verify email" +msgstr "Verificar email" + +#: src/view/screens/Settings.tsx:794 +msgid "Verify my email" +msgstr "Verificar meu email" + +#: src/view/screens/Settings.tsx:803 +msgid "Verify My Email" +msgstr "Verificar Meu Email" + +#: src/view/com/modals/ChangeEmail.tsx:205 +#: src/view/com/modals/ChangeEmail.tsx:207 +msgid "Verify New Email" +msgstr "Verificar Novo Email" + +#: src/view/screens/Log.tsx:52 +msgid "View debug entry" +msgstr "Ver entrada de depuração" + +#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +msgid "View the avatar" +msgstr "Ver o avatar" + +#: src/view/com/modals/LinkWarning.tsx:73 +msgid "Visit Site" +msgstr "Visitar Site" + +#: src/view/com/auth/create/CreateAccount.tsx:122 +msgid "We're so excited to have you join us!" +msgstr "Estamos muito felizes por você se juntar a nós!" + +#: src/view/com/posts/FeedErrorMessage.tsx:99 +#~ msgid "We're sorry, but this content is not viewable without a Bluesky account." +#~ msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:105 +#~ msgid "We're sorry, but this feed is currently receiving high traffic and is temporarily unavailable. Please try again later." +#~ msgstr "" + +#: src/view/screens/Search/Search.tsx:243 +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/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 +msgid "Welcome to <0>Bluesky" +msgstr "Bem-vindo ao <0>Bluesky" + +#: src/view/com/modals/report/Modal.tsx:169 +msgid "What is the issue with this {collectionName}?" +msgstr "Qual é o problema com este {collectionName}?" + +#: src/view/com/auth/SplashScreen.tsx:34 +msgid "What's up?" +msgstr "Que há de novo?" + +#: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:78 +msgid "Which languages are used in this post?" +msgstr "Quais idiomas são usados neste post?" + +#: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:77 +msgid "Which languages would you like to see in your algorithmic feeds?" +msgstr "Quais idiomas você gostaria de ver nos seus feeds algoritmo?" + +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +#: src/view/com/modals/Threadgate.tsx:66 +msgid "Who can reply" +msgstr "Quem pode responder" + +#: src/view/com/threadgate/WhoCanReply.tsx:79 +#~ msgid "Who can reply?" +#~ msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:102 +msgid "Wide" +msgstr "Largo" + +#: src/view/com/composer/Composer.tsx:418 +msgid "Write post" +msgstr "Escrever post" + +#: src/view/com/composer/Prompt.tsx:33 +msgid "Write your reply" +msgstr "Escreva sua resposta" + +#: src/view/screens/PreferencesHomeFeed.tsx:120 +#: src/view/screens/PreferencesHomeFeed.tsx:192 +#: src/view/screens/PreferencesHomeFeed.tsx:227 +#: src/view/screens/PreferencesHomeFeed.tsx:262 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 +msgid "Yes" +msgstr "Sim" + +#: src/view/com/auth/create/Step1.tsx:106 +msgid "You can change hosting providers at any time." +msgstr "Você pode alterar os provedores de hospedagem a qualquer momento." + +#: 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 "Agora você pode entrar com a sua nova senha." + +#: src/view/com/modals/InviteCodes.tsx:64 +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 código de convite! Nós lhe enviaremos alguns quando você estiver no Bluesky por mais um pouco de tempo." + +#: src/view/screens/SavedFeeds.tsx:102 +msgid "You don't have any pinned feeds." +msgstr "Você não tem feeds fixados." + +#: src/view/screens/Feeds.tsx:383 +msgid "You don't have any saved feeds!" +msgstr "Você não tem feeds salvos!" + +#: src/view/screens/SavedFeeds.tsx:135 +msgid "You don't have any saved feeds." +msgstr "Você não tem feeds salvos." + +#: src/view/com/post-thread/PostThread.tsx:381 +msgid "You have blocked the author or you have been blocked by the author." +msgstr "Você bloqueou o autor ou foi bloqueado pelo autor." + +#: src/view/com/feeds/ProfileFeedgens.tsx:134 +msgid "You have no feeds." +msgstr "Você não tem feeds." + +#: src/view/com/lists/MyLists.tsx:89 +#: src/view/com/lists/ProfileLists.tsx:138 +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 o perfil e selecione \"Bloquear conta\" no menu da conta." + +#: src/view/screens/AppPasswords.tsx:86 +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 do 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, vá ao perfil deles e selecione \"Silenciar conta\" no menu em sua conta." + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:81 +msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." +msgstr "Você receberá um email com um \"código de redefinição\". Digite esse código aqui, e então digite sua nova senha." + +#: src/view/com/auth/create/Step2.tsx:58 +msgid "Your account" +msgstr "Sua conta" + +#: src/view/com/auth/create/Step2.tsx:146 +msgid "Your birth date" +msgstr "Sua data de nascimento" + +#: src/view/com/auth/create/state.ts:102 +msgid "Your email appears to be invalid." +msgstr "Seu email parece ser inválido." + +#: src/view/com/modals/Waitlist.tsx:107 +msgid "Your email has been saved! We'll be in touch soon." +msgstr "Seu email foi salvo! Entraremos em contato em breve." + +#: 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 "Seu email foi atualizado mas não foi verificado. Como próximo passo, por favor verifique seu novo email." + +#: src/view/com/modals/VerifyEmail.tsx:108 +msgid "Your email has not yet been verified. This is an important security step which we recommend." +msgstr "Seu email ainda não foi verificado. Esta é uma etapa de segurança importante que recomendamos." + +#: src/view/com/auth/create/Step3.tsx:42 +#: src/view/com/modals/ChangeHandle.tsx:270 +msgid "Your full handle will be" +msgstr "Seu identificador completo será" + +#: src/view/com/auth/create/Step1.tsx:53 +msgid "Your hosting provider" +msgstr "Seu provedor de hospedagem" + +#: src/view/screens/Settings.tsx:402 +#: src/view/shell/desktop/RightNav.tsx:137 +#: src/view/shell/Drawer.tsx:655 +msgid "Your invite codes are hidden when logged in using an App Password" +msgstr "Seus códigos de convite estão ocultos quando conectado com uma Senha do Aplicativo" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +msgid "Your posts, likes, and blocks are public. Mutes are private." +msgstr "Suas postagens, curtidas e blocos são públicos. Mudos são privados." + +#: src/view/com/modals/SwitchAccount.tsx:82 +msgid "Your profile" +msgstr "Seu perfil" + +#: src/view/screens/Moderation.tsx:205 +#~ msgid "Your profile and account will not be visible to anyone visiting the Bluesky app without an account, or to account holders who are not logged in. Enabling this will not make your profile private." +#~ msgstr "" + +#: src/view/screens/Moderation.tsx:220 +#~ msgid "Your profile and content will not be visible to anyone visiting the Bluesky app without an account. Enabling this will not make your profile private." +#~ msgstr "" + +#: src/view/screens/Moderation.tsx:220 +#~ 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 "" + +#: src/view/com/auth/create/Step3.tsx:28 +msgid "Your user handle" +msgstr "Seu identificador de usuário" From 1f38e9b197fcdc54409bfd346a1bbee67eac8a89 Mon Sep 17 00:00:00 2001 From: Maison da Silva Date: Wed, 3 Jan 2024 16:32:22 -0300 Subject: [PATCH 070/115] =?UTF-8?q?Update=20Portuguese=20for=20Portugu?= =?UTF-8?q?=C3=AAs=20(#2414)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locale/languages.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locale/languages.ts b/src/locale/languages.ts index 3b51e61ce3..4cefa286bd 100644 --- a/src/locale/languages.ts +++ b/src/locale/languages.ts @@ -30,7 +30,7 @@ export const APP_LANGUAGES: AppLanguageConfig[] = [ {code2: AppLanguage.hi, name: 'हिंदी'}, {code2: AppLanguage.ja, name: '日本語'}, {code2: AppLanguage.ko, name: '한국어'}, - {code2: AppLanguage.pt_BR, name: 'Portuguese (BR)'}, + {code2: AppLanguage.pt_BR, name: 'Português (BR)'}, ] export const LANGUAGES: Language[] = [ From 401b3401c70a8bc9074904e922cded1986309bd6 Mon Sep 17 00:00:00 2001 From: Max Ignatenko Date: Wed, 3 Jan 2024 20:22:55 +0000 Subject: [PATCH 071/115] Add Ukrainian localization (#2336) --- lingui.config.js | 2 +- src/locale/helpers.ts | 2 + src/locale/i18n.ts | 5 + src/locale/i18n.web.ts | 4 + src/locale/languages.ts | 2 + src/locale/locales/uk/messages.po | 2678 +++++++++++++++++++++++++++++ 6 files changed, 2692 insertions(+), 1 deletion(-) create mode 100644 src/locale/locales/uk/messages.po diff --git a/lingui.config.js b/lingui.config.js index 6be3922ef5..dc26f57a53 100644 --- a/lingui.config.js +++ b/lingui.config.js @@ -1,6 +1,6 @@ /** @type {import('@lingui/conf').LinguiConfig} */ module.exports = { - locales: ['en', 'hi', 'ja', 'fr', 'de', 'es', 'ko', 'es', 'pt-BR'], + locales: ['en', 'hi', 'ja', 'fr', 'de', 'es', 'ko', 'es', 'pt-BR', 'uk'], catalogs: [ { path: '/src/locale/locales/{locale}/messages', diff --git a/src/locale/helpers.ts b/src/locale/helpers.ts index a24b69b4eb..517e610bfd 100644 --- a/src/locale/helpers.ts +++ b/src/locale/helpers.ts @@ -126,6 +126,8 @@ export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage { return AppLanguage.ko case 'pt-BR': return AppLanguage.pt_BR + case 'uk': + return AppLanguage.uk default: continue } diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts index 7a2fa022e5..9e9b578c7d 100644 --- a/src/locale/i18n.ts +++ b/src/locale/i18n.ts @@ -11,6 +11,7 @@ import {messages as messagesHi} from '#/locale/locales/hi/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 {sanitizeAppLanguageSetting} from '#/locale/helpers' import {AppLanguage} from '#/locale/languages' @@ -49,6 +50,10 @@ export async function dynamicActivate(locale: AppLanguage) { i18n.loadAndActivate({locale, messages: messagesPt_BR}) break } + case AppLanguage.uk: { + i18n.loadAndActivate({locale, messages: messagesUk}) + break + } default: { i18n.loadAndActivate({locale, messages: messagesEn}) break diff --git a/src/locale/i18n.web.ts b/src/locale/i18n.web.ts index e98dcafae6..1fb9c2d703 100644 --- a/src/locale/i18n.web.ts +++ b/src/locale/i18n.web.ts @@ -41,6 +41,10 @@ export async function dynamicActivate(locale: AppLanguage) { mod = await import(`./locales/pt-BR/messages`) break } + case AppLanguage.uk: { + mod = await import(`./locales/uk/messages`) + break + } default: { mod = await import(`./locales/en/messages`) break diff --git a/src/locale/languages.ts b/src/locale/languages.ts index 4cefa286bd..6514bf92c6 100644 --- a/src/locale/languages.ts +++ b/src/locale/languages.ts @@ -14,6 +14,7 @@ export enum AppLanguage { ja = 'ja', ko = 'ko', pt_BR = 'pt-BR', + uk = 'uk', } interface AppLanguageConfig { @@ -31,6 +32,7 @@ export const APP_LANGUAGES: AppLanguageConfig[] = [ {code2: AppLanguage.ja, name: '日本語'}, {code2: AppLanguage.ko, name: '한국어'}, {code2: AppLanguage.pt_BR, name: 'Português (BR)'}, + {code2: AppLanguage.uk, name: 'Українська'}, ] export const LANGUAGES: Language[] = [ diff --git a/src/locale/locales/uk/messages.po b/src/locale/locales/uk/messages.po new file mode 100644 index 0000000000..72395a1def --- /dev/null +++ b/src/locale/locales/uk/messages.po @@ -0,0 +1,2678 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2023-11-05 16:01-0800\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: uk\n" +"Project-Id-Version: bsky-app-ua\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-01-03 20:21\n" +"Last-Translator: \n" +"Language-Team: Ukrainian\n" +"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" +"X-Crowdin-Project: bsky-app-ua\n" +"X-Crowdin-Project-ID: 636504\n" +"X-Crowdin-Language: uk\n" +"X-Crowdin-File: /main/src/locale/locales/en/messages.po\n" +"X-Crowdin-File-ID: 14\n" + +#: src/view/screens/Profile.tsx:214 +#~ msgid "- end of feed -" +#~ msgstr "" + +#: src/view/com/modals/SelfLabel.tsx:138 +#~ msgid ". This warning is only available for posts with media attached." +#~ msgstr "" + +#: src/view/shell/desktop/RightNav.tsx:168 +msgid "{0, plural, one {# invite code available} other {# invite codes available}}" +msgstr "{0, plural, one {Доступний # код запрошення} few {Доступно # коди запрошення} other {Доступно # кодів запрошення}}" + +#: src/view/com/modals/Repost.tsx:44 +msgid "{0}" +msgstr "{0}" + +#: src/view/com/modals/CreateOrEditList.tsx:176 +msgid "{0} {purposeLabel} List" +msgstr "{0} Список {purposeLabel}" + +#: src/view/shell/desktop/RightNav.tsx:151 +msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" +msgstr "{invitesAvailable, plural, one {Коди запрошень: доступно #} other {Коди запрошень: доступно #}}" + +#: src/view/screens/Settings.tsx:407 +#: src/view/shell/Drawer.tsx:659 +msgid "{invitesAvailable} invite code available" +msgstr "Доступний код запрошення" + +#: src/view/screens/Settings.tsx:409 +#: src/view/shell/Drawer.tsx:661 +msgid "{invitesAvailable} invite codes available" +msgstr "Доступно {invitesAvailable} кодів запрошення" + +#: src/view/screens/Search/Search.tsx:87 +msgid "{message}" +msgstr "{message}" + +#: src/view/com/threadgate/WhoCanReply.tsx:158 +msgid "<0/> members" +msgstr "<0/> учасників" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:30 +msgid "<0>Choose your<1>Recommended<2>Feeds" +msgstr "<0>Оберіть свої<1>рекомендовані<2>стрічки" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:37 +msgid "<0>Follow some<1>Recommended<2>Users" +msgstr "<0>Підпишіться на деяких <1>рекомендованих <2>користувачів" + +#: src/view/com/modals/AddAppPasswords.tsx:132 +#~ msgid "<0>Here is your app password. Use this to sign into the other app along with your handle." +#~ msgstr "" + +#: src/view/screens/Moderation.tsx:212 +#~ msgid "<0>Note: This setting may not be respected by third-party apps that display Bluesky content." +#~ msgstr "" + +#: src/view/screens/Moderation.tsx:212 +#~ msgid "<0>Note: Your profile and posts will remain publicly available. Third-party apps that display Bluesky content may not respect this setting." +#~ msgstr "" + +#: src/view/com/util/moderation/LabelInfo.tsx:45 +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 "Доступна нова версія. Будь ласка, оновіть застосунок, щоб продовжити ним користуватися." + +#: src/view/com/modals/EditImage.tsx:299 +#: src/view/screens/Settings.tsx:417 +msgid "Accessibility" +msgstr "Доступність" + +#: src/view/com/auth/login/LoginForm.tsx:163 +#: src/view/screens/Settings.tsx:286 +msgid "Account" +msgstr "Обліковий запис" + +#: src/view/com/util/AccountDropdownBtn.tsx:41 +msgid "Account options" +msgstr "Параметри облікового запису" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/UserAddRemoveLists.tsx:193 +#: src/view/screens/ProfileList.tsx:763 +msgid "Add" +msgstr "Додати" + +#: src/view/com/modals/SelfLabel.tsx:56 +msgid "Add a content warning" +msgstr "Додати попередження про вміст" + +#: src/view/screens/ProfileList.tsx:753 +msgid "Add a user to this list" +msgstr "Додати користувача до списку" + +#: src/view/screens/Settings.tsx:355 +#: src/view/screens/Settings.tsx:364 +msgid "Add account" +msgstr "Додати обліковий запис" + +#: src/view/com/composer/photos/Gallery.tsx:119 +#: src/view/com/composer/photos/Gallery.tsx:180 +#: src/view/com/modals/AltImage.tsx:93 +msgid "Add alt text" +msgstr "Додати альтернативний текст" + +#: src/view/com/modals/report/InputIssueDetails.tsx:41 +#: src/view/com/modals/report/Modal.tsx:191 +msgid "Add details" +msgstr "Додайте подробиці" + +#: src/view/com/modals/report/Modal.tsx:194 +msgid "Add details to report" +msgstr "Додайте подробиці до скарги" + +#: src/view/com/composer/Composer.tsx:447 +msgid "Add link card" +msgstr "Додати попередній перегляд" + +#: src/view/com/composer/Composer.tsx:450 +msgid "Add link card:" +msgstr "Додати попередній перегляд:" + +#: src/view/com/modals/ChangeHandle.tsx:415 +msgid "Add the following DNS record to your domain:" +msgstr "Додайте наступний DNS-запис до вашого домену:" + +#: src/view/com/profile/ProfileHeader.tsx:353 +msgid "Add to Lists" +msgstr "Додати до списку" + +#: src/view/screens/ProfileFeed.tsx:271 +msgid "Add to my feeds" +msgstr "Додати до моїх стрічок" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:191 +#: src/view/com/modals/UserAddRemoveLists.tsx:128 +msgid "Added to list" +msgstr "Додано до списку" + +#: src/view/screens/PreferencesHomeFeed.tsx:170 +msgid "Adjust the number of likes a reply must have to be shown in your feed." +msgstr "Налаштуйте мінімальну кількість вподобань для того щоб відповідь відобразилася у вашій стрічці." + +#: src/view/com/modals/SelfLabel.tsx:75 +msgid "Adult Content" +msgstr "Вміст для дорослих" + +#: src/view/screens/Settings.tsx:569 +msgid "Advanced" +msgstr "Розширені" + +#: src/view/com/composer/photos/Gallery.tsx:130 +msgid "ALT" +msgstr "ALT" + +#: src/view/com/modals/EditImage.tsx:315 +msgid "Alt text" +msgstr "Альтернативний текст" + +#: 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 "Альтернативний текст описує зображення для незрячих та користувачів із вадами зору, та надає додатковий контекст для всіх." + +#: src/view/com/modals/VerifyEmail.tsx:118 +msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." +msgstr "Було надіслано лист на адресу {0}. Він містить код підтвердження, який можна ввести нижче." + +#: 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 "Було надіслано лист на вашу попередню адресу, {0}. Він містить код підтвердження, який ви можете ввести нижче." + +#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/threadgate/WhoCanReply.tsx:178 +msgid "and" +msgstr "та" + +#: src/view/screens/LanguageSettings.tsx:95 +msgid "App Language" +msgstr "Мова застосунку" + +#: src/view/screens/Settings.tsx:589 +msgid "App passwords" +msgstr "Паролі для застосунків" + +#: src/view/screens/AppPasswords.tsx:186 +msgid "App Passwords" +msgstr "Паролі для застосунків" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:236 +msgid "Appeal content warning" +msgstr "Оскаржити попередження про вміст" + +#: src/view/com/modals/AppealLabel.tsx:65 +msgid "Appeal Content Warning" +msgstr "Оскаржити попередження про вміст" + +#: src/view/com/modals/AppealLabel.tsx:65 +#~ msgid "Appeal Decision" +#~ msgstr "" + +#: src/view/com/util/moderation/LabelInfo.tsx:52 +msgid "Appeal this decision" +msgstr "Оскаржити це рішення" + +#: src/view/com/util/moderation/LabelInfo.tsx:56 +msgid "Appeal this decision." +msgstr "Оскаржити це рішення" + +#: src/view/screens/Settings.tsx:432 +msgid "Appearance" +msgstr "Оформлення" + +#: src/view/screens/Moderation.tsx:206 +#~ msgid "Apps that respect this setting, including the official Bluesky app and bsky.app website, won't show your content to logged out users." +#~ msgstr "" + +#: src/view/screens/AppPasswords.tsx:223 +msgid "Are you sure you want to delete the app password \"{name}\"?" +msgstr "Ви дійсно хочете видалити пароль для застосунку \"{name}\"?" + +#: src/view/com/composer/Composer.tsx:143 +msgid "Are you sure you'd like to discard this draft?" +msgstr "Ви дійсно бажаєте видалити цю чернетку?" + +#: src/view/screens/ProfileList.tsx:353 +msgid "Are you sure?" +msgstr "Ви впевнені?" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:219 +msgid "Are you sure? This cannot be undone." +msgstr "Ви впевнені? Це не можна буде скасувати." + +#: src/view/com/modals/SelfLabel.tsx:123 +msgid "Artistic or non-erotic nudity." +msgstr "Художня або нееротична оголеність." + +#: src/view/screens/Moderation.tsx:189 +#~ msgid "Ask apps to limit the visibility of my account" +#~ msgstr "" + +#: src/view/com/auth/create/CreateAccount.tsx:141 +#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:166 +#: src/view/com/auth/login/LoginForm.tsx:254 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:148 +#: src/view/com/modals/report/InputIssueDetails.tsx:46 +#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:438 +#: src/view/com/post-thread/PostThread.tsx:446 +#: src/view/com/profile/ProfileHeader.tsx:672 +msgid "Back" +msgstr "Назад" + +#: src/view/screens/Settings.tsx:461 +msgid "Basics" +msgstr "Основні" + +#: src/view/com/auth/create/Step2.tsx:156 +#: src/view/com/modals/BirthDateSettings.tsx:73 +msgid "Birthday" +msgstr "Дата народження" + +#: src/view/screens/Settings.tsx:312 +msgid "Birthday:" +msgstr "Дата народження:" + +#: src/view/com/profile/ProfileHeader.tsx:282 +#: src/view/com/profile/ProfileHeader.tsx:389 +msgid "Block Account" +msgstr "Заблокувати" + +#: src/view/screens/ProfileList.tsx:523 +msgid "Block accounts" +msgstr "Заблокувати облікові записи" + +#: src/view/screens/ProfileList.tsx:473 +msgid "Block list" +msgstr "Заблокувати список" + +#: src/view/screens/ProfileList.tsx:308 +msgid "Block these accounts?" +msgstr "Заблокувати ці облікові записи?" + +#: src/view/screens/Moderation.tsx:123 +msgid "Blocked accounts" +msgstr "Заблоковані облікові записи" + +#: src/view/screens/ModerationBlockedAccounts.tsx:107 +msgid "Blocked Accounts" +msgstr "Заблоковані облікові записи" + +#: src/view/com/profile/ProfileHeader.tsx:284 +msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." +msgstr "Заблоковані облікові записи не можуть вам відповідати, згадувати вас у своїх постах, і взаємодіяти з вами будь-яким іншим чином." + +#: 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 "Заблоковані облікові записи не можуть вам відповідати, згадувати вас у своїх постах, і взаємодіяти з вами будь-яким іншим чином. Ви не будете бачити їхні пости і вони не будуть бачити ваші." + +#: src/view/com/post-thread/PostThread.tsx:250 +msgid "Blocked post." +msgstr "Заблокований пост." + +#: src/view/screens/ProfileList.tsx:310 +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 +msgid "Blog" +msgstr "Блог" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:31 +msgid "Bluesky" +msgstr "Bluesky" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +msgid "Bluesky is flexible." +msgstr "Bluesky гнучкий." + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +msgid "Bluesky is open." +msgstr "Bluesky відкритий." + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +msgid "Bluesky is public." +msgstr "Bluesky публічний." + +#: 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 використовує систему запрошень для створення здоровішої спільноти. Якщо Ви не знаєте когось хто має запрошення, ви можете записатися до черги очікування і ми скоро надішлемо вам код запрошення." + +#: src/view/screens/Moderation.tsx:225 +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 не буде показувати ваш профіль і повідомлення відвідувачам без облікового запису. Інші застосунки можуть не слідувати цьому запиту. Це не робить ваш обліковий запис приватним." + +#: src/view/com/modals/ServerInput.tsx:78 +msgid "Bluesky.Social" +msgstr "Bluesky.Social" + +#: src/view/screens/Settings.tsx:718 +msgid "Build version {0} {1}" +msgstr "Версія {0} {1}" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +msgid "Business" +msgstr "Організація" + +#: 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 "Камера" + +#: src/view/com/modals/AddAppPasswords.tsx:214 +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/view/com/composer/Composer.tsx:294 +#: src/view/com/composer/Composer.tsx:297 +#: src/view/com/modals/ChangeEmail.tsx:218 +#: src/view/com/modals/ChangeEmail.tsx:220 +#: src/view/com/modals/Confirm.tsx:88 +#: src/view/com/modals/CreateOrEditList.tsx:267 +#: src/view/com/modals/CreateOrEditList.tsx:272 +#: src/view/com/modals/DeleteAccount.tsx:150 +#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/EditImage.tsx:323 +#: src/view/com/modals/EditProfile.tsx:248 +#: src/view/com/modals/LinkWarning.tsx:85 +#: src/view/com/modals/Repost.tsx:73 +#: src/view/com/modals/Waitlist.tsx:136 +#: src/view/screens/Search/Search.tsx:601 +#: src/view/shell/desktop/Search.tsx:182 +msgid "Cancel" +msgstr "Скасувати" + +#: src/view/com/modals/DeleteAccount.tsx:146 +#: src/view/com/modals/DeleteAccount.tsx:219 +msgid "Cancel account deletion" +msgstr "Скасувати видалення облікового запису" + +#: src/view/com/modals/AltImage.tsx:123 +#~ msgid "Cancel add image alt text" +#~ msgstr "" + +#: src/view/com/modals/ChangeHandle.tsx:149 +msgid "Cancel change handle" +msgstr "Скасувати зміну псевдоніму" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:134 +msgid "Cancel image crop" +msgstr "Скасувати обрізання зображення" + +#: src/view/com/modals/EditProfile.tsx:243 +msgid "Cancel profile editing" +msgstr "Скасувати редагування профілю" + +#: src/view/com/modals/Repost.tsx:64 +msgid "Cancel quote post" +msgstr "Скасувати цитування повідомлення" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:87 +#: src/view/shell/desktop/Search.tsx:178 +msgid "Cancel search" +msgstr "Скасувати пошук" + +#: src/view/com/modals/Waitlist.tsx:132 +msgid "Cancel waitlist signup" +msgstr "Скасувати запис у чергу очікування" + +#: src/view/screens/Settings.tsx:306 +msgid "Change" +msgstr "Змінити" + +#: src/view/screens/Settings.tsx:601 +#: src/view/screens/Settings.tsx:610 +msgid "Change handle" +msgstr "Змінити псевдонім" + +#: src/view/com/modals/ChangeHandle.tsx:161 +msgid "Change Handle" +msgstr "Змінити псевдонім" + +#: src/view/com/modals/VerifyEmail.tsx:141 +msgid "Change my email" +msgstr "Змінити адресу електронної пошти" + +#: src/view/com/modals/ChangeEmail.tsx:109 +msgid "Change Your Email" +msgstr "Змінити адресу електронної пошти" + +#: 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 "Подивіться на деякі з рекомендованих стрічок. Натисніть +, щоб додати їх до свого списку закріплених стрічок." + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:185 +msgid "Check out some recommended users. Follow them to see similar users." +msgstr "Подивіться на деяких рекомендованих користувачів. Підпишіться на них щоб бачити схожих користувачів." + +#: src/view/com/modals/DeleteAccount.tsx:163 +msgid "Check your inbox for an email with the confirmation code to enter below:" +msgstr "Пошукайте у вашій поштовій скриньці лист із кодом, щоб ввести нижче:" + +#: src/view/com/modals/Threadgate.tsx:72 +msgid "Choose \"Everybody\" or \"Nobody\"" +msgstr "Виберіть \"Усі\" або \"Ніхто\"" + +#: src/view/com/modals/ServerInput.tsx:38 +msgid "Choose Service" +msgstr "Оберіть хостинг-провайдера" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +msgid "Choose the algorithms that power your experience with custom feeds." +msgstr "Автори стрічок можуть обирати будь-які алгоритми для формування стрічки саме для вас." + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:65 +#~ msgid "Choose your" +#~ msgstr "" + +#: src/view/com/auth/create/Step2.tsx:127 +msgid "Choose your password" +msgstr "Вкажіть пароль" + +#: src/view/screens/Settings.tsx:694 +msgid "Clear all legacy storage data" +msgstr "" + +#: src/view/screens/Settings.tsx:696 +msgid "Clear all legacy storage data (restart after this)" +msgstr "" + +#: src/view/screens/Settings.tsx:706 +msgid "Clear all storage data" +msgstr "" + +#: src/view/screens/Settings.tsx:708 +msgid "Clear all storage data (restart after this)" +msgstr "" + +#: src/view/com/util/forms/SearchInput.tsx:74 +#: src/view/screens/Search/Search.tsx:582 +msgid "Clear search query" +msgstr "Очистити пошуковий запит" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:38 +msgid "Close alert" +msgstr "Закрити сповіщення" + +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +msgid "Close bottom drawer" +msgstr "Закрити нижнє меню" + +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +msgid "Close image" +msgstr "Закрити зображення" + +#: src/view/com/lightbox/Lightbox.web.tsx:112 +msgid "Close image viewer" +msgstr "Закрити перегляд зображення" + +#: src/view/shell/index.web.tsx:49 +msgid "Close navigation footer" +msgstr "Закрити панель навігації" + +#: src/view/screens/CommunityGuidelines.tsx:32 +msgid "Community Guidelines" +msgstr "Правила спільноти" + +#: src/view/com/composer/Prompt.tsx:24 +msgid "Compose reply" +msgstr "Відповісти" + +#: src/view/com/modals/AppealLabel.tsx:98 +#: src/view/com/modals/Confirm.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:154 +#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/screens/PreferencesHomeFeed.tsx:305 +#: src/view/screens/PreferencesThreads.tsx:159 +msgid "Confirm" +msgstr "Підтвердити" + +#: src/view/com/modals/ChangeEmail.tsx:193 +#: src/view/com/modals/ChangeEmail.tsx:195 +msgid "Confirm Change" +msgstr "Підтвердити" + +#: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:34 +msgid "Confirm content language settings" +msgstr "Підтвердити перелік мов" + +#: src/view/com/modals/DeleteAccount.tsx:209 +msgid "Confirm delete account" +msgstr "Підтвердити видалення облікового запису" + +#: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 +#: src/view/com/modals/VerifyEmail.tsx:159 +msgid "Confirmation code" +msgstr "Код підтвердження" + +#: src/view/com/auth/create/CreateAccount.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:273 +msgid "Connecting..." +msgstr "З’єднання..." + +#: src/view/screens/Moderation.tsx:81 +msgid "Content filtering" +msgstr "Фільтрування вмісту" + +#: src/view/com/modals/ContentFilteringSettings.tsx:44 +msgid "Content Filtering" +msgstr "Фільтрування вмісту" + +#: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 +#: src/view/screens/LanguageSettings.tsx:278 +msgid "Content Languages" +msgstr "Мови" + +#: src/view/com/util/moderation/ScreenHider.tsx:78 +msgid "Content Warning" +msgstr "Попередження про вміст" + +#: src/view/com/composer/labels/LabelsBtn.tsx:31 +msgid "Content warnings" +msgstr "Попередження про вміст" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +msgid "Continue" +msgstr "Продовжити" + +#: src/view/com/modals/AddAppPasswords.tsx:193 +#: src/view/com/modals/InviteCodes.tsx:179 +msgid "Copied" +msgstr "Скопійовано" + +#: src/view/com/modals/AddAppPasswords.tsx:186 +msgid "Copy" +msgstr "Скопіювати" + +#: src/view/screens/ProfileList.tsx:385 +msgid "Copy link to list" +msgstr "Скопіювати посилання на список" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +msgid "Copy link to post" +msgstr "Скопіювати посилання на пост" + +#: src/view/com/profile/ProfileHeader.tsx:338 +msgid "Copy link to profile" +msgstr "Скопіювати посилання на профіль" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 +msgid "Copy post text" +msgstr "Скопіювати текст повідомлення" + +#: src/view/screens/CopyrightPolicy.tsx:29 +msgid "Copyright Policy" +msgstr "Політика захисту авторського права" + +#: src/view/screens/ProfileFeed.tsx:95 +msgid "Could not load feed" +msgstr "Не вдалося завантажити стрічку" + +#: src/view/screens/ProfileList.tsx:839 +msgid "Could not load list" +msgstr "Не вдалося завантажити список" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 +#: src/view/com/auth/SplashScreen.tsx:46 +msgid "Create a new account" +msgstr "Створити новий обліковий запис" + +#: src/view/com/auth/create/CreateAccount.tsx:121 +msgid "Create Account" +msgstr "Створити обліковий запис" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:54 +#: src/view/com/auth/SplashScreen.tsx:43 +msgid "Create new account" +msgstr "Створити новий обліковий запис" + +#: src/view/screens/AppPasswords.tsx:248 +msgid "Created {0}" +msgstr "Створено: {0}" + +#: src/view/com/modals/ChangeHandle.tsx:387 +#: src/view/com/modals/ServerInput.tsx:102 +msgid "Custom domain" +msgstr "Власний домен" + +#: src/view/screens/Settings.tsx:615 +msgid "Danger Zone" +msgstr "Небезпечна зона" + +#: src/view/screens/Settings.tsx:411 +#~ msgid "Dark" +#~ msgstr "" + +#: src/view/screens/Settings.tsx:622 +msgid "Delete account" +msgstr "Видалити обліковий запис" + +#: src/view/com/modals/DeleteAccount.tsx:83 +msgid "Delete Account" +msgstr "Видалити обліковий запис" + +#: src/view/screens/AppPasswords.tsx:221 +#: src/view/screens/AppPasswords.tsx:241 +msgid "Delete app password" +msgstr "Видалити пароль для застосунку" + +#: src/view/screens/ProfileList.tsx:352 +#: src/view/screens/ProfileList.tsx:412 +msgid "Delete List" +msgstr "Видалити список" + +#: src/view/com/modals/DeleteAccount.tsx:212 +msgid "Delete my account" +msgstr "Видалити мій обліковий запис" + +#: src/view/screens/Settings.tsx:632 +msgid "Delete my account…" +msgstr "Видалити мій обліковий запис…" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 +msgid "Delete post" +msgstr "Видалити пост" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:218 +msgid "Delete this post?" +msgstr "Видалити цей пост?" + +#: src/view/com/post-thread/PostThread.tsx:242 +msgid "Deleted post." +msgstr "Видалений пост." + +#: src/view/com/modals/CreateOrEditList.tsx:218 +#: src/view/com/modals/CreateOrEditList.tsx:234 +#: src/view/com/modals/EditProfile.tsx:197 +#: src/view/com/modals/EditProfile.tsx:209 +msgid "Description" +msgstr "Опис" + +#: src/view/com/auth/create/Step1.tsx:96 +msgid "Dev Server" +msgstr "" + +#: src/view/screens/Settings.tsx:637 +msgid "Developer Tools" +msgstr "Інструменти розробника" + +#: src/view/com/composer/Composer.tsx:211 +msgid "Did you want to say anything?" +msgstr "Порожній пост. Ви хотіли щось написати?" + +#: src/view/com/composer/Composer.tsx:144 +msgid "Discard" +msgstr "Видалити" + +#: src/view/com/composer/Composer.tsx:138 +msgid "Discard draft" +msgstr "Відкинути чернетку" + +#: src/view/screens/Moderation.tsx:207 +msgid "Discourage apps from showing my account to logged-out users" +msgstr "Попросити застосунки не показувати мій обліковий запис без входу" + +#: src/view/screens/Feeds.tsx:405 +msgid "Discover new feeds" +msgstr "Відкрийте для себе нові стрічки" + +#: src/view/com/modals/EditProfile.tsx:191 +msgid "Display name" +msgstr "Ім'я" + +#: src/view/com/modals/EditProfile.tsx:179 +msgid "Display Name" +msgstr "Ім'я" + +#: src/view/com/modals/ChangeHandle.tsx:485 +msgid "Domain verified!" +msgstr "Домен перевірено!" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/AltImage.tsx:115 +#: 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/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:142 +#: 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:79 +#: src/view/screens/PreferencesHomeFeed.tsx:308 +#: src/view/screens/PreferencesThreads.tsx:162 +msgid "Done" +msgstr "Готово" + +#: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 +msgid "Done{extraText}" +msgstr "Готово{extraText}" + +#: src/view/com/modals/InviteCodes.tsx:94 +msgid "Each code works once. You'll receive more invite codes periodically." +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:400 +msgid "Edit list details" +msgstr "Редагувати опис списку" + +#: src/view/screens/Feeds.tsx:367 +#: src/view/screens/SavedFeeds.tsx:84 +msgid "Edit My Feeds" +msgstr "Редагувати мої стрічки" + +#: src/view/com/modals/EditProfile.tsx:151 +msgid "Edit my profile" +msgstr "Редагувати мій профіль" + +#: src/view/com/profile/ProfileHeader.tsx:453 +msgid "Edit profile" +msgstr "Редагувати профіль" + +#: src/view/com/profile/ProfileHeader.tsx:456 +msgid "Edit Profile" +msgstr "Редагувати профіль" + +#: src/view/screens/Feeds.tsx:330 +msgid "Edit Saved Feeds" +msgstr "Редагувати збережені стрічки" + +#: src/view/com/auth/create/Step2.tsx:108 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:148 +#: src/view/com/modals/ChangeEmail.tsx:141 +#: src/view/com/modals/Waitlist.tsx:88 +msgid "Email" +msgstr "Ел. пошта" + +#: src/view/com/auth/create/Step2.tsx:99 +msgid "Email address" +msgstr "Адреса електронної пошти" + +#: src/view/com/modals/ChangeEmail.tsx:111 +msgid "Email Updated" +msgstr "Email оновлено" + +#: src/view/screens/Settings.tsx:290 +msgid "Email:" +msgstr "Email:" + +#: src/view/screens/PreferencesHomeFeed.tsx:144 +msgid "Enable this setting to only see replies between people you follow." +msgstr "Увімкніть цей параметр, щоб бачити відповіді тільки між людьми, на яких ви підписані." + +#: src/view/screens/Profile.tsx:426 +msgid "End of feed" +msgstr "Кінець стрічки" + +#: src/view/com/auth/create/Step1.tsx:71 +msgid "Enter the address of your provider:" +msgstr "Введіть адресу вашого хостинг-провайдера:" + +#: src/view/com/modals/ChangeHandle.tsx:369 +msgid "Enter the domain you want to use" +msgstr "Введіть домен, який ви хочете використовувати" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:101 +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/view/com/auth/create/Step2.tsx:104 +msgid "Enter your email address" +msgstr "Введіть адресу електронної пошти" + +#: src/view/com/modals/ChangeEmail.tsx:117 +msgid "Enter your new email address below." +msgstr "Введіть нову адресу електронної пошти." + +#: src/view/com/auth/login/Login.tsx:99 +msgid "Enter your username and password" +msgstr "Введіть псевдонім та пароль" + +#: src/view/screens/Search/Search.tsx:105 +msgid "Error:" +msgstr "Помилка:" + +#: src/view/com/modals/Threadgate.tsx:76 +msgid "Everybody" +msgstr "Усі" + +#: src/view/com/lightbox/Lightbox.web.tsx:156 +msgid "Expand alt text" +msgstr "Розгорнути альтернативний текст" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 +msgid "Failed to load recommended feeds" +msgstr "Не вдалося завантажити рекомендації стрічок" + +#: src/view/screens/Feeds.tsx:556 +msgid "Feed offline" +msgstr "Стрічка не працює" + +#: src/view/com/feeds/FeedPage.tsx:143 +msgid "Feed Preferences" +msgstr "Налаштування стрічки" + +#: src/view/shell/desktop/RightNav.tsx:73 +#: src/view/shell/Drawer.tsx:311 +msgid "Feedback" +msgstr "Надіслати відгук" + +#: src/view/screens/Feeds.tsx:475 +#: src/view/screens/Profile.tsx:165 +#: src/view/shell/bottom-bar/BottomBar.tsx:181 +#: src/view/shell/desktop/LeftNav.tsx:342 +#: src/view/shell/Drawer.tsx:474 +#: src/view/shell/Drawer.tsx:475 +msgid "Feeds" +msgstr "Стрічки" + +#: 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 "Стрічки створюються користувачами для відбору постів. Оберіть стрічки, що вас цікавлять." + +#: src/view/screens/SavedFeeds.tsx:156 +msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." +msgstr "Стрічки - це алгоритми, створені користувачами з деяким досвідом програмування. <0/> для додаткової інформації." + +#: src/view/screens/Search/Search.tsx:427 +msgid "Find users on Bluesky" +msgstr "Знайти користувачів у Bluesky" + +#: src/view/screens/Search/Search.tsx:425 +msgid "Find users with the search tool on the right" +msgstr "Знайти користувачів за допомогою поля пошуку справа вгорі" + +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:150 +msgid "Finding similar accounts..." +msgstr "Пошук схожих користувачів..." + +#: src/view/screens/PreferencesHomeFeed.tsx:108 +msgid "Fine-tune the content you see on your home screen." +msgstr "Оберіть, що ви хочете бачити у своїй домашній стрічці." + +#: src/view/screens/PreferencesThreads.tsx:60 +msgid "Fine-tune the discussion threads." +msgstr "Налаштуйте відображення обговорень." + +#: src/view/com/profile/ProfileHeader.tsx:538 +msgid "Follow" +msgstr "Підписатися" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:42 +#~ msgid "Follow some" +#~ msgstr "" + +#: 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 "Підпишіться на кількох користувачів щоб почати їх читати. Ми зможемо порекомендувати вам більше користувачів, спираючись на те хто вас цікавить." + +#: src/view/com/modals/Threadgate.tsx:98 +msgid "Followed users" +msgstr "Ваші підписки" + +#: src/view/screens/PreferencesHomeFeed.tsx:151 +msgid "Followed users only" +msgstr "Тільки ваші підписки" + +#: src/view/screens/ProfileFollowers.tsx:25 +msgid "Followers" +msgstr "Підписники" + +#: src/view/com/profile/ProfileHeader.tsx:624 +msgid "following" +msgstr "підписок" + +#: src/view/com/profile/ProfileHeader.tsx:522 +#: src/view/screens/ProfileFollows.tsx:25 +msgid "Following" +msgstr "Підписані" + +#: src/view/com/profile/ProfileHeader.tsx:571 +msgid "Follows you" +msgstr "Підписаний на вас" + +#: src/view/com/modals/DeleteAccount.tsx:107 +msgid "For security reasons, we'll need to send a confirmation code to your email address." +msgstr "З міркувань безпеки нам потрібно буде відправити код підтвердження на вашу електронну адресу." + +#: src/view/com/modals/AddAppPasswords.tsx:207 +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:236 +msgid "Forgot" +msgstr "Забули пароль" + +#: src/view/com/auth/login/LoginForm.tsx:233 +msgid "Forgot password" +msgstr "Забули пароль" + +#: src/view/com/auth/login/Login.tsx:127 +#: src/view/com/auth/login/Login.tsx:143 +msgid "Forgot Password" +msgstr "Забули пароль" + +#: src/view/com/composer/photos/SelectPhotoBtn.tsx:43 +msgid "Gallery" +msgstr "Галерея" + +#: src/view/com/modals/VerifyEmail.tsx:183 +msgid "Get Started" +msgstr "Почати" + +#: 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 "Назад" + +#: src/view/screens/ProfileFeed.tsx:104 +#: src/view/screens/ProfileFeed.tsx:109 +#: src/view/screens/ProfileList.tsx:848 +#: src/view/screens/ProfileList.tsx:853 +msgid "Go Back" +msgstr "Назад" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:181 +#: src/view/com/auth/login/LoginForm.tsx:283 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:163 +msgid "Go to next" +msgstr "Далі" + +#: src/view/com/modals/ChangeHandle.tsx:265 +msgid "Handle" +msgstr "Псевдонім" + +#: src/view/shell/desktop/RightNav.tsx:102 +#: src/view/shell/Drawer.tsx:321 +msgid "Help" +msgstr "Довідка" + +#: src/view/com/modals/AddAppPasswords.tsx:148 +msgid "Here is your app password." +msgstr "Це ваш пароль для застосунків." + +#: src/view/com/notifications/FeedItem.tsx:324 +#: src/view/com/util/moderation/ContentHider.tsx:103 +msgid "Hide" +msgstr "Приховати" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:173 +msgid "Hide post" +msgstr "Приховати пост" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:177 +msgid "Hide this post?" +msgstr "Приховати цей пост?" + +#: src/view/com/notifications/FeedItem.tsx:316 +msgid "Hide user list" +msgstr "Приховати список користувачів" + +#: src/view/com/posts/FeedErrorMessage.tsx:102 +#~ msgid "Hmm, some kind of issue occured when contacting the feed server. Please let the feed owner know about this issue." +#~ msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:110 +msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." +msgstr "Хм, при зв'язку з сервером стрічки виникла якась проблема. Будь ласка, повідомте про це її власника." + +#: src/view/com/posts/FeedErrorMessage.tsx:98 +msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." +msgstr "Хм, здається сервер стрічки налаштовано неправильно. Будь ласка, повідомте про це її власника." + +#: src/view/com/posts/FeedErrorMessage.tsx:104 +msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." +msgstr "Хм, здається сервер стрічки зараз не працює. Будь ласка, повідомте про це її власника." + +#: src/view/com/posts/FeedErrorMessage.tsx:101 +msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." +msgstr "Хм, сервер стрічки надіслав нам незрозумілу відповідь. Будь ласка, повідомте про це її власника." + +#: src/view/com/posts/FeedErrorMessage.tsx:95 +msgid "Hmm, we're having trouble finding this feed. It may have been deleted." +msgstr "Хм, ми не можемо знайти цю стрічку. Можливо вона була видалена." + +#: src/view/com/posts/FeedErrorMessage.tsx:87 +#~ msgid "Hmmm, we're having trouble finding this feed. It may have been deleted." +#~ msgstr "" + +#: 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 +msgid "Home" +msgstr "Головна" + +#: src/view/com/pager/FeedsTabBarMobile.tsx:96 +#: src/view/screens/PreferencesHomeFeed.tsx:101 +#: src/view/screens/Settings.tsx:481 +msgid "Home Feed Preferences" +msgstr "Налаштування домашньої стрічки" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:114 +msgid "Hosting provider" +msgstr "Хостинг-провайдер" + +#: src/view/com/auth/create/Step1.tsx:76 +#: src/view/com/auth/create/Step1.tsx:81 +msgid "Hosting provider address" +msgstr "Адреса хостинг-провайдера" + +#: src/view/com/modals/VerifyEmail.tsx:208 +msgid "I have a code" +msgstr "У мене є код" + +#: src/view/com/modals/ChangeHandle.tsx:281 +msgid "I have my own domain" +msgstr "Я маю власний домен" + +#: src/view/com/modals/SelfLabel.tsx:127 +msgid "If none are selected, suitable for all ages." +msgstr "Якщо не вибрано жодного варіанту - підходить для всіх." + +#: src/view/com/modals/AltImage.tsx:97 +msgid "Image alt text" +msgstr "Альтернативний текст" + +#: src/view/com/util/UserAvatar.tsx:308 +#: src/view/com/util/UserBanner.tsx:116 +msgid "Image options" +msgstr "Редагування зображення" + +#: src/view/com/search/Suggestions.tsx:104 +#: src/view/com/search/Suggestions.tsx:115 +#~ msgid "In Your Network" +#~ msgstr "" + +#: src/view/com/auth/login/LoginForm.tsx:115 +msgid "Invalid username or password" +msgstr "Невірне ім'я користувача або пароль" + +#: src/view/screens/Settings.tsx:383 +msgid "Invite" +msgstr "Запросити" + +#: src/view/com/modals/InviteCodes.tsx:91 +#: src/view/screens/Settings.tsx:371 +msgid "Invite a Friend" +msgstr "Запросити друга" + +#: src/view/com/auth/create/Step2.tsx:72 +msgid "Invite code" +msgstr "Код запрошення" + +#: src/view/com/auth/create/state.ts:136 +msgid "Invite code not accepted. Check that you input it correctly and try again." +msgstr "Код запрошення не прийнято. Переконайтеся в його правильності та повторіть спробу." + +#: src/view/shell/Drawer.tsx:640 +msgid "Invite codes: {invitesAvailable} available" +msgstr "Коди запрошення: {invitesAvailable}" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +msgid "Jobs" +msgstr "Вакансії" + +#: src/view/com/modals/Waitlist.tsx:67 +msgid "Join the waitlist" +msgstr "Приєднатися до черги очікування" + +#: src/view/com/auth/create/Step2.tsx:86 +#: src/view/com/auth/create/Step2.tsx:90 +msgid "Join the waitlist." +msgstr "Приєднатися до черги очікування." + +#: src/view/com/modals/Waitlist.tsx:124 +msgid "Join Waitlist" +msgstr "Приєднатися до черги очікування" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +msgid "Language selection" +msgstr "Вибір мови" + +#: src/view/screens/LanguageSettings.tsx:89 +msgid "Language Settings" +msgstr "Налаштування мови" + +#: src/view/screens/Settings.tsx:541 +msgid "Languages" +msgstr "Мови" + +#: src/view/com/util/moderation/ContentHider.tsx:101 +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 +msgid "Learn More" +msgstr "Дізнатися більше" + +#: src/view/com/util/moderation/ContentHider.tsx:83 +#: src/view/com/util/moderation/PostAlerts.tsx:40 +#: src/view/com/util/moderation/PostHider.tsx:76 +#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 +#: src/view/com/util/moderation/ScreenHider.tsx:101 +msgid "Learn more about this warning" +msgstr "Дізнатися більше про це попередження" + +#: src/view/screens/Moderation.tsx:242 +msgid "Learn more about what is public on Bluesky." +msgstr "Дізнатися більше про те, що є публічним в Bluesky." + +#: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:82 +msgid "Leave them all unchecked to see any language." +msgstr "Залиште їх усі невідміченими, щоб бачити пости незалежно від мови." + +#: src/view/com/modals/LinkWarning.tsx:49 +msgid "Leaving Bluesky" +msgstr "Ви залишаєте Bluesky" + +#: src/view/com/auth/login/Login.tsx:128 +#: src/view/com/auth/login/Login.tsx:144 +msgid "Let's get your password reset!" +msgstr "Давайте відновимо ваш пароль!" + +#: src/view/com/util/UserAvatar.tsx:245 +#: src/view/com/util/UserBanner.tsx:60 +msgid "Library" +msgstr "Галерея" + +#: src/view/screens/Settings.tsx:405 +#~ msgid "Light" +#~ msgstr "" + +#: src/view/screens/ProfileFeed.tsx:586 +msgid "Like this feed" +msgstr "Вподобати цю стрічку" + +#: src/view/screens/PostLikedBy.tsx:27 +#: src/view/screens/ProfileFeedLikedBy.tsx:27 +msgid "Liked by" +msgstr "Сподобалося" + +#: src/view/screens/Profile.tsx:164 +msgid "Likes" +msgstr "Вподобання" + +#: src/view/screens/Moderation.tsx:203 +#~ msgid "Limit the visibility of my account" +#~ msgstr "" + +#: src/view/screens/Moderation.tsx:203 +#~ msgid "Limit the visibility of my account to logged-out users" +#~ msgstr "" + +#: src/view/com/modals/CreateOrEditList.tsx:186 +msgid "List Avatar" +msgstr "Аватар списку" + +#: src/view/com/modals/CreateOrEditList.tsx:199 +msgid "List Name" +msgstr "Назва списку" + +#: src/view/screens/Profile.tsx:166 +#: src/view/shell/desktop/LeftNav.tsx:379 +#: src/view/shell/Drawer.tsx:490 +#: src/view/shell/Drawer.tsx:491 +msgid "Lists" +msgstr "Списки" + +#: src/view/com/post-thread/PostThread.tsx:259 +#: src/view/com/post-thread/PostThread.tsx:267 +msgid "Load more posts" +msgstr "Завантажити більше постів" + +#: src/view/screens/Notifications.tsx:148 +msgid "Load new notifications" +msgstr "Завантажити нові сповіщення" + +#: src/view/com/feeds/FeedPage.tsx:189 +msgid "Load new posts" +msgstr "Завантажити нові пости" + +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +msgid "Loading..." +msgstr "Завантаження..." + +#: src/view/com/modals/ServerInput.tsx:50 +msgid "Local dev server" +msgstr "Локальний сервер розробки" + +#: src/view/screens/Moderation.tsx:134 +#~ msgid "Logged-out users" +#~ msgstr "" + +#: src/view/screens/Moderation.tsx:136 +msgid "Logged-out visibility" +msgstr "Видимість для користувачів без облікового запису" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +msgid "Login to account that is not listed" +msgstr "Увійти до облікового запису, якого немає в списку" + +#: src/view/screens/ProfileFeed.tsx:472 +#~ 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 "" + +#: src/view/com/modals/LinkWarning.tsx:63 +msgid "Make sure this is where you intend to go!" +msgstr "Переконайтеся, що це дійсно той сайт, що ви збираєтеся відвідати!" + +#: src/view/screens/Profile.tsx:163 +msgid "Media" +msgstr "Медіа" + +#: src/view/com/threadgate/WhoCanReply.tsx:139 +msgid "mentioned users" +msgstr "згадані користувачі" + +#: src/view/com/modals/Threadgate.tsx:93 +msgid "Mentioned users" +msgstr "Згадані користувачі" + +#: src/view/screens/Search/Search.tsx:537 +msgid "Menu" +msgstr "Меню" + +#: src/view/com/posts/FeedErrorMessage.tsx:194 +msgid "Message from server" +msgstr "Повідомлення від сервера" + +#: src/view/screens/Moderation.tsx:64 +#: src/view/screens/Settings.tsx:563 +#: src/view/shell/desktop/LeftNav.tsx:397 +#: src/view/shell/Drawer.tsx:509 +#: src/view/shell/Drawer.tsx:510 +msgid "Moderation" +msgstr "Модерація" + +#: src/view/screens/Moderation.tsx:95 +msgid "Moderation lists" +msgstr "Списки для модерації" + +#: src/view/screens/ModerationModlists.tsx:58 +msgid "Moderation Lists" +msgstr "Списки для модерації" + +#: src/view/shell/desktop/Feeds.tsx:53 +msgid "More feeds" +msgstr "Більше стрічок" + +#: src/view/com/profile/ProfileHeader.tsx:548 +#: src/view/screens/ProfileFeed.tsx:361 +#: src/view/screens/ProfileList.tsx:584 +msgid "More options" +msgstr "Додаткові опції" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:158 +#~ msgid "More post options" +#~ msgstr "" + +#: src/view/screens/PreferencesThreads.tsx:82 +msgid "Most-liked replies first" +msgstr "" + +#: src/view/com/profile/ProfileHeader.tsx:370 +msgid "Mute Account" +msgstr "Ігнорувати обліковий запис" + +#: src/view/screens/ProfileList.tsx:511 +msgid "Mute accounts" +msgstr "Ігнорувати облікові записи" + +#: src/view/screens/ProfileList.tsx:458 +msgid "Mute list" +msgstr "Ігнорувати список" + +#: src/view/screens/ProfileList.tsx:271 +msgid "Mute these accounts?" +msgstr "Ігнорувати ці облікові записи?" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 +msgid "Mute thread" +msgstr "Ігнорувати пост" + +#: src/view/screens/Moderation.tsx:109 +msgid "Muted accounts" +msgstr "Ігноровані облікові записи" + +#: src/view/screens/ModerationMutedAccounts.tsx:107 +msgid "Muted Accounts" +msgstr "Ігноровані облікові записи" + +#: 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 "Ігноровані облікові записи автоматично вилучаються із вашої стрічки та сповіщень. Ігнорування є повністю приватним." + +#: src/view/screens/ProfileList.tsx:273 +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/screens/Moderation.tsx:134 +#~ msgid "My Account" +#~ msgstr "" + +#: src/view/com/modals/BirthDateSettings.tsx:56 +msgid "My Birthday" +msgstr "Мій день народження" + +#: src/view/screens/Feeds.tsx:363 +msgid "My Feeds" +msgstr "Мої стрічки" + +#: src/view/shell/desktop/LeftNav.tsx:65 +msgid "My Profile" +msgstr "Мій профіль" + +#: src/view/screens/Settings.tsx:520 +msgid "My Saved Feeds" +msgstr "Мої збережені стрічки" + +#: src/view/com/modals/AddAppPasswords.tsx:177 +#: src/view/com/modals/CreateOrEditList.tsx:211 +msgid "Name" +msgstr "Ім'я" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +msgid "Never lose access to your followers and data." +msgstr "Ніколи не втрачайте доступ до ваших даних та підписників." + +#: src/view/screens/Lists.tsx:76 +#: src/view/screens/ModerationModlists.tsx:78 +msgid "New" +msgstr "Новий" + +#: src/view/com/feeds/FeedPage.tsx:200 +#: src/view/screens/Feeds.tsx:507 +#: src/view/screens/Profile.tsx:354 +#: src/view/screens/ProfileFeed.tsx:431 +#: src/view/screens/ProfileList.tsx:194 +#: src/view/screens/ProfileList.tsx:222 +#: src/view/shell/desktop/LeftNav.tsx:248 +msgid "New post" +msgstr "Новий пост" + +#: src/view/shell/desktop/LeftNav.tsx:258 +msgid "New Post" +msgstr "Новий пост" + +#: src/view/screens/PreferencesThreads.tsx:79 +msgid "Newest replies first" +msgstr "" + +#: src/view/com/auth/create/CreateAccount.tsx:154 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:174 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:184 +#: src/view/com/auth/login/LoginForm.tsx:286 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:156 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:166 +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 +msgid "Next" +msgstr "Далі" + +#: src/view/com/lightbox/Lightbox.web.tsx:142 +msgid "Next image" +msgstr "Наступне зображення" + +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:197 +#: src/view/screens/PreferencesHomeFeed.tsx:232 +#: src/view/screens/PreferencesHomeFeed.tsx:269 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 +msgid "No" +msgstr "Ні" + +#: src/view/screens/ProfileFeed.tsx:579 +#: src/view/screens/ProfileList.tsx:720 +msgid "No description" +msgstr "Опис відсутній" + +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 +msgid "No result" +msgstr "Результати відсутні" + +#: src/view/screens/Feeds.tsx:452 +msgid "No results found for \"{query}\"" +msgstr "Нічого не знайдено за запитом «{query}»" + +#: src/view/com/modals/ListAddUser.tsx:142 +#: src/view/shell/desktop/Search.tsx:112 +#~ msgid "No results found for {0}" +#~ msgstr "" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:127 +#: src/view/screens/Search/Search.tsx:270 +#: src/view/screens/Search/Search.tsx:298 +#: src/view/screens/Search/Search.tsx:629 +#: src/view/shell/desktop/Search.tsx:210 +msgid "No results found for {query}" +msgstr "Нічого не знайдено за запитом «{query}»" + +#: src/view/com/modals/Threadgate.tsx:82 +msgid "Nobody" +msgstr "Ніхто" + +#: src/view/com/modals/SelfLabel.tsx:136 +#~ msgid "Not Applicable" +#~ msgstr "" + +#: src/view/com/modals/SelfLabel.tsx:135 +msgid "Not Applicable." +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 "" + +#: src/view/screens/Moderation.tsx:232 +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/view/screens/Moderation.tsx:227 +#~ msgid "Note: Third-party apps that display Bluesky content may not respect this setting." +#~ msgstr "" + +#: src/view/screens/Notifications.tsx:113 +#: src/view/screens/Notifications.tsx:137 +#: 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 +msgid "Notifications" +msgstr "Сповіщення" + +#: src/view/com/util/ErrorBoundary.tsx:34 +msgid "Oh no!" +msgstr "О, ні!" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 +msgid "Okay" +msgstr "Добре" + +#: src/view/screens/PreferencesThreads.tsx:78 +msgid "Oldest replies first" +msgstr "" + +#: src/view/com/composer/Composer.tsx:363 +msgid "One or more images is missing alt text." +msgstr "Для одного або кількох зображень відсутній альтернативний текст." + +#: src/view/com/threadgate/WhoCanReply.tsx:100 +msgid "Only {0} can reply." +msgstr "Тільки {0} можуть відповідати." + +#: src/view/com/composer/Composer.tsx:468 +#: src/view/com/composer/Composer.tsx:469 +msgid "Open emoji picker" +msgstr "" + +#: src/view/com/pager/FeedsTabBarMobile.tsx:76 +msgid "Open navigation" +msgstr "Відкрити навігацію" + +#: src/view/screens/Settings.tsx:533 +msgid "Opens configurable language settings" +msgstr "Відкриває налаштування мов" + +#: src/view/shell/desktop/RightNav.tsx:156 +#: src/view/shell/Drawer.tsx:641 +msgid "Opens list of invite codes" +msgstr "Відкриває список кодів запрошення" + +#: src/view/com/modals/ChangeHandle.tsx:279 +msgid "Opens modal for using custom domain" +msgstr "Відкриває діалог налаштування власного домену як псевдоніму" + +#: src/view/screens/Settings.tsx:558 +msgid "Opens moderation settings" +msgstr "Відкриває налаштування модерації" + +#: src/view/screens/Settings.tsx:514 +msgid "Opens screen with all saved feeds" +msgstr "Відкриває сторінку з усіма збереженими стрічками" + +#: src/view/screens/Settings.tsx:581 +msgid "Opens the app password settings page" +msgstr "Відкриває налаштування паролів для застосунків" + +#: src/view/screens/Settings.tsx:473 +msgid "Opens the home feed preferences" +msgstr "Відкриває налаштування домашньої стрічки" + +#: src/view/screens/Settings.tsx:664 +msgid "Opens the storybook page" +msgstr "" + +#: src/view/screens/Settings.tsx:644 +msgid "Opens the system log page" +msgstr "Відкриває системний журнал" + +#: src/view/screens/Settings.tsx:494 +msgid "Opens the threads preferences" +msgstr "Відкриває налаштування гілок" + +#: src/view/com/modals/Threadgate.tsx:89 +msgid "Or combine these options:" +msgstr "Або якісь із наступних варіантів:" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +msgid "Other account" +msgstr "Інший обліковий запис" + +#: src/view/com/modals/ServerInput.tsx:88 +msgid "Other service" +msgstr "Інший хостинг-провайдер" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +msgid "Other..." +msgstr "Інші..." + +#: src/view/screens/NotFound.tsx:42 +#: src/view/screens/NotFound.tsx:45 +msgid "Page not found" +msgstr "Сторінку не знайдено" + +#: src/view/com/auth/create/Step2.tsx:122 +#: src/view/com/auth/create/Step2.tsx:132 +#: src/view/com/auth/login/LoginForm.tsx:221 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:191 +msgid "Password" +msgstr "Пароль" + +#: src/view/com/auth/login/Login.tsx:157 +msgid "Password updated" +msgstr "Пароль змінено" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:28 +msgid "Password updated!" +msgstr "Пароль змінено!" + +#: src/view/com/modals/SelfLabel.tsx:121 +msgid "Pictures meant for adults." +msgstr "Зображення призначені для дорослих." + +#: src/view/screens/SavedFeeds.tsx:88 +msgid "Pinned Feeds" +msgstr "Закріплені стрічки" + +#: src/view/com/auth/create/state.ts:116 +msgid "Please choose your handle." +msgstr "Будь ласка, виберіть псевдонім." + +#: src/view/com/auth/create/state.ts:109 +msgid "Please choose your password." +msgstr "Будь ласка, оберіть ваш пароль." + +#: 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 "Будь ласка, підтвердіть вашу електронну пошту, перш ніж змінити її. Це тимчасова вимога під час додавання інструментів оновлення електронної пошти, і незабаром вона буде видалена." + +#: src/view/com/modals/AddAppPasswords.tsx:140 +msgid "Please enter a unique name for this App Password or use our randomly generated one." +msgstr "Будь ласка, введіть унікальну назву для цього паролю або використовуйте нашу випадково згенеровану." + +#: src/view/com/auth/create/state.ts:95 +msgid "Please enter your email." +msgstr "Будь ласка, введіть адресу ел. пошти." + +#: src/view/com/modals/DeleteAccount.tsx:180 +msgid "Please enter your password as well:" +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 "Будь ласка, вкажіть чому ви вважаєте що попередження про вміст було додано неправильно?" + +#: src/view/com/modals/AppealLabel.tsx:72 +#: src/view/com/modals/AppealLabel.tsx:75 +#~ msgid "Please tell us why you think this decision was incorrect." +#~ msgstr "" + +#: src/view/com/composer/Composer.tsx:215 +msgid "Please wait for your link card to finish loading" +msgstr "Будь ласка, зачекайте доки завершиться створення попереднього перегляду для посилання" + +#: src/view/com/composer/Composer.tsx:346 +#: src/view/com/post-thread/PostThread.tsx:225 +#: src/view/screens/PostThread.tsx:80 +msgid "Post" +msgstr "Пост" + +#: src/view/com/post-thread/PostThread.tsx:378 +msgid "Post hidden" +msgstr "Пост приховано" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +msgid "Post language" +msgstr "Мова посту" + +#: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:75 +msgid "Post Languages" +msgstr "Мови посту" + +#: src/view/com/post-thread/PostThread.tsx:430 +msgid "Post not found" +msgstr "Пост не знайдено" + +#: src/view/screens/Profile.tsx:161 +msgid "Posts" +msgstr "Пости" + +#: src/view/com/modals/LinkWarning.tsx:44 +msgid "Potentially Misleading Link" +msgstr "Потенційно оманливе посилання" + +#: src/view/com/lightbox/Lightbox.web.tsx:128 +msgid "Previous image" +msgstr "Попереднє зображення" + +#: src/view/screens/LanguageSettings.tsx:187 +msgid "Primary Language" +msgstr "Основна мова" + +#: src/view/screens/PreferencesThreads.tsx:97 +msgid "Prioritize Your Follows" +msgstr "Пріоритезувати ваші підписки" + +#: src/view/shell/desktop/RightNav.tsx:84 +msgid "Privacy" +msgstr "Конфіденційність" + +#: src/view/screens/PrivacyPolicy.tsx:29 +#: src/view/screens/Settings.tsx:750 +#: src/view/shell/Drawer.tsx:262 +msgid "Privacy Policy" +msgstr "Політика конфіденційності" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:190 +msgid "Processing..." +msgstr "Обробка..." + +#: 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:544 +#: src/view/shell/Drawer.tsx:545 +msgid "Profile" +msgstr "Профіль" + +#: src/view/screens/Settings.tsx:808 +msgid "Protect your account by verifying your email." +msgstr "Захистіть свій обліковий запис, підтвердивши свою електронну пошту." + +#: src/view/screens/ModerationModlists.tsx:61 +msgid "Public, shareable lists of users to mute or block in bulk." +msgstr "Публічні, поширювані списки користувачів для ігнорування або блокування." + +#: src/view/screens/Lists.tsx:61 +msgid "Public, shareable lists which can drive feeds." +msgstr "Публічні списки для створення стрічок." + +#: src/view/com/modals/Repost.tsx:52 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 +msgid "Quote post" +msgstr "Цитувати пост" + +#: src/view/com/modals/Repost.tsx:56 +msgid "Quote Post" +msgstr "Цитувати пост" + +#: src/view/screens/PreferencesThreads.tsx:86 +msgid "Random (aka \"Poster's Roulette\")" +msgstr "" + +#: src/view/com/modals/EditImage.tsx:236 +msgid "Ratios" +msgstr "Співвідношення сторін" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:73 +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:50 +#~ msgid "Recommended" +#~ msgstr "" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 +msgid "Recommended Feeds" +msgstr "Рекомендовані стрічки" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:180 +msgid "Recommended Users" +msgstr "Рекомендовані користувачі" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/UserAddRemoveLists.tsx:193 +#: src/view/com/util/UserAvatar.tsx:282 +#: src/view/com/util/UserBanner.tsx:89 +msgid "Remove" +msgstr "Вилучити" + +#: src/view/com/feeds/FeedSourceCard.tsx:106 +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:130 +msgid "Remove feed" +msgstr "Вилучити стрічку" + +#: src/view/com/feeds/FeedSourceCard.tsx:105 +#: src/view/com/feeds/FeedSourceCard.tsx:172 +#: src/view/screens/ProfileFeed.tsx:271 +msgid "Remove from my feeds" +msgstr "Вилучити з моїх стрічок" + +#: src/view/com/composer/photos/Gallery.tsx:167 +msgid "Remove image" +msgstr "Вилучити зображення" + +#: src/view/com/composer/ExternalEmbed.tsx:70 +msgid "Remove image preview" +msgstr "Вилучити попередній перегляд зображення" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +msgid "Remove this feed from my feeds?" +msgstr "Вилучити цю стрічку з ваших стрічок?" + +#: src/view/com/posts/FeedErrorMessage.tsx:131 +msgid "Remove this feed from your saved feeds?" +msgstr "Вилучити цю стрічку зі збережених стрічок?" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:199 +#: src/view/com/modals/UserAddRemoveLists.tsx:136 +msgid "Removed from list" +msgstr "Вилучено зі списку" + +#: src/view/screens/Profile.tsx:162 +msgid "Replies" +msgstr "Відповіді" + +#: src/view/com/threadgate/WhoCanReply.tsx:98 +msgid "Replies to this thread are disabled" +msgstr "Відповіді до цього посту вимкнено" + +#: src/view/screens/PreferencesHomeFeed.tsx:141 +msgid "Reply Filters" +msgstr "Які відповіді показувати" + +#: src/view/com/modals/report/Modal.tsx:166 +msgid "Report {collectionName}" +msgstr "Поскаржитись на {collectionName}" + +#: src/view/com/profile/ProfileHeader.tsx:404 +msgid "Report Account" +msgstr "Поскаржитись на обліковий запис" + +#: src/view/screens/ProfileFeed.tsx:291 +msgid "Report feed" +msgstr "Поскаржитись на стрічку" + +#: src/view/screens/ProfileList.tsx:426 +msgid "Report List" +msgstr "Поскаржитись на список" + +#: src/view/com/modals/report/SendReportButton.tsx:37 +#: src/view/com/util/forms/PostDropdownBtn.tsx:196 +msgid "Report post" +msgstr "Поскаржитись на пост" + +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +msgid "Repost" +msgstr "Репост" + +#: 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 "Репостити або цитувати" + +#: src/view/screens/PostRepostedBy.tsx:27 +msgid "Reposted by" +msgstr "Репост" + +#: src/view/com/modals/ChangeEmail.tsx:181 +#: src/view/com/modals/ChangeEmail.tsx:183 +msgid "Request Change" +msgstr "Змінити" + +#: src/view/screens/Moderation.tsx:188 +#~ msgid "Request to limit the visibility of my account" +#~ msgstr "" + +#: src/view/screens/Settings.tsx:422 +msgid "Require alt text before posting" +msgstr "" + +#: src/view/com/auth/create/Step2.tsx:68 +msgid "Required for this provider" +msgstr "Вимагається цим хостинг-провайдером" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:108 +msgid "Reset code" +msgstr "Код підтвердження" + +#: src/view/screens/Settings.tsx:686 +msgid "Reset onboarding state" +msgstr "" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:98 +msgid "Reset password" +msgstr "Скинути пароль" + +#: src/view/screens/Settings.tsx:676 +msgid "Reset preferences state" +msgstr "" + +#: src/view/screens/Settings.tsx:684 +msgid "Resets the onboarding state" +msgstr "" + +#: src/view/screens/Settings.tsx:674 +msgid "Resets the preferences state" +msgstr "" + +#: src/view/com/auth/create/CreateAccount.tsx:163 +#: src/view/com/auth/create/CreateAccount.tsx:167 +#: src/view/com/auth/login/LoginForm.tsx:263 +#: src/view/com/auth/login/LoginForm.tsx:266 +#: src/view/com/util/error/ErrorMessage.tsx:55 +#: src/view/com/util/error/ErrorScreen.tsx:65 +msgid "Retry" +msgstr "Повторити спробу" + +#: src/view/com/modals/ChangeHandle.tsx:169 +#~ msgid "Retry change handle" +#~ msgstr "" + +#: 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:249 +#: src/view/com/modals/CreateOrEditList.tsx:257 +#: src/view/com/modals/EditProfile.tsx:223 +msgid "Save" +msgstr "Зберегти" + +#: src/view/com/modals/AltImage.tsx:106 +msgid "Save alt text" +msgstr "Зберегти альтернативний текст" + +#: src/view/com/modals/UserAddRemoveLists.tsx:212 +#~ msgid "Save changes" +#~ msgstr "" + +#: src/view/com/modals/EditProfile.tsx:231 +msgid "Save Changes" +msgstr "Зберегти зміни" + +#: src/view/com/modals/ChangeHandle.tsx:170 +msgid "Save handle change" +msgstr "Зберегти новий псевдонім" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:144 +msgid "Save image crop" +msgstr "Обрізати зображення" + +#: src/view/screens/SavedFeeds.tsx:122 +msgid "Saved Feeds" +msgstr "Збережені стрічки" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/view/com/util/forms/SearchInput.tsx:65 +#: src/view/screens/Search/Search.tsx:406 +#: src/view/screens/Search/Search.tsx:572 +#: src/view/shell/bottom-bar/BottomBar.tsx:159 +#: src/view/shell/desktop/LeftNav.tsx:324 +#: src/view/shell/desktop/Search.tsx:161 +#: src/view/shell/desktop/Search.tsx:170 +#: src/view/shell/Drawer.tsx:362 +#: src/view/shell/Drawer.tsx:363 +msgid "Search" +msgstr "Пошук" + +#: src/view/screens/Search/Search.tsx:390 +#~ msgid "Search for posts and users." +#~ msgstr "" + +#: src/view/com/auth/LoggedOut.tsx:104 +#: src/view/com/auth/LoggedOut.tsx:105 +msgid "Search for users" +msgstr "Пошук користувачів" + +#: src/view/com/modals/ChangeEmail.tsx:110 +msgid "Security Step Required" +msgstr "Потрібен код підтвердження" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:39 +msgid "See what's next" +msgstr "Що далі?" + +#: src/view/com/modals/ServerInput.tsx:75 +msgid "Select Bluesky Social" +msgstr "Вибрати Bluesky Social" + +#: src/view/com/auth/login/Login.tsx:117 +msgid "Select from an existing account" +msgstr "Вибрати існуючий обліковий запис" + +#: src/view/com/auth/login/LoginForm.tsx:147 +msgid "Select service" +msgstr "Вибрати хостинг-провайдера" + +#: 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 "Оберіть мови постів, які ви хочете бачити у збережених стрічках. Якщо не вибрано жодної - буде показано пости всіма мовами." + +#: src/view/screens/LanguageSettings.tsx:98 +msgid "Select your app language for the default text to display in the app" +msgstr "Оберіть мову інтерфейсу" + +#: src/view/screens/LanguageSettings.tsx:190 +msgid "Select your preferred language for translations in your feed." +msgstr "Оберіть бажану мову для перекладів у вашій стрічці." + +#: src/view/com/modals/VerifyEmail.tsx:196 +msgid "Send Confirmation Email" +msgstr "Надіслати лист із кодом підтвердження" + +#: src/view/com/modals/DeleteAccount.tsx:127 +msgid "Send email" +msgstr "Надіслати ел. листа" + +#: src/view/com/modals/DeleteAccount.tsx:138 +msgid "Send Email" +msgstr "Надіслати ел. листа" + +#: src/view/shell/Drawer.tsx:295 +#: src/view/shell/Drawer.tsx:316 +msgid "Send feedback" +msgstr "Надіслати відгук" + +#: src/view/com/modals/report/SendReportButton.tsx:45 +msgid "Send Report" +msgstr "Поскаржитись" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:78 +msgid "Set new password" +msgstr "Зміна пароля" + +#: src/view/screens/PreferencesHomeFeed.tsx:222 +msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." +msgstr "Вимкніть це налаштування, щоб приховати всі цитовані пости у вашій стрічці. Не впливає на репости без цитування." + +#: src/view/screens/PreferencesHomeFeed.tsx:119 +msgid "Set this setting to \"No\" to hide all replies from your feed." +msgstr "Вимкніть це налаштування, щоб приховати всі відповіді у вашій стрічці." + +#: src/view/screens/PreferencesHomeFeed.tsx:188 +msgid "Set this setting to \"No\" to hide all reposts from your feed." +msgstr "Вимкніть це налаштування, щоб приховати всі репости у вашій стрічці." + +#: 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 "Увімкніть це налаштування, щоб показувати відповіді у вигляді гілок. Це експериментальна функція." + +#: src/view/screens/PreferencesHomeFeed.tsx:258 +msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." +msgstr "Увімкніть це налаштування, щоб іноді бачити пости зі збережених стрічок у вашій домашній стрічці. Це експериментальна функція." + +#: src/view/screens/Settings.tsx:277 +#: src/view/shell/desktop/LeftNav.tsx:433 +#: src/view/shell/Drawer.tsx:565 +#: src/view/shell/Drawer.tsx:566 +msgid "Settings" +msgstr "Налаштування" + +#: src/view/com/modals/SelfLabel.tsx:125 +msgid "Sexual activity or erotic nudity." +msgstr "Сексуальна активність або еротична оголеність." + +#: src/view/com/profile/ProfileHeader.tsx:338 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/screens/ProfileList.tsx:385 +msgid "Share" +msgstr "Поширити" + +#: src/view/screens/ProfileFeed.tsx:303 +msgid "Share feed" +msgstr "Поширити стрічку" + +#: src/view/screens/ProfileFeed.tsx:276 +#~ msgid "Share link" +#~ msgstr "" + +#: src/view/com/util/moderation/ContentHider.tsx:105 +#: src/view/screens/Settings.tsx:316 +msgid "Show" +msgstr "Показати" + +#: src/view/com/util/moderation/ScreenHider.tsx:132 +msgid "Show anyway" +msgstr "Всеодно показати" + +#: src/view/screens/PreferencesHomeFeed.tsx:255 +msgid "Show Posts from My Feeds" +msgstr "Показувати пости зі збережених стрічок" + +#: src/view/screens/PreferencesHomeFeed.tsx:219 +msgid "Show Quote Posts" +msgstr "Показувати цитати" + +#: src/view/screens/PreferencesHomeFeed.tsx:116 +msgid "Show Replies" +msgstr "Показувати відповіді" + +#: src/view/screens/PreferencesThreads.tsx:100 +msgid "Show replies by people you follow before all other replies." +msgstr "Показувати відповіді від людей, за якими ви слідкуєте, вище інших." + +#: src/view/screens/PreferencesHomeFeed.tsx:185 +msgid "Show Reposts" +msgstr "Показувати репости" + +#: src/view/com/notifications/FeedItem.tsx:345 +msgid "Show users" +msgstr "Показати користувачів" + +#: 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:177 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:180 +#: src/view/shell/NavSignupCard.tsx:58 +#: src/view/shell/NavSignupCard.tsx:59 +msgid "Sign in" +msgstr "Увійти" + +#: 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 "Увійти" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +msgid "Sign in as {0}" +msgstr "Увійти як {0}" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/Login.tsx:116 +msgid "Sign in as..." +msgstr "Увійти як..." + +#: src/view/com/auth/login/LoginForm.tsx:134 +msgid "Sign into" +msgstr "Увійти до" + +#: src/view/com/modals/SwitchAccount.tsx:64 +#: src/view/com/modals/SwitchAccount.tsx:67 +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/BottomBarWeb.tsx:167 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:170 +#: src/view/shell/NavSignupCard.tsx:49 +#: src/view/shell/NavSignupCard.tsx:50 +#: src/view/shell/NavSignupCard.tsx:52 +msgid "Sign up" +msgstr "Зареєструватися" + +#: src/view/shell/NavSignupCard.tsx:42 +msgid "Sign up or sign in to join the conversation" +msgstr "Зареєструйтеся або увійдіть, щоб приєднатися до розмови" + +#: src/view/com/util/moderation/ScreenHider.tsx:76 +msgid "Sign-in Required" +msgstr "Необхідно увійти для перегляду" + +#: src/view/screens/Settings.tsx:327 +msgid "Signed in as" +msgstr "Ви увійшли як" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +msgid "Skip" +msgstr "Пропустити" + +#: src/view/screens/PreferencesThreads.tsx:69 +msgid "Sort Replies" +msgstr "Сортувати відповіді" + +#: src/view/screens/PreferencesThreads.tsx:72 +msgid "Sort replies to the same post by:" +msgstr "Сортувати відповіді до постів за:" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:122 +msgid "Square" +msgstr "Квадратне" + +#: src/view/com/auth/create/Step1.tsx:90 +#: src/view/com/modals/ServerInput.tsx:62 +msgid "Staging" +msgstr "" + +#: src/view/screens/Settings.tsx:730 +msgid "Status page" +msgstr "Сторінка стану" + +#: src/view/screens/Settings.tsx:666 +msgid "Storybook" +msgstr "" + +#: src/view/com/modals/AppealLabel.tsx:101 +msgid "Submit" +msgstr "Надіслати" + +#: src/view/screens/ProfileList.tsx:575 +msgid "Subscribe" +msgstr "Підписатися" + +#: src/view/screens/ProfileList.tsx:571 +msgid "Subscribe to this list" +msgstr "Підписатися на цей список" + +#: src/view/screens/Search/Search.tsx:362 +msgid "Suggested Follows" +msgstr "Пропоновані підписки" + +#: src/view/screens/Support.tsx:30 +#: src/view/screens/Support.tsx:33 +msgid "Support" +msgstr "Підтримка" + +#: src/view/com/modals/SwitchAccount.tsx:115 +msgid "Switch Account" +msgstr "Перемикнути обліковий запис" + +#: src/view/screens/Settings.tsx:398 +#~ msgid "System" +#~ msgstr "" + +#: src/view/screens/Settings.tsx:646 +msgid "System log" +msgstr "Системний журнал" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:112 +msgid "Tall" +msgstr "Високе" + +#: src/view/shell/desktop/RightNav.tsx:93 +msgid "Terms" +msgstr "Умови" + +#: src/view/screens/Settings.tsx:744 +#: src/view/screens/TermsOfService.tsx:29 +#: src/view/shell/Drawer.tsx:256 +msgid "Terms of Service" +msgstr "Умови Використання" + +#: src/view/com/modals/AppealLabel.tsx:70 +#: src/view/com/modals/report/InputIssueDetails.tsx:51 +msgid "Text input field" +msgstr "Поле вводу тексту" + +#: src/view/com/profile/ProfileHeader.tsx:306 +msgid "The account will be able to interact with you after unblocking." +msgstr "Обліковий запис зможе взаємодіяти з вами після розблокування." + +#: src/view/screens/CommunityGuidelines.tsx:36 +msgid "The Community Guidelines have been moved to <0/>" +msgstr "Правила Спільноти переміщено до <0/>" + +#: src/view/screens/CopyrightPolicy.tsx:33 +msgid "The Copyright Policy has been moved to <0/>" +msgstr "Політику захисту авторського права переміщено до <0/>" + +#: src/view/com/post-thread/PostThread.tsx:433 +msgid "The post may have been deleted." +msgstr "Можливо цей пост було видалено." + +#: src/view/screens/PrivacyPolicy.tsx:33 +msgid "The Privacy Policy has been moved to <0/>" +msgstr "Політика конфіденційності була переміщена до <0/>" + +#: 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 "Форма підтримки була переміщена. Якщо вам потрібна допомога, будь ласка, <0/> або відвідайте {HELP_DESK_URL}, щоб зв'язатися з нами." + +#: src/view/screens/TermsOfService.tsx:33 +msgid "The Terms of Service have been moved to" +msgstr "Умови Використання перенесено до" + +#: src/view/com/util/ErrorBoundary.tsx:35 +msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" +msgstr "У застосунку сталася неочікувана проблема. Будь ласка, повідомте нас, якщо ви отримали це повідомлення!" + +#: src/view/com/util/moderation/LabelInfo.tsx:45 +#~ msgid "This {0} has been labeled." +#~ msgstr "" + +#: src/view/com/util/moderation/ScreenHider.tsx:88 +msgid "This {screenDescription} has been flagged:" +msgstr "Цей {screenDescription} був позначений:" + +#: src/view/com/util/moderation/ScreenHider.tsx:83 +msgid "This account has requested that users sign in to view their profile." +msgstr "Цей користувач вказав, що не хоче, аби його профіль бачили відвідувачі без облікового запису." + +#: src/view/com/posts/FeedErrorMessage.tsx:107 +msgid "This content is not viewable without a Bluesky account." +msgstr "Цей вміст не доступний для перегляду без облікового запису Bluesky." + +#: src/view/com/posts/FeedErrorMessage.tsx:113 +msgid "This feed is currently receiving high traffic and is temporarily unavailable. Please try again later." +msgstr "Ця стрічка зараз отримує забагато запитів і тимчасово недоступна. Спробуйте ще раз пізніше." + +#: src/view/com/modals/BirthDateSettings.tsx:61 +msgid "This information is not shared with other users." +msgstr "Ця інформація не розкривається іншим користувачам." + +#: src/view/com/modals/VerifyEmail.tsx:113 +msgid "This is important in case you ever need to change your email or reset your password." +msgstr "Це важливо для випадку, якщо вам коли-небудь потрібно буде змінити адресу електронної пошти або відновити пароль." + +#: src/view/com/auth/create/Step1.tsx:55 +msgid "This is the service that keeps you online." +msgstr "Це сервіс який зберігає дані вашого облікового запису." + +#: src/view/com/modals/LinkWarning.tsx:56 +msgid "This link is taking you to the following website:" +msgstr "Це посилання веде на сайт:" + +#: src/view/com/post-thread/PostThreadItem.tsx:123 +msgid "This post has been deleted." +msgstr "Цей пост було видалено." + +#: src/view/com/modals/SelfLabel.tsx:137 +msgid "This warning is only available for posts with media attached." +msgstr "Це попередження доступне тільки для записів з прикріпленими медіа-файлами." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:178 +msgid "This will hide this post from your feeds." +msgstr "Це приховає цей пост із вашої стрічки." + +#: src/view/screens/PreferencesThreads.tsx:53 +#: src/view/screens/Settings.tsx:503 +msgid "Thread Preferences" +msgstr "Налаштування гілок" + +#: src/view/screens/PreferencesThreads.tsx:119 +msgid "Threaded Mode" +msgstr "Режим гілок" + +#: src/view/com/util/forms/DropdownButton.tsx:230 +msgid "Toggle dropdown" +msgstr "Розкрити/сховати" + +#: src/view/com/modals/EditImage.tsx:271 +msgid "Transformations" +msgstr "Редагування" + +#: src/view/com/post-thread/PostThreadItem.tsx:705 +#: src/view/com/post-thread/PostThreadItem.tsx:707 +#: src/view/com/util/forms/PostDropdownBtn.tsx:111 +msgid "Translate" +msgstr "Перекласти" + +#: src/view/com/util/error/ErrorScreen.tsx:73 +msgid "Try again" +msgstr "Спробувати ще раз" + +#: src/view/screens/ProfileList.tsx:473 +msgid "Un-block list" +msgstr "Розблокувати список" + +#: src/view/screens/ProfileList.tsx:458 +msgid "Un-mute list" +msgstr "Перестати ігнорувати" + +#: src/view/com/auth/create/CreateAccount.tsx:65 +#: src/view/com/auth/login/Login.tsx:76 +#: src/view/com/auth/login/LoginForm.tsx:120 +msgid "Unable to contact your service. Please check your Internet connection." +msgstr "Не вдалося зв'язатися з вашим хостинг-провайдером. Перевірте ваше підключення до Інтернету." + +#: src/view/com/profile/ProfileHeader.tsx:466 +#: src/view/com/profile/ProfileHeader.tsx:469 +msgid "Unblock" +msgstr "Розблокувати" + +#: src/view/com/profile/ProfileHeader.tsx:304 +#: src/view/com/profile/ProfileHeader.tsx:388 +msgid "Unblock Account" +msgstr "Розблокувати обліковий запис" + +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +msgid "Undo repost" +msgstr "Скасувати репост" + +#: src/view/com/auth/create/state.ts:216 +msgid "Unfortunately, you do not meet the requirements to create an account." +msgstr "На жаль, ви не відповідаєте вимогам для створення облікового запису." + +#: src/view/com/profile/ProfileHeader.tsx:369 +msgid "Unmute Account" +msgstr "Перестати ігнорувати" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 +msgid "Unmute thread" +msgstr "Перестати ігнорувати" + +#: src/view/screens/ProfileList.tsx:441 +msgid "Unpin moderation list" +msgstr "Відкріпити список модерації" + +#: src/view/com/modals/UserAddRemoveLists.tsx:54 +msgid "Update {displayName} in Lists" +msgstr "Змінити належність {displayName} до списків" + +#: src/lib/hooks/useOTAUpdate.ts:15 +msgid "Update Available" +msgstr "Доступне оновлення" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:172 +msgid "Updating..." +msgstr "Оновлення..." + +#: src/view/com/modals/ChangeHandle.tsx:453 +msgid "Upload a text file to:" +msgstr "Завантажити текстовий файл до:" + +#: src/view/screens/AppPasswords.tsx:194 +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:513 +msgid "Use default provider" +msgstr "Використовувати провайдера за замовчуванням" + +#: src/view/com/modals/AddAppPasswords.tsx:150 +msgid "Use this to sign into the other app along with your handle." +msgstr "Скористайтесь ним для входу в інші застосунки." + +#: src/view/com/modals/InviteCodes.tsx:197 +msgid "Used by:" +msgstr "Використано:" + +#: src/view/com/auth/create/Step3.tsx:38 +msgid "User handle" +msgstr "Псевдонім" + +#: src/view/screens/Lists.tsx:58 +msgid "User Lists" +msgstr "Списки користувачів" + +#: src/view/com/auth/login/LoginForm.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:192 +msgid "Username or email address" +msgstr "Ім'я користувача або електронна адреса" + +#: src/view/screens/ProfileList.tsx:747 +msgid "Users" +msgstr "Користувачі" + +#: src/view/com/threadgate/WhoCanReply.tsx:143 +msgid "users followed by <0/>" +msgstr "користувачі на яких підписані <0/>" + +#: src/view/com/threadgate/WhoCanReply.tsx:115 +#~ msgid "Users followed by <0/>" +#~ msgstr "" + +#: src/view/com/modals/Threadgate.tsx:106 +msgid "Users in \"{0}\"" +msgstr "Користувачі в \"{0}\"" + +#: src/view/screens/Settings.tsx:769 +msgid "Verify email" +msgstr "Підтвердити електронну адресу" + +#: src/view/screens/Settings.tsx:794 +msgid "Verify my email" +msgstr "Підтвердити мою електронну адресу" + +#: src/view/screens/Settings.tsx:803 +msgid "Verify My Email" +msgstr "Підтвердити мою електронну адресу" + +#: src/view/com/modals/ChangeEmail.tsx:205 +#: src/view/com/modals/ChangeEmail.tsx:207 +msgid "Verify New Email" +msgstr "Підтвердити нову адресу електронної пошти" + +#: src/view/screens/Log.tsx:52 +msgid "View debug entry" +msgstr "Переглянути запис для налагодження" + +#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +msgid "View the avatar" +msgstr "Переглянути аватар" + +#: src/view/com/modals/LinkWarning.tsx:73 +msgid "Visit Site" +msgstr "Відвідати сайт" + +#: src/view/com/auth/create/CreateAccount.tsx:122 +msgid "We're so excited to have you join us!" +msgstr "Ми дуже раді, що ви приєдналися!" + +#: src/view/com/posts/FeedErrorMessage.tsx:99 +#~ msgid "We're sorry, but this content is not viewable without a Bluesky account." +#~ msgstr "" + +#: src/view/com/posts/FeedErrorMessage.tsx:105 +#~ msgid "We're sorry, but this feed is currently receiving high traffic and is temporarily unavailable. Please try again later." +#~ msgstr "" + +#: src/view/screens/Search/Search.tsx:243 +msgid "We're sorry, but your search could not be completed. Please try again in a few minutes." +msgstr "Даруйте, нам не вдалося виконати пошук за вашим запитом. Будь ласка, спробуйте ще раз через кілька хвилин." + +#: 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 +msgid "Welcome to <0>Bluesky" +msgstr "Ласкаво просимо до <0>Bluesky" + +#: src/view/com/modals/report/Modal.tsx:169 +msgid "What is the issue with this {collectionName}?" +msgstr "Яка проблема з {collectionName}?" + +#: src/view/com/auth/SplashScreen.tsx:34 +msgid "What's up?" +msgstr "Як справи?" + +#: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:78 +msgid "Which languages are used in this post?" +msgstr "Які мови використані в цьому пості?" + +#: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:77 +msgid "Which languages would you like to see in your algorithmic feeds?" +msgstr "Пости якими мовами ви хочете бачити у алгоритмічних стрічках?" + +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +#: src/view/com/modals/Threadgate.tsx:66 +msgid "Who can reply" +msgstr "Хто може відповідати" + +#: src/view/com/threadgate/WhoCanReply.tsx:79 +#~ msgid "Who can reply?" +#~ msgstr "" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:102 +msgid "Wide" +msgstr "Широке" + +#: src/view/com/composer/Composer.tsx:418 +msgid "Write post" +msgstr "Написати пост" + +#: src/view/com/composer/Prompt.tsx:33 +msgid "Write your reply" +msgstr "Написати відповідь" + +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:198 +#: src/view/screens/PreferencesHomeFeed.tsx:233 +#: src/view/screens/PreferencesHomeFeed.tsx:268 +#: src/view/screens/PreferencesThreads.tsx:106 +#: src/view/screens/PreferencesThreads.tsx:129 +msgid "Yes" +msgstr "Так" + +#: src/view/com/auth/create/Step1.tsx:106 +msgid "You can change hosting providers at any time." +msgstr "Ви можете змінити хостинг-провайдера у будь-який час." + +#: 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 "Тепер ви можете увійти за допомогою нового пароля." + +#: src/view/com/modals/InviteCodes.tsx:64 +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 "У вас ще немає кодів запрошення! З часом ми надамо вам декілька." + +#: src/view/screens/SavedFeeds.tsx:102 +msgid "You don't have any pinned feeds." +msgstr "У вас немає закріплених стрічок." + +#: src/view/screens/Feeds.tsx:383 +msgid "You don't have any saved feeds!" +msgstr "У вас немає збережених стрічок!" + +#: src/view/screens/SavedFeeds.tsx:135 +msgid "You don't have any saved feeds." +msgstr "У вас немає збережених стрічок." + +#: src/view/com/post-thread/PostThread.tsx:381 +msgid "You have blocked the author or you have been blocked by the author." +msgstr "Ви заблокували автора або автор заблокував вас." + +#: src/view/com/feeds/ProfileFeedgens.tsx:134 +msgid "You have no feeds." +msgstr "У вас немає стрічок." + +#: src/view/com/lists/MyLists.tsx:89 +#: src/view/com/lists/ProfileLists.tsx:138 +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 "Ви ще не заблокували жодного облікового запису. Щоб заблокувати когось, перейдіть до їх профілю та виберіть опцію \"Заблокувати\" у меню їх облікового запису." + +#: src/view/screens/AppPasswords.tsx:86 +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 "Ви ще не ігноруєте жодного облікового запису. Щоб ігнорувати когось, перейдіть до їх профілю та виберіть опцію \"Ігнорувати\" у меню їх облікового запису." + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:81 +msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." +msgstr "Ви отримаєте електронний лист із кодом підтвердження. Введіть цей код тут, а потім введіть новий пароль." + +#: src/view/com/auth/create/Step2.tsx:58 +msgid "Your account" +msgstr "Ваш акаунт" + +#: src/view/com/auth/create/Step2.tsx:146 +msgid "Your birth date" +msgstr "Ваша дата народження" + +#: src/view/com/auth/create/state.ts:102 +msgid "Your email appears to be invalid." +msgstr "Не вдалося розпізнати адресу електронної пошти." + +#: src/view/com/modals/Waitlist.tsx:107 +msgid "Your email has been saved! We'll be in touch soon." +msgstr "Вашу електронну адресу збережено! Ми скоро зв'яжемося з вами." + +#: 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 "Вашу адресу електронної пошти було змінено, але ще не підтверджено. Для підтвердження, будь ласка, перевірте вашу поштову скриньку за новою адресою." + +#: src/view/com/modals/VerifyEmail.tsx:108 +msgid "Your email has not yet been verified. This is an important security step which we recommend." +msgstr "Ваша електронна пошта ще не підтверджена. Це важливий крок для безпеки вашого облікового запису, який ми рекомендуємо вам зробити." + +#: src/view/com/auth/create/Step3.tsx:42 +#: src/view/com/modals/ChangeHandle.tsx:270 +msgid "Your full handle will be" +msgstr "Ваш повний псевдонім буде" + +#: src/view/com/auth/create/Step1.tsx:53 +msgid "Your hosting provider" +msgstr "Ваш хостинг-провайдер" + +#: src/view/screens/Settings.tsx:402 +#: src/view/shell/desktop/RightNav.tsx:137 +#: src/view/shell/Drawer.tsx:655 +msgid "Your invite codes are hidden when logged in using an App Password" +msgstr "Ваші коди запрошення приховано, якщо ви увійшли за допомогою пароля для застосунків" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +msgid "Your posts, likes, and blocks are public. Mutes are private." +msgstr "Ваші повідомлення, вподобання і блоки є публічними. Ігнорування - приватні." + +#: src/view/com/modals/SwitchAccount.tsx:82 +msgid "Your profile" +msgstr "Ваш профіль" + +#: src/view/screens/Moderation.tsx:205 +#~ msgid "Your profile and account will not be visible to anyone visiting the Bluesky app without an account, or to account holders who are not logged in. Enabling this will not make your profile private." +#~ msgstr "" + +#: src/view/screens/Moderation.tsx:220 +#~ msgid "Your profile and content will not be visible to anyone visiting the Bluesky app without an account. Enabling this will not make your profile private." +#~ msgstr "" + +#: src/view/screens/Moderation.tsx:220 +#~ 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 "" + +#: src/view/com/auth/create/Step3.tsx:28 +msgid "Your user handle" +msgstr "Ваш псевдонім" + From 67e70918e33fc7e4fb2bcadc118f49128faf9201 Mon Sep 17 00:00:00 2001 From: Maison da Silva Date: Wed, 3 Jan 2024 19:26:47 -0300 Subject: [PATCH 072/115] Recompile all locales (#2411) (#2416) --- src/locale/locales/pt-BR/messages.po | 60 ++++++++++++++-------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/locale/locales/pt-BR/messages.po b/src/locale/locales/pt-BR/messages.po index 257d5dac92..a66df1f934 100644 --- a/src/locale/locales/pt-BR/messages.po +++ b/src/locale/locales/pt-BR/messages.po @@ -156,7 +156,7 @@ msgstr "Adicionar aos meus feeds" msgid "Added to list" msgstr "Adicionado à lista" -#: src/view/screens/PreferencesHomeFeed.tsx:164 +#: src/view/screens/PreferencesHomeFeed.tsx:170 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "Ajuste o número de curtidas que uma resposta deve ser mostrada no seu feed." @@ -533,7 +533,7 @@ msgstr "Escrever resposta" #: src/view/com/modals/Confirm.tsx:75 #: src/view/com/modals/SelfLabel.tsx:154 #: src/view/com/modals/VerifyEmail.tsx:225 -#: src/view/screens/PreferencesHomeFeed.tsx:299 +#: src/view/screens/PreferencesHomeFeed.tsx:305 #: src/view/screens/PreferencesThreads.tsx:159 msgid "Confirm" msgstr "Confirme" @@ -752,7 +752,7 @@ msgstr "Domínio verificado!" #: src/view/com/modals/Threadgate.tsx:129 #: src/view/com/modals/Threadgate.tsx:132 #: src/view/com/modals/UserAddRemoveLists.tsx:79 -#: src/view/screens/PreferencesHomeFeed.tsx:302 +#: src/view/screens/PreferencesHomeFeed.tsx:308 #: src/view/screens/PreferencesThreads.tsx:162 msgid "Done" msgstr "Feito" @@ -814,7 +814,7 @@ msgstr "Email Atualizado" msgid "Email:" msgstr "Email:" -#: src/view/screens/PreferencesHomeFeed.tsx:138 +#: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." msgstr "Ative esta configuração para ver apenas as respostas entre as pessoas que você segue." @@ -905,7 +905,7 @@ msgstr "Encontre usuários com a ferramenta de busca à direita" msgid "Finding similar accounts..." msgstr "Procurando contas semelhantes..." -#: src/view/screens/PreferencesHomeFeed.tsx:102 +#: src/view/screens/PreferencesHomeFeed.tsx:108 msgid "Fine-tune the content you see on your home screen." msgstr "Ajuste o conteúdo que você vê na sua tela inicial." @@ -929,7 +929,7 @@ msgstr "Seguir alguns usuários para começar. Nós podemos recomendar mais usu msgid "Followed users" msgstr "Usuários seguidos" -#: src/view/screens/PreferencesHomeFeed.tsx:145 +#: src/view/screens/PreferencesHomeFeed.tsx:151 msgid "Followed users only" msgstr "Somente usuários seguidos" @@ -1065,7 +1065,7 @@ msgid "Home" msgstr "Página Inicial" #: src/view/com/pager/FeedsTabBarMobile.tsx:96 -#: src/view/screens/PreferencesHomeFeed.tsx:95 +#: src/view/screens/PreferencesHomeFeed.tsx:101 #: src/view/screens/Settings.tsx:481 msgid "Home Feed Preferences" msgstr "Preferências do Feed Inicial" @@ -1332,7 +1332,7 @@ msgstr "Mais opções" #: src/view/screens/PreferencesThreads.tsx:82 msgid "Most-liked replies first" -msgstr "" +msgstr "Respostas mais curtidas primeiro" #: src/view/com/profile/ProfileHeader.tsx:370 msgid "Mute Account" @@ -1420,7 +1420,7 @@ msgstr "Novo Post" #: src/view/screens/PreferencesThreads.tsx:79 msgid "Newest replies first" -msgstr "" +msgstr "Respostas mais recentes primeiro" #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 @@ -1436,10 +1436,10 @@ msgstr "Próximo" msgid "Next image" msgstr "Próxima imagem" -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:191 -#: src/view/screens/PreferencesHomeFeed.tsx:226 -#: src/view/screens/PreferencesHomeFeed.tsx:263 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:197 +#: src/view/screens/PreferencesHomeFeed.tsx:232 +#: src/view/screens/PreferencesHomeFeed.tsx:269 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "No" @@ -1514,7 +1514,7 @@ msgstr "Ok" #: src/view/screens/PreferencesThreads.tsx:78 msgid "Oldest replies first" -msgstr "" +msgstr "Respostas mais antigas primeiro" #: src/view/com/composer/Composer.tsx:363 msgid "One or more images is missing alt text." @@ -1527,7 +1527,7 @@ msgstr "Apenas {0} pode responder." #: src/view/com/composer/Composer.tsx:468 #: src/view/com/composer/Composer.tsx:469 msgid "Open emoji picker" -msgstr "" +msgstr "Abrir seletor de emojis" #: src/view/com/pager/FeedsTabBarMobile.tsx:76 msgid "Open navigation" @@ -1744,7 +1744,7 @@ msgstr "Citar Post" #: src/view/screens/PreferencesThreads.tsx:86 msgid "Random (aka \"Poster's Roulette\")" -msgstr "" +msgstr "Aleatório (também conhecido como \"Poster's Roulette\")" #: src/view/com/modals/EditImage.tsx:236 msgid "Ratios" @@ -1818,7 +1818,7 @@ msgstr "Respostas" msgid "Replies to this thread are disabled" msgstr "Respostas para este tópico estão desativadas" -#: src/view/screens/PreferencesHomeFeed.tsx:135 +#: src/view/screens/PreferencesHomeFeed.tsx:141 msgid "Reply Filters" msgstr "Filtros de Resposta" @@ -1867,7 +1867,7 @@ msgstr "Solicitar Alteração" #: src/view/screens/Settings.tsx:422 msgid "Require alt text before posting" -msgstr "" +msgstr "Exigir texto alternativo antes de postar" #: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" @@ -2022,15 +2022,15 @@ msgstr "Enviar um Relatório" msgid "Set new password" msgstr "Defina uma nova senha" -#: src/view/screens/PreferencesHomeFeed.tsx:216 +#: src/view/screens/PreferencesHomeFeed.tsx:222 msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." msgstr "Defina esta configuração como \"Não\" para ocultar todos os posts citados do seu feed. Repostagens ainda serão visíveis." -#: src/view/screens/PreferencesHomeFeed.tsx:113 +#: src/view/screens/PreferencesHomeFeed.tsx:119 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "Defina essa configuração como \"Não\" para ocultar todas as respostas do seu feed." -#: src/view/screens/PreferencesHomeFeed.tsx:182 +#: src/view/screens/PreferencesHomeFeed.tsx:188 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "Defina essa configuração como \"Não\" para ocultar todas as repostagens do seu feed." @@ -2038,7 +2038,7 @@ msgstr "Defina essa configuração como \"Não\" para ocultar todas as repostage msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "Defina esta configuração como \"Sim\" para mostrar respostas em uma visualização thread. Este é um recurso experimental." -#: src/view/screens/PreferencesHomeFeed.tsx:252 +#: src/view/screens/PreferencesHomeFeed.tsx:258 msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." msgstr "Defina essa configuração como \"Sim\" para mostrar amostras de seus feeds salvos no seu seguinte feed. Este é um recurso experimental." @@ -2076,15 +2076,15 @@ msgstr "Mostrar" msgid "Show anyway" msgstr "Mostrar mesmo assim" -#: src/view/screens/PreferencesHomeFeed.tsx:249 +#: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "Mostrar Posts dos meus Feeds" -#: src/view/screens/PreferencesHomeFeed.tsx:213 +#: src/view/screens/PreferencesHomeFeed.tsx:219 msgid "Show Quote Posts" msgstr "Mostrar Posts de Citações" -#: src/view/screens/PreferencesHomeFeed.tsx:110 +#: src/view/screens/PreferencesHomeFeed.tsx:116 msgid "Show Replies" msgstr "Mostrar Respostas" @@ -2092,7 +2092,7 @@ msgstr "Mostrar Respostas" msgid "Show replies by people you follow before all other replies." msgstr "Mostrar as respostas de pessoas que você segue antes de todas as outras respostas." -#: src/view/screens/PreferencesHomeFeed.tsx:179 +#: src/view/screens/PreferencesHomeFeed.tsx:185 msgid "Show Reposts" msgstr "Mostrar Repostagens" @@ -2545,10 +2545,10 @@ msgstr "Escrever post" msgid "Write your reply" msgstr "Escreva sua resposta" -#: src/view/screens/PreferencesHomeFeed.tsx:120 -#: src/view/screens/PreferencesHomeFeed.tsx:192 -#: src/view/screens/PreferencesHomeFeed.tsx:227 -#: src/view/screens/PreferencesHomeFeed.tsx:262 +#: src/view/screens/PreferencesHomeFeed.tsx:126 +#: src/view/screens/PreferencesHomeFeed.tsx:198 +#: src/view/screens/PreferencesHomeFeed.tsx:233 +#: src/view/screens/PreferencesHomeFeed.tsx:268 #: src/view/screens/PreferencesThreads.tsx:106 #: src/view/screens/PreferencesThreads.tsx:129 msgid "Yes" From 454973f3ccbf95895c80d5d7174e43c504c30da7 Mon Sep 17 00:00:00 2001 From: Rahul Yadav <52163880+rahulyadav5524@users.noreply.github.com> Date: Thu, 4 Jan 2024 23:56:58 +0530 Subject: [PATCH 073/115] fixed lint issue --- src/view/screens/Settings.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/view/screens/Settings.tsx b/src/view/screens/Settings.tsx index 16efdf3649..11c82e6c52 100644 --- a/src/view/screens/Settings.tsx +++ b/src/view/screens/Settings.tsx @@ -18,7 +18,7 @@ import { import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' import * as AppInfo from 'lib/app-info' import {s, colors} from 'lib/styles' -import {ScrollView} from '../com/util/Views' +import {CenteredView, ScrollView} from '../com/util/Views' import {ViewHeader} from '../com/util/ViewHeader' import {Link, TextLink} from '../com/util/Link' import {Text} from '../com/util/text/Text' From 34817628e12d9bce2ba4136e192e3163d7aa0eee Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 4 Jan 2024 17:33:57 -0800 Subject: [PATCH 074/115] E2E runner fixes (#2428) * Fix mock-server run script * Bump detox * Replace fetch with node-native api --- __e2e__/util.ts | 27 ++++++++++++++++++--- package.json | 4 ++-- tsconfig.e2e.json | 46 +++++++++++++++++++++++++++++++++++ yarn.lock | 61 +++++++++++++++++++++++++++++++++++++++++------ 4 files changed, 126 insertions(+), 12 deletions(-) create mode 100644 tsconfig.e2e.json diff --git a/__e2e__/util.ts b/__e2e__/util.ts index f6f3b1b806..c5668d042e 100644 --- a/__e2e__/util.ts +++ b/__e2e__/util.ts @@ -1,5 +1,6 @@ import {resolveConfig} from 'detox/internals' import {execSync} from 'child_process' +import http from 'http' const platform = device.getPlatform() @@ -105,9 +106,29 @@ async function openAppForDebugBuild(platform: string, opts: any) { } export async function createServer(path = '') { - const res = await fetch(`http://localhost:1986/${path}`, {method: 'POST'}) - const resBody = await res.text() - return resBody + return new Promise(function (resolve, reject) { + var req = http.request( + { + method: 'POST', + host: 'localhost', + port: 1986, + path: `/${path}`, + }, + function (res) { + const body: Buffer[] = [] + res.on('data', chunk => body.push(chunk)) + res.on('end', function () { + try { + resolve(Buffer.concat(body).toString()) + } catch (e) { + reject(e) + } + }) + }, + ) + req.on('error', reject) + req.end() + }) } const getDeepLinkUrl = (url: string) => diff --git a/package.json b/package.json index c8052e0410..e29b4ff1ff 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "test-coverage": "NODE_ENV=test jest --coverage", "lint": "eslint ./src --ext .js,.jsx,.ts,.tsx", "typecheck": "tsc --project ./tsconfig.check.json", - "e2e:mock-server": "./jest/dev-infra/with-test-redis-and-db.sh ts-node __e2e__/mock-server.ts", + "e2e:mock-server": "./jest/dev-infra/with-test-redis-and-db.sh ts-node --project tsconfig.e2e.json __e2e__/mock-server.ts", "e2e:metro": "NODE_ENV=test RN_SRC_EXT=e2e.ts,e2e.tsx expo run:ios", "e2e:build": "NODE_ENV=test detox build -c ios.sim.debug", "e2e:run": "NODE_ENV=test detox test --configuration ios.sim.debug --take-screenshots all", @@ -215,7 +215,7 @@ "babel-plugin-module-resolver": "^5.0.0", "babel-plugin-react-native-web": "^0.18.12", "babel-preset-expo": "^10.0.0", - "detox": "^20.13.0", + "detox": "^20.14.8", "eslint": "^8.19.0", "eslint-plugin-detox": "^1.0.0", "eslint-plugin-ft-flow": "^2.0.3", diff --git a/tsconfig.e2e.json b/tsconfig.e2e.json new file mode 100644 index 0000000000..f61dffbab8 --- /dev/null +++ b/tsconfig.e2e.json @@ -0,0 +1,46 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "commonjs", + "types": ["react-native", "jest"], + "lib": [ + "es2019", + "es2020.bigint", + "es2020.date", + "es2020.number", + "es2020.promise", + "es2020.string", + "es2020.symbol.wellknown", + "es2021.promise", + "es2021.string", + "es2021.weakref", + "es2022.array", + "es2022.object", + "es2022.string" + ], + "allowJs": true, + "jsx": "react-native", + "noEmit": true, + "isolatedModules": true, + "strict": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": false, + "esModuleInterop": true, + "paths": { + "#/*": ["./src/*"], + "lib/*": ["./src/lib/*"], + "platform/*": ["./src/platform/*"], + "state/*": ["./src/state/*"], + "view/*": ["./src/view/*"], + "crypto": ["./src/platform/crypto.ts"] + } + }, + "exclude": [ + "node_modules", + "babel.config.js", + "metro.config.js", + "jest.config.js" + ] +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 2f81b2fbfe..d724c7821c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3335,6 +3335,11 @@ resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a" integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A== +"@flatten-js/interval-tree@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@flatten-js/interval-tree/-/interval-tree-1.1.2.tgz#fcc891da48bc230392884be01c26fe8c625702e8" + integrity sha512-OwLoV9E/XM6b7bes2rSFnGNjyRy7vcoIHFTnmBR2WAaZTf0Fe4EX4GdA65vU1KgFAasti7iRSg2dZfYd1Zt00Q== + "@floating-ui/core@^1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.4.1.tgz#0d633f4b76052668afb932492ac452f7ebe97f17" @@ -8986,6 +8991,16 @@ builtins@^1.0.3: resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== +bunyamin@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/bunyamin/-/bunyamin-1.5.1.tgz#14df1b2f0b82d781d8f8d81eb2e83542353ac8d7" + integrity sha512-VgWWb3G3HwajZF8fFM8TJjkWOqeDBZgzWBeQb7EhKQTQd33Zri0nghLeg4r86kQqqNlo/p9Jjgwh/O7Q6XpZIg== + dependencies: + "@flatten-js/interval-tree" "^1.1.2" + multi-sort-stream "^1.0.4" + stream-json "^1.7.5" + trace-event-lib "^1.3.1" + bunyan-debug-stream@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bunyan-debug-stream/-/bunyan-debug-stream-3.1.0.tgz#78309c67ad85cfb8f011155334152c49209dcda8" @@ -9003,6 +9018,18 @@ bunyan@^1.8.12: mv "~2" safe-json-stringify "~1" +bunyan@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-2.0.5.tgz#9dd056755220dddd8b5bb9cf76f3d0d766e96e71" + integrity sha512-Jvl74TdxCN6rSP9W1I6+UOUtwslTDqsSFkDqZlFb/ilaSvQ+bZAnXT/GT97IZ5L+Vph0joPZPhxUyn6FLNmFAA== + dependencies: + exeunt "1.1.0" + optionalDependencies: + dtrace-provider "~0.8" + moment "^2.19.3" + mv "~2" + safe-json-stringify "~1" + bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -10304,10 +10331,10 @@ detect-port-alt@^1.1.6: address "^1.0.1" debug "^2.6.0" -detox@^20.13.0: - version "20.13.0" - resolved "https://registry.yarnpkg.com/detox/-/detox-20.13.0.tgz#923111638dfdb16089eea4f07bf4f0b56468d097" - integrity sha512-p9MUcoHWFTqSDaoaN+/hnJYdzNYqdelUr/sxzy3zLoS/qehnVJv2yG9pYqz/+gKpJaMIpw2+TVw9imdAx5JpaA== +detox@^20.14.8: + version "20.14.8" + resolved "https://registry.yarnpkg.com/detox/-/detox-20.14.8.tgz#0a550cf677fc98a68d56d162e1c5caad317de9ca" + integrity sha512-3E/0/7Cb7x+wcBsZpCxD8FykZUsFnfVT00d6PWH940boc0Mo1Kzabh+I151X/On4qZMqVdUzgwmap/z8g/kmaw== dependencies: ajv "^8.6.3" bunyan "^1.8.12" @@ -10321,6 +10348,7 @@ detox@^20.13.0: funpermaproxy "^1.1.0" glob "^8.0.3" ini "^1.3.4" + jest-environment-emit "^1.0.5" json-cycle "^1.3.0" lodash "^4.17.11" multi-sort-stream "^1.0.3" @@ -11339,6 +11367,11 @@ execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +exeunt@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/exeunt/-/exeunt-1.1.0.tgz#af72db6f94b3cb75e921aee375d513049843d284" + integrity sha512-dd++Yn/0Fp+gtJ04YHov7MeAii+LFivJc6KqnJNfplzLVUkUDrfKoQDTLlCgzcW15vY5hKlHasWeIsQJ8agHsw== + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -13772,6 +13805,20 @@ jest-each@^29.7.0: jest-util "^29.7.0" pretty-format "^29.7.0" +jest-environment-emit@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/jest-environment-emit/-/jest-environment-emit-1.0.5.tgz#e6f33451f98b88ccd48e9e1188bb535880f03c1b" + integrity sha512-OsQ08AhYxkkyDBTIow+9ogNmJheQIGWQKp0Nku+1ToLWjAj2Pd6LmypN8HgUIqYHs4HFcqkQ25kaf1qExmoZpg== + dependencies: + bunyamin "^1.5.0" + bunyan "^2.0.5" + bunyan-debug-stream "^3.1.0" + funpermaproxy "^1.1.0" + lodash.merge "^4.6.2" + node-ipc "9.2.1" + strip-ansi "^6.0.0" + tslib "^2.5.3" + jest-environment-jsdom@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" @@ -15868,7 +15915,7 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multi-sort-stream@^1.0.3: +multi-sort-stream@^1.0.3, multi-sort-stream@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/multi-sort-stream/-/multi-sort-stream-1.0.4.tgz#e4348edc9edc36e16333e531a90c0f166235cc99" integrity sha512-hAZ8JOEQFbgdLe8HWZbb7gdZg0/yAIHF00Qfo3kd0rXFv96nXe+/bPTrKHZ2QMHugGX4FiAyET1Lt+jiB+7Qlg== @@ -19619,7 +19666,7 @@ stream-chain@^2.2.5: resolved "https://registry.yarnpkg.com/stream-chain/-/stream-chain-2.2.5.tgz#b30967e8f14ee033c5b9a19bbe8a2cba90ba0d09" integrity sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA== -stream-json@^1.7.4: +stream-json@^1.7.4, stream-json@^1.7.5: version "1.8.0" resolved "https://registry.yarnpkg.com/stream-json/-/stream-json-1.8.0.tgz#53f486b2e3b4496c506131f8d7260ba42def151c" integrity sha512-HZfXngYHUAr1exT4fxlbc1IOce1RYxp2ldeaf97LYCOPSoOqY/1Psp7iGvpb+6JIOgkra9zDYnPX01hGAHzEPw== @@ -20393,7 +20440,7 @@ tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, tslib@^2.5.0: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, tslib@^2.5.0, tslib@^2.5.3: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== From 8a4a8af61c47ba315bcf39d6170825e316bfd241 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 4 Jan 2024 17:34:10 -0800 Subject: [PATCH 075/115] New user home feed fixes (#2421) * Readd discover to default feeds for new users * Fallback just to discover in home when mergefeed is disabled * Always provide a cursor with mergefeed (no 'end of feed' condition) --- src/lib/api/feed/merge.ts | 2 +- src/lib/constants.ts | 4 ++-- src/view/screens/Home.tsx | 5 ++++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/lib/api/feed/merge.ts b/src/lib/api/feed/merge.ts index a4391afb25..2314e2b954 100644 --- a/src/lib/api/feed/merge.ts +++ b/src/lib/api/feed/merge.ts @@ -98,7 +98,7 @@ export class MergeFeedAPI implements FeedAPI { } return { - cursor: posts.length ? String(this.itemCursor) : undefined, + cursor: String(this.itemCursor), feed: posts, } } diff --git a/src/lib/constants.ts b/src/lib/constants.ts index e566d40d55..aec8338d03 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -117,8 +117,8 @@ export async function DEFAULT_FEEDS( } else { // production return { - pinned: [], - saved: [], + pinned: [PROD_DEFAULT_FEED('whats-hot')], + saved: [PROD_DEFAULT_FEED('whats-hot')], } } } diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index b8033f0b45..0e20a9cf77 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -19,6 +19,7 @@ import {useSession} from '#/state/session' import {loadString, saveString} from '#/lib/storage' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {clamp} from '#/lib/numbers' +import {PROD_DEFAULT_FEED} from '#/lib/constants' type Props = NativeStackScreenProps export function HomeScreen(props: Props) { @@ -109,7 +110,9 @@ function HomeScreenReady({ const homeFeedParams = React.useMemo(() => { return { mergeFeedEnabled: Boolean(preferences.feedViewPrefs.lab_mergeFeedEnabled), - mergeFeedSources: preferences.feeds.saved, + mergeFeedSources: preferences.feedViewPrefs.lab_mergeFeedEnabled + ? preferences.feeds.saved + : [PROD_DEFAULT_FEED('whats-hot')], } }, [preferences]) From db62f272412df2c34e1a57200291b53fa1cd07aa Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 4 Jan 2024 17:36:27 -0800 Subject: [PATCH 076/115] Reduce web requests (#2420) * Stop auto-refetching app passwords and invites on an interval * Don't poll for posts or notifs if the app/tab isnt focused --- src/state/queries/app-passwords.ts | 1 - src/state/queries/invites.ts | 1 - src/state/queries/notifications/unread.tsx | 4 ++++ src/state/queries/post-feed.ts | 4 ++++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/state/queries/app-passwords.ts b/src/state/queries/app-passwords.ts index 4b9e09a8d6..014244f01c 100644 --- a/src/state/queries/app-passwords.ts +++ b/src/state/queries/app-passwords.ts @@ -9,7 +9,6 @@ export const RQKEY = () => ['app-passwords'] export function useAppPasswordsQuery() { return useQuery({ staleTime: STALE.MINUTES.FIVE, - refetchInterval: STALE.MINUTES.ONE, queryKey: RQKEY(), queryFn: async () => { const res = await getAgent().com.atproto.server.listAppPasswords({}) diff --git a/src/state/queries/invites.ts b/src/state/queries/invites.ts index bfea402e1a..9ae9c707f4 100644 --- a/src/state/queries/invites.ts +++ b/src/state/queries/invites.ts @@ -16,7 +16,6 @@ export type InviteCodesQueryResponse = Exclude< export function useInviteCodesQuery() { return useQuery({ staleTime: STALE.MINUTES.FIVE, - refetchInterval: STALE.MINUTES.FIVE, queryKey: ['inviteCodes'], queryFn: async () => { const res = await getAgent() diff --git a/src/state/queries/notifications/unread.tsx b/src/state/queries/notifications/unread.tsx index abaabbf0e7..d604e8fe0d 100644 --- a/src/state/queries/notifications/unread.tsx +++ b/src/state/queries/notifications/unread.tsx @@ -15,6 +15,7 @@ import {useMutedThreads} from '#/state/muted-threads' import {RQKEY as RQKEY_NOTIFS} from './feed' import {logger} from '#/logger' import {truncateAndInvalidate} from '../util' +import {AppState} from 'react-native' const UPDATE_INTERVAL = 30 * 1e3 // 30sec @@ -97,6 +98,9 @@ export function Provider({children}: React.PropsWithChildren<{}>) { async checkUnread({invalidate}: {invalidate?: boolean} = {}) { try { if (!getAgent().session) return + if (AppState.currentState !== 'active') { + return + } // count const page = await fetchPage({ diff --git a/src/state/queries/post-feed.ts b/src/state/queries/post-feed.ts index 0e943622a4..dbb729133d 100644 --- a/src/state/queries/post-feed.ts +++ b/src/state/queries/post-feed.ts @@ -1,4 +1,5 @@ import React, {useCallback, useEffect, useRef} from 'react' +import {AppState} from 'react-native' import {AppBskyFeedDefs, AppBskyFeedPost, PostModeration} from '@atproto/api' import { useInfiniteQuery, @@ -312,6 +313,9 @@ export async function pollLatest(page: FeedPage | undefined) { if (!page) { return false } + if (AppState.currentState !== 'active') { + return + } logger.debug('usePostFeedQuery: pollLatest') const post = await page.api.peekLatest() From 0dae24e78ffe0b2d69349a03f669949e4d5afc21 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 4 Jan 2024 17:37:36 -0800 Subject: [PATCH 077/115] Additional embed sources and external-media consent controls (#2424) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add apple music embed * add vimeo embed * add logic for tenor and giphy embeds * keep it simple, use playerUri for images too * add gif embed player * lint, fix tests * remove links that can't produce a thumb * Revert "remove links that can't produce a thumb" This reverts commit 985b92b4e622db936bb0c79fdf324099b9c8fcd8. * Revert "Revert "remove links that can't produce a thumb"" This reverts commit 4895ded8b5120c4fc52b43ae85c9a01ea0b1a733. * Revert "Revert "Revert "remove links that can't produce a thumb""" This reverts commit 36d04b517ba5139e1639f2eda28d7f9aaa2dbfb6. * properly obtain giphy metadata regardless of used url * test fixes * adjust gif player * add all twitch embed types * support m.youtube links * few logic adjustments * adjust spotify player height * prefetch gif before showing * use memory-disk cache policy on gifs * use `disk` cachePolicy on ios - can't start/stop animation * support pause/play on web * onLoad fix * remove extra pressable, add accessibility, fix scale issues * improve size of embed * add settings * fix(?) settings * add source to embed player params * update tests * better naming and settings options * consent modal * fix test id * why is webstorm adding .tsx * web modal * simplify types * adjust snap points * remove unnecessary yt embed library. just use the webview always * remove now useless WebGifStill 😭 * more type cleanup * more type cleanup * combine parse and prefs check in one memo * improve dimensions of youtube shorts * oops didn't commit the test 🫥 * add shorts as separate embed type * fix up schema * shorts modal * hide gif details * support localized spotify embeds * more cleanup * improve look and accessibility of gif embeds * Update routing for the external embeds settings page * Update and simplify the external embed preferences screen * Update copy in embedconsent modal and add 'allow all' button --------- Co-authored-by: Hailey --- __tests__/lib/string.test.ts | 286 +++++++++++++-- bskyweb/cmd/bskyweb/server.go | 1 + package.json | 1 - src/Navigation.tsx | 9 + src/lib/analytics/types.ts | 1 + src/lib/link-meta/link-meta.ts | 8 + src/lib/routes/types.ts | 1 + src/lib/strings/embed-player.ts | 340 +++++++++++++++--- src/routes.ts | 1 + src/state/modals/index.tsx | 8 + src/state/persisted/legacy.ts | 1 + src/state/persisted/schema.ts | 16 + .../preferences/external-embeds-prefs.tsx | 54 +++ src/state/preferences/index.tsx | 9 +- src/view/com/modals/EmbedConsent.tsx | 153 ++++++++ src/view/com/modals/Modal.tsx | 4 + src/view/com/modals/Modal.web.tsx | 3 + .../com/util/post-embeds/ExternalGifEmbed.tsx | 170 +++++++++ .../util/post-embeds/ExternalLinkEmbed.tsx | 33 +- .../util/post-embeds/ExternalPlayerEmbed.tsx | 84 +++-- src/view/icons/index.tsx | 10 +- .../screens/PreferencesExternalEmbeds.tsx | 138 +++++++ src/view/screens/Settings.tsx | 33 ++ yarn.lock | 7 - 24 files changed, 1240 insertions(+), 131 deletions(-) create mode 100644 src/state/preferences/external-embeds-prefs.tsx create mode 100644 src/view/com/modals/EmbedConsent.tsx create mode 100644 src/view/com/util/post-embeds/ExternalGifEmbed.tsx create mode 100644 src/view/screens/PreferencesExternalEmbeds.tsx diff --git a/__tests__/lib/string.test.ts b/__tests__/lib/string.test.ts index 99b0d25373..89df7a6bd1 100644 --- a/__tests__/lib/string.test.ts +++ b/__tests__/lib/string.test.ts @@ -394,6 +394,7 @@ describe('parseEmbedPlayerFromUrl', () => { 'https://youtube.com/watch?v=videoId', 'https://youtube.com/watch?v=videoId&feature=share', 'https://youtube.com/shorts/videoId', + 'https://m.youtube.com/watch?v=videoId', 'https://youtube.com/shorts/', 'https://youtube.com/', @@ -401,113 +402,346 @@ describe('parseEmbedPlayerFromUrl', () => { 'https://twitch.tv/channelName', 'https://www.twitch.tv/channelName', + 'https://m.twitch.tv/channelName', + + 'https://twitch.tv/channelName/clip/clipId', + 'https://twitch.tv/videos/videoId', 'https://open.spotify.com/playlist/playlistId', 'https://open.spotify.com/playlist/playlistId?param=value', + 'https://open.spotify.com/locale/playlist/playlistId', 'https://open.spotify.com/track/songId', 'https://open.spotify.com/track/songId?param=value', + 'https://open.spotify.com/locale/track/songId', 'https://open.spotify.com/album/albumId', 'https://open.spotify.com/album/albumId?param=value', + 'https://open.spotify.com/locale/album/albumId', 'https://soundcloud.com/user/track', 'https://soundcloud.com/user/sets/set', 'https://soundcloud.com/user/', + + 'https://music.apple.com/us/playlist/playlistName/playlistId', + 'https://music.apple.com/us/album/albumName/albumId', + 'https://music.apple.com/us/album/albumName/albumId?i=songId', + + 'https://vimeo.com/videoId', + 'https://vimeo.com/videoId?autoplay=0', + + 'https://giphy.com/gifs/some-random-gif-name-gifId', + 'https://giphy.com/gif/some-random-gif-name-gifId', + 'https://giphy.com/gifs/', + + 'https://media.giphy.com/media/gifId/giphy.webp', + 'https://media0.giphy.com/media/gifId/giphy.webp', + 'https://media1.giphy.com/media/gifId/giphy.gif', + 'https://media2.giphy.com/media/gifId/giphy.webp', + 'https://media3.giphy.com/media/gifId/giphy.mp4', + 'https://media4.giphy.com/media/gifId/giphy.webp', + 'https://media5.giphy.com/media/gifId/giphy.mp4', + 'https://media0.giphy.com/media/gifId/giphy.mp3', + 'https://media1.google.com/media/gifId/giphy.webp', + + 'https://media.giphy.com/media/trackingId/gifId/giphy.webp', + + 'https://i.giphy.com/media/gifId/giphy.webp', + 'https://i.giphy.com/media/gifId/giphy.webp', + 'https://i.giphy.com/gifId.gif', + 'https://i.giphy.com/gifId.gif', + + 'https://tenor.com/view/gifId', + 'https://tenor.com/notView/gifId', + 'https://tenor.com/view', + 'https://tenor.com/view/gifId.gif', ] const outputs = [ { type: 'youtube_video', - videoId: 'videoId', - playerUri: 'https://www.youtube.com/embed/videoId?autoplay=1', + source: 'youtube', + playerUri: + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', }, { type: 'youtube_video', - videoId: 'videoId', - playerUri: 'https://www.youtube.com/embed/videoId?autoplay=1', + source: 'youtube', + playerUri: + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', }, { type: 'youtube_video', - videoId: 'videoId', - playerUri: 'https://www.youtube.com/embed/videoId?autoplay=1', + source: 'youtube', + playerUri: + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', }, { type: 'youtube_video', - videoId: 'videoId', - playerUri: 'https://www.youtube.com/embed/videoId?autoplay=1', + source: 'youtube', + playerUri: + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', }, { type: 'youtube_video', - videoId: 'videoId', - playerUri: 'https://www.youtube.com/embed/videoId?autoplay=1', + source: 'youtube', + playerUri: + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', + }, + { + type: 'youtube_short', + source: 'youtubeShorts', + hideDetails: true, + playerUri: + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', }, { type: 'youtube_video', - videoId: 'videoId', - playerUri: 'https://www.youtube.com/embed/videoId?autoplay=1', + source: 'youtube', + playerUri: + 'https://www.youtube.com/embed/videoId?autoplay=1&playsinline=1', }, + undefined, undefined, undefined, { - type: 'twitch_live', - channelId: 'channelName', + type: 'twitch_video', + source: 'twitch', playerUri: `https://player.twitch.tv/?volume=0.5&!muted&autoplay&channel=channelName&parent=localhost`, }, { - type: 'twitch_live', - channelId: 'channelName', + type: 'twitch_video', + source: 'twitch', playerUri: `https://player.twitch.tv/?volume=0.5&!muted&autoplay&channel=channelName&parent=localhost`, }, + { + type: 'twitch_video', + source: 'twitch', + playerUri: `https://player.twitch.tv/?volume=0.5&!muted&autoplay&channel=channelName&parent=localhost`, + }, + { + type: 'twitch_video', + source: 'twitch', + playerUri: `https://clips.twitch.tv/embed?volume=0.5&autoplay=true&clip=clipId&parent=localhost`, + }, + { + type: 'twitch_video', + source: 'twitch', + playerUri: `https://player.twitch.tv/?volume=0.5&!muted&autoplay&video=videoId&parent=localhost`, + }, { type: 'spotify_playlist', - playlistId: 'playlistId', + source: 'spotify', playerUri: `https://open.spotify.com/embed/playlist/playlistId`, }, { type: 'spotify_playlist', - playlistId: 'playlistId', + source: 'spotify', + playerUri: `https://open.spotify.com/embed/playlist/playlistId`, + }, + { + type: 'spotify_playlist', + source: 'spotify', playerUri: `https://open.spotify.com/embed/playlist/playlistId`, }, { type: 'spotify_song', - songId: 'songId', + source: 'spotify', playerUri: `https://open.spotify.com/embed/track/songId`, }, { type: 'spotify_song', - songId: 'songId', + source: 'spotify', + playerUri: `https://open.spotify.com/embed/track/songId`, + }, + { + type: 'spotify_song', + source: 'spotify', playerUri: `https://open.spotify.com/embed/track/songId`, }, { type: 'spotify_album', - albumId: 'albumId', + source: 'spotify', playerUri: `https://open.spotify.com/embed/album/albumId`, }, { type: 'spotify_album', - albumId: 'albumId', + source: 'spotify', + playerUri: `https://open.spotify.com/embed/album/albumId`, + }, + { + type: 'spotify_album', + source: 'spotify', playerUri: `https://open.spotify.com/embed/album/albumId`, }, { type: 'soundcloud_track', - user: 'user', - track: 'track', + source: 'soundcloud', playerUri: `https://w.soundcloud.com/player/?url=https://soundcloud.com/user/track&auto_play=true&visual=false&hide_related=true`, }, { type: 'soundcloud_set', - user: 'user', - set: 'set', + source: 'soundcloud', playerUri: `https://w.soundcloud.com/player/?url=https://soundcloud.com/user/sets/set&auto_play=true&visual=false&hide_related=true`, }, undefined, + + { + type: 'apple_music_playlist', + source: 'appleMusic', + playerUri: + 'https://embed.music.apple.com/us/playlist/playlistName/playlistId', + }, + { + type: 'apple_music_album', + source: 'appleMusic', + playerUri: 'https://embed.music.apple.com/us/album/albumName/albumId', + }, + { + type: 'apple_music_song', + source: 'appleMusic', + playerUri: + 'https://embed.music.apple.com/us/album/albumName/albumId?i=songId', + }, + + { + type: 'vimeo_video', + source: 'vimeo', + playerUri: 'https://player.vimeo.com/video/videoId?autoplay=1', + }, + { + type: 'vimeo_video', + source: 'vimeo', + playerUri: 'https://player.vimeo.com/video/videoId?autoplay=1', + }, + + { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: 'https://giphy.com/gifs/gifId', + playerUri: 'https://i.giphy.com/media/gifId/giphy.webp', + }, + undefined, + undefined, + + { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: 'https://giphy.com/gifs/gifId', + playerUri: 'https://i.giphy.com/media/gifId/giphy.webp', + }, + { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: 'https://giphy.com/gifs/gifId', + playerUri: 'https://i.giphy.com/media/gifId/giphy.webp', + }, + { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: 'https://giphy.com/gifs/gifId', + playerUri: 'https://i.giphy.com/media/gifId/giphy.webp', + }, + { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: 'https://giphy.com/gifs/gifId', + playerUri: 'https://i.giphy.com/media/gifId/giphy.webp', + }, + { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: 'https://giphy.com/gifs/gifId', + playerUri: 'https://i.giphy.com/media/gifId/giphy.webp', + }, + { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: 'https://giphy.com/gifs/gifId', + playerUri: 'https://i.giphy.com/media/gifId/giphy.webp', + }, + undefined, + undefined, + undefined, + + { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: 'https://giphy.com/gifs/gifId', + playerUri: 'https://i.giphy.com/media/gifId/giphy.webp', + }, + + { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: 'https://giphy.com/gifs/gifId', + playerUri: 'https://i.giphy.com/media/gifId/giphy.webp', + }, + { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: 'https://giphy.com/gifs/gifId', + playerUri: 'https://i.giphy.com/media/gifId/giphy.webp', + }, + { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: 'https://giphy.com/gifs/gifId', + playerUri: 'https://i.giphy.com/media/gifId/giphy.webp', + }, + { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: 'https://giphy.com/gifs/gifId', + playerUri: 'https://i.giphy.com/media/gifId/giphy.webp', + }, + + { + type: 'tenor_gif', + source: 'tenor', + isGif: true, + hideDetails: true, + playerUri: 'https://tenor.com/view/gifId.gif', + }, + undefined, + undefined, + { + type: 'tenor_gif', + source: 'tenor', + isGif: true, + hideDetails: true, + playerUri: 'https://tenor.com/view/gifId.gif', + }, ] it('correctly grabs the correct id from uri', () => { diff --git a/bskyweb/cmd/bskyweb/server.go b/bskyweb/cmd/bskyweb/server.go index 7a3b8bf16a..94bba231a6 100644 --- a/bskyweb/cmd/bskyweb/server.go +++ b/bskyweb/cmd/bskyweb/server.go @@ -193,6 +193,7 @@ func serve(cctx *cli.Context) error { e.GET("/settings/home-feed", server.WebGeneric) e.GET("/settings/saved-feeds", server.WebGeneric) e.GET("/settings/threads", server.WebGeneric) + e.GET("/settings/external-embeds", server.WebGeneric) e.GET("/sys/debug", server.WebGeneric) e.GET("/sys/log", server.WebGeneric) e.GET("/support", server.WebGeneric) diff --git a/package.json b/package.json index e29b4ff1ff..68dc2e0dcb 100644 --- a/package.json +++ b/package.json @@ -166,7 +166,6 @@ "react-native-web-linear-gradient": "^1.1.2", "react-native-web-webview": "^1.0.2", "react-native-webview": "^13.6.3", - "react-native-youtube-iframe": "^2.3.0", "react-responsive": "^9.0.2", "rn-fetch-blob": "^0.12.0", "sentry-expo": "~7.0.1", diff --git a/src/Navigation.tsx b/src/Navigation.tsx index 27174a31f0..7bb1aa0ade 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -74,6 +74,7 @@ import {ModerationBlockedAccounts} from 'view/screens/ModerationBlockedAccounts' import {SavedFeeds} from 'view/screens/SavedFeeds' import {PreferencesHomeFeed} from 'view/screens/PreferencesHomeFeed' import {PreferencesThreads} from 'view/screens/PreferencesThreads' +import {PreferencesExternalEmbeds} from '#/view/screens/PreferencesExternalEmbeds' import {createNativeStackNavigatorWithAuth} from './view/shell/createNativeStackNavigatorWithAuth' const navigationRef = createNavigationContainerRef() @@ -243,6 +244,14 @@ function commonScreens(Stack: typeof HomeTab, unreadCountLabel?: string) { getComponent={() => PreferencesThreads} options={{title: title('Threads Preferences'), requireAuth: true}} /> + PreferencesExternalEmbeds} + options={{ + title: title('External Media Preferences'), + requireAuth: true, + }} + /> ) } diff --git a/src/lib/analytics/types.ts b/src/lib/analytics/types.ts index 5a24c360af..c84f7979a4 100644 --- a/src/lib/analytics/types.ts +++ b/src/lib/analytics/types.ts @@ -147,6 +147,7 @@ interface ScreenPropertiesMap { Settings: {} AppPasswords: {} Moderation: {} + PreferencesExternalEmbeds: {} BlockedAccounts: {} MutedAccounts: {} SavedFeeds: {} diff --git a/src/lib/link-meta/link-meta.ts b/src/lib/link-meta/link-meta.ts index c17dee51fa..c7c8d4130a 100644 --- a/src/lib/link-meta/link-meta.ts +++ b/src/lib/link-meta/link-meta.ts @@ -2,6 +2,7 @@ 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' export enum LikelyType { HTML, @@ -34,6 +35,13 @@ export async function getLinkMeta( let urlp try { urlp = new URL(url) + + // Get Giphy meta uri if this is any form of giphy link + const giphyMetaUri = getGiphyMetaUri(urlp) + if (giphyMetaUri) { + url = giphyMetaUri + urlp = new URL(url) + } } catch (e) { return { error: 'Invalid URL', diff --git a/src/lib/routes/types.ts b/src/lib/routes/types.ts index c157c0ab34..90ae758304 100644 --- a/src/lib/routes/types.ts +++ b/src/lib/routes/types.ts @@ -32,6 +32,7 @@ export type CommonNavigatorParams = { SavedFeeds: undefined PreferencesHomeFeed: undefined PreferencesThreads: undefined + PreferencesExternalEmbeds: undefined } export type BottomTabNavigatorParams = CommonNavigatorParams & { diff --git a/src/lib/strings/embed-player.ts b/src/lib/strings/embed-player.ts index ec996dfa53..b27fd9e789 100644 --- a/src/lib/strings/embed-player.ts +++ b/src/lib/strings/embed-player.ts @@ -1,17 +1,59 @@ -import {Platform} from 'react-native' +import {Dimensions, Platform} from 'react-native' +const {height: SCREEN_HEIGHT} = Dimensions.get('window') -export type EmbedPlayerParams = - | {type: 'youtube_video'; videoId: string; playerUri: string} - | {type: 'twitch_live'; channelId: string; playerUri: string} - | {type: 'spotify_album'; albumId: string; playerUri: string} - | { - type: 'spotify_playlist' - playlistId: string - playerUri: string - } - | {type: 'spotify_song'; songId: string; playerUri: string} - | {type: 'soundcloud_track'; user: string; track: string; playerUri: string} - | {type: 'soundcloud_set'; user: string; set: string; playerUri: string} +export const embedPlayerSources = [ + 'youtube', + 'youtubeShorts', + 'twitch', + 'spotify', + 'soundcloud', + 'appleMusic', + 'vimeo', + 'giphy', + 'tenor', +] as const + +export type EmbedPlayerSource = (typeof embedPlayerSources)[number] + +export type EmbedPlayerType = + | 'youtube_video' + | 'youtube_short' + | 'twitch_video' + | 'spotify_album' + | 'spotify_playlist' + | 'spotify_song' + | 'soundcloud_track' + | 'soundcloud_set' + | 'apple_music_playlist' + | 'apple_music_album' + | 'apple_music_song' + | 'vimeo_video' + | 'giphy_gif' + | 'tenor_gif' + +export const externalEmbedLabels: Record = { + youtube: 'YouTube', + youtubeShorts: 'YouTube Shorts', + vimeo: 'Vimeo', + twitch: 'Twitch', + giphy: 'GIPHY', + tenor: 'Tenor', + spotify: 'Spotify', + appleMusic: 'Apple Music', + soundcloud: 'SoundCloud', +} + +export interface EmbedPlayerParams { + type: EmbedPlayerType + playerUri: string + isGif?: boolean + source: EmbedPlayerSource + metaUri?: string + hideDetails?: boolean +} + +const giphyRegex = /media(?:[0-4]\.giphy\.com|\.giphy\.com)/i +const gifFilenameRegex = /^(\S+)\.(webp|gif|mp4)$/i export function parseEmbedPlayerFromUrl( url: string, @@ -29,63 +71,88 @@ export function parseEmbedPlayerFromUrl( if (videoId) { return { type: 'youtube_video', - videoId, - playerUri: `https://www.youtube.com/embed/${videoId}?autoplay=1`, + source: 'youtube', + playerUri: `https://www.youtube.com/embed/${videoId}?autoplay=1&playsinline=1`, } } } - if (urlp.hostname === 'www.youtube.com' || urlp.hostname === 'youtube.com') { + if ( + urlp.hostname === 'www.youtube.com' || + urlp.hostname === 'youtube.com' || + urlp.hostname === 'm.youtube.com' + ) { const [_, page, shortVideoId] = urlp.pathname.split('/') const videoId = page === 'shorts' ? shortVideoId : (urlp.searchParams.get('v') as string) if (videoId) { return { - type: 'youtube_video', - videoId, - playerUri: `https://www.youtube.com/embed/${videoId}?autoplay=1`, + type: page === 'shorts' ? 'youtube_short' : 'youtube_video', + source: page === 'shorts' ? 'youtubeShorts' : 'youtube', + hideDetails: page === 'shorts' ? true : undefined, + playerUri: `https://www.youtube.com/embed/${videoId}?autoplay=1&playsinline=1`, } } } // twitch - if (urlp.hostname === 'twitch.tv' || urlp.hostname === 'www.twitch.tv') { + if ( + urlp.hostname === 'twitch.tv' || + urlp.hostname === 'www.twitch.tv' || + urlp.hostname === 'm.twitch.tv' + ) { const parent = Platform.OS === 'web' ? window.location.hostname : 'localhost' - const parts = urlp.pathname.split('/') - if (parts.length === 2 && parts[1]) { + const [_, channelOrVideo, clipOrId, id] = urlp.pathname.split('/') + + if (channelOrVideo === 'videos') { return { - type: 'twitch_live', - channelId: parts[1], - playerUri: `https://player.twitch.tv/?volume=0.5&!muted&autoplay&channel=${parts[1]}&parent=${parent}`, + type: 'twitch_video', + source: 'twitch', + playerUri: `https://player.twitch.tv/?volume=0.5&!muted&autoplay&video=${clipOrId}&parent=${parent}`, + } + } else if (clipOrId === 'clip') { + return { + type: 'twitch_video', + source: 'twitch', + playerUri: `https://clips.twitch.tv/embed?volume=0.5&autoplay=true&clip=${id}&parent=${parent}`, + } + } else if (channelOrVideo) { + return { + type: 'twitch_video', + source: 'twitch', + playerUri: `https://player.twitch.tv/?volume=0.5&!muted&autoplay&channel=${channelOrVideo}&parent=${parent}`, } } } // spotify if (urlp.hostname === 'open.spotify.com') { - const [_, type, id] = urlp.pathname.split('/') - if (type && id) { - if (type === 'playlist') { + const [_, typeOrLocale, idOrType, id] = urlp.pathname.split('/') + + if (idOrType) { + if (typeOrLocale === 'playlist' || idOrType === 'playlist') { return { type: 'spotify_playlist', - playlistId: id, - playerUri: `https://open.spotify.com/embed/playlist/${id}`, + source: 'spotify', + playerUri: `https://open.spotify.com/embed/playlist/${ + id ?? idOrType + }`, } } - if (type === 'album') { + if (typeOrLocale === 'album' || idOrType === 'album') { return { type: 'spotify_album', - albumId: id, - playerUri: `https://open.spotify.com/embed/album/${id}`, + source: 'spotify', + playerUri: `https://open.spotify.com/embed/album/${id ?? idOrType}`, } } - if (type === 'track') { + if (typeOrLocale === 'track' || idOrType === 'track') { return { type: 'spotify_song', - songId: id, - playerUri: `https://open.spotify.com/embed/track/${id}`, + source: 'spotify', + playerUri: `https://open.spotify.com/embed/track/${id ?? idOrType}`, } } } @@ -102,20 +169,170 @@ export function parseEmbedPlayerFromUrl( if (trackOrSets === 'sets' && set) { return { type: 'soundcloud_set', - user, - set: set, + source: 'soundcloud', playerUri: `https://w.soundcloud.com/player/?url=${url}&auto_play=true&visual=false&hide_related=true`, } } return { type: 'soundcloud_track', - user, - track: trackOrSets, + source: 'soundcloud', playerUri: `https://w.soundcloud.com/player/?url=${url}&auto_play=true&visual=false&hide_related=true`, } } } + + if ( + urlp.hostname === 'music.apple.com' || + urlp.hostname === 'music.apple.com' + ) { + // This should always have: locale, type (playlist or album), name, and id. We won't use spread since we want + // to check if the length is correct + const pathParams = urlp.pathname.split('/') + const type = pathParams[2] + const songId = urlp.searchParams.get('i') + + if (pathParams.length === 5 && (type === 'playlist' || type === 'album')) { + // We want to append the songId to the end of the url if it exists + const embedUri = `https://embed.music.apple.com${urlp.pathname}${ + urlp.search ? '?i=' + songId : '' + }` + + if (type === 'playlist') { + return { + type: 'apple_music_playlist', + source: 'appleMusic', + playerUri: embedUri, + } + } else if (type === 'album') { + if (songId) { + return { + type: 'apple_music_song', + source: 'appleMusic', + playerUri: embedUri, + } + } else { + return { + type: 'apple_music_album', + source: 'appleMusic', + playerUri: embedUri, + } + } + } + } + } + + if (urlp.hostname === 'vimeo.com' || urlp.hostname === 'www.vimeo.com') { + const [_, videoId] = urlp.pathname.split('/') + if (videoId) { + return { + type: 'vimeo_video', + source: 'vimeo', + playerUri: `https://player.vimeo.com/video/${videoId}?autoplay=1`, + } + } + } + + if (urlp.hostname === 'giphy.com' || urlp.hostname === 'www.giphy.com') { + const [_, gifs, nameAndId] = urlp.pathname.split('/') + + /* + * nameAndId is a string that consists of the name (dash separated) and the id of the gif (the last part of the name) + * We want to get the id of the gif, then direct to media.giphy.com/media/{id}/giphy.webp so we can + * use it in an component + */ + + if (gifs === 'gifs' && nameAndId) { + const gifId = nameAndId.split('-').pop() + + if (gifId) { + return { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: `https://giphy.com/gifs/${gifId}`, + playerUri: `https://i.giphy.com/media/${gifId}/giphy.webp`, + } + } + } + } + + // There are five possible hostnames that also can be giphy urls: media.giphy.com and media0-4.giphy.com + // These can include (presumably) a tracking id in the path name, so we have to check for that as well + if (giphyRegex.test(urlp.hostname)) { + // We can link directly to the gif, if its a proper link + const [_, media, trackingOrId, idOrFilename, filename] = + urlp.pathname.split('/') + + if (media === 'media') { + if (idOrFilename && gifFilenameRegex.test(idOrFilename)) { + return { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: `https://giphy.com/gifs/${trackingOrId}`, + playerUri: `https://i.giphy.com/media/${trackingOrId}/giphy.webp`, + } + } else if (filename && gifFilenameRegex.test(filename)) { + return { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: `https://giphy.com/gifs/${idOrFilename}`, + playerUri: `https://i.giphy.com/media/${idOrFilename}/giphy.webp`, + } + } + } + } + + // Finally, we should see if it is a link to i.giphy.com. These links don't necessarily end in .gif but can also + // be .webp + if (urlp.hostname === 'i.giphy.com' || urlp.hostname === 'www.i.giphy.com') { + const [_, mediaOrFilename, filename] = urlp.pathname.split('/') + + if (mediaOrFilename === 'media' && filename) { + const gifId = filename.split('.')[0] + return { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: `https://giphy.com/gifs/${gifId}`, + playerUri: `https://i.giphy.com/media/${gifId}/giphy.webp`, + } + } else if (mediaOrFilename) { + const gifId = mediaOrFilename.split('.')[0] + return { + type: 'giphy_gif', + source: 'giphy', + isGif: true, + hideDetails: true, + metaUri: `https://giphy.com/gifs/${gifId}`, + playerUri: `https://i.giphy.com/media/${ + mediaOrFilename.split('.')[0] + }/giphy.webp`, + } + } + } + + if (urlp.hostname === 'tenor.com' || urlp.hostname === 'www.tenor.com') { + const [_, path, filename] = urlp.pathname.split('/') + + if (path === 'view' && filename) { + const includesExt = filename.split('.').pop() === 'gif' + + return { + type: 'tenor_gif', + source: 'tenor', + isGif: true, + hideDetails: true, + playerUri: `${url}${!includesExt ? '.gif' : ''}`, + } + } + } } export function getPlayerHeight({ @@ -131,22 +348,53 @@ export function getPlayerHeight({ switch (type) { case 'youtube_video': - case 'twitch_live': + case 'twitch_video': + case 'vimeo_video': return (width / 16) * 9 + case 'youtube_short': + if (SCREEN_HEIGHT < 600) { + return ((width / 9) * 16) / 1.75 + } else { + return ((width / 9) * 16) / 1.5 + } case 'spotify_album': - return 380 + case 'apple_music_album': + case 'apple_music_playlist': case 'spotify_playlist': - return 360 + case 'soundcloud_set': + return 380 case 'spotify_song': if (width <= 300) { - return 180 + return 155 } return 232 case 'soundcloud_track': return 165 - case 'soundcloud_set': - return 360 + case 'apple_music_song': + return 150 default: return width } } + +export function getGifDims( + originalHeight: number, + originalWidth: number, + viewWidth: number, +) { + const scaledHeight = (originalHeight / originalWidth) * viewWidth + + return { + height: scaledHeight > 250 ? 250 : scaledHeight, + width: (250 / scaledHeight) * viewWidth, + } +} + +export function getGiphyMetaUri(url: URL) { + if (giphyRegex.test(url.hostname) || url.hostname === 'i.giphy.com') { + const params = parseEmbedPlayerFromUrl(url.toString()) + if (params && params.type === 'giphy_gif') { + return params.metaUri + } + } +} diff --git a/src/routes.ts b/src/routes.ts index bb2421987a..e58fddd429 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -26,6 +26,7 @@ export const router = new Router({ AppPasswords: '/settings/app-passwords', PreferencesHomeFeed: '/settings/home-feed', PreferencesThreads: '/settings/threads', + PreferencesExternalEmbeds: '/settings/external-embeds', SavedFeeds: '/settings/saved-feeds', Support: '/support', PrivacyPolicy: '/support/privacy', diff --git a/src/state/modals/index.tsx b/src/state/modals/index.tsx index 81a220d1b3..8c32c472a6 100644 --- a/src/state/modals/index.tsx +++ b/src/state/modals/index.tsx @@ -6,6 +6,7 @@ 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.ts' import {ThreadgateSetting} from '../queries/threadgate' export interface ConfirmModal { @@ -180,6 +181,12 @@ export interface LinkWarningModal { href: string } +export interface EmbedConsentModal { + name: 'embed-consent' + source: EmbedPlayerSource + onAccept: () => void +} + export type Modal = // Account | AddAppPasswordModal @@ -223,6 +230,7 @@ export type Modal = // Generic | ConfirmModal | LinkWarningModal + | EmbedConsentModal const ModalContext = React.createContext<{ isModalActive: boolean diff --git a/src/state/persisted/legacy.ts b/src/state/persisted/legacy.ts index cdb542f5ac..334ef1d92a 100644 --- a/src/state/persisted/legacy.ts +++ b/src/state/persisted/legacy.ts @@ -109,6 +109,7 @@ export function transform(legacy: Partial): Schema { step: legacy.onboarding?.step || defaults.onboarding.step, }, hiddenPosts: defaults.hiddenPosts, + externalEmbeds: defaults.externalEmbeds, } } diff --git a/src/state/persisted/schema.ts b/src/state/persisted/schema.ts index 27b1f26bdd..6a26cedae5 100644 --- a/src/state/persisted/schema.ts +++ b/src/state/persisted/schema.ts @@ -1,6 +1,8 @@ import {z} from 'zod' import {deviceLocales} from '#/platform/detection' +const externalEmbedOptions = ['show', 'hide'] as const + // only data needed for rendering account page const accountSchema = z.object({ service: z.string(), @@ -30,6 +32,19 @@ export const schema = z.object({ appLanguage: z.string(), }), requireAltTextEnabled: z.boolean(), // should move to server + externalEmbeds: z + .object({ + giphy: z.enum(externalEmbedOptions).optional(), + tenor: z.enum(externalEmbedOptions).optional(), + youtube: z.enum(externalEmbedOptions).optional(), + youtubeShorts: z.enum(externalEmbedOptions).optional(), + twitch: z.enum(externalEmbedOptions).optional(), + vimeo: z.enum(externalEmbedOptions).optional(), + spotify: z.enum(externalEmbedOptions).optional(), + appleMusic: z.enum(externalEmbedOptions).optional(), + soundcloud: z.enum(externalEmbedOptions).optional(), + }) + .optional(), mutedThreads: z.array(z.string()), // should move to server invites: z.object({ copiedInvites: z.array(z.string()), @@ -60,6 +75,7 @@ export const defaults: Schema = { appLanguage: deviceLocales[0] || 'en', }, requireAltTextEnabled: false, + externalEmbeds: {}, mutedThreads: [], invites: { copiedInvites: [], diff --git a/src/state/preferences/external-embeds-prefs.tsx b/src/state/preferences/external-embeds-prefs.tsx new file mode 100644 index 0000000000..0f6385fe8e --- /dev/null +++ b/src/state/preferences/external-embeds-prefs.tsx @@ -0,0 +1,54 @@ +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 + +const stateContext = React.createContext( + persisted.defaults.externalEmbeds, +) +const setContext = React.createContext({} as SetContext) + +export function Provider({children}: React.PropsWithChildren<{}>) { + const [state, setState] = React.useState(persisted.get('externalEmbeds')) + + const setStateWrapped = React.useCallback( + (source: EmbedPlayerSource, value: 'show' | 'hide') => { + setState(prev => { + persisted.write('externalEmbeds', { + ...prev, + [source]: value, + }) + + return { + ...prev, + [source]: value, + } + }) + }, + [setState], + ) + + React.useEffect(() => { + return persisted.onUpdate(() => { + setState(persisted.get('externalEmbeds')) + }) + }, [setStateWrapped]) + + return ( + + + {children} + + + ) +} + +export function useExternalEmbedsPrefs() { + return React.useContext(stateContext) +} + +export function useSetExternalEmbedPref() { + return React.useContext(setContext) +} diff --git a/src/state/preferences/index.tsx b/src/state/preferences/index.tsx index 5ec659031e..cc2d9244c3 100644 --- a/src/state/preferences/index.tsx +++ b/src/state/preferences/index.tsx @@ -2,19 +2,26 @@ 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' export {useLanguagePrefs, useLanguagePrefsApi} from './languages' export { useRequireAltTextEnabled, useSetRequireAltTextEnabled, } from './alt-text-required' +export { + useExternalEmbedsPrefs, + useSetExternalEmbedPref, +} from './external-embeds-prefs' export * from './hidden-posts' export function Provider({children}: React.PropsWithChildren<{}>) { return ( - {children} + + {children} + ) diff --git a/src/view/com/modals/EmbedConsent.tsx b/src/view/com/modals/EmbedConsent.tsx new file mode 100644 index 0000000000..04104c52e1 --- /dev/null +++ b/src/view/com/modals/EmbedConsent.tsx @@ -0,0 +1,153 @@ +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 { + 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' + +export const snapPoints = [450] + +export function Component({ + onAccept, + source, +}: { + onAccept: () => void + source: EmbedPlayerSource +}) { + const pal = usePalette('default') + const {closeModal} = useModalControls() + const {_} = useLingui() + const setExternalEmbedPref = useSetExternalEmbedPref() + const {isMobile} = useWebMediaQueries() + + const onShowAllPress = React.useCallback(() => { + for (const key of embedPlayerSources) { + setExternalEmbedPref(key, 'show') + } + onAccept() + closeModal() + }, [closeModal, onAccept, setExternalEmbedPref]) + + const onShowPress = React.useCallback(() => { + setExternalEmbedPref(source, 'show') + onAccept() + closeModal() + }, [closeModal, onAccept, setExternalEmbedPref, source]) + + const onHidePress = React.useCallback(() => { + setExternalEmbedPref(source, 'hide') + closeModal() + }, [closeModal, setExternalEmbedPref, source]) + + return ( + + + External Media + + + + + This content is hosted by {externalEmbedLabels[source]}. Do you want + to enable external media? + + + + + + 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. + + + + + + + Enable External Media + + + + + + + + Enable {externalEmbedLabels[source]} only + + + + + + + + No thanks + + + + + ) +} + +const styles = StyleSheet.create({ + title: { + textAlign: 'center', + fontWeight: 'bold', + fontSize: 24, + marginBottom: 12, + }, + btn: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + width: '100%', + borderRadius: 32, + padding: 14, + backgroundColor: colors.gray1, + }, +}) diff --git a/src/view/com/modals/Modal.tsx b/src/view/com/modals/Modal.tsx index 2aac20dacc..f9d211d07c 100644 --- a/src/view/com/modals/Modal.tsx +++ b/src/view/com/modals/Modal.tsx @@ -38,6 +38,7 @@ import * as VerifyEmailModal from './VerifyEmail' import * as ChangeEmailModal from './ChangeEmail' import * as SwitchAccountModal from './SwitchAccount' import * as LinkWarningModal from './LinkWarning' +import * as EmbedConsentModal from './EmbedConsent' const DEFAULT_SNAPPOINTS = ['90%'] const HANDLE_HEIGHT = 24 @@ -176,6 +177,9 @@ export function ModalsContainer() { } else if (activeModal?.name === 'link-warning') { snapPoints = LinkWarningModal.snapPoints element = + } else if (activeModal?.name === 'embed-consent') { + snapPoints = EmbedConsentModal.snapPoints + element = } else { return null } diff --git a/src/view/com/modals/Modal.web.tsx b/src/view/com/modals/Modal.web.tsx index 12138f54d4..c43a8a6ce9 100644 --- a/src/view/com/modals/Modal.web.tsx +++ b/src/view/com/modals/Modal.web.tsx @@ -34,6 +34,7 @@ import * as BirthDateSettingsModal from './BirthDateSettings' import * as VerifyEmailModal from './VerifyEmail' import * as ChangeEmailModal from './ChangeEmail' import * as LinkWarningModal from './LinkWarning' +import * as EmbedConsentModal from './EmbedConsent' export function ModalsContainer() { const {isModalActive, activeModals} = useModals() @@ -129,6 +130,8 @@ function Modal({modal}: {modal: ModalIface}) { element = } else if (modal.name === 'link-warning') { element = + } else if (modal.name === 'embed-consent') { + element = } else { return null } diff --git a/src/view/com/util/post-embeds/ExternalGifEmbed.tsx b/src/view/com/util/post-embeds/ExternalGifEmbed.tsx new file mode 100644 index 0000000000..f06c8b794d --- /dev/null +++ b/src/view/com/util/post-embeds/ExternalGifEmbed.tsx @@ -0,0 +1,170 @@ +import {EmbedPlayerParams, getGifDims} from 'lib/strings/embed-player' +import React from 'react' +import {Image, ImageLoadEventData} from 'expo-image' +import { + ActivityIndicator, + GestureResponderEvent, + LayoutChangeEvent, + Pressable, + 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' + +export function ExternalGifEmbed({ + link, + params, +}: { + link: AppBskyEmbedExternal.ViewExternal + params: EmbedPlayerParams +}) { + const externalEmbedsPrefs = useExternalEmbedsPrefs() + const {openModal} = useModalControls() + const {_} = useLingui() + + const thumbHasLoaded = React.useRef(false) + const viewWidth = React.useRef(0) + + // Tracking if the placer has been activated + const [isPlayerActive, setIsPlayerActive] = React.useState(false) + // Tracking whether the gif has been loaded yet + const [isPrefetched, setIsPrefetched] = React.useState(false) + // Tracking whether the image is animating + const [isAnimating, setIsAnimating] = React.useState(true) + const [imageDims, setImageDims] = React.useState({height: 100, width: 1}) + + // Used for controlling animation + const imageRef = React.useRef(null) + + const load = React.useCallback(() => { + setIsPlayerActive(true) + Image.prefetch(params.playerUri).then(() => { + // Replace the image once it's fetched + setIsPrefetched(true) + }) + }, [params.playerUri]) + + const onPlayPress = React.useCallback( + (event: GestureResponderEvent) => { + // Don't propagate on web + event.preventDefault() + + // Show consent if this is the first load + if (externalEmbedsPrefs?.[params.source] === undefined) { + openModal({ + name: 'embed-consent', + source: params.source, + onAccept: load, + }) + return + } + // If the player isn't active, we want to activate it and prefetch the gif + if (!isPlayerActive) { + load() + return + } + // Control animation on native + setIsAnimating(prev => { + if (prev) { + if (isNative) { + imageRef.current?.stopAnimating() + } + return false + } else { + if (isNative) { + imageRef.current?.startAnimating() + } + return true + } + }) + }, + [externalEmbedsPrefs, isPlayerActive, load, openModal, params.source], + ) + + const onLoad = React.useCallback((e: ImageLoadEventData) => { + if (thumbHasLoaded.current) return + setImageDims(getGifDims(e.source.height, e.source.width, viewWidth.current)) + thumbHasLoaded.current = true + }, []) + + const onLayout = React.useCallback((e: LayoutChangeEvent) => { + viewWidth.current = e.nativeEvent.layout.width + }, []) + + return ( + + {(!isPrefetched || !isAnimating) && ( // If we have not loaded or are not animating, show the overlay + + + {!isAnimating || !isPlayerActive ? ( // Play button when not animating or not active + + ) : ( + // Activity indicator while gif loads + + )} + + + )} + + + ) +} + +const styles = StyleSheet.create({ + topRadius: { + borderTopLeftRadius: 6, + borderTopRightRadius: 6, + }, + layer: { + position: 'absolute', + top: 0, + left: 0, + right: 0, + bottom: 0, + }, + overlayContainer: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + backgroundColor: 'rgba(0,0,0,0.5)', + }, + overlayLayer: { + zIndex: 2, + }, + gifContainer: { + width: '100%', + overflow: 'hidden', + }, +}) diff --git a/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx b/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx index 1523dcf530..af62aa2b33 100644 --- a/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx +++ b/src/view/com/util/post-embeds/ExternalLinkEmbed.tsx @@ -8,6 +8,8 @@ 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 {useExternalEmbedsPrefs} from 'state/preferences' export const ExternalLinkEmbed = ({ link, @@ -16,11 +18,15 @@ export const ExternalLinkEmbed = ({ }) => { const pal = usePalette('default') const {isMobile} = useWebMediaQueries() + const externalEmbedPrefs = useExternalEmbedsPrefs() - const embedPlayerParams = React.useMemo( - () => parseEmbedPlayerFromUrl(link.uri), - [link.uri], - ) + const embedPlayerParams = React.useMemo(() => { + const params = parseEmbedPlayerFromUrl(link.uri) + + if (params && externalEmbedPrefs?.[params.source] !== 'hide') { + return params + } + }, [link.uri, externalEmbedPrefs]) return ( @@ -40,9 +46,12 @@ export const ExternalLinkEmbed = ({ /> ) : undefined} - {embedPlayerParams && ( - - )} + {(embedPlayerParams?.isGif && ( + + )) || + (embedPlayerParams && ( + + ))} {toNiceDomain(link.uri)} - - {link.title || link.uri} - - {link.description ? ( + {!embedPlayerParams?.isGif && ( + + {link.title || link.uri} + + )} + {link.description && !embedPlayerParams?.hideDetails ? ( void }) { + const {_} = useLingui() + // If the player is active and not loading, we don't want to show the overlay. if (isPlayerActive && !isLoading) return null @@ -46,8 +51,8 @@ function PlaceholderOverlay({ {!isPlayerActive ? ( @@ -84,31 +89,21 @@ function Player({ return ( - {isNative && params.type === 'youtube_video' ? ( - + - ) : ( - - - - )} + ) @@ -125,6 +120,8 @@ export function ExternalPlayer({ const navigation = useNavigation() const insets = useSafeAreaInsets() const windowDims = useWindowDimensions() + const externalEmbedsPrefs = useExternalEmbedsPrefs() + const {openModal} = useModalControls() const [isPlayerActive, setPlayerActive] = React.useState(false) const [isLoading, setIsLoading] = React.useState(true) @@ -194,12 +191,26 @@ export function ExternalPlayer({ setIsLoading(false) }, []) - const onPlayPress = React.useCallback((event: GestureResponderEvent) => { - // Prevent this from propagating upward on web - event.preventDefault() + const onPlayPress = React.useCallback( + (event: GestureResponderEvent) => { + // Prevent this from propagating upward on web + event.preventDefault() - setPlayerActive(true) - }, []) + if (externalEmbedsPrefs?.[params.source] === undefined) { + openModal({ + name: 'embed-consent', + source: params.source, + onAccept: () => { + setPlayerActive(true) + }, + }) + return + } + + setPlayerActive(true) + }, + [externalEmbedsPrefs, openModal, params.source], + ) // measure the layout to set sizing const onLayout = React.useCallback( @@ -231,7 +242,6 @@ export function ExternalPlayer({ accessibilityIgnoresInvertColors /> )} - +export function PreferencesExternalEmbeds({}: Props) { + const pal = usePalette('default') + const setMinimalShellMode = useSetMinimalShellMode() + const {screen} = useAnalytics() + const {isMobile} = useWebMediaQueries() + + useFocusEffect( + React.useCallback(() => { + screen('PreferencesExternalEmbeds') + setMinimalShellMode(false) + }, [screen, setMinimalShellMode]), + ) + + return ( + + + + + External Media Preferences + + + Customize media from external sites. + + + + + + + + + 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. + + + + + + Enable media players for + + {Object.entries(externalEmbedLabels).map(([key, label]) => ( + + ))} + + + ) +} + +function PrefSelector({ + source, + label, +}: { + source: EmbedPlayerSource + label: string +}) { + const pal = usePalette('default') + const setExternalEmbedPref = useSetExternalEmbedPref() + const sources = useExternalEmbedsPrefs() + + return ( + + + + setExternalEmbedPref( + source, + sources?.[source] === 'show' ? 'hide' : 'show', + ) + } + /> + + + ) +} + +const styles = StyleSheet.create({ + heading: { + paddingHorizontal: 18, + paddingTop: 14, + paddingBottom: 14, + }, + spacer: { + height: 8, + }, + infoCard: { + paddingHorizontal: 20, + paddingVertical: 14, + }, + toggleCard: { + paddingVertical: 8, + paddingHorizontal: 6, + marginBottom: 1, + }, +}) diff --git a/src/view/screens/Settings.tsx b/src/view/screens/Settings.tsx index 5b381a1388..fedd348e2a 100644 --- a/src/view/screens/Settings.tsx +++ b/src/view/screens/Settings.tsx @@ -563,6 +563,39 @@ export function SettingsScreen({}: Props) { Moderation + + + + + Privacy + + + navigation.navigate('PreferencesExternalEmbeds') + } + accessibilityRole="button" + accessibilityHint="" + accessibilityLabel={_(msg`Opens external embeds settings`)}> + + + + + External Media Preferences + + + diff --git a/yarn.lock b/yarn.lock index d724c7821c..0546ca5d1a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18304,13 +18304,6 @@ react-native-webview@^13.6.3: escape-string-regexp "2.0.0" invariant "2.2.4" -react-native-youtube-iframe@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/react-native-youtube-iframe/-/react-native-youtube-iframe-2.3.0.tgz#40ca8e55db929b91bfa8e8d30e411658cbc304c5" - integrity sha512-M+z63xwXVtS4dX3k8PbtHUUcWN+gRZt6J1EtPE7Y60BMOB979KjpkdrHqeR96or9pNR2W8K5tQhIkMXW2jwo7Q== - dependencies: - events "^3.2.0" - react-native@0.73.1: version "0.73.1" resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.1.tgz#5eafaa7e54feeab8b55e8b8e4efc4d21052a4fff" From 6e8650e2ebbb3d9dbe5e1d625ec1ee706284b124 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 4 Jan 2024 17:40:28 -0800 Subject: [PATCH 078/115] 1.63 --- app.config.js | 4 +- package.json | 2 +- src/locale/locales/de/messages.po | 119 +++++++++++++++++++------- src/locale/locales/en/messages.po | 119 +++++++++++++++++++------- src/locale/locales/es/messages.po | 119 +++++++++++++++++++------- src/locale/locales/fr/messages.po | 119 +++++++++++++++++++------- src/locale/locales/hi/messages.po | 119 +++++++++++++++++++------- src/locale/locales/ja/messages.po | 119 +++++++++++++++++++------- src/locale/locales/ko/messages.po | 119 +++++++++++++++++++------- src/locale/locales/pt-BR/messages.po | 119 +++++++++++++++++++------- src/locale/locales/uk/messages.po | 120 ++++++++++++++++++++------- 11 files changed, 813 insertions(+), 265 deletions(-) diff --git a/app.config.js b/app.config.js index 312b9ea201..37e583e4f0 100644 --- a/app.config.js +++ b/app.config.js @@ -9,12 +9,12 @@ module.exports = function () { /** * iOS build number. Must be incremented for each TestFlight version. */ - const IOS_BUILD_NUMBER = '2' + const IOS_BUILD_NUMBER = '1' /** * Android build number. Must be incremented for each release. */ - const ANDROID_VERSION_CODE = 53 + const ANDROID_VERSION_CODE = 54 /** * Uses built-in Expo env vars diff --git a/package.json b/package.json index 68dc2e0dcb..e7194bc9cb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bsky.app", - "version": "1.62.0", + "version": "1.63.0", "private": true, "engines": { "node": ">=18" diff --git a/src/locale/locales/de/messages.po b/src/locale/locales/de/messages.po index 35305b55a7..4926b30ae0 100644 --- a/src/locale/locales/de/messages.po +++ b/src/locale/locales/de/messages.po @@ -144,7 +144,7 @@ msgstr "Passen Sie die Anzahl der Likes an, die eine Antwort haben muss, um in I msgid "Adult Content" msgstr "Inhalt für Erwachsene" -#: src/view/screens/Settings.tsx:569 +#: src/view/screens/Settings.tsx:602 msgid "Advanced" msgstr "Fortgeschrittene" @@ -177,7 +177,7 @@ msgstr "und" msgid "App Language" msgstr "App Sprache" -#: src/view/screens/Settings.tsx:589 +#: src/view/screens/Settings.tsx:622 msgid "App passwords" msgstr "App-Passwörter" @@ -328,7 +328,7 @@ msgstr "Bluesky wird dein Profil und deine Beiträge nicht für abgemeldete Benu msgid "Bluesky.Social" msgstr "Bluesky.Social" -#: src/view/screens/Settings.tsx:718 +#: src/view/screens/Settings.tsx:751 msgid "Build version {0} {1}" msgstr "Version bauen {0} {1}" @@ -403,8 +403,8 @@ msgstr "Anmeldung zur Warteliste abbrechen" msgid "Change" msgstr "Ändern" -#: src/view/screens/Settings.tsx:601 -#: src/view/screens/Settings.tsx:610 +#: src/view/screens/Settings.tsx:634 +#: src/view/screens/Settings.tsx:643 msgid "Change handle" msgstr "Änderungsgriff andern" @@ -448,19 +448,19 @@ msgstr "Wählen Sie die Algorithmen, die Ihr Erlebnis mit benutzerdefinierten Fe msgid "Choose your password" msgstr "Wählen Sie Ihr Passwort" -#: src/view/screens/Settings.tsx:694 +#: src/view/screens/Settings.tsx:727 msgid "Clear all legacy storage data" msgstr "Alle alten Speicherdaten löschen" -#: src/view/screens/Settings.tsx:696 +#: src/view/screens/Settings.tsx:729 msgid "Clear all legacy storage data (restart after this)" msgstr "Alle alten Speicherdaten löschen (danach neu starten)" -#: src/view/screens/Settings.tsx:706 +#: src/view/screens/Settings.tsx:739 msgid "Clear all storage data" msgstr "Alle alten Speicherdaten löschen" -#: src/view/screens/Settings.tsx:708 +#: src/view/screens/Settings.tsx:741 msgid "Clear all storage data (restart after this)" msgstr "Alle alten Speicherdaten löschen (danach neu starten)" @@ -616,11 +616,15 @@ msgstr "Erstellt {0}" msgid "Custom domain" msgstr "Benutzerdefinierter Bereich" -#: src/view/screens/Settings.tsx:615 +#: src/view/screens/PreferencesExternalEmbeds.tsx:55 +msgid "Customize media from external sites." +msgstr "" + +#: src/view/screens/Settings.tsx:648 msgid "Danger Zone" msgstr "Gefahrenzone" -#: src/view/screens/Settings.tsx:622 +#: src/view/screens/Settings.tsx:655 msgid "Delete account" msgstr "Konto löschen" @@ -642,7 +646,7 @@ msgstr "Liste löschen" msgid "Delete my account" msgstr "Mein Konto löschen" -#: src/view/screens/Settings.tsx:632 +#: src/view/screens/Settings.tsx:665 msgid "Delete my account…" msgstr "Mein Konto löschen..." @@ -669,7 +673,7 @@ msgstr "Beschreibung" msgid "Dev Server" msgstr "Entwicklungs-Server" -#: src/view/screens/Settings.tsx:637 +#: src/view/screens/Settings.tsx:670 msgid "Developer Tools" msgstr "Werkzeuge für Entwickler" @@ -778,6 +782,14 @@ msgstr "Email aktualiziert" msgid "Email:" msgstr "E-Mail:" +#: src/view/com/modals/EmbedConsent.tsx:113 +msgid "Enable {0} only" +msgstr "" + +#: src/view/com/modals/EmbedConsent.tsx:97 +msgid "Enable External Media" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." msgstr "Aktivieren Sie diese Einstellung, um nur Antworten zwischen Personen zu sehen, denen Sie folgen." @@ -822,6 +834,20 @@ msgstr "Alle" msgid "Expand alt text" msgstr "Alt-Text erweitern" +#: src/view/com/modals/EmbedConsent.tsx:64 +msgid "External Media" +msgstr "" + +#: 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 "" + +#: src/view/screens/PreferencesExternalEmbeds.tsx:52 +#: src/view/screens/Settings.tsx:595 +msgid "External Media Preferences" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 msgid "Failed to load recommended feeds" @@ -1318,6 +1344,11 @@ msgstr "Meine gespeicherte Feeds " msgid "Name" msgstr "Namen" +#: 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/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." msgstr "Verlieren Sie nie den Zugriff auf Ihre Follower und Daten." @@ -1389,6 +1420,10 @@ msgstr "Keine Ergebnisse gefunden für \"{query}\"" msgid "No results found for {query}" msgstr "Keine Ergebnisse gefunden für {query}" +#: src/view/com/modals/EmbedConsent.tsx:129 +msgid "No thanks" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:82 msgid "Nobody" msgstr "Niemand" @@ -1443,6 +1478,10 @@ msgstr "Offene Navigation" msgid "Opens configurable language settings" msgstr "Öffnet die konfigurierbaren Spracheinstellungen" +#: src/view/screens/Settings.tsx:587 +msgid "Opens external embeds settings" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" @@ -1460,7 +1499,7 @@ msgstr "Öffnet die Moderationseinstellungen" msgid "Opens screen with all saved feeds" msgstr "Öffnet den Bildschirm mit allen gespeicherten Feeds" -#: src/view/screens/Settings.tsx:581 +#: src/view/screens/Settings.tsx:614 msgid "Opens the app password settings page" msgstr "Öffnet die Einstellungsseite für das App-Passwort" @@ -1468,11 +1507,11 @@ msgstr "Öffnet die Einstellungsseite für das App-Passwort" msgid "Opens the home feed preferences" msgstr "Öffnet die Homefeed-Einstellungen" -#: src/view/screens/Settings.tsx:664 +#: src/view/screens/Settings.tsx:697 msgid "Opens the storybook page" msgstr "Öffnet die Märchenbuchseite" -#: src/view/screens/Settings.tsx:644 +#: src/view/screens/Settings.tsx:677 msgid "Opens the system log page" msgstr "Öffnet die Systemprotokollseite" @@ -1525,6 +1564,19 @@ msgstr "Bilder, die für Erwachsene gedacht sind." msgid "Pinned Feeds" msgstr "Angepinnte Feeds" +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 +msgid "Play {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 +msgid "Play Video" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 +msgid "Plays the GIF" +msgstr "" + #: src/view/com/auth/create/state.ts:116 msgid "Please choose your handle." msgstr "Bitte wählen Sie Ihren Handgriff." @@ -1605,12 +1657,13 @@ msgstr "Primäre Sprache" msgid "Prioritize Your Follows" msgstr "Priorisieren Sie Ihre Anhängerschaft" +#: src/view/screens/Settings.tsx:570 #: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "Privatsphäre" #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:783 #: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "Datenschutzbestimmungen" @@ -1627,7 +1680,7 @@ msgstr "Verarbeitung..." msgid "Profile" msgstr "Profile" -#: src/view/screens/Settings.tsx:808 +#: src/view/screens/Settings.tsx:841 msgid "Protect your account by verifying your email." msgstr "Schützen Sie Ihr Konto, indem Sie Ihre E-Mail verifizieren." @@ -1774,7 +1827,7 @@ msgstr "Für diesen Anbieter erforderlich" msgid "Reset code" msgstr "Code zurücksetzen" -#: src/view/screens/Settings.tsx:686 +#: src/view/screens/Settings.tsx:719 msgid "Reset onboarding state" msgstr "Onboarding-Status zurücksetzen" @@ -1782,15 +1835,15 @@ msgstr "Onboarding-Status zurücksetzen" msgid "Reset password" msgstr "Passwort zurücksetzen" -#: src/view/screens/Settings.tsx:676 +#: src/view/screens/Settings.tsx:709 msgid "Reset preferences state" msgstr "Einstellungen zurücksetzen" -#: src/view/screens/Settings.tsx:684 +#: src/view/screens/Settings.tsx:717 msgid "Resets the onboarding state" msgstr "Onboarding-Status zurücksetzen" -#: src/view/screens/Settings.tsx:674 +#: src/view/screens/Settings.tsx:707 msgid "Resets the preferences state" msgstr "Setzt den Zustand der Einstellungen zurück" @@ -1957,6 +2010,10 @@ msgstr "Zeigen" msgid "Show anyway" msgstr "Trotzdem anzeigen" +#: src/view/com/modals/EmbedConsent.tsx:87 +msgid "Show embeds from {0}" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "Beiträge von My Feeds anzeigen" @@ -2064,11 +2121,11 @@ msgstr "Platz" msgid "Staging" msgstr "Aufführung" -#: src/view/screens/Settings.tsx:730 +#: src/view/screens/Settings.tsx:763 msgid "Status page" msgstr "Status-Seite" -#: src/view/screens/Settings.tsx:666 +#: src/view/screens/Settings.tsx:699 msgid "Storybook" msgstr "Märchenbuch" @@ -2097,7 +2154,7 @@ msgstr "Unterstützung" msgid "Switch Account" msgstr "Konto wechseln" -#: src/view/screens/Settings.tsx:646 +#: src/view/screens/Settings.tsx:679 msgid "System log" msgstr "System-Protokoll" @@ -2109,7 +2166,7 @@ msgstr "Groß" msgid "Terms" msgstr "Bedingungen" -#: src/view/screens/Settings.tsx:744 +#: src/view/screens/Settings.tsx:777 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" @@ -2164,6 +2221,10 @@ msgstr "Diese {screenDescription} wurde markiert:" msgid "This account has requested that users sign in to view their profile." msgstr "Dieses Konto hat die Benutzer aufgefordert, sich anzumelden, um ihr Profil zu sehen." +#: 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/posts/FeedErrorMessage.tsx:107 msgid "This content is not viewable without a Bluesky account." msgstr "Dieser Inhalt kann ohne Bluesky-Konto nicht angezeigt werden." @@ -2328,15 +2389,15 @@ msgstr "Benutzer gefolgt von <0/>" msgid "Users in \"{0}\"" msgstr "Benutzer in \"{0}\"" -#: src/view/screens/Settings.tsx:769 +#: src/view/screens/Settings.tsx:802 msgid "Verify email" msgstr "E-Mail überprüfen" -#: src/view/screens/Settings.tsx:794 +#: src/view/screens/Settings.tsx:827 msgid "Verify my email" msgstr "E-Mail überprüfen" -#: src/view/screens/Settings.tsx:803 +#: src/view/screens/Settings.tsx:836 msgid "Verify My Email" msgstr "E-Mail überprüfen" diff --git a/src/locale/locales/en/messages.po b/src/locale/locales/en/messages.po index 4cb4554ac7..3e2b776fae 100644 --- a/src/locale/locales/en/messages.po +++ b/src/locale/locales/en/messages.po @@ -164,7 +164,7 @@ msgstr "" msgid "Adult Content" msgstr "" -#: src/view/screens/Settings.tsx:569 +#: src/view/screens/Settings.tsx:602 msgid "Advanced" msgstr "" @@ -197,7 +197,7 @@ msgstr "" msgid "App Language" msgstr "" -#: src/view/screens/Settings.tsx:589 +#: src/view/screens/Settings.tsx:622 msgid "App passwords" msgstr "" @@ -356,7 +356,7 @@ msgstr "" msgid "Bluesky.Social" msgstr "" -#: src/view/screens/Settings.tsx:718 +#: src/view/screens/Settings.tsx:751 msgid "Build version {0} {1}" msgstr "" @@ -431,8 +431,8 @@ msgstr "" msgid "Change" msgstr "" -#: src/view/screens/Settings.tsx:601 -#: src/view/screens/Settings.tsx:610 +#: src/view/screens/Settings.tsx:634 +#: src/view/screens/Settings.tsx:643 msgid "Change handle" msgstr "" @@ -480,19 +480,19 @@ msgstr "" msgid "Choose your password" msgstr "" -#: src/view/screens/Settings.tsx:694 +#: src/view/screens/Settings.tsx:727 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings.tsx:696 +#: src/view/screens/Settings.tsx:729 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings.tsx:706 +#: src/view/screens/Settings.tsx:739 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings.tsx:708 +#: src/view/screens/Settings.tsx:741 msgid "Clear all storage data (restart after this)" msgstr "" @@ -648,7 +648,11 @@ msgstr "" msgid "Custom domain" msgstr "" -#: src/view/screens/Settings.tsx:615 +#: src/view/screens/PreferencesExternalEmbeds.tsx:55 +msgid "Customize media from external sites." +msgstr "" + +#: src/view/screens/Settings.tsx:648 msgid "Danger Zone" msgstr "" @@ -656,7 +660,7 @@ msgstr "" #~ msgid "Dark" #~ msgstr "" -#: src/view/screens/Settings.tsx:622 +#: src/view/screens/Settings.tsx:655 msgid "Delete account" msgstr "" @@ -678,7 +682,7 @@ msgstr "" msgid "Delete my account" msgstr "" -#: src/view/screens/Settings.tsx:632 +#: src/view/screens/Settings.tsx:665 msgid "Delete my account…" msgstr "" @@ -705,7 +709,7 @@ msgstr "" msgid "Dev Server" msgstr "" -#: src/view/screens/Settings.tsx:637 +#: src/view/screens/Settings.tsx:670 msgid "Developer Tools" msgstr "" @@ -814,6 +818,14 @@ msgstr "" msgid "Email:" msgstr "" +#: src/view/com/modals/EmbedConsent.tsx:113 +msgid "Enable {0} only" +msgstr "" + +#: src/view/com/modals/EmbedConsent.tsx:97 +msgid "Enable External Media" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." msgstr "" @@ -858,6 +870,20 @@ msgstr "" msgid "Expand alt text" msgstr "" +#: src/view/com/modals/EmbedConsent.tsx:64 +msgid "External Media" +msgstr "" + +#: 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 "" + +#: src/view/screens/PreferencesExternalEmbeds.tsx:52 +#: src/view/screens/Settings.tsx:595 +msgid "External Media Preferences" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 msgid "Failed to load recommended feeds" @@ -1395,6 +1421,11 @@ msgstr "" msgid "Name" 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/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." msgstr "" @@ -1471,6 +1502,10 @@ msgstr "" msgid "No results found for {query}" msgstr "" +#: src/view/com/modals/EmbedConsent.tsx:129 +msgid "No thanks" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:82 msgid "Nobody" msgstr "" @@ -1537,6 +1572,10 @@ msgstr "" msgid "Opens configurable language settings" msgstr "" +#: src/view/screens/Settings.tsx:587 +msgid "Opens external embeds settings" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" @@ -1554,7 +1593,7 @@ msgstr "" msgid "Opens screen with all saved feeds" msgstr "" -#: src/view/screens/Settings.tsx:581 +#: src/view/screens/Settings.tsx:614 msgid "Opens the app password settings page" msgstr "" @@ -1562,11 +1601,11 @@ msgstr "" msgid "Opens the home feed preferences" msgstr "" -#: src/view/screens/Settings.tsx:664 +#: src/view/screens/Settings.tsx:697 msgid "Opens the storybook page" msgstr "" -#: src/view/screens/Settings.tsx:644 +#: src/view/screens/Settings.tsx:677 msgid "Opens the system log page" msgstr "" @@ -1619,6 +1658,19 @@ msgstr "" msgid "Pinned Feeds" msgstr "" +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 +msgid "Play {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 +msgid "Play Video" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 +msgid "Plays the GIF" +msgstr "" + #: src/view/com/auth/create/state.ts:116 msgid "Please choose your handle." msgstr "" @@ -1699,12 +1751,13 @@ msgstr "" msgid "Prioritize Your Follows" msgstr "" +#: src/view/screens/Settings.tsx:570 #: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "" #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:783 #: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "" @@ -1721,7 +1774,7 @@ msgstr "" msgid "Profile" msgstr "" -#: src/view/screens/Settings.tsx:808 +#: src/view/screens/Settings.tsx:841 msgid "Protect your account by verifying your email." msgstr "" @@ -1877,7 +1930,7 @@ msgstr "" msgid "Reset code" msgstr "" -#: src/view/screens/Settings.tsx:686 +#: src/view/screens/Settings.tsx:719 msgid "Reset onboarding state" msgstr "" @@ -1885,15 +1938,15 @@ msgstr "" msgid "Reset password" msgstr "" -#: src/view/screens/Settings.tsx:676 +#: src/view/screens/Settings.tsx:709 msgid "Reset preferences state" msgstr "" -#: src/view/screens/Settings.tsx:684 +#: src/view/screens/Settings.tsx:717 msgid "Resets the onboarding state" msgstr "" -#: src/view/screens/Settings.tsx:674 +#: src/view/screens/Settings.tsx:707 msgid "Resets the preferences state" msgstr "" @@ -2076,6 +2129,10 @@ msgstr "" msgid "Show anyway" msgstr "" +#: src/view/com/modals/EmbedConsent.tsx:87 +msgid "Show embeds from {0}" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "" @@ -2183,11 +2240,11 @@ msgstr "" msgid "Staging" msgstr "" -#: src/view/screens/Settings.tsx:730 +#: src/view/screens/Settings.tsx:763 msgid "Status page" msgstr "" -#: src/view/screens/Settings.tsx:666 +#: src/view/screens/Settings.tsx:699 msgid "Storybook" msgstr "" @@ -2220,7 +2277,7 @@ msgstr "" #~ msgid "System" #~ msgstr "" -#: src/view/screens/Settings.tsx:646 +#: src/view/screens/Settings.tsx:679 msgid "System log" msgstr "" @@ -2232,7 +2289,7 @@ msgstr "" msgid "Terms" msgstr "" -#: src/view/screens/Settings.tsx:744 +#: src/view/screens/Settings.tsx:777 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" @@ -2287,6 +2344,10 @@ msgstr "" msgid "This account has requested that users sign in to view their profile." 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/posts/FeedErrorMessage.tsx:107 msgid "This content is not viewable without a Bluesky account." msgstr "" @@ -2455,15 +2516,15 @@ msgstr "" msgid "Users in \"{0}\"" msgstr "" -#: src/view/screens/Settings.tsx:769 +#: src/view/screens/Settings.tsx:802 msgid "Verify email" msgstr "" -#: src/view/screens/Settings.tsx:794 +#: src/view/screens/Settings.tsx:827 msgid "Verify my email" msgstr "" -#: src/view/screens/Settings.tsx:803 +#: src/view/screens/Settings.tsx:836 msgid "Verify My Email" msgstr "" diff --git a/src/locale/locales/es/messages.po b/src/locale/locales/es/messages.po index 9cea00365c..5ecee6966f 100644 --- a/src/locale/locales/es/messages.po +++ b/src/locale/locales/es/messages.po @@ -144,7 +144,7 @@ msgstr "Ajusta el número de Me gusta que debe tener una respuesta para que se m msgid "Adult Content" msgstr "Contenido para adultos" -#: src/view/screens/Settings.tsx:569 +#: src/view/screens/Settings.tsx:602 msgid "Advanced" msgstr "Avanzado" @@ -177,7 +177,7 @@ msgstr "y" msgid "App Language" msgstr "Lenguaje de app" -#: src/view/screens/Settings.tsx:589 +#: src/view/screens/Settings.tsx:622 msgid "App passwords" msgstr "Contraseñas de la app" @@ -324,7 +324,7 @@ msgstr "Bluesky no mostrará tu perfil ni tus publicaciones a los usuarios que h msgid "Bluesky.Social" msgstr "Bluesky.Social" -#: src/view/screens/Settings.tsx:718 +#: src/view/screens/Settings.tsx:751 msgid "Build version {0} {1}" msgstr "Versión {0} {1}" @@ -399,8 +399,8 @@ msgstr "Cancelar la inscripción en la lista de espera" msgid "Change" msgstr "Cambiar" -#: src/view/screens/Settings.tsx:601 -#: src/view/screens/Settings.tsx:610 +#: src/view/screens/Settings.tsx:634 +#: src/view/screens/Settings.tsx:643 msgid "Change handle" msgstr "Cambiar el identificador" @@ -444,19 +444,19 @@ msgstr "Elige los algoritmos que potencian tu experiencia con publicaciones pers msgid "Choose your password" msgstr "Elige tu contraseña" -#: src/view/screens/Settings.tsx:694 +#: src/view/screens/Settings.tsx:727 msgid "Clear all legacy storage data" msgstr "Borrar todos los datos de almacenamiento heredados" -#: src/view/screens/Settings.tsx:696 +#: src/view/screens/Settings.tsx:729 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.tsx:706 +#: src/view/screens/Settings.tsx:739 msgid "Clear all storage data" msgstr "Borrar todos los datos de almacenamiento" -#: src/view/screens/Settings.tsx:708 +#: src/view/screens/Settings.tsx:741 msgid "Clear all storage data (restart after this)" msgstr "Borrar todos los datos de almacenamiento (reiniciar después de esto)" @@ -612,11 +612,15 @@ msgstr "Creado {0}" msgid "Custom domain" msgstr "Dominio personalizado" -#: src/view/screens/Settings.tsx:615 +#: src/view/screens/PreferencesExternalEmbeds.tsx:55 +msgid "Customize media from external sites." +msgstr "" + +#: src/view/screens/Settings.tsx:648 msgid "Danger Zone" msgstr "Zona de peligro" -#: src/view/screens/Settings.tsx:622 +#: src/view/screens/Settings.tsx:655 msgid "Delete account" msgstr "Borrar la cuenta" @@ -638,7 +642,7 @@ msgstr "Borrar la lista" msgid "Delete my account" msgstr "Borrar mi cuenta" -#: src/view/screens/Settings.tsx:632 +#: src/view/screens/Settings.tsx:665 msgid "Delete my account…" msgstr "Borrar mi cuenta..." @@ -665,7 +669,7 @@ msgstr "Descripción" msgid "Dev Server" msgstr "Servidor de desarrollo" -#: src/view/screens/Settings.tsx:637 +#: src/view/screens/Settings.tsx:670 msgid "Developer Tools" msgstr "Herramientas de desarrollador" @@ -774,6 +778,14 @@ msgstr "Correo electrónico actualizado" msgid "Email:" msgstr "Correo electrónico:" +#: src/view/com/modals/EmbedConsent.tsx:113 +msgid "Enable {0} only" +msgstr "" + +#: src/view/com/modals/EmbedConsent.tsx:97 +msgid "Enable External Media" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:144 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." @@ -818,6 +830,20 @@ msgstr "Todos" msgid "Expand alt text" msgstr "Expandir el texto alt" +#: src/view/com/modals/EmbedConsent.tsx:64 +msgid "External Media" +msgstr "" + +#: 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 "" + +#: src/view/screens/PreferencesExternalEmbeds.tsx:52 +#: src/view/screens/Settings.tsx:595 +msgid "External Media Preferences" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 msgid "Failed to load recommended feeds" @@ -1310,6 +1336,11 @@ msgstr "Mis canales de noticias guardados" msgid "Name" msgstr "Nombre" +#: 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/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." msgstr "No pierdas nunca el acceso a tus seguidores y datos." @@ -1381,6 +1412,10 @@ msgstr "No se han encontrado resultados para \"{query}\"" msgid "No results found for {query}" msgstr "No se han encontrado resultados para {query}" +#: src/view/com/modals/EmbedConsent.tsx:129 +msgid "No thanks" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:82 msgid "Nobody" msgstr "Nadie" @@ -1435,6 +1470,10 @@ msgstr "Abrir navegación" msgid "Opens configurable language settings" msgstr "Abrir la configuración del idioma que se puede ajustar" +#: src/view/screens/Settings.tsx:587 +msgid "Opens external embeds settings" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" @@ -1452,7 +1491,7 @@ msgstr "Abre la configuración de moderación" msgid "Opens screen with all saved feeds" msgstr "Abre la pantalla con todas las noticias guardadas" -#: src/view/screens/Settings.tsx:581 +#: src/view/screens/Settings.tsx:614 msgid "Opens the app password settings page" msgstr "Abre la página de configuración de la contraseña de la app" @@ -1460,11 +1499,11 @@ msgstr "Abre la página de configuración de la contraseña de la app" msgid "Opens the home feed preferences" msgstr "Abre las preferencias de noticias de la página inicial" -#: src/view/screens/Settings.tsx:664 +#: src/view/screens/Settings.tsx:697 msgid "Opens the storybook page" msgstr "Abre la página del libro de cuentos" -#: src/view/screens/Settings.tsx:644 +#: src/view/screens/Settings.tsx:677 msgid "Opens the system log page" msgstr "Abre la página de la bitácora del sistema" @@ -1517,6 +1556,19 @@ msgstr "Imágenes destinadas a adultos." msgid "Pinned Feeds" msgstr "Canales de noticias anclados" +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 +msgid "Play {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 +msgid "Play Video" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 +msgid "Plays the GIF" +msgstr "" + #: src/view/com/auth/create/state.ts:116 msgid "Please choose your handle." msgstr "Por favor, elige tu identificador." @@ -1592,12 +1644,13 @@ msgstr "Lenguajes primarios" msgid "Prioritize Your Follows" msgstr "Priorizar los usuarios a los que sigue" +#: src/view/screens/Settings.tsx:570 #: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "Privacidad" #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:783 #: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "Política de privacidad" @@ -1614,7 +1667,7 @@ msgstr "Procesando..." msgid "Profile" msgstr "Perfil" -#: src/view/screens/Settings.tsx:808 +#: src/view/screens/Settings.tsx:841 msgid "Protect your account by verifying your email." msgstr "Protege tu cuenta verificando tu correo electrónico." @@ -1761,7 +1814,7 @@ msgstr "Requerido para este proveedor" msgid "Reset code" msgstr "Restablecer el código" -#: src/view/screens/Settings.tsx:686 +#: src/view/screens/Settings.tsx:719 msgid "Reset onboarding state" msgstr "Restablecer el estado de incorporación" @@ -1769,15 +1822,15 @@ msgstr "Restablecer el estado de incorporación" msgid "Reset password" msgstr "Restablecer la contraseña" -#: src/view/screens/Settings.tsx:676 +#: src/view/screens/Settings.tsx:709 msgid "Reset preferences state" msgstr "Restablecer el estado de preferencias" -#: src/view/screens/Settings.tsx:684 +#: src/view/screens/Settings.tsx:717 msgid "Resets the onboarding state" msgstr "Restablece el estado de incorporación" -#: src/view/screens/Settings.tsx:674 +#: src/view/screens/Settings.tsx:707 msgid "Resets the preferences state" msgstr "Restablecer el estado de preferencias" @@ -1944,6 +1997,10 @@ msgstr "Mostrar" msgid "Show anyway" msgstr "Mostrar de todas maneras" +#: src/view/com/modals/EmbedConsent.tsx:87 +msgid "Show embeds from {0}" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "Mostrar publicaciones de mis noticias" @@ -2051,11 +2108,11 @@ msgstr "Cuadrado" msgid "Staging" msgstr "Puesta en escena" -#: src/view/screens/Settings.tsx:730 +#: src/view/screens/Settings.tsx:763 msgid "Status page" msgstr "Página de estado" -#: src/view/screens/Settings.tsx:666 +#: src/view/screens/Settings.tsx:699 msgid "Storybook" msgstr "Libro de cuentos" @@ -2084,7 +2141,7 @@ msgstr "Soporte" msgid "Switch Account" msgstr "Cambiar a otra cuenta" -#: src/view/screens/Settings.tsx:646 +#: src/view/screens/Settings.tsx:679 msgid "System log" msgstr "Bitácora del sistema" @@ -2096,7 +2153,7 @@ msgstr "Alto" msgid "Terms" msgstr "Condiciones" -#: src/view/screens/Settings.tsx:744 +#: src/view/screens/Settings.tsx:777 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" @@ -2147,6 +2204,10 @@ msgstr "Esta {screenDescription} ha sido marcada:" 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/view/com/modals/EmbedConsent.tsx:68 +msgid "This content is hosted by {0}. Do you want to enable external media?" +msgstr "" + #: src/view/com/posts/FeedErrorMessage.tsx:107 msgid "This content is not viewable without a Bluesky account." msgstr "Este contenido no se puede ver sin una cuenta Bluesky." @@ -2311,15 +2372,15 @@ msgstr "usuarios seguidos por <0/>" msgid "Users in \"{0}\"" msgstr "Usuarios en «{0}»" -#: src/view/screens/Settings.tsx:769 +#: src/view/screens/Settings.tsx:802 msgid "Verify email" msgstr "Verificar el correo electrónico" -#: src/view/screens/Settings.tsx:794 +#: src/view/screens/Settings.tsx:827 msgid "Verify my email" msgstr "Verificar mi correo electrónico" -#: src/view/screens/Settings.tsx:803 +#: src/view/screens/Settings.tsx:836 msgid "Verify My Email" msgstr "Verificar mi correo electrónico" diff --git a/src/locale/locales/fr/messages.po b/src/locale/locales/fr/messages.po index c4f30087fc..21e8904a65 100644 --- a/src/locale/locales/fr/messages.po +++ b/src/locale/locales/fr/messages.po @@ -144,7 +144,7 @@ msgstr "Définissez le nombre de likes qu’une réponse doit avoir pour être a msgid "Adult Content" msgstr "Contenu pour adultes" -#: src/view/screens/Settings.tsx:569 +#: src/view/screens/Settings.tsx:602 msgid "Advanced" msgstr "Avancé" @@ -177,7 +177,7 @@ msgstr "et" msgid "App Language" msgstr "Langue de l’application" -#: src/view/screens/Settings.tsx:589 +#: src/view/screens/Settings.tsx:622 msgid "App passwords" msgstr "Mots de passe d’application" @@ -327,7 +327,7 @@ msgstr "Bluesky n’affichera pas votre profil et vos messages à des utilisateu msgid "Bluesky.Social" msgstr "Bluesky.Social" -#: src/view/screens/Settings.tsx:718 +#: src/view/screens/Settings.tsx:751 msgid "Build version {0} {1}" msgstr "Version Build {0} {1}" @@ -402,8 +402,8 @@ msgstr "Annuler l’inscription sur la liste d’attente" msgid "Change" msgstr "Changer" -#: src/view/screens/Settings.tsx:601 -#: src/view/screens/Settings.tsx:610 +#: src/view/screens/Settings.tsx:634 +#: src/view/screens/Settings.tsx:643 msgid "Change handle" msgstr "Changer le pseudo" @@ -447,19 +447,19 @@ msgstr "Choisissez les algorithmes qui alimentent votre expérience avec des fil msgid "Choose your password" msgstr "Choisissez votre mot de passe" -#: src/view/screens/Settings.tsx:694 +#: src/view/screens/Settings.tsx:727 msgid "Clear all legacy storage data" msgstr "Effacer toutes les données de stockage existantes" -#: src/view/screens/Settings.tsx:696 +#: src/view/screens/Settings.tsx:729 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.tsx:706 +#: src/view/screens/Settings.tsx:739 msgid "Clear all storage data" msgstr "Effacer toutes les données de stockage" -#: src/view/screens/Settings.tsx:708 +#: src/view/screens/Settings.tsx:741 msgid "Clear all storage data (restart after this)" msgstr "Effacer toutes les données de stockage (redémarrer ensuite)" @@ -615,11 +615,15 @@ msgstr "{0} créé" msgid "Custom domain" msgstr "Domaine personnalisé" -#: src/view/screens/Settings.tsx:615 +#: src/view/screens/PreferencesExternalEmbeds.tsx:55 +msgid "Customize media from external sites." +msgstr "" + +#: src/view/screens/Settings.tsx:648 msgid "Danger Zone" msgstr "Zone de danger" -#: src/view/screens/Settings.tsx:622 +#: src/view/screens/Settings.tsx:655 msgid "Delete account" msgstr "Supprimer le compte" @@ -641,7 +645,7 @@ msgstr "Supprimer la liste" msgid "Delete my account" msgstr "Supprimer mon compte" -#: src/view/screens/Settings.tsx:632 +#: src/view/screens/Settings.tsx:665 msgid "Delete my account…" msgstr "Supprimer mon compte…" @@ -668,7 +672,7 @@ msgstr "Description" msgid "Dev Server" msgstr "Serveur de dév" -#: src/view/screens/Settings.tsx:637 +#: src/view/screens/Settings.tsx:670 msgid "Developer Tools" msgstr "Outils de dév" @@ -777,6 +781,14 @@ msgstr "E-mail mis à jour" msgid "Email:" msgstr "E-mail :" +#: src/view/com/modals/EmbedConsent.tsx:113 +msgid "Enable {0} only" +msgstr "" + +#: src/view/com/modals/EmbedConsent.tsx:97 +msgid "Enable External Media" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:144 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." @@ -821,6 +833,20 @@ msgstr "Tout le monde" msgid "Expand alt text" msgstr "Développer le texte alt" +#: src/view/com/modals/EmbedConsent.tsx:64 +msgid "External Media" +msgstr "" + +#: 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 "" + +#: src/view/screens/PreferencesExternalEmbeds.tsx:52 +#: src/view/screens/Settings.tsx:595 +msgid "External Media Preferences" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 msgid "Failed to load recommended feeds" @@ -1313,6 +1339,11 @@ msgstr "Mes fils d’actu enregistrés" msgid "Name" msgstr "Nom" +#: 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/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." msgstr "Ne perdez jamais l’accès à vos followers et à vos données." @@ -1384,6 +1415,10 @@ msgstr "Aucun résultat trouvé pour « {query} »" msgid "No results found for {query}" msgstr "Aucun résultat trouvé pour {query}" +#: src/view/com/modals/EmbedConsent.tsx:129 +msgid "No thanks" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:82 msgid "Nobody" msgstr "Personne" @@ -1438,6 +1473,10 @@ msgstr "Navigation ouverte" msgid "Opens configurable language settings" msgstr "Ouvre les paramètres linguistiques configurables" +#: src/view/screens/Settings.tsx:587 +msgid "Opens external embeds settings" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" @@ -1455,7 +1494,7 @@ msgstr "Ouvre les paramètres de modération" msgid "Opens screen with all saved feeds" msgstr "Ouvre l’écran avec tous les fils d’actu enregistrés" -#: src/view/screens/Settings.tsx:581 +#: src/view/screens/Settings.tsx:614 msgid "Opens the app password settings page" msgstr "Ouvre la page de configuration du mot de passe" @@ -1463,11 +1502,11 @@ msgstr "Ouvre la page de configuration du mot de passe" msgid "Opens the home feed preferences" msgstr "Ouvre les préférences du fil d’accueil" -#: src/view/screens/Settings.tsx:664 +#: src/view/screens/Settings.tsx:697 msgid "Opens the storybook page" msgstr "Ouvre la page de l’historique" -#: src/view/screens/Settings.tsx:644 +#: src/view/screens/Settings.tsx:677 msgid "Opens the system log page" msgstr "Ouvre la page du journal système" @@ -1520,6 +1559,19 @@ msgstr "Images destinées aux adultes." msgid "Pinned Feeds" msgstr "Fils épinglés" +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 +msgid "Play {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 +msgid "Play Video" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 +msgid "Plays the GIF" +msgstr "" + #: src/view/com/auth/create/state.ts:116 msgid "Please choose your handle." msgstr "Veuillez choisir votre pseudo." @@ -1598,12 +1650,13 @@ msgstr "Langue principale" msgid "Prioritize Your Follows" msgstr "Définissez des priorités de vos suivis" +#: src/view/screens/Settings.tsx:570 #: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "Vie privée" #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:783 #: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "Charte de confidentialité" @@ -1620,7 +1673,7 @@ msgstr "Traitement…" msgid "Profile" msgstr "Profil" -#: src/view/screens/Settings.tsx:808 +#: src/view/screens/Settings.tsx:841 msgid "Protect your account by verifying your email." msgstr "Protégez votre compte en vérifiant votre e-mail." @@ -1767,7 +1820,7 @@ msgstr "Obligatoire pour ce fournisseur" msgid "Reset code" msgstr "Réinitialiser le code" -#: src/view/screens/Settings.tsx:686 +#: src/view/screens/Settings.tsx:719 msgid "Reset onboarding state" msgstr "Réinitialisation de l’état d’accueil" @@ -1775,15 +1828,15 @@ msgstr "Réinitialisation de l’état d’accueil" msgid "Reset password" msgstr "Réinitialiser mot de passe" -#: src/view/screens/Settings.tsx:676 +#: src/view/screens/Settings.tsx:709 msgid "Reset preferences state" msgstr "Réinitialiser l’état des préférences" -#: src/view/screens/Settings.tsx:684 +#: src/view/screens/Settings.tsx:717 msgid "Resets the onboarding state" msgstr "Réinitialise l’état d’accueil" -#: src/view/screens/Settings.tsx:674 +#: src/view/screens/Settings.tsx:707 msgid "Resets the preferences state" msgstr "Réinitialise l’état des préférences" @@ -1950,6 +2003,10 @@ msgstr "Afficher" msgid "Show anyway" msgstr "Afficher quand même" +#: src/view/com/modals/EmbedConsent.tsx:87 +msgid "Show embeds from {0}" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "Afficher les posts de mes fils d’actu" @@ -2057,11 +2114,11 @@ msgstr "Carré" msgid "Staging" msgstr "Mise en scène" -#: src/view/screens/Settings.tsx:730 +#: src/view/screens/Settings.tsx:763 msgid "Status page" msgstr "Page de statut" -#: src/view/screens/Settings.tsx:666 +#: src/view/screens/Settings.tsx:699 msgid "Storybook" msgstr "Historique" @@ -2090,7 +2147,7 @@ msgstr "Soutien" msgid "Switch Account" msgstr "Changer de compte" -#: src/view/screens/Settings.tsx:646 +#: src/view/screens/Settings.tsx:679 msgid "System log" msgstr "Journal système" @@ -2102,7 +2159,7 @@ msgstr "Grand" msgid "Terms" msgstr "Conditions générales" -#: src/view/screens/Settings.tsx:744 +#: src/view/screens/Settings.tsx:777 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" @@ -2156,6 +2213,10 @@ msgstr "Ce {screenDescription} a été signalé :" msgid "This account has requested that users sign in to view their profile." msgstr "Ce compte a demandé aux utilisateurs de s’identifier pour voir son profil." +#: 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/posts/FeedErrorMessage.tsx:107 msgid "This content is not viewable without a Bluesky account." msgstr "Ce contenu n’est pas visible sans un compte Bluesky." @@ -2320,15 +2381,15 @@ msgstr "utilisateurs suivis par <0/>" msgid "Users in \"{0}\"" msgstr "Utilisateurs dans « {0} »" -#: src/view/screens/Settings.tsx:769 +#: src/view/screens/Settings.tsx:802 msgid "Verify email" msgstr "Confirmer l’e-mail" -#: src/view/screens/Settings.tsx:794 +#: src/view/screens/Settings.tsx:827 msgid "Verify my email" msgstr "Confirmer mon e-mail" -#: src/view/screens/Settings.tsx:803 +#: src/view/screens/Settings.tsx:836 msgid "Verify My Email" msgstr "Confirmer mon e-mail" diff --git a/src/locale/locales/hi/messages.po b/src/locale/locales/hi/messages.po index 2f2244d52e..793175dea6 100644 --- a/src/locale/locales/hi/messages.po +++ b/src/locale/locales/hi/messages.po @@ -164,7 +164,7 @@ msgstr "पसंद की संख्या को समायोजित msgid "Adult Content" msgstr "वयस्क सामग्री" -#: src/view/screens/Settings.tsx:569 +#: src/view/screens/Settings.tsx:602 msgid "Advanced" msgstr "विकसित" @@ -197,7 +197,7 @@ msgstr "और" msgid "App Language" msgstr "ऐप भाषा" -#: src/view/screens/Settings.tsx:589 +#: src/view/screens/Settings.tsx:622 msgid "App passwords" msgstr "ऐप पासवर्ड" @@ -356,7 +356,7 @@ msgstr "" msgid "Bluesky.Social" msgstr "Bluesky.Social" -#: src/view/screens/Settings.tsx:718 +#: src/view/screens/Settings.tsx:751 msgid "Build version {0} {1}" msgstr "Build version {0} {1}" @@ -431,8 +431,8 @@ msgstr "प्रतीक्षा सूची पंजीकरण मत msgid "Change" msgstr "परिवर्तन" -#: src/view/screens/Settings.tsx:601 -#: src/view/screens/Settings.tsx:610 +#: src/view/screens/Settings.tsx:634 +#: src/view/screens/Settings.tsx:643 msgid "Change handle" msgstr "हैंडल बदलें" @@ -476,19 +476,19 @@ msgstr "उन एल्गोरिदम का चयन करें जो msgid "Choose your password" msgstr "अपना पासवर्ड चुनें" -#: src/view/screens/Settings.tsx:694 +#: src/view/screens/Settings.tsx:727 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings.tsx:696 +#: src/view/screens/Settings.tsx:729 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings.tsx:706 +#: src/view/screens/Settings.tsx:739 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings.tsx:708 +#: src/view/screens/Settings.tsx:741 msgid "Clear all storage data (restart after this)" msgstr "" @@ -644,7 +644,11 @@ msgstr "बनाया गया {0}" msgid "Custom domain" msgstr "कस्टम डोमेन" -#: src/view/screens/Settings.tsx:615 +#: src/view/screens/PreferencesExternalEmbeds.tsx:55 +msgid "Customize media from external sites." +msgstr "" + +#: src/view/screens/Settings.tsx:648 msgid "Danger Zone" msgstr "खतरा क्षेत्र" @@ -652,7 +656,7 @@ msgstr "खतरा क्षेत्र" #~ msgid "Dark" #~ msgstr "डार्क मोड" -#: src/view/screens/Settings.tsx:622 +#: src/view/screens/Settings.tsx:655 msgid "Delete account" msgstr "खाता हटाएं" @@ -674,7 +678,7 @@ msgstr "सूची हटाएँ" msgid "Delete my account" msgstr "मेरा खाता हटाएं" -#: src/view/screens/Settings.tsx:632 +#: src/view/screens/Settings.tsx:665 msgid "Delete my account…" msgstr "मेरा खाता हटाएं…" @@ -701,7 +705,7 @@ msgstr "विवरण" msgid "Dev Server" msgstr "देव सर्वर" -#: src/view/screens/Settings.tsx:637 +#: src/view/screens/Settings.tsx:670 msgid "Developer Tools" msgstr "डेवलपर उपकरण" @@ -810,6 +814,14 @@ msgstr "ईमेल अपडेट किया गया" msgid "Email:" msgstr "ईमेल:" +#: src/view/com/modals/EmbedConsent.tsx:113 +msgid "Enable {0} only" +msgstr "" + +#: src/view/com/modals/EmbedConsent.tsx:97 +msgid "Enable External Media" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." msgstr "इस सेटिंग को केवल उन लोगों के बीच जवाब देखने में सक्षम करें जिन्हें आप फॉलो करते हैं।।" @@ -854,6 +866,20 @@ msgstr "" msgid "Expand alt text" msgstr "ऑल्ट टेक्स्ट" +#: src/view/com/modals/EmbedConsent.tsx:64 +msgid "External Media" +msgstr "" + +#: 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 "" + +#: src/view/screens/PreferencesExternalEmbeds.tsx:52 +#: src/view/screens/Settings.tsx:595 +msgid "External Media Preferences" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 msgid "Failed to load recommended feeds" @@ -1387,6 +1413,11 @@ msgstr "मेरी फ़ीड" msgid "Name" 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/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." msgstr "अपने फ़ॉलोअर्स और डेटा तक पहुंच कभी न खोएं।" @@ -1463,6 +1494,10 @@ msgstr "\"{query}\" के लिए कोई परिणाम नहीं msgid "No results found for {query}" msgstr "" +#: src/view/com/modals/EmbedConsent.tsx:129 +msgid "No thanks" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:82 msgid "Nobody" msgstr "" @@ -1529,6 +1564,10 @@ msgstr "ओपन नेविगेशन" msgid "Opens configurable language settings" msgstr "भाषा सेटिंग्स खोलें" +#: src/view/screens/Settings.tsx:587 +msgid "Opens external embeds settings" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" @@ -1546,7 +1585,7 @@ msgstr "मॉडरेशन सेटिंग्स खोलें" msgid "Opens screen with all saved feeds" msgstr "सभी बचाया फ़ीड के साथ स्क्रीन खोलें" -#: src/view/screens/Settings.tsx:581 +#: src/view/screens/Settings.tsx:614 msgid "Opens the app password settings page" msgstr "ऐप पासवर्ड सेटिंग पेज खोलें" @@ -1554,11 +1593,11 @@ msgstr "ऐप पासवर्ड सेटिंग पेज खोले msgid "Opens the home feed preferences" msgstr "होम फीड वरीयताओं को खोलता है" -#: src/view/screens/Settings.tsx:664 +#: src/view/screens/Settings.tsx:697 msgid "Opens the storybook page" msgstr "स्टोरीबुक पेज खोलें" -#: src/view/screens/Settings.tsx:644 +#: src/view/screens/Settings.tsx:677 msgid "Opens the system log page" msgstr "सिस्टम लॉग पेज खोलें" @@ -1611,6 +1650,19 @@ msgstr "चित्र वयस्कों के लिए थे।।" msgid "Pinned Feeds" msgstr "पिन किया गया फ़ीड" +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 +msgid "Play {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 +msgid "Play Video" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 +msgid "Plays the GIF" +msgstr "" + #: src/view/com/auth/create/state.ts:116 msgid "Please choose your handle." msgstr "" @@ -1691,12 +1743,13 @@ msgstr "प्राथमिक भाषा" msgid "Prioritize Your Follows" msgstr "अपने फ़ॉलोअर्स को प्राथमिकता दें" +#: src/view/screens/Settings.tsx:570 #: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "गोपनीयता" #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:783 #: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "गोपनीयता नीति" @@ -1713,7 +1766,7 @@ msgstr "प्रसंस्करण..." msgid "Profile" msgstr "प्रोफ़ाइल" -#: src/view/screens/Settings.tsx:808 +#: src/view/screens/Settings.tsx:841 msgid "Protect your account by verifying your email." msgstr "अपने ईमेल को सत्यापित करके अपने खाते को सुरक्षित रखें।।" @@ -1869,7 +1922,7 @@ msgstr "इस प्रदाता के लिए आवश्यक" msgid "Reset code" msgstr "कोड रीसेट करें" -#: src/view/screens/Settings.tsx:686 +#: src/view/screens/Settings.tsx:719 msgid "Reset onboarding state" msgstr "ऑनबोर्डिंग स्टेट को रीसेट करें" @@ -1877,15 +1930,15 @@ msgstr "ऑनबोर्डिंग स्टेट को रीसेट msgid "Reset password" msgstr "पासवर्ड रीसेट" -#: src/view/screens/Settings.tsx:676 +#: src/view/screens/Settings.tsx:709 msgid "Reset preferences state" msgstr "प्राथमिकताओं को रीसेट करें" -#: src/view/screens/Settings.tsx:684 +#: src/view/screens/Settings.tsx:717 msgid "Resets the onboarding state" msgstr "ऑनबोर्डिंग स्टेट को रीसेट करें" -#: src/view/screens/Settings.tsx:674 +#: src/view/screens/Settings.tsx:707 msgid "Resets the preferences state" msgstr "प्राथमिकताओं की स्थिति को रीसेट करें" @@ -2068,6 +2121,10 @@ msgstr "दिखाओ" msgid "Show anyway" msgstr "दिखाओ" +#: src/view/com/modals/EmbedConsent.tsx:87 +msgid "Show embeds from {0}" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "मेरी फीड से पोस्ट दिखाएं" @@ -2175,11 +2232,11 @@ msgstr "स्क्वायर" msgid "Staging" msgstr "स्टेजिंग" -#: src/view/screens/Settings.tsx:730 +#: src/view/screens/Settings.tsx:763 msgid "Status page" msgstr "स्थिति पृष्ठ" -#: src/view/screens/Settings.tsx:666 +#: src/view/screens/Settings.tsx:699 msgid "Storybook" msgstr "Storybook" @@ -2212,7 +2269,7 @@ msgstr "खाते बदलें" #~ msgid "System" #~ msgstr "प्रणाली" -#: src/view/screens/Settings.tsx:646 +#: src/view/screens/Settings.tsx:679 msgid "System log" msgstr "सिस्टम लॉग" @@ -2224,7 +2281,7 @@ msgstr "लंबा" msgid "Terms" msgstr "शर्तें" -#: src/view/screens/Settings.tsx:744 +#: src/view/screens/Settings.tsx:777 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" @@ -2279,6 +2336,10 @@ msgstr "यह {screenDescription} फ्लैग किया गया है msgid "This account has requested that users sign in to view their profile." 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/posts/FeedErrorMessage.tsx:107 msgid "This content is not viewable without a Bluesky account." msgstr "" @@ -2447,15 +2508,15 @@ msgstr "" msgid "Users in \"{0}\"" msgstr "" -#: src/view/screens/Settings.tsx:769 +#: src/view/screens/Settings.tsx:802 msgid "Verify email" msgstr "ईमेल सत्यापित करें" -#: src/view/screens/Settings.tsx:794 +#: src/view/screens/Settings.tsx:827 msgid "Verify my email" msgstr "मेरी ईमेल सत्यापित करें" -#: src/view/screens/Settings.tsx:803 +#: src/view/screens/Settings.tsx:836 msgid "Verify My Email" msgstr "मेरी ईमेल सत्यापित करें" diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index 5b9f58061e..3a9743e1a5 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -144,7 +144,7 @@ msgstr "返信がフィードに表示されるために必要な「いいね」 msgid "Adult Content" msgstr "成人向けコンテンツ" -#: src/view/screens/Settings.tsx:569 +#: src/view/screens/Settings.tsx:602 msgid "Advanced" msgstr "高度な設定" @@ -177,7 +177,7 @@ msgstr "および" msgid "App Language" msgstr "アプリの言語" -#: src/view/screens/Settings.tsx:589 +#: src/view/screens/Settings.tsx:622 msgid "App passwords" msgstr "アプリパスワード" @@ -328,7 +328,7 @@ msgstr "Blueskyはログアウトしたユーザーにあなたのプロフィ msgid "Bluesky.Social" msgstr "Bluesky.Social" -#: src/view/screens/Settings.tsx:718 +#: src/view/screens/Settings.tsx:751 msgid "Build version {0} {1}" msgstr "ビルドバージョン {0} {1}" @@ -403,8 +403,8 @@ msgstr "Waitlistの登録をキャンセル" msgid "Change" msgstr "変更" -#: src/view/screens/Settings.tsx:601 -#: src/view/screens/Settings.tsx:610 +#: src/view/screens/Settings.tsx:634 +#: src/view/screens/Settings.tsx:643 msgid "Change handle" msgstr "ハンドルを変更" @@ -448,19 +448,19 @@ msgstr "カスタムフィードを使用してあなたの体験を強化する msgid "Choose your password" msgstr "パスワードを選択" -#: src/view/screens/Settings.tsx:694 +#: src/view/screens/Settings.tsx:727 msgid "Clear all legacy storage data" msgstr "レガシーストレージデータをすべてクリア" -#: src/view/screens/Settings.tsx:696 +#: src/view/screens/Settings.tsx:729 msgid "Clear all legacy storage data (restart after this)" msgstr "すべてのレガシーストレージデータをクリア(この後再起動します)" -#: src/view/screens/Settings.tsx:706 +#: src/view/screens/Settings.tsx:739 msgid "Clear all storage data" msgstr "すべてのストレージデータをクリア" -#: src/view/screens/Settings.tsx:708 +#: src/view/screens/Settings.tsx:741 msgid "Clear all storage data (restart after this)" msgstr "すべてのストレージデータをクリア(この後再起動します)" @@ -616,11 +616,15 @@ msgstr "作成済み {0}" msgid "Custom domain" msgstr "カスタムドメイン" -#: src/view/screens/Settings.tsx:615 +#: src/view/screens/PreferencesExternalEmbeds.tsx:55 +msgid "Customize media from external sites." +msgstr "" + +#: src/view/screens/Settings.tsx:648 msgid "Danger Zone" msgstr "危険地帯" -#: src/view/screens/Settings.tsx:622 +#: src/view/screens/Settings.tsx:655 msgid "Delete account" msgstr "アカウントを削除" @@ -642,7 +646,7 @@ msgstr "リストを削除" msgid "Delete my account" msgstr "マイアカウントを削除" -#: src/view/screens/Settings.tsx:632 +#: src/view/screens/Settings.tsx:665 msgid "Delete my account…" msgstr "マイアカウントを削除…" @@ -669,7 +673,7 @@ msgstr "説明" msgid "Dev Server" msgstr "開発者サーバー" -#: src/view/screens/Settings.tsx:637 +#: src/view/screens/Settings.tsx:670 msgid "Developer Tools" msgstr "開発者ツール" @@ -778,6 +782,14 @@ msgstr "メールアドレスを更新" msgid "Email:" msgstr "メールアドレス:" +#: src/view/com/modals/EmbedConsent.tsx:113 +msgid "Enable {0} only" +msgstr "" + +#: src/view/com/modals/EmbedConsent.tsx:97 +msgid "Enable External Media" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." msgstr "この設定を有効にすると、自分がフォローしているユーザーからの返信だけが表示されます。" @@ -822,6 +834,20 @@ msgstr "全員" msgid "Expand alt text" msgstr "ALTテキストを展開" +#: src/view/com/modals/EmbedConsent.tsx:64 +msgid "External Media" +msgstr "" + +#: 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 "" + +#: src/view/screens/PreferencesExternalEmbeds.tsx:52 +#: src/view/screens/Settings.tsx:595 +msgid "External Media Preferences" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 msgid "Failed to load recommended feeds" @@ -1326,6 +1352,11 @@ msgstr "保存されたフィード" msgid "Name" 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/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." msgstr "フォロワーやデータへのアクセスを失うことはありません。" @@ -1397,6 +1428,10 @@ msgstr "「{query}」の検索結果はありません" msgid "No results found for {query}" msgstr "「{query}」の検索結果はありません" +#: src/view/com/modals/EmbedConsent.tsx:129 +msgid "No thanks" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:82 msgid "Nobody" msgstr "返信不可" @@ -1455,6 +1490,10 @@ msgstr "ナビゲーションを開く" msgid "Opens configurable language settings" msgstr "構成可能な言語設定を開く" +#: src/view/screens/Settings.tsx:587 +msgid "Opens external embeds settings" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" @@ -1472,7 +1511,7 @@ msgstr "モデレーションの設定を開く" msgid "Opens screen with all saved feeds" msgstr "保存されたすべてのフィードで画面を開く" -#: src/view/screens/Settings.tsx:581 +#: src/view/screens/Settings.tsx:614 msgid "Opens the app password settings page" msgstr "アプリパスワード設定ページを開く" @@ -1480,11 +1519,11 @@ msgstr "アプリパスワード設定ページを開く" msgid "Opens the home feed preferences" msgstr "ホームフィードの設定を開く" -#: src/view/screens/Settings.tsx:664 +#: src/view/screens/Settings.tsx:697 msgid "Opens the storybook page" msgstr "ストーリーブックのページを開く" -#: src/view/screens/Settings.tsx:644 +#: src/view/screens/Settings.tsx:677 msgid "Opens the system log page" msgstr "システムログのページを開く" @@ -1537,6 +1576,19 @@ msgstr "成人向けの写真です。" msgid "Pinned Feeds" msgstr "ピン留めされたフィード" +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 +msgid "Play {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 +msgid "Play Video" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 +msgid "Plays the GIF" +msgstr "" + #: src/view/com/auth/create/state.ts:116 msgid "Please choose your handle." msgstr "ハンドルをお選びください。" @@ -1617,12 +1669,13 @@ msgstr "第一言語" msgid "Prioritize Your Follows" msgstr "あなたのフォローを優先" +#: src/view/screens/Settings.tsx:570 #: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "プライバシー" #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:783 #: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "プライバシーポリシー" @@ -1639,7 +1692,7 @@ msgstr "処理中..." msgid "Profile" msgstr "プロフィール" -#: src/view/screens/Settings.tsx:808 +#: src/view/screens/Settings.tsx:841 msgid "Protect your account by verifying your email." msgstr "メールアドレスを確認してアカウントを保護します。" @@ -1786,7 +1839,7 @@ msgstr "このプロバイダーに必要" msgid "Reset code" msgstr "コードをリセット" -#: src/view/screens/Settings.tsx:686 +#: src/view/screens/Settings.tsx:719 msgid "Reset onboarding state" msgstr "オンボーディングの状態をリセット" @@ -1794,15 +1847,15 @@ msgstr "オンボーディングの状態をリセット" msgid "Reset password" msgstr "パスワードをリセット" -#: src/view/screens/Settings.tsx:676 +#: src/view/screens/Settings.tsx:709 msgid "Reset preferences state" msgstr "設定をリセット" -#: src/view/screens/Settings.tsx:684 +#: src/view/screens/Settings.tsx:717 msgid "Resets the onboarding state" msgstr "オンボーディングの状態をリセット" -#: src/view/screens/Settings.tsx:674 +#: src/view/screens/Settings.tsx:707 msgid "Resets the preferences state" msgstr "設定の状態をリセット" @@ -1973,6 +2026,10 @@ msgstr "表示" msgid "Show anyway" msgstr "とにかく表示" +#: src/view/com/modals/EmbedConsent.tsx:87 +msgid "Show embeds from {0}" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "マイフィードからの投稿を表示" @@ -2080,11 +2137,11 @@ msgstr "正方形" msgid "Staging" msgstr "ステージング" -#: src/view/screens/Settings.tsx:730 +#: src/view/screens/Settings.tsx:763 msgid "Status page" msgstr "ステータスページ" -#: src/view/screens/Settings.tsx:666 +#: src/view/screens/Settings.tsx:699 msgid "Storybook" msgstr "ストーリーブック" @@ -2113,7 +2170,7 @@ msgstr "サポート" msgid "Switch Account" msgstr "アカウントを切り替える" -#: src/view/screens/Settings.tsx:646 +#: src/view/screens/Settings.tsx:679 msgid "System log" msgstr "システムログ" @@ -2125,7 +2182,7 @@ msgstr "トール" msgid "Terms" msgstr "条件" -#: src/view/screens/Settings.tsx:744 +#: src/view/screens/Settings.tsx:777 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" @@ -2180,6 +2237,10 @@ msgstr "この{screenDescription}にはフラグが設定されています:" msgid "This account has requested that users sign in to view their profile." 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/posts/FeedErrorMessage.tsx:107 msgid "This content is not viewable without a Bluesky account." msgstr "このコンテンツはBlueskyのアカウントがないと閲覧できません。" @@ -2344,15 +2405,15 @@ msgstr "<0/>にフォローされているユーザー" msgid "Users in \"{0}\"" msgstr "{0}のユーザー" -#: src/view/screens/Settings.tsx:769 +#: src/view/screens/Settings.tsx:802 msgid "Verify email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings.tsx:794 +#: src/view/screens/Settings.tsx:827 msgid "Verify my email" msgstr "メールアドレスを確認" -#: src/view/screens/Settings.tsx:803 +#: src/view/screens/Settings.tsx:836 msgid "Verify My Email" msgstr "メールアドレスを確認" diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index 1245f3653f..b92049a949 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -236,7 +236,7 @@ msgstr "성인 콘텐츠" #~ msgid "Adult content can only be enabled via the Web at <0/>." #~ msgstr "성인 콘텐츠는 <0/>에서 웹을 통해서만 활성화할 수 있습니다." -#: src/view/screens/Settings.tsx:569 +#: src/view/screens/Settings.tsx:602 msgid "Advanced" msgstr "고급" @@ -292,7 +292,7 @@ msgstr "앱 언어" #~ msgid "App Password names must be at least 4 characters long." #~ msgstr "앱 비밀번호 이름은 4자 이상이어야 합니다." -#: src/view/screens/Settings.tsx:589 +#: src/view/screens/Settings.tsx:622 msgid "App passwords" msgstr "앱 비밀번호" @@ -451,7 +451,7 @@ msgstr "Bluesky는 로그아웃한 사용자에게 내 프로필과 게시물을 msgid "Bluesky.Social" msgstr "Bluesky.Social" -#: src/view/screens/Settings.tsx:718 +#: src/view/screens/Settings.tsx:751 msgid "Build version {0} {1}" msgstr "빌드 버전 {0} {1}" @@ -530,8 +530,8 @@ msgstr "대기자 명단 등록 취소" msgid "Change" msgstr "변경" -#: src/view/screens/Settings.tsx:601 -#: src/view/screens/Settings.tsx:610 +#: src/view/screens/Settings.tsx:634 +#: src/view/screens/Settings.tsx:643 msgid "Change handle" msgstr "핸들 변경" @@ -579,19 +579,19 @@ msgstr "맞춤 피드를 통해 사용자 경험을 강화하는 알고리즘을 msgid "Choose your password" msgstr "비밀번호를 입력하세요" -#: src/view/screens/Settings.tsx:694 +#: src/view/screens/Settings.tsx:727 msgid "Clear all legacy storage data" msgstr "모든 레거시 스토리지 데이터 지우기" -#: src/view/screens/Settings.tsx:696 +#: src/view/screens/Settings.tsx:729 msgid "Clear all legacy storage data (restart after this)" msgstr "모든 레거시 스토리지 데이터 지우기 (이후 다시 시작)" -#: src/view/screens/Settings.tsx:706 +#: src/view/screens/Settings.tsx:739 msgid "Clear all storage data" msgstr "모든 스토리지 데이터 지우기" -#: src/view/screens/Settings.tsx:708 +#: src/view/screens/Settings.tsx:741 msgid "Clear all storage data (restart after this)" msgstr "모든 스토리지 데이터 지우기 (이후 다시 시작)" @@ -763,7 +763,11 @@ msgstr "{0} 생성됨" msgid "Custom domain" msgstr "사용자 지정 도메인" -#: src/view/screens/Settings.tsx:615 +#: src/view/screens/PreferencesExternalEmbeds.tsx:55 +msgid "Customize media from external sites." +msgstr "" + +#: src/view/screens/Settings.tsx:648 msgid "Danger Zone" msgstr "위험 구역" @@ -775,7 +779,7 @@ msgstr "위험 구역" #~ msgid "default" #~ msgstr "기본" -#: src/view/screens/Settings.tsx:622 +#: src/view/screens/Settings.tsx:655 msgid "Delete account" msgstr "계정 삭제" @@ -797,7 +801,7 @@ msgstr "리스트 삭제" msgid "Delete my account" msgstr "내 계정 삭제" -#: src/view/screens/Settings.tsx:632 +#: src/view/screens/Settings.tsx:665 msgid "Delete my account…" msgstr "내 계정 삭제…" @@ -824,7 +828,7 @@ msgstr "설명" msgid "Dev Server" msgstr "개발 서버" -#: src/view/screens/Settings.tsx:637 +#: src/view/screens/Settings.tsx:670 msgid "Developer Tools" msgstr "개발자 도구" @@ -966,10 +970,18 @@ msgstr "이메일 변경됨" msgid "Email:" msgstr "이메일:" +#: src/view/com/modals/EmbedConsent.tsx:113 +msgid "Enable {0} only" +msgstr "" + #: src/view/com/modals/ContentFilteringSettings.tsx:158 #~ msgid "Enable Adult Content" #~ msgstr "성인 콘텐츠 활성화" +#: src/view/com/modals/EmbedConsent.tsx:97 +msgid "Enable External Media" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." msgstr "내가 팔로우하는 사람들 간의 답글만 표시합니다." @@ -1022,6 +1034,20 @@ msgstr "대체 텍스트 확장" #~ msgid "Explicit Sexual Images" #~ msgstr "노골적인 성적 이미지" +#: src/view/com/modals/EmbedConsent.tsx:64 +msgid "External Media" +msgstr "" + +#: 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 "" + +#: src/view/screens/PreferencesExternalEmbeds.tsx:52 +#: src/view/screens/Settings.tsx:595 +msgid "External Media Preferences" +msgstr "" + #: src/view/com/modals/AddAppPasswords.tsx:114 #: src/view/com/modals/AddAppPasswords.tsx:118 #~ msgid "Failed to create app password." @@ -1656,6 +1682,11 @@ msgstr "내 저장된 피드" msgid "Name" 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/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." msgstr "팔로워와 데이터에 대한 접근 권한을 잃지 않습니다." @@ -1744,6 +1775,10 @@ msgstr "\"{query}\"에 대한 결과를 찾을 수 없습니다." msgid "No results found for {query}" msgstr "{query}에 대한 결과를 찾을 수 없습니다." +#: src/view/com/modals/EmbedConsent.tsx:129 +msgid "No thanks" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:82 msgid "Nobody" msgstr "없음" @@ -1818,6 +1853,10 @@ msgstr "내비게이션을 엽니다" msgid "Opens configurable language settings" msgstr "구성 가능한 언어 설정을 엽니다" +#: src/view/screens/Settings.tsx:587 +msgid "Opens external embeds settings" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" @@ -1835,7 +1874,7 @@ msgstr "검토 설정을 엽니다" msgid "Opens screen with all saved feeds" msgstr "모든 저장된 피드 화면을 엽니다" -#: src/view/screens/Settings.tsx:581 +#: src/view/screens/Settings.tsx:614 msgid "Opens the app password settings page" msgstr "비밀번호 설정 페이지를 엽니다" @@ -1843,11 +1882,11 @@ msgstr "비밀번호 설정 페이지를 엽니다" msgid "Opens the home feed preferences" msgstr "홈 피드 설정을 엽니다" -#: src/view/screens/Settings.tsx:664 +#: src/view/screens/Settings.tsx:697 msgid "Opens the storybook page" msgstr "스토리북 페이지를 엽니다" -#: src/view/screens/Settings.tsx:644 +#: src/view/screens/Settings.tsx:677 msgid "Opens the system log page" msgstr "시스템 로그 페이지를 엽니다" @@ -1921,6 +1960,19 @@ msgstr "성인용 사진." msgid "Pinned Feeds" msgstr "고정된 피드" +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 +msgid "Play {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 +msgid "Play Video" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 +msgid "Plays the GIF" +msgstr "" + #: src/view/com/auth/create/state.ts:116 msgid "Please choose your handle." msgstr "핸들을 입력하세요." @@ -2018,12 +2070,13 @@ msgstr "주 언어" msgid "Prioritize Your Follows" msgstr "내 팔로우 우선시키기" +#: src/view/screens/Settings.tsx:570 #: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "개인정보" #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:783 #: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "개인정보 처리방침" @@ -2044,7 +2097,7 @@ msgstr "프로필" #~ msgid "Profile updated" #~ msgstr "프로필 업데이트됨" -#: src/view/screens/Settings.tsx:808 +#: src/view/screens/Settings.tsx:841 msgid "Protect your account by verifying your email." msgstr "이메일을 인증하여 계정을 보호하세요." @@ -2229,7 +2282,7 @@ msgstr "이 제공자에서 필수" msgid "Reset code" msgstr "코드 재설정" -#: src/view/screens/Settings.tsx:686 +#: src/view/screens/Settings.tsx:719 msgid "Reset onboarding state" msgstr "온보딩 상태 재설정" @@ -2237,15 +2290,15 @@ msgstr "온보딩 상태 재설정" msgid "Reset password" msgstr "비밀번호 재설정" -#: src/view/screens/Settings.tsx:676 +#: src/view/screens/Settings.tsx:709 msgid "Reset preferences state" msgstr "설정 상태 재설정" -#: src/view/screens/Settings.tsx:684 +#: src/view/screens/Settings.tsx:717 msgid "Resets the onboarding state" msgstr "온보딩 상태 재설정" -#: src/view/screens/Settings.tsx:674 +#: src/view/screens/Settings.tsx:707 msgid "Resets the preferences state" msgstr "설정 상태 재설정" @@ -2444,6 +2497,10 @@ msgstr "표시" msgid "Show anyway" msgstr "무시하고 표시" +#: src/view/com/modals/EmbedConsent.tsx:87 +msgid "Show embeds from {0}" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "내 피드에서 게시물 표시" @@ -2572,7 +2629,7 @@ msgstr "정사각형" msgid "Staging" msgstr "스테이징" -#: src/view/screens/Settings.tsx:730 +#: src/view/screens/Settings.tsx:763 msgid "Status page" msgstr "상태 페이지" @@ -2588,7 +2645,7 @@ msgstr "상태 페이지" #~ msgid "Storage cleared, you need to restart the app now." #~ msgstr "스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." -#: src/view/screens/Settings.tsx:666 +#: src/view/screens/Settings.tsx:699 msgid "Storybook" msgstr "스토리북" @@ -2625,7 +2682,7 @@ msgstr "계정 전환" #~ msgid "System" #~ msgstr "시스템" -#: src/view/screens/Settings.tsx:646 +#: src/view/screens/Settings.tsx:679 msgid "System log" msgstr "시스템 로그" @@ -2637,7 +2694,7 @@ msgstr "세로" msgid "Terms" msgstr "이용약관" -#: src/view/screens/Settings.tsx:744 +#: src/view/screens/Settings.tsx:777 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" @@ -2752,6 +2809,10 @@ msgstr "이 {screenDescription}에 플래그가 지정되었습니다:" msgid "This account has requested that users sign in to view their profile." 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/posts/FeedErrorMessage.tsx:107 msgid "This content is not viewable without a Bluesky account." msgstr "이 콘텐츠는 Bluesky 계정이 없으면 볼 수 없습니다." @@ -2981,15 +3042,15 @@ msgstr "\"{0}\"에 있는 사용자" #~ msgid "Verify {0}" #~ msgstr "{0} 확인" -#: src/view/screens/Settings.tsx:769 +#: src/view/screens/Settings.tsx:802 msgid "Verify email" msgstr "이메일 확인" -#: src/view/screens/Settings.tsx:794 +#: src/view/screens/Settings.tsx:827 msgid "Verify my email" msgstr "내 이메일 확인" -#: src/view/screens/Settings.tsx:803 +#: src/view/screens/Settings.tsx:836 msgid "Verify My Email" msgstr "내 이메일 확인" diff --git a/src/locale/locales/pt-BR/messages.po b/src/locale/locales/pt-BR/messages.po index a66df1f934..1b5c8f2c0a 100644 --- a/src/locale/locales/pt-BR/messages.po +++ b/src/locale/locales/pt-BR/messages.po @@ -164,7 +164,7 @@ msgstr "Ajuste o número de curtidas que uma resposta deve ser mostrada no seu f msgid "Adult Content" msgstr "Conteúdo Adulto" -#: src/view/screens/Settings.tsx:569 +#: src/view/screens/Settings.tsx:602 msgid "Advanced" msgstr "Avançado" @@ -197,7 +197,7 @@ msgstr "e" msgid "App Language" msgstr "Idioma do aplicativo" -#: src/view/screens/Settings.tsx:589 +#: src/view/screens/Settings.tsx:622 msgid "App passwords" msgstr "Senhas de aplicativos" @@ -356,7 +356,7 @@ msgstr "O Bluesky não mostrará seu perfil e publicações para usuários desco msgid "Bluesky.Social" msgstr "Bluesky.Social" -#: src/view/screens/Settings.tsx:718 +#: src/view/screens/Settings.tsx:751 msgid "Build version {0} {1}" msgstr "Versão da compilação {0} {1}" @@ -431,8 +431,8 @@ msgstr "Cancelar inscrição na lista de espera" msgid "Change" msgstr "Alterar" -#: src/view/screens/Settings.tsx:601 -#: src/view/screens/Settings.tsx:610 +#: src/view/screens/Settings.tsx:634 +#: src/view/screens/Settings.tsx:643 msgid "Change handle" msgstr "Alterar Identificador" @@ -480,19 +480,19 @@ msgstr "Escolha os algoritmos que alimentam a sua experiência com feeds persona msgid "Choose your password" msgstr "Escolha sua senha" -#: src/view/screens/Settings.tsx:694 +#: src/view/screens/Settings.tsx:727 msgid "Clear all legacy storage data" msgstr "Limpar todos os dados de armazenamento legados" -#: src/view/screens/Settings.tsx:696 +#: src/view/screens/Settings.tsx:729 msgid "Clear all legacy storage data (restart after this)" msgstr "Limpar todos os dados de armazenamento legados (reinicie após isso)" -#: src/view/screens/Settings.tsx:706 +#: src/view/screens/Settings.tsx:739 msgid "Clear all storage data" msgstr "Limpar todos os dados de armazenamento" -#: src/view/screens/Settings.tsx:708 +#: src/view/screens/Settings.tsx:741 msgid "Clear all storage data (restart after this)" msgstr "Limpar todos os dados de armazenamento (reiniciar após isso)" @@ -648,7 +648,11 @@ msgstr "Criado {0}" msgid "Custom domain" msgstr "Domínio personalizado" -#: src/view/screens/Settings.tsx:615 +#: src/view/screens/PreferencesExternalEmbeds.tsx:55 +msgid "Customize media from external sites." +msgstr "" + +#: src/view/screens/Settings.tsx:648 msgid "Danger Zone" msgstr "Zona de Perigo" @@ -656,7 +660,7 @@ msgstr "Zona de Perigo" #~ msgid "Dark" #~ msgstr "" -#: src/view/screens/Settings.tsx:622 +#: src/view/screens/Settings.tsx:655 msgid "Delete account" msgstr "Excluir a conta" @@ -678,7 +682,7 @@ msgstr "Excluir Lista" msgid "Delete my account" msgstr "Excluir minha conta" -#: src/view/screens/Settings.tsx:632 +#: src/view/screens/Settings.tsx:665 msgid "Delete my account…" msgstr "Excluir minha conta…" @@ -705,7 +709,7 @@ msgstr "Descrição" msgid "Dev Server" msgstr "Servidor de Desenvolvimento" -#: src/view/screens/Settings.tsx:637 +#: src/view/screens/Settings.tsx:670 msgid "Developer Tools" msgstr "Ferramentas do Desenvolvedor" @@ -814,6 +818,14 @@ msgstr "Email Atualizado" msgid "Email:" msgstr "Email:" +#: src/view/com/modals/EmbedConsent.tsx:113 +msgid "Enable {0} only" +msgstr "" + +#: src/view/com/modals/EmbedConsent.tsx:97 +msgid "Enable External Media" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." msgstr "Ative esta configuração para ver apenas as respostas entre as pessoas que você segue." @@ -858,6 +870,20 @@ msgstr "Todos" msgid "Expand alt text" msgstr "Expandir texto alternativo" +#: src/view/com/modals/EmbedConsent.tsx:64 +msgid "External Media" +msgstr "" + +#: 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 "" + +#: src/view/screens/PreferencesExternalEmbeds.tsx:52 +#: src/view/screens/Settings.tsx:595 +msgid "External Media Preferences" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 msgid "Failed to load recommended feeds" @@ -1395,6 +1421,11 @@ msgstr "Meus Feeds Salvos" msgid "Name" msgstr "Nome" +#: 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/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." msgstr "Nunca perca o acesso aos seus seguidores e dados." @@ -1471,6 +1502,10 @@ msgstr "Nenhum resultado encontrado para \"{query}\"" msgid "No results found for {query}" msgstr "Nenhum resultado encontrado para {query}" +#: src/view/com/modals/EmbedConsent.tsx:129 +msgid "No thanks" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:82 msgid "Nobody" msgstr "Ninguém" @@ -1537,6 +1572,10 @@ msgstr "Abrir navegação" msgid "Opens configurable language settings" msgstr "Abre definições de idioma configuráveis" +#: src/view/screens/Settings.tsx:587 +msgid "Opens external embeds settings" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" @@ -1554,7 +1593,7 @@ msgstr "Abre configurações de moderação" msgid "Opens screen with all saved feeds" msgstr "Abre a tela com todos os feeds salvos" -#: src/view/screens/Settings.tsx:581 +#: src/view/screens/Settings.tsx:614 msgid "Opens the app password settings page" msgstr "Abre a página de configurações de senha do aplicativo" @@ -1562,11 +1601,11 @@ msgstr "Abre a página de configurações de senha do aplicativo" msgid "Opens the home feed preferences" msgstr "Abre as preferências do feed inicial" -#: src/view/screens/Settings.tsx:664 +#: src/view/screens/Settings.tsx:697 msgid "Opens the storybook page" msgstr "Abre a página do storybook" -#: src/view/screens/Settings.tsx:644 +#: src/view/screens/Settings.tsx:677 msgid "Opens the system log page" msgstr "Abre a página de log do sistema" @@ -1619,6 +1658,19 @@ msgstr "Imagens destinadas a adultos." msgid "Pinned Feeds" msgstr "Feeds Fixados" +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 +msgid "Play {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 +msgid "Play Video" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 +msgid "Plays the GIF" +msgstr "" + #: src/view/com/auth/create/state.ts:116 msgid "Please choose your handle." msgstr "Por favor, escolha o seu identificador." @@ -1699,12 +1751,13 @@ msgstr "Idioma Principal" msgid "Prioritize Your Follows" msgstr "Priorizar seus Seguidores" +#: src/view/screens/Settings.tsx:570 #: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "Privacidade" #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:783 #: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "Política de Privacidade" @@ -1721,7 +1774,7 @@ msgstr "Processando..." msgid "Profile" msgstr "Perfil" -#: src/view/screens/Settings.tsx:808 +#: src/view/screens/Settings.tsx:841 msgid "Protect your account by verifying your email." msgstr "Proteja a sua conta verificando o seu email." @@ -1877,7 +1930,7 @@ msgstr "Obrigatório para este provedor" msgid "Reset code" msgstr "Código de redefinição" -#: src/view/screens/Settings.tsx:686 +#: src/view/screens/Settings.tsx:719 msgid "Reset onboarding state" msgstr "Redefinir estado de integração" @@ -1885,15 +1938,15 @@ msgstr "Redefinir estado de integração" msgid "Reset password" msgstr "Redefinir senha" -#: src/view/screens/Settings.tsx:676 +#: src/view/screens/Settings.tsx:709 msgid "Reset preferences state" msgstr "Redefinir estado das preferências" -#: src/view/screens/Settings.tsx:684 +#: src/view/screens/Settings.tsx:717 msgid "Resets the onboarding state" msgstr "Redefine o estado de integração" -#: src/view/screens/Settings.tsx:674 +#: src/view/screens/Settings.tsx:707 msgid "Resets the preferences state" msgstr "Redefine o estado das preferências" @@ -2076,6 +2129,10 @@ msgstr "Mostrar" msgid "Show anyway" msgstr "Mostrar mesmo assim" +#: src/view/com/modals/EmbedConsent.tsx:87 +msgid "Show embeds from {0}" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "Mostrar Posts dos meus Feeds" @@ -2183,11 +2240,11 @@ msgstr "Quadrado" msgid "Staging" msgstr "Encenação" -#: src/view/screens/Settings.tsx:730 +#: src/view/screens/Settings.tsx:763 msgid "Status page" msgstr "Página de status" -#: src/view/screens/Settings.tsx:666 +#: src/view/screens/Settings.tsx:699 msgid "Storybook" msgstr "Storybook" @@ -2220,7 +2277,7 @@ msgstr "Alterar Conta" #~ msgid "System" #~ msgstr "" -#: src/view/screens/Settings.tsx:646 +#: src/view/screens/Settings.tsx:679 msgid "System log" msgstr "Log do sistema" @@ -2232,7 +2289,7 @@ msgstr "Alto" msgid "Terms" msgstr "Termos" -#: src/view/screens/Settings.tsx:744 +#: src/view/screens/Settings.tsx:777 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" @@ -2287,6 +2344,10 @@ msgstr "Este {screenDescription} foi sinalizado:" 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 seus perfis." +#: 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/posts/FeedErrorMessage.tsx:107 msgid "This content is not viewable without a Bluesky account." msgstr "Este conteúdo não está visível sem uma conta Bluesky." @@ -2455,15 +2516,15 @@ msgstr "usuários seguidos por <0/>" msgid "Users in \"{0}\"" msgstr "Usuários em \"{0}\"" -#: src/view/screens/Settings.tsx:769 +#: src/view/screens/Settings.tsx:802 msgid "Verify email" msgstr "Verificar email" -#: src/view/screens/Settings.tsx:794 +#: src/view/screens/Settings.tsx:827 msgid "Verify my email" msgstr "Verificar meu email" -#: src/view/screens/Settings.tsx:803 +#: src/view/screens/Settings.tsx:836 msgid "Verify My Email" msgstr "Verificar Meu Email" diff --git a/src/locale/locales/uk/messages.po b/src/locale/locales/uk/messages.po index 72395a1def..32cf0fea82 100644 --- a/src/locale/locales/uk/messages.po +++ b/src/locale/locales/uk/messages.po @@ -169,7 +169,7 @@ msgstr "Налаштуйте мінімальну кількість вподо msgid "Adult Content" msgstr "Вміст для дорослих" -#: src/view/screens/Settings.tsx:569 +#: src/view/screens/Settings.tsx:602 msgid "Advanced" msgstr "Розширені" @@ -202,7 +202,7 @@ msgstr "та" msgid "App Language" msgstr "Мова застосунку" -#: src/view/screens/Settings.tsx:589 +#: src/view/screens/Settings.tsx:622 msgid "App passwords" msgstr "Паролі для застосунків" @@ -361,7 +361,7 @@ msgstr "Bluesky не буде показувати ваш профіль і по msgid "Bluesky.Social" msgstr "Bluesky.Social" -#: src/view/screens/Settings.tsx:718 +#: src/view/screens/Settings.tsx:751 msgid "Build version {0} {1}" msgstr "Версія {0} {1}" @@ -436,8 +436,8 @@ msgstr "Скасувати запис у чергу очікування" msgid "Change" msgstr "Змінити" -#: src/view/screens/Settings.tsx:601 -#: src/view/screens/Settings.tsx:610 +#: src/view/screens/Settings.tsx:634 +#: src/view/screens/Settings.tsx:643 msgid "Change handle" msgstr "Змінити псевдонім" @@ -485,19 +485,19 @@ msgstr "Автори стрічок можуть обирати будь-які msgid "Choose your password" msgstr "Вкажіть пароль" -#: src/view/screens/Settings.tsx:694 +#: src/view/screens/Settings.tsx:727 msgid "Clear all legacy storage data" msgstr "" -#: src/view/screens/Settings.tsx:696 +#: src/view/screens/Settings.tsx:729 msgid "Clear all legacy storage data (restart after this)" msgstr "" -#: src/view/screens/Settings.tsx:706 +#: src/view/screens/Settings.tsx:739 msgid "Clear all storage data" msgstr "" -#: src/view/screens/Settings.tsx:708 +#: src/view/screens/Settings.tsx:741 msgid "Clear all storage data (restart after this)" msgstr "" @@ -653,7 +653,11 @@ msgstr "Створено: {0}" msgid "Custom domain" msgstr "Власний домен" -#: src/view/screens/Settings.tsx:615 +#: src/view/screens/PreferencesExternalEmbeds.tsx:55 +msgid "Customize media from external sites." +msgstr "" + +#: src/view/screens/Settings.tsx:648 msgid "Danger Zone" msgstr "Небезпечна зона" @@ -661,7 +665,7 @@ msgstr "Небезпечна зона" #~ msgid "Dark" #~ msgstr "" -#: src/view/screens/Settings.tsx:622 +#: src/view/screens/Settings.tsx:655 msgid "Delete account" msgstr "Видалити обліковий запис" @@ -683,7 +687,7 @@ msgstr "Видалити список" msgid "Delete my account" msgstr "Видалити мій обліковий запис" -#: src/view/screens/Settings.tsx:632 +#: src/view/screens/Settings.tsx:665 msgid "Delete my account…" msgstr "Видалити мій обліковий запис…" @@ -710,7 +714,7 @@ msgstr "Опис" msgid "Dev Server" msgstr "" -#: src/view/screens/Settings.tsx:637 +#: src/view/screens/Settings.tsx:670 msgid "Developer Tools" msgstr "Інструменти розробника" @@ -819,6 +823,14 @@ msgstr "Email оновлено" msgid "Email:" msgstr "Email:" +#: src/view/com/modals/EmbedConsent.tsx:113 +msgid "Enable {0} only" +msgstr "" + +#: src/view/com/modals/EmbedConsent.tsx:97 +msgid "Enable External Media" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." msgstr "Увімкніть цей параметр, щоб бачити відповіді тільки між людьми, на яких ви підписані." @@ -863,6 +875,20 @@ msgstr "Усі" msgid "Expand alt text" msgstr "Розгорнути альтернативний текст" +#: src/view/com/modals/EmbedConsent.tsx:64 +msgid "External Media" +msgstr "" + +#: 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 "" + +#: src/view/screens/PreferencesExternalEmbeds.tsx:52 +#: src/view/screens/Settings.tsx:595 +msgid "External Media Preferences" +msgstr "" + #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 msgid "Failed to load recommended feeds" @@ -1400,6 +1426,11 @@ msgstr "Мої збережені стрічки" msgid "Name" 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/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." msgstr "Ніколи не втрачайте доступ до ваших даних та підписників." @@ -1476,6 +1507,10 @@ msgstr "Нічого не знайдено за запитом «{query}»" msgid "No results found for {query}" msgstr "Нічого не знайдено за запитом «{query}»" +#: src/view/com/modals/EmbedConsent.tsx:129 +msgid "No thanks" +msgstr "" + #: src/view/com/modals/Threadgate.tsx:82 msgid "Nobody" msgstr "Ніхто" @@ -1542,6 +1577,10 @@ msgstr "Відкрити навігацію" msgid "Opens configurable language settings" msgstr "Відкриває налаштування мов" +#: src/view/screens/Settings.tsx:587 +msgid "Opens external embeds settings" +msgstr "" + #: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" @@ -1559,7 +1598,7 @@ msgstr "Відкриває налаштування модерації" msgid "Opens screen with all saved feeds" msgstr "Відкриває сторінку з усіма збереженими стрічками" -#: src/view/screens/Settings.tsx:581 +#: src/view/screens/Settings.tsx:614 msgid "Opens the app password settings page" msgstr "Відкриває налаштування паролів для застосунків" @@ -1567,11 +1606,11 @@ msgstr "Відкриває налаштування паролів для зас msgid "Opens the home feed preferences" msgstr "Відкриває налаштування домашньої стрічки" -#: src/view/screens/Settings.tsx:664 +#: src/view/screens/Settings.tsx:697 msgid "Opens the storybook page" msgstr "" -#: src/view/screens/Settings.tsx:644 +#: src/view/screens/Settings.tsx:677 msgid "Opens the system log page" msgstr "Відкриває системний журнал" @@ -1624,6 +1663,19 @@ msgstr "Зображення призначені для дорослих." msgid "Pinned Feeds" msgstr "Закріплені стрічки" +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 +msgid "Play {0}" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 +#: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 +msgid "Play Video" +msgstr "" + +#: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 +msgid "Plays the GIF" +msgstr "" + #: src/view/com/auth/create/state.ts:116 msgid "Please choose your handle." msgstr "Будь ласка, виберіть псевдонім." @@ -1704,12 +1756,13 @@ msgstr "Основна мова" msgid "Prioritize Your Follows" msgstr "Пріоритезувати ваші підписки" +#: src/view/screens/Settings.tsx:570 #: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "Конфіденційність" #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings.tsx:750 +#: src/view/screens/Settings.tsx:783 #: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "Політика конфіденційності" @@ -1726,7 +1779,7 @@ msgstr "Обробка..." msgid "Profile" msgstr "Профіль" -#: src/view/screens/Settings.tsx:808 +#: src/view/screens/Settings.tsx:841 msgid "Protect your account by verifying your email." msgstr "Захистіть свій обліковий запис, підтвердивши свою електронну пошту." @@ -1882,7 +1935,7 @@ msgstr "Вимагається цим хостинг-провайдером" msgid "Reset code" msgstr "Код підтвердження" -#: src/view/screens/Settings.tsx:686 +#: src/view/screens/Settings.tsx:719 msgid "Reset onboarding state" msgstr "" @@ -1890,15 +1943,15 @@ msgstr "" msgid "Reset password" msgstr "Скинути пароль" -#: src/view/screens/Settings.tsx:676 +#: src/view/screens/Settings.tsx:709 msgid "Reset preferences state" msgstr "" -#: src/view/screens/Settings.tsx:684 +#: src/view/screens/Settings.tsx:717 msgid "Resets the onboarding state" msgstr "" -#: src/view/screens/Settings.tsx:674 +#: src/view/screens/Settings.tsx:707 msgid "Resets the preferences state" msgstr "" @@ -2081,6 +2134,10 @@ msgstr "Показати" msgid "Show anyway" msgstr "Всеодно показати" +#: src/view/com/modals/EmbedConsent.tsx:87 +msgid "Show embeds from {0}" +msgstr "" + #: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" msgstr "Показувати пости зі збережених стрічок" @@ -2188,11 +2245,11 @@ msgstr "Квадратне" msgid "Staging" msgstr "" -#: src/view/screens/Settings.tsx:730 +#: src/view/screens/Settings.tsx:763 msgid "Status page" msgstr "Сторінка стану" -#: src/view/screens/Settings.tsx:666 +#: src/view/screens/Settings.tsx:699 msgid "Storybook" msgstr "" @@ -2225,7 +2282,7 @@ msgstr "Перемикнути обліковий запис" #~ msgid "System" #~ msgstr "" -#: src/view/screens/Settings.tsx:646 +#: src/view/screens/Settings.tsx:679 msgid "System log" msgstr "Системний журнал" @@ -2237,7 +2294,7 @@ msgstr "Високе" msgid "Terms" msgstr "Умови" -#: src/view/screens/Settings.tsx:744 +#: src/view/screens/Settings.tsx:777 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" @@ -2292,6 +2349,10 @@ msgstr "Цей {screenDescription} був позначений:" msgid "This account has requested that users sign in to view their profile." 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/posts/FeedErrorMessage.tsx:107 msgid "This content is not viewable without a Bluesky account." msgstr "Цей вміст не доступний для перегляду без облікового запису Bluesky." @@ -2460,15 +2521,15 @@ msgstr "користувачі на яких підписані <0/>" msgid "Users in \"{0}\"" msgstr "Користувачі в \"{0}\"" -#: src/view/screens/Settings.tsx:769 +#: src/view/screens/Settings.tsx:802 msgid "Verify email" msgstr "Підтвердити електронну адресу" -#: src/view/screens/Settings.tsx:794 +#: src/view/screens/Settings.tsx:827 msgid "Verify my email" msgstr "Підтвердити мою електронну адресу" -#: src/view/screens/Settings.tsx:803 +#: src/view/screens/Settings.tsx:836 msgid "Verify My Email" msgstr "Підтвердити мою електронну адресу" @@ -2675,4 +2736,3 @@ msgstr "Ваш профіль" #: src/view/com/auth/create/Step3.tsx:28 msgid "Your user handle" msgstr "Ваш псевдонім" - From 98885656a306b0928d65453a716751e7518f57cb Mon Sep 17 00:00:00 2001 From: Noritada Kobayashi Date: Fri, 5 Jan 2024 20:50:54 +0900 Subject: [PATCH 079/115] Update Japanese localization (addition + language code correction) (#2423) --- src/locale/locales/ja/messages.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/locale/locales/ja/messages.po b/src/locale/locales/ja/messages.po index 3a9743e1a5..9620c035a1 100644 --- a/src/locale/locales/ja/messages.po +++ b/src/locale/locales/ja/messages.po @@ -5,7 +5,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: @lingui/cli\n" -"Language: jp\n" +"Language: ja\n" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "PO-Revision-Date: \n" @@ -1293,7 +1293,7 @@ msgstr "その他のオプション" #: src/view/screens/PreferencesThreads.tsx:82 msgid "Most-liked replies first" -msgstr "" +msgstr "いいねの数が多い順に返信を表示" #: src/view/com/profile/ProfileHeader.tsx:370 msgid "Mute Account" @@ -1382,7 +1382,7 @@ msgstr "新しい投稿" #: src/view/screens/PreferencesThreads.tsx:79 msgid "Newest replies first" -msgstr "" +msgstr "新しい順に返信を表示" #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 @@ -1467,7 +1467,7 @@ msgstr "OK" #: src/view/screens/PreferencesThreads.tsx:78 msgid "Oldest replies first" -msgstr "" +msgstr "古い順に返信を表示" #: src/view/com/composer/Composer.tsx:363 msgid "One or more images is missing alt text." @@ -1480,7 +1480,7 @@ msgstr "{0}のみ返信可能" #: src/view/com/composer/Composer.tsx:468 #: src/view/com/composer/Composer.tsx:469 msgid "Open emoji picker" -msgstr "" +msgstr "絵文字を入力" #: src/view/com/pager/FeedsTabBarMobile.tsx:76 msgid "Open navigation" @@ -1715,7 +1715,7 @@ msgstr "引用" #: src/view/screens/PreferencesThreads.tsx:86 msgid "Random (aka \"Poster's Roulette\")" -msgstr "" +msgstr "ランダムな順番で表示(別名「投稿者のルーレット」)" #: src/view/com/modals/EditImage.tsx:236 msgid "Ratios" @@ -1829,7 +1829,7 @@ msgstr "変更を要求" #: src/view/screens/Settings.tsx:422 msgid "Require alt text before posting" -msgstr "" +msgstr "画像投稿時にALTテキストを必須とする" #: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" From bc067295b861763ca9f7844b19913ea298ac4330 Mon Sep 17 00:00:00 2001 From: Max Ignatenko Date: Fri, 5 Jan 2024 11:52:04 +0000 Subject: [PATCH 080/115] New translations messages.po (Ukrainian) (#2422) --- src/locale/locales/uk/messages.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/locale/locales/uk/messages.po b/src/locale/locales/uk/messages.po index 32cf0fea82..365cca389f 100644 --- a/src/locale/locales/uk/messages.po +++ b/src/locale/locales/uk/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: uk\n" "Project-Id-Version: bsky-app-ua\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-01-03 20:21\n" +"PO-Revision-Date: 2024-01-04 14:24\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" @@ -1363,7 +1363,7 @@ msgstr "Додаткові опції" #: src/view/screens/PreferencesThreads.tsx:82 msgid "Most-liked replies first" -msgstr "" +msgstr "Кількістю вподобань" #: src/view/com/profile/ProfileHeader.tsx:370 msgid "Mute Account" @@ -1456,7 +1456,7 @@ msgstr "Новий пост" #: src/view/screens/PreferencesThreads.tsx:79 msgid "Newest replies first" -msgstr "" +msgstr "Спочатку найновіші" #: src/view/com/auth/create/CreateAccount.tsx:154 #: src/view/com/auth/login/ForgotPasswordForm.tsx:174 @@ -1554,7 +1554,7 @@ msgstr "Добре" #: src/view/screens/PreferencesThreads.tsx:78 msgid "Oldest replies first" -msgstr "" +msgstr "Спочатку найдавніші" #: src/view/com/composer/Composer.tsx:363 msgid "One or more images is missing alt text." @@ -1567,7 +1567,7 @@ msgstr "Тільки {0} можуть відповідати." #: src/view/com/composer/Composer.tsx:468 #: src/view/com/composer/Composer.tsx:469 msgid "Open emoji picker" -msgstr "" +msgstr "Емодзі" #: src/view/com/pager/FeedsTabBarMobile.tsx:76 msgid "Open navigation" @@ -1802,7 +1802,7 @@ msgstr "Цитувати пост" #: src/view/screens/PreferencesThreads.tsx:86 msgid "Random (aka \"Poster's Roulette\")" -msgstr "" +msgstr "У випадковому порядку" #: src/view/com/modals/EditImage.tsx:236 msgid "Ratios" @@ -1925,7 +1925,7 @@ msgstr "Змінити" #: src/view/screens/Settings.tsx:422 msgid "Require alt text before posting" -msgstr "" +msgstr "Вимагати додавання альтернативного тексту перед тим як постити зображення" #: src/view/com/auth/create/Step2.tsx:68 msgid "Required for this provider" From f65bbe36f5580b847e17758f1cf818a414b6a46a Mon Sep 17 00:00:00 2001 From: Maison da Silva Date: Fri, 5 Jan 2024 15:03:12 -0300 Subject: [PATCH 081/115] =?UTF-8?q?Update=20for=20Version=201.63=20Portugu?= =?UTF-8?q?=C3=AAs=20(BR)=20(#2435)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update for Version 1.63 * Update Date --- src/locale/locales/pt-BR/messages.po | 30 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/locale/locales/pt-BR/messages.po b/src/locale/locales/pt-BR/messages.po index 1b5c8f2c0a..45daf1a9f5 100644 --- a/src/locale/locales/pt-BR/messages.po +++ b/src/locale/locales/pt-BR/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: pt-BR\n" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2023-12-31 00:34\n" +"PO-Revision-Date: 2024-01-05 17:00\n" "Last-Translator: Maison da Silva\n" "Language-Team: maisondasilva\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -650,7 +650,7 @@ msgstr "Domínio personalizado" #: src/view/screens/PreferencesExternalEmbeds.tsx:55 msgid "Customize media from external sites." -msgstr "" +msgstr "Personalize a mídia de sites externos." #: src/view/screens/Settings.tsx:648 msgid "Danger Zone" @@ -820,11 +820,11 @@ msgstr "Email:" #: src/view/com/modals/EmbedConsent.tsx:113 msgid "Enable {0} only" -msgstr "" +msgstr "Ativar {0} somente" #: src/view/com/modals/EmbedConsent.tsx:97 msgid "Enable External Media" -msgstr "" +msgstr "Ativar Mídia Externa" #: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." @@ -872,17 +872,17 @@ msgstr "Expandir texto alternativo" #: src/view/com/modals/EmbedConsent.tsx:64 msgid "External Media" -msgstr "" +msgstr "Mídia Externa" #: 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 "" +msgstr "A mídia externa pode permitir que os sites coletem informações sobre você e seu dispositivo. Nenhuma informação é enviada ou solicitada até que você pressione o botão \"play\"." #: src/view/screens/PreferencesExternalEmbeds.tsx:52 #: src/view/screens/Settings.tsx:595 msgid "External Media Preferences" -msgstr "" +msgstr "Preferências de Mídia Externa" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 @@ -1424,7 +1424,7 @@ msgstr "Nome" #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" -msgstr "" +msgstr "Nunca carregue incorporações de {0}" #: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." @@ -1504,7 +1504,7 @@ msgstr "Nenhum resultado encontrado para {query}" #: src/view/com/modals/EmbedConsent.tsx:129 msgid "No thanks" -msgstr "" +msgstr "Não, obrigado" #: src/view/com/modals/Threadgate.tsx:82 msgid "Nobody" @@ -1574,7 +1574,7 @@ msgstr "Abre definições de idioma configuráveis" #: src/view/screens/Settings.tsx:587 msgid "Opens external embeds settings" -msgstr "" +msgstr "Abre as configurações de incorporações externas" #: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 @@ -1660,16 +1660,16 @@ msgstr "Feeds Fixados" #: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 msgid "Play {0}" -msgstr "" +msgstr "Reproduzir {0}" #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 msgid "Play Video" -msgstr "" +msgstr "Reproduzir Vídeo" #: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 msgid "Plays the GIF" -msgstr "" +msgstr "Reproduz o GIF" #: src/view/com/auth/create/state.ts:116 msgid "Please choose your handle." @@ -2131,7 +2131,7 @@ msgstr "Mostrar mesmo assim" #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" -msgstr "" +msgstr "Mostrar incorporações de {0}" #: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" @@ -2346,7 +2346,7 @@ msgstr "Esta conta solicitou que os usuários fizessem login para visualizar seu #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" -msgstr "" +msgstr "Este conteúdo é hospedado por {0}. Deseja ativar a mídia externa?" #: src/view/com/posts/FeedErrorMessage.tsx:107 msgid "This content is not viewable without a Bluesky account." From 56021ccda55e0b30738d4689d3eaa52e8f0c3e96 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 5 Jan 2024 13:53:59 -0600 Subject: [PATCH 082/115] Use android mode, fix fallback (#2437) --- src/Splash.tsx | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/Splash.tsx b/src/Splash.tsx index 0ddb0520d3..4b480b7a4b 100644 --- a/src/Splash.tsx +++ b/src/Splash.tsx @@ -140,20 +140,13 @@ export function Splash(props: React.PropsWithChildren) { {platformApiLevel && platformApiLevel <= 25 ? ( // Use a simple fade on older versions of android (work around a bug) <> - {!isAnimationComplete && ( - - )} {props.children} ) : ( Date: Sun, 7 Jan 2024 19:47:36 +0530 Subject: [PATCH 083/115] Fixed scroll issue --- src/view/screens/Settings.tsx | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/view/screens/Settings.tsx b/src/view/screens/Settings.tsx index 11c82e6c52..56890a2460 100644 --- a/src/view/screens/Settings.tsx +++ b/src/view/screens/Settings.tsx @@ -273,17 +273,24 @@ export function SettingsScreen({}: Props) { }, []) return ( - - + + + + + {_(msg`Settings`)} + + + {currentAccount ? ( @@ -758,7 +765,7 @@ export function SettingsScreen({}: Props) { - + ) } From 218fdde8d97cfb0f16e965cae3372ed3451c7b64 Mon Sep 17 00:00:00 2001 From: Rahul Yadav <52163880+rahulyadav5524@users.noreply.github.com> Date: Sun, 7 Jan 2024 19:50:12 +0530 Subject: [PATCH 084/115] Removed unused code --- src/view/screens/Settings.tsx | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/view/screens/Settings.tsx b/src/view/screens/Settings.tsx index 56890a2460..5b4f6493af 100644 --- a/src/view/screens/Settings.tsx +++ b/src/view/screens/Settings.tsx @@ -290,7 +290,7 @@ export function SettingsScreen({}: Props) { {currentAccount ? ( @@ -910,14 +910,4 @@ const styles = StyleSheet.create({ alignItems: 'center', paddingLeft: 18, }, - desktopContainer: { - borderLeftWidth: 1, - borderRightWidth: 1, - }, - noBorder: { - borderBottomWidth: 0, - borderTopWidth: 0, - borderRightWidth: 0, - borderLeftWidth: 0, - }, }) From 66e5cccb87928a97c744ba9381380a8182f7530e Mon Sep 17 00:00:00 2001 From: Rahul Yadav <52163880+rahulyadav5524@users.noreply.github.com> Date: Sun, 7 Jan 2024 19:53:00 +0530 Subject: [PATCH 085/115] Removed unused code --- src/view/screens/Settings.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/view/screens/Settings.tsx b/src/view/screens/Settings.tsx index 5b4f6493af..f47511cb52 100644 --- a/src/view/screens/Settings.tsx +++ b/src/view/screens/Settings.tsx @@ -18,7 +18,7 @@ import { import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' import * as AppInfo from 'lib/app-info' import {s, colors} from 'lib/styles' -import {CenteredView, ScrollView} from '../com/util/Views' +import {ScrollView} from '../com/util/Views' import {ViewHeader} from '../com/util/ViewHeader' import {Link, TextLink} from '../com/util/Link' import {Text} from '../com/util/text/Text' @@ -147,7 +147,7 @@ export function SettingsScreen({}: Props) { const setRequireAltTextEnabled = useSetRequireAltTextEnabled() const onboardingDispatch = useOnboardingDispatch() const navigation = useNavigation() - const {isMobile, isTabletOrDesktop} = useWebMediaQueries() + const {isMobile} = useWebMediaQueries() const {screen, track} = useAnalytics() const {openModal} = useModalControls() const {isSwitchingAccounts, accounts, currentAccount} = useSession() From 9fabf28cab2dcfd5ba8796bd38424b136dd49ef0 Mon Sep 17 00:00:00 2001 From: Rahul Yadav <52163880+rahulyadav5524@users.noreply.github.com> Date: Sun, 7 Jan 2024 20:17:45 +0530 Subject: [PATCH 086/115] Fixed import issue --- src/view/screens/Settings.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/view/screens/Settings.tsx b/src/view/screens/Settings.tsx index f47511cb52..284f568a7f 100644 --- a/src/view/screens/Settings.tsx +++ b/src/view/screens/Settings.tsx @@ -19,7 +19,6 @@ import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' import * as AppInfo from 'lib/app-info' import {s, colors} from 'lib/styles' import {ScrollView} 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 * as Toast from '../com/util/Toast' @@ -36,6 +35,7 @@ import {HandIcon, HashtagIcon} from 'lib/icons' import Clipboard from '@react-native-clipboard/clipboard' import {makeProfileLink} from 'lib/routes/links' import {AccountDropdownBtn} from 'view/com/util/AccountDropdownBtn' +import {SimpleViewHeader} from 'view/com/util/SimpleViewHeader' import {RQKEY as RQKEY_PROFILE} from '#/state/queries/profile' import {useModalControls} from '#/state/modals' import { From e3e13a362f68444055e479f0d4979b01f5905fd4 Mon Sep 17 00:00:00 2001 From: Rahul Yadav <52163880+rahulyadav5524@users.noreply.github.com> Date: Sun, 7 Jan 2024 20:21:15 +0530 Subject: [PATCH 087/115] Fixed same issue --- src/view/screens/Settings.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/view/screens/Settings.tsx b/src/view/screens/Settings.tsx index 284f568a7f..f85ce44b29 100644 --- a/src/view/screens/Settings.tsx +++ b/src/view/screens/Settings.tsx @@ -276,7 +276,6 @@ export function SettingsScreen({}: Props) { Date: Tue, 9 Jan 2024 03:18:18 +0900 Subject: [PATCH 088/115] Update Korean localization (#2432) * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po * Update messages.po --- src/locale/locales/ko/messages.po | 1357 +++++++++++++++++------------ 1 file changed, 792 insertions(+), 565 deletions(-) diff --git a/src/locale/locales/ko/messages.po b/src/locale/locales/ko/messages.po index b92049a949..3aaac3d8d3 100644 --- a/src/locale/locales/ko/messages.po +++ b/src/locale/locales/ko/messages.po @@ -29,40 +29,44 @@ msgstr "{0, plural, one {초대 코드 #개 사용 가능} other {초대 코드 msgid "{0}" msgstr "{0}" -#: src/view/com/modals/CreateOrEditList.tsx:176 +#: src/view/com/modals/CreateOrEditList.tsx:177 msgid "{0} {purposeLabel} List" msgstr "{purposeLabel} 리스트 {0}" -#: src/lib/strings/time.ts:28 -#~ msgid "{0}d" -#~ msgstr "{0}일" - -#: src/lib/strings/time.ts:26 -#~ msgid "{0}h" -#~ msgstr "{0}시간" - -#: src/lib/strings/time.ts:24 -#~ msgid "{0}m" -#~ msgstr "{0}분" +#: src/lib/strings/time.ts:40 +msgid "{0} at {1}" +msgstr "{0} {1}" #: src/lib/strings/time.ts:30 -#~ msgid "{0}mo" -#~ msgstr "{0}개월" +msgid "{0}d" +msgstr "{0}일" -#: src/lib/strings/time.ts:22 -#~ msgid "{diffSeconds}s" -#~ msgstr "{diffSeconds}초" +#: src/lib/strings/time.ts:28 +msgid "{0}h" +msgstr "{0}시간" + +#: src/lib/strings/time.ts:26 +msgid "{0}m" +msgstr "{0}분" + +#: src/lib/strings/time.ts:32 +msgid "{0}mo" +msgstr "{0}개월" + +#: src/lib/strings/time.ts:24 +msgid "{diffSeconds}s" +msgstr "{diffSeconds}초" #: src/view/shell/desktop/RightNav.tsx:151 msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" msgstr "{invitesAvailable, plural, one {초대 코드: #개 사용 가능} other {초대 코드: #개 사용 가능}}" -#: src/view/screens/Settings.tsx:407 +#: src/view/screens/Settings.tsx:408 #: src/view/shell/Drawer.tsx:659 msgid "{invitesAvailable} invite code available" msgstr "초대 코드 {invitesAvailable}개 사용 가능" -#: src/view/screens/Settings.tsx:409 +#: src/view/screens/Settings.tsx:410 #: src/view/shell/Drawer.tsx:661 msgid "{invitesAvailable} invite codes available" msgstr "초대 코드 {invitesAvailable}개 사용 가능" @@ -72,12 +76,12 @@ msgid "{message}" msgstr "{message}" #: src/view/com/modals/CreateOrEditList.tsx:133 -#~ msgid "{purposeLabel} list created" -#~ msgstr "{purposeLabel} 리스트 생성됨" +msgid "{purposeLabel} list created" +msgstr "{purposeLabel} 리스트 생성됨" #: src/view/com/modals/CreateOrEditList.tsx:124 -#~ msgid "{purposeLabel} list updated" -#~ msgstr "{purposeLabel} 리스트 업데이트됨" +msgid "{purposeLabel} list updated" +msgstr "{purposeLabel} 리스트 업데이트됨" #: src/view/com/threadgate/WhoCanReply.tsx:158 msgid "<0/> members" @@ -88,8 +92,8 @@ msgid "<0>Choose your<1>Recommended<2>Feeds" msgstr "<1>추천 피드<0>선택하기" #: src/view/com/modals/DeleteAccount.tsx:82 -#~ msgid "<0>Delete Account <1><2>\"<3>{0}<4>\"" -#~ msgstr "<1><2>\"<3>{0}<4>\"<0> 계정 삭제" +msgid "<0>Delete Account <1><2>\"<3>{0}<4>\"" +msgstr "<1><2>\"<3>{0}<4>\"<0> 계정 삭제" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:37 msgid "<0>Follow some<1>Recommended<2>Users" @@ -108,8 +112,8 @@ msgstr "<1>추천 사용자<0>팔로우하기" #~ msgstr "<0>참고: 프로필과 게시물은 공개 상태로 유지됩니다. Bluesky 콘텐츠를 표시하는 타사 앱은 이 설정을 준수하지 않을 수 있습니다." #: src/view/com/auth/onboarding/WelcomeDesktop.tsx:22 -#~ msgid "<0>Welcome to<1>Bluesky" -#~ msgstr "<1>Bluesky<0>에 오신 것을 환영합니다" +msgid "<0>Welcome to<1>Bluesky" +msgstr "<1>Bluesky<0>에 오신 것을 환영합니다" #: src/view/com/util/moderation/LabelInfo.tsx:45 msgid "A content warning has been applied to this {0}." @@ -120,46 +124,47 @@ msgid "A new version of the app is available. Please update to continue using th msgstr "새 버전의 앱을 사용할 수 있습니다. 앱을 계속 사용하려면 업데이트하세요." #: src/view/com/modals/EditImage.tsx:299 -#: src/view/screens/Settings.tsx:417 +#: src/view/screens/Settings.tsx:418 msgid "Accessibility" msgstr "접근성" #: src/view/com/auth/login/LoginForm.tsx:163 -#: src/view/screens/Settings.tsx:286 +#: src/view/screens/Settings.tsx:287 msgid "Account" msgstr "계정" #: src/view/com/profile/ProfileHeader.tsx:293 -#~ msgid "Account blocked" -#~ msgstr "계정 차단됨" +msgid "Account blocked" +msgstr "계정 차단됨" #: src/view/com/profile/ProfileHeader.tsx:260 -#~ msgid "Account muted" -#~ msgstr "계정 뮤트됨" +msgid "Account muted" +msgstr "계정 뮤트됨" #: src/view/com/util/AccountDropdownBtn.tsx:41 msgid "Account options" msgstr "계정 옵션" #: src/view/com/util/AccountDropdownBtn.tsx:25 -#~ msgid "Account removed from quick access" -#~ msgstr "퀵 액세스에서 계정 제거" +msgid "Account removed from quick access" +msgstr "퀵 액세스에서 계정 제거" #: src/view/com/profile/ProfileHeader.tsx:315 -#~ msgid "Account unblocked" -#~ msgstr "계정 차단 해제됨" +msgid "Account unblocked" +msgstr "계정 차단 해제됨" #: src/view/com/profile/ProfileHeader.tsx:273 -#~ msgid "Account unmuted" -#~ msgstr "계정 언뮤트됨" +msgid "Account unmuted" +msgstr "계정 언뮤트됨" #: src/state/queries/preferences/moderation.ts:138 -#~ msgid "Accounts falsely claiming to be people or orgs" -#~ msgstr "사람 또는 조직을 사칭하는 계정" +msgid "Accounts falsely claiming to be people or orgs" +msgstr "사람 또는 조직을 사칭하는 계정" +#: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:151 #: src/view/com/modals/ListAddRemoveUsers.tsx:264 #: src/view/com/modals/UserAddRemoveLists.tsx:193 -#: src/view/screens/ProfileList.tsx:763 +#: src/view/screens/ProfileList.tsx:772 msgid "Add" msgstr "추가" @@ -167,12 +172,12 @@ msgstr "추가" msgid "Add a content warning" msgstr "콘텐츠 경고 추가" -#: src/view/screens/ProfileList.tsx:753 +#: src/view/screens/ProfileList.tsx:762 msgid "Add a user to this list" msgstr "이 리스트에 사용자 추가" -#: src/view/screens/Settings.tsx:355 -#: src/view/screens/Settings.tsx:364 +#: src/view/screens/Settings.tsx:356 +#: src/view/screens/Settings.tsx:365 msgid "Add account" msgstr "계정 추가" @@ -180,22 +185,28 @@ msgstr "계정 추가" #: src/view/com/composer/photos/Gallery.tsx:180 #: src/view/com/modals/AltImage.tsx:93 msgid "Add alt text" -msgstr "대체 텍스트 추가" +msgstr "대체 텍스트 추가하기" + +#: src/view/screens/AppPasswords.tsx:102 +#: src/view/screens/AppPasswords.tsx:143 +#: src/view/screens/AppPasswords.tsx:156 +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 "상세 내용 추가" - #: src/view/com/modals/report/Modal.tsx:194 -msgid "Add details to report" -msgstr "신고 상세 내용 추가" +msgid "Add details" +msgstr "세부 정보 추가" -#: src/view/com/composer/Composer.tsx:447 +#: src/view/com/modals/report/Modal.tsx:197 +msgid "Add details to report" +msgstr "신고 세부 정보 추가" + +#: src/view/com/composer/Composer.tsx:449 msgid "Add link card" msgstr "링크 카드 추가" -#: src/view/com/composer/Composer.tsx:450 +#: src/view/com/composer/Composer.tsx:452 msgid "Add link card:" msgstr "링크 카드 추가:" @@ -203,17 +214,17 @@ msgstr "링크 카드 추가:" msgid "Add the following DNS record to your domain:" msgstr "도메인에 다음 DNS 레코드를 추가하세요:" -#: src/view/com/profile/ProfileHeader.tsx:353 +#: src/view/com/profile/ProfileHeader.tsx:357 msgid "Add to Lists" msgstr "리스트에 추가" -#: src/view/screens/ProfileFeed.tsx:271 +#: src/view/screens/ProfileFeed.tsx:281 msgid "Add to my feeds" msgstr "내 피드에 추가" #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:140 -#~ msgid "Added" -#~ msgstr "추가됨" +msgid "Added" +msgstr "추가됨" #: src/view/com/modals/ListAddRemoveUsers.tsx:191 #: src/view/com/modals/UserAddRemoveLists.tsx:128 @@ -221,10 +232,10 @@ msgid "Added to list" msgstr "리스트에 추가됨" #: src/view/com/feeds/FeedSourceCard.tsx:125 -#~ msgid "Added to my feeds" -#~ msgstr "내 피드에 추가됨" +msgid "Added to my feeds" +msgstr "내 피드에 추가됨" -#: src/view/screens/PreferencesHomeFeed.tsx:170 +#: src/view/screens/PreferencesHomeFeed.tsx:173 msgid "Adjust the number of likes a reply must have to be shown in your feed." msgstr "답글이 피드에 표시되기 위해 필요한 좋아요 표시 수를 조정합니다." @@ -233,16 +244,16 @@ msgid "Adult Content" msgstr "성인 콘텐츠" #: src/view/com/modals/ContentFilteringSettings.tsx:137 -#~ 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.tsx:602 +#: src/view/screens/Settings.tsx:603 msgid "Advanced" msgstr "고급" #: src/view/com/auth/login/ChooseAccountForm.tsx:98 -#~ msgid "Already signed in as @{0}" -#~ msgstr "이미 @{0}(으)로 로그인했습니다." +msgid "Already signed in as @{0}" +msgstr "이미 @{0}(으)로 로그인했습니다." #: src/view/com/composer/photos/Gallery.tsx:130 msgid "ALT" @@ -256,7 +267,7 @@ msgstr "대체 텍스트" msgid "Alt text describes images for blind and low-vision users, and helps give context to everyone." msgstr "대체 텍스트는 시각장애인과 저시력 사용자를 위해 이미지를 설명하며 모든 사용자의 이해를 돕습니다." -#: src/view/com/modals/VerifyEmail.tsx:118 +#: src/view/com/modals/VerifyEmail.tsx:120 msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." msgstr "{0}(으)로 이메일을 전송했습니다. 이 이메일에는 아래에 입력하는 확인 코드가 포함되어 있습니다." @@ -264,43 +275,52 @@ 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/modals/report/ReasonOptions.tsx:23 +msgid "An issue not included in these options" +msgstr "이 옵션에 포함되지 않은 문제" + #: src/view/com/profile/FollowButton.tsx:30 #: src/view/com/profile/FollowButton.tsx:40 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:183 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:193 -#~ msgid "An issue occurred, please try again." -#~ msgstr "문제가 발생했습니다. 다시 시도해 주세요." +msgid "An issue occurred, please try again." +msgstr "문제가 발생했습니다. 다시 시도해 주세요." -#: src/view/com/notifications/FeedItem.tsx:237 +#: src/view/com/auth/create/Policies.tsx:80 +#: src/view/com/notifications/FeedItem.tsx:240 #: src/view/com/threadgate/WhoCanReply.tsx:178 msgid "and" msgstr "및" +#: src/view/com/modals/report/ReasonOptions.tsx:14 +msgid "Anti-Social Behavior" +msgstr "반사회적 행위" + #: src/view/screens/LanguageSettings.tsx:95 msgid "App Language" msgstr "앱 언어" -#: src/view/screens/AppPasswords.tsx:227 -#~ msgid "App password deleted" -#~ msgstr "앱 비밀번호 삭제됨" +#: src/view/screens/AppPasswords.tsx:228 +msgid "App password deleted" +msgstr "앱 비밀번호 삭제됨" #: src/view/com/modals/AddAppPasswords.tsx:133 -#~ msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." -#~ msgstr "앱 비밀번호 이름에는 문자, 숫자, 공백, 대시, 밑줄만 사용할 수 있습니다." +msgid "App Password names can only contain letters, numbers, spaces, dashes, and underscores." +msgstr "앱 비밀번호 이름에는 문자, 숫자, 공백, 대시, 밑줄만 사용할 수 있습니다." #: src/view/com/modals/AddAppPasswords.tsx:98 -#~ msgid "App Password names must be at least 4 characters long." -#~ msgstr "앱 비밀번호 이름은 4자 이상이어야 합니다." +msgid "App Password names must be at least 4 characters long." +msgstr "앱 비밀번호 이름은 4자 이상이어야 합니다." -#: src/view/screens/Settings.tsx:622 +#: src/view/screens/Settings.tsx:623 msgid "App passwords" msgstr "앱 비밀번호" -#: src/view/screens/AppPasswords.tsx:186 +#: src/view/screens/AppPasswords.tsx:187 msgid "App Passwords" msgstr "앱 비밀번호" -#: src/view/com/util/forms/PostDropdownBtn.tsx:236 +#: src/view/com/util/forms/PostDropdownBtn.tsx:238 msgid "Appeal content warning" msgstr "콘텐츠 경고 이의신청" @@ -320,7 +340,7 @@ msgstr "이 결정에 이의신청" msgid "Appeal this decision." msgstr "이 결정에 이의신청합니다." -#: src/view/screens/Settings.tsx:432 +#: src/view/screens/Settings.tsx:433 msgid "Appearance" msgstr "모양" @@ -328,7 +348,7 @@ msgstr "모양" #~ msgid "Apps that respect this setting, including the official Bluesky app and bsky.app website, won't show your content to logged out users." #~ msgstr "Bluesky 공식 앱과 bsky.app 웹사이트를 포함하여 이 설정을 준수하는 앱은 로그아웃한 사용자에게 내 콘텐츠를 표시하지 않습니다." -#: src/view/screens/AppPasswords.tsx:223 +#: src/view/screens/AppPasswords.tsx:224 msgid "Are you sure you want to delete the app password \"{name}\"?" msgstr "앱 비밀번호 \"{name}\"을(를) 삭제하시겠습니까?" @@ -336,13 +356,13 @@ msgstr "앱 비밀번호 \"{name}\"을(를) 삭제하시겠습니까?" msgid "Are you sure you'd like to discard this draft?" msgstr "이 초안을 삭제하시겠습니까?" -#: src/view/screens/ProfileList.tsx:353 +#: src/view/screens/ProfileList.tsx:361 msgid "Are you sure?" -msgstr "확실합니까?" +msgstr "정말인가요?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:219 +#: src/view/com/util/forms/PostDropdownBtn.tsx:221 msgid "Are you sure? This cannot be undone." -msgstr "확실합니까? 취소할 수 없습니다." +msgstr "정말인가요? 되돌릴 수 없습니다." #: src/view/com/modals/SelfLabel.tsx:123 msgid "Artistic or non-erotic nudity." @@ -361,11 +381,11 @@ msgstr "선정적이지 않거나 예술적인 노출." #: src/view/com/post-thread/PostThread.tsx:388 #: src/view/com/post-thread/PostThread.tsx:438 #: src/view/com/post-thread/PostThread.tsx:446 -#: src/view/com/profile/ProfileHeader.tsx:672 +#: src/view/com/profile/ProfileHeader.tsx:676 msgid "Back" msgstr "뒤로" -#: src/view/screens/Settings.tsx:461 +#: src/view/screens/Settings.tsx:462 msgid "Basics" msgstr "기본" @@ -374,24 +394,24 @@ msgstr "기본" msgid "Birthday" msgstr "생년월일" -#: src/view/screens/Settings.tsx:312 +#: src/view/screens/Settings.tsx:313 msgid "Birthday:" msgstr "생년월일:" -#: src/view/com/profile/ProfileHeader.tsx:282 -#: src/view/com/profile/ProfileHeader.tsx:389 +#: src/view/com/profile/ProfileHeader.tsx:286 +#: src/view/com/profile/ProfileHeader.tsx:393 msgid "Block Account" msgstr "계정 차단" -#: src/view/screens/ProfileList.tsx:523 +#: src/view/screens/ProfileList.tsx:531 msgid "Block accounts" msgstr "계정 차단" -#: src/view/screens/ProfileList.tsx:473 +#: src/view/screens/ProfileList.tsx:481 msgid "Block list" msgstr "리스트 차단" -#: src/view/screens/ProfileList.tsx:308 +#: src/view/screens/ProfileList.tsx:312 msgid "Block these accounts?" msgstr "이 계정들을 차단하시겠습니까?" @@ -403,7 +423,7 @@ msgstr "차단한 계정" msgid "Blocked Accounts" msgstr "차단한 계정" -#: src/view/com/profile/ProfileHeader.tsx:284 +#: src/view/com/profile/ProfileHeader.tsx:288 msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." msgstr "차단한 계정은 내 스레드에 답글을 달거나 나를 멘션하거나 기타 다른 방식으로 나와 상호작용할 수 없습니다." @@ -415,11 +435,12 @@ msgstr "차단한 계정은 내 스레드에 답글을 달거나 나를 멘션 msgid "Blocked post." msgstr "차단된 게시물." -#: src/view/screens/ProfileList.tsx:310 +#: src/view/screens/ProfileList.tsx:314 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/auth/SplashScreen.web.tsx:113 msgid "Blog" msgstr "블로그" @@ -427,14 +448,17 @@ msgstr "블로그" msgid "Bluesky" msgstr "Bluesky" +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:82 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 msgid "Bluesky is flexible." msgstr "Bluesky는 유연합니다." +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:71 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 msgid "Bluesky is open." msgstr "Bluesky는 열려 있습니다." +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:58 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 msgid "Bluesky is public." msgstr "Bluesky는 공개적입니다." @@ -445,23 +469,24 @@ msgstr "Bluesky는 더 건강한 커뮤니티를 구축하기 위해 초대 방 #: src/view/screens/Moderation.tsx:225 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는 로그아웃한 사용자에게 내 프로필과 게시물을 표시하지 않습니다. 다른 앱에서는 이 설정을 따르지 않을 수 있습니다. 내 계정을 비공개로 전환하지는 않습니다." +msgstr "로그아웃한 사용자에게 내 프로필과 게시물을 표시하지 않습니다. 다른 앱에서는 이 설정을 따르지 않을 수 있습니다. 내 계정을 비공개로 전환하지는 않습니다." #: src/view/com/modals/ServerInput.tsx:78 msgid "Bluesky.Social" msgstr "Bluesky.Social" -#: src/view/screens/Settings.tsx:751 +#: src/view/screens/Settings.tsx:752 msgid "Build version {0} {1}" msgstr "빌드 버전 {0} {1}" #: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +#: src/view/com/auth/SplashScreen.web.tsx:108 msgid "Business" msgstr "비즈니스" #: src/view/com/auth/create/Policies.tsx:87 -#~ msgid "By creating an account you agree to the {els}." -#~ msgstr "계정을 만들면 {els}에 동의하는 것입니다." +msgid "By creating an account you agree to the {els}." +msgstr "계정을 만들면 {els}에 동의하는 것입니다." #: src/view/com/composer/photos/OpenCameraBtn.tsx:60 #: src/view/com/util/UserAvatar.tsx:221 @@ -469,22 +494,26 @@ msgstr "비즈니스" msgid "Camera" msgstr "카메라" -#: src/view/com/modals/AddAppPasswords.tsx:214 +#: src/view/com/modals/AddAppPasswords.tsx:218 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/view/com/composer/Composer.tsx:294 -#: src/view/com/composer/Composer.tsx:297 +#: src/view/com/composer/Composer.tsx:296 +#: src/view/com/composer/Composer.tsx:299 #: src/view/com/modals/ChangeEmail.tsx:218 #: src/view/com/modals/ChangeEmail.tsx:220 +#: src/view/com/modals/ChangeHandle.tsx:153 #: src/view/com/modals/Confirm.tsx:88 -#: src/view/com/modals/CreateOrEditList.tsx:267 -#: src/view/com/modals/CreateOrEditList.tsx:272 -#: src/view/com/modals/DeleteAccount.tsx:150 -#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/Confirm.tsx:91 +#: src/view/com/modals/CreateOrEditList.tsx:270 +#: src/view/com/modals/CreateOrEditList.tsx:275 +#: src/view/com/modals/crop-image/CropImage.web.tsx:137 +#: src/view/com/modals/DeleteAccount.tsx:152 +#: src/view/com/modals/DeleteAccount.tsx:225 #: src/view/com/modals/EditImage.tsx:323 -#: src/view/com/modals/EditProfile.tsx:248 +#: src/view/com/modals/EditProfile.tsx:249 #: src/view/com/modals/LinkWarning.tsx:85 +#: src/view/com/modals/LinkWarning.tsx:87 #: src/view/com/modals/Repost.tsx:73 #: src/view/com/modals/Waitlist.tsx:136 #: src/view/screens/Search/Search.tsx:601 @@ -492,8 +521,8 @@ msgstr "글자, 숫자, 공백, 대시, 밑줄만 포함할 수 있습니다. msgid "Cancel" msgstr "취소" -#: src/view/com/modals/DeleteAccount.tsx:146 -#: src/view/com/modals/DeleteAccount.tsx:219 +#: src/view/com/modals/DeleteAccount.tsx:148 +#: src/view/com/modals/DeleteAccount.tsx:221 msgid "Cancel account deletion" msgstr "계정 삭제 취소" @@ -509,7 +538,7 @@ msgstr "핸들 변경 취소" msgid "Cancel image crop" msgstr "이미지 자르기 취소" -#: src/view/com/modals/EditProfile.tsx:243 +#: src/view/com/modals/EditProfile.tsx:244 msgid "Cancel profile editing" msgstr "프로필 편집 취소" @@ -526,12 +555,12 @@ msgstr "검색 취소" msgid "Cancel waitlist signup" msgstr "대기자 명단 등록 취소" -#: src/view/screens/Settings.tsx:306 +#: src/view/screens/Settings.tsx:307 msgid "Change" msgstr "변경" -#: src/view/screens/Settings.tsx:634 -#: src/view/screens/Settings.tsx:643 +#: src/view/screens/Settings.tsx:635 +#: src/view/screens/Settings.tsx:644 msgid "Change handle" msgstr "핸들 변경" @@ -539,7 +568,7 @@ msgstr "핸들 변경" msgid "Change Handle" msgstr "핸들 변경" -#: src/view/com/modals/VerifyEmail.tsx:141 +#: src/view/com/modals/VerifyEmail.tsx:143 msgid "Change my email" msgstr "내 이메일 변경" @@ -555,7 +584,7 @@ msgstr "몇 가지 추천 피드를 확인하세요. +를 탭하여 고정된 msgid "Check out some recommended users. Follow them to see similar users." msgstr "추천 사용자를 확인하세요. 해당 사용자를 팔로우하여 비슷한 사용자를 만날 수 있습니다." -#: src/view/com/modals/DeleteAccount.tsx:163 +#: src/view/com/modals/DeleteAccount.tsx:165 msgid "Check your inbox for an email with the confirmation code to enter below:" msgstr "받은 편지함에서 아래에 입력하는 확인 코드가 포함된 이메일이 있는지 확인하세요:" @@ -567,6 +596,7 @@ msgstr "\"모두\" 또는 \"없음\"을 선택하세요." msgid "Choose Service" msgstr "서비스 선택" +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:85 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 msgid "Choose the algorithms that power your experience with custom feeds." msgstr "맞춤 피드를 통해 사용자 경험을 강화하는 알고리즘을 선택합니다." @@ -579,19 +609,19 @@ msgstr "맞춤 피드를 통해 사용자 경험을 강화하는 알고리즘을 msgid "Choose your password" msgstr "비밀번호를 입력하세요" -#: src/view/screens/Settings.tsx:727 +#: src/view/screens/Settings.tsx:728 msgid "Clear all legacy storage data" msgstr "모든 레거시 스토리지 데이터 지우기" -#: src/view/screens/Settings.tsx:729 +#: src/view/screens/Settings.tsx:730 msgid "Clear all legacy storage data (restart after this)" msgstr "모든 레거시 스토리지 데이터 지우기 (이후 다시 시작)" -#: src/view/screens/Settings.tsx:739 +#: src/view/screens/Settings.tsx:740 msgid "Clear all storage data" msgstr "모든 스토리지 데이터 지우기" -#: src/view/screens/Settings.tsx:741 +#: src/view/screens/Settings.tsx:742 msgid "Clear all storage data (restart after this)" msgstr "모든 스토리지 데이터 지우기 (이후 다시 시작)" @@ -630,9 +660,11 @@ msgstr "답글 작성하기" #: src/view/com/modals/AppealLabel.tsx:98 #: src/view/com/modals/Confirm.tsx:75 +#: src/view/com/modals/Confirm.tsx:78 #: src/view/com/modals/SelfLabel.tsx:154 -#: src/view/com/modals/VerifyEmail.tsx:225 -#: src/view/screens/PreferencesHomeFeed.tsx:305 +#: src/view/com/modals/VerifyEmail.tsx:227 +#: src/view/com/modals/VerifyEmail.tsx:229 +#: src/view/screens/PreferencesHomeFeed.tsx:308 #: src/view/screens/PreferencesThreads.tsx:159 msgid "Confirm" msgstr "확인" @@ -646,13 +678,13 @@ msgstr "변경 확인" msgid "Confirm content language settings" msgstr "콘텐츠 언어 설정 확인" -#: src/view/com/modals/DeleteAccount.tsx:209 +#: src/view/com/modals/DeleteAccount.tsx:211 msgid "Confirm delete account" msgstr "계정 삭제 확인" #: src/view/com/modals/ChangeEmail.tsx:157 -#: src/view/com/modals/DeleteAccount.tsx:176 -#: src/view/com/modals/VerifyEmail.tsx:159 +#: src/view/com/modals/DeleteAccount.tsx:178 +#: src/view/com/modals/VerifyEmail.tsx:161 msgid "Confirmation code" msgstr "확인 코드" @@ -661,6 +693,10 @@ msgstr "확인 코드" msgid "Connecting..." msgstr "연결 중…" +#: src/view/com/modals/report/ReasonOptions.tsx:38 +msgid "Contains copyrighted material" +msgstr "저작권이 있는 자료가 포함됨" + #: src/view/screens/Moderation.tsx:81 msgid "Content filtering" msgstr "콘텐츠 필터링" @@ -687,44 +723,44 @@ msgstr "콘텐츠 경고" msgid "Continue" msgstr "계속" -#: src/view/com/modals/AddAppPasswords.tsx:193 -#: src/view/com/modals/InviteCodes.tsx:179 +#: src/view/com/modals/AddAppPasswords.tsx:197 +#: src/view/com/modals/InviteCodes.tsx:182 msgid "Copied" msgstr "복사됨" #: src/view/screens/Settings.tsx:236 -#~ msgid "Copied build version to clipboard" -#~ msgstr "빌드 버전 클립보드에 복사됨" +msgid "Copied build version to clipboard" +msgstr "빌드 버전 클립보드에 복사됨" #: src/lib/sharing.ts:23 #: src/view/com/modals/AddAppPasswords.tsx:75 #: src/view/com/modals/ChangeHandle.tsx:325 #: src/view/com/modals/InviteCodes.tsx:152 #: src/view/com/util/forms/PostDropdownBtn.tsx:100 -#~ msgid "Copied to clipboard" -#~ msgstr "클립보드에 복사됨" +msgid "Copied to clipboard" +msgstr "클립보드에 복사됨" -#: src/view/com/modals/AddAppPasswords.tsx:186 +#: src/view/com/modals/AddAppPasswords.tsx:190 msgid "Copy" msgstr "복사" #: src/view/com/modals/ChangeHandle.tsx:479 -#~ msgid "Copy {0}" -#~ msgstr "{0} 복사" +msgid "Copy {0}" +msgstr "{0} 복사" -#: src/view/screens/ProfileList.tsx:385 +#: src/view/screens/ProfileList.tsx:393 msgid "Copy link to list" msgstr "리스트 링크 복사" -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/com/util/forms/PostDropdownBtn.tsx:141 msgid "Copy link to post" msgstr "게시물 링크 복사" -#: src/view/com/profile/ProfileHeader.tsx:338 +#: src/view/com/profile/ProfileHeader.tsx:342 msgid "Copy link to profile" msgstr "프로필 링크 복사" -#: src/view/com/util/forms/PostDropdownBtn.tsx:125 +#: src/view/com/util/forms/PostDropdownBtn.tsx:127 msgid "Copy post text" msgstr "게시물 텍스트 복사" @@ -732,16 +768,21 @@ msgstr "게시물 텍스트 복사" msgid "Copyright Policy" msgstr "저작권 정책" +#: src/view/com/modals/report/ReasonOptions.tsx:37 +msgid "Copyright Violation" +msgstr "저작권 침해" + #: src/view/screens/ProfileFeed.tsx:95 msgid "Could not load feed" msgstr "피드를 불러올 수 없습니다" -#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:848 msgid "Could not load list" msgstr "리스트를 불러올 수 없습니다" #: src/view/com/auth/HomeLoggedOutCTA.tsx:62 #: src/view/com/auth/SplashScreen.tsx:46 +#: src/view/com/auth/SplashScreen.web.tsx:78 msgid "Create a new account" msgstr "새 계정 만들기" @@ -749,12 +790,16 @@ msgstr "새 계정 만들기" msgid "Create Account" msgstr "계정 만들기" +#: src/view/com/modals/AddAppPasswords.tsx:228 +msgid "Create App Password" +msgstr "앱 비밀번호 만들기" + #: src/view/com/auth/HomeLoggedOutCTA.tsx:54 #: src/view/com/auth/SplashScreen.tsx:43 msgid "Create new account" msgstr "새 계정 만들기" -#: src/view/screens/AppPasswords.tsx:248 +#: src/view/screens/AppPasswords.tsx:249 msgid "Created {0}" msgstr "{0} 생성됨" @@ -765,51 +810,51 @@ msgstr "사용자 지정 도메인" #: src/view/screens/PreferencesExternalEmbeds.tsx:55 msgid "Customize media from external sites." -msgstr "" +msgstr "외부 사이트 미디어를 사용자 지정합니다." -#: src/view/screens/Settings.tsx:648 +#: src/view/screens/Settings.tsx:649 msgid "Danger Zone" msgstr "위험 구역" #: src/view/screens/Settings.tsx:452 -#~ msgid "Dark" -#~ msgstr "어두움" +msgid "Dark" +msgstr "어두움" #: src/view/com/auth/create/Step1.tsx:61 -#~ msgid "default" -#~ msgstr "기본" +msgid "default" +msgstr "기본" -#: src/view/screens/Settings.tsx:655 +#: src/view/screens/Settings.tsx:656 msgid "Delete account" msgstr "계정 삭제" #: src/view/com/modals/DeleteAccount.tsx:83 -msgid "Delete Account" -msgstr "계정 삭제" +#~ msgid "Delete Account" +#~ msgstr "계정 삭제" -#: src/view/screens/AppPasswords.tsx:221 -#: src/view/screens/AppPasswords.tsx:241 +#: src/view/screens/AppPasswords.tsx:222 +#: src/view/screens/AppPasswords.tsx:242 msgid "Delete app password" msgstr "앱 비밀번호 삭제" -#: src/view/screens/ProfileList.tsx:352 -#: src/view/screens/ProfileList.tsx:412 +#: src/view/screens/ProfileList.tsx:360 +#: src/view/screens/ProfileList.tsx:420 msgid "Delete List" msgstr "리스트 삭제" -#: src/view/com/modals/DeleteAccount.tsx:212 +#: src/view/com/modals/DeleteAccount.tsx:214 msgid "Delete my account" msgstr "내 계정 삭제" -#: src/view/screens/Settings.tsx:665 +#: src/view/screens/Settings.tsx:666 msgid "Delete my account…" msgstr "내 계정 삭제…" -#: src/view/com/util/forms/PostDropdownBtn.tsx:214 +#: src/view/com/util/forms/PostDropdownBtn.tsx:216 msgid "Delete post" msgstr "게시물 삭제" -#: src/view/com/util/forms/PostDropdownBtn.tsx:218 +#: src/view/com/util/forms/PostDropdownBtn.tsx:220 msgid "Delete this post?" msgstr "이 게시물을 삭제하시겠습니까?" @@ -817,10 +862,10 @@ msgstr "이 게시물을 삭제하시겠습니까?" msgid "Deleted post." msgstr "삭제된 게시물." -#: src/view/com/modals/CreateOrEditList.tsx:218 -#: src/view/com/modals/CreateOrEditList.tsx:234 -#: src/view/com/modals/EditProfile.tsx:197 -#: src/view/com/modals/EditProfile.tsx:209 +#: src/view/com/modals/CreateOrEditList.tsx:221 +#: src/view/com/modals/CreateOrEditList.tsx:237 +#: src/view/com/modals/EditProfile.tsx:198 +#: src/view/com/modals/EditProfile.tsx:210 msgid "Description" msgstr "설명" @@ -828,7 +873,7 @@ msgstr "설명" msgid "Dev Server" msgstr "개발 서버" -#: src/view/screens/Settings.tsx:670 +#: src/view/screens/Settings.tsx:671 msgid "Developer Tools" msgstr "개발자 도구" @@ -849,53 +894,59 @@ msgid "Discourage apps from showing my account to logged-out users" msgstr "앱이 로그아웃한 사용자에게 내 계정을 표시하지 않도록 설정하기" #: src/view/com/posts/FollowingEmptyState.tsx:74 -#~ msgid "Discover new custom feeds" -#~ msgstr "새로운 맞춤 피드 찾아보기" +#: src/view/com/posts/FollowingEndOfFeed.tsx:75 +msgid "Discover new custom feeds" +msgstr "새로운 맞춤 피드 찾아보기" #: src/view/screens/Feeds.tsx:405 msgid "Discover new feeds" msgstr "새 피드 발견하기" -#: src/view/com/modals/EditProfile.tsx:191 +#: src/view/com/modals/EditProfile.tsx:192 msgid "Display name" msgstr "표시 이름" -#: src/view/com/modals/EditProfile.tsx:179 +#: src/view/com/modals/EditProfile.tsx:180 msgid "Display Name" msgstr "표시 이름" #: src/view/com/modals/ChangeHandle.tsx:396 -#~ msgid "DNS Panel" -#~ msgstr "DNS 패널" +msgid "DNS Panel" +msgstr "DNS 패널" #: src/state/queries/preferences/moderation.ts:108 -#~ msgid "Does not include nudity" -#~ msgstr "신체 노출 미포함" +msgid "Does not include nudity" +msgstr "신체 노출 미포함" #: src/view/com/modals/ChangeHandle.tsx:480 -#~ msgid "Domain Value" -#~ msgstr "도메인 값" +msgid "Domain Value" +msgstr "도메인 값" -#: src/view/com/modals/ChangeHandle.tsx:485 +#: src/view/com/modals/ChangeHandle.tsx:487 msgid "Domain verified!" msgstr "도메인을 확인했습니다!" #: src/view/com/auth/create/Step2.tsx:83 -#~ msgid "Don't have an invite code?" -#~ msgstr "초대 코드가 없으십니까?" +msgid "Don't have an invite code?" +msgstr "초대 코드가 없으십니까?" #: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: src/view/com/modals/AddAppPasswords.tsx:228 #: src/view/com/modals/AltImage.tsx:115 #: 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/EditImage.tsx:333 +#: src/view/com/modals/InviteCodes.tsx:80 +#: src/view/com/modals/InviteCodes.tsx:123 #: src/view/com/modals/ListAddRemoveUsers.tsx:142 +#: 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:79 -#: src/view/screens/PreferencesHomeFeed.tsx:308 +#: src/view/com/modals/UserAddRemoveLists.tsx:82 +#: src/view/screens/PreferencesHomeFeed.tsx:311 #: src/view/screens/PreferencesThreads.tsx:162 msgid "Done" msgstr "완료" @@ -904,37 +955,74 @@ msgstr "완료" msgid "Done{extraText}" msgstr "완료{extraText}" -#: src/view/com/modals/InviteCodes.tsx:94 +#: src/view/com/auth/create/Step3.tsx:33 +#: src/view/com/modals/ChangeHandle.tsx:257 +msgid "e.g. alice" +msgstr "예: alice" + +#: src/view/com/modals/EditProfile.tsx:185 +msgid "e.g. Alice Roberts" +msgstr "예: 앨리스 로버츠" + +#: src/view/com/modals/ChangeHandle.tsx:379 +msgid "e.g. alice.com" +msgstr "예: alice.com" + +#: src/view/com/modals/EditProfile.tsx:203 +msgid "e.g. Artist, dog-lover, and avid reader." +msgstr "예: 예술가, 개 애호가, 독서광." + +#: src/view/com/modals/CreateOrEditList.tsx:207 +msgid "e.g. Great Posters" +msgstr "예: 멋진 포스터" + +#: src/view/com/modals/ServerInput.tsx:94 +msgid "e.g. https://bsky.app" +msgstr "예: https://bsky.app" + +#: src/view/com/modals/CreateOrEditList.tsx:208 +msgid "e.g. Spammers" +msgstr "예: 스팸 계정" + +#: src/view/com/modals/CreateOrEditList.tsx:228 +msgid "e.g. The posters who never miss." +msgstr "예: 놓칠 수 없는 포스터들." + +#: src/view/com/modals/CreateOrEditList.tsx:229 +msgid "e.g. Users that repeatedly reply with ads." +msgstr "예: 반복적으로 광고 답글을 다는 계정." + +#: src/view/com/modals/InviteCodes.tsx:96 msgid "Each code works once. You'll receive more invite codes periodically." msgstr "각 코드는 한 번만 사용할 수 있습니다. 주기적으로 더 많은 초대 코드를 받게 됩니다." #: src/view/com/modals/CreateOrEditList.tsx:178 -#~ msgid "Edit" -#~ msgstr "편집" +msgid "Edit" +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:400 +#: src/view/screens/ProfileList.tsx:408 msgid "Edit list details" -msgstr "리스트 상세 편집" +msgstr "리스트 세부 정보 편집" #: src/view/screens/Feeds.tsx:367 #: src/view/screens/SavedFeeds.tsx:84 msgid "Edit My Feeds" msgstr "내 피드 편집" -#: src/view/com/modals/EditProfile.tsx:151 +#: src/view/com/modals/EditProfile.tsx:152 msgid "Edit my profile" msgstr "내 프로필 편집" -#: src/view/com/profile/ProfileHeader.tsx:453 +#: src/view/com/profile/ProfileHeader.tsx:457 msgid "Edit profile" msgstr "프로필 편집" -#: src/view/com/profile/ProfileHeader.tsx:456 +#: src/view/com/profile/ProfileHeader.tsx:460 msgid "Edit Profile" msgstr "프로필 편집" @@ -955,41 +1043,57 @@ msgstr "이메일 주소" #: src/view/com/modals/ChangeEmail.tsx:56 #: src/view/com/modals/ChangeEmail.tsx:88 -#~ msgid "Email updated" -#~ msgstr "이메일 변경됨" +msgid "Email updated" +msgstr "이메일 변경됨" #: src/view/com/modals/ChangeEmail.tsx:111 msgid "Email Updated" msgstr "이메일 변경됨" #: src/view/com/modals/VerifyEmail.tsx:78 -#~ msgid "Email verified" -#~ msgstr "이메일 확인됨" +msgid "Email verified" +msgstr "이메일 확인됨" -#: src/view/screens/Settings.tsx:290 +#: src/view/screens/Settings.tsx:291 msgid "Email:" msgstr "이메일:" #: src/view/com/modals/EmbedConsent.tsx:113 msgid "Enable {0} only" -msgstr "" +msgstr "{0}만 사용" #: src/view/com/modals/ContentFilteringSettings.tsx:158 -#~ msgid "Enable Adult Content" -#~ msgstr "성인 콘텐츠 활성화" +msgid "Enable Adult Content" +msgstr "성인 콘텐츠 활성화" #: src/view/com/modals/EmbedConsent.tsx:97 msgid "Enable External Media" -msgstr "" +msgstr "외부 미디어 사용" -#: src/view/screens/PreferencesHomeFeed.tsx:144 +#: src/view/screens/PreferencesExternalEmbeds.tsx:75 +msgid "Enable media players for" +msgstr "미디어 플레이어를 사용할 외부 사이트" + +#: src/view/screens/PreferencesHomeFeed.tsx:147 msgid "Enable this setting to only see replies between people you follow." msgstr "내가 팔로우하는 사람들 간의 답글만 표시합니다." -#: src/view/screens/Profile.tsx:426 +#: src/view/screens/Profile.tsx:427 msgid "End of feed" msgstr "피드 끝" +#: src/view/com/modals/AddAppPasswords.tsx:165 +msgid "Enter a name for this App Password" +msgstr "이 앱 비밀번호의 이름을 입력하세요" + +#: src/view/com/modals/report/InputIssueDetails.tsx:53 +msgid "Enter a reason or any other details here." +msgstr "여기에 이유 또는 기타 세부 정보를 입력하세요" + +#: src/view/com/modals/VerifyEmail.tsx:102 +msgid "Enter Confirmation Code" +msgstr "확인 코드 입력" + #: src/view/com/auth/create/Step1.tsx:71 msgid "Enter the address of your provider:" msgstr "제공자 주소를 입력하세요:" @@ -1002,6 +1106,10 @@ 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/view/com/modals/Waitlist.tsx:78 +msgid "Enter your email" +msgstr "이메일을 입력하세요" + #: src/view/com/auth/create/Step2.tsx:104 msgid "Enter your email address" msgstr "이메일 주소를 입력하세요" @@ -1022,40 +1130,44 @@ msgstr "오류:" msgid "Everybody" msgstr "모두" +#: src/view/com/modals/report/ReasonOptions.tsx:30 +msgid "Excessive mentions or replies" +msgstr "과도한 멘션 또는 답글" + #: src/state/queries/preferences/moderation.ts:131 -#~ msgid "Excessive unwanted interactions" -#~ msgstr "원치 않는 과도한 상호작용" +msgid "Excessive unwanted interactions" +msgstr "원치 않는 과도한 상호작용" #: src/view/com/lightbox/Lightbox.web.tsx:156 msgid "Expand alt text" msgstr "대체 텍스트 확장" #: src/state/queries/preferences/moderation.ts:91 -#~ msgid "Explicit Sexual Images" -#~ msgstr "노골적인 성적 이미지" +msgid "Explicit Sexual Images" +msgstr "노골적인 성적 이미지" #: src/view/com/modals/EmbedConsent.tsx:64 msgid "External Media" -msgstr "" +msgstr "외부 미디어" #: 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 "" +msgstr "외부 미디어는 웹사이트가 나와 내 기기에 대한 정보를 수집하도록 할 수 있습니다. \"재생\" 버튼을 누르기 전까지는 어떠한 정보도 전송되거나 요청되지 않습니다." #: src/view/screens/PreferencesExternalEmbeds.tsx:52 -#: src/view/screens/Settings.tsx:595 +#: src/view/screens/Settings.tsx:596 msgid "External Media Preferences" -msgstr "" +msgstr "외부 미디어 설정" #: src/view/com/modals/AddAppPasswords.tsx:114 #: src/view/com/modals/AddAppPasswords.tsx:118 -#~ msgid "Failed to create app password." -#~ msgstr "앱 비밀번호를 만들지 못했습니다." +msgid "Failed to create app password." +msgstr "앱 비밀번호를 만들지 못했습니다." #: src/view/com/util/forms/PostDropdownBtn.tsx:78 -#~ msgid "Failed to delete post, please try again" -#~ msgstr "게시물을 삭제하지 못했습니다. 다시 시도해 주세요." +msgid "Failed to delete post, please try again" +msgstr "게시물을 삭제하지 못했습니다. 다시 시도해 주세요." #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 @@ -1063,8 +1175,8 @@ msgid "Failed to load recommended feeds" msgstr "추천 피드를 불러오지 못했습니다" #: src/view/com/lightbox/Lightbox.tsx:83 -#~ msgid "Failed to save image: {0}" -#~ msgstr "이미지를 저장하지 못했습니다: {0}" +msgid "Failed to save image: {0}" +msgstr "이미지를 저장하지 못했습니다: {0}" #: src/view/screens/Feeds.tsx:556 msgid "Feed offline" @@ -1097,12 +1209,13 @@ msgid "Feeds are custom algorithms that users build with a little coding experti msgstr "피드는 사용자가 약간의 코딩 전문 지식으로 구축할 수 있는 맞춤 알고리즘입니다. <0/>에서 자세한 내용을 확인하세요." #: src/view/com/modals/ChangeHandle.tsx:480 -#~ msgid "File Contents" -#~ msgstr "파일 내용" +msgid "File Contents" +msgstr "파일 내용" #: src/view/com/posts/FollowingEmptyState.tsx:57 -#~ msgid "Find accounts to follow" -#~ msgstr "팔로우할 계정 찾아보기" +#: src/view/com/posts/FollowingEndOfFeed.tsx:58 +msgid "Find accounts to follow" +msgstr "팔로우할 계정 찾아보기" #: src/view/screens/Search/Search.tsx:427 msgid "Find users on Bluesky" @@ -1112,11 +1225,11 @@ msgstr "Bluesky에서 사용자 찾기" 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:152 msgid "Finding similar accounts..." msgstr "유사한 계정을 찾는 중…" -#: src/view/screens/PreferencesHomeFeed.tsx:108 +#: src/view/screens/PreferencesHomeFeed.tsx:111 msgid "Fine-tune the content you see on your home screen." msgstr "홈 화면에 표시되는 콘텐츠를 미세 조정합니다." @@ -1124,7 +1237,10 @@ msgstr "홈 화면에 표시되는 콘텐츠를 미세 조정합니다." msgid "Fine-tune the discussion threads." msgstr "토론 스레드를 미세 조정합니다." -#: src/view/com/profile/ProfileHeader.tsx:538 +#: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:138 +#: src/view/com/profile/FollowButton.tsx:64 +#: src/view/com/profile/ProfileHeader.tsx:542 +#: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:241 msgid "Follow" msgstr "팔로우" @@ -1140,40 +1256,41 @@ msgstr "일부 사용자를 팔로우하여 시작하세요. 관심 있는 사 msgid "Followed users" msgstr "팔로우한 사용자" -#: src/view/screens/PreferencesHomeFeed.tsx:151 +#: src/view/screens/PreferencesHomeFeed.tsx:154 msgid "Followed users only" msgstr "팔로우한 사용자만" #: src/view/com/notifications/FeedItem.tsx:166 -#~ msgid "followed you" -#~ msgstr "님이 나를 팔로우했습니다" +msgid "followed you" +msgstr "님이 나를 팔로우했습니다" #: src/view/screens/ProfileFollowers.tsx:25 msgid "Followers" msgstr "팔로워" -#: src/view/com/profile/ProfileHeader.tsx:624 +#: src/view/com/profile/ProfileHeader.tsx:628 msgid "following" msgstr "팔로우 중" -#: src/view/com/profile/ProfileHeader.tsx:522 +#: src/view/com/profile/ProfileHeader.tsx:526 #: src/view/screens/ProfileFollows.tsx:25 +#: src/view/shell/desktop/Feeds.tsx:27 msgid "Following" msgstr "팔로우 중" #: src/view/com/profile/ProfileHeader.tsx:196 -#~ msgid "Following {0}" -#~ msgstr "{0} 팔로우 중" +msgid "Following {0}" +msgstr "{0} 팔로우 중" -#: src/view/com/profile/ProfileHeader.tsx:571 +#: src/view/com/profile/ProfileHeader.tsx:575 msgid "Follows you" msgstr "나를 팔로우함" -#: src/view/com/modals/DeleteAccount.tsx:107 +#: src/view/com/modals/DeleteAccount.tsx:109 msgid "For security reasons, we'll need to send a confirmation code to your email address." msgstr "보안상의 이유로 이메일 주소로 확인 코드를 보내야 합니다." -#: src/view/com/modals/AddAppPasswords.tsx:207 +#: src/view/com/modals/AddAppPasswords.tsx:211 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 "보안상의 이유로 이 비밀번호는 다시 볼 수 없습니다. 이 비밀번호를 분실한 경우 새 비밀번호를 생성해야 합니다." @@ -1190,14 +1307,26 @@ msgstr "비밀번호 분실" msgid "Forgot Password" msgstr "비밀번호 분실" +#: src/view/com/modals/report/ReasonOptions.tsx:56 +msgid "Frequently Posts Unwanted Content" +msgstr "원치 않는 콘텐츠를 지속적으로 게시함" + +#: src/view/com/posts/FeedItem.tsx:187 +msgid "From <0/>" +msgstr "<0/>에서" + #: src/view/com/composer/photos/SelectPhotoBtn.tsx:43 msgid "Gallery" msgstr "갤러리" -#: src/view/com/modals/VerifyEmail.tsx:183 +#: src/view/com/modals/VerifyEmail.tsx:185 msgid "Get Started" msgstr "시작하기" +#: src/view/com/modals/report/ReasonOptions.tsx:19 +msgid "Glaring violations of law or terms of service" +msgstr "명백한 법률 또는 서비스 이용약관 위반 행위" + #: src/view/com/auth/LoggedOut.tsx:81 #: src/view/com/auth/LoggedOut.tsx:82 #: src/view/com/util/moderation/ScreenHider.tsx:123 @@ -1207,8 +1336,8 @@ msgstr "뒤로" #: src/view/screens/ProfileFeed.tsx:104 #: src/view/screens/ProfileFeed.tsx:109 -#: src/view/screens/ProfileList.tsx:848 -#: src/view/screens/ProfileList.tsx:853 +#: src/view/screens/ProfileList.tsx:857 +#: src/view/screens/ProfileList.tsx:862 msgid "Go Back" msgstr "뒤로" @@ -1219,40 +1348,46 @@ msgid "Go to next" msgstr "다음" #: src/state/queries/preferences/moderation.ts:116 -#~ msgid "Gore, self-harm, torture" -#~ msgstr "고어, 자해, 고문" +msgid "Gore, self-harm, torture" +msgstr "고어, 자해, 고문" #: src/view/com/modals/ChangeHandle.tsx:265 msgid "Handle" msgstr "핸들" +#: src/view/com/modals/report/ReasonOptions.tsx:15 +msgid "Harassment, trolling, or intolerance" +msgstr "괴롭힘, 허위 정보 게시, 편협성" + #: src/state/queries/preferences/moderation.ts:123 -#~ msgid "Hate Group Iconography" -#~ msgstr "증오 단체 도상학" +msgid "Hate Group Iconography" +msgstr "증오 단체 도상학" #: src/view/shell/desktop/RightNav.tsx:102 #: src/view/shell/Drawer.tsx:321 msgid "Help" msgstr "도움말" -#: src/view/com/modals/AddAppPasswords.tsx:148 +#: src/view/com/modals/AddAppPasswords.tsx:152 msgid "Here is your app password." msgstr "앱 비밀번호입니다." -#: src/view/com/notifications/FeedItem.tsx:324 +#: src/view/com/modals/ContentFilteringSettings.tsx:211 +#: src/view/com/modals/ContentFilteringSettings.tsx:238 +#: src/view/com/notifications/FeedItem.tsx:327 #: src/view/com/util/moderation/ContentHider.tsx:103 msgid "Hide" msgstr "숨기기" -#: src/view/com/util/forms/PostDropdownBtn.tsx:173 +#: src/view/com/util/forms/PostDropdownBtn.tsx:175 msgid "Hide post" msgstr "게시물 숨기기" -#: src/view/com/util/forms/PostDropdownBtn.tsx:177 +#: src/view/com/util/forms/PostDropdownBtn.tsx:179 msgid "Hide this post?" msgstr "이 게시물을 숨기시겠습니까?" -#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/notifications/FeedItem.tsx:319 msgid "Hide user list" msgstr "사용자 리스트 숨기기" @@ -1292,14 +1427,14 @@ msgid "Home" msgstr "홈" #: src/view/com/pager/FeedsTabBarMobile.tsx:96 -#: src/view/screens/PreferencesHomeFeed.tsx:101 -#: src/view/screens/Settings.tsx:481 +#: src/view/screens/PreferencesHomeFeed.tsx:104 +#: src/view/screens/Settings.tsx:482 msgid "Home Feed Preferences" msgstr "홈 피드 설정" #: src/view/com/modals/ChangeHandle.tsx:419 -#~ msgid "Host" -#~ msgstr "호스트" +msgid "Host" +msgstr "호스트" #: src/view/com/auth/login/ForgotPasswordForm.tsx:114 msgid "Hosting provider" @@ -1310,7 +1445,7 @@ msgstr "호스팅 제공자" msgid "Hosting provider address" msgstr "호스팅 제공자 주소" -#: src/view/com/modals/VerifyEmail.tsx:208 +#: src/view/com/modals/VerifyEmail.tsx:210 msgid "I have a code" msgstr "코드가 있습니다" @@ -1319,16 +1454,20 @@ msgid "I have my own domain" msgstr "내 도메인을 가지고 있습니다" #: src/state/queries/preferences/moderation.ts:92 -#~ msgid "i.e. pornography" -#~ msgstr "예: 포르노그래피" +msgid "i.e. pornography" +msgstr "예: 포르노그래피" #: src/view/com/modals/SelfLabel.tsx:127 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 "당신이 거주하는 국가의 법률에 따라 아직 성인이 아닌 경우, 부모 또는 법적 보호자가 당신을 대신하여 본 약관을 읽어야 합니다." +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/com/modals/report/ReasonOptions.tsx:18 +msgid "Illegal and Urgent" +msgstr "불법 및 긴급 사항" #: src/view/com/modals/AltImage.tsx:97 msgid "Image alt text" @@ -1340,12 +1479,16 @@ msgid "Image options" msgstr "이미지 옵션" #: src/state/queries/preferences/moderation.ts:124 -#~ msgid "Images of terror groups, articles covering events, etc." -#~ msgstr "테러 단체의 이미지, 사건 관련 기사 등" +msgid "Images of terror groups, articles covering events, etc." +msgstr "테러 단체의 이미지, 사건 관련 기사 등" #: src/state/queries/preferences/moderation.ts:137 -#~ msgid "Impersonation" -#~ msgstr "사칭" +msgid "Impersonation" +msgstr "사칭" + +#: src/view/com/modals/report/ReasonOptions.tsx:53 +msgid "Impersonation or false claims about identity or affiliation" +msgstr "신원 또는 소속에 대한 사칭 또는 허위 주장" #: src/view/com/search/Suggestions.tsx:104 #: src/view/com/search/Suggestions.tsx:115 @@ -1353,22 +1496,23 @@ msgstr "이미지 옵션" #~ msgstr "내 네트워크" #: src/state/queries/preferences/moderation.ts:100 -#~ msgid "Including non-sexual and artistic" -#~ msgstr "선정적이지 않거나 예술적 콘텐츠 포함" +msgid "Including non-sexual and artistic" +msgstr "선정적이지 않거나 예술적 콘텐츠 포함" #: src/view/com/auth/login/LoginForm.tsx:115 msgid "Invalid username or password" msgstr "잘못된 사용자 이름 또는 비밀번호" -#: src/view/screens/Settings.tsx:383 +#: src/view/screens/Settings.tsx:384 msgid "Invite" msgstr "초대" -#: src/view/com/modals/InviteCodes.tsx:91 -#: src/view/screens/Settings.tsx:371 +#: src/view/com/modals/InviteCodes.tsx:93 +#: src/view/screens/Settings.tsx:372 msgid "Invite a Friend" msgstr "친구 초대하기" +#: src/view/com/auth/create/Step2.tsx:63 #: src/view/com/auth/create/Step2.tsx:72 msgid "Invite code" msgstr "초대 코드" @@ -1382,6 +1526,7 @@ msgid "Invite codes: {invitesAvailable} available" msgstr "초대 코드: {invitesAvailable}개 사용 가능" #: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +#: src/view/com/auth/SplashScreen.web.tsx:118 msgid "Jobs" msgstr "채용" @@ -1406,13 +1551,13 @@ msgstr "언어 선택" msgid "Language Settings" msgstr "언어 설정" -#: src/view/screens/Settings.tsx:541 +#: src/view/screens/Settings.tsx:542 msgid "Languages" msgstr "언어" #: src/view/com/auth/create/StepHeader.tsx:14 -#~ msgid "Last step!" -#~ msgstr "마지막 단계예요!" +msgid "Last step!" +msgstr "마지막 단계예요!" #: src/view/com/util/moderation/ContentHider.tsx:101 msgid "Learn more" @@ -1445,8 +1590,8 @@ msgid "Leaving Bluesky" msgstr "Bluesky 떠나기" #: src/view/screens/Settings.tsx:273 -#~ msgid "Legacy storage cleared, you need to restart the app now." -#~ msgstr "레거시 스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." +msgid "Legacy storage cleared, you need to restart the app now." +msgstr "레거시 스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." #: src/view/com/auth/login/Login.tsx:128 #: src/view/com/auth/login/Login.tsx:144 @@ -1459,10 +1604,10 @@ msgid "Library" msgstr "라이브러리" #: src/view/screens/Settings.tsx:446 -#~ msgid "Light" -#~ msgstr "밝음" +msgid "Light" +msgstr "밝음" -#: src/view/screens/ProfileFeed.tsx:586 +#: src/view/screens/ProfileFeed.tsx:599 msgid "Like this feed" msgstr "이 피드" @@ -1472,12 +1617,12 @@ msgid "Liked by" msgstr "좋아요 표시한 계정" #: src/view/com/notifications/FeedItem.tsx:171 -#~ msgid "liked your custom feed{0}" -#~ msgstr "님이 내 맞춤 피드{0}을(를) 좋아합니다" +msgid "liked your custom feed{0}" +msgstr "님이 내 맞춤 피드{0}을(를) 좋아합니다" #: src/view/com/notifications/FeedItem.tsx:155 -#~ msgid "liked your post" -#~ msgstr "님이 내 게시물을 좋아합니다" +msgid "liked your post" +msgstr "님이 내 게시물을 좋아합니다" #: src/view/screens/Profile.tsx:164 msgid "Likes" @@ -1491,33 +1636,33 @@ msgstr "좋아요" #~ msgid "Limit the visibility of my account to logged-out users" #~ msgstr "내 계정의 공개 범위를 로그아웃한 사용자로 제한" -#: src/view/com/modals/CreateOrEditList.tsx:186 +#: src/view/com/modals/CreateOrEditList.tsx:187 msgid "List Avatar" msgstr "리스트 아바타" #: src/view/screens/ProfileList.tsx:320 -#~ msgid "List blocked" -#~ msgstr "리스트 차단됨" +msgid "List blocked" +msgstr "리스트 차단됨" #: src/view/screens/ProfileList.tsx:364 -#~ msgid "List deleted" -#~ msgstr "리스트 삭제됨" +msgid "List deleted" +msgstr "리스트 삭제됨" #: src/view/screens/ProfileList.tsx:279 -#~ msgid "List muted" -#~ msgstr "리스트 뮤트됨" +msgid "List muted" +msgstr "리스트 뮤트됨" -#: src/view/com/modals/CreateOrEditList.tsx:199 +#: src/view/com/modals/CreateOrEditList.tsx:200 msgid "List Name" msgstr "리스트 이름" #: src/view/screens/ProfileList.tsx:339 -#~ msgid "List unblocked" -#~ msgstr "리스트 차단 해제됨" +msgid "List unblocked" +msgstr "리스트 차단 해제됨" #: src/view/screens/ProfileList.tsx:298 -#~ msgid "List unmuted" -#~ msgstr "리스트 언뮤트됨" +msgid "List unmuted" +msgstr "리스트 언뮤트됨" #: src/view/screens/Profile.tsx:166 #: src/view/shell/desktop/LeftNav.tsx:379 @@ -1536,6 +1681,7 @@ msgid "Load new notifications" msgstr "새 알림 불러오기" #: src/view/com/feeds/FeedPage.tsx:189 +#: src/view/screens/ProfileList.tsx:655 msgid "Load new posts" msgstr "새 게시물 불러오기" @@ -1587,8 +1733,13 @@ msgstr "메뉴" msgid "Message from server" msgstr "서버에서 보낸 메시지" +#: src/view/com/modals/report/ReasonOptions.tsx:52 +msgid "Misleading Account" +msgstr "오해의 소지가 있는 계정" + +#: src/view/com/modals/CreateOrEditList.tsx:68 #: src/view/screens/Moderation.tsx:64 -#: src/view/screens/Settings.tsx:563 +#: src/view/screens/Settings.tsx:564 #: src/view/shell/desktop/LeftNav.tsx:397 #: src/view/shell/Drawer.tsx:509 #: src/view/shell/Drawer.tsx:510 @@ -1603,13 +1754,13 @@ msgstr "검토 리스트" msgid "Moderation Lists" msgstr "검토 리스트" -#: src/view/shell/desktop/Feeds.tsx:53 +#: src/view/shell/desktop/Feeds.tsx:57 msgid "More feeds" msgstr "피드 더 보기" -#: src/view/com/profile/ProfileHeader.tsx:548 -#: src/view/screens/ProfileFeed.tsx:361 -#: src/view/screens/ProfileList.tsx:584 +#: src/view/com/profile/ProfileHeader.tsx:552 +#: src/view/screens/ProfileFeed.tsx:371 +#: src/view/screens/ProfileList.tsx:592 msgid "More options" msgstr "옵션 더 보기" @@ -1621,15 +1772,15 @@ msgstr "옵션 더 보기" msgid "Most-liked replies first" msgstr "좋아요 많은 순" -#: src/view/com/profile/ProfileHeader.tsx:370 +#: src/view/com/profile/ProfileHeader.tsx:374 msgid "Mute Account" msgstr "계정 뮤트" -#: src/view/screens/ProfileList.tsx:511 +#: src/view/screens/ProfileList.tsx:519 msgid "Mute accounts" msgstr "계정 뮤트" -#: src/view/screens/ProfileList.tsx:458 +#: src/view/screens/ProfileList.tsx:466 msgid "Mute list" msgstr "리스트 뮤트" @@ -1637,7 +1788,7 @@ msgstr "리스트 뮤트" msgid "Mute these accounts?" msgstr "이 계정들을 뮤트하시겠습니까?" -#: src/view/com/util/forms/PostDropdownBtn.tsx:157 +#: src/view/com/util/forms/PostDropdownBtn.tsx:159 msgid "Mute thread" msgstr "스레드 뮤트" @@ -1673,37 +1824,44 @@ msgstr "내 피드" msgid "My Profile" msgstr "내 프로필" -#: src/view/screens/Settings.tsx:520 +#: src/view/screens/Settings.tsx:521 msgid "My Saved Feeds" msgstr "내 저장된 피드" -#: src/view/com/modals/AddAppPasswords.tsx:177 -#: src/view/com/modals/CreateOrEditList.tsx:211 +#: src/view/com/modals/AddAppPasswords.tsx:181 +#: src/view/com/modals/CreateOrEditList.tsx:214 msgid "Name" msgstr "이름" +#: src/view/com/modals/report/ReasonOptions.tsx:45 +#: src/view/com/modals/report/ReasonOptions.tsx:60 +msgid "Name or Description Violates Community Standards" +msgstr "이름 또는 설명이 커뮤니티 기준을 위반합니다" + #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" -msgstr "" +msgstr "{0}에서 임베드를 불러오지 않습니다" +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:74 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." msgstr "팔로워와 데이터에 대한 접근 권한을 잃지 않습니다." #: src/view/com/modals/ChangeHandle.tsx:518 -#~ msgid "Nevermind, create a handle for me" -#~ msgstr "취소하고 나만의 핸들 만들기" +msgid "Nevermind, create a handle for me" +msgstr "취소하고 나만의 핸들 만들기" +#: src/view/com/modals/CreateOrEditList.tsx:178 #: src/view/screens/Lists.tsx:76 #: src/view/screens/ModerationModlists.tsx:78 msgid "New" -msgstr "신규" +msgstr "새로 만들기" #: src/view/com/feeds/FeedPage.tsx:200 #: src/view/screens/Feeds.tsx:507 #: src/view/screens/Profile.tsx:354 -#: src/view/screens/ProfileFeed.tsx:431 +#: src/view/screens/ProfileFeed.tsx:441 #: src/view/screens/ProfileList.tsx:194 #: src/view/screens/ProfileList.tsx:222 #: src/view/shell/desktop/LeftNav.tsx:248 @@ -1725,6 +1883,7 @@ msgstr "새로운 순" #: src/view/com/auth/login/SetNewPasswordForm.tsx:156 #: src/view/com/auth/login/SetNewPasswordForm.tsx:166 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:105 msgid "Next" msgstr "다음" @@ -1732,27 +1891,27 @@ msgstr "다음" msgid "Next image" msgstr "다음 이미지" -#: src/view/screens/PreferencesHomeFeed.tsx:126 -#: src/view/screens/PreferencesHomeFeed.tsx:197 -#: src/view/screens/PreferencesHomeFeed.tsx:232 -#: src/view/screens/PreferencesHomeFeed.tsx:269 +#: 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 "아니요" -#: src/view/screens/ProfileFeed.tsx:579 -#: src/view/screens/ProfileList.tsx:720 +#: src/view/screens/ProfileFeed.tsx:592 +#: src/view/screens/ProfileList.tsx:729 msgid "No description" msgstr "설명 없음" #: src/view/com/modals/ChangeHandle.tsx:404 -#~ msgid "No DNS Panel" -#~ msgstr "DNS 패널 없음" +msgid "No DNS Panel" +msgstr "DNS 패널 없음" #: src/view/com/profile/ProfileHeader.tsx:217 -#~ msgid "No longer following {0}" -#~ msgstr "더 이상 {0}(을)를 팔로우하지 않음" +msgid "No longer following {0}" +msgstr "더 이상 {0}(을)를 팔로우하지 않음" #: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 msgid "No result" @@ -1777,7 +1936,7 @@ msgstr "{query}에 대한 결과를 찾을 수 없습니다." #: src/view/com/modals/EmbedConsent.tsx:129 msgid "No thanks" -msgstr "" +msgstr "괜찮습니다" #: src/view/com/modals/Threadgate.tsx:82 msgid "Nobody" @@ -1812,9 +1971,13 @@ msgstr "참고: Bluesky는 개방형 공개 네트워크입니다. 이 설정은 msgid "Notifications" msgstr "알림" -#: src/lib/strings/time.ts:20 -#~ msgid "now" -#~ msgstr "지금" +#: src/lib/strings/time.ts:22 +msgid "now" +msgstr "지금" + +#: src/view/com/modals/report/ReasonOptions.tsx:34 +msgid "Nudity or pornography not labeled as such" +msgstr "노출 또는 음란물로 설정되지 않은 콘텐츠" #: src/view/com/util/ErrorBoundary.tsx:34 msgid "Oh no!" @@ -1829,10 +1992,10 @@ msgid "Oldest replies first" msgstr "오래된 순" #: src/view/screens/Settings.tsx:229 -#~ msgid "Onboarding reset" -#~ msgstr "온보딩 재설정" +msgid "Onboarding reset" +msgstr "온보딩 재설정" -#: src/view/com/composer/Composer.tsx:363 +#: src/view/com/composer/Composer.tsx:365 msgid "One or more images is missing alt text." msgstr "하나 이상의 이미지에 대체 텍스트가 누락되었습니다." @@ -1840,57 +2003,57 @@ msgstr "하나 이상의 이미지에 대체 텍스트가 누락되었습니다. msgid "Only {0} can reply." msgstr "{0}만 답글을 달 수 있습니다." -#: src/view/com/composer/Composer.tsx:468 -#: src/view/com/composer/Composer.tsx:469 +#: src/view/com/composer/Composer.tsx:470 +#: src/view/com/composer/Composer.tsx:471 msgid "Open emoji picker" -msgstr "" +msgstr "이모티콘 선택기 열기" #: src/view/com/pager/FeedsTabBarMobile.tsx:76 msgid "Open navigation" -msgstr "내비게이션을 엽니다" +msgstr "내비게이션 열기" -#: src/view/screens/Settings.tsx:533 +#: src/view/screens/Settings.tsx:534 msgid "Opens configurable language settings" msgstr "구성 가능한 언어 설정을 엽니다" -#: src/view/screens/Settings.tsx:587 +#: src/view/screens/Settings.tsx:588 msgid "Opens external embeds settings" -msgstr "" +msgstr "외부 임베드 설정을 엽니다" #: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 msgid "Opens list of invite codes" -msgstr "초대 코드 목록 열기" +msgstr "초대 코드 목록을 엽니다" #: src/view/com/modals/ChangeHandle.tsx:279 msgid "Opens modal for using custom domain" msgstr "사용자 지정 도메인을 사용하기 위한 대화 상자를 엽니다" -#: src/view/screens/Settings.tsx:558 +#: src/view/screens/Settings.tsx:559 msgid "Opens moderation settings" msgstr "검토 설정을 엽니다" -#: src/view/screens/Settings.tsx:514 +#: src/view/screens/Settings.tsx:515 msgid "Opens screen with all saved feeds" msgstr "모든 저장된 피드 화면을 엽니다" -#: src/view/screens/Settings.tsx:614 +#: src/view/screens/Settings.tsx:615 msgid "Opens the app password settings page" msgstr "비밀번호 설정 페이지를 엽니다" -#: src/view/screens/Settings.tsx:473 +#: src/view/screens/Settings.tsx:474 msgid "Opens the home feed preferences" msgstr "홈 피드 설정을 엽니다" -#: src/view/screens/Settings.tsx:697 +#: src/view/screens/Settings.tsx:698 msgid "Opens the storybook page" msgstr "스토리북 페이지를 엽니다" -#: src/view/screens/Settings.tsx:677 +#: src/view/screens/Settings.tsx:678 msgid "Opens the system log page" msgstr "시스템 로그 페이지를 엽니다" -#: src/view/screens/Settings.tsx:494 +#: src/view/screens/Settings.tsx:495 msgid "Opens the threads preferences" msgstr "스레드 설정을 엽니다" @@ -1899,16 +2062,17 @@ msgid "Or combine these options:" msgstr "또는 다음 옵션을 결합하세요:" #: src/view/com/auth/create/Step1.tsx:67 -#~ msgid "Other" -#~ msgstr "기타" +#: src/view/com/modals/report/ReasonOptions.tsx:22 +msgid "Other" +msgstr "기타" #: src/view/com/auth/login/ChooseAccountForm.tsx:138 msgid "Other account" msgstr "다른 계정" #: src/state/queries/preferences/moderation.ts:99 -#~ msgid "Other Nudity" -#~ msgstr "기타 신체 노출" +msgid "Other Nudity" +msgstr "기타 신체 노출" #: src/view/com/modals/ServerInput.tsx:88 msgid "Other service" @@ -1927,7 +2091,7 @@ msgstr "페이지를 찾을 수 없음" #: src/view/com/auth/create/Step2.tsx:132 #: src/view/com/auth/login/LoginForm.tsx:221 #: src/view/com/auth/login/SetNewPasswordForm.tsx:130 -#: src/view/com/modals/DeleteAccount.tsx:191 +#: src/view/com/modals/DeleteAccount.tsx:193 msgid "Password" msgstr "비밀번호" @@ -1940,12 +2104,12 @@ msgid "Password updated!" msgstr "비밀번호 변경됨" #: src/view/com/lightbox/Lightbox.tsx:66 -#~ msgid "Permission to access camera roll is required." -#~ msgstr "앨범에 접근할 수 있는 권한이 필요합니다." +msgid "Permission to access camera roll is required." +msgstr "앨범에 접근할 수 있는 권한이 필요합니다." #: src/view/com/lightbox/Lightbox.tsx:72 -#~ msgid "Permission to access camera roll was denied. Please enable it in your system settings." -#~ msgstr "앨범에 접근할 수 있는 권한이 거부되었습니다. 시스템 설정에서 활성화하세요." +msgid "Permission to access camera roll was denied. Please enable it in your system settings." +msgstr "앨범에 접근할 수 있는 권한이 거부되었습니다. 시스템 설정에서 활성화하세요." #: src/view/com/modals/SelfLabel.tsx:121 msgid "Pictures meant for adults." @@ -1953,8 +2117,8 @@ msgstr "성인용 사진." #: src/view/screens/ProfileFeed.tsx:362 #: src/view/screens/ProfileList.tsx:556 -#~ msgid "Pin to home" -#~ msgstr "홈에 고정" +msgid "Pin to home" +msgstr "홈에 고정" #: src/view/screens/SavedFeeds.tsx:88 msgid "Pinned Feeds" @@ -1962,16 +2126,16 @@ msgstr "고정된 피드" #: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 msgid "Play {0}" -msgstr "" +msgstr "{0} 재생" #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 msgid "Play Video" -msgstr "" +msgstr "동영상 재생" #: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 msgid "Plays the GIF" -msgstr "" +msgstr "GIF를 재생합니다" #: src/view/com/auth/create/state.ts:116 msgid "Please choose your handle." @@ -1986,24 +2150,24 @@ msgid "Please confirm your email before changing it. This is a temporary require msgstr "이메일을 변경하기 전에 이메일을 확인해 주세요. 이는 이메일 변경 도구가 추가되는 동안 일시적으로 요구되는 사항이며 곧 제거될 예정입니다." #: src/view/com/modals/AddAppPasswords.tsx:89 -#~ msgid "Please enter a name for your app password. All spaces is not allowed." -#~ msgstr "앱 비밀번호의 이름을 입력하세요. 모든 공백은 허용되지 않습니다." +msgid "Please enter a name for your app password. All spaces is not allowed." +msgstr "앱 비밀번호의 이름을 입력하세요. 모든 공백 문자는 허용되지 않습니다." -#: src/view/com/modals/AddAppPasswords.tsx:140 +#: src/view/com/modals/AddAppPasswords.tsx:144 msgid "Please enter a unique name for this App Password or use our randomly generated one." -msgstr "이 앱 비밀번호에 대해 고유한 이름을 입력하거나 무작위로 생성된 이름을 사용하세요." +msgstr "이 앱 비밀번호에 대해 고유한 이름을 입력하거나 무작위로 생성된 이름을 사용합니다." #: src/view/com/auth/create/state.ts:95 msgid "Please enter your email." msgstr "이메일을 입력하세요." -#: src/view/com/modals/DeleteAccount.tsx:180 +#: src/view/com/modals/DeleteAccount.tsx:182 msgid "Please enter your password as well:" msgstr "비밀번호도 입력해 주세요:" #: src/lib/hooks/useAccountSwitcher.ts:42 -#~ msgid "Please sign in as @{0}" -#~ msgstr "@{0}(으)로 로그인하세요." +msgid "Please sign in as @{0}" +msgstr "@{0}(으)로 로그인하세요." #: src/view/com/modals/AppealLabel.tsx:72 #: src/view/com/modals/AppealLabel.tsx:75 @@ -2015,24 +2179,27 @@ msgstr "이 콘텐츠 경고가 잘못 적용되었다고 생각하는 이유를 #~ msgid "Please tell us why you think this decision was incorrect." #~ msgstr "이 결정이 잘못되었다고 생각하는 이유를 알려주세요." +#: src/view/com/modals/VerifyEmail.tsx:100 +msgid "Please Verify Your Email" +msgstr "이메일 인증하기" + #: src/view/com/composer/Composer.tsx:215 msgid "Please wait for your link card to finish loading" msgstr "링크 카드를 완전히 불러올 때까지 기다려주세요." -#: src/view/com/composer/Composer.tsx:346 #: src/view/com/post-thread/PostThread.tsx:225 #: src/view/screens/PostThread.tsx:80 msgid "Post" msgstr "게시물" -#: src/view/com/composer/Composer.tsx:336 -#: src/view/com/composer/Composer.tsx:343 -#~ msgid "Post (verb)" -#~ msgstr "게시하기" +#: src/view/com/composer/Composer.tsx:341 +#: src/view/com/composer/Composer.tsx:348 +msgid "Post (verb)" +msgstr "게시하기" #: src/view/com/util/forms/PostDropdownBtn.tsx:74 -#~ msgid "Post deleted" -#~ msgstr "게시물 삭제됨" +msgid "Post deleted" +msgstr "게시물 삭제됨" #: src/view/com/post-thread/PostThread.tsx:378 msgid "Post hidden" @@ -2050,6 +2217,10 @@ msgstr "게시물 언어" msgid "Post not found" msgstr "게시물을 찾을 수 없음" +#: src/lib/api/index.ts:242 +msgid "Posting..." +msgstr "게시하는 중…" + #: src/view/screens/Profile.tsx:161 msgid "Posts" msgstr "게시물" @@ -2070,17 +2241,19 @@ msgstr "주 언어" msgid "Prioritize Your Follows" msgstr "내 팔로우 우선시키기" -#: src/view/screens/Settings.tsx:570 +#: src/view/screens/Settings.tsx:571 #: src/view/shell/desktop/RightNav.tsx:84 msgid "Privacy" msgstr "개인정보" +#: src/view/com/auth/create/Policies.tsx:69 #: src/view/screens/PrivacyPolicy.tsx:29 -#: src/view/screens/Settings.tsx:783 +#: src/view/screens/Settings.tsx:784 #: src/view/shell/Drawer.tsx:262 msgid "Privacy Policy" msgstr "개인정보 처리방침" +#: src/lib/api/index.ts:80 #: src/view/com/auth/login/ForgotPasswordForm.tsx:190 msgid "Processing..." msgstr "처리 중…" @@ -2094,10 +2267,10 @@ msgid "Profile" msgstr "프로필" #: src/view/com/modals/EditProfile.tsx:128 -#~ msgid "Profile updated" -#~ msgstr "프로필 업데이트됨" +msgid "Profile updated" +msgstr "프로필 업데이트됨" -#: src/view/screens/Settings.tsx:841 +#: src/view/screens/Settings.tsx:842 msgid "Protect your account by verifying your email." msgstr "이메일을 인증하여 계정을 보호하세요." @@ -2109,13 +2282,13 @@ msgstr "음소거하거나 일괄 차단할 수 있는 공개적이고 공유할 msgid "Public, shareable lists which can drive feeds." msgstr "피드를 탐색할 수 있는 공개적이고 공유할 수 있는 목록입니다." -#: src/view/com/composer/Composer.tsx:324 -#~ msgid "Publish post" -#~ msgstr "게시물 게시하기" +#: src/view/com/composer/Composer.tsx:329 +msgid "Publish post" +msgstr "게시물 게시하기" -#: src/view/com/composer/Composer.tsx:324 -#~ msgid "Publish reply" -#~ msgstr "답글 게시하기" +#: src/view/com/composer/Composer.tsx:329 +msgid "Publish reply" +msgstr "답글 게시하기" #: src/view/com/modals/Repost.tsx:52 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 @@ -2169,7 +2342,7 @@ msgstr "피드 제거" #: src/view/com/feeds/FeedSourceCard.tsx:105 #: src/view/com/feeds/FeedSourceCard.tsx:172 -#: src/view/screens/ProfileFeed.tsx:271 +#: src/view/screens/ProfileFeed.tsx:281 msgid "Remove from my feeds" msgstr "내 피드에서 제거" @@ -2196,8 +2369,8 @@ msgstr "리스트에서 제거됨" #: src/view/com/feeds/FeedSourceCard.tsx:111 #: src/view/com/feeds/FeedSourceCard.tsx:178 -#~ msgid "Removed from my feeds" -#~ msgstr "내 피드에서 제거됨" +msgid "Removed from my feeds" +msgstr "내 피드에서 제거됨" #: src/view/screens/Profile.tsx:162 msgid "Replies" @@ -2207,34 +2380,39 @@ msgstr "답글" msgid "Replies to this thread are disabled" msgstr "이 스레드에 대한 답글이 비활성화됩니다." -#: src/view/com/composer/Composer.tsx:336 -#~ msgid "Reply" -#~ msgstr "답글" +#: src/view/com/composer/Composer.tsx:341 +msgid "Reply" +msgstr "답글" -#: src/view/screens/PreferencesHomeFeed.tsx:141 +#: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Reply Filters" msgstr "답글 필터" -#: src/view/com/modals/report/Modal.tsx:166 +#: src/view/com/post/Post.tsx:164 +#: src/view/com/posts/FeedItem.tsx:285 +msgid "Reply to <0/>" +msgstr "<0/> 님에게 보내는 답글" + +#: src/view/com/modals/report/Modal.tsx:169 msgid "Report {collectionName}" msgstr "{collectionName} 신고" -#: src/view/com/profile/ProfileHeader.tsx:404 +#: src/view/com/profile/ProfileHeader.tsx:408 msgid "Report Account" msgstr "계정 신고" -#: src/view/screens/ProfileFeed.tsx:291 +#: src/view/screens/ProfileFeed.tsx:301 msgid "Report feed" msgstr "피드 신고" -#: src/view/screens/ProfileList.tsx:426 +#: src/view/screens/ProfileList.tsx:434 msgid "Report List" msgstr "리스트 신고" #: src/view/com/modals/report/SendReportButton.tsx:37 -#: src/view/com/util/forms/PostDropdownBtn.tsx:196 +#: src/view/com/util/forms/PostDropdownBtn.tsx:198 msgid "Report post" -msgstr "포스트 신고" +msgstr "게시물 신고" #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Repost" @@ -2249,17 +2427,17 @@ msgstr "재게시 또는 게시물 인용" msgid "Reposted by" msgstr "재게시한 계정" -#: src/view/com/posts/FeedItem.tsx:203 -#~ msgid "Reposted by {0}" -#~ msgstr "{0} 님이 재게시함" +#: src/view/com/posts/FeedItem.tsx:205 +msgid "Reposted by {0}" +msgstr "{0} 님이 재게시함" -#: src/view/com/posts/FeedItem.tsx:220 -#~ msgid "Reposted by <0/>" -#~ msgstr "<0/> 님이 재게시함" +#: src/view/com/posts/FeedItem.tsx:222 +msgid "Reposted by <0/>" +msgstr "<0/> 님이 재게시함" #: src/view/com/notifications/FeedItem.tsx:162 -#~ msgid "reposted your post" -#~ msgstr "님이 내 게시물을 재게시했습니다" +msgid "reposted your post" +msgstr "님이 내 게시물을 재게시했습니다" #: src/view/com/modals/ChangeEmail.tsx:181 #: src/view/com/modals/ChangeEmail.tsx:183 @@ -2270,7 +2448,7 @@ msgstr "변경 요청" #~ msgid "Request to limit the visibility of my account" #~ msgstr "내 계정의 공개 범위 제한 요청하기" -#: src/view/screens/Settings.tsx:422 +#: src/view/screens/Settings.tsx:423 msgid "Require alt text before posting" msgstr "게시하기 전 대체 텍스트 필수" @@ -2282,7 +2460,7 @@ msgstr "이 제공자에서 필수" msgid "Reset code" msgstr "코드 재설정" -#: src/view/screens/Settings.tsx:719 +#: src/view/screens/Settings.tsx:720 msgid "Reset onboarding state" msgstr "온보딩 상태 재설정" @@ -2290,15 +2468,15 @@ msgstr "온보딩 상태 재설정" msgid "Reset password" msgstr "비밀번호 재설정" -#: src/view/screens/Settings.tsx:709 +#: src/view/screens/Settings.tsx:710 msgid "Reset preferences state" msgstr "설정 상태 재설정" -#: src/view/screens/Settings.tsx:717 +#: src/view/screens/Settings.tsx:718 msgid "Resets the onboarding state" msgstr "온보딩 상태 재설정" -#: src/view/screens/Settings.tsx:707 +#: src/view/screens/Settings.tsx:708 msgid "Resets the preferences state" msgstr "설정 상태 재설정" @@ -2318,9 +2496,10 @@ msgstr "다시 시도" #: 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:249 -#: src/view/com/modals/CreateOrEditList.tsx:257 -#: src/view/com/modals/EditProfile.tsx:223 +#: src/view/com/modals/CreateOrEditList.tsx:252 +#: src/view/com/modals/CreateOrEditList.tsx:260 +#: src/view/com/modals/EditProfile.tsx:224 +#: src/view/screens/ProfileFeed.tsx:354 msgid "Save" msgstr "저장" @@ -2332,7 +2511,7 @@ msgstr "대체 텍스트 저장" #~ msgid "Save changes" #~ msgstr "변경 사항 저장" -#: src/view/com/modals/EditProfile.tsx:231 +#: src/view/com/modals/EditProfile.tsx:232 msgid "Save Changes" msgstr "변경 사항 저장" @@ -2349,12 +2528,14 @@ msgid "Saved Feeds" msgstr "저장된 피드" #: src/view/com/lightbox/Lightbox.tsx:81 -#~ msgid "Saved to your camera roll." -#~ msgstr "내 앨범에 저장됨" +msgid "Saved to your camera roll." +msgstr "내 앨범에 저장됨" #: 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:406 +#: src/view/screens/Search/Search.tsx:559 #: src/view/screens/Search/Search.tsx:572 #: src/view/shell/bottom-bar/BottomBar.tsx:159 #: src/view/shell/desktop/LeftNav.tsx:324 @@ -2371,6 +2552,7 @@ msgstr "검색" #: 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 "사용자 검색하기" @@ -2379,8 +2561,8 @@ msgid "Security Step Required" msgstr "보안 단계 필요" #: src/view/screens/SavedFeeds.tsx:163 -#~ msgid "See this guide" -#~ msgstr "이 가이드" +msgid "See this guide" +msgstr "이 가이드" #: src/view/com/auth/HomeLoggedOutCTA.tsx:39 msgid "See what's next" @@ -2404,21 +2586,21 @@ msgstr "구독하는 피드에 포함할 언어를 선택합니다. 선택하지 #: src/view/screens/LanguageSettings.tsx:98 msgid "Select your app language for the default text to display in the app" -msgstr "앱에 표시되는 기본 텍스트의 언어를 선택합니다." +msgstr "앱에 표시되는 기본 텍스트 언어를 선택합니다." #: src/view/screens/LanguageSettings.tsx:190 msgid "Select your preferred language for translations in your feed." msgstr "피드에서 번역을 위해 선호하는 언어를 선택합니다." -#: src/view/com/modals/VerifyEmail.tsx:196 +#: src/view/com/modals/VerifyEmail.tsx:198 msgid "Send Confirmation Email" msgstr "확인 이메일 전송" -#: src/view/com/modals/DeleteAccount.tsx:127 +#: src/view/com/modals/DeleteAccount.tsx:129 msgid "Send email" msgstr "이메일 전송" -#: src/view/com/modals/DeleteAccount.tsx:138 +#: src/view/com/modals/DeleteAccount.tsx:140 msgid "Send Email" msgstr "이메일 전송" @@ -2435,15 +2617,15 @@ msgstr "신고 전송" msgid "Set new password" msgstr "새 비밀번호 설정" -#: src/view/screens/PreferencesHomeFeed.tsx:222 +#: 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 "피드에서 모든 인용 게시물을 숨기려면 이 설정을 \"아니요\"로 설정합니다. 재게시는 계속 표시됩니다." -#: src/view/screens/PreferencesHomeFeed.tsx:119 +#: src/view/screens/PreferencesHomeFeed.tsx:122 msgid "Set this setting to \"No\" to hide all replies from your feed." msgstr "피드에서 모든 답글을 숨기려면 이 설정을 \"아니요\"로 설정합니다." -#: src/view/screens/PreferencesHomeFeed.tsx:188 +#: src/view/screens/PreferencesHomeFeed.tsx:191 msgid "Set this setting to \"No\" to hide all reposts from your feed." msgstr "피드에서 모든 재게시를 숨기려면 이 설정을 \"아니요\"로 설정합니다." @@ -2451,11 +2633,11 @@ msgstr "피드에서 모든 재게시를 숨기려면 이 설정을 \"아니요\ msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." msgstr "스레드 보기에 답글을 표시하려면 이 설정을 \"예\"로 설정합니다. 이는 실험적인 기능입니다." -#: src/view/screens/PreferencesHomeFeed.tsx:258 +#: 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 "팔로우한 피드에 저장된 피드 샘플을 표시하려면 이 설정을 \"예\"로 설정합니다. 이는 실험적인 기능입니다." -#: src/view/screens/Settings.tsx:277 +#: src/view/screens/Settings.tsx:278 #: src/view/shell/desktop/LeftNav.tsx:433 #: src/view/shell/Drawer.tsx:565 #: src/view/shell/Drawer.tsx:566 @@ -2467,16 +2649,16 @@ msgid "Sexual activity or erotic nudity." msgstr "성행위 또는 선정적인 노출." #: src/state/queries/preferences/moderation.ts:107 -#~ msgid "Sexually Suggestive" -#~ msgstr "성적 암시" +msgid "Sexually Suggestive" +msgstr "성적 암시" -#: src/view/com/profile/ProfileHeader.tsx:338 -#: src/view/com/util/forms/PostDropdownBtn.tsx:139 -#: src/view/screens/ProfileList.tsx:385 +#: src/view/com/profile/ProfileHeader.tsx:342 +#: src/view/com/util/forms/PostDropdownBtn.tsx:141 +#: src/view/screens/ProfileList.tsx:393 msgid "Share" msgstr "공유" -#: src/view/screens/ProfileFeed.tsx:303 +#: src/view/screens/ProfileFeed.tsx:313 msgid "Share feed" msgstr "피드 공유" @@ -2484,14 +2666,15 @@ msgstr "피드 공유" #~ msgid "Share link" #~ msgstr "링크 공유" +#: src/view/com/modals/ContentFilteringSettings.tsx:253 #: src/view/com/util/moderation/ContentHider.tsx:105 -#: src/view/screens/Settings.tsx:316 +#: src/view/screens/Settings.tsx:317 msgid "Show" msgstr "표시" -#: src/view/screens/PreferencesHomeFeed.tsx:62 -#~ msgid "Show all replies" -#~ msgstr "모든 답글 표시" +#: src/view/screens/PreferencesHomeFeed.tsx:68 +msgid "Show all replies" +msgstr "모든 답글 표시" #: src/view/com/util/moderation/ScreenHider.tsx:132 msgid "Show anyway" @@ -2499,17 +2682,22 @@ msgstr "무시하고 표시" #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" -msgstr "" +msgstr "{0} 임베드 표시" -#: src/view/screens/PreferencesHomeFeed.tsx:255 +#: src/view/com/post/Post.tsx:195 +#: src/view/com/posts/FeedItem.tsx:360 +msgid "Show More" +msgstr "더 보기" + +#: src/view/screens/PreferencesHomeFeed.tsx:258 msgid "Show Posts from My Feeds" msgstr "내 피드에서 게시물 표시" -#: src/view/screens/PreferencesHomeFeed.tsx:219 +#: src/view/screens/PreferencesHomeFeed.tsx:222 msgid "Show Quote Posts" msgstr "인용 게시물 표시" -#: src/view/screens/PreferencesHomeFeed.tsx:116 +#: src/view/screens/PreferencesHomeFeed.tsx:119 msgid "Show Replies" msgstr "답글 표시" @@ -2517,15 +2705,15 @@ msgstr "답글 표시" msgid "Show replies by people you follow before all other replies." msgstr "내가 팔로우하는 사람들의 답글을 다른 모든 답글보다 먼저 표시합니다." -#: src/view/screens/PreferencesHomeFeed.tsx:64 -#~ msgid "Show replies with at least {value} {0}" -#~ msgstr "좋아요가 {value}개 이상인 답글 표시" +#: src/view/screens/PreferencesHomeFeed.tsx:70 +msgid "Show replies with at least {value} {0}" +msgstr "좋아요가 {value}개 이상인 답글 표시" -#: src/view/screens/PreferencesHomeFeed.tsx:185 +#: src/view/screens/PreferencesHomeFeed.tsx:188 msgid "Show Reposts" msgstr "재게시 표시" -#: src/view/com/notifications/FeedItem.tsx:345 +#: src/view/com/notifications/FeedItem.tsx:348 msgid "Show users" msgstr "사용자 표시" @@ -2540,12 +2728,13 @@ msgstr "사용자 표시" #: src/view/shell/bottom-bar/BottomBarWeb.tsx:180 #: 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:57 -#: src/view/com/auth/SplashScreen.web.tsx:87 +#: src/view/com/auth/SplashScreen.web.tsx:88 msgid "Sign In" msgstr "로그인" @@ -2564,6 +2753,8 @@ msgstr "로그인" #: src/view/com/modals/SwitchAccount.tsx:64 #: src/view/com/modals/SwitchAccount.tsx:67 +#: src/view/screens/Settings.tsx:102 +#: src/view/screens/Settings.tsx:105 msgid "Sign out" msgstr "로그아웃" @@ -2581,28 +2772,28 @@ msgstr "가입하기" #: src/view/shell/NavSignupCard.tsx:42 msgid "Sign up or sign in to join the conversation" -msgstr "가입 또는 로그인하여 대화에 참여하세요" +msgstr "가입 또는 로그인하여 대화에 참여하세요." #: src/view/com/util/moderation/ScreenHider.tsx:76 msgid "Sign-in Required" msgstr "로그인 필요" -#: src/view/screens/Settings.tsx:327 +#: src/view/screens/Settings.tsx:328 msgid "Signed in as" msgstr "로그인한 계정" #: src/lib/hooks/useAccountSwitcher.ts:36 #: src/view/com/auth/login/ChooseAccountForm.tsx:103 -#~ msgid "Signed in as @{0}" -#~ msgstr "@{0}(으)로 로그인했습니다." +msgid "Signed in as @{0}" +msgstr "@{0}(으)로 로그인했습니다." #: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 msgid "Skip" msgstr "건너뛰기" #: src/lib/hooks/useAccountSwitcher.ts:47 -#~ msgid "Sorry! We need you to enter your password." -#~ msgstr "죄송합니다. 비밀번호를 입력해 주세요." +msgid "Sorry! We need you to enter your password." +msgstr "죄송합니다. 비밀번호를 입력해 주세요." #: src/App.native.tsx:57 #~ msgid "Sorry! Your session expired. Please log in again." @@ -2617,8 +2808,13 @@ msgid "Sort replies to the same post by:" msgstr "동일한 게시물에 대한 답글을 정렬하는 기준입니다." #: src/state/queries/preferences/moderation.ts:130 -#~ msgid "Spam" -#~ msgstr "스팸" +#: src/view/com/modals/report/ReasonOptions.tsx:29 +msgid "Spam" +msgstr "스팸" + +#: src/view/com/modals/report/ReasonOptions.tsx:57 +msgid "Spam; excessive mentions or replies" +msgstr "스팸, 과도한 멘션 또는 답글" #: src/view/com/modals/crop-image/CropImage.web.tsx:122 msgid "Square" @@ -2629,23 +2825,23 @@ msgstr "정사각형" msgid "Staging" msgstr "스테이징" -#: src/view/screens/Settings.tsx:763 +#: src/view/screens/Settings.tsx:764 msgid "Status page" msgstr "상태 페이지" #: src/view/com/auth/create/CreateAccount.tsx:120 -#~ msgid "Step {0}" -#~ msgstr "{0}단계" +msgid "Step {0}" +msgstr "{0}단계" #: src/view/com/auth/create/StepHeader.tsx:16 -#~ msgid "Step {step} of 3" -#~ msgstr "3단계 중 {step}단계" +msgid "Step {step} of 3" +msgstr "3단계 중 {step}단계" #: src/view/screens/Settings.tsx:269 -#~ msgid "Storage cleared, you need to restart the app now." -#~ msgstr "스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." +msgid "Storage cleared, you need to restart the app now." +msgstr "스토리지가 지워졌으며 지금 앱을 다시 시작해야 합니다." -#: src/view/screens/Settings.tsx:699 +#: src/view/screens/Settings.tsx:700 msgid "Storybook" msgstr "스토리북" @@ -2653,11 +2849,11 @@ msgstr "스토리북" msgid "Submit" msgstr "확인" -#: src/view/screens/ProfileList.tsx:575 +#: src/view/screens/ProfileList.tsx:583 msgid "Subscribe" msgstr "구독" -#: src/view/screens/ProfileList.tsx:571 +#: src/view/screens/ProfileList.tsx:579 msgid "Subscribe to this list" msgstr "이 리스트로 구독" @@ -2666,8 +2862,8 @@ msgid "Suggested Follows" msgstr "팔로우 추천" #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:65 -#~ msgid "Suggested for you" -#~ msgstr "나를 위한 추천" +msgid "Suggested for you" +msgstr "나를 위한 추천" #: src/view/screens/Support.tsx:30 #: src/view/screens/Support.tsx:33 @@ -2679,10 +2875,10 @@ msgid "Switch Account" msgstr "계정 전환" #: src/view/screens/Settings.tsx:439 -#~ msgid "System" -#~ msgstr "시스템" +msgid "System" +msgstr "시스템" -#: src/view/screens/Settings.tsx:679 +#: src/view/screens/Settings.tsx:680 msgid "System log" msgstr "시스템 로그" @@ -2694,26 +2890,32 @@ msgstr "세로" msgid "Terms" msgstr "이용약관" -#: src/view/screens/Settings.tsx:777 +#: src/view/com/auth/create/Policies.tsx:59 +#: src/view/screens/Settings.tsx:778 #: src/view/screens/TermsOfService.tsx:29 #: src/view/shell/Drawer.tsx:256 msgid "Terms of Service" msgstr "서비스 이용약관" +#: src/view/com/modals/report/ReasonOptions.tsx:46 +#: src/view/com/modals/report/ReasonOptions.tsx:61 +msgid "Terms used violate community standards" +msgstr "커뮤니티 표준을 위반하는 용어 사용" + #: src/view/com/modals/AppealLabel.tsx:70 #: src/view/com/modals/report/InputIssueDetails.tsx:51 msgid "Text input field" msgstr "텍스트 입력 필드" #: src/view/com/modals/report/Modal.tsx:82 -#~ msgid "Thank you for your report! We'll look into it promptly." -#~ msgstr "신고해 주셔서 감사합니다! 즉시 검토하겠습니다." +msgid "Thank you for your report! We'll look into it promptly." +msgstr "신고해 주셔서 감사합니다! 즉시 검토하겠습니다." #: src/view/com/modals/ChangeHandle.tsx:464 -#~ msgid "That contains the following:" -#~ msgstr "텍스트 파일 내용:" +msgid "That contains the following:" +msgstr "텍스트 파일 내용:" -#: src/view/com/profile/ProfileHeader.tsx:306 +#: src/view/com/profile/ProfileHeader.tsx:310 msgid "The account will be able to interact with you after unblocking." msgstr "차단을 해제하면 해당 계정이 나와 상호작용할 수 있게 됩니다." @@ -2738,44 +2940,44 @@ msgid "The support form has been moved. If you need help, please<0/> or visit {H msgstr "지원 양식이 이동되었습니다. 도움이 필요하다면 {HELP_DESK_URL}을 방문하거나 <0/>로 문의해 주세요." #: src/view/screens/Debug.tsx:184 -#~ msgid "The task has been completed" -#~ msgstr "작업을 완료했습니다." +msgid "The task has been completed" +msgstr "작업을 완료했습니다." #: src/view/screens/Debug.tsx:188 -#~ msgid "The task has been completed successfully and with no problems" -#~ msgstr "작업을 문제 없이 성공적으로 완료했습니다." +msgid "The task has been completed successfully and with no problems" +msgstr "작업을 문제 없이 성공적으로 완료했습니다." #: src/view/screens/TermsOfService.tsx:33 msgid "The Terms of Service have been moved to" msgstr "서비스 이용약관이 다음으로 이동되었습니다:" #: src/view/screens/ProfileFeed.tsx:557 -#~ msgid "There was an an issue contacting the server, please check your internet connection and try again." -#~ msgstr "서버에 연결하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." +msgid "There was an an issue contacting the server, please check your internet connection and try again." +msgstr "서버에 연결하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." #: src/view/screens/ProfileFeed.tsx:218 -#~ msgid "There was an an issue updating your feeds, please check your internet connection and try again." -#~ msgstr "피드를 업데이트하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." +msgid "There was an an issue updating your feeds, please check your internet connection and try again." +msgstr "피드를 업데이트하는 동안 문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." #: src/view/screens/ProfileFeed.tsx:245 #: src/view/screens/ProfileList.tsx:263 #: 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 "서버에 연결하는 동안 문제가 발생했습니다." +msgid "There was an issue contacting the server" +msgstr "서버에 연결하는 동안 문제가 발생했습니다." #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:58 #: src/view/com/auth/onboarding/RecommendedFeedsItem.tsx:67 #: 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 "서버에 연결하는 동안 문제가 발생했습니다." +msgid "There was an issue contacting your server" +msgstr "서버에 연결하는 동안 문제가 발생했습니다." #: src/view/com/modals/ContentFilteringSettings.tsx:126 -#~ msgid "There was an issue syncing your preferences with the server" -#~ msgstr "설정을 서버와 동기화하는 동안 문제가 발생했습니다." +msgid "There was an issue syncing your preferences with the server" +msgstr "설정을 서버와 동기화하는 동안 문제가 발생했습니다." #: src/view/com/profile/ProfileHeader.tsx:204 #: src/view/com/profile/ProfileHeader.tsx:225 @@ -2783,15 +2985,15 @@ msgstr "서비스 이용약관이 다음으로 이동되었습니다:" #: 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 "문제가 발생했습니다! {0}" +msgid "There was an issue! {0}" +msgstr "문제가 발생했습니다! {0}" #: src/view/screens/ProfileList.tsx:284 #: src/view/screens/ProfileList.tsx:303 #: src/view/screens/ProfileList.tsx:325 #: src/view/screens/ProfileList.tsx:344 -#~ msgid "There was an issue. Please check your internet connection and try again." -#~ msgstr "문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." +msgid "There was an issue. Please check your internet connection and try again." +msgstr "문제가 발생했습니다. 인터넷 연결을 확인한 후 다시 시도하세요." #: src/view/com/util/ErrorBoundary.tsx:35 msgid "There was an unexpected issue in the application. Please let us know if this happened to you!" @@ -2811,7 +3013,7 @@ msgstr "이 계정의 프로필을 보려면 로그인해야 합니다." #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" -msgstr "" +msgstr "이 콘텐츠는 {0}에서 호스팅됩니다. 외부 미디어를 사용하시겠습니까?" #: src/view/com/posts/FeedErrorMessage.tsx:107 msgid "This content is not viewable without a Bluesky account." @@ -2824,14 +3026,14 @@ msgstr "이 피드는 현재 트래픽이 많아 일시적으로 사용할 수 #: src/view/screens/Profile.tsx:392 #: src/view/screens/ProfileFeed.tsx:484 #: src/view/screens/ProfileList.tsx:636 -#~ msgid "This feed is empty!" -#~ msgstr "이 피드는 비어 있습니다." +msgid "This feed is empty!" +msgstr "이 피드는 비어 있습니다." #: src/view/com/modals/BirthDateSettings.tsx:61 msgid "This information is not shared with other users." msgstr "이 정보는 다른 사용자와 공유되지 않습니다." -#: src/view/com/modals/VerifyEmail.tsx:113 +#: src/view/com/modals/VerifyEmail.tsx:115 msgid "This is important in case you ever need to change your email or reset your password." msgstr "이는 이메일을 변경하거나 비밀번호를 재설정해야 할 때 중요한 정보입니다." @@ -2844,35 +3046,35 @@ msgid "This link is taking you to the following website:" msgstr "이 링크를 클릭하면 다음 웹사이트로 이동합니다:" #: src/view/screens/ProfileList.tsx:794 -#~ msgid "This list is empty!" -#~ msgstr "이 리스트는 비어 있습니다." +msgid "This list is empty!" +msgstr "이 리스트는 비어 있습니다." #: src/view/com/modals/AddAppPasswords.tsx:105 -#~ msgid "This name is already in use" -#~ msgstr "이 이름은 이미 사용 중입니다." +msgid "This name is already in use" +msgstr "이 이름은 이미 사용 중입니다." #: src/view/com/post-thread/PostThreadItem.tsx:123 msgid "This post has been deleted." msgstr "이 게시물은 삭제되었습니다." #: src/view/com/auth/create/Policies.tsx:46 -#~ msgid "This service has not provided terms of service or a privacy policy." -#~ msgstr "이 서비스에는 서비스 이용약관이나 개인정보 처리방침이 제공되지 않습니다." +msgid "This service has not provided terms of service or a privacy policy." +msgstr "이 서비스에는 서비스 이용약관이나 개인정보 처리방침이 제공되지 않습니다." #: src/view/com/modals/ChangeHandle.tsx:444 -#~ msgid "This should create a domain record at:" -#~ msgstr "이 도메인에 레코드가 추가됩니다:" +msgid "This should create a domain record at:" +msgstr "이 도메인에 레코드가 추가됩니다:" #: src/view/com/modals/SelfLabel.tsx:137 msgid "This warning is only available for posts with media attached." msgstr "이 경고는 미디어가 첨부된 게시물에만 사용할 수 있습니다." -#: src/view/com/util/forms/PostDropdownBtn.tsx:178 +#: src/view/com/util/forms/PostDropdownBtn.tsx:180 msgid "This will hide this post from your feeds." msgstr "피드에서 이 게시물을 숨깁니다." #: src/view/screens/PreferencesThreads.tsx:53 -#: src/view/screens/Settings.tsx:503 +#: src/view/screens/Settings.tsx:504 msgid "Thread Preferences" msgstr "스레드 설정" @@ -2890,7 +3092,7 @@ msgstr "변형" #: src/view/com/post-thread/PostThreadItem.tsx:705 #: src/view/com/post-thread/PostThreadItem.tsx:707 -#: src/view/com/util/forms/PostDropdownBtn.tsx:111 +#: src/view/com/util/forms/PostDropdownBtn.tsx:113 msgid "Translate" msgstr "번역" @@ -2899,14 +3101,14 @@ msgid "Try again" msgstr "다시 시도" #: src/view/com/modals/ChangeHandle.tsx:427 -#~ msgid "Type" -#~ msgstr "유형" +msgid "Type" +msgstr "유형" -#: src/view/screens/ProfileList.tsx:473 +#: src/view/screens/ProfileList.tsx:481 msgid "Un-block list" msgstr "리스트 차단 해제" -#: src/view/screens/ProfileList.tsx:458 +#: src/view/screens/ProfileList.tsx:466 msgid "Un-mute list" msgstr "리스트 언뮤트" @@ -2916,13 +3118,14 @@ msgstr "리스트 언뮤트" msgid "Unable to contact your service. Please check your Internet connection." msgstr "서비스에 연결할 수 없습니다. 인터넷 연결을 확인하세요." -#: src/view/com/profile/ProfileHeader.tsx:466 -#: src/view/com/profile/ProfileHeader.tsx:469 +#: src/view/com/profile/ProfileHeader.tsx:470 +#: src/view/com/profile/ProfileHeader.tsx:473 +#: src/view/screens/ProfileList.tsx:565 msgid "Unblock" msgstr "차단 해제" -#: src/view/com/profile/ProfileHeader.tsx:304 -#: src/view/com/profile/ProfileHeader.tsx:388 +#: src/view/com/profile/ProfileHeader.tsx:308 +#: src/view/com/profile/ProfileHeader.tsx:392 msgid "Unblock Account" msgstr "계정 차단 해제" @@ -2933,37 +3136,41 @@ msgstr "재게시 취소" #: src/view/com/auth/onboarding/RecommendedFollowsItem.tsx:138 #: src/view/com/profile/FollowButton.tsx:55 #: src/view/com/profile/ProfileHeaderSuggestedFollows.tsx:241 -#~ msgid "Unfollow" -#~ msgstr "언팔로우" +msgid "Unfollow" +msgstr "언팔로우" #: src/view/com/auth/create/state.ts:216 msgid "Unfortunately, you do not meet the requirements to create an account." msgstr "아쉽지만 계정을 만들 수 있는 요건을 충족하지 못했습니다." #: src/view/screens/ProfileList.tsx:572 -#~ msgid "Unmute" -#~ msgstr "언뮤트" +msgid "Unmute" +msgstr "언뮤트" -#: src/view/com/profile/ProfileHeader.tsx:369 +#: src/view/com/profile/ProfileHeader.tsx:373 msgid "Unmute Account" msgstr "계정 언뮤트" -#: src/view/com/util/forms/PostDropdownBtn.tsx:157 +#: src/view/com/util/forms/PostDropdownBtn.tsx:159 msgid "Unmute thread" msgstr "스레드 언뮤트" #: src/view/screens/ProfileFeed.tsx:362 #: src/view/screens/ProfileList.tsx:556 -#~ msgid "Unpin" -#~ msgstr "고정 해제" +msgid "Unpin" +msgstr "고정 해제" -#: src/view/screens/ProfileList.tsx:441 +#: src/view/screens/ProfileList.tsx:449 msgid "Unpin moderation list" msgstr "검토 리스트 고정 해제" #: src/view/screens/ProfileFeed.tsx:354 -#~ msgid "Unsave" -#~ msgstr "저장 해제" +msgid "Unsave" +msgstr "저장 해제" + +#: src/view/com/modals/report/ReasonOptions.tsx:33 +msgid "Unwanted Sexual Content" +msgstr "원치 않는 성적 콘텐츠" #: src/view/com/modals/UserAddRemoveLists.tsx:54 msgid "Update {displayName} in Lists" @@ -2974,8 +3181,8 @@ msgid "Update Available" msgstr "업데이트 사용 가능" #: src/view/com/modals/ChangeHandle.tsx:507 -#~ msgid "Update to {handle}" -#~ msgstr "{handle}로 변경" +msgid "Update to {handle}" +msgstr "{handle}로 변경" #: src/view/com/auth/login/SetNewPasswordForm.tsx:172 msgid "Updating..." @@ -2985,25 +3192,33 @@ msgstr "업데이트 중…" msgid "Upload a text file to:" msgstr "텍스트 파일 업로드 경로:" -#: src/view/screens/AppPasswords.tsx:194 +#: src/lib/api/index.ts:114 +msgid "Uploading image #{0}..." +msgstr "{0}번째 이미지 업로드 중…" + +#: src/lib/api/index.ts:152 +msgid "Uploading link thumbnail..." +msgstr "링크 미리보기 이미지 업로드 중…" + +#: 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 "앱 비밀번호를 사용하면 계정이나 비밀번호에 대한 전체 접근 권한을 제공하지 않고도 다른 Bluesky 클라이언트에 로그인할 수 있습니다." -#: src/view/com/modals/ChangeHandle.tsx:513 +#: src/view/com/modals/ChangeHandle.tsx:515 msgid "Use default provider" msgstr "기본 제공자 사용" -#: src/view/com/modals/AddAppPasswords.tsx:150 +#: src/view/com/modals/AddAppPasswords.tsx:154 msgid "Use this to sign into the other app along with your handle." msgstr "이 비밀번호와 핸들을 사용하여 다른 앱에 로그인하세요." -#: src/view/com/modals/InviteCodes.tsx:197 +#: src/view/com/modals/InviteCodes.tsx:200 msgid "Used by:" msgstr "사용 계정:" #: src/view/com/modals/CreateOrEditList.tsx:68 -#~ msgid "User" -#~ msgstr "사용자" +msgid "User" +msgstr "사용자" #: src/view/com/auth/create/Step3.tsx:38 msgid "User handle" @@ -3018,7 +3233,7 @@ msgstr "사용자 리스트" msgid "Username or email address" msgstr "사용자 이름 또는 이메일 주소" -#: src/view/screens/ProfileList.tsx:747 +#: src/view/screens/ProfileList.tsx:756 msgid "Users" msgstr "사용자" @@ -3035,57 +3250,61 @@ msgid "Users in \"{0}\"" msgstr "\"{0}\"에 있는 사용자" #: src/view/com/modals/ChangeHandle.tsx:435 -#~ msgid "Value" -#~ msgstr "값" +msgid "Value" +msgstr "값" #: src/view/com/modals/ChangeHandle.tsx:508 -#~ msgid "Verify {0}" -#~ msgstr "{0} 확인" +msgid "Verify {0}" +msgstr "{0} 확인" -#: src/view/screens/Settings.tsx:802 +#: src/view/screens/Settings.tsx:803 msgid "Verify email" -msgstr "이메일 확인" +msgstr "이메일 인증" -#: src/view/screens/Settings.tsx:827 +#: src/view/screens/Settings.tsx:828 msgid "Verify my email" -msgstr "내 이메일 확인" +msgstr "내 이메일 인증" -#: src/view/screens/Settings.tsx:836 +#: src/view/screens/Settings.tsx:837 msgid "Verify My Email" -msgstr "내 이메일 확인" +msgstr "내 이메일 인증" #: src/view/com/modals/ChangeEmail.tsx:205 #: src/view/com/modals/ChangeEmail.tsx:207 msgid "Verify New Email" -msgstr "새 이메일 확인" +msgstr "새 이메일 인증" + +#: src/view/com/modals/VerifyEmail.tsx:104 +msgid "Verify Your Email" +msgstr "이메일 인증하기" #: src/view/screens/Log.tsx:52 msgid "View debug entry" msgstr "디버그 항목 보기" #: src/view/com/posts/FeedSlice.tsx:103 -#~ msgid "View full thread" -#~ msgstr "전체 스레드 보기" +msgid "View full thread" +msgstr "전체 스레드 보기" #: src/view/com/profile/ProfileSubpageHeader.tsx:128 msgid "View the avatar" msgstr "아바타 보기" #: src/state/queries/preferences/moderation.ts:115 -#~ msgid "Violent / Bloody" -#~ msgstr "폭력 및 유혈" +msgid "Violent / Bloody" +msgstr "폭력 및 유혈" #: src/view/com/modals/LinkWarning.tsx:73 msgid "Visit Site" msgstr "사이트 방문" #: src/view/com/modals/ContentFilteringSettings.tsx:246 -#~ msgid "Warn" -#~ msgstr "경고" +msgid "Warn" +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/view/com/auth/create/CreateAccount.tsx:122 msgid "We're so excited to have you join us!" @@ -3111,11 +3330,12 @@ msgstr "죄송합니다! 페이지를 찾을 수 없습니다." msgid "Welcome to <0>Bluesky" msgstr "<0>Bluesky에 오신 것을 환영합니다" -#: src/view/com/modals/report/Modal.tsx:169 +#: src/view/com/modals/report/Modal.tsx:172 msgid "What is the issue with this {collectionName}?" msgstr "이 {collectionName}에 어떤 문제가 있습니까?" #: src/view/com/auth/SplashScreen.tsx:34 +#: src/view/com/composer/Composer.tsx:275 msgid "What's up?" msgstr "무슨 일이 일어나고 있나요?" @@ -3140,26 +3360,28 @@ msgstr "답글을 달 수 있는 사람" msgid "Wide" msgstr "가로" -#: src/view/com/composer/Composer.tsx:418 +#: src/view/com/composer/Composer.tsx:420 msgid "Write post" msgstr "게시물 작성" +#: src/view/com/composer/Composer.tsx:274 #: src/view/com/composer/Prompt.tsx:33 msgid "Write your reply" msgstr "답글 작성하기" -#: src/view/screens/PreferencesHomeFeed.tsx:126 -#: src/view/screens/PreferencesHomeFeed.tsx:198 -#: src/view/screens/PreferencesHomeFeed.tsx:233 -#: src/view/screens/PreferencesHomeFeed.tsx:268 +#: 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 "예" #: src/view/com/posts/FollowingEmptyState.tsx:67 -#~ msgid "You can also discover new Custom Feeds to follow." -#~ msgstr "팔로우할 새로운 맞춤 피드를 찾을 수도 있습니다." +#: src/view/com/posts/FollowingEndOfFeed.tsx:68 +msgid "You can also discover new Custom Feeds to follow." +msgstr "팔로우할 새로운 맞춤 피드를 찾을 수도 있습니다." #: src/view/com/auth/create/Step1.tsx:106 msgid "You can change hosting providers at any time." @@ -3170,7 +3392,7 @@ msgstr "언제든지 호스팅 제공자를 변경할 수 있습니다." msgid "You can now sign in with your new password." msgstr "이제 새 비밀번호로 로그인할 수 있습니다." -#: src/view/com/modals/InviteCodes.tsx:64 +#: 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를 좀 더 오래 사용하신 후에 보내드리겠습니다." @@ -3203,7 +3425,7 @@ msgstr "리스트가 없습니다." 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:86 +#: 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 "아직 앱 비밀번호를 생성하지 않았습니다. 아래 버튼을 눌러 생성할 수 있습니다." @@ -3212,32 +3434,36 @@ msgid "You have not muted any accounts yet. To mute an account, go to their prof msgstr "아직 어떤 계정도 뮤트하지 않았습니다. 계정을 뮤트하려면 해당 계정의 프로필로 이동하여 계정 메뉴에서 \"계정 뮤트\"를 선택하세요." #: src/view/com/modals/ContentFilteringSettings.tsx:166 -#~ 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/view/com/util/forms/PostDropdownBtn.tsx:88 -#~ msgid "You will no longer receive notifications for this thread" -#~ msgstr "이 스레드에 대한 알림을 더 이상 받지 않습니다." +msgid "You will no longer receive notifications for this thread" +msgstr "이 스레드에 대한 알림을 더 이상 받지 않습니다." #: src/view/com/util/forms/PostDropdownBtn.tsx:91 -#~ msgid "You will now receive notifications for this thread" -#~ msgstr "이제 이 스레드에 대한 알림을 받습니다." +msgid "You will now receive notifications for this thread" +msgstr "이제 이 스레드에 대한 알림을 받습니다." #: src/view/com/auth/login/SetNewPasswordForm.tsx:81 msgid "You will receive an email with a \"reset code.\" Enter that code here, then enter your new password." msgstr "\"재설정 코드\"가 포함된 이메일을 받게 되면 여기에 해당 코드를 입력한 다음 새 비밀번호를 입력합니다." -#: src/view/com/composer/Composer.tsx:263 -#~ msgid "Your {0} has been published" -#~ msgstr "내 {0}(을)를 게시했습니다." +#: src/view/com/posts/FollowingEndOfFeed.tsx:48 +msgid "You've reached the end of your feed! Find some more accounts to follow." +msgstr "피드 끝에 도달했습니다! 팔로우할 계정을 더 찾아보세요." + +#: src/view/com/composer/Composer.tsx:264 +msgid "Your {0} has been published" +msgstr "내 {0}(을)를 게시했습니다." #: src/view/com/auth/create/Step2.tsx:58 msgid "Your account" msgstr "내 계정" #: src/view/com/modals/DeleteAccount.tsx:65 -#~ msgid "Your account has been deleted" -#~ msgstr "계정을 삭제했습니다." +msgid "Your account has been deleted" +msgstr "계정을 삭제했습니다." #: src/view/com/auth/create/Step2.tsx:146 msgid "Your birth date" @@ -3255,13 +3481,13 @@ msgstr "이메일이 저장되었습니다! 가까운 시일 내에 연락드리 msgid "Your email has been updated but not verified. As a next step, please verify your new email." msgstr "이메일이 변경되었지만 인증되지 않았습니다. 다음 단계로 새 이메일을 인증해 주세요." -#: src/view/com/modals/VerifyEmail.tsx:108 +#: src/view/com/modals/VerifyEmail.tsx:110 msgid "Your email has not yet been verified. This is an important security step which we recommend." msgstr "이메일이 아직 인증되지 않았습니다. 이는 중요한 보안 단계이므로 권장하는 사항입니다." #: src/view/com/posts/FollowingEmptyState.tsx:47 -#~ msgid "Your following feed is empty! Follow more users to see what's happening." -#~ msgstr "팔로우 중인 피드가 비어 있습니다! 더 많은 사용자를 팔로우하여 무슨 일이 일어나고 있는지 확인하세요." +msgid "Your following feed is empty! Follow more users to see what's happening." +msgstr "팔로우 중인 피드가 비어 있습니다! 더 많은 사용자를 팔로우하여 무슨 일이 일어나고 있는지 확인하세요." #: src/view/com/auth/create/Step3.tsx:42 #: src/view/com/modals/ChangeHandle.tsx:270 @@ -3272,12 +3498,13 @@ msgstr "내 전체 핸들:" msgid "Your hosting provider" msgstr "호스팅 제공자" -#: src/view/screens/Settings.tsx:402 +#: src/view/screens/Settings.tsx:403 #: src/view/shell/desktop/RightNav.tsx:137 #: src/view/shell/Drawer.tsx:655 msgid "Your invite codes are hidden when logged in using an App Password" msgstr "앱 비밀번호를 사용하여 로그인하면 초대 코드가 숨겨집니다" +#: src/view/com/auth/onboarding/WelcomeDesktop.tsx:61 #: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 msgid "Your posts, likes, and blocks are public. Mutes are private." msgstr "내 게시물, 좋아요, 차단 목록은 공개됩니다. 뮤트 목록은 공개되지 않습니다." From da575a63797459c39f54c4b70b8c86dd5d6ce1b6 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 8 Jan 2024 14:09:30 -0600 Subject: [PATCH 089/115] Don't use mask for android at all (#2445) * Don't use mask for android at all * Remove old Android check --- src/Splash.tsx | 40 +++++++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/src/Splash.tsx b/src/Splash.tsx index 4b480b7a4b..d3b21dd630 100644 --- a/src/Splash.tsx +++ b/src/Splash.tsx @@ -2,7 +2,6 @@ import React, {useCallback, useEffect} from 'react' import {View, StyleSheet, Image as RNImage} from 'react-native' import * as SplashScreen from 'expo-splash-screen' import {Image} from 'expo-image' -import {platformApiLevel} from 'expo-device' import Animated, { interpolate, runOnJS, @@ -15,6 +14,8 @@ 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' +import {isAndroid} from '#/platform/detection' + // @ts-ignore import splashImagePointer from '../assets/splash.png' const splashImageUri = RNImage.resolveAssetSource(splashImagePointer).uri @@ -54,7 +55,7 @@ export function Splash(props: React.PropsWithChildren) { const [isLayoutReady, setIsLayoutReady] = React.useState(false) const isReady = props.isReady && isImageLoaded && isLayoutReady - const logoAnimations = useAnimatedStyle(() => { + const logoAnimation = useAnimatedStyle(() => { return { transform: [ { @@ -64,7 +65,7 @@ export function Splash(props: React.PropsWithChildren) { scale: interpolate( outroLogo.value, [0, 0.08, 1], - [1, 0.8, 400], + [1, 0.8, 500], 'clamp', ), }, @@ -72,6 +73,16 @@ export function Splash(props: React.PropsWithChildren) { opacity: interpolate(intro.value, [0, 1], [0, 1], 'clamp'), } }) + const logoWrapperAnimation = useAnimatedStyle(() => { + return { + opacity: interpolate( + outroAppOpacity.value, + [0, 0.1, 0.2, 1], + [1, 1, 0, 0], + 'clamp', + ), + } + }) const appAnimation = useAnimatedStyle(() => { return { @@ -82,7 +93,7 @@ export function Splash(props: React.PropsWithChildren) { ], opacity: interpolate( outroAppOpacity.value, - [0, 0.08, 0.15, 1], + [0, 0.1, 0.2, 1], [0, 0, 1, 1], 'clamp', ), @@ -137,16 +148,31 @@ export function Splash(props: React.PropsWithChildren) { /> )} - {platformApiLevel && platformApiLevel <= 25 ? ( + {isAndroid ? ( // Use a simple fade on older versions of android (work around a bug) <> {props.children} + + {!isAnimationComplete && ( + + + + )} ) : ( ) { transform: [{translateY: -(insets.top / 2)}, {scale: 0.1}], // scale from 1000px to 100px }, ]}> - + }> {!isAnimationComplete && ( From fcfebda4697cd3c484e2faa69fc22c996fcc771d Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 8 Jan 2024 12:10:30 -0800 Subject: [PATCH 090/115] Bump android app version code --- app.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.config.js b/app.config.js index 37e583e4f0..f2403edd47 100644 --- a/app.config.js +++ b/app.config.js @@ -14,7 +14,7 @@ module.exports = function () { /** * Android build number. Must be incremented for each release. */ - const ANDROID_VERSION_CODE = 54 + const ANDROID_VERSION_CODE = 55 /** * Uses built-in Expo env vars From 9eeff2cc5ca6c05dee8c191f33dbbb4b7a4bd482 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 8 Jan 2024 15:47:25 -0600 Subject: [PATCH 091/115] Splash: reduce motion + dark mode (#2448) * Don't use mask for android at all * Handle reduced motion * Add dark splash * Add dark config * Fix android version code --------- Co-authored-by: Paul Frazee --- app.config.js | 12 +++ assets/splash-dark.png | Bin 0 -> 1014684 bytes src/Splash.tsx | 164 +++++++++++++++++++++++++++-------------- 3 files changed, 119 insertions(+), 57 deletions(-) create mode 100644 assets/splash-dark.png diff --git a/app.config.js b/app.config.js index f2403edd47..4f2780feb1 100644 --- a/app.config.js +++ b/app.config.js @@ -66,6 +66,12 @@ module.exports = function () { 'Used for profile pictures, posts, and other kinds of content', }, associatedDomains: ['applinks:bsky.app', 'applinks:staging.bsky.app'], + splash: { + dark: { + image: './assets/splash-dark.png', + backgroundColor: '#001429', + }, + }, }, androidStatusBar: { barStyle: 'dark-content', @@ -95,6 +101,12 @@ module.exports = function () { category: ['BROWSABLE', 'DEFAULT'], }, ], + splash: { + dark: { + image: './assets/splash-dark.png', + backgroundColor: '#001429', + }, + }, }, web: { favicon: './assets/favicon.png', diff --git a/assets/splash-dark.png b/assets/splash-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..6425bf28a1a4b41c3db69e170a0dff91234a3e2f GIT binary patch literal 1014684 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

<(Rd~E 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⁣yNK!OPNLwn{nTIEWLO?kbu?KTVFc36X5c1jVzA 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%0An`kLm~v1&>54& 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

EjN=n9V_>|YzJ*YxiwzW$iTI94u$ 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

-3{ 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%0D|BmfTVQm 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

(o#3NU)Ui?SuB{+w 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

SQ~t#WwO;@k>~fu|EB|y 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

OFO>GL!A680jw`c>n2RbPxf;mqhF?e^|l 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 literal 0 HcmV?d00001 diff --git a/src/Splash.tsx b/src/Splash.tsx index d3b21dd630..bb2c7a1757 100644 --- a/src/Splash.tsx +++ b/src/Splash.tsx @@ -1,5 +1,11 @@ import React, {useCallback, useEffect} from 'react' -import {View, StyleSheet, Image as RNImage} from 'react-native' +import { + View, + StyleSheet, + Image as RNImage, + AccessibilityInfo, + useColorScheme, +} from 'react-native' import * as SplashScreen from 'expo-splash-screen' import {Image} from 'expo-image' import Animated, { @@ -15,10 +21,17 @@ import {useSafeAreaInsets} from 'react-native-safe-area-context' import Svg, {Path, SvgProps} from 'react-native-svg' import {isAndroid} from '#/platform/detection' +import {useColorMode} from 'state/shell' +import {colors} from '#/lib/styles' // @ts-ignore import splashImagePointer from '../assets/splash.png' +// @ts-ignore +import darkSplashImagePointer from '../assets/splash-dark.png' const splashImageUri = RNImage.resolveAssetSource(splashImagePointer).uri +const darkSplashImageUri = RNImage.resolveAssetSource( + darkSplashImagePointer, +).uri export const Logo = React.forwardRef(function LogoImpl(props: SvgProps, ref) { const width = 1000 @@ -29,9 +42,9 @@ export const Logo = React.forwardRef(function LogoImpl(props: SvgProps, ref) { // @ts-ignore it's fiiiiine ref={ref} viewBox="0 0 64 66" - style={{width, height}}> + style={[{width, height}, props.style]}> @@ -53,7 +66,19 @@ export function Splash(props: React.PropsWithChildren) { const [isAnimationComplete, setIsAnimationComplete] = React.useState(false) const [isImageLoaded, setIsImageLoaded] = React.useState(false) const [isLayoutReady, setIsLayoutReady] = React.useState(false) - const isReady = props.isReady && isImageLoaded && isLayoutReady + const [reduceMotion, setReduceMotion] = React.useState( + false, + ) + const isReady = + props.isReady && + isImageLoaded && + isLayoutReady && + reduceMotion !== undefined + + const colorMode = useColorMode() + const colorScheme = useColorScheme() + const themeName = colorMode === 'system' ? colorScheme : colorMode + const isDarkMode = themeName === 'dark' const logoAnimation = useAnimatedStyle(() => { return { @@ -73,6 +98,17 @@ export function Splash(props: React.PropsWithChildren) { opacity: interpolate(intro.value, [0, 1], [0, 1], 'clamp'), } }) + const reducedLogoAnimation = useAnimatedStyle(() => { + return { + transform: [ + { + scale: interpolate(intro.value, [0, 1], [0.8, 1], 'clamp'), + }, + ], + opacity: interpolate(intro.value, [0, 1], [0, 1], 'clamp'), + } + }) + const logoWrapperAnimation = useAnimatedStyle(() => { return { opacity: interpolate( @@ -137,71 +173,85 @@ export function Splash(props: React.PropsWithChildren) { } }, [onFinish, intro, outroLogo, outroApp, outroAppOpacity, isReady]) + useEffect(() => { + AccessibilityInfo.isReduceMotionEnabled().then(setReduceMotion) + }, []) + + const logoAnimations = + reduceMotion === true ? reducedLogoAnimation : logoAnimation + return ( {!isAnimationComplete && ( )} - {isAndroid ? ( - // Use a simple fade on older versions of android (work around a bug) - <> - - {props.children} - + {isReady && + (isAndroid || reduceMotion === true ? ( + // Use a simple fade on older versions of android (work around a bug) + <> + + {props.children} + - {!isAnimationComplete && ( - - + {!isAnimationComplete && ( + + + + )} + + ) : ( + + + + }> + {!isAnimationComplete && ( + + )} + + {props.children} - )} - - ) : ( - - - - }> - {!isAnimationComplete && ( - - )} - - {props.children} - - - )} + + ))} ) } From 928a626c2e82eb2663e16800a87b1c34c0ab83d5 Mon Sep 17 00:00:00 2001 From: Hailey <153161762+haileyok@users.noreply.github.com> Date: Mon, 8 Jan 2024 13:55:48 -0800 Subject: [PATCH 092/115] support intl tenor links (#2438) * support intl tenor links * update test cases --- __tests__/lib/string.test.ts | 8 ++++++++ src/lib/strings/embed-player.ts | 7 +++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/__tests__/lib/string.test.ts b/__tests__/lib/string.test.ts index 89df7a6bd1..edddcb3e09 100644 --- a/__tests__/lib/string.test.ts +++ b/__tests__/lib/string.test.ts @@ -455,6 +455,7 @@ describe('parseEmbedPlayerFromUrl', () => { 'https://tenor.com/notView/gifId', 'https://tenor.com/view', 'https://tenor.com/view/gifId.gif', + 'https://tenor.com/intl/view/gifId.gif', ] const outputs = [ @@ -742,6 +743,13 @@ describe('parseEmbedPlayerFromUrl', () => { hideDetails: true, playerUri: 'https://tenor.com/view/gifId.gif', }, + { + type: 'tenor_gif', + source: 'tenor', + isGif: true, + hideDetails: true, + playerUri: 'https://tenor.com/intl/view/gifId.gif', + }, ] it('correctly grabs the correct id from uri', () => { diff --git a/src/lib/strings/embed-player.ts b/src/lib/strings/embed-player.ts index b27fd9e789..0f97eb0800 100644 --- a/src/lib/strings/embed-player.ts +++ b/src/lib/strings/embed-player.ts @@ -319,9 +319,12 @@ export function parseEmbedPlayerFromUrl( } if (urlp.hostname === 'tenor.com' || urlp.hostname === 'www.tenor.com') { - const [_, path, filename] = urlp.pathname.split('/') + const [_, pathOrIntl, pathOrFilename, intlFilename] = + urlp.pathname.split('/') + const isIntl = pathOrFilename === 'view' + const filename = isIntl ? intlFilename : pathOrFilename - if (path === 'view' && filename) { + if ((pathOrIntl === 'view' || pathOrFilename === 'view') && filename) { const includesExt = filename.split('.').pop() === 'gif' return { From cb9ed35cf6f66c8725061109a41eacf60e10a90a Mon Sep 17 00:00:00 2001 From: Hailey <153161762+haileyok@users.noreply.github.com> Date: Mon, 8 Jan 2024 13:56:47 -0800 Subject: [PATCH 093/115] convert prefix to lowercase in actor autocomplete query (#2431) --- src/state/queries/actor-autocomplete.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/state/queries/actor-autocomplete.ts b/src/state/queries/actor-autocomplete.ts index 785e297652..ba9f97004e 100644 --- a/src/state/queries/actor-autocomplete.ts +++ b/src/state/queries/actor-autocomplete.ts @@ -24,6 +24,8 @@ export function useActorAutocompleteQuery(prefix: string) { const {data: follows, isFetching} = useMyFollowsQuery() const moderationOpts = useModerationOpts() + prefix = prefix.toLowerCase() + return useQuery({ staleTime: STALE.MINUTES.ONE, queryKey: RQKEY(prefix || ''), From c1e8abfb77e2fa4b01e52855eec11f7fb53c32f5 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 8 Jan 2024 16:55:47 -0600 Subject: [PATCH 094/115] Fix splash config (#2452) * Don't use mask for android at all * Handle reduced motion * Add dark splash * Add dark config * Try more config * Duplicate config * Ensure splash config is applied --- app.config.js | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/app.config.js b/app.config.js index 4f2780feb1..afd6677ef1 100644 --- a/app.config.js +++ b/app.config.js @@ -1,5 +1,16 @@ const pkg = require('./package.json') +const SPLASH_CONFIG = { + backgroundColor: '#ffffff', + image: './assets/splash.png', + resizeMode: 'cover', +} +const DARK_SPLASH_CONFIG = { + backgroundColor: '#001429', + image: './assets/splash-dark.png', + resizeMode: 'cover', +} + module.exports = function () { /** * App version number. Should be incremented as part of a release cycle. @@ -42,11 +53,7 @@ module.exports = function () { orientation: 'portrait', icon: './assets/icon.png', userInterfaceStyle: 'automatic', - splash: { - image: './assets/splash.png', - resizeMode: 'cover', - backgroundColor: '#ffffff', - }, + splash: SPLASH_CONFIG, ios: { buildNumber: IOS_BUILD_NUMBER, supportsTablet: false, @@ -67,10 +74,8 @@ module.exports = function () { }, associatedDomains: ['applinks:bsky.app', 'applinks:staging.bsky.app'], splash: { - dark: { - image: './assets/splash-dark.png', - backgroundColor: '#001429', - }, + ...SPLASH_CONFIG, + dark: DARK_SPLASH_CONFIG, }, }, androidStatusBar: { @@ -102,10 +107,8 @@ module.exports = function () { }, ], splash: { - dark: { - image: './assets/splash-dark.png', - backgroundColor: '#001429', - }, + ...SPLASH_CONFIG, + dark: DARK_SPLASH_CONFIG, }, }, web: { From 0ee0554b8632a9d32fa36ffa9fde8d719ab1527e Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 8 Jan 2024 17:59:55 -0600 Subject: [PATCH 095/115] Do not nuke session on unknown backend errors (#2399) * Do not nuke session on unknown backend errors * Restore existing functionality * Use new event * Kick user out to sign in * Remove unstable --- package.json | 2 +- src/state/session/index.tsx | 66 ++++++++++++++++++++++++------------- yarn.lock | 8 ++--- 3 files changed, 48 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index e7194bc9cb..7e63ad9a62 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "nuke": "rm -rf ./node_modules && rm -rf ./ios && rm -rf ./android" }, "dependencies": { - "@atproto/api": "^0.7.4", + "@atproto/api": "^0.8.0", "@bam.tech/react-native-image-resizer": "^3.0.4", "@braintree/sanitize-url": "^6.0.2", "@emoji-mart/react": "^1.1.1", diff --git a/src/state/session/index.tsx b/src/state/session/index.tsx index a452d6aa6c..17f25570e5 100644 --- a/src/state/session/index.tsx +++ b/src/state/session/index.tsx @@ -102,10 +102,21 @@ function createPersistSessionHandler( expired: boolean refreshedAccount: SessionAccount }) => void, + { + networkErrorCallback, + }: { + networkErrorCallback?: () => void + } = {}, ): AtpPersistSessionHandler { return function persistSession(event, session) { const expired = event === 'expired' || event === 'create-failed' + if (event === 'network-error') { + logger.warn(`session: persistSessionHandler received network-error event`) + networkErrorCallback?.() + return + } + const refreshedAccount: SessionAccount = { service: account.service, did: session?.did || account.did, @@ -179,6 +190,20 @@ export function Provider({children}: React.PropsWithChildren<{}>) { [setStateAndPersist], ) + const clearCurrentAccount = React.useCallback(() => { + logger.debug( + `session: clear current account`, + {}, + logger.DebugContext.session, + ) + __globalAgent = PUBLIC_BSKY_AGENT + queryClient.clear() + setStateAndPersist(s => ({ + ...s, + currentAccount: undefined, + })) + }, [setStateAndPersist, queryClient]) + const createAccount = React.useCallback( async ({service, email, password, handle, inviteCode}: any) => { logger.info(`session: creating account`, { @@ -211,9 +236,13 @@ export function Provider({children}: React.PropsWithChildren<{}>) { } agent.setPersistSessionHandler( - createPersistSessionHandler(account, ({expired, refreshedAccount}) => { - upsertAccount(refreshedAccount, expired) - }), + createPersistSessionHandler( + account, + ({expired, refreshedAccount}) => { + upsertAccount(refreshedAccount, expired) + }, + {networkErrorCallback: clearCurrentAccount}, + ), ) __globalAgent = agent @@ -230,7 +259,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) { ) track('Create Account') }, - [upsertAccount, queryClient], + [upsertAccount, queryClient, clearCurrentAccount], ) const login = React.useCallback( @@ -263,9 +292,13 @@ export function Provider({children}: React.PropsWithChildren<{}>) { } agent.setPersistSessionHandler( - createPersistSessionHandler(account, ({expired, refreshedAccount}) => { - upsertAccount(refreshedAccount, expired) - }), + createPersistSessionHandler( + account, + ({expired, refreshedAccount}) => { + upsertAccount(refreshedAccount, expired) + }, + {networkErrorCallback: clearCurrentAccount}, + ), ) __globalAgent = agent @@ -283,23 +316,9 @@ export function Provider({children}: React.PropsWithChildren<{}>) { track('Sign In', {resumedSession: false}) }, - [upsertAccount, queryClient], + [upsertAccount, queryClient, clearCurrentAccount], ) - const clearCurrentAccount = React.useCallback(() => { - logger.debug( - `session: clear current account`, - {}, - logger.DebugContext.session, - ) - __globalAgent = PUBLIC_BSKY_AGENT - queryClient.clear() - setStateAndPersist(s => ({ - ...s, - currentAccount: undefined, - })) - }, [setStateAndPersist, queryClient]) - const logout = React.useCallback(async () => { clearCurrentAccount() logger.debug(`session: logout`, {}, logger.DebugContext.session) @@ -333,6 +352,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) { ({expired, refreshedAccount}) => { upsertAccount(refreshedAccount, expired) }, + {networkErrorCallback: clearCurrentAccount}, ), }) @@ -433,7 +453,7 @@ export function Provider({children}: React.PropsWithChildren<{}>) { } } }, - [upsertAccount, queryClient], + [upsertAccount, queryClient, clearCurrentAccount], ) const resumeSession = React.useCallback( diff --git a/yarn.lock b/yarn.lock index 0546ca5d1a..c1db264bc6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -48,10 +48,10 @@ typed-emitter "^2.1.0" zod "^3.21.4" -"@atproto/api@^0.7.4": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.7.4.tgz#0dd6e725c88d1f941c57670dc82b60fde10f4ec6" - integrity sha512-7DBy6/OcXemzCPzA0dx52LLYRABBs8bq9Docs3is+WRgEx5/Pd1kHSAlCHIaBhsym8fZ3/U4Fks/5FSHkSm4yQ== +"@atproto/api@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@atproto/api/-/api-0.8.0.tgz#57ef1f6292d05ba851e3acec575139cfc4fd7a7a" + integrity sha512-FgPOoij/PAEa0YoLKqj5NFYBvysdyb13gtS2XpJOdIvUZ2KehMlTrtj7g0AR78pRfME2jJjIgmAw6qpmSsjSTw== dependencies: "@atproto/common-web" "^0.2.3" "@atproto/lexicon" "^0.3.1" From a5b474895a27bb36381cca6a580dc19e4c4b10c2 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 8 Jan 2024 19:43:56 -0600 Subject: [PATCH 096/115] Application Layout Framework (#1732) * Initial library setup * Add docblocks * Some cleanup * New storybook * Playing around * Remove silly test, use for...in * Memo * Memo * Add hooks example * Tweak colors, bit of cleanup * Improve macro handling * Add some more examples * Rename for better diff * Cleanup * Add nested context example * Add todo * Less break more perf * Buttons, you get the idea * Fix test * Remove temp colors * Add a few more common macros * Docs * Perf improvements * Alf go brrrr * Update breakpoint handling * I think it'll work * Better naming, better code * Fix typo * Some renaming * More complete pass at Tailwind naming * Build out storybook * Playing around with curves * Revert "Playing around with curves" This reverts commit 6b0e0e5c9d842a2d9af31b53affe2f6291c3fa0d. * Smooth brain * Remove outdated docs * Some docs, fix line-height values, export tokens --- src/App.web.tsx | 39 ++- src/Navigation.tsx | 2 +- src/alf/README.md | 56 ++++ src/alf/atoms.ts | 514 ++++++++++++++++++++++++++++ src/alf/index.tsx | 92 +++++ src/alf/themes.ts | 108 ++++++ src/alf/tokens.ts | 100 ++++++ src/alf/types.ts | 16 + src/alf/util/platform.ts | 25 ++ src/alf/util/useColorModeTheme.ts | 10 + src/view/com/Button.tsx | 204 +++++++++++ src/view/com/Typography.tsx | 104 ++++++ src/view/screens/DebugNew.tsx | 541 ++++++++++++++++++++++++++++++ 13 files changed, 1793 insertions(+), 18 deletions(-) create mode 100644 src/alf/README.md create mode 100644 src/alf/atoms.ts create mode 100644 src/alf/index.tsx create mode 100644 src/alf/themes.ts create mode 100644 src/alf/tokens.ts create mode 100644 src/alf/types.ts create mode 100644 src/alf/util/platform.ts create mode 100644 src/alf/util/useColorModeTheme.ts create mode 100644 src/view/com/Button.tsx create mode 100644 src/view/com/Typography.tsx create mode 100644 src/view/screens/DebugNew.tsx diff --git a/src/App.web.tsx b/src/App.web.tsx index 6c67dc28ba..1bdb3c208c 100644 --- a/src/App.web.tsx +++ b/src/App.web.tsx @@ -7,6 +7,7 @@ import {RootSiblingParent} from 'react-native-root-siblings' import 'view/icons' +import {ThemeProvider as Alf} from '#/alf' import {init as initPersistedState} from '#/state/persisted' import {useColorMode} from 'state/shell' import {Shell} from 'view/shell/index' @@ -28,11 +29,13 @@ import { } from 'state/session' import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unread' import * as persisted from '#/state/persisted' +import {useColorModeTheme} from '#/alf/util/useColorModeTheme' function InnerApp() { const {isInitialLoad, currentAccount} = useSession() const {resumeSession} = useSessionApi() const colorMode = useColorMode() + const theme = useColorModeTheme(colorMode) // init useEffect(() => { @@ -44,23 +47,25 @@ function InnerApp() { if (isInitialLoad) return null return ( - - - - - {/* All components should be within this provider */} - - - - - - - - - - + + + + + + {/* All components should be within this provider */} + + + + + + + + + + + ) } diff --git a/src/Navigation.tsx b/src/Navigation.tsx index 7bb1aa0ade..76a893c68c 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -61,7 +61,7 @@ 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 {DebugScreen} from './view/screens/Debug' +import {DebugScreen} from './view/screens/DebugNew' import {LogScreen} from './view/screens/Log' import {SupportScreen} from './view/screens/Support' import {PrivacyPolicyScreen} from './view/screens/PrivacyPolicy' diff --git a/src/alf/README.md b/src/alf/README.md new file mode 100644 index 0000000000..aa31bcf988 --- /dev/null +++ b/src/alf/README.md @@ -0,0 +1,56 @@ +# Application Layout Framework (ALF) + +A set of UI primitives and components. + +## Usage + +Naming conventions follow Tailwind — delimited with a `_` instead of `-` to +enable object access — with a couple exceptions: + +**Spacing** + +Uses "t-shirt" sizes `xxs`, `xs`, `sm`, `md`, `lg`, `xl` and `xxl` instead of +increments of 4px. We only use a few common spacings, and otherwise typically +rely on many one-off values. + +**Text Size** + +Uses "t-shirt" sizes `xxs`, `xs`, `sm`, `md`, `lg`, `xl` and `xxl` to match our +type scale. + +**Line Height** + +The text size atoms also apply a line-height with the same value as the size, +for a 1:1 ratio. `tight` and `normal` are retained for use in the few places +where we need leading. + +### Atoms + +An (mostly-complete) set of style definitions that match Tailwind CSS selectors. +These are static and reused throughout the app. + +```tsx +import { atoms } from '#/alf' + + +``` + +### Theme + +Any values that rely on the theme, namely colors. + +```tsx +const t = useTheme() + + +``` + +### Breakpoints + +```tsx +const b = useBreakpoints() + +if (b.gtMobile) { + // render tablet or desktop UI +} +``` diff --git a/src/alf/atoms.ts b/src/alf/atoms.ts new file mode 100644 index 0000000000..c142f5f716 --- /dev/null +++ b/src/alf/atoms.ts @@ -0,0 +1,514 @@ +import * as tokens from '#/alf/tokens' + +export const atoms = { + /* + * Positioning + */ + absolute: { + position: 'absolute', + }, + relative: { + position: 'relative', + }, + inset_0: { + top: 0, + left: 0, + right: 0, + bottom: 0, + }, + z_10: { + zIndex: 10, + }, + z_20: { + zIndex: 20, + }, + z_30: { + zIndex: 30, + }, + z_40: { + zIndex: 40, + }, + z_50: { + zIndex: 50, + }, + + /* + * Width + */ + w_full: { + width: '100%', + }, + h_full: { + height: '100%', + }, + + /* + * Border radius + */ + rounded_sm: { + borderRadius: tokens.borderRadius.sm, + }, + rounded_md: { + borderRadius: tokens.borderRadius.md, + }, + rounded_full: { + borderRadius: tokens.borderRadius.full, + }, + + /* + * Flex + */ + gap_xxs: { + gap: tokens.space.xxs, + }, + gap_xs: { + gap: tokens.space.xs, + }, + gap_sm: { + gap: tokens.space.sm, + }, + gap_md: { + gap: tokens.space.md, + }, + gap_lg: { + gap: tokens.space.lg, + }, + gap_xl: { + gap: tokens.space.xl, + }, + gap_xxl: { + gap: tokens.space.xxl, + }, + flex: { + display: 'flex', + }, + flex_row: { + flexDirection: 'row', + }, + flex_wrap: { + flexWrap: 'wrap', + }, + flex_1: { + flex: 1, + }, + flex_grow: { + flexGrow: 1, + }, + flex_shrink: { + flexShrink: 1, + }, + justify_center: { + justifyContent: 'center', + }, + justify_between: { + justifyContent: 'space-between', + }, + justify_end: { + justifyContent: 'flex-end', + }, + align_center: { + alignItems: 'center', + }, + align_start: { + alignItems: 'flex-start', + }, + align_end: { + alignItems: 'flex-end', + }, + + /* + * Text + */ + text_center: { + textAlign: 'center', + }, + text_right: { + textAlign: 'right', + }, + text_xxs: { + fontSize: tokens.fontSize.xxs, + lineHeight: tokens.fontSize.xxs, + }, + text_xs: { + fontSize: tokens.fontSize.xs, + lineHeight: tokens.fontSize.xs, + }, + text_sm: { + fontSize: tokens.fontSize.sm, + lineHeight: tokens.fontSize.sm, + }, + text_md: { + fontSize: tokens.fontSize.md, + lineHeight: tokens.fontSize.md, + }, + text_lg: { + fontSize: tokens.fontSize.lg, + lineHeight: tokens.fontSize.lg, + }, + text_xl: { + fontSize: tokens.fontSize.xl, + lineHeight: tokens.fontSize.xl, + }, + text_xxl: { + fontSize: tokens.fontSize.xxl, + lineHeight: tokens.fontSize.xxl, + }, + leading_tight: { + lineHeight: 1.25, + }, + leading_normal: { + lineHeight: 1.5, + }, + font_normal: { + fontWeight: tokens.fontWeight.normal, + }, + font_semibold: { + fontWeight: tokens.fontWeight.semibold, + }, + font_bold: { + fontWeight: tokens.fontWeight.bold, + }, + + /* + * Border + */ + border: { + borderWidth: 1, + }, + border_t: { + borderTopWidth: 1, + }, + border_b: { + borderBottomWidth: 1, + }, + + /* + * Padding + */ + p_xxs: { + padding: tokens.space.xxs, + }, + p_xs: { + padding: tokens.space.xs, + }, + p_sm: { + padding: tokens.space.sm, + }, + p_md: { + padding: tokens.space.md, + }, + p_lg: { + padding: tokens.space.lg, + }, + p_xl: { + padding: tokens.space.xl, + }, + p_xxl: { + padding: tokens.space.xxl, + }, + px_xxs: { + paddingLeft: tokens.space.xxs, + paddingRight: tokens.space.xxs, + }, + px_xs: { + paddingLeft: tokens.space.xs, + paddingRight: tokens.space.xs, + }, + px_sm: { + paddingLeft: tokens.space.sm, + paddingRight: tokens.space.sm, + }, + px_md: { + paddingLeft: tokens.space.md, + paddingRight: tokens.space.md, + }, + px_lg: { + paddingLeft: tokens.space.lg, + paddingRight: tokens.space.lg, + }, + px_xl: { + paddingLeft: tokens.space.xl, + paddingRight: tokens.space.xl, + }, + px_xxl: { + paddingLeft: tokens.space.xxl, + paddingRight: tokens.space.xxl, + }, + py_xxs: { + paddingTop: tokens.space.xxs, + paddingBottom: tokens.space.xxs, + }, + py_xs: { + paddingTop: tokens.space.xs, + paddingBottom: tokens.space.xs, + }, + py_sm: { + paddingTop: tokens.space.sm, + paddingBottom: tokens.space.sm, + }, + py_md: { + paddingTop: tokens.space.md, + paddingBottom: tokens.space.md, + }, + py_lg: { + paddingTop: tokens.space.lg, + paddingBottom: tokens.space.lg, + }, + py_xl: { + paddingTop: tokens.space.xl, + paddingBottom: tokens.space.xl, + }, + py_xxl: { + paddingTop: tokens.space.xxl, + paddingBottom: tokens.space.xxl, + }, + pt_xxs: { + paddingTop: tokens.space.xxs, + }, + pt_xs: { + paddingTop: tokens.space.xs, + }, + pt_sm: { + paddingTop: tokens.space.sm, + }, + pt_md: { + paddingTop: tokens.space.md, + }, + pt_lg: { + paddingTop: tokens.space.lg, + }, + pt_xl: { + paddingTop: tokens.space.xl, + }, + pt_xxl: { + paddingTop: tokens.space.xxl, + }, + pb_xxs: { + paddingBottom: tokens.space.xxs, + }, + pb_xs: { + paddingBottom: tokens.space.xs, + }, + pb_sm: { + paddingBottom: tokens.space.sm, + }, + pb_md: { + paddingBottom: tokens.space.md, + }, + pb_lg: { + paddingBottom: tokens.space.lg, + }, + pb_xl: { + paddingBottom: tokens.space.xl, + }, + pb_xxl: { + paddingBottom: tokens.space.xxl, + }, + pl_xxs: { + paddingLeft: tokens.space.xxs, + }, + pl_xs: { + paddingLeft: tokens.space.xs, + }, + pl_sm: { + paddingLeft: tokens.space.sm, + }, + pl_md: { + paddingLeft: tokens.space.md, + }, + pl_lg: { + paddingLeft: tokens.space.lg, + }, + pl_xl: { + paddingLeft: tokens.space.xl, + }, + pl_xxl: { + paddingLeft: tokens.space.xxl, + }, + pr_xxs: { + paddingRight: tokens.space.xxs, + }, + pr_xs: { + paddingRight: tokens.space.xs, + }, + pr_sm: { + paddingRight: tokens.space.sm, + }, + pr_md: { + paddingRight: tokens.space.md, + }, + pr_lg: { + paddingRight: tokens.space.lg, + }, + pr_xl: { + paddingRight: tokens.space.xl, + }, + pr_xxl: { + paddingRight: tokens.space.xxl, + }, + + /* + * Margin + */ + m_xxs: { + margin: tokens.space.xxs, + }, + m_xs: { + margin: tokens.space.xs, + }, + m_sm: { + margin: tokens.space.sm, + }, + m_md: { + margin: tokens.space.md, + }, + m_lg: { + margin: tokens.space.lg, + }, + m_xl: { + margin: tokens.space.xl, + }, + m_xxl: { + margin: tokens.space.xxl, + }, + mx_xxs: { + marginLeft: tokens.space.xxs, + marginRight: tokens.space.xxs, + }, + mx_xs: { + marginLeft: tokens.space.xs, + marginRight: tokens.space.xs, + }, + mx_sm: { + marginLeft: tokens.space.sm, + marginRight: tokens.space.sm, + }, + mx_md: { + marginLeft: tokens.space.md, + marginRight: tokens.space.md, + }, + mx_lg: { + marginLeft: tokens.space.lg, + marginRight: tokens.space.lg, + }, + mx_xl: { + marginLeft: tokens.space.xl, + marginRight: tokens.space.xl, + }, + mx_xxl: { + marginLeft: tokens.space.xxl, + marginRight: tokens.space.xxl, + }, + my_xxs: { + marginTop: tokens.space.xxs, + marginBottom: tokens.space.xxs, + }, + my_xs: { + marginTop: tokens.space.xs, + marginBottom: tokens.space.xs, + }, + my_sm: { + marginTop: tokens.space.sm, + marginBottom: tokens.space.sm, + }, + my_md: { + marginTop: tokens.space.md, + marginBottom: tokens.space.md, + }, + my_lg: { + marginTop: tokens.space.lg, + marginBottom: tokens.space.lg, + }, + my_xl: { + marginTop: tokens.space.xl, + marginBottom: tokens.space.xl, + }, + my_xxl: { + marginTop: tokens.space.xxl, + marginBottom: tokens.space.xxl, + }, + mt_xxs: { + marginTop: tokens.space.xxs, + }, + mt_xs: { + marginTop: tokens.space.xs, + }, + mt_sm: { + marginTop: tokens.space.sm, + }, + mt_md: { + marginTop: tokens.space.md, + }, + mt_lg: { + marginTop: tokens.space.lg, + }, + mt_xl: { + marginTop: tokens.space.xl, + }, + mt_xxl: { + marginTop: tokens.space.xxl, + }, + mb_xxs: { + marginBottom: tokens.space.xxs, + }, + mb_xs: { + marginBottom: tokens.space.xs, + }, + mb_sm: { + marginBottom: tokens.space.sm, + }, + mb_md: { + marginBottom: tokens.space.md, + }, + mb_lg: { + marginBottom: tokens.space.lg, + }, + mb_xl: { + marginBottom: tokens.space.xl, + }, + mb_xxl: { + marginBottom: tokens.space.xxl, + }, + ml_xxs: { + marginLeft: tokens.space.xxs, + }, + ml_xs: { + marginLeft: tokens.space.xs, + }, + ml_sm: { + marginLeft: tokens.space.sm, + }, + ml_md: { + marginLeft: tokens.space.md, + }, + ml_lg: { + marginLeft: tokens.space.lg, + }, + ml_xl: { + marginLeft: tokens.space.xl, + }, + ml_xxl: { + marginLeft: tokens.space.xxl, + }, + mr_xxs: { + marginRight: tokens.space.xxs, + }, + mr_xs: { + marginRight: tokens.space.xs, + }, + mr_sm: { + marginRight: tokens.space.sm, + }, + mr_md: { + marginRight: tokens.space.md, + }, + mr_lg: { + marginRight: tokens.space.lg, + }, + mr_xl: { + marginRight: tokens.space.xl, + }, + mr_xxl: { + marginRight: tokens.space.xxl, + }, +} as const diff --git a/src/alf/index.tsx b/src/alf/index.tsx new file mode 100644 index 0000000000..1daa0bfedc --- /dev/null +++ b/src/alf/index.tsx @@ -0,0 +1,92 @@ +import React from 'react' +import {Dimensions} from 'react-native' +import * as themes from '#/alf/themes' + +export * as tokens from '#/alf/tokens' +export {atoms} from '#/alf/atoms' +export * from '#/alf/util/platform' + +type BreakpointName = keyof typeof breakpoints + +/* + * Breakpoints + */ +const breakpoints: { + [key: string]: number +} = { + gtMobile: 800, + gtTablet: 1200, +} +function getActiveBreakpoints({width}: {width: number}) { + const active: (keyof typeof breakpoints)[] = Object.keys(breakpoints).filter( + breakpoint => width >= breakpoints[breakpoint], + ) + + return { + active: active[active.length - 1], + gtMobile: active.includes('gtMobile'), + gtTablet: active.includes('gtTablet'), + } +} + +/* + * Context + */ +export const Context = React.createContext<{ + themeName: themes.ThemeName + theme: themes.Theme + breakpoints: { + active: BreakpointName | undefined + gtMobile: boolean + gtTablet: boolean + } +}>({ + themeName: 'light', + theme: themes.light, + breakpoints: { + active: undefined, + gtMobile: false, + gtTablet: false, + }, +}) + +export function ThemeProvider({ + children, + theme: themeName, +}: React.PropsWithChildren<{theme: themes.ThemeName}>) { + const theme = themes[themeName] + const [breakpoints, setBreakpoints] = React.useState(() => + getActiveBreakpoints({width: Dimensions.get('window').width}), + ) + + React.useEffect(() => { + const listener = Dimensions.addEventListener('change', ({window}) => { + const bp = getActiveBreakpoints({width: window.width}) + if (bp.active !== breakpoints.active) setBreakpoints(bp) + }) + + return listener.remove + }, [breakpoints, setBreakpoints]) + + return ( + ({ + themeName: themeName, + theme: theme, + breakpoints, + }), + [theme, themeName, breakpoints], + )}> + {children} + + ) +} + +export function useTheme() { + return React.useContext(Context).theme +} + +export function useBreakpoints() { + return React.useContext(Context).breakpoints +} diff --git a/src/alf/themes.ts b/src/alf/themes.ts new file mode 100644 index 0000000000..aae5c58931 --- /dev/null +++ b/src/alf/themes.ts @@ -0,0 +1,108 @@ +import * as tokens from '#/alf/tokens' +import type {Mutable} from '#/alf/types' + +export type ThemeName = 'light' | 'dark' +export type ReadonlyTheme = typeof light +export type Theme = Mutable + +export type Palette = { + primary: string + positive: string + negative: string +} + +export const lightPalette: Palette = { + primary: tokens.color.blue_500, + positive: tokens.color.green_500, + negative: tokens.color.red_500, +} as const + +export const darkPalette: Palette = { + primary: tokens.color.blue_500, + positive: tokens.color.green_400, + negative: tokens.color.red_400, +} as const + +export const light = { + palette: lightPalette, + atoms: { + text: { + color: tokens.color.gray_1000, + }, + text_contrast_700: { + color: tokens.color.gray_700, + }, + text_contrast_500: { + color: tokens.color.gray_500, + }, + text_inverted: { + color: tokens.color.white, + }, + bg: { + backgroundColor: tokens.color.white, + }, + bg_contrast_100: { + backgroundColor: tokens.color.gray_100, + }, + bg_contrast_200: { + backgroundColor: tokens.color.gray_200, + }, + bg_contrast_300: { + backgroundColor: tokens.color.gray_300, + }, + bg_positive: { + backgroundColor: tokens.color.green_500, + }, + bg_negative: { + backgroundColor: tokens.color.red_400, + }, + border: { + borderColor: tokens.color.gray_200, + }, + border_contrast_500: { + borderColor: tokens.color.gray_500, + }, + }, +} + +export const dark: Theme = { + palette: darkPalette, + atoms: { + text: { + color: tokens.color.white, + }, + text_contrast_700: { + color: tokens.color.gray_300, + }, + text_contrast_500: { + color: tokens.color.gray_500, + }, + text_inverted: { + color: tokens.color.gray_1000, + }, + bg: { + backgroundColor: tokens.color.gray_1000, + }, + bg_contrast_100: { + backgroundColor: tokens.color.gray_900, + }, + bg_contrast_200: { + backgroundColor: tokens.color.gray_800, + }, + bg_contrast_300: { + backgroundColor: tokens.color.gray_700, + }, + bg_positive: { + backgroundColor: tokens.color.green_400, + }, + bg_negative: { + backgroundColor: tokens.color.red_400, + }, + border: { + borderColor: tokens.color.gray_800, + }, + border_contrast_500: { + borderColor: tokens.color.gray_500, + }, + }, +} diff --git a/src/alf/tokens.ts b/src/alf/tokens.ts new file mode 100644 index 0000000000..4034e0deb4 --- /dev/null +++ b/src/alf/tokens.ts @@ -0,0 +1,100 @@ +const BLUE_HUE = 211 +const GRAYSCALE_SATURATION = 22 + +export const color = { + white: '#FFFFFF', + + gray_0: `hsl(${BLUE_HUE}, ${GRAYSCALE_SATURATION}%, 100%)`, + gray_100: `hsl(${BLUE_HUE}, ${GRAYSCALE_SATURATION}%, 95%)`, + gray_200: `hsl(${BLUE_HUE}, ${GRAYSCALE_SATURATION}%, 85%)`, + gray_300: `hsl(${BLUE_HUE}, ${GRAYSCALE_SATURATION}%, 75%)`, + gray_400: `hsl(${BLUE_HUE}, ${GRAYSCALE_SATURATION}%, 65%)`, + gray_500: `hsl(${BLUE_HUE}, ${GRAYSCALE_SATURATION}%, 55%)`, + gray_600: `hsl(${BLUE_HUE}, ${GRAYSCALE_SATURATION}%, 45%)`, + gray_700: `hsl(${BLUE_HUE}, ${GRAYSCALE_SATURATION}%, 35%)`, + gray_800: `hsl(${BLUE_HUE}, ${GRAYSCALE_SATURATION}%, 25%)`, + gray_900: `hsl(${BLUE_HUE}, ${GRAYSCALE_SATURATION}%, 15%)`, + gray_1000: `hsl(${BLUE_HUE}, ${GRAYSCALE_SATURATION}%, 5%)`, + + blue_0: `hsl(${BLUE_HUE}, 99%, 100%)`, + blue_100: `hsl(${BLUE_HUE}, 99%, 93%)`, + blue_200: `hsl(${BLUE_HUE}, 99%, 83%)`, + blue_300: `hsl(${BLUE_HUE}, 99%, 73%)`, + blue_400: `hsl(${BLUE_HUE}, 99%, 63%)`, + blue_500: `hsl(${BLUE_HUE}, 99%, 53%)`, + blue_600: `hsl(${BLUE_HUE}, 99%, 43%)`, + blue_700: `hsl(${BLUE_HUE}, 99%, 33%)`, + blue_800: `hsl(${BLUE_HUE}, 99%, 23%)`, + blue_900: `hsl(${BLUE_HUE}, 99%, 13%)`, + blue_1000: `hsl(${BLUE_HUE}, 99%, 8%)`, + + green_0: `hsl(130, 60%, 100%)`, + green_100: `hsl(130, 60%, 95%)`, + green_200: `hsl(130, 60%, 85%)`, + green_300: `hsl(130, 60%, 75%)`, + green_400: `hsl(130, 60%, 65%)`, + green_500: `hsl(130, 60%, 55%)`, + green_600: `hsl(130, 60%, 45%)`, + green_700: `hsl(130, 60%, 35%)`, + green_800: `hsl(130, 60%, 25%)`, + green_900: `hsl(130, 60%, 15%)`, + green_1000: `hsl(130, 60%, 5%)`, + + red_0: `hsl(349, 96%, 100%)`, + red_100: `hsl(349, 96%, 95%)`, + red_200: `hsl(349, 96%, 85%)`, + red_300: `hsl(349, 96%, 75%)`, + red_400: `hsl(349, 96%, 65%)`, + red_500: `hsl(349, 96%, 55%)`, + red_600: `hsl(349, 96%, 45%)`, + red_700: `hsl(349, 96%, 35%)`, + red_800: `hsl(349, 96%, 25%)`, + red_900: `hsl(349, 96%, 15%)`, + red_1000: `hsl(349, 96%, 5%)`, +} as const + +export const space = { + xxs: 2, + xs: 4, + sm: 8, + md: 12, + lg: 18, + xl: 24, + xxl: 32, +} as const + +export const fontSize = { + xxs: 10, + xs: 12, + sm: 14, + md: 16, + lg: 18, + xl: 22, + xxl: 26, +} as const + +// TODO test +export const lineHeight = { + none: 1, + normal: 1.5, + relaxed: 1.625, +} as const + +export const borderRadius = { + sm: 8, + md: 12, + full: 999, +} as const + +export const fontWeight = { + normal: '400', + semibold: '600', + bold: '900', +} as const + +export type Color = keyof typeof color +export type Space = keyof typeof space +export type FontSize = keyof typeof fontSize +export type LineHeight = keyof typeof lineHeight +export type BorderRadius = keyof typeof borderRadius +export type FontWeight = keyof typeof fontWeight diff --git a/src/alf/types.ts b/src/alf/types.ts new file mode 100644 index 0000000000..76ac05d40e --- /dev/null +++ b/src/alf/types.ts @@ -0,0 +1,16 @@ +type LiteralToCommon = T extends number + ? number + : T extends string + ? string + : T extends symbol + ? symbol + : never + +/** + * @see https://stackoverflow.com/questions/68249999/use-as-const-in-typescript-without-adding-readonly-modifiers + */ +export type Mutable = { + -readonly [K in keyof T]: T[K] extends PropertyKey + ? LiteralToCommon + : Mutable +} diff --git a/src/alf/util/platform.ts b/src/alf/util/platform.ts new file mode 100644 index 0000000000..544f5480b6 --- /dev/null +++ b/src/alf/util/platform.ts @@ -0,0 +1,25 @@ +import {Platform} from 'react-native' + +export function web(value: any) { + return Platform.select({ + web: value, + }) +} + +export function ios(value: any) { + return Platform.select({ + ios: value, + }) +} + +export function android(value: any) { + return Platform.select({ + android: value, + }) +} + +export function native(value: any) { + return Platform.select({ + native: value, + }) +} diff --git a/src/alf/util/useColorModeTheme.ts b/src/alf/util/useColorModeTheme.ts new file mode 100644 index 0000000000..79cebc1394 --- /dev/null +++ b/src/alf/util/useColorModeTheme.ts @@ -0,0 +1,10 @@ +import {useColorScheme} from 'react-native' + +import * as persisted from '#/state/persisted' + +export function useColorModeTheme( + theme: persisted.Schema['colorMode'], +): 'light' | 'dark' { + const colorScheme = useColorScheme() + return (theme === 'system' ? colorScheme : theme) || 'light' +} diff --git a/src/view/com/Button.tsx b/src/view/com/Button.tsx new file mode 100644 index 0000000000..d1f70d4aeb --- /dev/null +++ b/src/view/com/Button.tsx @@ -0,0 +1,204 @@ +import React from 'react' +import {Pressable, Text, PressableProps, TextProps} from 'react-native' +import * as tokens from '#/alf/tokens' +import {atoms} from '#/alf' + +export type ButtonType = + | 'primary' + | 'secondary' + | 'tertiary' + | 'positive' + | 'negative' +export type ButtonSize = 'small' | 'large' + +export type VariantProps = { + type?: ButtonType + size?: ButtonSize +} +type ButtonState = { + pressed: boolean + hovered: boolean + focused: boolean +} +export type ButtonProps = Omit & + VariantProps & { + children: + | ((props: { + state: ButtonState + type?: ButtonType + size?: ButtonSize + }) => React.ReactNode) + | React.ReactNode + | string + } +export type ButtonTextProps = TextProps & VariantProps + +export function Button({children, style, type, size, ...rest}: ButtonProps) { + const {baseStyles, hoverStyles} = React.useMemo(() => { + const baseStyles = [] + const hoverStyles = [] + + switch (type) { + case 'primary': + baseStyles.push({ + backgroundColor: tokens.color.blue_500, + }) + break + case 'secondary': + baseStyles.push({ + backgroundColor: tokens.color.gray_200, + }) + hoverStyles.push({ + backgroundColor: tokens.color.gray_100, + }) + break + default: + } + + switch (size) { + case 'large': + baseStyles.push( + atoms.py_md, + atoms.px_xl, + atoms.rounded_md, + atoms.gap_sm, + ) + break + case 'small': + baseStyles.push( + atoms.py_sm, + atoms.px_md, + atoms.rounded_sm, + atoms.gap_xs, + ) + break + default: + } + + return { + baseStyles, + hoverStyles, + } + }, [type, size]) + + const [state, setState] = React.useState({ + pressed: false, + hovered: false, + focused: false, + }) + + const onPressIn = React.useCallback(() => { + setState(s => ({ + ...s, + pressed: true, + })) + }, [setState]) + const onPressOut = React.useCallback(() => { + setState(s => ({ + ...s, + pressed: false, + })) + }, [setState]) + const onHoverIn = React.useCallback(() => { + setState(s => ({ + ...s, + hovered: true, + })) + }, [setState]) + const onHoverOut = React.useCallback(() => { + setState(s => ({ + ...s, + hovered: false, + })) + }, [setState]) + const onFocus = React.useCallback(() => { + setState(s => ({ + ...s, + focused: true, + })) + }, [setState]) + const onBlur = React.useCallback(() => { + setState(s => ({ + ...s, + focused: false, + })) + }, [setState]) + + return ( + [ + atoms.flex_row, + atoms.align_center, + ...baseStyles, + ...(state.hovered ? hoverStyles : []), + typeof style === 'function' ? style(state) : style, + ]} + onPressIn={onPressIn} + onPressOut={onPressOut} + onHoverIn={onHoverIn} + onHoverOut={onHoverOut} + onFocus={onFocus} + onBlur={onBlur}> + {typeof children === 'string' ? ( + + {children} + + ) : typeof children === 'function' ? ( + children({state, type, size}) + ) : ( + children + )} + + ) +} + +export function ButtonText({ + children, + style, + type, + size, + ...rest +}: ButtonTextProps) { + const textStyles = React.useMemo(() => { + const base = [] + + switch (type) { + case 'primary': + base.push({color: tokens.color.white}) + break + case 'secondary': + base.push({ + color: tokens.color.gray_700, + }) + break + default: + } + + switch (size) { + case 'small': + base.push(atoms.text_sm, {paddingBottom: 1}) + break + case 'large': + base.push(atoms.text_md, {paddingBottom: 1}) + break + default: + } + + return base + }, [type, size]) + + return ( + + {children} + + ) +} diff --git a/src/view/com/Typography.tsx b/src/view/com/Typography.tsx new file mode 100644 index 0000000000..6579c2e511 --- /dev/null +++ b/src/view/com/Typography.tsx @@ -0,0 +1,104 @@ +import React from 'react' +import {Text as RNText, TextProps} from 'react-native' +import {useTheme, atoms, web} from '#/alf' + +export function Text({style, ...rest}: TextProps) { + const t = useTheme() + return +} + +export function H1({style, ...rest}: TextProps) { + const t = useTheme() + const attr = + web({ + role: 'heading', + 'aria-level': 1, + }) || {} + return ( + + ) +} + +export function H2({style, ...rest}: TextProps) { + const t = useTheme() + const attr = + web({ + role: 'heading', + 'aria-level': 2, + }) || {} + return ( + + ) +} + +export function H3({style, ...rest}: TextProps) { + const t = useTheme() + const attr = + web({ + role: 'heading', + 'aria-level': 3, + }) || {} + return ( + + ) +} + +export function H4({style, ...rest}: TextProps) { + const t = useTheme() + const attr = + web({ + role: 'heading', + 'aria-level': 4, + }) || {} + return ( + + ) +} + +export function H5({style, ...rest}: TextProps) { + const t = useTheme() + const attr = + web({ + role: 'heading', + 'aria-level': 5, + }) || {} + return ( + + ) +} + +export function H6({style, ...rest}: TextProps) { + const t = useTheme() + const attr = + web({ + role: 'heading', + 'aria-level': 6, + }) || {} + return ( + + ) +} diff --git a/src/view/screens/DebugNew.tsx b/src/view/screens/DebugNew.tsx new file mode 100644 index 0000000000..0b7c5f03bc --- /dev/null +++ b/src/view/screens/DebugNew.tsx @@ -0,0 +1,541 @@ +import React from 'react' +import {View} from 'react-native' +import {CenteredView, ScrollView} from '#/view/com/util/Views' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' + +import {useSetColorMode} from '#/state/shell' +import * as tokens from '#/alf/tokens' +import {atoms as a, useTheme, useBreakpoints, ThemeProvider as Alf} from '#/alf' +import {Button, ButtonText} from '#/view/com/Button' +import {Text, H1, H2, H3, H4, H5, H6} from '#/view/com/Typography' + +function ThemeSelector() { + const setColorMode = useSetColorMode() + + return ( + + + + + + ) +} + +function BreakpointDebugger() { + const t = useTheme() + const breakpoints = useBreakpoints() + + return ( + +

Breakpoint Debugger

+ + Current breakpoint: {!breakpoints.gtMobile && mobile} + {breakpoints.gtMobile && !breakpoints.gtTablet && tablet} + {breakpoints.gtTablet && desktop} + + + {JSON.stringify(breakpoints, null, 2)} + + + ) +} + +function ThemedSection() { + const t = useTheme() + + return ( + +

theme.atoms.text

+ +

+ theme.atoms.text_contrast_700 +

+ +

+ theme.atoms.text_contrast_500 +

+ + + + + theme.bg + + + theme.bg_contrast_100 + + + + + theme.bg_contrast_200 + + + theme.bg_contrast_300 + + + + + theme.bg_positive + + + theme.bg_negative + + + + ) +} + +export function DebugScreen() { + const t = useTheme() + + return ( + + + + + + + + + + + + +

Heading 1

+

Heading 2

+

Heading 3

+

Heading 4

+
Heading 5
+
Heading 6
+ + atoms.text_xxl + atoms.text_xl + atoms.text_lg + atoms.text_md + atoms.text_sm + atoms.text_xs + atoms.text_xxs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Spacing

+ + + + xxs (2px) + + + + + xs (4px) + + + + + sm (8px) + + + + + md (12px) + + + + + lg (18px) + + + + + xl (24px) + + + + + xxl (32px) + + + + + + + +
+
+ ) +} From 153c25e1fee6037b2a8595108f007da072b055c1 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 8 Jan 2024 20:51:56 -0800 Subject: [PATCH 097/115] Add stable gutters to settings page --- src/view/screens/Settings.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/view/screens/Settings.tsx b/src/view/screens/Settings.tsx index d413e234f1..1888ccceac 100644 --- a/src/view/screens/Settings.tsx +++ b/src/view/screens/Settings.tsx @@ -290,7 +290,9 @@ export function SettingsScreen({}: Props) { + scrollIndicatorInsets={{right: 1}} + // @ts-ignore web only -prf + dataSet={{'stable-gutters': 1}}> {currentAccount ? ( <> From dda5ca27feb54e7101cb80d9a38a7edd5440d0ec Mon Sep 17 00:00:00 2001 From: Hailey <153161762+haileyok@users.noreply.github.com> Date: Mon, 8 Jan 2024 21:37:12 -0800 Subject: [PATCH 098/115] add expandable context to composer when replying to post (#2419) * add expand replyTo text with animation * add images, quote to replyTo * support withmedia * adjust layout * add embed to all needed openComposer calls * adjust gap * organize imports --- src/state/shell/composer.tsx | 1 + src/view/com/composer/Composer.tsx | 31 +-- src/view/com/composer/ComposerReplyTo.tsx | 254 ++++++++++++++++++++ src/view/com/post-thread/PostThreadItem.tsx | 1 + src/view/com/post/Post.tsx | 1 + src/view/com/posts/FeedItem.tsx | 1 + src/view/screens/PostThread.tsx | 1 + 7 files changed, 261 insertions(+), 29 deletions(-) create mode 100644 src/view/com/composer/ComposerReplyTo.tsx diff --git a/src/state/shell/composer.tsx b/src/state/shell/composer.tsx index 9cf8ef8deb..51376fd5a6 100644 --- a/src/state/shell/composer.tsx +++ b/src/state/shell/composer.tsx @@ -11,6 +11,7 @@ export interface ComposerOptsPostRef { displayName?: string avatar?: string } + embed?: AppBskyEmbedRecord.ViewRecord['embed'] } export interface ComposerOptsQuote { uri: string diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index b15afe6f02..a834cfc0e5 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -29,8 +29,6 @@ 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 {sanitizeDisplayName} from 'lib/strings/display-names' -import {sanitizeHandle} from 'lib/strings/handles' import {cleanError} from 'lib/strings/errors' import {shortenLinks} from 'lib/strings/rich-text-manip' import {toShortUrl} from 'lib/strings/url-helpers' @@ -63,6 +61,7 @@ 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' type Props = ComposerOpts export const ComposePost = observer(function ComposePost({ @@ -379,22 +378,7 @@ export const ComposePost = observer(function ComposePost({ - {replyTo ? ( - - - - - {sanitizeDisplayName( - replyTo.author.displayName || - sanitizeHandle(replyTo.author.handle), - )} - - - {replyTo.text} - - - - ) : undefined} + {replyTo ? : undefined} { + setShowFull(prev => !prev) + LayoutAnimation.configureNext({ + duration: 350, + update: {type: 'spring', springDamping: 0.7}, + }) + }, []) + + const quote = React.useMemo(() => { + if ( + AppBskyEmbedRecord.isView(embed) && + AppBskyEmbedRecord.isViewRecord(embed.record) && + AppBskyFeedPost.isRecord(embed.record.value) + ) { + // Not going to include the images right now + return { + author: embed.record.author, + cid: embed.record.cid, + uri: embed.record.uri, + indexedAt: embed.record.indexedAt, + text: embed.record.value.text, + } + } else if ( + AppBskyEmbedRecordWithMedia.isView(embed) && + AppBskyEmbedRecord.isViewRecord(embed.record.record) && + AppBskyFeedPost.isRecord(embed.record.record.value) + ) { + return { + author: embed.record.record.author, + cid: embed.record.record.cid, + uri: embed.record.record.uri, + indexedAt: embed.record.record.indexedAt, + text: embed.record.record.value.text, + } + } + }, [embed]) + + const images = React.useMemo(() => { + if (AppBskyEmbedImages.isView(embed)) { + return embed.images + } else if ( + AppBskyEmbedRecordWithMedia.isView(embed) && + AppBskyEmbedImages.isView(embed.media) + ) { + return embed.media.images + } + }, [embed]) + + return ( + + + + + {sanitizeDisplayName( + replyTo.author.displayName || sanitizeHandle(replyTo.author.handle), + )} + + + + + {replyTo.text} + + + {images && ( + + )} + + {showFull && quote && } + + + ) +} + +function ComposerReplyToImages({ + images, +}: { + images: AppBskyEmbedImages.ViewImage[] + showFull: boolean +}) { + return ( + + + {(images.length === 1 && ( + + )) || + (images.length === 2 && ( + + + + + )) || + (images.length === 3 && ( + + + + + + + + )) || + (images.length === 4 && ( + + + + + + + + + + + ))} + + + ) +} + +const styles = StyleSheet.create({ + replyToLayout: { + flexDirection: 'row', + borderTopWidth: 1, + paddingTop: 16, + paddingBottom: 16, + }, + replyToPost: { + flex: 1, + paddingLeft: 13, + paddingRight: 8, + }, + replyToBody: { + flexDirection: 'row', + gap: 10, + }, + replyToText: { + flex: 1, + flexGrow: 1, + }, + imagesContainer: { + borderRadius: 6, + overflow: 'hidden', + marginTop: 2, + }, + imagesInner: { + gap: 2, + }, + imagesRow: { + flexDirection: 'row', + }, + singleImage: { + width: 65, + height: 65, + }, + doubleImageTall: { + width: 32.5, + height: 65, + }, + doubleImage: { + width: 32.5, + height: 32.5, + }, +}) diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx index 986fd70b2e..fc03c0d958 100644 --- a/src/view/com/post-thread/PostThreadItem.tsx +++ b/src/view/com/post-thread/PostThreadItem.tsx @@ -214,6 +214,7 @@ let PostThreadItemLoaded = ({ displayName: post.author.displayName, avatar: post.author.avatar, }, + embed: post.embed, }, onPost: onPostReply, }) diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx index fca4171c3a..ac4689d2f0 100644 --- a/src/view/com/post/Post.tsx +++ b/src/view/com/post/Post.tsx @@ -118,6 +118,7 @@ function PostInner({ displayName: post.author.displayName, avatar: post.author.avatar, }, + embed: post.embed, }, }) }, [openComposer, post, record]) diff --git a/src/view/com/posts/FeedItem.tsx b/src/view/com/posts/FeedItem.tsx index 942d7bf713..2a5abcd686 100644 --- a/src/view/com/posts/FeedItem.tsx +++ b/src/view/com/posts/FeedItem.tsx @@ -131,6 +131,7 @@ let FeedItemInner = ({ displayName: post.author.displayName, avatar: post.author.avatar, }, + embed: post.embed, }, }) }, [post, record, openComposer]) diff --git a/src/view/screens/PostThread.tsx b/src/view/screens/PostThread.tsx index 9f50c8b73b..6f8434412c 100644 --- a/src/view/screens/PostThread.tsx +++ b/src/view/screens/PostThread.tsx @@ -67,6 +67,7 @@ export function PostThreadScreen({route}: Props) { displayName: thread.post.author.displayName, avatar: thread.post.author.avatar, }, + embed: thread.post.embed, }, onPost: () => queryClient.invalidateQueries({ From d7f4e1391c385f11fbb61b7f1ffa6da65957b6a1 Mon Sep 17 00:00:00 2001 From: Danni Date: Wed, 10 Jan 2024 03:47:48 +0700 Subject: [PATCH 099/115] Add Indonesian localization (#2356) * Add Indonesian (id) locale * Add Indonesian translation messages * Update team number and add some translation * Update for better ID translation * Apply suggestions from code review Co-authored-by: Aditya Dirgantara Co-authored-by: Mary <148872143+mary-ext@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Aditya Dirgantara * Apply suggestions from code review Co-authored-by: Mary <148872143+mary-ext@users.noreply.github.com> * Change translation post to postingan * Update translation * Fix error * Apply suggestions from code review Co-authored-by: Mary <148872143+mary-ext@users.noreply.github.com> * Add Thinkbyte1024 and mary-ext to language team ID * Update username to lowercase --------- Co-authored-by: Aditya Dirgantara Co-authored-by: Mary <148872143+mary-ext@users.noreply.github.com> Co-authored-by: Ansh --- lingui.config.js | 2 +- src/locale/__tests__/helpers.test.ts | 1 + src/locale/helpers.ts | 4 +- src/locale/i18n.ts | 5 + src/locale/i18n.web.ts | 4 + src/locale/languages.ts | 2 + src/locale/locales/id/messages.po | 2478 ++++++++++++++++++++++++++ 7 files changed, 2493 insertions(+), 3 deletions(-) create mode 100644 src/locale/locales/id/messages.po diff --git a/lingui.config.js b/lingui.config.js index dc26f57a53..8b4893835c 100644 --- a/lingui.config.js +++ b/lingui.config.js @@ -1,6 +1,6 @@ /** @type {import('@lingui/conf').LinguiConfig} */ module.exports = { - locales: ['en', 'hi', 'ja', 'fr', 'de', 'es', 'ko', 'es', 'pt-BR', 'uk'], + locales: ['en', 'hi', 'ja', 'fr', 'de', 'es', 'ko', 'es', 'pt-BR', 'uk', 'id'], catalogs: [ { path: '/src/locale/locales/{locale}/messages', diff --git a/src/locale/__tests__/helpers.test.ts b/src/locale/__tests__/helpers.test.ts index 15b420fdee..5e924c9fe8 100644 --- a/src/locale/__tests__/helpers.test.ts +++ b/src/locale/__tests__/helpers.test.ts @@ -7,6 +7,7 @@ test('sanitizeAppLanguageSetting', () => { expect(sanitizeAppLanguageSetting('en')).toBe(AppLanguage.en) expect(sanitizeAppLanguageSetting('pt-BR')).toBe(AppLanguage.pt_BR) expect(sanitizeAppLanguageSetting('hi')).toBe(AppLanguage.hi) + expect(sanitizeAppLanguageSetting('id')).toBe(AppLanguage.id) expect(sanitizeAppLanguageSetting('foo')).toBe(AppLanguage.en) expect(sanitizeAppLanguageSetting('en,foo')).toBe(AppLanguage.en) expect(sanitizeAppLanguageSetting('foo,en')).toBe(AppLanguage.en) diff --git a/src/locale/helpers.ts b/src/locale/helpers.ts index 517e610bfd..197fe38865 100644 --- a/src/locale/helpers.ts +++ b/src/locale/helpers.ts @@ -113,7 +113,8 @@ export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage { // DISABLED until this translation is fixed -prf // case 'de': // return AppLanguage.de - // DISABLED until this translation is more thoroughly reviewed -prf + case 'id': + return AppLanguage.id case 'es': return AppLanguage.es case 'fr': @@ -132,6 +133,5 @@ export function sanitizeAppLanguageSetting(appLanguage: string): AppLanguage { continue } } - return AppLanguage.en } diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts index 9e9b578c7d..327a035c19 100644 --- a/src/locale/i18n.ts +++ b/src/locale/i18n.ts @@ -5,6 +5,7 @@ import {useLanguagePrefs} from '#/state/preferences' import {messages as messagesEn} from '#/locale/locales/en/messages' // DISABLED until this translation is fixed -prf // 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' @@ -26,6 +27,10 @@ export async function dynamicActivate(locale: AppLanguage) { // i18n.loadAndActivate({locale, messages: messagesDe}) // break // } + case AppLanguage.id: { + i18n.loadAndActivate({locale, messages: messagesId}) + break + } case AppLanguage.es: { i18n.loadAndActivate({locale, messages: messagesEs}) break diff --git a/src/locale/i18n.web.ts b/src/locale/i18n.web.ts index 1fb9c2d703..ec7ae824a8 100644 --- a/src/locale/i18n.web.ts +++ b/src/locale/i18n.web.ts @@ -17,6 +17,10 @@ export async function dynamicActivate(locale: AppLanguage) { // mod = await import(`./locales/de/messages`) // break // } + case AppLanguage.id: { + mod = await import(`./locales/id/messages`) + break + } case AppLanguage.es: { mod = await import(`./locales/es/messages`) break diff --git a/src/locale/languages.ts b/src/locale/languages.ts index 6514bf92c6..cacd144f18 100644 --- a/src/locale/languages.ts +++ b/src/locale/languages.ts @@ -8,6 +8,7 @@ export enum AppLanguage { en = 'en', // DISABLED until this translation is fixed -prf // de = 'de', + id = 'id', es = 'es', fr = 'fr', hi = 'hi', @@ -26,6 +27,7 @@ export const APP_LANGUAGES: AppLanguageConfig[] = [ {code2: AppLanguage.en, name: 'English'}, // DISABLED until this translation is fixed -prf // {code2: AppLanguage.de, name: 'Deutsch'}, + {code2: AppLanguage.id, name: 'Indonesian'}, {code2: AppLanguage.es, name: 'Español'}, {code2: AppLanguage.fr, name: 'Français'}, {code2: AppLanguage.hi, name: 'हिंदी'}, diff --git a/src/locale/locales/id/messages.po b/src/locale/locales/id/messages.po new file mode 100644 index 0000000000..add00b346d --- /dev/null +++ b/src/locale/locales/id/messages.po @@ -0,0 +1,2478 @@ +msgid "" +msgstr "" +"POT-Creation-Date: 2023-12-28 11:56+07000\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: @lingui/cli\n" +"Language: id\n" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: \n" +"Last-Translator: danninov\n" +"Language-Team: danninov, thinkbyte1024, mary-ext\n" +"Plural-Forms: \n" + +#: src/view/shell/desktop/RightNav.tsx:160 +msgid "{0, plural, one {# invite code available} other {# invite codes available}}" +msgstr "{0, plural, one {# kode undangan tersedia} other {# kode undangan tersedia}}" + +#: src/view/com/modals/Repost.tsx:44 +msgid "{0}" +msgstr "{0}" + +#: src/view/com/modals/CreateOrEditList.tsx:176 +msgid "{0} {purposeLabel} List" +msgstr "Daftar {purposeLabel} {0}" + +#: src/view/shell/desktop/RightNav.tsx:143 +msgid "{invitesAvailable, plural, one {Invite codes: # available} other {Invite codes: # available}}" +msgstr "{invitesAvailable, plural, one {Kode undangan: # tersedia} other {Kode undangan: # tersedia}}" + +#: src/view/screens/Settings.tsx:407 +#: src/view/shell/Drawer.tsx:659 +msgid "{invitesAvailable} invite code available" +msgstr "{invitesAvailable} kode undangan tersedia" + +#: src/view/screens/Settings.tsx:409 +#: src/view/shell/Drawer.tsx:661 +msgid "{invitesAvailable} invite codes available" +msgstr "{invitesAvailable} kode undangan tersedia" + +#: src/view/screens/Search/Search.tsx:87 +msgid "{message}" +msgstr "{message}" + +#: src/view/com/threadgate/WhoCanReply.tsx:158 +msgid "<0/> members" +msgstr "<0/> anggota" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:30 +msgid "<0>Choose your<1>Recommended<2>Feeds" +msgstr "<0>Pilih<1>Rekomendasi<2>Feed" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:37 +msgid "<0>Follow some<1>Recommended<2>Users" +msgstr "<0>Ikuti<1>Rekomendasi<2>Pengguna" + +#: 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}" + +#: src/lib/hooks/useOTAUpdate.ts:16 +msgid "A new version of the app is available. Please update to continue using the app." +msgstr "Versi terbaru aplikasi telah tersedia. Mohon perbarui untuk melanjutkan." + +#: src/view/com/modals/EditImage.tsx:299 +#: src/view/screens/Settings.tsx:417 +msgid "Accessibility" +msgstr "Aksesibilitas" + +#: src/view/com/auth/login/LoginForm.tsx:159 +#: src/view/screens/Settings.tsx:286 +msgid "Account" +msgstr "Akun" + +#: src/view/com/util/AccountDropdownBtn.tsx:41 +msgid "Account options" +msgstr "Preferensi akun" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/UserAddRemoveLists.tsx:193 +#: src/view/screens/ProfileList.tsx:754 +msgid "Add" +msgstr "Tambah" + +#: src/view/com/modals/SelfLabel.tsx:56 +msgid "Add a content warning" +msgstr "Tambahkan peringatan konten" + +#: src/view/screens/ProfileList.tsx:744 +msgid "Add a user to this list" +msgstr "Tambahkan pengguna ke daftar ini" + +#: src/view/screens/Settings.tsx:355 +#: src/view/screens/Settings.tsx:364 +msgid "Add account" +msgstr "Tambahkan akun" + +#: src/view/com/composer/photos/Gallery.tsx:119 +#: src/view/com/composer/photos/Gallery.tsx:180 +msgid "Add alt text" +msgstr "Tambahkan teks alt" + +#: src/view/com/modals/report/InputIssueDetails.tsx:41 +#: src/view/com/modals/report/Modal.tsx:191 +msgid "Add details" +msgstr "Tambahkan detail" + +#: src/view/com/modals/report/Modal.tsx:194 +msgid "Add details to report" +msgstr "Tambahkan detail ke laporan" + +#: src/view/com/composer/Composer.tsx:438 +msgid "Add link card" +msgstr "Tambahkan kartu tautan" + +#: src/view/com/composer/Composer.tsx:441 +msgid "Add link card:" +msgstr "Tambahkan kartu tautan:" + +#: src/view/com/modals/ChangeHandle.tsx:415 +msgid "Add the following DNS record to your domain:" +msgstr "Tambahkan DNS record berikut ke domain Anda:" + +#: src/view/com/profile/ProfileHeader.tsx:353 +msgid "Add to Lists" +msgstr "Tambahkan ke Daftar" + +#: src/view/screens/ProfileFeed.tsx:270 +msgid "Add to my feeds" +msgstr "Tambakan ke feed saya" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:191 +#: src/view/com/modals/UserAddRemoveLists.tsx:128 +msgid "Added to list" +msgstr "Telah ditambahkan ke daftar" + +#: src/view/screens/PreferencesHomeFeed.tsx:164 +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/view/com/modals/SelfLabel.tsx:75 +msgid "Adult Content" +msgstr "Konten Dewasa" + +#: src/view/screens/Settings.tsx:569 +msgid "Advanced" +msgstr "Lanjutan" + +#: src/view/com/composer/photos/Gallery.tsx:130 +msgid "ALT" +msgstr "ALT" + +#: src/view/com/modals/EditImage.tsx:315 +msgid "Alt text" +msgstr "Teks alt" + +#: 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 "Teks alt mendeskripsikan gambar untuk pengguna disabilitas netra, serta memberikan konteks ke semua orang." + +#: src/view/com/modals/VerifyEmail.tsx:118 +msgid "An email has been sent to {0}. It includes a confirmation code which you can enter below." +msgstr "Email telah dikirim ke {0} berisikan kode konfirmasi yang bisa dimasukkan di bawah ini." + +#: 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 "Email telah dikirim ke alamat Anda sebelumnya, {0}. Masukkan kode konfirmasi yang terdapat di dalamnya di bawah ini." + +#: src/view/com/notifications/FeedItem.tsx:236 +#: src/view/com/threadgate/WhoCanReply.tsx:178 +msgid "and" +msgstr "dan" + +#: src/view/screens/LanguageSettings.tsx:95 +msgid "App Language" +msgstr "Bahasa Aplikasi" + +#: src/view/screens/Settings.tsx:589 +msgid "App passwords" +msgstr "Kata sandi aplikasi" + +#: src/view/screens/AppPasswords.tsx:186 +msgid "App Passwords" +msgstr "Kata sandi Aplikasi" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:236 +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" + +#: src/view/com/modals/AppealLabel.tsx:65 +#~ msgid "Appeal Decision" +#~ msgstr "Keputusan Banding" + +#: src/view/com/util/moderation/LabelInfo.tsx:52 +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." + +#: src/view/screens/Settings.tsx:432 +msgid "Appearance" +msgstr "Tampilan" + +#: src/view/screens/AppPasswords.tsx:223 +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:142 +msgid "Are you sure you'd like to discard this draft?" +msgstr "Anda yakin untuk membuang draf ini?" + +#: src/view/screens/ProfileList.tsx:352 +msgid "Are you sure?" +msgstr "Anda yakin?" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:219 +msgid "Are you sure? This cannot be undone." +msgstr "Anda yakin? Ini tidak dapat dibatalkan" + +#: src/view/com/modals/SelfLabel.tsx:123 +msgid "Artistic or non-erotic nudity." +msgstr "Ketelanjangan artistik atau non-erotis." + +#: src/view/com/auth/create/CreateAccount.tsx:141 +#: src/view/com/auth/login/ChooseAccountForm.tsx:151 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:166 +#: src/view/com/auth/login/LoginForm.tsx:249 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:148 +#: src/view/com/modals/report/InputIssueDetails.tsx:45 +#: src/view/com/post-thread/PostThread.tsx:388 +#: src/view/com/post-thread/PostThread.tsx:438 +#: src/view/com/post-thread/PostThread.tsx:446 +#: src/view/com/profile/ProfileHeader.tsx:672 +msgid "Back" +msgstr "Kembali" + +#: src/view/screens/Settings.tsx:461 +msgid "Basics" +msgstr "Dasar" + +#: src/view/com/auth/create/Step2.tsx:131 +#: src/view/com/modals/BirthDateSettings.tsx:72 +msgid "Birthday" +msgstr "Tanggal lahir" + +#: src/view/screens/Settings.tsx:312 +msgid "Birthday:" +msgstr "Tanggal lahir:" + +#: src/view/com/profile/ProfileHeader.tsx:282 +#: src/view/com/profile/ProfileHeader.tsx:389 +msgid "Block Account" +msgstr "Blokir Akun" + +#: src/view/screens/ProfileList.tsx:522 +msgid "Block accounts" +msgstr "Blokir akun" + +#: src/view/screens/ProfileList.tsx:472 +msgid "Block list" +msgstr "Daftar blokir" + +#: src/view/screens/ProfileList.tsx:307 +msgid "Block these accounts?" +msgstr "Blokir akun ini?" + +#: src/view/screens/Moderation.tsx:123 +msgid "Blocked accounts" +msgstr "Akun yang diblokir" + +#: src/view/screens/ModerationBlockedAccounts.tsx:107 +msgid "Blocked Accounts" +msgstr "Akun yang diblokir" + +#: src/view/com/profile/ProfileHeader.tsx:284 +msgid "Blocked accounts cannot reply in your threads, mention you, or otherwise interact with you." +msgstr "Akun yang diblokir tidak dapat membalas postingan Anda, menyebutkan Anda, dan interaksi lain dengan Anda." + +#: 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 "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:250 +msgid "Blocked post." +msgstr "Postingan yang diblokir." + +#: src/view/screens/ProfileList.tsx:309 +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 +msgid "Blog" +msgstr "Blog" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:31 +msgid "Bluesky" +msgstr "Bluesky" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:80 +msgid "Bluesky is flexible." +msgstr "Bluesky itu fleksibel." + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:69 +msgid "Bluesky is open." +msgstr "Bluesky itu terbuka." + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:56 +msgid "Bluesky is public." +msgstr "Bluesky bersifat publik." + +#: 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 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:225 +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." + +#: src/view/com/modals/ServerInput.tsx:78 +msgid "Bluesky.Social" +msgstr "Bluesky.Social" + +#: src/view/screens/Settings.tsx:718 +msgid "Build version {0} {1}" +msgstr "Versi {0} {1}" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:87 +msgid "Business" +msgstr "Bisnis" + +#: 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:214 +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/view/com/composer/Composer.tsx:285 +#: src/view/com/composer/Composer.tsx:288 +#: src/view/com/modals/AltImage.tsx:128 +#: src/view/com/modals/ChangeEmail.tsx:218 +#: src/view/com/modals/ChangeEmail.tsx:220 +#: src/view/com/modals/Confirm.tsx:88 +#: src/view/com/modals/CreateOrEditList.tsx:267 +#: src/view/com/modals/CreateOrEditList.tsx:272 +#: src/view/com/modals/DeleteAccount.tsx:150 +#: src/view/com/modals/DeleteAccount.tsx:223 +#: src/view/com/modals/EditImage.tsx:323 +#: src/view/com/modals/EditProfile.tsx:248 +#: src/view/com/modals/LinkWarning.tsx:85 +#: src/view/com/modals/Repost.tsx:73 +#: src/view/com/modals/Waitlist.tsx:136 +#: src/view/screens/Search/Search.tsx:584 +#: src/view/shell/desktop/Search.tsx:182 +msgid "Cancel" +msgstr "Batal" + +#: src/view/com/modals/DeleteAccount.tsx:146 +#: src/view/com/modals/DeleteAccount.tsx:219 +msgid "Cancel account deletion" +msgstr "Batal menghapus akun" + +#: src/view/com/modals/AltImage.tsx:123 +msgid "Cancel add image alt text" +msgstr "Batal menambahkan teks alt gambar" + +#: src/view/com/modals/ChangeHandle.tsx:149 +msgid "Cancel change handle" +msgstr "Batal mengubah handle" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:134 +msgid "Cancel image crop" +msgstr "Batal memotong gambar" + +#: src/view/com/modals/EditProfile.tsx:243 +msgid "Cancel profile editing" +msgstr "Batal mengedit profil" + +#: src/view/com/modals/Repost.tsx:64 +msgid "Cancel quote post" +msgstr "Batal mengutip postingan" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:87 +#: src/view/shell/desktop/Search.tsx:178 +msgid "Cancel search" +msgstr "Batal mencari" + +#: src/view/com/modals/Waitlist.tsx:132 +msgid "Cancel waitlist signup" +msgstr "Batal mendaftar di daftar tunggu" + +#: src/view/screens/Settings.tsx:306 +msgid "Change" +msgstr "Ubah" + +#: src/view/screens/Settings.tsx:601 +#: src/view/screens/Settings.tsx:610 +msgid "Change handle" +msgstr "Ubah handle" + +#: src/view/com/modals/ChangeHandle.tsx:161 +msgid "Change Handle" +msgstr "Ubah Handle" + +#: src/view/com/modals/VerifyEmail.tsx:141 +msgid "Change my email" +msgstr "Ubah email saya" + +#: src/view/com/modals/ChangeEmail.tsx:109 +msgid "Change Your Email" +msgstr "Ubah Email Anda" + +#: 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 "Lihat beberapa rekomendasi feed. Ketuk + untuk menambahkan ke daftar feed yang disematkan." + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:185 +msgid "Check out some recommended users. Follow them to see similar users." +msgstr "Lihat beberapa rekomendasi pengguna. Ikuti mereka untuk melihat pengguna serupa." + +#: src/view/com/modals/DeleteAccount.tsx:163 +msgid "Check your inbox for an email with the confirmation code to enter below:" +msgstr "Periksa kotak masuk email Anda untuk kode konfirmasi dan masukkan di bawah ini:" + +#: src/view/com/modals/ServerInput.tsx:38 +msgid "Choose Service" +msgstr "Pilih Layanan" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:83 +msgid "Choose the algorithms that power your experience with custom feeds." +msgstr "Pilih algoritma yang akan digunakan untuk kustom feed Anda." + +#: src/view/com/auth/create/Step2.tsx:106 +msgid "Choose your password" +msgstr "Pilih kata sandi Anda" + +#: src/view/screens/Settings.tsx:694 +msgid "Clear all legacy storage data" +msgstr "Hapus semua data penyimpanan lama" + +#: src/view/screens/Settings.tsx:696 +msgid "Clear all legacy storage data (restart after this)" +msgstr "Hapus semua data penyimpanan lama (mulai ulang setelah ini)" + +#: src/view/screens/Settings.tsx:706 +msgid "Clear all storage data" +msgstr "Hapus semua data penyimpanan" + +#: src/view/screens/Settings.tsx:708 +msgid "Clear all storage data (restart after this)" +msgstr "Hapus semua data penyimpanan (mulai ulang setelah ini)" + +#: src/view/com/util/forms/SearchInput.tsx:73 +#: src/view/screens/Search/Search.tsx:569 +msgid "Clear search query" +msgstr "Hapus kueri pencarian" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:38 +msgid "Close alert" +msgstr "Tutup peringatan" + +#: src/view/com/util/BottomSheetCustomBackdrop.tsx:33 +msgid "Close bottom drawer" +msgstr "Tutup kotak bawah" + +#: src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx:26 +msgid "Close image" +msgstr "Tutup gambar" + +#: src/view/com/lightbox/Lightbox.web.tsx:112 +msgid "Close image viewer" +msgstr "Tutup penampil gambar" + +#: src/view/shell/index.web.tsx:49 +msgid "Close navigation footer" +msgstr "Tutup footer navigasi" + +#: src/view/screens/CommunityGuidelines.tsx:32 +msgid "Community Guidelines" +msgstr "Panduan Komunitas" + +#: src/view/com/composer/Prompt.tsx:24 +msgid "Compose reply" +msgstr "Tulis balasan" + +#: src/view/com/modals/AppealLabel.tsx:98 +#: src/view/com/modals/Confirm.tsx:75 +#: src/view/com/modals/SelfLabel.tsx:154 +#: src/view/com/modals/VerifyEmail.tsx:225 +#: src/view/screens/PreferencesHomeFeed.tsx:299 +#: src/view/screens/PreferencesThreads.tsx:153 +msgid "Confirm" +msgstr "Konfirmasi" + +#: src/view/com/modals/ChangeEmail.tsx:193 +#: src/view/com/modals/ChangeEmail.tsx:195 +msgid "Confirm Change" +msgstr "Konfirmasi Perubahan" + +#: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:34 +msgid "Confirm content language settings" +msgstr "Konfirmasi pengaturan bahasa konten" + +#: src/view/com/modals/DeleteAccount.tsx:209 +msgid "Confirm delete account" +msgstr "Konfirmasi hapus akun" + +#: src/view/com/modals/ChangeEmail.tsx:157 +#: src/view/com/modals/DeleteAccount.tsx:176 +#: src/view/com/modals/VerifyEmail.tsx:159 +msgid "Confirmation code" +msgstr "Código de confirmación" + +#: src/view/com/auth/create/CreateAccount.tsx:174 +#: src/view/com/auth/login/LoginForm.tsx:268 +msgid "Connecting..." +msgstr "Menghubungkan..." + +#: src/view/screens/Moderation.tsx:81 +msgid "Content filtering" +msgstr "Penyaring Konten" + +#: src/view/com/modals/ContentFilteringSettings.tsx:44 +msgid "Content Filtering" +msgstr "Penyaring Konten" + +#: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:74 +#: src/view/screens/LanguageSettings.tsx:278 +msgid "Content Languages" +msgstr "Bahasa konten" + +#: src/view/com/util/moderation/ScreenHider.tsx:78 +msgid "Content Warning" +msgstr "Peringatan Konten" + +#: src/view/com/composer/labels/LabelsBtn.tsx:31 +msgid "Content warnings" +msgstr "Peringatan konten" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:148 +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:209 +msgid "Continue" +msgstr "Lanjutkan" + +#: src/view/com/modals/AddAppPasswords.tsx:193 +#: src/view/com/modals/InviteCodes.tsx:179 +msgid "Copied" +msgstr "Disalin" + +#: src/view/com/modals/AddAppPasswords.tsx:186 +msgid "Copy" +msgstr "Salin" + +#: src/view/screens/ProfileList.tsx:384 +msgid "Copy link to list" +msgstr "Salin tautan ke daftar" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +msgid "Copy link to post" +msgstr "Salin tautan ke postingan" + +#: src/view/com/profile/ProfileHeader.tsx:338 +msgid "Copy link to profile" +msgstr "Salin tautan ke profil" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:125 +msgid "Copy post text" +msgstr "Salin teks postingan" + +#: src/view/screens/CopyrightPolicy.tsx:29 +msgid "Copyright Policy" +msgstr "Kebijakan Hak Cipta" + +#: src/view/screens/ProfileFeed.tsx:94 +msgid "Could not load feed" +msgstr "Tidak dapat memuat feed" + +#: src/view/screens/ProfileList.tsx:830 +msgid "Could not load list" +msgstr "Tidak dapat memuat daftar" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:62 +#: src/view/com/auth/SplashScreen.tsx:46 +msgid "Create a new account" +msgstr "Buat akun baru" + +#: src/view/com/auth/create/CreateAccount.tsx:120 +msgid "Create Account" +msgstr "Buat Akun" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:54 +#: src/view/com/auth/SplashScreen.tsx:43 +msgid "Create new account" +msgstr "Buat akun baru" + +#: src/view/screens/AppPasswords.tsx:248 +msgid "Created {0}" +msgstr "Dibuat {0}" + +#: src/view/com/modals/ChangeHandle.tsx:387 +#: src/view/com/modals/ServerInput.tsx:102 +msgid "Custom domain" +msgstr "Domain kustom" + +#: src/view/screens/Settings.tsx:615 +msgid "Danger Zone" +msgstr "Zona Berbahaya" + +#: src/view/screens/Settings.tsx:622 +msgid "Delete account" +msgstr "Hapus akun" + +#: src/view/com/modals/DeleteAccount.tsx:83 +msgid "Delete Account" +msgstr "Hapus Akun" + +#: src/view/screens/AppPasswords.tsx:221 +#: src/view/screens/AppPasswords.tsx:241 +msgid "Delete app password" +msgstr "Hapus kata sandi aplikasi" + +#: src/view/screens/ProfileList.tsx:351 +#: src/view/screens/ProfileList.tsx:411 +msgid "Delete List" +msgstr "Hapus Daftar " + +#: src/view/com/modals/DeleteAccount.tsx:212 +msgid "Delete my account" +msgstr "Hapus akun saya" + +#: src/view/screens/Settings.tsx:632 +msgid "Delete my account…" +msgstr "Menghapus akun saya..." + +#: src/view/com/util/forms/PostDropdownBtn.tsx:214 +msgid "Delete post" +msgstr "Hapus postingan" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:218 +msgid "Delete this post?" +msgstr "Hapus postingan ini?" + +#: src/view/com/post-thread/PostThread.tsx:242 +msgid "Deleted post." +msgstr "Postingan dihapus." + +#: src/view/com/modals/CreateOrEditList.tsx:218 +#: src/view/com/modals/CreateOrEditList.tsx:234 +#: src/view/com/modals/EditProfile.tsx:197 +#: src/view/com/modals/EditProfile.tsx:209 +msgid "Description" +msgstr "Deskripsi" + +#: src/view/com/auth/create/Step1.tsx:96 +msgid "Dev Server" +msgstr "Server Dev" + +#: src/view/screens/Settings.tsx:637 +msgid "Developer Tools" +msgstr "Alat Pengembang" + +#: src/view/com/composer/Composer.tsx:143 +msgid "Discard" +msgstr "Buang" + +#: src/view/com/composer/Composer.tsx:137 +msgid "Discard draft" +msgstr "Buang draf" + +#: src/view/screens/Moderation.tsx:207 +msgid "Discourage apps from showing my account to logged-out users" +msgstr "Cegah aplikasi untuk menampilkan akun saya ke pengguna yang tidak login" + +#: src/view/screens/Feeds.tsx:405 +msgid "Discover new feeds" +msgstr "Temukan feed baru" + +#: src/view/com/modals/EditProfile.tsx:191 +msgid "Display name" +msgstr "Nama tampilan" + +#: src/view/com/modals/EditProfile.tsx:179 +msgid "Display Name" +msgstr "Nama Tampilan" + +#: src/view/com/modals/ChangeHandle.tsx:485 +msgid "Domain verified!" +msgstr "Domain terverifikasi!" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:86 +#: 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/EditImage.tsx:333 +#: src/view/com/modals/ListAddRemoveUsers.tsx:142 +#: 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:79 +#: src/view/screens/PreferencesHomeFeed.tsx:302 +#: src/view/screens/PreferencesThreads.tsx:156 +msgid "Done" +msgstr "Selesai" + +#: src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx:42 +msgid "Done{extraText}" +msgstr "Selesai{extraText}" + +#: src/view/com/modals/InviteCodes.tsx:94 +msgid "Each code works once. You'll receive more invite codes periodically." +msgstr "Tiap kode hanya berlaku sekali. Anda akan mendapatkan tambahan kode undangan secara berkala." + +#: 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:399 +msgid "Edit list details" +msgstr "Edit detail daftar" + +#: src/view/screens/Feeds.tsx:367 +#: src/view/screens/SavedFeeds.tsx:84 +msgid "Edit My Feeds" +msgstr "Edit Feed Saya" + +#: src/view/com/modals/EditProfile.tsx:151 +msgid "Edit my profile" +msgstr "Edit profil saya" + +#: src/view/com/profile/ProfileHeader.tsx:453 +msgid "Edit profile" +msgstr "Edit profil" + +#: src/view/com/profile/ProfileHeader.tsx:456 +msgid "Edit Profile" +msgstr "Edit Profil" + +#: src/view/screens/Feeds.tsx:330 +msgid "Edit Saved Feeds" +msgstr "Edit Feed Tersimpan" + +#: src/view/com/auth/create/Step2.tsx:90 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:148 +#: src/view/com/modals/ChangeEmail.tsx:141 +#: src/view/com/modals/Waitlist.tsx:88 +msgid "Email" +msgstr "Email" + +#: src/view/com/auth/create/Step2.tsx:81 +msgid "Email address" +msgstr "Alamat email" + +#: src/view/com/modals/ChangeEmail.tsx:111 +msgid "Email Updated" +msgstr "Email Diupdate" + +#: src/view/screens/Settings.tsx:290 +msgid "Email:" +msgstr "Email:" + +#: src/view/screens/PreferencesHomeFeed.tsx:138 +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:426 +msgid "End of feed" +msgstr "Akhir feed" + +#: src/view/com/auth/create/Step1.tsx:71 +msgid "Enter the address of your provider:" +msgstr "Masukkan alamat provider Anda:" + +#: src/view/com/modals/ChangeHandle.tsx:369 +msgid "Enter the domain you want to use" +msgstr "Masukkan domain yang ingin Anda gunakan" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:101 +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/view/com/auth/create/Step2.tsx:86 +msgid "Enter your email address" +msgstr "Masukkan email Anda" + +#: src/view/com/modals/ChangeEmail.tsx:117 +msgid "Enter your new email address below." +msgstr "Masukkan email baru Anda." + +#: src/view/com/auth/login/Login.tsx:99 +msgid "Enter your username and password" +msgstr "Masukkan nama pengguna dan kata sandi Anda" + +#: src/view/screens/Search/Search.tsx:105 +msgid "Error:" +msgstr "Eror:" + +#: src/view/com/modals/Threadgate.tsx:76 +msgid "Everybody" +msgstr "Semua orang" + +#: src/view/com/lightbox/Lightbox.web.tsx:156 +msgid "Expand alt text" +msgstr "Tampilkan teks alt" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 +msgid "Failed to load recommended feeds" +msgstr "Gagal memuat rekomendasi feed" + +#: src/view/screens/Feeds.tsx:554 +msgid "Feed offline" +msgstr "Feed offline" + +#: src/view/com/feeds/FeedPage.tsx:143 +msgid "Feed Preferences" +msgstr "Preferensi Feed" + +#: src/view/shell/desktop/RightNav.tsx:65 +#: src/view/shell/Drawer.tsx:311 +msgid "Feedback" +msgstr "Masukan" + +#: src/view/screens/Feeds.tsx:475 +#: src/view/screens/Profile.tsx:165 +#: src/view/shell/bottom-bar/BottomBar.tsx:181 +#: src/view/shell/desktop/LeftNav.tsx:340 +#: src/view/shell/Drawer.tsx:474 +#: src/view/shell/Drawer.tsx:475 +msgid "Feeds" +msgstr "Feed" + +#: 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 "Feed dibuat oleh pengguna untuk mengkurasi konten. Pilih beberapa feed yang menurut Anda menarik." + +#: src/view/screens/SavedFeeds.tsx:156 +msgid "Feeds are custom algorithms that users build with a little coding expertise. <0/> for more information." +msgstr "Feed merupakan algoritma kustom yang dibuat pengguna dengan sedikit kemampuan menulis kode. <0/> untuk informasi lainnya." + +#: src/view/screens/Search/Search.tsx:414 +msgid "Find users on Bluesky" +msgstr "Temukan pengguna di Bluesky" + +#: src/view/screens/Search/Search.tsx:412 +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 +msgid "Finding similar accounts..." +msgstr "Mencari akun serupa..." + +#: src/view/screens/PreferencesHomeFeed.tsx:102 +msgid "Fine-tune the content you see on your home screen." +msgstr "Atur konten yang Anda lihat di beranda." + +#: src/view/screens/PreferencesThreads.tsx:60 +msgid "Fine-tune the discussion threads." +msgstr "Atur utasan diskusi." + +#: src/view/com/profile/ProfileHeader.tsx:538 +msgid "Follow" +msgstr "Ikuti" + +#: 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 "Ikuti beberapa pengguna untuk memulai. Kami dapat merekomendasikan lebih banyak pengguna yang mungkin menarik Anda." + +#: src/view/com/modals/Threadgate.tsx:98 +msgid "Followed users" +msgstr "Pengguna yang diikuti" + +#: src/view/screens/PreferencesHomeFeed.tsx:145 +msgid "Followed users only" +msgstr "Hanya pengguna yang diikuti" + +#: src/view/screens/ProfileFollowers.tsx:25 +msgid "Followers" +msgstr "Pengikut" + +#: src/view/com/profile/ProfileHeader.tsx:624 +msgid "following" +msgstr "mengikuti" + +#: src/view/com/profile/ProfileHeader.tsx:522 +#: src/view/screens/ProfileFollows.tsx:25 +msgid "Following" +msgstr "Mengikuti" + +#: src/view/com/profile/ProfileHeader.tsx:571 +msgid "Follows you" +msgstr "Mengikuti Anda" + +#: src/view/com/modals/DeleteAccount.tsx:107 +msgid "For security reasons, we'll need to send a confirmation code to your email address." +msgstr "Untuk alasan keamanan, kami akan mengirimkan kode konfirmasi ke alamat email Anda." + +#: src/view/com/modals/AddAppPasswords.tsx:207 +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:231 +msgid "Forgot" +msgstr "Lupa" + +#: src/view/com/auth/login/LoginForm.tsx:228 +msgid "Forgot password" +msgstr "Lupa kata sandi" + +#: src/view/com/auth/login/Login.tsx:127 +#: src/view/com/auth/login/Login.tsx:143 +msgid "Forgot Password" +msgstr "Lupa Kata Sandi" + +#: src/view/com/composer/photos/SelectPhotoBtn.tsx:43 +msgid "Gallery" +msgstr "Galeri" + +#: src/view/com/modals/VerifyEmail.tsx:183 +msgid "Get Started" +msgstr "Mulai" + +#: 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 "Kembali" + +#: src/view/screens/ProfileFeed.tsx:103 +#: src/view/screens/ProfileFeed.tsx:108 +#: src/view/screens/ProfileList.tsx:839 +#: src/view/screens/ProfileList.tsx:844 +msgid "Go Back" +msgstr "Kembali" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:181 +#: src/view/com/auth/login/LoginForm.tsx:278 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:163 +msgid "Go to next" +msgstr "Berikutnya" + +#: src/view/com/modals/ChangeHandle.tsx:265 +msgid "Handle" +msgstr "Handle" + +#: src/view/shell/desktop/RightNav.tsx:94 +#: src/view/shell/Drawer.tsx:321 +msgid "Help" +msgstr "Bantuan" + +#: src/view/com/modals/AddAppPasswords.tsx:148 +msgid "Here is your app password." +msgstr "Berikut kata sandi aplikasi Anda." + +#: src/view/com/notifications/FeedItem.tsx:316 +#: src/view/com/util/moderation/ContentHider.tsx:103 +msgid "Hide" +msgstr "Sembunyikan" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:173 +msgid "Hide post" +msgstr "Sembunyikan postingan" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:177 +msgid "Hide this post?" +msgstr "Sembunyikan postingan ini?" + +#: src/view/com/notifications/FeedItem.tsx:308 +msgid "Hide user list" +msgstr "Sembunyikan daftar pengguna" + +#: src/view/com/posts/FeedErrorMessage.tsx:110 +msgid "Hmm, some kind of issue occurred when contacting the feed server. Please let the feed owner know about this issue." +msgstr "Hmm, sepertinya ada masalah saat menghubungi server feed. Beritahu pemilik feed tentang masalah ini." + +#: src/view/com/posts/FeedErrorMessage.tsx:98 +msgid "Hmm, the feed server appears to be misconfigured. Please let the feed owner know about this issue." +msgstr "Hmm, sepertinya adalah kesalahan konfigurasi pada server feed. Beritahu pemilik feed tentang masalah ini." + +#: src/view/com/posts/FeedErrorMessage.tsx:104 +msgid "Hmm, the feed server appears to be offline. Please let the feed owner know about this issue." +msgstr "Hmm, sepertinya server feed offline. Beritahu pemilik feed tentang masalah ini." + +#: src/view/com/posts/FeedErrorMessage.tsx:101 +msgid "Hmm, the feed server gave a bad response. Please let the feed owner know about this issue." +msgstr "Hmm, server feed memberikan respon yang buruk. Beritahu pemilik feed tentang masalah ini." + +#: src/view/com/posts/FeedErrorMessage.tsx:95 +msgid "Hmm, we're having trouble finding this feed. It may have been deleted." +msgstr "Hmm, kami tidak dapat menemukan feed ini. Mungkin sudah dihapus" + +#: src/view/shell/bottom-bar/BottomBar.tsx:137 +#: src/view/shell/desktop/LeftNav.tsx:304 +#: src/view/shell/Drawer.tsx:398 +#: src/view/shell/Drawer.tsx:399 +msgid "Home" +msgstr "Beranda" + +#: src/view/com/pager/FeedsTabBarMobile.tsx:96 +#: src/view/screens/PreferencesHomeFeed.tsx:95 +#: src/view/screens/Settings.tsx:481 +msgid "Home Feed Preferences" +msgstr "Preferensi Feed Beranda" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:114 +msgid "Hosting provider" +msgstr "Provider hosting" + +#: src/view/com/auth/create/Step1.tsx:76 +#: src/view/com/auth/create/Step1.tsx:81 +msgid "Hosting provider address" +msgstr "Alamat provider hosting" + +#: src/view/com/modals/VerifyEmail.tsx:208 +msgid "I have a code" +msgstr "Saya punya kode" + +#: src/view/com/modals/ChangeHandle.tsx:281 +msgid "I have my own domain" +msgstr "Saya punya domain sendiri" + +#: src/view/com/modals/SelfLabel.tsx:127 +msgid "If none are selected, suitable for all ages." +msgstr "Jika tidak ada yang dipilih, cocok untuk semua umur." + +#: src/view/com/modals/AltImage.tsx:97 +msgid "Image alt text" +msgstr "Teks alt gambar" + +#: src/view/com/util/UserAvatar.tsx:308 +#: src/view/com/util/UserBanner.tsx:116 +msgid "Image options" +msgstr "Pilihan gambar" + +#: src/view/com/auth/login/LoginForm.tsx:113 +msgid "Invalid username or password" +msgstr "Username atau kata sandi salah" + +#: src/view/screens/Settings.tsx:383 +msgid "Invite" +msgstr "Undang" + +#: src/view/com/modals/InviteCodes.tsx:91 +#: src/view/screens/Settings.tsx:371 +msgid "Invite a Friend" +msgstr "Undang Teman" + +#: src/view/com/auth/create/Step2.tsx:57 +msgid "Invite code" +msgstr "Kode Undangan" + +#: src/view/com/auth/create/state.ts:136 +msgid "Invite code not accepted. Check that you input it correctly and try again." +msgstr "Kode undangan salah. Periksa bahwa Anda memasukkannya dengan benar dan coba lagi." + +#: src/view/shell/Drawer.tsx:640 +msgid "Invite codes: {invitesAvailable} available" +msgstr "Kode undangan: {invitesAvailable} tersedia" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:99 +msgid "Jobs" +msgstr "Karir" + +#: src/view/com/modals/Waitlist.tsx:67 +msgid "Join the waitlist" +msgstr "Gabung ke daftar tunggu" + +#: src/view/com/auth/create/Step2.tsx:68 +#: src/view/com/auth/create/Step2.tsx:72 +msgid "Join the waitlist." +msgstr "Gabung ke daftar tunggu." + +#: src/view/com/modals/Waitlist.tsx:124 +msgid "Join Waitlist" +msgstr "Gabung ke Daftar Tunggu" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:104 +msgid "Language selection" +msgstr "Pilih bahasa" + +#: src/view/screens/LanguageSettings.tsx:89 +msgid "Language Settings" +msgstr "Pengaturan Bahasa" + +#: src/view/screens/Settings.tsx:541 +msgid "Languages" +msgstr "Bahasa" + +#: src/view/com/util/moderation/ContentHider.tsx:101 +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 +msgid "Learn More" +msgstr "Pelajari Lebih Lanjut" + +#: src/view/com/util/moderation/ContentHider.tsx:83 +#: src/view/com/util/moderation/PostAlerts.tsx:40 +#: src/view/com/util/moderation/PostHider.tsx:76 +#: src/view/com/util/moderation/ProfileHeaderAlerts.tsx:49 +#: src/view/com/util/moderation/ScreenHider.tsx:101 +msgid "Learn more about this warning" +msgstr "Pelajari lebih lanjut tentang peringatan ini" + +#: src/view/screens/Moderation.tsx:242 +msgid "Learn more about what is public on Bluesky." +msgstr "Pelajari lebih lanjut tentang apa yang publik di Bluesky." + +#: 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." + +#: src/view/com/modals/LinkWarning.tsx:49 +msgid "Leaving Bluesky" +msgstr "Meninggalkan Bluesky" + +#: src/view/com/auth/login/Login.tsx:128 +#: src/view/com/auth/login/Login.tsx:144 +msgid "Let's get your password reset!" +msgstr "Reset kata sandi Anda!" + +#: src/view/com/util/UserAvatar.tsx:245 +#: src/view/com/util/UserBanner.tsx:60 +msgid "Library" +msgstr "Pustaka" + +#: src/view/screens/ProfileFeed.tsx:577 +msgid "Like this feed" +msgstr "Suka feed ini" + +#: src/view/screens/PostLikedBy.tsx:27 +#: src/view/screens/ProfileFeedLikedBy.tsx:27 +msgid "Liked by" +msgstr "Disukai oleh" + +#: src/view/screens/Profile.tsx:164 +msgid "Likes" +msgstr "Suka" + +#: src/view/com/modals/CreateOrEditList.tsx:186 +msgid "List Avatar" +msgstr "Avatar Daftar" + +#: src/view/com/modals/CreateOrEditList.tsx:199 +msgid "List Name" +msgstr "Nama Daftar" + +#: src/view/screens/Profile.tsx:166 +#: src/view/shell/desktop/LeftNav.tsx:377 +#: src/view/shell/Drawer.tsx:490 +#: src/view/shell/Drawer.tsx:491 +msgid "Lists" +msgstr "Daftar" + +#: src/view/com/post-thread/PostThread.tsx:259 +#: src/view/com/post-thread/PostThread.tsx:267 +msgid "Load more posts" +msgstr "Muat postingan lainnya" + +#: src/view/screens/Notifications.tsx:144 +msgid "Load new notifications" +msgstr "Muat notifikasi baru" + +#: src/view/com/feeds/FeedPage.tsx:189 +msgid "Load new posts" +msgstr "Muat postingan baru" + +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:95 +msgid "Loading..." +msgstr "Memuat..." + +#: src/view/com/modals/ServerInput.tsx:50 +msgid "Local dev server" +msgstr "Server dev lokal" + +#: src/view/screens/Moderation.tsx:136 +msgid "Logged-out visibility" +msgstr "Visibilitas pengguna yang tidak login" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:133 +msgid "Login to account that is not listed" +msgstr "Masuk ke akun yang tidak ada di daftar" + +#: src/view/screens/ProfileFeed.tsx:472 +#~ 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 "Sepertinya feed ini hanya tersedia untuk pengguna dengan akun Bluesky. Silakan daftar atau masuk untuk melihat feed ini!" + +#: src/view/com/modals/LinkWarning.tsx:63 +msgid "Make sure this is where you intend to go!" +msgstr "Pastikan ini adalah website yang Anda tuju!" + +#: src/view/screens/Profile.tsx:163 +msgid "Media" +msgstr "Media" + +#: src/view/com/threadgate/WhoCanReply.tsx:139 +msgid "mentioned users" +msgstr "pengguna yang disebutkan" + +#: src/view/com/modals/Threadgate.tsx:93 +msgid "Mentioned users" +msgstr "Pengguna yang disebutkan" + +#: src/view/screens/Search/Search.tsx:529 +msgid "Menu" +msgstr "Menu" + +#: src/view/com/posts/FeedErrorMessage.tsx:194 +msgid "Message from server" +msgstr "Pesan dari server" + +#: src/view/screens/Moderation.tsx:64 +#: src/view/screens/Settings.tsx:563 +#: src/view/shell/desktop/LeftNav.tsx:395 +#: src/view/shell/Drawer.tsx:509 +#: src/view/shell/Drawer.tsx:510 +msgid "Moderation" +msgstr "Moderasi" + +#: src/view/screens/Moderation.tsx:95 +msgid "Moderation lists" +msgstr "Daftar moderasi" + +#: src/view/screens/ModerationModlists.tsx:58 +msgid "Moderation Lists" +msgstr "Daftar Moderasi" + +#: src/view/shell/desktop/Feeds.tsx:53 +msgid "More feeds" +msgstr "Feed lainnya" + +#: src/view/com/profile/ProfileHeader.tsx:548 +#: src/view/screens/ProfileFeed.tsx:360 +#: src/view/screens/ProfileList.tsx:583 +msgid "More options" +msgstr "Pilihan lainnya" + +#: src/view/com/profile/ProfileHeader.tsx:370 +msgid "Mute Account" +msgstr "Bisukan Akun" + +#: src/view/screens/ProfileList.tsx:510 +msgid "Mute accounts" +msgstr "Bisukan akun" + +#: src/view/screens/ProfileList.tsx:457 +msgid "Mute list" +msgstr "Daftar akun yang dibisukan" + +#: src/view/screens/ProfileList.tsx:270 +msgid "Mute these accounts?" +msgstr "Bisukan akun ini?" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 +msgid "Mute thread" +msgstr "Bisukan utasan" + +#: src/view/screens/Moderation.tsx:109 +msgid "Muted accounts" +msgstr "Akun yang dibisukan" + +#: src/view/screens/ModerationMutedAccounts.tsx:107 +msgid "Muted Accounts" +msgstr "Akun yang Dibisukan" + +#: 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 "Postingan dari akun yang dibisukan akan dihilangkan dari feed dan notifikasi Anda. Pembisuan ini bersifat privat." + +#: src/view/screens/ProfileList.tsx:272 +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 +msgid "My Birthday" +msgstr "Tanggal Lahir Saya" + +#: src/view/screens/Feeds.tsx:363 +msgid "My Feeds" +msgstr "Feed Saya" + +#: src/view/shell/desktop/LeftNav.tsx:65 +msgid "My Profile" +msgstr "Profil Saya" + +#: src/view/screens/Settings.tsx:520 +msgid "My Saved Feeds" +msgstr "Feed Tersimpan Saya" + +#: src/view/com/modals/AddAppPasswords.tsx:177 +#: src/view/com/modals/CreateOrEditList.tsx:211 +msgid "Name" +msgstr "Nama" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 +msgid "Never lose access to your followers and data." +msgstr "Tidak akan lagi kehilangan akses ke data dan pengikut Anda." + +#: src/view/screens/Lists.tsx:76 +#: src/view/screens/ModerationModlists.tsx:78 +msgid "New" +msgstr "Baru" + +#: src/view/com/feeds/FeedPage.tsx:200 +#: src/view/screens/Feeds.tsx:505 +#: src/view/screens/Profile.tsx:354 +#: src/view/screens/ProfileFeed.tsx:430 +#: src/view/screens/ProfileList.tsx:193 +#: src/view/screens/ProfileList.tsx:221 +#: src/view/shell/desktop/LeftNav.tsx:247 +msgid "New post" +msgstr "Postingan baru" + +#: src/view/shell/desktop/LeftNav.tsx:257 +msgid "New Post" +msgstr "Postingan Baru" + +#: src/view/com/auth/create/CreateAccount.tsx:154 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:174 +#: src/view/com/auth/login/ForgotPasswordForm.tsx:184 +#: src/view/com/auth/login/LoginForm.tsx:281 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:156 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:166 +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:79 +msgid "Next" +msgstr "Berikutnya" + +#: src/view/com/lightbox/Lightbox.web.tsx:142 +msgid "Next image" +msgstr "Gambar berikutnya" + +#: src/view/screens/PreferencesHomeFeed.tsx:191 +#: src/view/screens/PreferencesHomeFeed.tsx:226 +#: src/view/screens/PreferencesHomeFeed.tsx:263 +msgid "No" +msgstr "Tidak" + +#: src/view/screens/ProfileFeed.tsx:570 +#: src/view/screens/ProfileList.tsx:711 +msgid "No description" +msgstr "Tidak ada deskripsi" + +#: src/view/com/composer/text-input/mobile/Autocomplete.tsx:97 +msgid "No result" +msgstr "Tidak ada hasil" + +#: src/view/screens/Feeds.tsx:452 +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:263 +#: src/view/screens/Search/Search.tsx:291 +#: src/view/screens/Search/Search.tsx:607 +#: src/view/shell/desktop/Search.tsx:210 +msgid "No results found for {query}" +msgstr "Tidak ada hasil ditemukan untuk {query}" + +#: src/view/com/modals/Threadgate.tsx:82 +msgid "Nobody" +msgstr "Tak seorang pun" + +#: src/view/com/modals/SelfLabel.tsx:135 +msgid "Not Applicable." +msgstr "Tidak Berlaku." + +#: src/view/screens/Moderation.tsx:232 +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/view/screens/Notifications.tsx:109 +#: src/view/screens/Notifications.tsx:133 +#: src/view/shell/bottom-bar/BottomBar.tsx:205 +#: src/view/shell/desktop/LeftNav.tsx:359 +#: src/view/shell/Drawer.tsx:435 +#: src/view/shell/Drawer.tsx:436 +msgid "Notifications" +msgstr "Notifikasi" + +#: src/view/com/util/ErrorBoundary.tsx:34 +msgid "Oh no!" +msgstr "Oh tidak!" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:41 +msgid "Okay" +msgstr "Baiklah" + +#: src/view/com/composer/Composer.tsx:354 +msgid "One or more images is missing alt text." +msgstr "Satu atau lebih gambar belum ada teks alt." + +#: src/view/com/threadgate/WhoCanReply.tsx:100 +msgid "Only {0} can reply." +msgstr "Hanya {0} dapat membalas." + +#: src/view/com/pager/FeedsTabBarMobile.tsx:76 +msgid "Open navigation" +msgstr "Buka navigasi" + +#: src/view/screens/Settings.tsx:533 +msgid "Opens configurable language settings" +msgstr "Buka pengaturan bahasa yang dapat dikonfigurasi" + +#: src/view/shell/desktop/RightNav.tsx:148 +#: src/view/shell/Drawer.tsx:641 +msgid "Opens list of invite codes" +msgstr "Buka daftar kode undangan" + +#: src/view/com/modals/ChangeHandle.tsx:279 +msgid "Opens modal for using custom domain" +msgstr "Buka modal untuk menggunakan domain kustom" + +#: src/view/screens/Settings.tsx:558 +msgid "Opens moderation settings" +msgstr "Buka pengaturan moderasi" + +#: src/view/screens/Settings.tsx:514 +msgid "Opens screen with all saved feeds" +msgstr "Buka halaman dengan semua feed tersimpan" + +#: src/view/screens/Settings.tsx:581 +msgid "Opens the app password settings page" +msgstr "Buka halaman pengaturan kata sandi aplikasi" + +#: src/view/screens/Settings.tsx:473 +msgid "Opens the home feed preferences" +msgstr "Buka preferensi feed beranda" + +#: src/view/screens/Settings.tsx:664 +msgid "Opens the storybook page" +msgstr "Buka halaman storybook" + +#: src/view/screens/Settings.tsx:644 +msgid "Opens the system log page" +msgstr "Buka halaman log sistem" + +#: src/view/screens/Settings.tsx:494 +msgid "Opens the threads preferences" +msgstr "Buka preferensi utasan" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:138 +msgid "Other account" +msgstr "Akun lainnya" + +#: src/view/com/modals/ServerInput.tsx:88 +msgid "Other service" +msgstr "Layanan lainnya" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:91 +msgid "Other..." +msgstr "Lainnya..." + +#: src/view/screens/NotFound.tsx:42 +#: src/view/screens/NotFound.tsx:45 +msgid "Page not found" +msgstr "Halaman tidak ditemukan" + +#: src/view/com/auth/create/Step2.tsx:101 +#: src/view/com/auth/create/Step2.tsx:111 +#: src/view/com/auth/login/LoginForm.tsx:216 +#: src/view/com/auth/login/SetNewPasswordForm.tsx:130 +#: src/view/com/modals/DeleteAccount.tsx:191 +msgid "Password" +msgstr "Kata sandi" + +#: src/view/com/auth/login/Login.tsx:157 +msgid "Password updated" +msgstr "Kata sandi diganti" + +#: src/view/com/auth/login/PasswordUpdatedForm.tsx:28 +msgid "Password updated!" +msgstr "Kata sandi diganti!" + +#: src/view/com/modals/SelfLabel.tsx:121 +msgid "Pictures meant for adults." +msgstr "Gambar khusus dewasa." + +#: src/view/screens/SavedFeeds.tsx:88 +msgid "Pinned Feeds" +msgstr "Feed Tersemat" + +#: src/view/com/auth/create/state.ts:116 +msgid "Please choose your handle." +msgstr "Silakan pilih handle Anda." + +#: src/view/com/auth/create/state.ts:109 +msgid "Please choose your password." +msgstr "Masukkan kata sandi Anda." + +#: 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 "Mohon konfirmasi email Anda sebelum menggantinya. Ini adalah syarat sementara sampai alat mengganti-email tersedia, setelah itu syarat ini akan dihilangkan." + +#: src/view/com/modals/AddAppPasswords.tsx:140 +msgid "Please enter a unique name for this App Password or use our randomly generated one." +msgstr "Mohon masukkan nama unik untuk Kata Sandi Aplikasi ini atau gunakan nama acak yang kami buat." + +#: src/view/com/auth/create/state.ts:95 +msgid "Please enter your email." +msgstr "Masukkan email Anda." + +#: src/view/com/modals/DeleteAccount.tsx:180 +msgid "Please enter your password as well:" +msgstr "Masukkan juga kata sandi Anda:" + +#: 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 beritahu kami mengapa menurut Anda peringatan konten ini salah!" + +#: src/view/com/modals/AppealLabel.tsx:72 +#: src/view/com/modals/AppealLabel.tsx:75 +#~ msgid "Please tell us why you think this decision was incorrect." +#~ msgstr "Mohon beritahu kami mengapa menurut Anda keputusan ini salah." + +#: src/view/com/composer/Composer.tsx:337 +#: src/view/com/post-thread/PostThread.tsx:225 +#: src/view/screens/PostThread.tsx:80 +msgid "Post" +msgstr "Posting" + +#: src/view/com/post-thread/PostThread.tsx:378 +msgid "Post hidden" +msgstr "Postingan disembunyikan" + +#: src/view/com/composer/select-language/SelectLangBtn.tsx:87 +msgid "Post language" +msgstr "Bahasa postingan" + +#: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:75 +msgid "Post Languages" +msgstr "Bahasa Postingan" + +#: src/view/com/post-thread/PostThread.tsx:430 +msgid "Post not found" +msgstr "Postingan tidak ditemukan" + +#: src/view/screens/Profile.tsx:161 +msgid "Posts" +msgstr "Postingan" + +#: src/view/com/modals/LinkWarning.tsx:44 +msgid "Potentially Misleading Link" +msgstr "Tautan yang Mungkin Menyesatkan" + +#: src/view/com/lightbox/Lightbox.web.tsx:128 +msgid "Previous image" +msgstr "Gambar sebelumnya" + +#: src/view/screens/LanguageSettings.tsx:187 +msgid "Primary Language" +msgstr "Bahasa Utama" + +#: src/view/screens/PreferencesThreads.tsx:91 +msgid "Prioritize Your Follows" +msgstr "Prioritaskan Pengikut Anda" + +#: src/view/shell/desktop/RightNav.tsx:76 +msgid "Privacy" +msgstr "Privasi" + +#: src/view/screens/PrivacyPolicy.tsx:29 +#: src/view/screens/Settings.tsx:750 +#: src/view/shell/Drawer.tsx:262 +msgid "Privacy Policy" +msgstr "Kebijakan Privasi" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:190 +msgid "Processing..." +msgstr "Memproses..." + +#: src/view/shell/bottom-bar/BottomBar.tsx:247 +#: src/view/shell/desktop/LeftNav.tsx:413 +#: src/view/shell/Drawer.tsx:70 +#: src/view/shell/Drawer.tsx:544 +#: src/view/shell/Drawer.tsx:545 +msgid "Profile" +msgstr "Profil" + +#: src/view/screens/Settings.tsx:808 +msgid "Protect your account by verifying your email." +msgstr "Amankan akun Anda dengan memverifikasi email Anda." + +#: src/view/screens/ModerationModlists.tsx:61 +msgid "Public, shareable lists of users to mute or block in bulk." +msgstr "Publik, daftar yang dapat dibagikan oleh pengguna untuk membisukan atau memblokir massal." + +#: src/view/screens/Lists.tsx:61 +msgid "Public, shareable lists which can drive feeds." +msgstr "Publik, daftar yang dapat dibagikan dan dapat berimbas ke feed." + +#: src/view/com/modals/Repost.tsx:52 +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:58 +msgid "Quote post" +msgstr "Kutip postingan" + +#: src/view/com/modals/Repost.tsx:56 +msgid "Quote Post" +msgstr "Kutip Postingan" + +#: src/view/com/modals/EditImage.tsx:236 +msgid "Ratios" +msgstr "Rasio" + +#: src/view/com/auth/onboarding/RecommendedFeeds.tsx:116 +msgid "Recommended Feeds" +msgstr "Feed Direkomendasikan" + +#: src/view/com/auth/onboarding/RecommendedFollows.tsx:180 +msgid "Recommended Users" +msgstr "Pengguna Direkomendasikan" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:264 +#: src/view/com/modals/SelfLabel.tsx:83 +#: src/view/com/modals/UserAddRemoveLists.tsx:193 +#: src/view/com/util/UserAvatar.tsx:282 +#: src/view/com/util/UserBanner.tsx:89 +msgid "Remove" +msgstr "Hapus" + +#: src/view/com/feeds/FeedSourceCard.tsx:106 +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:130 +msgid "Remove feed" +msgstr "Hapus feed" + +#: src/view/com/feeds/FeedSourceCard.tsx:105 +#: src/view/com/feeds/FeedSourceCard.tsx:172 +#: src/view/screens/ProfileFeed.tsx:270 +msgid "Remove from my feeds" +msgstr "Hapus dari feed saya" + +#: src/view/com/composer/photos/Gallery.tsx:167 +msgid "Remove image" +msgstr "Hapus gambar" + +#: src/view/com/composer/ExternalEmbed.tsx:70 +msgid "Remove image preview" +msgstr "Hapus pratinjau gambar" + +#: src/view/com/feeds/FeedSourceCard.tsx:173 +msgid "Remove this feed from my feeds?" +msgstr "Hapus feed ini dari feed saya?" + +#: src/view/com/posts/FeedErrorMessage.tsx:131 +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:136 +msgid "Removed from list" +msgstr "Dihapus dari daftar" + +#: src/view/screens/Profile.tsx:162 +msgid "Replies" +msgstr "Balasan" + +#: src/view/com/threadgate/WhoCanReply.tsx:98 +msgid "Replies to this thread are disabled" +msgstr "Balasan ke utas ini dinonaktifkan" + +#: src/view/screens/PreferencesHomeFeed.tsx:135 +msgid "Reply Filters" +msgstr "Penyaring Balasan" + +#: src/view/com/modals/report/Modal.tsx:166 +msgid "Report {collectionName}" +msgstr "Laporkan {collectionName}" + +#: src/view/com/profile/ProfileHeader.tsx:404 +msgid "Report Account" +msgstr "Laporkan Akun" + +#: src/view/screens/ProfileFeed.tsx:290 +msgid "Report feed" +msgstr "Laporkan feed" + +#: src/view/screens/ProfileList.tsx:425 +msgid "Report List" +msgstr "Laporkan Daftar" + +#: src/view/com/modals/report/SendReportButton.tsx:37 +#: src/view/com/util/forms/PostDropdownBtn.tsx:196 +msgid "Report post" +msgstr "Laporkan postingan" + +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +msgid "Repost" +msgstr "Posting ulang" + +#: 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 "Posting ulang atau kutip postingan" + +#: src/view/screens/PostRepostedBy.tsx:27 +msgid "Reposted by" +msgstr "Diposting ulang oleh" + +#: src/view/com/modals/ChangeEmail.tsx:181 +#: src/view/com/modals/ChangeEmail.tsx:183 +msgid "Request Change" +msgstr "Ajukan Perubahan" + +#: src/view/com/auth/create/Step2.tsx:53 +msgid "Required for this provider" +msgstr "Diwajibkan untuk provider ini" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:108 +msgid "Reset code" +msgstr "Kode reset" + +#: src/view/screens/Settings.tsx:686 +msgid "Reset onboarding state" +msgstr "Reset status onboarding" + +#: src/view/com/auth/login/ForgotPasswordForm.tsx:98 +msgid "Reset password" +msgstr "Reset kata sandi" + +#: src/view/screens/Settings.tsx:676 +msgid "Reset preferences state" +msgstr Reset status preferensi" + +#: src/view/screens/Settings.tsx:684 +msgid "Resets the onboarding state" +msgstr "Reset status onboarding" + +#: src/view/screens/Settings.tsx:674 +msgid "Resets the preferences state" +msgstr "Reset status preferensi" + +#: src/view/com/auth/create/CreateAccount.tsx:163 +#: src/view/com/auth/create/CreateAccount.tsx:167 +#: src/view/com/auth/login/LoginForm.tsx:258 +#: src/view/com/auth/login/LoginForm.tsx:261 +#: src/view/com/util/error/ErrorMessage.tsx:55 +#: src/view/com/util/error/ErrorScreen.tsx:65 +msgid "Retry" +msgstr "Ulangi" + +#: src/view/com/modals/AltImage.tsx:115 +#: src/view/com/modals/BirthDateSettings.tsx:93 +#: src/view/com/modals/BirthDateSettings.tsx:96 +#: src/view/com/modals/ChangeHandle.tsx:173 +#: src/view/com/modals/CreateOrEditList.tsx:249 +#: src/view/com/modals/CreateOrEditList.tsx:257 +#: src/view/com/modals/EditProfile.tsx:223 +msgid "Save" +msgstr "Simpan" + +#: src/view/com/modals/AltImage.tsx:106 +msgid "Save alt text" +msgstr "Simpan teks alt" + +#: src/view/com/modals/EditProfile.tsx:231 +msgid "Save Changes" +msgstr "Simpan Perubahan" + +#: src/view/com/modals/ChangeHandle.tsx:170 +msgid "Save handle change" +msgstr "Simpan perubahan handle" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:144 +msgid "Save image crop" +msgstr "Simpan potongan gambar" + +#: src/view/screens/SavedFeeds.tsx:122 +msgid "Saved Feeds" +msgstr "Simpan Feed" + +#: src/view/com/modals/ListAddRemoveUsers.tsx:75 +#: src/view/com/util/forms/SearchInput.tsx:64 +#: src/view/screens/Search/Search.tsx:393 +#: src/view/screens/Search/Search.tsx:559 +#: src/view/shell/bottom-bar/BottomBar.tsx:159 +#: src/view/shell/desktop/LeftNav.tsx:322 +#: src/view/shell/desktop/Search.tsx:161 +#: src/view/shell/desktop/Search.tsx:170 +#: src/view/shell/Drawer.tsx:362 +#: src/view/shell/Drawer.tsx:363 +msgid "Search" +msgstr "Cari" + +#: src/view/com/auth/LoggedOut.tsx:104 +#: src/view/com/auth/LoggedOut.tsx:105 +msgid "Search for users" +msgstr "Cari pengguna" + +#: src/view/com/modals/ChangeEmail.tsx:110 +msgid "Security Step Required" +msgstr "Langkah Keamanan Diperlukan" + +#: src/view/com/auth/HomeLoggedOutCTA.tsx:39 +msgid "See what's next" +msgstr "Lihat apa yang akan datang" + +#: src/view/com/modals/ServerInput.tsx:75 +msgid "Select Bluesky Social" +msgstr "Pilih Bluesky Social" + +#: src/view/com/auth/login/Login.tsx:117 +msgid "Select from an existing account" +msgstr "Pilih dari akun yang sudah ada" + +#: src/view/com/auth/login/LoginForm.tsx:143 +msgid "Select service" +msgstr "Pilih layanan" + +#: 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 "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" + +#: src/view/screens/LanguageSettings.tsx:190 +msgid "Select your preferred language for translations in your feed." +msgstr "Pilih bahasa yang disukai untuk penerjemahaan feed Anda." + +#: src/view/com/modals/VerifyEmail.tsx:196 +msgid "Send Confirmation Email" +msgstr "Kirim Email Konfirmasi" + +#: src/view/com/modals/DeleteAccount.tsx:127 +msgid "Send email" +msgstr "Kirim email" + +#: src/view/com/modals/DeleteAccount.tsx:138 +msgid "Send Email" +msgstr "Kirim Email" + +#: src/view/shell/Drawer.tsx:295 +#: src/view/shell/Drawer.tsx:316 +msgid "Send feedback" +msgstr "Kirim masukan" + +#: src/view/com/modals/report/SendReportButton.tsx:45 +msgid "Send Report" +msgstr "Kirim Laporan" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:78 +msgid "Set new password" +msgstr "Buat kata sandi baru" + +#: src/view/screens/PreferencesHomeFeed.tsx:216 +msgid "Set this setting to \"No\" to hide all quote posts from your feed. Reposts will still be visible." +msgstr "Pilih \"Tidak\" untuk menyembunyikan semua kutipan postingan dari feed Anda. Posting ulang tetap akan terlihat." + +#: src/view/screens/PreferencesHomeFeed.tsx:113 +msgid "Set this setting to \"No\" to hide all replies from your feed." +msgstr "Pilih \"Tidak\" untuk menyembunyikan semua balasan dari feed Anda." + +#: src/view/screens/PreferencesHomeFeed.tsx:182 +msgid "Set this setting to \"No\" to hide all reposts from your feed." +msgstr "Pilih \"Tidak\" untuk menyembunyikan semua posting ulang dari feed Anda." + +#: src/view/screens/PreferencesThreads.tsx:116 +msgid "Set this setting to \"Yes\" to show replies in a threaded view. This is an experimental feature." +msgstr "Pilih \"Ya\" untuk menampilkan balasan dalam bentuk utasan. Ini merupakan fitur eksperimental." + +#: src/view/screens/PreferencesHomeFeed.tsx:252 +msgid "Set this setting to \"Yes\" to show samples of your saved feeds in your following feed. This is an experimental feature." +msgstr "Pilih \"Ya\" untuk menampilkan beberapa sampel dari feed tersimpan Anda pada feed mengikuti. Ini merupakan fitur eksperimental." + +#: src/view/screens/Settings.tsx:277 +#: src/view/shell/desktop/LeftNav.tsx:431 +#: src/view/shell/Drawer.tsx:565 +#: src/view/shell/Drawer.tsx:566 +msgid "Settings" +msgstr "Pengaturan" + +#: src/view/com/modals/SelfLabel.tsx:125 +msgid "Sexual activity or erotic nudity." +msgstr "Aktivitas seksual atau ketelanjangan erotis." + +#: src/view/com/profile/ProfileHeader.tsx:338 +#: src/view/com/util/forms/PostDropdownBtn.tsx:139 +#: src/view/screens/ProfileList.tsx:384 +msgid "Share" +msgstr "Bagikan" + +#: src/view/screens/ProfileFeed.tsx:302 +msgid "Share feed" +msgstr "Bagikan feed" + +#: src/view/com/util/moderation/ContentHider.tsx:105 +#: src/view/screens/Settings.tsx:316 +msgid "Show" +msgstr "Tampilkan" + +#: src/view/com/util/moderation/ScreenHider.tsx:132 +msgid "Show anyway" +msgstr "Tetap tampilkan" + +#: src/view/screens/PreferencesHomeFeed.tsx:249 +msgid "Show Posts from My Feeds" +msgstr "Tampilkan Postingan dari Feed Saya" + +#: src/view/screens/PreferencesHomeFeed.tsx:213 +msgid "Show Quote Posts" +msgstr "Tampilkan Kutipan Postingan" + +#: src/view/screens/PreferencesHomeFeed.tsx:110 +msgid "Show Replies" +msgstr "Tampilkan Balasan" + +#: src/view/screens/PreferencesThreads.tsx:94 +msgid "Show replies by people you follow before all other replies." +msgstr "Tampilkan balasan dari orang yang Anda ikuti sebelum balasan lainnya." + +#: src/view/screens/PreferencesHomeFeed.tsx:179 +msgid "Show Reposts" +msgstr "Tampilkan Posting Ulang" + +#: src/view/com/notifications/FeedItem.tsx:337 +msgid "Show users" +msgstr "Tampilkan pengguna" + +#: 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:177 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:178 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:180 +#: src/view/shell/NavSignupCard.tsx:58 +#: src/view/shell/NavSignupCard.tsx:59 +msgid "Sign in" +msgstr "Masuk" + +#: 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 "Masuk" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:44 +msgid "Sign in as {0}" +msgstr "Masuk sebagai {0}" + +#: src/view/com/auth/login/ChooseAccountForm.tsx:118 +#: src/view/com/auth/login/Login.tsx:116 +msgid "Sign in as..." +msgstr "Masuk sebagai..." + +#: src/view/com/auth/login/LoginForm.tsx:130 +msgid "Sign into" +msgstr "Masuk ke" + +#: src/view/com/modals/SwitchAccount.tsx:64 +#: src/view/com/modals/SwitchAccount.tsx:67 +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/BottomBarWeb.tsx:167 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:168 +#: src/view/shell/bottom-bar/BottomBarWeb.tsx:170 +#: src/view/shell/NavSignupCard.tsx:49 +#: src/view/shell/NavSignupCard.tsx:50 +#: src/view/shell/NavSignupCard.tsx:52 +msgid "Sign up" +msgstr "Daftar" + +#: src/view/shell/NavSignupCard.tsx:42 +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 +msgid "Sign-in Required" +msgstr "Dibutuhkan Masuk" + +#: src/view/screens/Settings.tsx:327 +msgid "Signed in as" +msgstr "Masuk sebagai" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:33 +msgid "Skip" +msgstr "Lewati" + +#: src/view/screens/PreferencesThreads.tsx:69 +msgid "Sort Replies" +msgstr "Urutkan Balasan" + +#: src/view/screens/PreferencesThreads.tsx:72 +msgid "Sort replies to the same post by:" +msgstr Urutkan balasan ke postingan yang sama berdasarkan:" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:122 +msgid "Square" +msgstr "Persegi" + +#: src/view/com/auth/create/Step1.tsx:90 +#: src/view/com/modals/ServerInput.tsx:62 +msgid "Staging" +msgstr "Staging" + +#: src/view/screens/Settings.tsx:730 +msgid "Status page" +msgstr "Halaman status" + +#: src/view/screens/Settings.tsx:666 +msgid "Storybook" +msgstr "Storybook" + +#: src/view/com/modals/AppealLabel.tsx:101 +msgid "Submit" +msgstr "Kirim" + +#: src/view/screens/ProfileList.tsx:574 +msgid "Subscribe" +msgstr "Langganan" + +#: src/view/screens/ProfileList.tsx:570 +msgid "Subscribe to this list" +msgstr "Langganan ke daftar ini" + +#: src/view/screens/Search/Search.tsx:349 +msgid "Suggested Follows" +msgstr "Saran untuk Diikuti" + +#: src/view/screens/Support.tsx:30 +#: src/view/screens/Support.tsx:33 +msgid "Support" +msgstr "Dukungan" + +#: src/view/com/modals/SwitchAccount.tsx:115 +msgid "Switch Account" +msgstr "Pindah Akun" + +#: src/view/screens/Settings.tsx:646 +msgid "System log" +msgstr "Log sistem" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:112 +msgid "Tall" +msgstr "Tinggi" + +#: src/view/shell/desktop/RightNav.tsx:85 +msgid "Terms" +msgstr "Ketentuan" + +#: src/view/screens/Settings.tsx:744 +#: src/view/screens/TermsOfService.tsx:29 +#: src/view/shell/Drawer.tsx:256 +msgid "Terms of Service" +msgstr "Ketentuan Layanan" + +#: src/view/com/modals/AppealLabel.tsx:70 +#: src/view/com/modals/report/InputIssueDetails.tsx:50 +msgid "Text input field" +msgstr "Area input teks" + +#: src/view/com/profile/ProfileHeader.tsx:306 +msgid "The account will be able to interact with you after unblocking." +msgstr "Akun ini akan dapat berinteraksi dengan Anda setelah blokir dibuka." + +#: src/view/screens/CommunityGuidelines.tsx:36 +msgid "The Community Guidelines have been moved to <0/>" +msgstr "Panduan Komunitas telah dipindahkan ke <0/>" + +#: src/view/screens/CopyrightPolicy.tsx:33 +msgid "The Copyright Policy has been moved to <0/>" +msgstr "Kebijakan Hak Cipta telah dipindahkan ke <0/>" + +#: src/view/com/post-thread/PostThread.tsx:433 +msgid "The post may have been deleted." +msgstr "Postingan mungkin telah dihapus." + +#: src/view/screens/PrivacyPolicy.tsx:33 +msgid "The Privacy Policy has been moved to <0/>" +msgstr "Kebijakan Privasi telah dipindahkan ke <0/>" + +#: 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 "Formulir bantuan telah dipindahkan. Jika Anda butuh bantuan, silakan<0/> atau kunjungi {HELP_DESK_URL} untuk menghubungi kami." + +#: src/view/screens/TermsOfService.tsx:33 +msgid "The Terms of Service have been moved to" +msgstr "Ketentuan Layanan telah dipindahkan ke" + +#: src/view/com/util/ErrorBoundary.tsx:35 +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!" + +#: src/view/com/util/moderation/LabelInfo.tsx:45 +#~ msgid "This {0} has been labeled." +#~ msgstr "Ini {0} telah diberi label." + +#: src/view/com/util/moderation/ScreenHider.tsx:88 +msgid "This {screenDescription} has been flagged:" +msgstr "Ini {screenDescription} telah ditandai:" + +#: src/view/com/util/moderation/ScreenHider.tsx:83 +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/view/com/posts/FeedErrorMessage.tsx:107 +msgid "This content is not viewable without a Bluesky account." +msgstr "Konten ini tidak dapat dilihat tanpa akun Bluesky." + +#: src/view/com/posts/FeedErrorMessage.tsx:113 +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/com/modals/BirthDateSettings.tsx:61 +msgid "This information is not shared with other users." +msgstr "Informasi ini tidak akan dibagikan ke pengguna lainnya." + +#: src/view/com/modals/VerifyEmail.tsx:113 +msgid "This is important in case you ever need to change your email or reset your password." +msgstr "Ini penting jika Anda butuh untuk mengganti email atau reset kata sandi Anda nantinya." + +#: src/view/com/auth/create/Step1.tsx:55 +msgid "This is the service that keeps you online." +msgstr "Ini adalah layanan yang menjaga Anda tetap online." + +#: src/view/com/modals/LinkWarning.tsx:56 +msgid "This link is taking you to the following website:" +msgstr "Tautan ini akan membawa Anda ke website:" + +#: src/view/com/post-thread/PostThreadItem.tsx:123 +msgid "This post has been deleted." +msgstr "Postingan ini telah dihapus." + +#: 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/view/com/util/forms/PostDropdownBtn.tsx:178 +msgid "This will hide this post from your feeds." +msgstr "Ini akan menyembunyikan postingan ini dari feed Anda." + +#: src/view/screens/PreferencesThreads.tsx:53 +#: src/view/screens/Settings.tsx:503 +msgid "Thread Preferences" +msgstr "Preferensi Utasan" + +#: src/view/screens/PreferencesThreads.tsx:113 +msgid "Threaded Mode" +msgstr "Mode Utasan" + +#: src/view/com/util/forms/DropdownButton.tsx:230 +msgid "Toggle dropdown" +msgstr "Beralih dropdown" + +#: src/view/com/modals/EditImage.tsx:271 +msgid "Transformations" +msgstr "Transformasi" + +#: src/view/com/post-thread/PostThreadItem.tsx:704 +#: src/view/com/post-thread/PostThreadItem.tsx:706 +#: src/view/com/util/forms/PostDropdownBtn.tsx:111 +msgid "Translate" +msgstr "Terjemahkan" + +#: src/view/com/util/error/ErrorScreen.tsx:73 +msgid "Try again" +msgstr "Ulangi" + +#: src/view/screens/ProfileList.tsx:472 +msgid "Un-block list" +msgstr "Buka blokir daftar" + +#: src/view/screens/ProfileList.tsx:457 +msgid "Un-mute list" +msgstr "Bunyikan daftar" + +#: src/view/com/auth/create/CreateAccount.tsx:64 +#: src/view/com/auth/login/Login.tsx:76 +#: src/view/com/auth/login/LoginForm.tsx:117 +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:466 +#: src/view/com/profile/ProfileHeader.tsx:469 +msgid "Unblock" +msgstr "Buka blokir" + +#: src/view/com/profile/ProfileHeader.tsx:304 +#: src/view/com/profile/ProfileHeader.tsx:388 +msgid "Unblock Account" +msgstr "Buka blokir Akun" + +#: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 +msgid "Undo repost" +msgstr "Batalkan posting ulang" + +#: src/view/com/auth/create/state.ts:210 +msgid "Unfortunately, you do not meet the requirements to create an account." +msgstr "Sayangnya, Anda tidak memenuhi syarat untuk membuat akun." + +#: src/view/com/profile/ProfileHeader.tsx:369 +msgid "Unmute Account" +msgstr "Bunyikan Akun" + +#: src/view/com/util/forms/PostDropdownBtn.tsx:157 +msgid "Unmute thread" +msgstr "Bunyikan utasan" + +#: src/view/screens/ProfileList.tsx:440 +msgid "Unpin moderation list" +msgstr "Lepas sematan daftar moderasi" + +#: src/view/com/modals/UserAddRemoveLists.tsx:54 +msgid "Update {displayName} in Lists" +msgstr "Memperbarui {displayName} di Daftar" + +#: src/lib/hooks/useOTAUpdate.ts:15 +msgid "Update Available" +msgstr "Pembaruan Tersedia" + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:172 +msgid "Updating..." +msgstr "Memperbarui..." + +#: src/view/com/modals/ChangeHandle.tsx:453 +msgid "Upload a text file to:" +msgstr "Unggah berkas teks ke:" + +#: src/view/screens/AppPasswords.tsx:194 +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:513 +msgid "Use default provider" +msgstr "Gunakan layanan bawaan" + +#: src/view/com/modals/AddAppPasswords.tsx:150 +msgid "Use this to sign into the other app along with your handle." +msgstr "Gunakan ini untuk masuk ke aplikasi lain dengan handle Anda." + +#: src/view/com/modals/InviteCodes.tsx:197 +msgid "Used by:" +msgstr "Digunakan oleh:" + +#: src/view/com/auth/create/Step3.tsx:38 +msgid "User handle" +msgstr "Handle pengguna" + +#: src/view/screens/Lists.tsx:58 +msgid "User Lists" +msgstr "Daftar Pengguna" + +#: src/view/com/auth/login/LoginForm.tsx:170 +#: src/view/com/auth/login/LoginForm.tsx:187 +msgid "Username or email address" +msgstr "Nama pengguna atau alamat email" + +#: src/view/screens/ProfileList.tsx:738 +msgid "Users" +msgstr "Pengguna" + +#: src/view/com/threadgate/WhoCanReply.tsx:143 +msgid "users followed by <0/>" +msgstr "pengguna yang diikuti <0/>" + +#: src/view/com/modals/Threadgate.tsx:106 +msgid "Users in \"{0}\"" +msgstr "Pengguna di \"{0}\"" + +#: src/view/screens/Settings.tsx:769 +msgid "Verify email" +msgstr "Verifikasi email" + +#: src/view/screens/Settings.tsx:794 +msgid "Verify my email" +msgstr "Verifikasi email saya" + +#: src/view/screens/Settings.tsx:803 +msgid "Verify My Email" +msgstr "Verifikasi Email Saya" + +#: src/view/com/modals/ChangeEmail.tsx:205 +#: src/view/com/modals/ChangeEmail.tsx:207 +msgid "Verify New Email" +msgstr "Verifikasi Email Baru" + +#: src/view/screens/Log.tsx:52 +msgid "View debug entry" +msgstr "Lihat entri debug" + +#: src/view/com/profile/ProfileSubpageHeader.tsx:128 +msgid "View the avatar" +msgstr "Lihat avatar" + +#: src/view/com/modals/LinkWarning.tsx:73 +msgid "Visit Site" +msgstr "Kunjungi Halaman" + +#: src/view/com/auth/create/CreateAccount.tsx:121 +msgid "We're so excited to have you join us!" +msgstr "Kami sangat senang Anda bergabung dengan kami!" + +#: src/view/screens/Search/Search.tsx:236 +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/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 +msgid "Welcome to <0>Bluesky" +msgstr "Selamat Datang di <0>Bluesky" + +#: src/view/com/modals/report/Modal.tsx:169 +msgid "What is the issue with this {collectionName}?" +msgstr "Apa yang bermasalah dengan {collectionName}?" + +#: src/view/com/auth/SplashScreen.tsx:34 +#~ msgid "What's next?" +#~ msgstr "Apa selanjutnya?" + +#: src/view/com/auth/SplashScreen.tsx:34 +msgid "What's up?" +msgstr "Apa kabar?" + +#: src/view/com/modals/lang-settings/PostLanguagesSettings.tsx:78 +msgid "Which languages are used in this post?" +msgstr "Bahasa apa yang digunakan di postingan ini?" + +#: src/view/com/modals/lang-settings/ContentLanguagesSettings.tsx:77 +msgid "Which languages would you like to see in your algorithmic feeds?" +msgstr "Bahasa apa yang ingin Anda lihat di feed Anda?" + +#: src/view/com/composer/threadgate/ThreadgateBtn.tsx:47 +#: src/view/com/modals/Threadgate.tsx:66 +msgid "Who can reply" +msgstr "Siapa yang dapat membalas" + +#: src/view/com/modals/crop-image/CropImage.web.tsx:102 +msgid "Wide" +msgstr "Lebar" + +#: src/view/com/composer/Composer.tsx:409 +msgid "Write post" +msgstr "Tulis postingan" + +#: src/view/com/composer/Prompt.tsx:33 +msgid "Write your reply" +msgstr "Tulis balasan Anda" + +#: src/view/screens/PreferencesHomeFeed.tsx:192 +#: src/view/screens/PreferencesHomeFeed.tsx:227 +#: src/view/screens/PreferencesHomeFeed.tsx:262 +msgid "Yes" +msgstr "Ya" + +#: src/view/com/auth/create/Step1.tsx:106 +msgid "You can change hosting providers at any time." +msgstr "Anda dapat mengganti layanan hosting kapan pun." + +#: 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 "Sekarang Anda dapat masuk dengan kata sandi baru." + +#: src/view/com/modals/InviteCodes.tsx:64 +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." + +#: src/view/screens/SavedFeeds.tsx:102 +msgid "You don't have any pinned feeds." +msgstr "Anda tidak memiliki feed yang disematkan." + +#: src/view/screens/Feeds.tsx:383 +msgid "You don't have any saved feeds!" +msgstr "Anda tidak memiliki feed yang disimpan!" + +#: src/view/screens/SavedFeeds.tsx:135 +msgid "You don't have any saved feeds." +msgstr "Anda tidak memiliki feed yang disimpan." + +#: src/view/com/post-thread/PostThread.tsx:381 +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/feeds/ProfileFeedgens.tsx:134 +msgid "You have no feeds." +msgstr "Anda tidak punya feed." + +#: src/view/com/lists/MyLists.tsx:89 +#: src/view/com/lists/ProfileLists.tsx:138 +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." + +#: src/view/screens/AppPasswords.tsx:86 +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." + +#: src/view/com/auth/login/SetNewPasswordForm.tsx:81 +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/view/com/auth/create/Step2.tsx:43 +msgid "Your account" +msgstr "Akun Anda" + +#: src/view/com/auth/create/Step2.tsx:122 +msgid "Your birth date" +msgstr "Tanggal lahir Anda" + +#: src/view/com/auth/create/state.ts:102 +msgid "Your email appears to be invalid." +msgstr "Email Anda tidak valid." + +#: src/view/com/modals/Waitlist.tsx:107 +msgid "Your email has been saved! We'll be in touch soon." +msgstr "Email Anda telah disimpan. Kami akan segera menghubungi Anda." + +#: 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 "Alamat email Anda telah diperbarui namun belum diverifikasi. Silakan verifikasi alamat email baru Anda." + +#: src/view/com/modals/VerifyEmail.tsx:108 +msgid "Your email has not yet been verified. This is an important security step which we recommend." +msgstr "Alamat email Anda belum diverifikasi. Ini merupakan langkah keamanan penting yang kami rekomendasikan." + +#: src/view/com/auth/create/Step3.tsx:42 +#: src/view/com/modals/ChangeHandle.tsx:270 +msgid "Your full handle will be" +msgstr "Handle lengkap Anda akan menjadi" + +#: src/view/com/auth/create/Step1.tsx:53 +msgid "Your hosting provider" +msgstr "Layanan hosting Anda" + +#: src/view/screens/Settings.tsx:402 +#: src/view/shell/desktop/RightNav.tsx:129 +#: src/view/shell/Drawer.tsx:655 +msgid "Your invite codes are hidden when logged in using an App Password" +msgstr "Kode undangan Anda disembunyikan saat masuk menggunakan Kata Sandi Aplikasi" + +#: src/view/com/auth/onboarding/WelcomeMobile.tsx:59 +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:82 +msgid "Your profile" +msgstr "Profil Anda" + +#: src/view/com/auth/create/Step3.tsx:28 +msgid "Your user handle" +msgstr "Handle Anda" From 592133db589510115a6ae5c4d9d3c8e391932c77 Mon Sep 17 00:00:00 2001 From: Max Ignatenko Date: Tue, 9 Jan 2024 20:48:26 +0000 Subject: [PATCH 100/115] Update Ukrainian translations (#2439) --- src/locale/locales/uk/messages.po | 37 ++++++++++++++++--------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/locale/locales/uk/messages.po b/src/locale/locales/uk/messages.po index 365cca389f..30e291b85e 100644 --- a/src/locale/locales/uk/messages.po +++ b/src/locale/locales/uk/messages.po @@ -8,7 +8,7 @@ msgstr "" "Language: uk\n" "Project-Id-Version: bsky-app-ua\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-01-04 14:24\n" +"PO-Revision-Date: 2024-01-06 10:39\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n" @@ -655,7 +655,7 @@ msgstr "Власний домен" #: src/view/screens/PreferencesExternalEmbeds.tsx:55 msgid "Customize media from external sites." -msgstr "" +msgstr "Налаштування медіа зі сторонніх сайтів." #: src/view/screens/Settings.tsx:648 msgid "Danger Zone" @@ -825,11 +825,11 @@ msgstr "Email:" #: src/view/com/modals/EmbedConsent.tsx:113 msgid "Enable {0} only" -msgstr "" +msgstr "Увімкнути лише {0}" #: src/view/com/modals/EmbedConsent.tsx:97 msgid "Enable External Media" -msgstr "" +msgstr "Увімкнути зовнішні медіа" #: src/view/screens/PreferencesHomeFeed.tsx:144 msgid "Enable this setting to only see replies between people you follow." @@ -877,17 +877,17 @@ msgstr "Розгорнути альтернативний текст" #: src/view/com/modals/EmbedConsent.tsx:64 msgid "External Media" -msgstr "" +msgstr "Зовнішні медіа" #: 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 "" +msgstr "Зовнішні медіа можуть дозволяти вебсайтам збирати інформацію про вас та ваш пристрій. Інформація не надсилається та не запитується, допоки не натиснуто кнопку «Відтворити»." #: src/view/screens/PreferencesExternalEmbeds.tsx:52 #: src/view/screens/Settings.tsx:595 msgid "External Media Preferences" -msgstr "" +msgstr "Налаштування зовнішніх медіа" #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:109 #: src/view/com/auth/onboarding/RecommendedFeeds.tsx:141 @@ -979,7 +979,7 @@ msgstr "Підписані" #: src/view/com/profile/ProfileHeader.tsx:571 msgid "Follows you" -msgstr "Підписаний на вас" +msgstr "Підписаний(-на) на вас" #: src/view/com/modals/DeleteAccount.tsx:107 msgid "For security reasons, we'll need to send a confirmation code to your email address." @@ -1429,7 +1429,7 @@ msgstr "Ім'я" #: src/view/com/modals/EmbedConsent.tsx:107 #: src/view/com/modals/EmbedConsent.tsx:123 msgid "Never load embeds from {0}" -msgstr "" +msgstr "Не завантажувати вбудування з {0}" #: src/view/com/auth/onboarding/WelcomeMobile.tsx:72 msgid "Never lose access to your followers and data." @@ -1509,7 +1509,7 @@ msgstr "Нічого не знайдено за запитом «{query}»" #: src/view/com/modals/EmbedConsent.tsx:129 msgid "No thanks" -msgstr "" +msgstr "Ні, дякую" #: src/view/com/modals/Threadgate.tsx:82 msgid "Nobody" @@ -1567,7 +1567,7 @@ msgstr "Тільки {0} можуть відповідати." #: src/view/com/composer/Composer.tsx:468 #: src/view/com/composer/Composer.tsx:469 msgid "Open emoji picker" -msgstr "Емодзі" +msgstr "Емоджі" #: src/view/com/pager/FeedsTabBarMobile.tsx:76 msgid "Open navigation" @@ -1579,7 +1579,7 @@ msgstr "Відкриває налаштування мов" #: src/view/screens/Settings.tsx:587 msgid "Opens external embeds settings" -msgstr "" +msgstr "Відкрити налаштування зовнішніх вбудувань" #: src/view/shell/desktop/RightNav.tsx:156 #: src/view/shell/Drawer.tsx:641 @@ -1665,16 +1665,16 @@ msgstr "Закріплені стрічки" #: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:111 msgid "Play {0}" -msgstr "" +msgstr "Відтворити {0}" #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:54 #: src/view/com/util/post-embeds/ExternalPlayerEmbed.tsx:55 msgid "Play Video" -msgstr "" +msgstr "Відтворити відео" #: src/view/com/util/post-embeds/ExternalGifEmbed.tsx:110 msgid "Plays the GIF" -msgstr "" +msgstr "Відтворити GIF" #: src/view/com/auth/create/state.ts:116 msgid "Please choose your handle." @@ -1903,7 +1903,7 @@ msgstr "Поскаржитись на пост" #: src/view/com/util/post-ctrls/RepostButton.web.tsx:48 msgid "Repost" -msgstr "Репост" +msgstr "Репостити" #: src/view/com/util/post-ctrls/RepostButton.web.tsx:94 #: src/view/com/util/post-ctrls/RepostButton.web.tsx:105 @@ -2136,7 +2136,7 @@ msgstr "Всеодно показати" #: src/view/com/modals/EmbedConsent.tsx:87 msgid "Show embeds from {0}" -msgstr "" +msgstr "Показати вбудування з {0}" #: src/view/screens/PreferencesHomeFeed.tsx:255 msgid "Show Posts from My Feeds" @@ -2351,7 +2351,7 @@ msgstr "Цей користувач вказав, що не хоче, аби й #: src/view/com/modals/EmbedConsent.tsx:68 msgid "This content is hosted by {0}. Do you want to enable external media?" -msgstr "" +msgstr "Цей вміст розміщено {0}. Увімкнути зовнішні медіа?" #: src/view/com/posts/FeedErrorMessage.tsx:107 msgid "This content is not viewable without a Bluesky account." @@ -2736,3 +2736,4 @@ msgstr "Ваш профіль" #: src/view/com/auth/create/Step3.tsx:28 msgid "Your user handle" msgstr "Ваш псевдонім" + From aeeacd10d322a6e599631c500de03172d69984de Mon Sep 17 00:00:00 2001 From: Noritada Kobayashi Date: Wed, 10 Jan 2024 05:53:34 +0900 Subject: [PATCH 101/115] Mark more texts for localization (#2436) --- .../com/modals/ContentFilteringSettings.tsx | 36 +++++++++++-------- src/view/com/modals/InviteCodes.tsx | 13 ++++--- src/view/com/modals/UserAddRemoveLists.tsx | 2 +- src/view/screens/AppPasswords.tsx | 9 ++--- src/view/screens/Settings.tsx | 27 +++++++------- 5 files changed, 49 insertions(+), 38 deletions(-) diff --git a/src/view/com/modals/ContentFilteringSettings.tsx b/src/view/com/modals/ContentFilteringSettings.tsx index 8b42e1b1d3..88fb434435 100644 --- a/src/view/com/modals/ContentFilteringSettings.tsx +++ b/src/view/com/modals/ContentFilteringSettings.tsx @@ -104,6 +104,7 @@ export function Component({}: {}) { function AdultContentEnabledPref() { const pal = usePalette('default') + const {_} = useLingui() const {data: preferences} = usePreferencesQuery() const {mutate, variables} = usePreferencesSetAdultContentMutation() const {openModal} = useModalControls() @@ -121,23 +122,27 @@ function AdultContentEnabledPref() { enabled: !(variables?.enabled ?? preferences?.adultContentEnabled), }) } catch (e) { - Toast.show('There was an issue syncing your preferences with the server') + Toast.show( + _(msg`There was an issue syncing your preferences with the server`), + ) logger.error('Failed to update preferences with server', {error: e}) } - }, [variables, preferences, mutate]) + }, [variables, preferences, mutate, _]) return ( {isIOS ? ( preferences?.adultContentEnabled ? null : ( - Adult content can only be enabled via the Web at{' '} - - . + + Adult content can only be enabled via the Web at{' '} + + . + ) ) : typeof preferences?.birthDate === 'undefined' ? ( @@ -150,7 +155,7 @@ function AdultContentEnabledPref() { ) : (preferences.userAge || 0) >= 18 ? ( - You must be 18 or older to enable adult content. + You must be 18 or older to enable adult content. diff --git a/src/view/com/lightbox/Lightbox.web.tsx b/src/view/com/lightbox/Lightbox.web.tsx index 45e1fa5a31..a258d25ab4 100644 --- a/src/view/com/lightbox/Lightbox.web.tsx +++ b/src/view/com/lightbox/Lightbox.web.tsx @@ -110,7 +110,7 @@ function LightboxInner({ onPress={onClose} accessibilityRole="button" accessibilityLabel={_(msg`Close image viewer`)} - accessibilityHint="Exits image view" + accessibilityHint={_(msg`Exits image view`)} onAccessibilityEscape={onClose}> { setAltExpanded(!isAltExpanded) }}> diff --git a/src/view/com/lists/ListCard.tsx b/src/view/com/lists/ListCard.tsx index 774e9e916e..28e98144a4 100644 --- a/src/view/com/lists/ListCard.tsx +++ b/src/view/com/lists/ListCard.tsx @@ -11,6 +11,7 @@ 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' export const ListCard = ({ testID, @@ -76,19 +77,28 @@ export const ListCard = ({ {sanitizeDisplayName(list.name)} - {list.purpose === 'app.bsky.graph.defs#curatelist' && 'User list '} + {list.purpose === 'app.bsky.graph.defs#curatelist' && + (list.creator.did === currentAccount?.did ? ( + User list by you + ) : ( + + User list by {sanitizeHandle(list.creator.handle, '@')} + + ))} {list.purpose === 'app.bsky.graph.defs#modlist' && - 'Moderation list '} - by{' '} - {list.creator.did === currentAccount?.did - ? 'you' - : sanitizeHandle(list.creator.handle, '@')} + (list.creator.did === currentAccount?.did ? ( + Moderation list by you + ) : ( + + Moderation list by {sanitizeHandle(list.creator.handle, '@')} + + ))} {!!list.viewer?.muted && ( - Subscribed + Subscribed diff --git a/src/view/com/lists/ListMembers.tsx b/src/view/com/lists/ListMembers.tsx index 932f4b512f..212244cd83 100644 --- a/src/view/com/lists/ListMembers.tsx +++ b/src/view/com/lists/ListMembers.tsx @@ -20,6 +20,8 @@ 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__'} @@ -50,6 +52,7 @@ export function ListMembers({ desktopFixedHeightOffset?: number }) { const {track} = useAnalytics() + const {_} = useLingui() const [isRefreshing, setIsRefreshing] = React.useState(false) const {isMobile} = useWebMediaQueries() const {openModal} = useModalControls() @@ -143,12 +146,12 @@ export function ListMembers({ diff --git a/src/view/com/util/forms/DropdownButton.tsx b/src/view/com/util/forms/DropdownButton.tsx index ad8f50f5e6..411b77484b 100644 --- a/src/view/com/util/forms/DropdownButton.tsx +++ b/src/view/com/util/forms/DropdownButton.tsx @@ -75,6 +75,8 @@ export function DropdownButton({ bottomOffset = 0, accessibilityLabel, }: PropsWithChildren) { + const {_} = useLingui() + const ref1 = useRef(null) const ref2 = useRef(null) @@ -141,7 +143,9 @@ export function DropdownButton({ hitSlop={HITSLOP_10} ref={ref1} accessibilityRole="button" - accessibilityLabel={accessibilityLabel || `Opens ${numItems} options`} + accessibilityLabel={ + accessibilityLabel || _(msg`Opens ${numItems} options`) + } accessibilityHint=""> {children} @@ -247,7 +251,7 @@ const DropdownItems = ({ onPress={() => onPressItem(index)} accessibilityRole="button" accessibilityLabel={item.label} - accessibilityHint={`Option ${index + 1} of ${numItems}`}> + accessibilityHint={_(msg`Option ${index + 1} of ${numItems}`)}> {item.icon && ( { postDeleteMutation.mutateAsync({uri: postUri}).then( () => { - Toast.show('Post deleted') + Toast.show(_(msg`Post deleted`)) }, e => { logger.error('Failed to delete post', {error: e}) - Toast.show('Failed to delete post, please try again') + Toast.show(_(msg`Failed to delete post, please try again`)) }, ) - }, [postUri, postDeleteMutation]) + }, [postUri, postDeleteMutation, _]) const onToggleThreadMute = React.useCallback(() => { try { const muted = toggleThreadMute(rootUri) if (muted) { - Toast.show('You will no longer receive notifications for this thread') + Toast.show( + _(msg`You will no longer receive notifications for this thread`), + ) } else { - Toast.show('You will now receive notifications for this thread') + Toast.show(_(msg`You will now receive notifications for this thread`)) } } catch (e) { logger.error('Failed to toggle thread mute', {error: e}) } - }, [rootUri, toggleThreadMute]) + }, [rootUri, toggleThreadMute, _]) const onCopyPostText = React.useCallback(() => { Clipboard.setString(record?.text || '') - Toast.show('Copied to clipboard') - }, [record]) + Toast.show(_(msg`Copied to clipboard`)) + }, [record, _]) const onOpenTranslate = React.useCallback(() => { Linking.openURL(translatorUrl) @@ -253,7 +255,7 @@ let PostDropdownBtn = ({ diff --git a/src/view/com/util/forms/SearchInput.tsx b/src/view/com/util/forms/SearchInput.tsx index a88046d4c2..a78d23c9b4 100644 --- a/src/view/com/util/forms/SearchInput.tsx +++ b/src/view/com/util/forms/SearchInput.tsx @@ -50,7 +50,7 @@ export function SearchInput({ ( dimensionsHint || imageSizes.get(uri), ) @@ -64,7 +67,7 @@ export function AutoSizedImage({ accessible={true} // Must set for `accessibilityLabel` to work accessibilityIgnoresInvertColors accessibilityLabel={alt} - accessibilityHint="Tap to view fully" + accessibilityHint={_(msg`Tap to view fully`)} /> {children} diff --git a/src/view/com/util/images/Gallery.tsx b/src/view/com/util/images/Gallery.tsx index 094b0c56cc..e7110372c3 100644 --- a/src/view/com/util/images/Gallery.tsx +++ b/src/view/com/util/images/Gallery.tsx @@ -2,6 +2,8 @@ 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' type EventFunction = (index: number) => void @@ -22,6 +24,7 @@ export const GalleryItem: FC = ({ onPressIn, onLongPress, }) => { + const {_} = useLingui() const image = images[index] return ( @@ -31,7 +34,7 @@ export const GalleryItem: FC = ({ onLongPress={onLongPress ? () => onLongPress(index) : undefined} style={styles.fullWidth} accessibilityRole="button" - accessibilityLabel={image.alt || 'Image'} + accessibilityLabel={image.alt || _(msg`Image`)} accessibilityHint=""> { @@ -57,7 +57,9 @@ export function PostHider({ } }} accessibilityRole="button" - accessibilityHint={override ? 'Hide the content' : 'Show the content'} + accessibilityHint={ + override ? _(msg`Hide the content`) : _(msg`Show the content`) + } accessibilityLabel="" style={[ styles.description, @@ -103,7 +105,7 @@ export function PostHider({ {!moderation.noOverride && ( - {override ? 'Hide' : 'Show'} + {override ? Hide : Show} )} diff --git a/src/view/com/util/post-ctrls/PostCtrls.tsx b/src/view/com/util/post-ctrls/PostCtrls.tsx index a50b521750..575f19bfce 100644 --- a/src/view/com/util/post-ctrls/PostCtrls.tsx +++ b/src/view/com/util/post-ctrls/PostCtrls.tsx @@ -26,6 +26,8 @@ import { 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' let PostCtrls = ({ big, @@ -43,6 +45,7 @@ let PostCtrls = ({ onPressReply: () => void }): React.ReactNode => { const theme = useTheme() + const {_} = useLingui() const {openComposer} = useComposerControls() const {closeModal} = useModalControls() const postLikeMutation = usePostLikeMutation() @@ -176,9 +179,9 @@ let PostCtrls = ({ requireAuth(() => onPressToggleLike()) }} accessibilityRole="button" - accessibilityLabel={`${post.viewer?.like ? 'Unlike' : 'Like'} (${ - post.likeCount - } ${pluralize(post.likeCount || 0, 'like')})`} + accessibilityLabel={`${ + post.viewer?.like ? _(msg`Unlike`) : _(msg`Like`) + } (${post.likeCount} ${pluralize(post.likeCount || 0, 'like')})`} accessibilityHint="" hitSlop={big ? HITSLOP_20 : HITSLOP_10}> {post.viewer?.like ? ( diff --git a/src/view/com/util/post-ctrls/RepostButton.tsx b/src/view/com/util/post-ctrls/RepostButton.tsx index 620852d8e4..d45bf1d87f 100644 --- a/src/view/com/util/post-ctrls/RepostButton.tsx +++ b/src/view/com/util/post-ctrls/RepostButton.tsx @@ -8,6 +8,8 @@ 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 {msg} from '@lingui/macro' +import {useLingui} from '@lingui/react' interface Props { isReposted: boolean @@ -25,6 +27,7 @@ let RepostButton = ({ onQuote, }: Props): React.ReactNode => { const theme = useTheme() + const {_} = useLingui() const {openModal} = useModalControls() const requireAuth = useRequireAuth() @@ -53,7 +56,9 @@ let RepostButton = ({ style={[styles.control, !big && styles.controlPad]} accessibilityRole="button" accessibilityLabel={`${ - isReposted ? 'Undo repost' : 'Repost' + isReposted + ? _(msg`Undo repost`) + : _(msg({message: 'Repost', context: 'action'})) } (${repostCount} ${pluralize(repostCount || 0, 'repost')})`} accessibilityHint="" hitSlop={big ? HITSLOP_20 : HITSLOP_10}> diff --git a/src/view/com/util/post-embeds/QuoteEmbed.tsx b/src/view/com/util/post-embeds/QuoteEmbed.tsx index fbb89af27b..bb8375df67 100644 --- a/src/view/com/util/post-embeds/QuoteEmbed.tsx +++ b/src/view/com/util/post-embeds/QuoteEmbed.tsx @@ -17,6 +17,7 @@ import {PostEmbeds} from '.' import {PostAlerts} from '../moderation/PostAlerts' import {makeProfileLink} from 'lib/routes/links' import {InfoCircleIcon} from 'lib/icons' +import {Trans} from '@lingui/macro' export function MaybeQuoteEmbed({ embed, @@ -52,7 +53,7 @@ export function MaybeQuoteEmbed({ - Blocked + Blocked ) @@ -61,7 +62,7 @@ export function MaybeQuoteEmbed({ - Deleted + Deleted ) diff --git a/src/view/screens/AppPasswords.tsx b/src/view/screens/AppPasswords.tsx index ab4a6a6a89..dc439c3679 100644 --- a/src/view/screens/AppPasswords.tsx +++ b/src/view/screens/AppPasswords.tsx @@ -62,8 +62,8 @@ export function AppPasswords({}: Props) { ]} testID="appPasswordsScreen"> diff --git a/src/view/screens/Debug.tsx b/src/view/screens/Debug.tsx index 0e0464200e..f26b1505a8 100644 --- a/src/view/screens/Debug.tsx +++ b/src/view/screens/Debug.tsx @@ -16,6 +16,8 @@ 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' const MAIN_VIEWS = ['Base', 'Controls', 'Error', 'Notifs'] @@ -48,6 +50,7 @@ function DebugInner({ }) { const [currentView, setCurrentView] = React.useState(0) const pal = usePalette('default') + const {_} = useLingui() const renderItem = (item: any) => { return ( @@ -57,7 +60,7 @@ function DebugInner({ type="default-light" onPress={onToggleColorScheme} isSelected={colorScheme === 'dark'} - label="Dark mode" + label={_(msg`Dark mode`)} /> {item.currentView === 3 ? ( @@ -77,7 +80,7 @@ function DebugInner({ return ( - + + accessibilityHint={_(msg`Opens screen to edit Saved Feeds`)}> ) diff --git a/src/view/screens/Lists.tsx b/src/view/screens/Lists.tsx index d28db7c6c8..23d6c8fac5 100644 --- a/src/view/screens/Lists.tsx +++ b/src/view/screens/Lists.tsx @@ -73,7 +73,7 @@ export function ListsScreen({}: Props) { }}> - New + New diff --git a/src/view/screens/Log.tsx b/src/view/screens/Log.tsx index 8680b851b8..e727a1fb81 100644 --- a/src/view/screens/Log.tsx +++ b/src/view/screens/Log.tsx @@ -50,7 +50,9 @@ export function LogScreen({}: NativeStackScreenProps< style={[styles.entry, pal.border, pal.view]} onPress={toggler(entry.id)} accessibilityLabel={_(msg`View debug entry`)} - accessibilityHint="Opens additional details for a debug entry"> + accessibilityHint={_( + msg`Opens additional details for a debug entry`, + )}> {entry.level === 'debug' ? ( ) : ( diff --git a/src/view/screens/PostThread.tsx b/src/view/screens/PostThread.tsx index 6f8434412c..aaadbf399e 100644 --- a/src/view/screens/PostThread.tsx +++ b/src/view/screens/PostThread.tsx @@ -78,7 +78,9 @@ export function PostThreadScreen({route}: Props) { return ( - {isMobile && } + {isMobile && ( + + )} {uriError ? ( diff --git a/src/view/screens/PreferencesExternalEmbeds.tsx b/src/view/screens/PreferencesExternalEmbeds.tsx index 24e7d56df4..1e8cedf7e2 100644 --- a/src/view/screens/PreferencesExternalEmbeds.tsx +++ b/src/view/screens/PreferencesExternalEmbeds.tsx @@ -72,7 +72,7 @@ export function PreferencesExternalEmbeds({}: Props) { - Enable media players for + Enable media players for {Object.entries(externalEmbedLabels).map(([key, label]) => ( {value === 0 - ? `Show all replies` - : `Show replies with at least ${value} ${ - value > 1 ? `likes` : `like` - }`} + ? _(msg`Show all replies`) + : _( + msg`Show replies with at least ${value} ${ + value > 1 ? `likes` : `like` + }`, + )} ) diff --git a/src/view/screens/PreferencesThreads.tsx b/src/view/screens/PreferencesThreads.tsx index 35a010b55d..321c672936 100644 --- a/src/view/screens/PreferencesThreads.tsx +++ b/src/view/screens/PreferencesThreads.tsx @@ -159,7 +159,7 @@ export function PreferencesThreads({navigation}: Props) { accessibilityLabel={_(msg`Confirm`)} accessibilityHint=""> - Done + Done diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx index 4558ae33d5..7fc4d7a20a 100644 --- a/src/view/screens/Profile.tsx +++ b/src/view/screens/Profile.tsx @@ -371,6 +371,7 @@ const FeedSection = React.forwardRef( {feed, headerHeight, isFocused, scrollElRef, ignoreFilterFor}, ref, ) { + const {_} = useLingui() const queryClient = useQueryClient() const [hasNew, setHasNew] = React.useState(false) const [isScrolledDown, setIsScrolledDown] = React.useState(false) @@ -388,8 +389,8 @@ const FeedSection = React.forwardRef( })) const renderPostsEmpty = React.useCallback(() => { - return - }, []) + return + }, [_]) return ( @@ -408,7 +409,7 @@ const FeedSection = React.forwardRef( {(isScrolledDown || hasNew) && ( )} diff --git a/src/view/screens/ProfileFeed.tsx b/src/view/screens/ProfileFeed.tsx index 211306c0d0..4f5f300af0 100644 --- a/src/view/screens/ProfileFeed.tsx +++ b/src/view/screens/ProfileFeed.tsx @@ -214,11 +214,21 @@ export function ProfileFeedScreenInner({ } } catch (err) { Toast.show( - 'There was an an issue updating your feeds, please check your internet connection and try again.', + _( + msg`There was an an issue updating your feeds, please check your internet connection and try again.`, + ), ) logger.error('Failed up update feeds', {error: err}) } - }, [feedInfo, isSaved, saveFeed, removeFeed, resetSaveFeed, resetRemoveFeed]) + }, [ + feedInfo, + isSaved, + saveFeed, + removeFeed, + resetSaveFeed, + resetRemoveFeed, + _, + ]) const onTogglePinned = React.useCallback(async () => { try { @@ -232,10 +242,10 @@ export function ProfileFeedScreenInner({ resetPinFeed() } } catch (e) { - Toast.show('There was an issue contacting the server') + Toast.show(_(msg`There was an issue contacting the server`)) logger.error('Failed to toggle pinned feed', {error: e}) } - }, [isPinned, feedInfo, pinFeed, unpinFeed, resetPinFeed, resetUnpinFeed]) + }, [isPinned, feedInfo, pinFeed, unpinFeed, resetPinFeed, resetUnpinFeed, _]) const onPressShare = React.useCallback(() => { const url = toShareUrl(feedInfo.route.href) @@ -341,7 +351,7 @@ export function ProfileFeedScreenInner({