发布时间:2026/9/2 9:49:41
Tolaria国际化实现指南:JSON语言目录与Lara CLI同步机制一文讲透 Tolaria国际化实现指南JSON语言目录与Lara CLI同步机制一文讲透【免费下载链接】tolariaDesktop app to manage markdown knowledge bases项目地址: https://gitcode.com/GitHub_Trending/to/tolariaTolaria 是一款用于管理 Markdown 知识库的跨平台桌面应用其**国际化i18n**体系围绕“JSON 语言目录 Lara CLI 自动同步”两大核心构建。本文将带你走通从翻译目录组织、机器翻译同步、键位校验到运行时语言回退的完整链路帮你快速看懂 Tolaria 是如何支撑 21 种界面语言的 。为什么Tolaria自研国际化层而不是引入重型框架Tolaria 的国际化分两步演进ADR-0084本地化地基建立了一个零依赖的前端本地化层 src/lib/i18n.ts。英文作为权威回退语言canonical fallback缺失的翻译键自动回退到英文因此“部分翻译”的语言也不会让界面崩溃。详见 docs/adr/0084-app-localization-foundation.md。ADR-0087JSON目录 Lara CLI为了让翻译扩展到更大的语言矩阵并支持机器辅助翻译工作流翻译数据源从 TypeScript 对象迁移到扁平 JSON 目录flat JSON catalogs。详见 docs/adr/0087-json-catalogs-and-lara-cli-localization.md。这个取舍非常务实JSON 是翻译工具链的标准交换格式diff 对译者更友好且不引入额外运行时依赖。JSON语言目录en.json是唯一事实来源所有翻译文案存放在 src/lib/locales/ 目录下一个语言一个文件en.json、zh-CN.json、fr-FR.json……共 21 个目录。以简体中文目录 src/lib/locales/zh-CN.json 为例内容就是扁平的“键 → 字符串”映射{ command.noMatches: 没有匹配的命令, command.aiMode: {agent} 模式, menu.file.save: 保存 }两条硬性约定由校验脚本强制执行值必须是纯字符串不允许嵌套对象或数组占位符必须与英文源一致例如{agent}、{zoom}、{language}、{count}等变量在翻译中不能被删改或重排。Lara CLI 配置一条命令同步 20 种目标语言Lara CLI 的项目配置位于仓库根目录的 lara.yaml核心只有三段instruction给翻译引擎的指令要求保留产品名、CLI 名称、wikilink、frontmatter 键、文件路径以及{agent}等占位符原样不动locales声明source: en并列出 20 个目标语言——zh-CN、zh-TW、ja-JP、ko-KR、fr-FR、de-DE、es-ES、es-419、pt-BR、pt-PT等files通过src/lib/locales/[locale].json通配规则告诉 Lara 翻译目录的位置。实际执行通过 package.json#L18-L20 中定义的脚本完成脚本命令作用pnpm l10n:translatelara-cli translate同步翻译增量pnpm l10n:translate:forcelara-cli translate --force强制全量重译pnpm l10n:validatenode scripts/validate-locales.mjs校验所有语言目录翻译结果直接写回仓库中的 JSON 文件与使用它们的 UI 代码同版本管理、一起发布。运行时解析语言别名归一化与英文回退运行时逻辑集中在 src/lib/i18n.ts几个关键机制值得新手了解目录按需加载import.meta.glob(./locales/*.json)在构建期把所有 JSON 目录加载进内存新增语言文件即自动生效语言别名归一化normalizeLocaleCode()把zh-hans、zh-Hans、zh等写法统一映射到规范代码zh-CN历史遗留的zh-Hans偏好也会被自动迁移系统语言回退用户偏好ui_language是安装级设置存于~/.config/com.tolaria.app/settings.json取值为空时表示“跟随系统语言”resolveEffectiveLocale()会依次尝试系统语言列表最终兜底到英文props-down 传值locale 从App.tsx逐层向下传给组件遵循 docs/adr/0026-props-down-no-global-state.md 的无全局状态架构切换语言无需重开仓库、立即生效。语言校验键位与占位符一致性把关scripts/validate-locales.mjs 是本地化工作流的“质量闸门”它逐语言检查目录是否为扁平字符串对象与en.json相比是否缺少键missing或多出键extra每个键的占位符集合是否与英文源完全一致。任何一项不通过脚本都会列出具体错误并以非零码退出可挂进 CI 或作为提交前检查。快速上手新增一种语言的完整流程在 src/lib/i18n.ts 的APP_LOCALES和LOCALE_DEFINITIONS中登记语言代码、别名与搜索关键词在 lara.yaml 的locales.target中加入目标语言运行pnpm l10n:translate生成翻译 JSON人工审校 JSON 输出专有名词、占位符运行pnpm l10n:validate确认通过即可发布。整个流程对使用者同样简单打开 Tolaria 的设置面板或命令面板执行“打开语言设置 / 使用系统语言”相关命令即可切换界面语言所有未翻译的文案都会自动显示英文体验不受影响 ✅。【免费下载链接】tolariaDesktop app to manage markdown knowledge bases项目地址: https://gitcode.com/GitHub_Trending/to/tolaria创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/9/2 10:04:46

iOS/iPadOS 27 Beta 5 深度体验:Siri AI定制语音与系统图标更新解析

1. 先搞清楚这次更新到底带来了什么,以及谁最该关注 如果你正在用 iPhone 或 iPad,并且对系统新功能、界面变化或者 Siri 的“智能”程度比较在意,那么 iOS/iPadOS 27 Beta 5 的这次更新值得花几分钟了解一下。它不是一个翻天覆地的版本迭代&…

2026/9/2 10:04:46

基于A*算法的多节点路径规划与可视化模拟系统实现

最近在开发游戏AI或者物流路径规划系统时,你是不是也遇到过这样的问题:给定一个起点、一个终点和一系列必须经过的中间点,如何快速、直观地模拟出最优或可行的行走路线?这不仅仅是算法问题,更是一个需要将抽象逻辑转化…

2026/9/2 9:59:43

三相交流电压表完整程序解析:从MCU采样到RMS算法实战

简介:整套三相交流电压表程序设计方案,面向嵌入式开发、电力监控及电子测量学习者,解决三相电压信号采集、计算、显示与报警等完整链路。压缩包内共15个文件,以C语言源码、头文件、Keil工程文件、编译目标文件、HEX烧录文件及DSK仿…

2026/9/1 16:02:17

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/2 9:00:32

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/2 8:41:06

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/2 0:03:41

单片机毕业设计-基于单片机与蓝牙通讯的输液状态监测终端设计与开发 基于 STM32 或 51 单片机的液位‑滴速‑温度多参数输液监护装置设计(024005)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/9/2 0:03:41

DeepSeek字幕翻译实战:从API调用到批量SRT转中文的完整方案

这次我们来看一个很实用的 DeepSeek 落地场景:用 DeepSeek 把英文视频字幕自动翻译成中文。具体案例是《恶魔君》1989 年第 28 集的英转中字幕任务,标题写得很直白,但背后其实是一整套可以复用的技术流程:字幕解析、模型调用、批量…

2026/9/2 0:03:41

用Python搭建搞笑语音助手:从语音识别到语音合成全教程

当你家里摆着一台天猫精灵,却总希望语音助手偶尔“不正经”一点,不用官方腔回答问题,而是张口就接几句搞笑段子,会是什么体验?我最近动手验证了一下这个想法——没有去改装任何市面上现有的智能音箱,而是直…

2026/9/2 1:15:22

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/2 1:15:22

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/2 1:15:20

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…