/** * Localized strings for MotionDock and its motion-timeline sub-components. * Used in: app/components/design/MotionDock.tsx (the bottom motion timeline * dock in the Design Studio — toolbar, layer sidebar, keyframe/segment * affordances, and the Curve/Spring easing panel). */ export const motionDockOverrides = { "en-US": { designEditor: { motion: { dockLabel: "Motion dock", collapseDock: "Collapse motion dock", play: "Play", pause: "Pause", resetPlayhead: "Reset playhead", reset: "Reset", addKeyframeAtPlayhead: "Add keyframe at playhead", addKeyframeAtPlayheadForProperty: "Add keyframe at playhead ({{property}})", selectPropertyRowFirst: "Select a property row first", currentTimeMs: "Current time in ms", duration: "Duration", durationMs: "Duration in ms", playbackMode: "Playback mode: {{mode}}", playback: "Playback: {{mode}}", loop: "Loop", once: "Once", pingPong: "Ping-pong", toggleAutoKeyframe: "Toggle auto-keyframe", autoKeyframe: "Auto-keyframe", savingMotion: "Saving motion", emptyStateAnimate: "Animate", emptyStatePickProperty: ". Pick a property to add the first track.", emptyStateNoSelection: "Select an element on the canvas, then add a track to animate it.", addMotion: "Add motion", selectElementFirst: "Select an element on the canvas first", animateLayer: 'Animate "{{label}}"', more: "More", addKeyframe: "Add keyframe", trackExists: 'A "{{property}}" track already exists for {{label}}. Edit its keyframes in the timeline instead.', layerAnimationSpan: "{{label}} animation span", keyframeAt: "Keyframe at {{ms}}ms", deleteKeyframe: "Delete keyframe", segmentEasing: "Segment easing: {{ease}}", curveTab: "Curve", springTab: "Spring", customBezier: "Custom bezier", customSpring: "Custom spring", bounce: "Bounce", bezierCurveEditor: "Bezier curve editor", springCurvePreview: "Spring curve preview", defaultEase: "Default", }, }, }, "zh-CN": { designEditor: { motion: { dockLabel: "运动面板", collapseDock: "收起运动面板", play: "播放", pause: "暂停", resetPlayhead: "重置播放头", reset: "重置", addKeyframeAtPlayhead: "在播放头处添加关键帧", addKeyframeAtPlayheadForProperty: "在播放头处添加关键帧({{property}})", selectPropertyRowFirst: "请先选择属性行", currentTimeMs: "当前时间(毫秒)", duration: "时长", durationMs: "时长(毫秒)", playbackMode: "播放模式:{{mode}}", playback: "播放:{{mode}}", loop: "循环", once: "一次", pingPong: "往复", toggleAutoKeyframe: "切换自动关键帧", autoKeyframe: "自动关键帧", savingMotion: "正在保存动效", emptyStateAnimate: "为", emptyStatePickProperty: "添加动效。选择一个属性以添加首个轨道。", emptyStateNoSelection: "在画布上选择一个元素,然后添加轨道为其添加动效。", addMotion: "添加动效", selectElementFirst: "请先在画布上选择一个元素", animateLayer: "为「{{label}}」添加动效", more: "更多", addKeyframe: "添加关键帧", trackExists: "「{{property}}」轨道已存在于 {{label}}。请在时间线中编辑其关键帧。", layerAnimationSpan: "{{label}} 动效时间范围", keyframeAt: "{{ms}}毫秒处的关键帧", deleteKeyframe: "删除关键帧", segmentEasing: "分段缓动:{{ease}}", curveTab: "曲线", springTab: "弹簧", customBezier: "自定义贝塞尔曲线", customSpring: "自定义弹簧", bounce: "弹性", bezierCurveEditor: "贝塞尔曲线编辑器", springCurvePreview: "弹簧曲线预览", defaultEase: "默认", }, }, }, "zh-TW": { designEditor: { motion: { dockLabel: "動態面板", collapseDock: "收起動態面板", play: "播放", pause: "暫停", resetPlayhead: "重設播放頭", reset: "重設", addKeyframeAtPlayhead: "在播放頭處新增關鍵影格", addKeyframeAtPlayheadForProperty: "在播放頭處新增關鍵影格({{property}})", selectPropertyRowFirst: "請先選取屬性列", currentTimeMs: "目前時間(毫秒)", duration: "持續時間", durationMs: "持續時間(毫秒)", playbackMode: "播放模式:{{mode}}", playback: "播放:{{mode}}", loop: "循環", once: "一次", pingPong: "往復", toggleAutoKeyframe: "切換自動關鍵影格", autoKeyframe: "自動關鍵影格", savingMotion: "正在儲存動態效果", emptyStateAnimate: "為", emptyStatePickProperty: "新增動態效果。選擇一個屬性以新增第一個軌道。", emptyStateNoSelection: "在畫布上選取一個元素,然後新增軌道為其新增動態效果。", addMotion: "新增動態", selectElementFirst: "請先在畫布上選取一個元素", animateLayer: "為「{{label}}」新增動態", more: "更多", addKeyframe: "新增關鍵影格", trackExists: "「{{property}}」軌道已存在於 {{label}}。請在時間軸中編輯其關鍵影格。", layerAnimationSpan: "{{label}} 動態時間範圍", keyframeAt: "{{ms}}毫秒處的關鍵影格", deleteKeyframe: "刪除關鍵影格", segmentEasing: "區段緩動:{{ease}}", curveTab: "曲線", springTab: "彈簧", customBezier: "自訂貝茲曲線", customSpring: "自訂彈簧", bounce: "彈性", bezierCurveEditor: "貝茲曲線編輯器", springCurvePreview: "彈簧曲線預覽", defaultEase: "預設", }, }, }, "es-ES": { designEditor: { motion: { dockLabel: "Panel de movimiento", collapseDock: "Contraer panel de movimiento", play: "Reproducir", pause: "Pausar", resetPlayhead: "Restablecer cabezal de reproducción", reset: "Restablecer", addKeyframeAtPlayhead: "Añadir fotograma clave en el cabezal", addKeyframeAtPlayheadForProperty: "Añadir fotograma clave en el cabezal ({{property}})", selectPropertyRowFirst: "Selecciona primero una fila de propiedad", currentTimeMs: "Tiempo actual en ms", duration: "Duración", durationMs: "Duración en ms", playbackMode: "Modo de reproducción: {{mode}}", playback: "Reproducción: {{mode}}", loop: "Bucle", once: "Una vez", pingPong: "Ida y vuelta", toggleAutoKeyframe: "Alternar fotograma clave automático", autoKeyframe: "Fotograma clave automático", savingMotion: "Guardando movimiento", emptyStateAnimate: "Animar", emptyStatePickProperty: ". Elige una propiedad para añadir la primera pista.", emptyStateNoSelection: "Selecciona un elemento en el lienzo y añade una pista para animarlo.", addMotion: "Añadir movimiento", selectElementFirst: "Selecciona primero un elemento en el lienzo", animateLayer: 'Animar "{{label}}"', more: "Más", addKeyframe: "Añadir fotograma clave", trackExists: 'Ya existe una pista de "{{property}}" para {{label}}. Edita sus fotogramas clave en la línea de tiempo.', layerAnimationSpan: "Rango de animación de {{label}}", keyframeAt: "Fotograma clave en {{ms}}ms", deleteKeyframe: "Eliminar fotograma clave", segmentEasing: "Suavizado del segmento: {{ease}}", curveTab: "Curva", springTab: "Resorte", customBezier: "Bézier personalizada", customSpring: "Resorte personalizado", bounce: "Rebote", bezierCurveEditor: "Editor de curva Bézier", springCurvePreview: "Vista previa de curva de resorte", defaultEase: "Predeterminado", }, }, }, "fr-FR": { designEditor: { motion: { dockLabel: "Panneau de mouvement", collapseDock: "Réduire le panneau de mouvement", play: "Lecture", pause: "Pause", resetPlayhead: "Réinitialiser la tête de lecture", reset: "Réinitialiser", addKeyframeAtPlayhead: "Ajouter une image clé à la tête de lecture", addKeyframeAtPlayheadForProperty: "Ajouter une image clé à la tête de lecture ({{property}})", selectPropertyRowFirst: "Sélectionnez d'abord une ligne de propriété", currentTimeMs: "Temps actuel en ms", duration: "Durée", durationMs: "Durée en ms", playbackMode: "Mode de lecture : {{mode}}", playback: "Lecture : {{mode}}", loop: "Boucle", once: "Une fois", pingPong: "Aller-retour", toggleAutoKeyframe: "Activer/désactiver l'image clé automatique", autoKeyframe: "Image clé automatique", savingMotion: "Enregistrement du mouvement", emptyStateAnimate: "Animer", emptyStatePickProperty: ". Choisissez une propriété pour ajouter la première piste.", emptyStateNoSelection: "Sélectionnez un élément sur le canevas, puis ajoutez une piste pour l'animer.", addMotion: "Ajouter un mouvement", selectElementFirst: "Sélectionnez d'abord un élément sur le canevas", animateLayer: "Animer « {{label}} »", more: "Plus", addKeyframe: "Ajouter une image clé", trackExists: "Une piste « {{property}} » existe déjà pour {{label}}. Modifiez ses images clés dans la chronologie.", layerAnimationSpan: "Plage d'animation de {{label}}", keyframeAt: "Image clé à {{ms}}ms", deleteKeyframe: "Supprimer l'image clé", segmentEasing: "Accélération du segment : {{ease}}", curveTab: "Courbe", springTab: "Ressort", customBezier: "Bézier personnalisée", customSpring: "Ressort personnalisé", bounce: "Rebond", bezierCurveEditor: "Éditeur de courbe de Bézier", springCurvePreview: "Aperçu de la courbe de ressort", defaultEase: "Par défaut", }, }, }, "de-DE": { designEditor: { motion: { dockLabel: "Bewegungsleiste", collapseDock: "Bewegungsleiste einklappen", play: "Abspielen", pause: "Pausieren", resetPlayhead: "Wiedergabekopf zurücksetzen", reset: "Zurücksetzen", addKeyframeAtPlayhead: "Keyframe am Wiedergabekopf hinzufügen", addKeyframeAtPlayheadForProperty: "Keyframe am Wiedergabekopf hinzufügen ({{property}})", selectPropertyRowFirst: "Wähle zuerst eine Eigenschaftszeile aus", currentTimeMs: "Aktuelle Zeit in ms", duration: "Dauer", durationMs: "Dauer in ms", playbackMode: "Wiedergabemodus: {{mode}}", playback: "Wiedergabe: {{mode}}", loop: "Schleife", once: "Einmal", pingPong: "Hin und her", toggleAutoKeyframe: "Auto-Keyframe umschalten", autoKeyframe: "Auto-Keyframe", savingMotion: "Bewegung wird gespeichert", emptyStateAnimate: "Animiere", emptyStatePickProperty: ". Wähle eine Eigenschaft, um die erste Spur hinzuzufügen.", emptyStateNoSelection: "Wähle ein Element auf der Leinwand aus und füge dann eine Spur hinzu, um es zu animieren.", addMotion: "Bewegung hinzufügen", selectElementFirst: "Wähle zuerst ein Element auf der Leinwand aus", animateLayer: "Animiere „{{label}}“", more: "Mehr", addKeyframe: "Keyframe hinzufügen", trackExists: "Eine „{{property}}“-Spur für {{label}} existiert bereits. Bearbeite ihre Keyframes in der Zeitleiste.", layerAnimationSpan: "Animationsbereich von {{label}}", keyframeAt: "Keyframe bei {{ms}}ms", deleteKeyframe: "Keyframe löschen", segmentEasing: "Segment-Easing: {{ease}}", curveTab: "Kurve", springTab: "Feder", customBezier: "Benutzerdefinierte Bézier-Kurve", customSpring: "Benutzerdefinierte Feder", bounce: "Sprungkraft", bezierCurveEditor: "Bézier-Kurveneditor", springCurvePreview: "Federkurvenvorschau", defaultEase: "Standard", }, }, }, "ja-JP": { designEditor: { motion: { dockLabel: "モーションドック", collapseDock: "モーションドックを閉じる", play: "再生", pause: "一時停止", resetPlayhead: "再生ヘッドをリセット", reset: "リセット", addKeyframeAtPlayhead: "再生ヘッドの位置にキーフレームを追加", addKeyframeAtPlayheadForProperty: "再生ヘッドの位置にキーフレームを追加({{property}})", selectPropertyRowFirst: "まずプロパティ行を選択してください", currentTimeMs: "現在時刻(ms)", duration: "長さ", durationMs: "長さ(ms)", playbackMode: "再生モード: {{mode}}", playback: "再生: {{mode}}", loop: "ループ", once: "1回", pingPong: "往復", toggleAutoKeyframe: "自動キーフレームの切り替え", autoKeyframe: "自動キーフレーム", savingMotion: "モーションを保存中", emptyStateAnimate: "", emptyStatePickProperty: "にモーションを追加するには、プロパティを選んで最初のトラックを追加してください。", emptyStateNoSelection: "キャンバス上で要素を選択し、トラックを追加してアニメーションを設定します。", addMotion: "モーションを追加", selectElementFirst: "まずキャンバス上で要素を選択してください", animateLayer: "「{{label}}」にモーションを追加", more: "その他", addKeyframe: "キーフレームを追加", trackExists: "「{{property}}」トラックは {{label}} にすでに存在します。タイムラインでキーフレームを編集してください。", layerAnimationSpan: "{{label}} のアニメーション範囲", keyframeAt: "{{ms}}ms のキーフレーム", deleteKeyframe: "キーフレームを削除", segmentEasing: "セグメントのイージング: {{ease}}", curveTab: "カーブ", springTab: "スプリング", customBezier: "カスタムベジェ", customSpring: "カスタムスプリング", bounce: "バウンス", bezierCurveEditor: "ベジェ曲線エディター", springCurvePreview: "スプリング カーブ プレビュー", defaultEase: "デフォルト", }, }, }, "ko-KR": { designEditor: { motion: { dockLabel: "모션 독", collapseDock: "모션 독 접기", play: "재생", pause: "일시정지", resetPlayhead: "재생 헤드 재설정", reset: "재설정", addKeyframeAtPlayhead: "재생 헤드 위치에 키프레임 추가", addKeyframeAtPlayheadForProperty: "재생 헤드 위치에 키프레임 추가 ({{property}})", selectPropertyRowFirst: "먼저 속성 행을 선택하세요", currentTimeMs: "현재 시간(ms)", duration: "지속 시간", durationMs: "지속 시간(ms)", playbackMode: "재생 모드: {{mode}}", playback: "재생: {{mode}}", loop: "반복", once: "한 번", pingPong: "왕복", toggleAutoKeyframe: "자동 키프레임 전환", autoKeyframe: "자동 키프레임", savingMotion: "모션 저장 중", emptyStateAnimate: "", emptyStatePickProperty: "에 모션을 추가하려면 속성을 선택하여 첫 트랙을 추가하세요.", emptyStateNoSelection: "캔버스에서 요소를 선택한 다음 트랙을 추가하여 애니메이션을 적용하세요.", addMotion: "모션 추가", selectElementFirst: "먼저 캔버스에서 요소를 선택하세요", animateLayer: "'{{label}}'에 모션 추가", more: "더 보기", addKeyframe: "키프레임 추가", trackExists: "'{{property}}' 트랙이 {{label}}에 이미 있습니다. 타임라인에서 키프레임을 편집하세요.", layerAnimationSpan: "{{label}} 애니메이션 범위", keyframeAt: "{{ms}}ms의 키프레임", deleteKeyframe: "키프레임 삭제", segmentEasing: "구간 이징: {{ease}}", curveTab: "커브", springTab: "스프링", customBezier: "사용자 지정 베지어", customSpring: "사용자 지정 스프링", bounce: "바운스", bezierCurveEditor: "베지어 곡선 편집기", springCurvePreview: "스프링 곡선 미리보기", defaultEase: "기본값", }, }, }, "pt-BR": { designEditor: { motion: { dockLabel: "Painel de movimento", collapseDock: "Recolher painel de movimento", play: "Reproduzir", pause: "Pausar", resetPlayhead: "Redefinir cabeçote de reprodução", reset: "Redefinir", addKeyframeAtPlayhead: "Adicionar quadro-chave no cabeçote", addKeyframeAtPlayheadForProperty: "Adicionar quadro-chave no cabeçote ({{property}})", selectPropertyRowFirst: "Selecione primeiro uma linha de propriedade", currentTimeMs: "Tempo atual em ms", duration: "Duração", durationMs: "Duração em ms", playbackMode: "Modo de reprodução: {{mode}}", playback: "Reprodução: {{mode}}", loop: "Repetir", once: "Uma vez", pingPong: "Ida e volta", toggleAutoKeyframe: "Alternar quadro-chave automático", autoKeyframe: "Quadro-chave automático", savingMotion: "Salvando movimento", emptyStateAnimate: "Animar", emptyStatePickProperty: ". Escolha uma propriedade para adicionar a primeira faixa.", emptyStateNoSelection: "Selecione um elemento na tela e adicione uma faixa para animá-lo.", addMotion: "Adicionar movimento", selectElementFirst: "Selecione primeiro um elemento na tela", animateLayer: 'Animar "{{label}}"', more: "Mais", addKeyframe: "Adicionar quadro-chave", trackExists: 'Uma faixa de "{{property}}" já existe para {{label}}. Edite os quadros-chave na linha do tempo.', layerAnimationSpan: "Intervalo de animação de {{label}}", keyframeAt: "Quadro-chave em {{ms}}ms", deleteKeyframe: "Excluir quadro-chave", segmentEasing: "Suavização do segmento: {{ease}}", curveTab: "Curva", springTab: "Mola", customBezier: "Bézier personalizada", customSpring: "Mola personalizada", bounce: "Quique", bezierCurveEditor: "Editor de curva Bézier", springCurvePreview: "Pré-visualização da curva de mola", defaultEase: "Padrão", }, }, }, "hi-IN": { designEditor: { motion: { dockLabel: "मोशन डॉक", collapseDock: "मोशन डॉक संक्षिप्त करें", play: "चलाएं", pause: "रोकें", resetPlayhead: "प्लेहेड रीसेट करें", reset: "रीसेट करें", addKeyframeAtPlayhead: "प्लेहेड पर कीफ़्रेम जोड़ें", addKeyframeAtPlayheadForProperty: "प्लेहेड पर कीफ़्रेम जोड़ें ({{property}})", selectPropertyRowFirst: "पहले एक प्रॉपर्टी रो चुनें", currentTimeMs: "वर्तमान समय (ms में)", duration: "अवधि", durationMs: "अवधि (ms में)", playbackMode: "प्लेबैक मोड: {{mode}}", playback: "प्लेबैक: {{mode}}", loop: "लूप", once: "एक बार", pingPong: "आगे-पीछे", toggleAutoKeyframe: "ऑटो-कीफ़्रेम टॉगल करें", autoKeyframe: "ऑटो-कीफ़्रेम", savingMotion: "मोशन सेव हो रहा है", emptyStateAnimate: "", emptyStatePickProperty: "को एनिमेट करें। पहला ट्रैक जोड़ने के लिए एक प्रॉपर्टी चुनें।", emptyStateNoSelection: "कैनवस पर एक एलिमेंट चुनें, फिर उसे एनिमेट करने के लिए एक ट्रैक जोड़ें।", addMotion: "मोशन जोड़ें", selectElementFirst: "पहले कैनवस पर एक एलिमेंट चुनें", animateLayer: "“{{label}}” को एनिमेट करें", more: "अधिक", addKeyframe: "कीफ़्रेम जोड़ें", trackExists: "{{label}} के लिए “{{property}}” ट्रैक पहले से मौजूद है। टाइमलाइन में इसके कीफ़्रेम संपादित करें।", layerAnimationSpan: "{{label}} एनिमेशन रेंज", keyframeAt: "{{ms}}ms पर कीफ़्रेम", deleteKeyframe: "कीफ़्रेम हटाएं", segmentEasing: "सेगमेंट ईज़िंग: {{ease}}", curveTab: "कर्व", springTab: "स्प्रिंग", customBezier: "कस्टम बेज़ियर", customSpring: "कस्टम स्प्रिंग", bounce: "बाउंस", bezierCurveEditor: "बेज़ियर कर्व एडिटर", springCurvePreview: "स्प्रिंग कर्व पूर्वावलोकन", defaultEase: "डिफ़ॉल्ट", }, }, }, "ar-SA": { designEditor: { motion: { dockLabel: "لوحة الحركة", collapseDock: "طي لوحة الحركة", play: "تشغيل", pause: "إيقاف مؤقت", resetPlayhead: "إعادة تعيين رأس التشغيل", reset: "إعادة تعيين", addKeyframeAtPlayhead: "إضافة إطار أساسي عند رأس التشغيل", addKeyframeAtPlayheadForProperty: "إضافة إطار أساسي عند رأس التشغيل ({{property}})", selectPropertyRowFirst: "الرجاء تحديد صف خاصية أولاً", currentTimeMs: "الوقت الحالي بالملي ثانية", duration: "المدة", durationMs: "المدة بالملي ثانية", playbackMode: "وضع التشغيل: {{mode}}", playback: "التشغيل: {{mode}}", loop: "تكرار", once: "مرة واحدة", pingPong: "ذهاب وإياب", toggleAutoKeyframe: "تبديل الإطار الأساسي التلقائي", autoKeyframe: "إطار أساسي تلقائي", savingMotion: "جارٍ حفظ الحركة", emptyStateAnimate: "تحريك", emptyStatePickProperty: ". اختر خاصية لإضافة المسار الأول.", emptyStateNoSelection: "حدد عنصرًا على اللوحة، ثم أضف مسارًا لتحريكه.", addMotion: "إضافة حركة", selectElementFirst: "الرجاء تحديد عنصر على اللوحة أولاً", animateLayer: "تحريك “{{label}}”", more: "المزيد", addKeyframe: "إضافة إطار أساسي", trackExists: "يوجد بالفعل مسار “{{property}}” لـ {{label}}. عدّل إطاراته الأساسية في المخطط الزمني.", layerAnimationSpan: "نطاق حركة {{label}}", keyframeAt: "إطار أساسي عند {{ms}} م.ث", deleteKeyframe: "حذف الإطار الأساسي", segmentEasing: "تسارع الجزء: {{ease}}", curveTab: "منحنى", springTab: "زنبرك", customBezier: "بيزييه مخصص", customSpring: "زنبرك مخصص", bounce: "الارتداد", bezierCurveEditor: "محرر منحنى بيزييه", springCurvePreview: "معاينة منحنى الزنبرك", defaultEase: "افتراضي", }, }, }, };