Compare commits

...

8 Commits

Author SHA1 Message Date
Hailey 85acda13fd add (#5273)
(cherry picked from commit dd2d0e6233)
2024-09-11 10:58:13 -07:00
Samuel Newman 8bffa52fe9 fix min size for compression (#5272)
(cherry picked from commit f943239894)
2024-09-11 10:57:45 -07:00
Samuel Newman 8f750ea88b [Video] Cap duration (#5270)
(cherry picked from commit 24b07c6cf4)
2024-09-11 10:46:44 -07:00
Samuel Newman 29a3fa7841 [Video] use correct max size (#5245)
Co-authored-by: Hailey <me@haileyok.com>
(cherry picked from commit 436e30fded)
2024-09-11 10:31:48 -07:00
Hailey a5fc6bb682 [Video] Add a string for localization (#5240)
(cherry picked from commit 723a5e488e)
2024-09-09 14:17:27 -07:00
Samuel Newman 5275c9c863 [Video] Media preview improvements (#5229)
* background color for images that haven't loaded

* fix recordwithmedia not appearing

(cherry picked from commit 44f1cd9fb5)
2024-09-09 14:17:23 -07:00
Samuel Newman c1ac79e0a4 [Video] Upload tweaks (#5228)
* use correct mime type

* fix wheel progress

(cherry picked from commit 6c6a76b193)
2024-09-09 14:15:56 -07:00
surfdude29 e63b0e0405 Update dates.ts (#5220)
(cherry picked from commit 95aee146b6)
2024-09-09 14:15:51 -07:00
28 changed files with 273 additions and 194 deletions
+9 -8
View File
@@ -10,7 +10,7 @@ import {
import {Trans} from '@lingui/macro'
import {parseTenorGif} from '#/lib/strings/embed-player'
import {atoms as a} from '#/alf'
import {atoms as a, useTheme} from '#/alf'
import {Text} from '#/components/Typography'
import {PlayButtonIcon} from '#/components/video/PlayButtonIcon'
@@ -43,10 +43,10 @@ export function Embed({
))}
</Outer>
)
} else if (AppBskyEmbedExternal.isView(embed) && embed.external.thumb) {
} else if (AppBskyEmbedExternal.isView(media) && media.external.thumb) {
let url: URL | undefined
try {
url = new URL(embed.external.uri)
url = new URL(media.external.uri)
} catch {}
if (url) {
const {success} = parseTenorGif(url)
@@ -54,17 +54,17 @@ export function Embed({
return (
<Outer style={style}>
<GifItem
thumbnail={embed.external.thumb}
alt={embed.external.title}
thumbnail={media.external.thumb}
alt={media.external.title}
/>
</Outer>
)
}
}
} else if (AppBskyEmbedVideo.isView(embed)) {
} else if (AppBskyEmbedVideo.isView(media)) {
return (
<Outer style={style}>
<VideoItem thumbnail={embed.thumbnail} alt={embed.alt} />
<VideoItem thumbnail={media.thumbnail} alt={media.alt} />
</Outer>
)
}
@@ -91,12 +91,13 @@ export function ImageItem({
alt?: string
children?: React.ReactNode
}) {
const t = useTheme()
return (
<View style={[a.relative, a.flex_1, {aspectRatio: 1, maxWidth: 100}]}>
<Image
key={thumbnail}
source={{uri: thumbnail}}
style={[a.flex_1, a.rounded_xs]}
style={[a.flex_1, a.rounded_xs, t.atoms.bg_contrast_25]}
contentFit="cover"
accessible={true}
accessibilityIgnoresInvertColors
+2
View File
@@ -21,6 +21,7 @@ import {
ja,
ko,
ptBR,
ru,
tr,
uk,
zhCN,
@@ -47,6 +48,7 @@ const locales: Record<AppLanguage, Locale | undefined> = {
ja,
ko,
['pt-BR']: ptBR,
ru,
tr,
uk,
['zh-CN']: zhCN,
+4 -2
View File
@@ -2,9 +2,10 @@ import {getVideoMetaData, Video} from 'react-native-compressor'
import {ImagePickerAsset} from 'expo-image-picker'
import {SUPPORTED_MIME_TYPES, SupportedMimeTypes} from '#/lib/constants'
import {extToMime} from '#/state/queries/video/util'
import {CompressedVideo} from './types'
const MIN_SIZE_FOR_COMPRESSION = 1024 * 1024 * 25 // 25mb
const MIN_SIZE_FOR_COMPRESSION = 25 // 25mb
export async function compressVideo(
file: ImagePickerAsset,
@@ -29,6 +30,7 @@ export async function compressVideo(
compressionMethod: 'manual',
bitrate: 3_000_000, // 3mbps
maxSize: 1920,
// WARNING: this ONE SPECIFIC ARG is in MB -sfn
minimumFileSizeForCompress,
getCancellationId: id => {
if (signal) {
@@ -43,5 +45,5 @@ export async function compressVideo(
const info = await getVideoMetaData(compressed)
return {uri: compressed, size: info.size, mimeType: `video/mp4`}
return {uri: compressed, size: info.size, mimeType: extToMime(info.extension)}
}
+2 -2
View File
@@ -3,9 +3,9 @@ import {ImagePickerAsset} from 'expo-image-picker'
import {VideoTooLargeError} from 'lib/media/video/errors'
import {CompressedVideo} from './types'
const MAX_VIDEO_SIZE = 1024 * 1024 * 100 // 100MB
const MAX_VIDEO_SIZE = 1024 * 1024 * 50 // 50mb
// doesn't actually compress, but throws if >100MB
// doesn't actually compress, converts to ArrayBuffer
export async function compressVideo(
asset: ImagePickerAsset,
_opts?: {
+1 -1
View File
@@ -1,6 +1,6 @@
export class VideoTooLargeError extends Error {
constructor() {
super('Videos cannot be larger than 100MB')
super('Videos cannot be larger than 50mb')
this.name = 'VideoTooLargeError'
}
}
+4 -4
View File
@@ -7664,8 +7664,8 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "La política de privacitat ha estat traslladada a <0/>"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgstr "El vídeo triat és més gran de 100MB."
msgid "The selected video is larger than 50MB."
msgstr "El vídeo triat és més gran de 50MB."
#: src/screens/StarterPack/StarterPackScreen.tsx:713
msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead."
@@ -8605,8 +8605,8 @@ msgid "Video: {0}"
msgstr ""
#: src/view/com/composer/videos/state.ts:27
#~ msgid "Videos cannot be larger than 100MB"
#~ msgstr "Els vídeos no poder ser de més de 100MB"
#~ msgid "Videos cannot be larger than 50MB"
#~ msgstr "Els vídeos no poder ser de més de 50MB"
#: src/screens/Profile/Header/Shell.tsx:113
msgid "View {0}'s avatar"
+2 -2
View File
@@ -6965,7 +6965,7 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "Die Datenschutzerklärung wurde nach <0/> verschoben"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgid "The selected video is larger than 50MB."
msgstr ""
#: src/screens/StarterPack/StarterPackScreen.tsx:713
@@ -7871,7 +7871,7 @@ msgid "Video: {0}"
msgstr ""
#: src/view/com/composer/videos/state.ts:27
#~ msgid "Videos cannot be larger than 100MB"
#~ msgid "Videos cannot be larger than 50MB"
#~ msgstr ""
#: src/screens/Profile/Header/Shell.tsx:113
+87 -70
View File
@@ -127,7 +127,7 @@ msgstr ""
msgid "{0} joined this week"
msgstr ""
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:593
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:637
msgid "{0} of {1}"
msgstr ""
@@ -461,7 +461,7 @@ msgstr ""
#~ msgid "Add ALT text"
#~ msgstr ""
#: src/view/com/composer/videos/SubtitleDialog.tsx:107
#: src/view/com/composer/videos/SubtitleDialog.tsx:109
msgid "Add alt text (optional)"
msgstr ""
@@ -607,9 +607,9 @@ msgid "ALT"
msgstr ""
#: src/view/com/composer/GifAltText.tsx:144
#: src/view/com/composer/videos/SubtitleDialog.tsx:54
#: src/view/com/composer/videos/SubtitleDialog.tsx:102
#: src/view/com/composer/videos/SubtitleDialog.tsx:106
#: src/view/com/composer/videos/SubtitleDialog.tsx:56
#: src/view/com/composer/videos/SubtitleDialog.tsx:104
#: src/view/com/composer/videos/SubtitleDialog.tsx:108
#: src/view/com/modals/EditImage.tsx:316
#: src/view/screens/AccessibilitySettings.tsx:87
msgid "Alt text"
@@ -640,11 +640,11 @@ msgstr ""
#~ msgid "An error occured"
#~ msgstr ""
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:369
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:413
msgid "An error occurred"
msgstr ""
#: src/state/queries/video/video.ts:227
#: src/state/queries/video/video.ts:232
msgid "An error occurred while compressing the video."
msgstr ""
@@ -652,11 +652,11 @@ msgstr ""
msgid "An error occurred while generating your starter pack. Want to try again?"
msgstr ""
#: src/view/com/util/post-embeds/VideoEmbed.tsx:213
#: src/view/com/util/post-embeds/VideoEmbed.tsx:215
msgid "An error occurred while loading the video. Please try again later."
msgstr ""
#: src/view/com/util/post-embeds/VideoEmbed.web.tsx:170
#: src/view/com/util/post-embeds/VideoEmbed.web.tsx:171
msgid "An error occurred while loading the video. Please try again."
msgstr ""
@@ -669,7 +669,7 @@ msgstr ""
msgid "An error occurred while saving the QR code!"
msgstr ""
#: src/view/com/composer/videos/SelectVideoBtn.tsx:61
#: src/view/com/composer/videos/SelectVideoBtn.tsx:68
msgid "An error occurred while selecting the video"
msgstr ""
@@ -682,7 +682,7 @@ msgstr ""
msgid "An error occurred while trying to follow all"
msgstr ""
#: src/state/queries/video/video.ts:194
#: src/state/queries/video/video.ts:199
msgid "An error occurred while uploading the video."
msgstr ""
@@ -844,7 +844,7 @@ msgstr ""
msgid "Are you sure you want to remove this from your feeds?"
msgstr ""
#: src/view/com/composer/Composer.tsx:837
#: src/view/com/composer/Composer.tsx:841
msgid "Are you sure you'd like to discard this draft?"
msgstr ""
@@ -1096,8 +1096,8 @@ msgstr ""
#: src/components/Prompt.tsx:124
#: src/components/TagMenu/index.tsx:282
#: src/screens/Deactivated.tsx:161
#: src/view/com/composer/Composer.tsx:590
#: src/view/com/composer/Composer.tsx:605
#: src/view/com/composer/Composer.tsx:595
#: src/view/com/composer/Composer.tsx:610
#: src/view/com/modals/ChangeEmail.tsx:213
#: src/view/com/modals/ChangeEmail.tsx:215
#: src/view/com/modals/ChangeHandle.tsx:148
@@ -1165,11 +1165,11 @@ msgstr ""
msgid "Cannot interact with a blocked user"
msgstr ""
#: src/view/com/composer/videos/SubtitleDialog.tsx:133
#: src/view/com/composer/videos/SubtitleDialog.tsx:135
msgid "Captions (.vtt)"
msgstr ""
#: src/view/com/composer/videos/SubtitleDialog.tsx:54
#: src/view/com/composer/videos/SubtitleDialog.tsx:56
msgid "Captions & alt text"
msgstr ""
@@ -1457,7 +1457,7 @@ msgstr ""
msgid "Closes password update alert"
msgstr ""
#: src/view/com/composer/Composer.tsx:602
#: src/view/com/composer/Composer.tsx:607
msgid "Closes post composer and discards post draft"
msgstr ""
@@ -1496,7 +1496,7 @@ msgstr ""
msgid "Complete the challenge"
msgstr ""
#: src/view/com/composer/Composer.tsx:710
#: src/view/com/composer/Composer.tsx:715
msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length"
msgstr ""
@@ -1742,7 +1742,7 @@ msgstr ""
msgid "Could not mute chat"
msgstr ""
#: src/view/com/composer/videos/VideoPreview.web.tsx:45
#: src/view/com/composer/videos/VideoPreview.web.tsx:56
msgid "Could not process your video"
msgstr ""
@@ -2005,7 +2005,7 @@ msgstr ""
msgid "Dialog: adjust who can interact with this post"
msgstr ""
#: src/view/com/composer/Composer.tsx:351
#: src/view/com/composer/Composer.tsx:356
msgid "Did you want to say anything?"
msgstr ""
@@ -2038,7 +2038,7 @@ msgstr ""
#~ msgid "Disable haptics"
#~ msgstr ""
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:335
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:379
msgid "Disable subtitles"
msgstr ""
@@ -2055,11 +2055,11 @@ msgstr ""
msgid "Disabled"
msgstr ""
#: src/view/com/composer/Composer.tsx:839
#: src/view/com/composer/Composer.tsx:843
msgid "Discard"
msgstr ""
#: src/view/com/composer/Composer.tsx:836
#: src/view/com/composer/Composer.tsx:840
msgid "Discard draft?"
msgstr ""
@@ -2089,7 +2089,7 @@ msgstr ""
#~ msgid "Dismiss"
#~ msgstr ""
#: src/view/com/composer/Composer.tsx:1106
#: src/view/com/composer/Composer.tsx:1110
msgid "Dismiss error"
msgstr ""
@@ -2141,8 +2141,8 @@ msgstr ""
#: src/screens/Onboarding/StepProfile/index.tsx:325
#: src/view/com/auth/server-input/index.tsx:169
#: src/view/com/auth/server-input/index.tsx:170
#: src/view/com/composer/videos/SubtitleDialog.tsx:167
#: src/view/com/composer/videos/SubtitleDialog.tsx:177
#: src/view/com/composer/videos/SubtitleDialog.tsx:171
#: src/view/com/composer/videos/SubtitleDialog.tsx:181
#: src/view/com/modals/AddAppPasswords.tsx:243
#: src/view/com/modals/AltImage.tsx:141
#: src/view/com/modals/crop-image/CropImage.web.tsx:177
@@ -2417,7 +2417,7 @@ msgstr ""
msgid "Enable priority notifications"
msgstr ""
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:336
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:380
msgid "Enable subtitles"
msgstr ""
@@ -2447,7 +2447,7 @@ msgstr ""
#~ msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip."
#~ msgstr ""
#: src/view/com/composer/videos/SubtitleDialog.tsx:157
#: src/view/com/composer/videos/SubtitleDialog.tsx:161
msgid "Ensure you have selected a language for each subtitle file."
msgstr ""
@@ -2549,7 +2549,7 @@ msgstr ""
msgid "Excludes users you follow"
msgstr ""
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:353
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:397
msgid "Exit fullscreen"
msgstr ""
@@ -3057,7 +3057,7 @@ msgctxt "from-feed"
msgid "From <0/>"
msgstr ""
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:354
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:398
msgid "Fullscreen"
msgstr ""
@@ -3086,7 +3086,7 @@ msgstr ""
msgid "Getting started"
msgstr ""
#: src/components/MediaPreview.tsx:119
#: src/components/MediaPreview.tsx:120
msgid "GIF"
msgstr ""
@@ -3526,7 +3526,7 @@ msgstr ""
msgid "It's just you right now! Add more people to your starter pack by searching above."
msgstr ""
#: src/view/com/composer/Composer.tsx:1125
#: src/view/com/composer/Composer.tsx:1129
msgid "Job ID: {0}"
msgstr ""
@@ -4047,7 +4047,11 @@ msgid "Music"
msgstr ""
#: src/components/TagMenu/index.tsx:263
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:345
msgid "Mute"
msgstr ""
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:389
msgctxt "video"
msgid "Mute"
msgstr ""
@@ -4579,7 +4583,7 @@ msgstr ""
#~ msgid "Onboarding tour step {0}: {1}"
#~ msgstr ""
#: src/view/com/composer/Composer.tsx:667
#: src/view/com/composer/Composer.tsx:672
msgid "One or more images is missing alt text."
msgstr ""
@@ -4634,8 +4638,8 @@ msgid "Open conversation options"
msgstr ""
#: src/screens/Messages/Conversation/MessageInput.web.tsx:165
#: src/view/com/composer/Composer.tsx:819
#: src/view/com/composer/Composer.tsx:820
#: src/view/com/composer/Composer.tsx:823
#: src/view/com/composer/Composer.tsx:824
msgid "Open emoji picker"
msgstr ""
@@ -4821,7 +4825,7 @@ msgstr ""
msgid "Opens this profile"
msgstr ""
#: src/view/com/composer/videos/SelectVideoBtn.tsx:81
#: src/view/com/composer/videos/SelectVideoBtn.tsx:88
msgid "Opens video picker"
msgstr ""
@@ -4899,11 +4903,11 @@ msgid "Password updated!"
msgstr ""
#: src/view/com/util/post-embeds/GifEmbed.tsx:44
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:322
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:366
msgid "Pause"
msgstr ""
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:275
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:319
msgid "Pause video"
msgstr ""
@@ -4963,7 +4967,7 @@ msgid "Pinned to your feeds"
msgstr ""
#: src/view/com/util/post-embeds/GifEmbed.tsx:44
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:323
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:367
msgid "Play"
msgstr ""
@@ -4980,8 +4984,8 @@ msgstr ""
msgid "Play or pause the GIF"
msgstr ""
#: src/view/com/util/post-embeds/VideoEmbed.tsx:187
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:276
#: src/view/com/util/post-embeds/VideoEmbed.tsx:189
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:320
msgid "Play video"
msgstr ""
@@ -5053,7 +5057,7 @@ msgstr ""
msgid "Please Verify Your Email"
msgstr ""
#: src/view/com/composer/Composer.tsx:355
#: src/view/com/composer/Composer.tsx:360
msgid "Please wait for your link card to finish loading"
msgstr ""
@@ -5066,8 +5070,8 @@ msgstr ""
msgid "Porn"
msgstr ""
#: src/view/com/composer/Composer.tsx:642
#: src/view/com/composer/Composer.tsx:649
#: src/view/com/composer/Composer.tsx:647
#: src/view/com/composer/Composer.tsx:654
msgctxt "action"
msgid "Post"
msgstr ""
@@ -5246,11 +5250,11 @@ msgstr ""
msgid "Public, shareable lists which can drive feeds."
msgstr ""
#: src/view/com/composer/Composer.tsx:627
#: src/view/com/composer/Composer.tsx:632
msgid "Publish post"
msgstr ""
#: src/view/com/composer/Composer.tsx:627
#: src/view/com/composer/Composer.tsx:632
msgid "Publish reply"
msgstr ""
@@ -5478,7 +5482,7 @@ msgstr ""
msgid "Remove repost"
msgstr ""
#: src/view/com/composer/videos/SubtitleDialog.tsx:260
#: src/view/com/composer/videos/SubtitleDialog.tsx:264
msgid "Remove subtitle file"
msgstr ""
@@ -5555,7 +5559,7 @@ msgstr ""
#~ msgid "Replies to this thread are disabled"
#~ msgstr ""
#: src/view/com/composer/Composer.tsx:640
#: src/view/com/composer/Composer.tsx:645
msgctxt "action"
msgid "Reply"
msgstr ""
@@ -6049,7 +6053,7 @@ msgstr ""
#~ msgid "See what's next"
#~ msgstr ""
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:587
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:631
msgid "Seek slider"
msgstr ""
@@ -6089,7 +6093,7 @@ msgstr ""
msgid "Select how long to mute this word for."
msgstr ""
#: src/view/com/composer/videos/SubtitleDialog.tsx:245
#: src/view/com/composer/videos/SubtitleDialog.tsx:249
msgid "Select language..."
msgstr ""
@@ -6129,7 +6133,7 @@ msgstr ""
#~ msgid "Select topical feeds to follow from the list below"
#~ msgstr ""
#: src/view/com/composer/videos/SelectVideoBtn.tsx:80
#: src/view/com/composer/videos/SelectVideoBtn.tsx:87
msgid "Select video"
msgstr ""
@@ -7034,8 +7038,8 @@ msgstr ""
msgid "The Privacy Policy has been moved to <0/>"
msgstr ""
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
#: src/state/queries/video/video.ts:227
msgid "The selected video is larger than 50MB."
msgstr ""
#: src/screens/StarterPack/StarterPackScreen.tsx:713
@@ -7425,7 +7429,7 @@ msgstr ""
msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue."
msgstr ""
#: src/view/com/composer/videos/SelectVideoBtn.tsx:106
#: src/view/com/composer/videos/SelectVideoBtn.tsx:113
msgid "To upload videos to Bluesky, you must first verify your email."
msgstr ""
@@ -7569,11 +7573,15 @@ msgid "Unlike this feed"
msgstr ""
#: src/components/TagMenu/index.tsx:263
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:344
#: src/view/screens/ProfileList.tsx:689
msgid "Unmute"
msgstr ""
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:388
msgctxt "video"
msgid "Unmute"
msgstr ""
#: src/components/TagMenu/index.web.tsx:115
msgid "Unmute {truncatedTag}"
msgstr ""
@@ -7600,7 +7608,7 @@ msgstr ""
msgid "Unmute thread"
msgstr ""
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:273
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:317
msgid "Unmute video"
msgstr ""
@@ -7642,7 +7650,7 @@ msgstr ""
msgid "Unsubscribed from list"
msgstr ""
#: src/state/queries/video/video.ts:240
#: src/state/queries/video/video.ts:245
msgid "Unsupported video type: {mimeType}"
msgstr ""
@@ -7829,7 +7837,7 @@ msgstr ""
msgid "Value:"
msgstr ""
#: src/view/com/composer/videos/SelectVideoBtn.tsx:104
#: src/view/com/composer/videos/SelectVideoBtn.tsx:111
msgid "Verified email required"
msgstr ""
@@ -7862,7 +7870,7 @@ msgstr ""
msgid "Verify New Email"
msgstr ""
#: src/view/com/composer/videos/SelectVideoBtn.tsx:108
#: src/view/com/composer/videos/SelectVideoBtn.tsx:115
msgid "Verify now"
msgstr ""
@@ -7896,11 +7904,11 @@ msgstr ""
msgid "Video Games"
msgstr ""
#: src/view/com/util/post-embeds/VideoEmbed.web.tsx:163
#: src/view/com/util/post-embeds/VideoEmbed.web.tsx:164
msgid "Video not found."
msgstr ""
#: src/view/com/composer/videos/SubtitleDialog.tsx:99
#: src/view/com/composer/videos/SubtitleDialog.tsx:101
msgid "Video settings"
msgstr ""
@@ -7909,9 +7917,14 @@ msgid "Video: {0}"
msgstr ""
#: src/view/com/composer/videos/state.ts:27
#~ msgid "Videos cannot be larger than 100MB"
#~ msgid "Videos cannot be larger than 50MB"
#~ msgstr ""
#: src/view/com/composer/videos/SelectVideoBtn.tsx:58
#: src/view/com/composer/videos/VideoPreview.web.tsx:44
msgid "Videos must be less than 60 seconds long"
msgstr ""
#: src/screens/Profile/Header/Shell.tsx:113
msgid "View {0}'s avatar"
msgstr ""
@@ -8085,7 +8098,7 @@ msgstr ""
msgid "We're sorry, but your search could not be completed. Please try again in a few minutes."
msgstr ""
#: src/view/com/composer/Composer.tsx:417
#: src/view/com/composer/Composer.tsx:422
msgid "We're sorry! The post you are replying to has been deleted."
msgstr ""
@@ -8124,7 +8137,7 @@ msgstr ""
#: src/view/com/auth/SplashScreen.tsx:40
#: src/view/com/auth/SplashScreen.web.tsx:86
#: src/view/com/composer/Composer.tsx:512
#: src/view/com/composer/Composer.tsx:517
msgid "What's up?"
msgstr ""
@@ -8199,11 +8212,11 @@ msgstr ""
msgid "Write a message"
msgstr ""
#: src/view/com/composer/Composer.tsx:708
#: src/view/com/composer/Composer.tsx:713
msgid "Write post"
msgstr ""
#: src/view/com/composer/Composer.tsx:511
#: src/view/com/composer/Composer.tsx:516
#: src/view/com/post-thread/PostThreadComposePrompt.tsx:42
msgid "Write your reply"
msgstr ""
@@ -8551,6 +8564,10 @@ msgstr ""
msgid "Your account has been deleted"
msgstr ""
#: src/state/queries/video/video.ts:185
msgid "Your account is not yet old enough to upload videos. Please try again later."
msgstr ""
#: src/view/screens/Settings/ExportCarDialog.tsx:65
msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately."
msgstr ""
@@ -8559,7 +8576,7 @@ msgstr ""
msgid "Your birth date"
msgstr ""
#: src/view/com/util/post-embeds/VideoEmbed.web.tsx:167
#: src/view/com/util/post-embeds/VideoEmbed.web.tsx:168
msgid "Your browser does not support the video format. Please try a different browser."
msgstr ""
@@ -8614,7 +8631,7 @@ msgstr ""
msgid "Your password has been changed successfully!"
msgstr ""
#: src/view/com/composer/Composer.tsx:463
#: src/view/com/composer/Composer.tsx:468
msgid "Your post has been published"
msgstr ""
@@ -8630,7 +8647,7 @@ msgstr ""
msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in."
msgstr ""
#: src/view/com/composer/Composer.tsx:462
#: src/view/com/composer/Composer.tsx:467
msgid "Your reply has been published"
msgstr ""
+2 -2
View File
@@ -6893,7 +6893,7 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "La Política de privacidad se ha trasladado a <0/>"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgid "The selected video is larger than 50MB."
msgstr ""
#: src/screens/StarterPack/StarterPackScreen.tsx:713
@@ -7763,7 +7763,7 @@ msgid "Video: {0}"
msgstr ""
#: src/view/com/composer/videos/state.ts:27
#~ msgid "Videos cannot be larger than 100MB"
#~ msgid "Videos cannot be larger than 50MB"
#~ msgstr ""
#: src/screens/Profile/Header/Shell.tsx:113
+2 -2
View File
@@ -6989,7 +6989,7 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "Tietosuojakäytäntö on siirretty kohtaan <0/>"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgid "The selected video is larger than 50MB."
msgstr ""
#: src/screens/StarterPack/StarterPackScreen.tsx:713
@@ -7863,7 +7863,7 @@ msgid "Video: {0}"
msgstr ""
#: src/view/com/composer/videos/state.ts:27
#~ msgid "Videos cannot be larger than 100MB"
#~ msgid "Videos cannot be larger than 50MB"
#~ msgstr ""
#: src/screens/Profile/Header/Shell.tsx:113
+2 -2
View File
@@ -6486,7 +6486,7 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "Notre politique de confidentialité a été déplacée vers <0/>"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgid "The selected video is larger than 50MB."
msgstr ""
#: src/screens/StarterPack/StarterPackScreen.tsx:713
@@ -7302,7 +7302,7 @@ msgid "Video: {0}"
msgstr ""
#: src/view/com/composer/videos/state.ts:27
#~ msgid "Videos cannot be larger than 100MB"
#~ msgid "Videos cannot be larger than 50MB"
#~ msgstr "Les vidéos ne peuvent pas dépasser 100 Mo"
#: src/screens/Profile/Header/Shell.tsx:113
+2 -2
View File
@@ -7035,7 +7035,7 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "Bogadh Polasaí na Príobháideachta go dtí <0/>"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgid "The selected video is larger than 50MB."
msgstr ""
#: src/screens/StarterPack/StarterPackScreen.tsx:713
@@ -7912,7 +7912,7 @@ msgid "Video: {0}"
msgstr ""
#: src/view/com/composer/videos/state.ts:27
#~ msgid "Videos cannot be larger than 100MB"
#~ msgid "Videos cannot be larger than 50MB"
#~ msgstr ""
#: src/screens/Profile/Header/Shell.tsx:113
+2 -2
View File
@@ -7609,7 +7609,7 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "गोपनीयता नीति को <0/> पर स्थानांतरित किया गया है"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgid "The selected video is larger than 50MB."
msgstr ""
#: src/screens/StarterPack/StarterPackScreen.tsx:713
@@ -8535,7 +8535,7 @@ msgid "Video: {0}"
msgstr ""
#: src/view/com/composer/videos/state.ts:27
#~ msgid "Videos cannot be larger than 100MB"
#~ msgid "Videos cannot be larger than 50MB"
#~ msgstr ""
#: src/screens/Profile/Header/Shell.tsx:113
+3 -3
View File
@@ -7040,7 +7040,7 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "Kebijakan Privasi telah dipindahkan ke <0/>"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgid "The selected video is larger than 50MB."
msgstr ""
#: src/screens/StarterPack/StarterPackScreen.tsx:713
@@ -7914,8 +7914,8 @@ msgid "Video: {0}"
msgstr ""
#: src/view/com/composer/videos/state.ts:27
#~ msgid "Videos cannot be larger than 100MB"
#~ msgstr "Video tidak boleh lebih besar dari 100MB"
#~ msgid "Videos cannot be larger than 50MB"
#~ msgstr "Video tidak boleh lebih besar dari 50MB"
#: src/screens/Profile/Header/Shell.tsx:113
msgid "View {0}'s avatar"
+4 -4
View File
@@ -7321,8 +7321,8 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "La politica sulla privacy è stata spostata a <0/><0/>"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgstr "Questo video è più grande di 100MB."
msgid "The selected video is larger than 50MB."
msgstr "Questo video è più grande di 50MB."
#: src/screens/StarterPack/StarterPackScreen.tsx:713
msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead."
@@ -8222,8 +8222,8 @@ msgid "Video: {0}"
msgstr ""
#: src/view/com/composer/videos/state.ts:27
#~ msgid "Videos cannot be larger than 100MB"
#~ msgstr "I video non possono essere più grandi di 100MB"
#~ msgid "Videos cannot be larger than 50MB"
#~ msgstr "I video non possono essere più grandi di 50MB"
#: src/screens/Profile/Header/Shell.tsx:113
msgid "View {0}'s avatar"
+2 -2
View File
@@ -6272,8 +6272,8 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "プライバシーポリシーは<0/>に移動しました"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgstr "選択したビデオのサイズが100MBを超えています。"
msgid "The selected video is larger than 50MB."
msgstr "選択したビデオのサイズが50MBを超えています。"
#: src/screens/StarterPack/StarterPackScreen.tsx:713
msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead."
+2 -2
View File
@@ -6272,8 +6272,8 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "개인정보 처리방침을 <0/>(으)로 이동했습니다"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgstr "선택한 동영상이 100MB를 초과합니다."
msgid "The selected video is larger than 50MB."
msgstr "선택한 동영상이 50MB를 초과합니다."
#: src/screens/StarterPack/StarterPackScreen.tsx:713
msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead."
+87 -70
View File
@@ -127,7 +127,7 @@ msgstr ""
msgid "{0} joined this week"
msgstr "{0} entrou esta semana"
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:593
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:637
msgid "{0} of {1}"
msgstr ""
@@ -461,7 +461,7 @@ msgstr "Adicionar texto alternativo"
#~ msgid "Add ALT text"
#~ msgstr "Adicionar texto alternativo"
#: src/view/com/composer/videos/SubtitleDialog.tsx:107
#: src/view/com/composer/videos/SubtitleDialog.tsx:109
msgid "Add alt text (optional)"
msgstr "Adicionar texto alternativo (opcional)"
@@ -607,9 +607,9 @@ msgid "ALT"
msgstr "ALT"
#: src/view/com/composer/GifAltText.tsx:144
#: src/view/com/composer/videos/SubtitleDialog.tsx:54
#: src/view/com/composer/videos/SubtitleDialog.tsx:102
#: src/view/com/composer/videos/SubtitleDialog.tsx:106
#: src/view/com/composer/videos/SubtitleDialog.tsx:56
#: src/view/com/composer/videos/SubtitleDialog.tsx:104
#: src/view/com/composer/videos/SubtitleDialog.tsx:108
#: src/view/com/modals/EditImage.tsx:316
#: src/view/screens/AccessibilitySettings.tsx:87
msgid "Alt text"
@@ -640,11 +640,11 @@ msgstr "Ocorreu um erro"
#~ msgid "An error occured"
#~ msgstr "Tivemos um problema"
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:369
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:413
msgid "An error occurred"
msgstr "Ocorreu um erro"
#: src/state/queries/video/video.ts:227
#: src/state/queries/video/video.ts:232
msgid "An error occurred while compressing the video."
msgstr "Ocorreu um erro ao compactar o vídeo."
@@ -652,11 +652,11 @@ msgstr "Ocorreu um erro ao compactar o vídeo."
msgid "An error occurred while generating your starter pack. Want to try again?"
msgstr "Ocorreu um erro ao gerar seu pacote inicial. Quer tentar novamente?"
#: src/view/com/util/post-embeds/VideoEmbed.tsx:213
#: src/view/com/util/post-embeds/VideoEmbed.tsx:215
msgid "An error occurred while loading the video. Please try again later."
msgstr "Ocorreu um erro ao carregar o vídeo. Tente novamente mais tarde."
#: src/view/com/util/post-embeds/VideoEmbed.web.tsx:170
#: src/view/com/util/post-embeds/VideoEmbed.web.tsx:171
msgid "An error occurred while loading the video. Please try again."
msgstr "Ocorreu um erro ao carregar o vídeo. Tente novamente."
@@ -669,7 +669,7 @@ msgstr "Ocorreu um erro ao carregar o vídeo. Tente novamente."
msgid "An error occurred while saving the QR code!"
msgstr "Ocorreu um erro ao salvar o QR code!"
#: src/view/com/composer/videos/SelectVideoBtn.tsx:61
#: src/view/com/composer/videos/SelectVideoBtn.tsx:68
msgid "An error occurred while selecting the video"
msgstr "Ocorreu um erro ao selecionar o vídeo"
@@ -682,7 +682,7 @@ msgstr "Ocorreu um erro ao selecionar o vídeo"
msgid "An error occurred while trying to follow all"
msgstr "Ocorreu um erro ao tentar seguir todos"
#: src/state/queries/video/video.ts:194
#: src/state/queries/video/video.ts:199
msgid "An error occurred while uploading the video."
msgstr "Ocorreu um erro ao enviar o vídeo."
@@ -844,7 +844,7 @@ msgstr "Tem certeza que deseja remover {0} dos seus feeds?"
msgid "Are you sure you want to remove this from your feeds?"
msgstr "Tem certeza que deseja remover isto de seus feeds?"
#: src/view/com/composer/Composer.tsx:837
#: src/view/com/composer/Composer.tsx:841
msgid "Are you sure you'd like to discard this draft?"
msgstr "Tem certeza que deseja descartar este rascunho?"
@@ -1096,8 +1096,8 @@ msgstr "Só pode conter letras, números, espaços, riscas e subtraços. Deve te
#: src/components/Prompt.tsx:124
#: src/components/TagMenu/index.tsx:282
#: src/screens/Deactivated.tsx:161
#: src/view/com/composer/Composer.tsx:590
#: src/view/com/composer/Composer.tsx:605
#: src/view/com/composer/Composer.tsx:595
#: src/view/com/composer/Composer.tsx:610
#: src/view/com/modals/ChangeEmail.tsx:213
#: src/view/com/modals/ChangeEmail.tsx:215
#: src/view/com/modals/ChangeHandle.tsx:148
@@ -1165,11 +1165,11 @@ msgstr "Cancela a abertura do link"
msgid "Cannot interact with a blocked user"
msgstr ""
#: src/view/com/composer/videos/SubtitleDialog.tsx:133
#: src/view/com/composer/videos/SubtitleDialog.tsx:135
msgid "Captions (.vtt)"
msgstr "Legendas (.vtt)"
#: src/view/com/composer/videos/SubtitleDialog.tsx:54
#: src/view/com/composer/videos/SubtitleDialog.tsx:56
msgid "Captions & alt text"
msgstr "Legendas e texto alt"
@@ -1457,7 +1457,7 @@ msgstr "Fecha barra de navegação inferior"
msgid "Closes password update alert"
msgstr "Fecha alerta de troca de senha"
#: src/view/com/composer/Composer.tsx:602
#: src/view/com/composer/Composer.tsx:607
msgid "Closes post composer and discards post draft"
msgstr "Fecha o editor de post e descarta o rascunho"
@@ -1496,7 +1496,7 @@ msgstr "Completar e começar a usar sua conta"
msgid "Complete the challenge"
msgstr "Complete o captcha"
#: src/view/com/composer/Composer.tsx:710
#: src/view/com/composer/Composer.tsx:715
msgid "Compose posts up to {MAX_GRAPHEME_LENGTH} characters in length"
msgstr "Escreva posts de até {MAX_GRAPHEME_LENGTH} caracteres"
@@ -1742,7 +1742,7 @@ msgstr "Não foi possível carregar a lista"
msgid "Could not mute chat"
msgstr "Não foi possível silenciar este chat"
#: src/view/com/composer/videos/VideoPreview.web.tsx:45
#: src/view/com/composer/videos/VideoPreview.web.tsx:56
msgid "Could not process your video"
msgstr "Não foi possível processar seu vídeo"
@@ -2005,7 +2005,7 @@ msgstr "Desanexar postagem de citação?"
msgid "Dialog: adjust who can interact with this post"
msgstr "Diálogo: ajuste quem pode interagir com esta postagem"
#: src/view/com/composer/Composer.tsx:351
#: src/view/com/composer/Composer.tsx:356
msgid "Did you want to say anything?"
msgstr "Você gostaria de dizer alguma coisa?"
@@ -2038,7 +2038,7 @@ msgstr "Desabilitar feedback tátil"
#~ msgid "Disable haptics"
#~ msgstr "Desabilitar feedback tátil"
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:335
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:379
msgid "Disable subtitles"
msgstr "Desativar legendas"
@@ -2055,11 +2055,11 @@ msgstr "Desativar legendas"
msgid "Disabled"
msgstr "Desabilitado"
#: src/view/com/composer/Composer.tsx:839
#: src/view/com/composer/Composer.tsx:843
msgid "Discard"
msgstr "Descartar"
#: src/view/com/composer/Composer.tsx:836
#: src/view/com/composer/Composer.tsx:840
msgid "Discard draft?"
msgstr "Descartar rascunho?"
@@ -2089,7 +2089,7 @@ msgstr "Descubra Novos Feeds"
#~ msgid "Dismiss"
#~ msgstr "Ocultar"
#: src/view/com/composer/Composer.tsx:1106
#: src/view/com/composer/Composer.tsx:1110
msgid "Dismiss error"
msgstr "Ocultar erro"
@@ -2141,8 +2141,8 @@ msgstr "Domínio verificado!"
#: src/screens/Onboarding/StepProfile/index.tsx:325
#: src/view/com/auth/server-input/index.tsx:169
#: src/view/com/auth/server-input/index.tsx:170
#: src/view/com/composer/videos/SubtitleDialog.tsx:167
#: src/view/com/composer/videos/SubtitleDialog.tsx:177
#: src/view/com/composer/videos/SubtitleDialog.tsx:171
#: src/view/com/composer/videos/SubtitleDialog.tsx:181
#: src/view/com/modals/AddAppPasswords.tsx:243
#: src/view/com/modals/AltImage.tsx:141
#: src/view/com/modals/crop-image/CropImage.web.tsx:177
@@ -2417,7 +2417,7 @@ msgstr "Habilitar mídia para"
msgid "Enable priority notifications"
msgstr "Habilitar notificações prioritárias"
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:336
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:380
msgid "Enable subtitles"
msgstr "Habilitar legendas"
@@ -2447,7 +2447,7 @@ msgstr "Fim do feed"
#~ msgid "End of onboarding tour window. Do not move forward. Instead, go backward for more options, or press to skip."
#~ msgstr "Fim da integração da sua janela. Não avance. Em vez disso, volte para mais opções ou pressione para pular."
#: src/view/com/composer/videos/SubtitleDialog.tsx:157
#: src/view/com/composer/videos/SubtitleDialog.tsx:161
msgid "Ensure you have selected a language for each subtitle file."
msgstr "Certifique-se de ter selecionado um idioma para cada arquivo de legenda."
@@ -2549,7 +2549,7 @@ msgstr "Excluir usuário que você segue"
msgid "Excludes users you follow"
msgstr "Excluir usuário que você segue"
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:353
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:397
msgid "Exit fullscreen"
msgstr "Sair da tela cheia"
@@ -3057,7 +3057,7 @@ msgctxt "from-feed"
msgid "From <0/>"
msgstr "Por <0/>"
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:354
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:398
msgid "Fullscreen"
msgstr "Tela cheia"
@@ -3086,7 +3086,7 @@ msgstr "Vamos começar"
msgid "Getting started"
msgstr "Começando"
#: src/components/MediaPreview.tsx:119
#: src/components/MediaPreview.tsx:120
msgid "GIF"
msgstr ""
@@ -3526,7 +3526,7 @@ msgstr "Convites, mas pessoais"
msgid "It's just you right now! Add more people to your starter pack by searching above."
msgstr "É só você por enquanto! Adicione mais pessoas ao seu pacote inicial pesquisando acima."
#: src/view/com/composer/Composer.tsx:1125
#: src/view/com/composer/Composer.tsx:1129
msgid "Job ID: {0}"
msgstr ""
@@ -4047,10 +4047,14 @@ msgid "Music"
msgstr "Música"
#: src/components/TagMenu/index.tsx:263
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:345
msgid "Mute"
msgstr "Silenciar"
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:389
msgctxt "video"
msgid "Mute"
msgstr ""
#: src/components/TagMenu/index.web.tsx:116
msgid "Mute {truncatedTag}"
msgstr "Silenciar {truncatedTag}"
@@ -4579,7 +4583,7 @@ msgstr "Resetar tutoriais"
#~ msgid "Onboarding tour step {0}: {1}"
#~ msgstr "Etapa do tour de integração {0}: {1}"
#: src/view/com/composer/Composer.tsx:667
#: src/view/com/composer/Composer.tsx:672
msgid "One or more images is missing alt text."
msgstr "Uma ou mais imagens estão sem texto alternativo."
@@ -4634,8 +4638,8 @@ msgid "Open conversation options"
msgstr "Abrir opções de conversa"
#: src/screens/Messages/Conversation/MessageInput.web.tsx:165
#: src/view/com/composer/Composer.tsx:819
#: src/view/com/composer/Composer.tsx:820
#: src/view/com/composer/Composer.tsx:823
#: src/view/com/composer/Composer.tsx:824
msgid "Open emoji picker"
msgstr "Abrir seletor de emojis"
@@ -4821,7 +4825,7 @@ msgstr "Abre as preferências de threads"
msgid "Opens this profile"
msgstr "Abre este perfil"
#: src/view/com/composer/videos/SelectVideoBtn.tsx:81
#: src/view/com/composer/videos/SelectVideoBtn.tsx:88
msgid "Opens video picker"
msgstr "Abre seletor de vídeos"
@@ -4899,11 +4903,11 @@ msgid "Password updated!"
msgstr "Senha atualizada!"
#: src/view/com/util/post-embeds/GifEmbed.tsx:44
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:322
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:366
msgid "Pause"
msgstr "Pausar"
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:275
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:319
msgid "Pause video"
msgstr "Pausar vídeo"
@@ -4963,7 +4967,7 @@ msgid "Pinned to your feeds"
msgstr "Fixado em seus feeds"
#: src/view/com/util/post-embeds/GifEmbed.tsx:44
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:323
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:367
msgid "Play"
msgstr "Tocar"
@@ -4980,8 +4984,8 @@ msgstr "Reproduzir {0}"
msgid "Play or pause the GIF"
msgstr "Tocar ou pausar o GIF"
#: src/view/com/util/post-embeds/VideoEmbed.tsx:187
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:276
#: src/view/com/util/post-embeds/VideoEmbed.tsx:189
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:320
msgid "Play video"
msgstr "Reproduzir vídeo"
@@ -5053,7 +5057,7 @@ msgstr "Por favor entre como @{0}"
msgid "Please Verify Your Email"
msgstr "Por favor, verifique seu e-mail"
#: src/view/com/composer/Composer.tsx:355
#: src/view/com/composer/Composer.tsx:360
msgid "Please wait for your link card to finish loading"
msgstr "Aguarde até que a prévia de link termine de carregar"
@@ -5066,8 +5070,8 @@ msgstr "Política"
msgid "Porn"
msgstr "Pornografia"
#: src/view/com/composer/Composer.tsx:642
#: src/view/com/composer/Composer.tsx:649
#: src/view/com/composer/Composer.tsx:647
#: src/view/com/composer/Composer.tsx:654
msgctxt "action"
msgid "Post"
msgstr "Postar"
@@ -5246,11 +5250,11 @@ msgstr "Listas públicas e compartilháveis para silenciar ou bloquear usuários
msgid "Public, shareable lists which can drive feeds."
msgstr "Listas públicas e compartilháveis que geram feeds."
#: src/view/com/composer/Composer.tsx:627
#: src/view/com/composer/Composer.tsx:632
msgid "Publish post"
msgstr "Publicar post"
#: src/view/com/composer/Composer.tsx:627
#: src/view/com/composer/Composer.tsx:632
msgid "Publish reply"
msgstr "Publicar resposta"
@@ -5478,7 +5482,7 @@ msgstr "Remover citação"
msgid "Remove repost"
msgstr "Desfazer repost"
#: src/view/com/composer/videos/SubtitleDialog.tsx:260
#: src/view/com/composer/videos/SubtitleDialog.tsx:264
msgid "Remove subtitle file"
msgstr "Remover arquivo de legenda"
@@ -5555,7 +5559,7 @@ msgstr "Respostas para esta postagem estão desativadas."
#~ msgid "Replies to this thread are disabled"
#~ msgstr "Respostas para esta thread estão desativadas"
#: src/view/com/composer/Composer.tsx:640
#: src/view/com/composer/Composer.tsx:645
msgctxt "action"
msgid "Reply"
msgstr "Responder"
@@ -6049,7 +6053,7 @@ msgstr "Veja o guia"
#~ msgid "See what's next"
#~ msgstr "Veja o que vem por aí"
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:587
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:631
msgid "Seek slider"
msgstr "Controle deslizante de busca"
@@ -6089,7 +6093,7 @@ msgstr "Selecionar GIF \"{0}\""
msgid "Select how long to mute this word for."
msgstr "Selecione por quanto tempo essa palavra deve ser silenciada."
#: src/view/com/composer/videos/SubtitleDialog.tsx:245
#: src/view/com/composer/videos/SubtitleDialog.tsx:249
msgid "Select language..."
msgstr "Selecione o idioma..."
@@ -6129,7 +6133,7 @@ msgstr "Selecione o serviço que hospeda seus dados."
#~ msgid "Select topical feeds to follow from the list below"
#~ msgstr "Selecione feeds de assuntos para seguir"
#: src/view/com/composer/videos/SelectVideoBtn.tsx:80
#: src/view/com/composer/videos/SelectVideoBtn.tsx:87
msgid "Select video"
msgstr "Selecione o vídeo"
@@ -7034,8 +7038,8 @@ msgstr "O post pode ter sido excluído."
msgid "The Privacy Policy has been moved to <0/>"
msgstr "A Política de Privacidade foi movida para <0/>"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
#: src/state/queries/video/video.ts:227
msgid "The selected video is larger than 50MB."
msgstr "Vídeo selecionado é maior que 100 MB."
#: src/screens/StarterPack/StarterPackScreen.tsx:713
@@ -7425,7 +7429,7 @@ msgstr "Para desabilitar o 2FA via e-mail, por favor verifique seu acesso a este
msgid "To report a conversation, please report one of its messages via the conversation screen. This lets our moderators understand the context of your issue."
msgstr "Para denunciar uma conversa, por favor, denuncie uma das mensagens individualmente. Isso vai permitir a análise da situação pelos nossos moderadores."
#: src/view/com/composer/videos/SelectVideoBtn.tsx:106
#: src/view/com/composer/videos/SelectVideoBtn.tsx:113
msgid "To upload videos to Bluesky, you must first verify your email."
msgstr "Para enviar vídeos para o Bluesky, você deve primeiro verificar seu e-mail."
@@ -7569,11 +7573,15 @@ msgid "Unlike this feed"
msgstr "Descurtir este feed"
#: src/components/TagMenu/index.tsx:263
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:344
#: src/view/screens/ProfileList.tsx:689
msgid "Unmute"
msgstr "Dessilenciar"
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:388
msgctxt "video"
msgid "Unmute"
msgstr ""
#: src/components/TagMenu/index.web.tsx:115
msgid "Unmute {truncatedTag}"
msgstr "Dessilenciar {truncatedTag}"
@@ -7600,7 +7608,7 @@ msgstr "Desmutar conversa"
msgid "Unmute thread"
msgstr "Dessilenciar thread"
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:273
#: src/view/com/util/post-embeds/VideoEmbedInner/VideoWebControls.tsx:317
msgid "Unmute video"
msgstr "Desmutar vídeo"
@@ -7642,7 +7650,7 @@ msgstr "Desinscrever-se deste rotulador"
msgid "Unsubscribed from list"
msgstr "Cancelada inscrição na lista"
#: src/state/queries/video/video.ts:240
#: src/state/queries/video/video.ts:245
msgid "Unsupported video type: {mimeType}"
msgstr "Tipo de vídeo não suportado: {mimeType}"
@@ -7829,7 +7837,7 @@ msgstr "Usuários que curtiram este conteúdo ou perfil"
msgid "Value:"
msgstr "Conteúdo:"
#: src/view/com/composer/videos/SelectVideoBtn.tsx:104
#: src/view/com/composer/videos/SelectVideoBtn.tsx:111
msgid "Verified email required"
msgstr "E-mail verificado necessário"
@@ -7862,7 +7870,7 @@ msgstr "Verificar Meu Email"
msgid "Verify New Email"
msgstr "Verificar Novo E-mail"
#: src/view/com/composer/videos/SelectVideoBtn.tsx:108
#: src/view/com/composer/videos/SelectVideoBtn.tsx:115
msgid "Verify now"
msgstr "Verifique agora"
@@ -7896,11 +7904,11 @@ msgstr "Falha no processamento do vídeo"
msgid "Video Games"
msgstr "Games"
#: src/view/com/util/post-embeds/VideoEmbed.web.tsx:163
#: src/view/com/util/post-embeds/VideoEmbed.web.tsx:164
msgid "Video not found."
msgstr "Vídeo não encontrado."
#: src/view/com/composer/videos/SubtitleDialog.tsx:99
#: src/view/com/composer/videos/SubtitleDialog.tsx:101
msgid "Video settings"
msgstr "Configurações de vídeo"
@@ -7909,9 +7917,14 @@ msgid "Video: {0}"
msgstr ""
#: src/view/com/composer/videos/state.ts:27
#~ msgid "Videos cannot be larger than 100MB"
#~ msgid "Videos cannot be larger than 50MB"
#~ msgstr "Vídeos não podem ter mais de 100 MB"
#: src/view/com/composer/videos/SelectVideoBtn.tsx:58
#: src/view/com/composer/videos/VideoPreview.web.tsx:44
msgid "Videos must be less than 60 seconds long"
msgstr "Os vídeos devem ter menos de 60 segundos de duração."
#: src/screens/Profile/Header/Shell.tsx:113
msgid "View {0}'s avatar"
msgstr "Ver o avatar de {0}"
@@ -8085,7 +8098,7 @@ msgstr "Não foi possível carregar sua lista de palavras silenciadas. Por favor
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/com/composer/Composer.tsx:417
#: src/view/com/composer/Composer.tsx:422
msgid "We're sorry! The post you are replying to has been deleted."
msgstr "Sentimos muito! A postagem que você está respondendo foi excluída."
@@ -8124,7 +8137,7 @@ msgstr "Como você quer chamar seu pacote inicial?"
#: src/view/com/auth/SplashScreen.tsx:40
#: src/view/com/auth/SplashScreen.web.tsx:86
#: src/view/com/composer/Composer.tsx:512
#: src/view/com/composer/Composer.tsx:517
msgid "What's up?"
msgstr "E aí?"
@@ -8199,11 +8212,11 @@ msgstr "Largo"
msgid "Write a message"
msgstr "Escreva uma mensagem"
#: src/view/com/composer/Composer.tsx:708
#: src/view/com/composer/Composer.tsx:713
msgid "Write post"
msgstr "Escrever post"
#: src/view/com/composer/Composer.tsx:511
#: src/view/com/composer/Composer.tsx:516
#: src/view/com/post-thread/PostThreadComposePrompt.tsx:42
msgid "Write your reply"
msgstr "Escreva sua resposta"
@@ -8551,6 +8564,10 @@ msgstr "Sua conta"
msgid "Your account has been deleted"
msgstr "Sua conta foi excluída"
#: src/state/queries/video/video.ts:185
msgid "Your account is not yet old enough to upload videos. Please try again later."
msgstr "Sua conta ainda não tem idade suficiente para enviar vídeos. Por favor, tente novamente mais tarde."
#: src/view/screens/Settings/ExportCarDialog.tsx:65
msgid "Your account repository, containing all public data records, can be downloaded as a \"CAR\" file. This file does not include media embeds, such as images, or your private data, which must be fetched separately."
msgstr "O repositório da sua conta, contendo todos os seus dados públicos, pode ser baixado como um arquivo \"CAR\". Este arquivo não inclui imagens ou dados privados, estes devem ser exportados separadamente."
@@ -8559,7 +8576,7 @@ msgstr "O repositório da sua conta, contendo todos os seus dados públicos, pod
msgid "Your birth date"
msgstr "Sua data de nascimento"
#: src/view/com/util/post-embeds/VideoEmbed.web.tsx:167
#: src/view/com/util/post-embeds/VideoEmbed.web.tsx:168
msgid "Your browser does not support the video format. Please try a different browser."
msgstr "Seu navegador não suporta o formato de vídeo. Por favor, tente um navegador diferente."
@@ -8614,7 +8631,7 @@ msgstr "Suas palavras silenciadas"
msgid "Your password has been changed successfully!"
msgstr "Sua senha foi alterada com sucesso!"
#: src/view/com/composer/Composer.tsx:463
#: src/view/com/composer/Composer.tsx:468
msgid "Your post has been published"
msgstr "Seu post foi publicado"
@@ -8630,7 +8647,7 @@ msgstr "Seu perfil"
msgid "Your profile, posts, feeds, and lists will no longer be visible to other Bluesky users. You can reactivate your account at any time by logging in."
msgstr "Seu perfil, postagens, feeds e listas não serão mais visíveis para outros usuários do Bluesky. Você pode reativar sua conta a qualquer momento fazendo login."
#: src/view/com/composer/Composer.tsx:462
#: src/view/com/composer/Composer.tsx:467
msgid "Your reply has been published"
msgstr "Sua resposta foi publicada"
+1 -1
View File
@@ -6237,7 +6237,7 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "Политика конфиденциальности была перемещена в <0/>"
#: src/state/queries/video/video.ts:188
msgid "The selected video is larger than 100MB."
msgid "The selected video is larger than 50MB."
msgstr "Размер выбранного видео превышает 100МБ."
#: src/screens/StarterPack/StarterPackScreen.tsx:713
+2 -2
View File
@@ -7498,7 +7498,7 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "Gizlilik Politikası <0/> konumuna taşındı"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgid "The selected video is larger than 50MB."
msgstr ""
#: src/screens/StarterPack/StarterPackScreen.tsx:713
@@ -8412,7 +8412,7 @@ msgid "Video: {0}"
msgstr ""
#: src/view/com/composer/videos/state.ts:27
#~ msgid "Videos cannot be larger than 100MB"
#~ msgid "Videos cannot be larger than 50MB"
#~ msgstr ""
#: src/screens/Profile/Header/Shell.tsx:113
+2 -2
View File
@@ -7040,7 +7040,7 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "Політика конфіденційності була переміщена до <0/>"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgid "The selected video is larger than 50MB."
msgstr ""
#: src/screens/StarterPack/StarterPackScreen.tsx:713
@@ -7914,7 +7914,7 @@ msgid "Video: {0}"
msgstr ""
#: src/view/com/composer/videos/state.ts:27
#~ msgid "Videos cannot be larger than 100MB"
#~ msgid "Videos cannot be larger than 50MB"
#~ msgstr ""
#: src/screens/Profile/Header/Shell.tsx:113
+2 -2
View File
@@ -6272,8 +6272,8 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "隐私政策已迁移至 <0/>"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgstr "选择的视频大小超过 100MB。"
msgid "The selected video is larger than 50MB."
msgstr "选择的视频大小超过 50MB。"
#: src/screens/StarterPack/StarterPackScreen.tsx:713
msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead."
+2 -2
View File
@@ -6272,8 +6272,8 @@ msgid "The Privacy Policy has been moved to <0/>"
msgstr "隱私政策已移動到 <0/>"
#: src/state/queries/video/video.ts:222
msgid "The selected video is larger than 100MB."
msgstr "選擇的影片檔案大小超過 100MB。"
msgid "The selected video is larger than 50MB."
msgstr "選擇的影片檔案大小超過 50MB。"
#: src/screens/StarterPack/StarterPackScreen.tsx:713
msgid "The starter pack that you are trying to view is invalid. You may delete this starter pack instead."
+15
View File
@@ -39,3 +39,18 @@ export function mimeToExt(mimeType: SupportedMimeTypes | (string & {})) {
throw new Error(`Unsupported mime type: ${mimeType}`)
}
}
export function extToMime(ext: string) {
switch (ext) {
case 'mp4':
return 'video/mp4'
case 'webm':
return 'video/webm'
case 'mpeg':
return 'video/mpeg'
case 'mov':
return 'video/quicktime'
default:
throw new Error(`Unsupported file extension: ${ext}`)
}
}
+6 -1
View File
@@ -180,6 +180,11 @@ export function useUploadVideo({
msg`You've reached your daily limit for video uploads (too many videos)`,
)
break
case 'Account is not old enough to upload videos':
message = _(
msg`Your account is not yet old enough to upload videos. Please try again later.`,
)
break
default:
message = e.message
break
@@ -219,7 +224,7 @@ export function useUploadVideo({
} else if (e instanceof VideoTooLargeError) {
dispatch({
type: 'SetError',
error: _(msg`The selected video is larger than 100MB.`),
error: _(msg`The selected video is larger than 50MB.`),
})
} else {
dispatch({
+4 -2
View File
@@ -1154,10 +1154,12 @@ function VideoUploadToolbar({state}: {state: VideoUploadState}) {
const progress = state.jobStatus?.progress
? state.jobStatus.progress / 100
: state.progress
let wheelProgress = progress === 0 || progress === 1 ? 0.33 : progress
const shouldRotate =
state.status === 'processing' && (progress === 0 || progress === 1)
let wheelProgress = shouldRotate ? 0.33 : progress
const rotate = useDerivedValue(() => {
if (progress === 0 || progress >= 0.99) {
if (shouldRotate) {
return withRepeat(
withTiming(360, {
duration: 2500,
@@ -18,7 +18,7 @@ import {Button} from '#/components/Button'
import {VideoClip_Stroke2_Corner0_Rounded as VideoClipIcon} from '#/components/icons/VideoClip'
import * as Prompt from '#/components/Prompt'
const VIDEO_MAX_DURATION = 60
const VIDEO_MAX_DURATION = 60 * 1000 // 60s in milliseconds
type Props = {
onSelectVideo: (video: ImagePickerAsset) => void
@@ -45,13 +45,20 @@ export function SelectVideoBtn({onSelectVideo, disabled, setError}: Props) {
const response = await launchImageLibraryAsync({
exif: false,
mediaTypes: MediaTypeOptions.Videos,
videoMaxDuration: VIDEO_MAX_DURATION,
quality: 1,
legacy: true,
preferredAssetRepresentationMode:
UIImagePickerPreferredAssetRepresentationMode.Current,
})
if (response.assets && response.assets.length > 0) {
if (isNative) {
if (typeof response.assets[0].duration !== 'number')
throw Error('Asset is not a video')
if (response.assets[0].duration > VIDEO_MAX_DURATION) {
setError(_(msg`Videos must be less than 60 seconds long`))
return
}
}
try {
onSelectVideo(response.assets[0])
} catch (err) {
@@ -12,6 +12,8 @@ import {ExternalEmbedRemoveBtn} from 'view/com/composer/ExternalEmbedRemoveBtn'
import {atoms as a} from '#/alf'
import {PlayButtonIcon} from '#/components/video/PlayButtonIcon'
const MAX_DURATION = 60
export function VideoPreview({
asset,
video,
@@ -36,6 +38,15 @@ export function VideoPreview({
'loadedmetadata',
function () {
setDimensions(this.videoWidth, this.videoHeight)
if (!isNaN(this.duration)) {
if (this.duration > MAX_DURATION) {
Toast.show(
_(msg`Videos must be less than 60 seconds long`),
'xmark',
)
clear()
}
}
},
{signal},
)