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': '新建表情', 'Identité runtime': '运行时标识', 'Nom public stable utilisé par les applications qui chargent cet avatar.': '供加载此头像的应用使用的稳定公开名称。', 'Clé sémantique': '语义键', 'Clé sémantique manquante': '缺少语义键', 'Clé publique stable utilisée par l’API runtime, par exemple happy-smile.': '运行时 API 使用的稳定公开键,例如 happy-smile。', 'Clé publique stable utilisée par l’API runtime, par exemple thinking.': '运行时 API 使用的稳定公开键,例如 thinking。', 'Ajoute une clé pour inclure cet élément dans l’export runtime.': '添加键以在运行时导出中包含此项目。', 'Utilise des lettres minuscules, des chiffres et des tirets, par exemple happy-smile.': '请使用小写字母、数字和连字符,例如 happy-smile。', 'neutral est réservé à l’apparence neutre de l’avatar.': 'neutral 保留用于头像的中性外观。', 'Cette clé est déjà utilisée dans cette bibliothèque.': '此键已在当前库中使用。', 'L’avatar à gauche affiche cette expression en direct.': '左侧头像会实时预览此表情。', Corps: '身体', Rendu: '渲染', 'Choisis la finition visuelle propre à cet avatar.': '选择此头像专属的视觉效果。', 'Type de rendu': '渲染类型', 'Le rendu Pixel est temporairement désactivé.': '像素渲染暂时已禁用。', 'Le mode Vectoriel est utilisé pour l’instant.': '当前使用矢量渲染。', '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': '导出头像', 'Exporter le JSON runtime': '导出运行时 JSON', Nouveau: '新增', 'Exporte le fichier .avatar.json utilisé par les nouveaux packages npm.': '导出新 npm 包使用的 .avatar.json 文件。', 'JSON runtime + createAvatar': '运行时 JSON + createAvatar', 'Télécharge la définition portable complète de l’avatar actif.': '下载当前头像的完整可移植定义。', 'Définition runtime': '运行时定义', 'Fichier .avatar.json portable': '可移植 .avatar.json 文件', 'Export runtime incomplet': '运行时导出不完整', 'Corrige les clés signalées dans les éditeurs Expressions ou Animations.': '请在“表情”或“动画”编辑器中修正标记的键。', 'Télécharger la définition .avatar.json': '下载 .avatar.json 定义', 'Copier le JSON formaté': '复制格式化的 JSON', 'JSON runtime copié dans le presse-papiers.': '运行时 JSON 已复制到剪贴板。', 'Impossible de copier le JSON runtime.': '无法复制运行时 JSON。', Installation: '安装', 'Lancer l’exemple': '运行示例', 'Masquer l’aperçu': '隐藏预览', 'Aperçu avec le package React': '使用 React 包预览', Preview: '预览', 'Définition prête à tester': '定义已可测试', 'Preview de la définition exportée': '导出定义预览', 'Teste les animations et expressions réellement présentes dans le fichier .avatar.json.': '测试 .avatar.json 文件中实际包含的动画和表情。', 'Fermer la preview': '关闭预览', 'Définition exportée': '导出的定义', 'Animation active': '当前动画', 'Expression active': '当前表情', 'Contrôles de lecture': '播放控制', 'Animations exportées': '导出的动画', 'Expressions exportées': '导出的表情', 'Clique pour lancer': '点击播放', 'Clique pour afficher': '点击显示', 'Aucune animation exportée': '没有导出的动画', 'Aperçu runtime de l’avatar actif': '当前头像的运行时预览', 'Animation de départ': '起始动画', 'Expression de départ': '起始表情', 'Aucune animation sélectionnée': '未选择动画', 'Guide d’utilisation': '使用指南', 'Guide d’utilisation de l’avatar React': 'React 头像使用指南', 'Guide d’utilisation de l’avatar JavaScript': 'JavaScript 头像使用指南', 'Installe le package, crée ton composant et choisis le niveau de contrôle adapté.': '安装包,创建组件,并选择合适的控制方式。', 'Fermer le guide': '关闭指南', 'Ajoute le package React et ses dépendances.': '添加 React 包及其依赖项。', 'Installe le module ESM, charge la définition JSON et monte l’avatar dans un élément du DOM.': '安装 ESM 模块,加载 JSON 定义,并将头像挂载到 DOM 元素中。', 'Ajoute le renderer DOM, qui utilise automatiquement avatar-core.': '添加 DOM 渲染器,它会自动使用 avatar-core。', 'Utilisation avec un bundler ESM': '使用 ESM 打包工具', 'Vite et les bundlers modernes résolvent le package et importent le même fichier .avatar.json que React.': 'Vite 和现代打包工具会解析该包,并导入与 React 相同的 .avatar.json 文件。', 'Options de createAvatar': 'createAvatar 选项', 'Référence des valeurs acceptées lors du montage dans le DOM.': '挂载到 DOM 时可用值的参考。', 'Obligatoire. Définition JSON validée avant la création des éléments SVG.': '必填。创建 SVG 元素之前会验证 JSON 定义。', 'Optionnelle. Animation lancée au montage lorsque autoplay vaut true. Mutuellement exclusive avec defaultExpression.': '可选。当 autoplay 为 true 时在挂载时启动动画。不能与 defaultExpression 同时使用。', 'Optionnelle. Expression initiale affichée sans lancer de timeline. Mutuellement exclusive avec defaultAnimation.': '可选。显示初始表情但不启动时间线。不能与 defaultAnimation 同时使用。', 'Optionnelle, défaut true. Contrôle uniquement le lancement automatique de defaultAnimation.': '可选,默认 true。仅控制 defaultAnimation 是否自动启动。', 'Optionnelle, défaut 240. Largeur et hauteur CSS du conteneur rendu.': '可选,默认 240。渲染容器的 CSS 宽度和高度。', 'Optionnelle. Classe CSS ajoutée au conteneur rendu.': '可选。添加到渲染容器的 CSS 类。', 'Optionnelle, défaut « Procedural avatar ». Nom accessible du rendu.': '可选,默认 “Procedural avatar”。渲染头像的可访问名称。', 'Optionnelle. Reçoit les erreurs de clé inconnue utilisées lors de l’initialisation.': '可选。接收初始化期间遇到的未知键错误。', 'Optionnelle. Appelée lorsqu’une animation once se termine.': '可选。在 once 动画结束时调用。', 'Optionnelle. Appelée lorsque l’expression active change.': '可选。在活动表情变化时调用。', 'API du contrôleur DOM': 'DOM 控制器 API', 'createAvatar retourne immédiatement ces commandes impératives.': 'createAvatar 会立即返回这些命令式控制方法。', 'Lance ou reprend une animation par sa clé.': '通过键启动或恢复动画。', 'Affiche une expression avec une transition courte.': '使用短暂过渡显示表情。', 'Arrête la lecture et revient à neutral.': '停止播放并返回 neutral。', 'Annule la frame planifiée et retire uniquement le conteneur créé par avatar-web.': '取消已计划的帧,并仅移除 avatar-web 创建的容器。', 'Navigateur sans bundler': '不使用打包工具的浏览器', 'Utilise une URL ESM via un CDN ou une import map, puis charge la définition avec fetch.': '通过 CDN 或 import map 使用 ESM URL,然后通过 fetch 加载定义。', 'Les packages sont encore privés. Cette commande fonctionnera après leur publication ; utilise le workspace ou les tarballs pour les tests locaux.': '这些包目前仍为私有。发布后此命令才可使用;本地测试请使用 workspace 或 tarball。', 'API recommandée : créer un avatar concret': '推荐 API:创建具体头像', 'createAvatar valide le JSON et retourne un composant dédié dont les clés d’animations sont typées.': 'createAvatar 会验证 JSON,并返回一个动画键经过类型约束的专用组件。', 'Props de l’avatar': '头像 Props', 'Référence complète : type, valeur par défaut, comportement et contraintes de chaque prop.': '完整参考:每个 prop 的类型、默认值、行为和限制。', 'Cible et lecture': '目标与播放', 'Obligatoire. Objet AvatarDefinition validé contenant les expressions et les animations à afficher.': '必填。经过验证的 AvatarDefinition 对象,包含要显示的表情和动画。', 'Optionnelle. Contrôle une timeline par sa clé. Chaque étape choisit l’expression affichée. Mutuellement exclusive avec expression ; une cible contrôlée prend priorité sur les valeurs default.': '可选。通过键控制时间线,每个步骤会选择要显示的表情。不能与 expression 同时使用;受控目标优先于默认值。', 'Optionnelle. Contrôle directement une expression par sa clé. Mutuellement exclusive avec animation ; une cible contrôlée prend priorité sur les valeurs default.': '可选。通过键直接控制一个表情。不能与 animation 同时使用;受控目标优先于默认值。', 'Optionnelle. Définit la timeline initiale en mode non contrôlé. Lue au montage ; autoplay est activé par défaut. Mutuellement exclusive avec defaultExpression.': '可选。定义非受控模式下的初始时间线;挂载时读取,默认启用 autoplay。不能与 defaultExpression 同时使用。', 'Optionnelle. Définit l’expression initiale en mode non contrôlé. Lue au montage, sans lancer de timeline. Mutuellement exclusive avec defaultAnimation.': '可选。定义非受控模式下的初始表情;挂载时读取,不会启动时间线。不能与 defaultAnimation 同时使用。', 'Optionnelle, défaut true. Lance automatiquement defaultAnimation ; sans defaultAnimation, elle n’a aucun effet.': '可选,默认 true。自动启动 defaultAnimation;没有 defaultAnimation 时无效。', 'Optionnelle. Donne accès à l’API impérative AvatarController.': '可选。提供对命令式 AvatarController API 的访问。', Présentation: '外观', 'Optionnelle, défaut 240. Nombre ou valeur CSS utilisée pour la largeur et la hauteur du conteneur.': '可选,默认 240。用于容器宽高的数字或 CSS 值。', 'Optionnelle. Classe CSS ajoutée au conteneur externe.': '可选。添加到外部容器的 CSS 类。', 'Optionnelle. Styles inline du conteneur externe ; width et height viennent de size.': '可选。外部容器的内联样式;width 和 height 来自 size。', 'Optionnelle, défaut « Procedural avatar ». Nom accessible annoncé aux lecteurs d’écran.': '可选,默认 “Procedural avatar”。屏幕阅读器播报的可访问名称。', 'Callbacks de lecture': '播放回调', 'Optionnelle. Reçoit la clé de l’animation once terminée naturellement.': '可选。在 once 动画自然完成时接收其键。', 'Optionnelle. Reçoit la clé de l’expression chaque fois que l’expression sémantique affichée change.': '可选。每当显示的语义表情变化时接收表情键。', 'Optionnelle. Reçoit une erreur typée lorsqu’une prop animation, expression ou default référence une clé inconnue.': '可选。当 animation、expression 或 default prop 引用了未知键时,接收一个类型化错误。', 'Avatar générique': '通用 Avatar', 'Utilise Avatar directement lorsque la définition est chargée à l’exécution ou change entre plusieurs avatars.': '当定义在运行时加载或需要在多个头像之间切换时,直接使用 Avatar。', 'API impérative': '命令式 API', 'La ref expose les commandes de lecture et l’état courant de l’avatar.': 'ref 提供播放命令和头像当前状态。', 'Les commandes de cible sont disponibles en mode non contrôlé ; sinon utilise les props.': '目标命令仅在非受控模式下可用;否则请使用 props。', 'Lance ou reprend une animation et retourne un résultat typé.': '启动或恢复动画,并返回类型化结果。', 'Met en pause la timeline à sa position exacte.': '在精确位置暂停时间线。', 'En mode non contrôlé, arrête la lecture et revient à neutral. En mode contrôlé, les props restent la source de vérité.': '在非受控模式下停止播放并回到 neutral;在受控模式下,props 仍是真实来源。', 'Affiche directement une expression.': '直接显示一个表情。', 'Retourne l’animation, l’expression et le statut actifs.': '返回当前动画、表情和状态。', Expression: '表情', Animation: '动画', 'Une étape référence une expression qui ne peut pas être exportée.': '某个步骤引用了无法导出的表情。', 'Valeur incompatible avec le format runtime': '值与运行时格式不兼容', 'Télécharge un composant autonome avec les animations de ton choix.': '下载包含所选动画的独立组件。', 'Génère l’export ZIP autonome React ou JavaScript qui existait déjà.': '生成原有的 React 或 JavaScript 独立 ZIP 导出。', 'Choisis les animations puis exporte le JSON runtime ou un package autonome.': '选择动画,然后导出运行时 JSON 或独立包。', 'Choisis les animations puis utilise la même définition JSON avec React ou JavaScript.': '选择动画,然后在 React 或 JavaScript 中使用同一份 JSON 定义。', 'Avatar sélectionné': '已选头像', Format: '格式', 'Choisis l’intégration correspondant à ton projet.': '选择适合项目的集成方式。', 'Composant TSX autonome': '独立 TSX 组件', 'Package React local (.zip)': '本地 React 包(.zip)', 'JavaScript / ESM': 'JavaScript / ESM', 'JSON runtime + avatar-web': '运行时 JSON + avatar-web', 'Module ES autonome': '独立 ES 模块', 'Projet HTML + module JS (.zip)': 'HTML 项目 + JS 模块(.zip)', sélectionnées: '已选择', 'Animations à exporter': '要导出的动画', 'Tout sélectionner': '全选', 'Tout désélectionner': '取消全选', Personnaliser: '自定义', 'Masquer la sélection': '隐藏选择', 'Télécharger le composant TSX': '下载 TSX 组件', 'Télécharger le package React': '下载 React 包', 'Télécharger le module': '下载模块', 'Intégration ESM avec le package avatar-web': '使用 avatar-web 包的 ESM 集成', 'Le ZIP contient le JSON exporté, une démo index.html et son README. La démo charge avatar-web depuis un CDN.': 'ZIP 包含导出的 JSON、index.html 演示和 README。演示会从 CDN 加载 avatar-web。', 'Télécharger l’intégration ESM (.zip)': '下载 ESM 集成(.zip)', 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 }