export const chinese: Record = { 'Playground de l’avatar': '头像游乐场', Arrêté: '已停止', 'Aperçu procédural en direct': '实时程序化预览', 'Aperçu de l’avatar': '头像预览', 'Choisissez une animation exportée pour la lancer。': '选择一个已导出的动画以播放。', 'Choisissez une animation exportée pour la lancer.': '选择一个已导出的动画以播放。', Lecture: '播放', 'Contrôlez l’animation active.': '控制当前动画。', Lire: '播放', Arrêter: '停止', 'API JavaScript': 'JavaScript API', 'Le module réutilisable est disponible dans avatar.js.': '可复用模块位于 avatar.js。', 'Ouvrez cette démo directement, ou servez le dossier localement pour importer avatar.js depuis un autre module.': '可直接打开此演示,或在本地启动该目录,以便从其他模块导入 avatar.js。', 'Langue de l’interface': '界面语言', 'Redimensionner l’aperçu et l’éditeur': '调整预览和编辑器大小', 'Nom de l’avatar': '头像名称', sélecteur: '选择器', hexadécimal: '十六进制值', 'Lier width': '关联宽度', 'Lier height': '关联高度', 'Lier size': '关联尺寸', 'Lier la position des yeux': '关联眼睛位置', 'Glisser horizontalement pour modifier': '水平拖动以调整', 'En lecture': '播放中', 'En pause': '已暂停', 'Réinitialiser la rotation de la tête': '重置头部旋转', 'Réinitialiser la position et la rotation de': '重置位置和旋转:', 'Avatar procédural': '程序化头像', 'Gizmo de rotation': '旋转控制器', 'Retour aux expressions': '返回表情', 'Retour aux animations': '返回动画', 'Retour au studio': '返回工作室', 'Preset en mémoire': '已保存预设', 'Nouvelle expression': '新建表情', 'L’avatar à gauche affiche cette expression en direct.': '左侧头像会实时预览此表情。', Corps: '身体', Rendu: '渲染', 'Choisis la finition visuelle propre à cet avatar.': '选择此头像专属的视觉效果。', 'Type de rendu': '渲染类型', 'Pixel utilise une palette franche, sans lissage ni couleur intermédiaire.': '像素渲染使用纯色调色板,不进行平滑处理,也不产生中间色。', Vectoriel: '矢量', Pixel: '像素', 'Définition de la grille': '网格分辨率', 'Apparence et orientation générale de l’avatar.': '头像的整体外观和方向。', 'Couleur du corps': '身体颜色', 'Rotation de la tête': '头部旋转', Yeux: '眼睛', 'Forme, placement et orientation propres au regard.': '眼睛的形状、位置和方向。', 'Couleur des yeux': '眼睛颜色', Largeur: '宽度', Hauteur: '高度', Échelle: '缩放', 'Taille proportionnelle': '等比尺寸', 'Œil gauche': '左眼', 'Œil droit': '右眼', 'Position et espacement': '位置和间距', Horizontale: '水平', Verticale: '垂直', Espacement: '间距', 'Rotation locale': '局部旋转', Projection: '投影', 'Perspective appliquée à la surface active.': '应用于当前表面的透视。', Perspective: '透视', Supprimer: '删除', Enregistrer: '保存', 'Construction du corps': '身体构建', 'Choisis la forme principale puis assemble les primitives autour d’elle.': '选择主形状,然后在其周围组合基础形状。', 'Choisir un avatar': '选择头像', 'Double-clic pour modifier': '双击编辑', 'Nouvel avatar': '新建头像', Modifier: '编辑', 'Mode d’édition': '编辑模式', Pose: '姿势', Expressions: '表情', Animations: '动画', Exporter: '导出', Export: '导出', 'Exporter l’avatar': '导出头像', 'Télécharge un composant autonome avec les animations de ton choix.': '下载包含所选动画的独立组件。', 'Avatar sélectionné': '已选头像', Format: '格式', 'Choisis l’intégration correspondant à ton projet.': '选择适合项目的集成方式。', 'Composant TSX autonome': '独立 TSX 组件', 'Package React local (.zip)': '本地 React 包(.zip)', 'Module JavaScript': 'JavaScript 模块', 'Module ES autonome': '独立 ES 模块', 'Projet HTML + module JS (.zip)': 'HTML 项目 + JS 模块(.zip)', sélectionnées: '已选择', 'Animations à exporter': '要导出的动画', 'Tout sélectionner': '全选', 'Tout désélectionner': '取消全选', 'Télécharger le composant TSX': '下载 TSX 组件', 'Télécharger le package React': '下载 React 包', 'Télécharger le module': '下载模块', Snapshot: '快照', 'Mode photo': '照片模式', 'Capture une image statique de l’avatar.': '捕获头像的静态图像。', 'Les options de capture seront configurées ici.': '快照选项将在此配置。', 'Aperçu du Snapshot': '快照预览', 'Aperçu du mode photo': '照片模式预览', 'Arrière-plan': '背景', 'Choisis un fond transparent, uni ou en dégradé.': '选择透明、纯色或渐变背景。', Style: '样式', Transparent: '透明', Uni: '纯色', 'Dégradé linéaire': '线性渐变', 'Dégradé radial': '径向渐变', 'Style d’arrière-plan': '背景样式', Couleur: '颜色', Départ: '起始颜色', Arrivée: '结束颜色', Définition: '分辨率', 'Dimensions inscrites dans le fichier SVG.': '写入 SVG 文件的尺寸。', 'Dimensions du fichier exporté.': '导出文件的尺寸。', 'Définition du Snapshot': '快照分辨率', 'Définition du mode photo': '照片模式分辨率', 'Télécharger le Snapshot SVG': '下载 SVG 快照', 'Télécharger en SVG': '下载 SVG', 'Télécharger en PNG': '下载 PNG', 'Format d’export': '导出格式', 'Format d’export du mode photo': '照片模式导出格式', 'Choisis le type de fichier généré par le mode photo.': '选择照片模式生成的文件类型。', 'Prendre une photo': '拍照', 'Informations sur le mode photo': '照片模式信息', 'Tu peux modifier le format, le fond et la définition du mode photo dans Export.': '你可以在“导出”中更改照片模式的格式、背景和分辨率。', 'Projet du Studio': '工作室项目', 'Transfère tous les avatars, expressions et animations vers un autre navigateur.': '将所有头像、表情和动画传输到另一个浏览器。', 'Télécharger le projet JSON': '下载 JSON 项目', 'Importer un projet JSON': '导入 JSON 项目', 'Ce fichier ne contient pas un projet Avatar Studio valide et compatible.': '此文件不包含有效且兼容的头像工作室项目。', 'Importer ce projet ?': '导入此项目?', 'Le projet local actuel sera remplacé par les avatars, expressions, animations et état de lecture de ce fichier.': '当前本地项目将被此文件中的头像、表情、动画和播放状态替换。', 'Le projet n’a pas pu être enregistré dans ce navigateur. Libère de l’espace puis réessaie.': '无法在此浏览器中保存项目。请释放空间后重试。', Importer: '导入', 'Construction, forme et couleur de la tête de l’avatar.': '头像头部的构建、形状和颜色。', 'Une forme principale porte les yeux. Les autres primitives se placent autour d’elle.': '主形状承载眼睛,其他基础形状围绕它放置。', 'Forme principale': '主形状', 'porte les yeux': '承载眼睛', 'Ajouter une forme': '添加形状', Dupliquer: '复制', 'Gizmo local': '局部控制器', 'Déplacer dans le plan de la caméra': '在相机平面中移动', Transformer: '变换', copie: '副本', 'Glisse un axe pour déplacer la forme, ou un anneau pour la faire tourner.': '拖动轴来移动形状,或拖动圆环来旋转形状。', Profondeur: '深度', 'Position locale': '局部位置', 'Cette surface est la référence du visage et porte les yeux.': '此表面是面部基准并承载眼睛。', 'Rondeur des arêtes': '边缘圆度', Rondeur: '圆度', 'Rondeur morphologique': '形态圆度', 'Rondeur de la pointe': '尖端圆度', 'Rondeur de la base': '底部圆度', 'Rondeur globale': '整体圆度', 'Rondeur pointe': '尖端圆度', 'Rondeur base': '底部圆度', 'Couleur de base utilisée par les poses et les expressions.': '姿势和表情使用的基础颜色。', 'Forme, placement, orientation et couleur du regard par défaut.': '默认眼睛的形状、位置、方向和颜色。', 'Définis l’identité du regard de cet avatar. Les poses s’ajoutent ensuite à cette base.': '定义此头像的默认眼睛,姿势将在此基础上叠加。', 'Coordonnées propres à l’avatar, indépendantes des poses.': '头像自身的坐标,与姿势无关。', 'Inclinaison par défaut propre à chaque œil.': '每只眼睛的默认倾斜角度。', 'Orientation et apparence générale de la pose.': '姿势的整体方向和外观。', 'La pose peut remplacer temporairement la couleur de l’avatar.': '姿势可以暂时覆盖头像颜色。', 'Reprendre la couleur de l’avatar': '恢复头像颜色', 'Les libellés ↔ sont scrubbables, comme dans Figma.': '带 ↔ 的标签可像 Figma 一样拖动调整。', 'Forme, placement, orientation et couleur du regard.': '眼睛的形状、位置、方向和颜色。', 'Coordonnées communes projetées sur la forme choisie.': '投影到所选形状上的共享坐标。', 'Inclinaison propre à chaque œil.': '每只眼睛各自的倾斜角度。', 'Perspective et repères appliqués à la surface active.': '应用于当前表面的透视和参考线。', 'Profondeur simulée du visage.': '模拟的面部深度。', 'Afficher le maillage': '显示网格', Réinitialiser: '重置', Mouvement: '运动', Motion: '运动', 'Mouvement perpétuel': '持续运动', 'Aucun mouvement': '无运动', 'Dérive lente': '缓慢漂移', 'Micro-ajustements': '微调', Tremblement: '抖动', 'Ajoute une légère présence ou un tremblement continu au corps.': '为身体添加轻微的生命感或持续抖动。', 'Anime le regard par petites saccades naturelles ou par tremblement.': '通过自然的微小跳动或抖动让眼神动起来。', 'Motion interpole les valeurs et notre moteur effectue le slerp quaternion.': 'Motion 对数值进行插值,引擎执行四元数球面插值。', 'Vitesse du ressort': '弹簧速度', 'Une animation est en cours de lecture': '动画正在播放', 'Mettez l’animation en pause avant de manipuler les paramètres de pose.': '调整姿势参数前请暂停动画。', 'Mettez l’animation en pause avant de choisir ou personnaliser une expression.': '选择或自定义表情前请暂停动画。', Cligner: '眨眼', 'Expression aléatoire': '随机表情', 'Cycle de vie': '生命周期', Réactions: '反应', 'Éditeur d’animation': '动画编辑器', 'Modifier l’animation': '编辑动画', 'Nouvelle animation': '新建动画', 'Compose les expressions, leur cadence et les clignements de cette animation.': '组合此动画的表情、节奏和眨眼。', 'Prévisualiser l’animation': '预览动画', 'Arrêter l’animation': '停止动画', Identité: '基本信息', 'Nom, catégorie et comportement de lecture de l’animation.': '动画的名称、分类和播放行为。', Nom: '名称', Catégorie: '分类', Description: '描述', 'Mode de lecture': '播放模式', Boucle: '循环', 'Une fois': '一次', 'Aller-retour': '往返', Timeline: '时间轴', 'Glisse les étapes pour les réordonner, puis sélectionne-en une pour régler sa cadence.': '拖动步骤以重新排序,然后选择一个步骤调整时间。', 'Ajoute une expression pour commencer.': '添加一个表情以开始。', 'Étape sélectionnée': '已选步骤', 'Durée visible avant de passer à l’expression suivante.': '切换到下一个表情前的显示时长。', 'Supprimer cette étape': '删除此步骤', 'Temps d’affichage': '显示时间', 'Durée de transition': '过渡时长', Transition: '过渡', Ressort: '弹簧', Douce: '平滑', Rapide: '迅速', 'Ajouter une expression': '添加表情', 'Sélectionne un preset pour l’ajouter à la fin de la timeline.': '选择一个预设并添加到时间轴末尾。', Clignements: '眨眼', 'Le blink fonctionne indépendamment des changements d’expression.': '眨眼独立于表情变化运行。', 'Activer les clignements': '启用眨眼', 'Intervalle minimum': '最小间隔', 'Intervalle maximum': '最大间隔', 'Intervalle du clignement': '眨眼间隔', 'Durée du clignement': '眨眼时长', animations: '动画', 'Chaque étape possède sa propre durée et sa propre transition.': '每个步骤都有自己的持续时间和过渡。', Désactivé: '已禁用', 'comportement de la timeline': '时间轴行为', 'Supprimer cette animation ?': '删除此动画?', 'Cette action supprimera définitivement cette animation.': '此操作将永久删除该动画。', 'Cette animation enchaîne un pool de presets et des clignements.': '此动画依次播放一组预设并执行眨眼。', 'Cet état enchaîne un pool de presets et des clignements.': '此动画依次播放一组预设并执行眨眼。', 'Expressions de l’animation': '动画表情', 'Les presets sont joués dans cet ordre, puis la boucle recommence.': '预设按此顺序播放,然后重新开始循环。', 'Logique de clignement': '眨眼行为', 'Le rythme reste naturel grâce à un intervalle légèrement aléatoire.': '略带随机性的间隔使节奏保持自然。', 'Premier clignement': '首次眨眼', 'après le lancement': '启动后', Intervalle: '间隔', 'tirage aléatoire': '随机', Durée: '时长', 'fermeture et ouverture': '闭合与睁开', 'Changement d’expression': '表情变化', 'cadence de l’animation': '动画节奏', 'Détails de l’animation': '动画详情', 'Afficher les détails de l’animation': '显示动画详情', 'Masquer les détails de l’animation': '隐藏动画详情', Relancer: '重新开始', Lancer: '播放', Pause: '暂停', Reprendre: '继续', Annuler: '取消', 'Supprimer cette expression ?': '删除此表情?', 'Cette action retirera définitivement le preset de la bibliothèque de cet avatar.': '此操作将从该头像的库中永久删除该预设。', 'Cette expression sera aussi retirée des animations suivantes :': '此表情也会从以下动画中移除:', 'Si une animation ne contient que cette expression, l’expression de repli lui sera assignée pour qu’elle reste jouable.': '如果动画只包含此表情,将为其分配备用表情以保持可播放。', 'Le corps, les expressions et les animations propres à cet avatar seront définitivement supprimés. La bibliothèque de base sera conservée.': '此头像的身体、表情和动画将被永久删除,基础库将被保留。', 'Glisse sur la surface pour orienter la tête. Les anneaux du gizmo contrôlent X, Y et Z.': '在表面上拖动以调整头部方向。控制器圆环分别控制 X、Y 和 Z。', Sphère: '球体', Cube: '立方体', Capsule: '胶囊体', Curseur: '光标', Cylindre: '圆柱体', Cône: '圆锥体', Diamant: '菱形体', 'Yeux presque fermés, respiration lente et expression de sommeil.': '双眼几乎闭合,呼吸缓慢,呈现睡眠表情。', 'Animation courte de réveil avant retour vers une expression neutre.': '短暂的醒来动画,然后恢复中性表情。', 'Séquence courte de réveil avant retour vers une expression neutre.': '短暂的醒来动画,然后恢复中性表情。', 'Micro-mouvements lents, expressions 00 et 08, clignement rare.': '缓慢微动,使用表情 00 和 08,偶尔眨眼。', 'Expressions 10, 01 et 19, regard stable et clignement attentif.': '使用表情 10、01 和 19,视线稳定并专注眨眼。', 'Regard haut et latéral, expressions asymétriques et changements fréquents.': '向上侧视,不对称表情并频繁变化。', 'Balayage rapide et changements très fréquents.': '快速扫视并非常频繁地变化。', 'Rythme régulier, regard concentré et micro-variations.': '节奏稳定,目光专注并有细微变化。', 'Grandes expressions positives et mouvements rapides.': '夸张的积极表情和快速运动。', 'Inclinaisons et rotations rapides pour simuler un agent en mouvement.': '通过快速倾斜和旋转模拟运动中的角色。', 'Rythme régulier et expressions concentrées.': '节奏稳定且表情专注。', 'Grandes expressions et transitions rapides.': '夸张表情和快速过渡。', 'Inclinaisons et forte asymétrie.': '明显倾斜和强烈不对称。', loop: '循环', once: '一次', pingPong: '往返', Custom: '自定义', 'Untitled animation': '未命名动画', 'Untitled sequence': '未命名动画', sleeping: '睡眠', waking: '醒来', idle: '待机', listening: '聆听', thinking: '思考', searching: '搜索', working: '工作', excited: '兴奋', surprised: '惊讶', suspicious: '怀疑', angry: '生气', drowsy: '困倦', happy: '开心', curious: '好奇', confused: '困惑', bored: '无聊', proud: '自豪', shy: '害羞', sad: '悲伤', laughing: '大笑', scared: '害怕', playful: '顽皮', celebrate: '庆祝', orbit: '环绕', radar: '雷达', progress: '进度', spawning: '出现', humming: '哼唱', loading: '加载', dictating: '听写', writing: '书写', sending: '发送', receiving: '接收', uploading: '上传', notifying: '通知', alerting: '警报', dragging: '拖动', bouncing: '弹跳', 'powering-down': '关机', Avatars: '头像', 'React / TypeScript': 'React / TypeScript', } export const translateChineseDynamicText = (text: string) => { const rules: Array<[RegExp, (...matches: string[]) => string]> = [ [/^Modifier l’expression (.+)$/, value => `编辑表情 ${value}`], [/^Modifier (.+)$/, value => `编辑${value}`], [/^Supprimer (.+) \?$/, value => `删除${value}?`], [/^Ajouter une forme · (.+)$/, value => `添加形状 · ${value}`], [/^Réinitialiser la position et la rotation de (.+)$/, value => `重置${value}的位置和旋转`], [/^Animation en cours : (.+)$/, value => `当前动画:${value}`], [/^Mettre (.+) en pause$/, value => `暂停${value}`], [/^Reprendre (.+)$/, value => `继续${value}`], [/^Arrêter (.+)$/, value => `停止${value}`], [/^(.+) expressions$/, value => `${value} 个表情`], ] for (const [pattern, replacement] of rules) { const match = text.match(pattern) if (match) return replacement(...match.slice(1)) } return null }