From 42468c13b6aef1ea93f2bd400223c08f64eaf711 Mon Sep 17 00:00:00 2001 From: Lorenzo Lancia Date: Fri, 24 Apr 2026 18:09:42 +0200 Subject: [PATCH] fix --- src/components/video-editor/VideoEditor.tsx | 7 +- src/i18n/locales/es/timeline.json | 38 +++++----- src/i18n/locales/fr/timeline.json | 32 ++++---- src/i18n/locales/ko-KR/timeline.json | 76 +++++++++---------- src/i18n/locales/tr/timeline.json | 82 ++++++++++----------- src/i18n/locales/zh-CN/timeline.json | 82 ++++++++++----------- src/i18n/locales/zh-TW/timeline.json | 82 ++++++++++----------- 7 files changed, 199 insertions(+), 200 deletions(-) diff --git a/src/components/video-editor/VideoEditor.tsx b/src/components/video-editor/VideoEditor.tsx index 74cf6c56..9bcfe0b0 100644 --- a/src/components/video-editor/VideoEditor.tsx +++ b/src/components/video-editor/VideoEditor.tsx @@ -1118,7 +1118,7 @@ export default function VideoEditor() { selectRegion: (id: string) => void; errorTitle: string; errorDescription: string; - }) { + }): void { const hasConflict = config.existingRegions.some((region) => spansOverlap(region.startMs, region.endMs, targetStart, targetEnd), ); @@ -1126,7 +1126,7 @@ export default function VideoEditor() { toast.error(config.errorTitle, { description: config.errorDescription, }); - return true; + return; } const id = config.createId(); @@ -1134,7 +1134,6 @@ export default function VideoEditor() { clearTimelineSelection(); config.selectRegion(id); notifyPasted(); - return true; } if (timelineClipboard.kind === "annotation" || timelineClipboard.kind === "blur") { @@ -2158,7 +2157,7 @@ export default function VideoEditor() { !!selectedBlurId || !!selectedSpeedId } - canPasteTimelineItem={!!timelineClipboard} + canPasteTimelineItem={!!timelineClipboard && duration > 0} onCopySelectedItem={handleCopySelectedTimelineItem} onPasteTimelineItem={handlePasteTimelineItem} aspectRatio={aspectRatio} diff --git a/src/i18n/locales/es/timeline.json b/src/i18n/locales/es/timeline.json index cbc4408d..52a59c6a 100644 --- a/src/i18n/locales/es/timeline.json +++ b/src/i18n/locales/es/timeline.json @@ -3,16 +3,16 @@ "addZoom": "Agregar zoom (Z)", "suggestZooms": "Sugerir zooms desde el cursor", "addTrim": "Agregar recorte (T)", - "addAnnotation": "Agregar anotación (A)", + "addAnnotation": "Agregar anotación (A)", "addSpeed": "Agregar velocidad (S)", "addBlur": "Agregar desenfoque (B)" }, "hints": { "pressZoom": "Presiona Z para agregar zoom", "pressTrim": "Presiona T para agregar recorte", - "pressAnnotation": "Presiona A para agregar anotación", + "pressAnnotation": "Presiona A para agregar anotación", "pressSpeed": "Presiona S para agregar velocidad", - "pressBlur": "Presiona B para agregar una región de desenfoque" + "pressBlur": "Presiona B para agregar una región de desenfoque" }, "labels": { "pan": "Desplazar", @@ -20,9 +20,9 @@ "zoomItem": "Zoom {{index}}", "trimItem": "Recorte {{index}}", "speedItem": "Velocidad {{index}}", - "annotationItem": "Anotación", + "annotationItem": "Anotación", "imageItem": "Imagen", - "emptyText": "Texto vacío", + "emptyText": "Texto vacío", "blurItem": "Desenfoque {{index}}" }, "emptyState": { @@ -30,28 +30,28 @@ "dragAndDrop": "Arrastra y suelta un video para comenzar a editar" }, "errors": { - "cannotPlaceZoom": "No se puede colocar el zoom aquí", - "zoomExistsAtLocation": "Ya existe un zoom en esta ubicación o no hay suficiente espacio disponible.", - "zoomSuggestionUnavailable": "El controlador de sugerencias de zoom no está disponible", - "noCursorTelemetry": "No hay telemetría de cursor disponible", + "cannotPlaceZoom": "No se puede colocar el zoom aquí", + "zoomExistsAtLocation": "Ya existe un zoom en esta ubicación o no hay suficiente espacio disponible.", + "zoomSuggestionUnavailable": "El controlador de sugerencias de zoom no está disponible", + "noCursorTelemetry": "No hay telemetría de cursor disponible", "noCursorTelemetryDescription": "Graba una captura de pantalla primero para generar sugerencias basadas en el cursor.", - "noUsableTelemetry": "No hay telemetría de cursor utilizable", - "noUsableTelemetryDescription": "La grabación no incluye suficientes datos de movimiento del cursor.", + "noUsableTelemetry": "No hay telemetría de cursor utilizable", + "noUsableTelemetryDescription": "La grabación no incluye suficientes datos de movimiento del cursor.", "noDwellMoments": "No se encontraron momentos claros de pausa del cursor", - "noDwellMomentsDescription": "Intenta una grabación con pausas más lentas del cursor en acciones importantes.", + "noDwellMomentsDescription": "Intenta una grabación con pausas más lentas del cursor en acciones importantes.", "noAutoZoomSlots": "No hay espacios de auto-zoom disponibles", "noAutoZoomSlotsDescription": "Los puntos de pausa detectados se superponen con regiones de zoom existentes.", - "cannotPlaceTrim": "No se puede colocar el recorte aquí", - "trimExistsAtLocation": "Ya existe un recorte en esta ubicación o no hay suficiente espacio disponible.", - "cannotPlaceSpeed": "No se puede colocar la velocidad aquí", - "speedExistsAtLocation": "Ya existe una región de velocidad en esta ubicación o no hay suficiente espacio disponible." + "cannotPlaceTrim": "No se puede colocar el recorte aquí", + "trimExistsAtLocation": "Ya existe un recorte en esta ubicación o no hay suficiente espacio disponible.", + "cannotPlaceSpeed": "No se puede colocar la velocidad aquí", + "speedExistsAtLocation": "Ya existe una región de velocidad en esta ubicación o no hay suficiente espacio disponible." }, "success": { - "addedZoomSuggestions": "Se agregó {{count}} sugerencia de zoom basada en el cursor", + "addedZoomSuggestions": "Se agregó {{count}} sugerencia de zoom basada en el cursor", "addedZoomSuggestionsPlural": "Se agregaron {{count}} sugerencias de zoom basadas en el cursor" }, "feedback": { - "copied": "Copied!", - "pasted": "Pasted!" + "copied": "¡Copiado!", + "pasted": "¡Pegado!" } } diff --git a/src/i18n/locales/fr/timeline.json b/src/i18n/locales/fr/timeline.json index 294f340f..001516bd 100644 --- a/src/i18n/locales/fr/timeline.json +++ b/src/i18n/locales/fr/timeline.json @@ -1,7 +1,7 @@ { "buttons": { "addZoom": "Ajouter un zoom (Z)", - "suggestZooms": "Suggérer des zooms depuis le curseur", + "suggestZooms": "Suggérer des zooms depuis le curseur", "addTrim": "Ajouter une coupe (T)", "addAnnotation": "Ajouter une annotation (A)", "addSpeed": "Ajouter une vitesse (S)", @@ -26,32 +26,32 @@ "blurItem": "Flou {{index}}" }, "emptyState": { - "noVideo": "Aucune vidéo chargée", - "dragAndDrop": "Glissez-déposez une vidéo pour commencer à éditer" + "noVideo": "Aucune vidéo chargée", + "dragAndDrop": "Glissez-déposez une vidéo pour commencer à éditer" }, "errors": { "cannotPlaceZoom": "Impossible de placer le zoom ici", - "zoomExistsAtLocation": "Un zoom existe déjà à cet emplacement ou l\u0027espace disponible est insuffisant.", + "zoomExistsAtLocation": "Un zoom existe déjà à cet emplacement ou l'espace disponible est insuffisant.", "zoomSuggestionUnavailable": "Gestionnaire de suggestions de zoom non disponible", - "noCursorTelemetry": "Aucune télémétrie de curseur disponible", - "noCursorTelemetryDescription": "Enregistrez d\u0027abord un screencast pour générer des suggestions basées sur le curseur.", - "noUsableTelemetry": "Aucune télémétrie de curseur utilisable", - "noUsableTelemetryDescription": "L\u0027enregistrement ne contient pas suffisamment de données de mouvement du curseur.", - "noDwellMoments": "Aucun moment de pause du curseur trouvé", + "noCursorTelemetry": "Aucune télémétrie de curseur disponible", + "noCursorTelemetryDescription": "Enregistrez d'abord un screencast pour générer des suggestions basées sur le curseur.", + "noUsableTelemetry": "Aucune télémétrie de curseur utilisable", + "noUsableTelemetryDescription": "L'enregistrement ne contient pas suffisamment de données de mouvement du curseur.", + "noDwellMoments": "Aucun moment de pause du curseur trouvé", "noDwellMomentsDescription": "Essayez un enregistrement avec des pauses plus lentes du curseur sur les actions importantes.", "noAutoZoomSlots": "Aucun emplacement de zoom automatique disponible", - "noAutoZoomSlotsDescription": "Les points de pause détectés chevauchent des régions de zoom existantes.", + "noAutoZoomSlotsDescription": "Les points de pause détectés chevauchent des régions de zoom existantes.", "cannotPlaceTrim": "Impossible de placer la coupe ici", - "trimExistsAtLocation": "Une coupe existe déjà à cet emplacement ou l\u0027espace disponible est insuffisant.", + "trimExistsAtLocation": "Une coupe existe déjà à cet emplacement ou l'espace disponible est insuffisant.", "cannotPlaceSpeed": "Impossible de placer la vitesse ici", - "speedExistsAtLocation": "Une région de vitesse existe déjà à cet emplacement ou l\u0027espace disponible est insuffisant." + "speedExistsAtLocation": "Une région de vitesse existe déjà à cet emplacement ou l'espace disponible est insuffisant." }, "success": { - "addedZoomSuggestions": "{{count}} suggestion de zoom basée sur le curseur ajoutée", - "addedZoomSuggestionsPlural": "{{count}} suggestions de zoom basées sur le curseur ajoutées" + "addedZoomSuggestions": "{{count}} suggestion de zoom basée sur le curseur ajoutée", + "addedZoomSuggestionsPlural": "{{count}} suggestions de zoom basées sur le curseur ajoutées" }, "feedback": { - "copied": "Copied!", - "pasted": "Pasted!" + "copied": "Copié !", + "pasted": "Collé !" } } diff --git a/src/i18n/locales/ko-KR/timeline.json b/src/i18n/locales/ko-KR/timeline.json index ee67a9fc..b18067c2 100644 --- a/src/i18n/locales/ko-KR/timeline.json +++ b/src/i18n/locales/ko-KR/timeline.json @@ -1,54 +1,54 @@ { "buttons": { - "addZoom": "줌 추가 (Z)", - "suggestZooms": "커서 기반 줌 제안", - "addTrim": "트림 추가 (T)", - "addAnnotation": "주석 추가 (A)", - "addSpeed": "속도 추가 (S)" + "addZoom": "줌 추가 (Z)", + "suggestZooms": "커서 기반 줌 제안", + "addTrim": "트림 추가 (T)", + "addAnnotation": "주석 추가 (A)", + "addSpeed": "속도 추가 (S)" }, "hints": { - "pressZoom": "Z를 눌러 줌 추가", - "pressTrim": "T를 눌러 트림 추가", - "pressAnnotation": "A를 눌러 주석 추가", - "pressSpeed": "S를 눌러 속도 추가" + "pressZoom": "Z를 눌러 줌 추가", + "pressTrim": "T를 눌러 트림 추가", + "pressAnnotation": "A를 눌러 주석 추가", + "pressSpeed": "S를 눌러 속도 추가" }, "labels": { - "pan": "이동", - "zoom": "줌", - "zoomItem": "줌 {{index}}", - "trimItem": "트림 {{index}}", - "speedItem": "속도 {{index}}", - "annotationItem": "주석", - "imageItem": "이미지", - "emptyText": "빈 텍스트" + "pan": "이동", + "zoom": "줌", + "zoomItem": "줌 {{index}}", + "trimItem": "트림 {{index}}", + "speedItem": "속도 {{index}}", + "annotationItem": "주석", + "imageItem": "이미지", + "emptyText": "빈 텍스트" }, "emptyState": { - "noVideo": "불러온 비디오 없음", - "dragAndDrop": "비디오를 드래그 앤 드롭해서 편집을 시작하세요" + "noVideo": "불러온 비디오 없음", + "dragAndDrop": "비디오를 드래그 앤 드롭해서 편집을 시작하세요" }, "errors": { - "cannotPlaceZoom": "이 위치에 줌을 추가할 수 없습니다", - "zoomExistsAtLocation": "이 위치에 이미 줌이 있거나 공간이 부족합니다.", - "zoomSuggestionUnavailable": "줌 제안 기능을 사용할 수 없습니다", - "noCursorTelemetry": "커서 데이터가 없습니다", - "noCursorTelemetryDescription": "커서 기반 제안을 생성하려면 먼저 화면을 녹화해 주세요.", - "noUsableTelemetry": "사용 가능한 커서 데이터가 없습니다", - "noUsableTelemetryDescription": "녹화에 충분한 커서 이동 데이터가 포함되어 있지 않습니다.", - "noDwellMoments": "명확한 커서 ì •ì§€ 구간을 찾을 수 없습니다", - "noDwellMomentsDescription": "중요한 동작에서 커서를 천천히 멈추며 녹화해 보세요.", - "noAutoZoomSlots": "자동 줌 슬롯이 없습니다", - "noAutoZoomSlotsDescription": "감지된 ì •ì§€ 지점이 기존 줌 구간과 겹칩니다.", - "cannotPlaceTrim": "이 위치에 트림을 추가할 수 없습니다", - "trimExistsAtLocation": "이 위치에 이미 트림이 있거나 공간이 부족합니다.", - "cannotPlaceSpeed": "이 위치에 속도를 추가할 수 없습니다", - "speedExistsAtLocation": "이 위치에 이미 속도 구간이 있거나 공간이 부족합니다." + "cannotPlaceZoom": "이 위치에 줌을 추가할 수 없습니다", + "zoomExistsAtLocation": "이 위치에 이미 줌이 있거나 공간이 부족합니다.", + "zoomSuggestionUnavailable": "줌 제안 기능을 사용할 수 없습니다", + "noCursorTelemetry": "커서 데이터가 없습니다", + "noCursorTelemetryDescription": "커서 기반 제안을 생성하려면 먼저 화면을 녹화해 주세요.", + "noUsableTelemetry": "사용 가능한 커서 데이터가 없습니다", + "noUsableTelemetryDescription": "녹화에 충분한 커서 이동 데이터가 포함되어 있지 않습니다.", + "noDwellMoments": "명확한 커서 정지 구간을 찾을 수 없습니다", + "noDwellMomentsDescription": "중요한 동작에서 커서를 천천히 멈추며 녹화해 보세요.", + "noAutoZoomSlots": "자동 줌 슬롯이 없습니다", + "noAutoZoomSlotsDescription": "감지된 정지 지점이 기존 줌 구간과 겹칩니다.", + "cannotPlaceTrim": "이 위치에 트림을 추가할 수 없습니다", + "trimExistsAtLocation": "이 위치에 이미 트림이 있거나 공간이 부족합니다.", + "cannotPlaceSpeed": "이 위치에 속도를 추가할 수 없습니다", + "speedExistsAtLocation": "이 위치에 이미 속도 구간이 있거나 공간이 부족합니다." }, "success": { - "addedZoomSuggestions": "커서 기반 줌 제안 {{count}}개가 추가되었습니다", - "addedZoomSuggestionsPlural": "커서 기반 줌 제안 {{count}}개가 추가되었습니다" + "addedZoomSuggestions": "커서 기반 줌 제안 {{count}}개가 추가되었습니다", + "addedZoomSuggestionsPlural": "커서 기반 줌 제안 {{count}}개가 추가되었습니다" }, "feedback": { - "copied": "Copied!", - "pasted": "Pasted!" + "copied": "복사됨!", + "pasted": "붙여넣음!" } } diff --git a/src/i18n/locales/tr/timeline.json b/src/i18n/locales/tr/timeline.json index 761d82ff..e19368c2 100644 --- a/src/i18n/locales/tr/timeline.json +++ b/src/i18n/locales/tr/timeline.json @@ -1,57 +1,57 @@ { "buttons": { - "addZoom": "YakınlaÅŸtırma Ekle (Z)", - "suggestZooms": "İmleçten YakınlaÅŸtırma Öner", - "addTrim": "Kırpma Ekle (T)", - "addAnnotation": "Açıklama Ekle (A)", - "addSpeed": "Hız Ekle (S)", - "addBlur": "Bulanık ekle (B)" + "addZoom": "Yakınlaştırma Ekle (Z)", + "suggestZooms": "İmleçten Yakınlaştırma Öner", + "addTrim": "Kırpma Ekle (T)", + "addAnnotation": "Açıklama Ekle (A)", + "addSpeed": "Hız Ekle (S)", + "addBlur": "Bulanık ekle (B)" }, "hints": { - "pressZoom": "YakınlaÅŸtırma eklemek için Z tuÅŸuna basın", - "pressTrim": "Kırpma eklemek için T tuÅŸuna basın", - "pressAnnotation": "Açıklama eklemek için A tuÅŸuna basın", - "pressSpeed": "Hız eklemek için S tuÅŸuna basın", - "pressBlur": "Bulanık bölge eklemek için B tuÅŸuna basın" + "pressZoom": "Yakınlaştırma eklemek için Z tuşuna basın", + "pressTrim": "Kırpma eklemek için T tuşuna basın", + "pressAnnotation": "Açıklama eklemek için A tuşuna basın", + "pressSpeed": "Hız eklemek için S tuşuna basın", + "pressBlur": "Bulanık bölge eklemek için B tuşuna basın" }, "labels": { - "pan": "Kaydır", - "zoom": "YakınlaÅŸtır", - "zoomItem": "YakınlaÅŸtırma {{index}}", - "trimItem": "Kırpma {{index}}", - "speedItem": "Hız {{index}}", - "annotationItem": "Açıklama", - "imageItem": "Görüntü", - "emptyText": "BoÅŸ metin", - "blurItem": "Bulanık {{index}}" + "pan": "Kaydır", + "zoom": "Yakınlaştır", + "zoomItem": "Yakınlaştırma {{index}}", + "trimItem": "Kırpma {{index}}", + "speedItem": "Hız {{index}}", + "annotationItem": "Açıklama", + "imageItem": "Görüntü", + "emptyText": "Boş metin", + "blurItem": "Bulanık {{index}}" }, "emptyState": { - "noVideo": "Video Yüklenmedi", - "dragAndDrop": "Düzenlemeye baÅŸlamak için bir video sürükleyip bırakın" + "noVideo": "Video Yüklenmedi", + "dragAndDrop": "Düzenlemeye başlamak için bir video sürükleyip bırakın" }, "errors": { - "cannotPlaceZoom": "Buraya yakınlaÅŸtırma yerleÅŸtirilemiyor", - "zoomExistsAtLocation": "Bu konumda zaten bir yakınlaÅŸtırma var veya yeterli alan yok.", - "zoomSuggestionUnavailable": "YakınlaÅŸtırma öneri iÅŸleyicisi kullanılamıyor", - "noCursorTelemetry": "İmleç telemetrisi mevcut deÄŸil", - "noCursorTelemetryDescription": "İmleç tabanlı öneriler oluÅŸturmak için önce bir ekran kaydı yapın.", - "noUsableTelemetry": "Kullanılabilir imleç telemetrisi yok", - "noUsableTelemetryDescription": "Kayıt yeterli imleç hareketi verisi içermiyor.", - "noDwellMoments": "Belirgin imleç bekleme anları bulunamadı", - "noDwellMomentsDescription": "Önemli iÅŸlemlerde daha yavaÅŸ imleç duraklamaları olan bir kayıt deneyin.", - "noAutoZoomSlots": "Otomatik yakınlaÅŸtırma alanı yok", - "noAutoZoomSlotsDescription": "Algılanan bekleme noktaları mevcut yakınlaÅŸtırma bölgeleriyle çakışıyor.", - "cannotPlaceTrim": "Buraya kırpma yerleÅŸtirilemiyor", - "trimExistsAtLocation": "Bu konumda zaten bir kırpma var veya yeterli alan yok.", - "cannotPlaceSpeed": "Buraya hız yerleÅŸtirilemiyor", - "speedExistsAtLocation": "Bu konumda zaten bir hız bölgesi var veya yeterli alan yok." + "cannotPlaceZoom": "Buraya yakınlaştırma yerleştirilemiyor", + "zoomExistsAtLocation": "Bu konumda zaten bir yakınlaştırma var veya yeterli alan yok.", + "zoomSuggestionUnavailable": "Yakınlaştırma öneri işleyicisi kullanılamıyor", + "noCursorTelemetry": "İmleç telemetrisi mevcut değil", + "noCursorTelemetryDescription": "İmleç tabanlı öneriler oluşturmak için önce bir ekran kaydı yapın.", + "noUsableTelemetry": "Kullanılabilir imleç telemetrisi yok", + "noUsableTelemetryDescription": "Kayıt yeterli imleç hareketi verisi içermiyor.", + "noDwellMoments": "Belirgin imleç bekleme anları bulunamadı", + "noDwellMomentsDescription": "Önemli işlemlerde daha yavaş imleç duraklamaları olan bir kayıt deneyin.", + "noAutoZoomSlots": "Otomatik yakınlaştırma alanı yok", + "noAutoZoomSlotsDescription": "Algılanan bekleme noktaları mevcut yakınlaştırma bölgeleriyle çakışıyor.", + "cannotPlaceTrim": "Buraya kırpma yerleştirilemiyor", + "trimExistsAtLocation": "Bu konumda zaten bir kırpma var veya yeterli alan yok.", + "cannotPlaceSpeed": "Buraya hız yerleştirilemiyor", + "speedExistsAtLocation": "Bu konumda zaten bir hız bölgesi var veya yeterli alan yok." }, "success": { - "addedZoomSuggestions": "{{count}} imleç tabanlı yakınlaÅŸtırma önerisi eklendi", - "addedZoomSuggestionsPlural": "{{count}} imleç tabanlı yakınlaÅŸtırma önerisi eklendi" + "addedZoomSuggestions": "{{count}} imleç tabanlı yakınlaştırma önerisi eklendi", + "addedZoomSuggestionsPlural": "{{count}} imleç tabanlı yakınlaştırma önerisi eklendi" }, "feedback": { - "copied": "Copied!", - "pasted": "Pasted!" + "copied": "Kopyalandı!", + "pasted": "Yapıştırıldı!" } } diff --git a/src/i18n/locales/zh-CN/timeline.json b/src/i18n/locales/zh-CN/timeline.json index def3d87d..ab35e508 100644 --- a/src/i18n/locales/zh-CN/timeline.json +++ b/src/i18n/locales/zh-CN/timeline.json @@ -1,57 +1,57 @@ { "buttons": { - "addZoom": "添加缩放 (Z)", - "suggestZooms": "根据光标建议缩放", - "addTrim": "添加剪辑 (T)", - "addAnnotation": "添加标注 (A)", - "addSpeed": "添加速度 (S)", - "addBlur": "添加模糊 (B)" + "addZoom": "添加缩放 (Z)", + "suggestZooms": "根据光标建议缩放", + "addTrim": "添加剪辑 (T)", + "addAnnotation": "添加标注 (A)", + "addSpeed": "添加速度 (S)", + "addBlur": "添加模糊 (B)" }, "hints": { - "pressZoom": "按 Z 添加缩放", - "pressTrim": "按 T 添加剪辑", - "pressAnnotation": "按 A 添加标注", - "pressSpeed": "按 S 添加速度", - "pressBlur": "按 B 添加模糊区域" + "pressZoom": "按 Z 添加缩放", + "pressTrim": "按 T 添加剪辑", + "pressAnnotation": "按 A 添加标注", + "pressSpeed": "按 S 添加速度", + "pressBlur": "按 B 添加模糊区域" }, "labels": { - "pan": "平移", - "zoom": "缩放", - "zoomItem": "缩放 {{index}}", - "trimItem": "剪辑 {{index}}", - "speedItem": "速度 {{index}}", - "annotationItem": "标注", - "imageItem": "图片", - "emptyText": "空文本", - "blurItem": "模糊 {{index}}" + "pan": "平移", + "zoom": "缩放", + "zoomItem": "缩放 {{index}}", + "trimItem": "剪辑 {{index}}", + "speedItem": "速度 {{index}}", + "annotationItem": "标注", + "imageItem": "图片", + "emptyText": "空文本", + "blurItem": "模糊 {{index}}" }, "emptyState": { - "noVideo": "未加载视频", - "dragAndDrop": "拖放视频以开始编辑" + "noVideo": "未加载视频", + "dragAndDrop": "拖放视频以开始编辑" }, "errors": { - "cannotPlaceZoom": "无法在此处放置缩放", - "zoomExistsAtLocation": "此位置已存在缩放或没有足够的空间。", - "zoomSuggestionUnavailable": "缩放建议处理器不可用", - "noCursorTelemetry": "无可用的光标遥测数据", - "noCursorTelemetryDescription": "请先录制一段屏幕录像以生成基于光标的建议。", - "noUsableTelemetry": "无可用的光标遥测数据", - "noUsableTelemetryDescription": "录制内容没有包含足够的光标移动数据。", - "noDwellMoments": "未找到明确的光标停留时刻", - "noDwellMomentsDescription": "请尝试在重要操作上进行较慢光标停留的录制。", - "noAutoZoomSlots": "无可用的自动缩放位置", - "noAutoZoomSlotsDescription": "检测到的停留点与现有缩放区域重叠。", - "cannotPlaceTrim": "无法在此处放置剪辑", - "trimExistsAtLocation": "此位置已存在剪辑或没有足够的空间。", - "cannotPlaceSpeed": "无法在此处放置速度", - "speedExistsAtLocation": "此位置已存在速度区域或没有足够的空间。" + "cannotPlaceZoom": "无法在此处放置缩放", + "zoomExistsAtLocation": "此位置已存在缩放或没有足够的空间。", + "zoomSuggestionUnavailable": "缩放建议处理器不可用", + "noCursorTelemetry": "无可用的光标遥测数据", + "noCursorTelemetryDescription": "请先录制一段屏幕录像以生成基于光标的建议。", + "noUsableTelemetry": "无可用的光标遥测数据", + "noUsableTelemetryDescription": "录制内容没有包含足够的光标移动数据。", + "noDwellMoments": "未找到明确的光标停留时刻", + "noDwellMomentsDescription": "请尝试在重要操作上进行较慢光标停留的录制。", + "noAutoZoomSlots": "无可用的自动缩放位置", + "noAutoZoomSlotsDescription": "检测到的停留点与现有缩放区域重叠。", + "cannotPlaceTrim": "无法在此处放置剪辑", + "trimExistsAtLocation": "此位置已存在剪辑或没有足够的空间。", + "cannotPlaceSpeed": "无法在此处放置速度", + "speedExistsAtLocation": "此位置已存在速度区域或没有足够的空间。" }, "success": { - "addedZoomSuggestions": "已添加 {{count}} 个基于光标的缩放建议", - "addedZoomSuggestionsPlural": "已添加 {{count}} 个基于光标的缩放建议" + "addedZoomSuggestions": "已添加 {{count}} 个基于光标的缩放建议", + "addedZoomSuggestionsPlural": "已添加 {{count}} 个基于光标的缩放建议" }, "feedback": { - "copied": "Copied!", - "pasted": "Pasted!" + "copied": "已复制!", + "pasted": "已粘贴!" } } diff --git a/src/i18n/locales/zh-TW/timeline.json b/src/i18n/locales/zh-TW/timeline.json index 783f6548..66725054 100644 --- a/src/i18n/locales/zh-TW/timeline.json +++ b/src/i18n/locales/zh-TW/timeline.json @@ -1,57 +1,57 @@ { "buttons": { - "addZoom": "新增縮放 (Z)", - "suggestZooms": "根據游標建議縮放", - "addTrim": "新增剪輯 (T)", - "addAnnotation": "新增標註 (A)", - "addSpeed": "新增速度 (S)", - "addBlur": "新增模糊 (B)" + "addZoom": "新增縮放 (Z)", + "suggestZooms": "根據游標建議縮放", + "addTrim": "新增剪輯 (T)", + "addAnnotation": "新增標註 (A)", + "addSpeed": "新增速度 (S)", + "addBlur": "新增模糊 (B)" }, "hints": { - "pressZoom": "按 Z 新增縮放", - "pressTrim": "按 T 新增剪輯", - "pressAnnotation": "按 A 新增標註", - "pressSpeed": "按 S 新增速度", - "pressBlur": "按 B 新增模糊區域" + "pressZoom": "按 Z 新增縮放", + "pressTrim": "按 T 新增剪輯", + "pressAnnotation": "按 A 新增標註", + "pressSpeed": "按 S 新增速度", + "pressBlur": "按 B 新增模糊區域" }, "labels": { - "pan": "平移", - "zoom": "縮放", - "zoomItem": "縮放 {{index}}", - "trimItem": "剪輯 {{index}}", - "speedItem": "速度 {{index}}", - "annotationItem": "標註", - "imageItem": "圖片", - "emptyText": "空文字", - "blurItem": "模糊 {{index}}" + "pan": "平移", + "zoom": "縮放", + "zoomItem": "縮放 {{index}}", + "trimItem": "剪輯 {{index}}", + "speedItem": "速度 {{index}}", + "annotationItem": "標註", + "imageItem": "圖片", + "emptyText": "空文字", + "blurItem": "模糊 {{index}}" }, "emptyState": { - "noVideo": "未載入影片", - "dragAndDrop": "拖放影片以開始編輯" + "noVideo": "未載入影片", + "dragAndDrop": "拖放影片以開始編輯" }, "errors": { - "cannotPlaceZoom": "無法在此處放置縮放", - "zoomExistsAtLocation": "此位置已存在縮放或沒有足夠的空間。", - "zoomSuggestionUnavailable": "縮放建議處理器不可用", - "noCursorTelemetry": "無可用的游標遙測資料", - "noCursorTelemetryDescription": "請先錄製一段螢幕錄影以產生基於游標的建議。", - "noUsableTelemetry": "無可用的游標遙測資料", - "noUsableTelemetryDescription": "錄製內容沒有包含足夠的游標移動資料。", - "noDwellMoments": "未找到明確的游標停留時刻", - "noDwellMomentsDescription": "請嘗試在重要操作上進行較慢游標停留的錄製。", - "noAutoZoomSlots": "無可用的自動縮放位置", - "noAutoZoomSlotsDescription": "偵測到的停留點與現有縮放區域重疊。", - "cannotPlaceTrim": "無法在此處放置剪輯", - "trimExistsAtLocation": "此位置已存在剪輯或沒有足夠的空間。", - "cannotPlaceSpeed": "無法在此處放置速度", - "speedExistsAtLocation": "此位置已存在速度區域或沒有足夠的空間。" + "cannotPlaceZoom": "無法在此處放置縮放", + "zoomExistsAtLocation": "此位置已存在縮放或沒有足夠的空間。", + "zoomSuggestionUnavailable": "縮放建議處理器不可用", + "noCursorTelemetry": "無可用的游標遙測資料", + "noCursorTelemetryDescription": "請先錄製一段螢幕錄影以產生基於游標的建議。", + "noUsableTelemetry": "無可用的游標遙測資料", + "noUsableTelemetryDescription": "錄製內容沒有包含足夠的游標移動資料。", + "noDwellMoments": "未找到明確的游標停留時刻", + "noDwellMomentsDescription": "請嘗試在重要操作上進行較慢游標停留的錄製。", + "noAutoZoomSlots": "無可用的自動縮放位置", + "noAutoZoomSlotsDescription": "偵測到的停留點與現有縮放區域重疊。", + "cannotPlaceTrim": "無法在此處放置剪輯", + "trimExistsAtLocation": "此位置已存在剪輯或沒有足夠的空間。", + "cannotPlaceSpeed": "無法在此處放置速度", + "speedExistsAtLocation": "此位置已存在速度區域或沒有足夠的空間。" }, "success": { - "addedZoomSuggestions": "已新增 {{count}} 個基於游標的縮放建議", - "addedZoomSuggestionsPlural": "已新增 {{count}} 個基於游標的縮放建議" + "addedZoomSuggestions": "已新增 {{count}} 個基於游標的縮放建議", + "addedZoomSuggestionsPlural": "已新增 {{count}} 個基於游標的縮放建議" }, "feedback": { - "copied": "Copied!", - "pasted": "Pasted!" + "copied": "已複製!", + "pasted": "已貼上!" } }