@@ -405,56 +405,56 @@ function VideoStreamsDisplay({ streams }: { streams: VideoStream[] }) {
-
+
{stream.colorSpace ? (
<>
-
+
>
) : null}
{stream.colorRange ? (
<>
-
+
>
) : null}
{stream.colorPrimaries ? (
<>
-
+
>
) : null}
{stream.colorTransfer ? (
<>
-
+
>
) : null}
{stream.chromaLocation ? (
<>
-
+
>
) : null}
{stream.bitRate ? (
<>
-
+
>
) : null}
@@ -462,7 +462,7 @@ function VideoStreamsDisplay({ streams }: { streams: VideoStream[] }) {
{stream.duration ? (
<>
@@ -471,7 +471,7 @@ function VideoStreamsDisplay({ streams }: { streams: VideoStream[] }) {
{stream.nbFrames ? (
<>
-
+
>
) : null}
@@ -479,7 +479,7 @@ function VideoStreamsDisplay({ streams }: { streams: VideoStream[] }) {
{stream.refs ? (
<>
@@ -488,35 +488,35 @@ function VideoStreamsDisplay({ streams }: { streams: VideoStream[] }) {
{stream.gopSize ? (
<>
-
+
>
) : null}
{stream.level ? (
<>
-
+
>
) : null}
{stream.fieldOrder && stream.fieldOrder !== 'progressive' ? (
<>
-
+
>
) : null}
{stream.timeBase && stream.timeBase !== '0/0' ? (
<>
-
+
>
) : null}
{stream.rotation && stream.rotation !== 0 ? (
<>
-
+
>
) : null}
@@ -530,7 +530,7 @@ function AudioStreamsDisplay({ streams }: { streams: AudioStream[] }) {
if (streams.length === 0) {
return (
- No audio streams found
+ 未找到音频流
)
}
@@ -546,28 +546,28 @@ function AudioStreamsDisplay({ streams }: { streams: AudioStream[] }) {
className="space-y-4"
>
- Audio Stream {streams.length > 1 ? `${index + 1}` : ''}
+ 音频流 {streams.length > 1 ? `${index + 1}` : ''}
{stream.profile ? (
<>
-
+
>
) : null}
-
+
{stream.channelLayout ? (
<>
-
+
>
) : null}
@@ -575,7 +575,7 @@ function AudioStreamsDisplay({ streams }: { streams: AudioStream[] }) {
{stream.sampleRate ? (
<>
@@ -584,7 +584,7 @@ function AudioStreamsDisplay({ streams }: { streams: AudioStream[] }) {
{stream.sampleFmt ? (
<>
-
+
>
) : null}
@@ -592,7 +592,7 @@ function AudioStreamsDisplay({ streams }: { streams: AudioStream[] }) {
{stream.bitsPerSample ? (
<>
@@ -602,7 +602,7 @@ function AudioStreamsDisplay({ streams }: { streams: AudioStream[] }) {
{stream.bitRate ? (
<>
@@ -612,7 +612,7 @@ function AudioStreamsDisplay({ streams }: { streams: AudioStream[] }) {
{stream.duration ? (
<>
@@ -621,7 +621,7 @@ function AudioStreamsDisplay({ streams }: { streams: AudioStream[] }) {
{stream.tags && stream.tags.length > 0 ? (
-
+
{stream.tags.map(([key, value]) => (
@@ -678,7 +678,7 @@ function SubtitleStreamsDisplay({
if (streams.length === 0) {
return (
- No subtitle streams found
+ 未找到字幕流
)
}
@@ -689,7 +689,7 @@ function SubtitleStreamsDisplay({
format: SubtitleFormat,
) => {
if (!videoPath) {
- toast.error('Video path not available')
+ toast.error('视频路径不可用')
return
}
@@ -704,7 +704,7 @@ function SubtitleStreamsDisplay({
defaultPath: defaultFileName,
filters: [
{
- name: 'Subtitle Files',
+ name: '字幕文件',
extensions: ['srt', 'vtt'],
},
],
@@ -717,7 +717,7 @@ function SubtitleStreamsDisplay({
await extractSubtitle(videoPath, stream.index, filePath, format)
- toast.success(`Subtitle extracted and saved as ${format.toUpperCase()}.`)
+ toast.success(`字幕已提取并保存为 ${format.toUpperCase()}。`)
} catch {
//
} finally {
@@ -740,7 +740,7 @@ function SubtitleStreamsDisplay({
>
- Subtitle Stream {index + 1}
+ 字幕流 {index + 1}
{!isExtractable ? (
@@ -752,10 +752,9 @@ function SubtitleStreamsDisplay({
- This subtitle format ({stream.codec}) cannot be
- converted to SRT. It is likely an image-based format
- (e.g., Blu-ray PGS or DVD VobSub). Thus, it is not
- downloadable.
+ 此字幕格式({stream.codec})无法转换为
+ SRT。它可能是基于图像的格式
+ (例如蓝光 PGS 或 DVD VobSub),因此无法下载。
@@ -780,10 +779,10 @@ function SubtitleStreamsDisplay({
}
>
{downloadingIndex === index
- ? 'Downloading...'
+ ? '下载中...'
: !isExtractable
- ? 'Unsupported'
- : `Download as ${formatConfig.name}`}
+ ? '不支持'
+ : `下载为 ${formatConfig.name}`}
@@ -793,7 +792,7 @@ function SubtitleStreamsDisplay({
{
@@ -814,21 +813,21 @@ function SubtitleStreamsDisplay({
{stream.language ? (
<>
-
+
>
) : null}
{stream.title ? (
<>
-
+
>
) : null}
@@ -840,36 +839,36 @@ function SubtitleStreamsDisplay({
stream.disposition.karaoke ||
stream.disposition.lyrics ? (
-
+
{stream.disposition.default ? (
- - Default
+ - 默认
) : null}
{stream.disposition.forced ? (
- - Forced
+ - 强制
) : null}
{stream.disposition.attachedPic ? (
- - Attached Picture
+ - 附加图片
) : null}
{stream.disposition.comment ? (
- - Comment
+ - 评论
) : null}
{stream.disposition.karaoke ? (
- - Karaoke
+ - 卡拉OK
) : null}
{stream.disposition.lyrics ? (
- - Lyrics
+ - 歌词
) : null}
@@ -886,7 +885,7 @@ function ChaptersDisplay({ chapters }: { chapters: Chapter[] }) {
if (chapters.length === 0) {
return (
- No chapters found
+ 未找到章节
)
}
@@ -902,7 +901,7 @@ function ChaptersDisplay({ chapters }: { chapters: Chapter[] }) {
>
- Chapter {index + 1} {chapter.id ? `(#${chapter.id})` : ''}
+ 章节 {index + 1} {chapter.id ? `(#${chapter.id})` : ''}
{chapter.title && (
@@ -912,21 +911,21 @@ function ChaptersDisplay({ chapters }: { chapters: Chapter[] }) {
-
+
-
+
{chapter.timeBase && chapter.timeBase !== '0/0' ? (
<>
-
+
>
) : null}
diff --git a/src/routes/(root)/ui/app-settings/About.tsx b/src/routes/(root)/ui/app-settings/About.tsx
index 8d3be3a0..4d538d1b 100644
--- a/src/routes/(root)/ui/app-settings/About.tsx
+++ b/src/routes/(root)/ui/app-settings/About.tsx
@@ -7,7 +7,7 @@ function About() {
return (
@@ -26,7 +26,7 @@ function About() {
- Compress any image/video into a tiny size.
+ 将图片/视频压缩到极小体积。
v{window.__appVersion ?? ''}
@@ -34,8 +34,8 @@ function About() {
- Made with {' '}
- in public by{' '}
+ 用 {' '}
+ 公开构建,由{' '}
Code For Real⚡
@@ -50,13 +50,13 @@ function About() {
href="https://github.com/codeforreal1/compressO"
className="flex items-center gap-1"
>
- Free and open-source{' '}
+ 免费且开源{' '}
- Licensed under AGPL-3.0
+ 基于 AGPL-3.0 许可证
diff --git a/src/routes/(root)/ui/app-settings/Credits.tsx b/src/routes/(root)/ui/app-settings/Credits.tsx
index 9c3e2113..04442a1b 100644
--- a/src/routes/(root)/ui/app-settings/Credits.tsx
+++ b/src/routes/(root)/ui/app-settings/Credits.tsx
@@ -9,13 +9,12 @@ export default function Credits() {
- CompressO would not be possible without these incredible open-source
- tools and libraries:
+ CompressO 的诞生离不开这些优秀的开源工具和库:
@@ -35,7 +34,7 @@ export default function Credits() {
href="https://ffmpeg.org/"
className="text-xs text-primary hover:underline"
>
- Website
+ 官网
- Website
+ 官网
- Website
+ 官网
- Complete third-party notices and licenses is available{' '}
+ 完整的第三方声明和许可证请查看{' '}
- here
+ 这里
diff --git a/src/routes/(root)/ui/app-settings/Setting.tsx b/src/routes/(root)/ui/app-settings/Setting.tsx
index 9c9cd9af..cea681e0 100644
--- a/src/routes/(root)/ui/app-settings/Setting.tsx
+++ b/src/routes/(root)/ui/app-settings/Setting.tsx
@@ -43,8 +43,8 @@ function Setting() {