)
【免费下载链接】airsync-macAirSync macOS - Bring the forbidden macOS continuity to Android项目地址https://gitcode.com/gh_mirrors/ai/airsync-mac点击查看免费下载AirSync 是一款把 macOS 的连续互通体验带到 Android 上的开源应用支持通知同步、屏幕镜像、文件浏览等功能。项目已建立覆盖30 种语言的本地化体系翻译工作通过 Crowdin 社区平台进行。本文是一份面向新手的AirSync 多语言翻译参与指南你会了解项目的语言文件结构、翻译键key规则、加载机制以及从注册 Crowdin 到提交第一条翻译的完整步骤零基础也能上手。一、AirSync 的本地化体系30 语言 JSON 文件AirSync 采用基于 JSON 的轻量本地化方案所有语言文件统一放在Localization目录中源语言基准airsync-mac/Localization/en.json目标语言示例airsync-mac/Localization/zh-Hans.json简体中文、zh-Hant.json繁体中文其余 20 语言de.json德语、ja.json日语、fr.json法语、ru.json俄语、es.json西班牙语等每个语言一个文件每个文件都是扁平的键: 文本映射目前包含211 行约 200 个翻译键涵盖菜单、设置、通知、引导页等界面文案。例如简体中文文件中{ menu.mirror: 屏幕镜像, home.sidebar.ready: 就绪, settings.tab: 设置, onboarding.title: 欢迎使用 AirSync }语言文件与文件命名规则项目通过 crowdin.yml 定义了 Crowdin 与仓库之间的文件映射规则这也是你理解30 语言体系如何同步的关键配置项作用source: /airsync-mac/Localization/en.json以英文文件为翻译源translation: /airsync-mac/Localization/%two_letters_code%.json按语言代码生成对应语言文件languages_mapping特殊映射zh-CN → zh-Hans、zh-TW → zh-Hant即 Crowdin 的中文简体/繁体对应仓库里的zh-Hans.json/zh-Hant.jsonpreserve_hierarchy: 1保持目录层级同步 简单说你在 Crowdin 上翻译的每个字符串最终都会落到仓库里对应语言的.json文件中随版本发布分发。二、翻译是如何生效的30 秒看懂加载机制AirSync 的语言加载逻辑非常直观核心实现在 Localizer.swift加载基准先加载en.json作为兜底语言覆盖overlay再按系统语言加载对应语言文件已翻译的键覆盖英文未翻译的键自动回退到英文——这正是部分翻译界面不会出现空白的原因键名即兜底若某个键在两个文件中都找不到界面上直接显示键名本身。界面上取用翻译文案有两种方式见 Localizer.swift#L38-L47函数式L(settings.tab)例如 SettingsTab.swift 中返回L(settings.myMac)SwiftUI 扩展Text(loc: connection.selectDevice)例如 ConnectionStatusPill.swift。对翻译者的启示你只需要关注值value键名key绝对不能改。三、如何在 Crowdin 上开始贡献 AirSync 翻译参与 AirSync 翻译的最快步骤注册 / 登录 Crowdin 账号打开项目的 Crowdin 官方翻译页面入口见仓库 README.md 中的翻译邀请链接选择语言在语言列表中找到你的语言如 Simplified Chinese、Japanese点击Translate进入编辑器按状态筛选待翻字符串优先处理未翻译Not translated其次复查已审核Approved逐条翻译并保存编辑器支持术语表、自动翻译提示和上下文预览善用这些工具保持一致性提交审核完成后的字符串交由维护者或语言负责人审核通过后即进入下一版本。翻译质量自查清单提交前对照下面几点检查能显著降低被退回的概率✅键名不改只改引号里的文案menu.mirror:这类键保持原样✅占位符保留如原文含%d、%等变量译文必须原样保留✅专有名词保留AirSync、macOS、Android、Quick Share 等品牌词不翻译✅标点符合目标语言习惯简体中文使用全角标点英文缩写后加空格✅简洁适配 UI按钮、侧边栏文案要短参考home.sidebar.ready译为就绪而非冗长句子✅JSON 合法不引入未转义的英文双引号。四、贡献规范与授权须知 在 CONTRIBUTING.md 中项目明确了贡献者须知许可证所有贡献包括翻译默认采用Mozilla Public License 2.0 附加非商业使用条款见 LICENSE提交方式翻译请通过 Crowdin 完成由平台同步回仓库代码类贡献则向main或dev分支提 PR并写清晰的提交信息新语言申请若你的语言尚未收录可在 Crowdin 项目中提出添加请求并遵循two_letters_code的文件命名约定。五、常见问题FAQQ我不熟悉 JSON会影响翻译吗不会。Crowdin 编辑器逐条显示字符串你完全在网页上操作无需手工编辑文件。只有想直接给仓库提 PR 时才需要保证 JSON 格式合法。Q翻译了一部分用户看到的界面会怎样已翻译部分显示译文未翻译部分自动回退英文界面不会出现空白或报错——可以放心翻多少是多少。Q简体中文和繁体中文是同一个任务吗不是。根据 crowdin.yml 的映射zh-CN对应zh-Hans.json、zh-TW对应zh-Hant.json请在 Crowdin 中选择对应的语言任务。Q修改后多久能生效译文经审核后随新版本打包发布App 内置更新Sparkle推送到用户设备后生效。结语参与 AirSync 多语言翻译不需要写代码打开 Crowdin 翻译页面 → 选择你的语言 → 按键值对逐条翻译 → 提交审核。你的每一条翻译都会通过 crowdin.yml 定义的同步链路进入 Localization 目录让全球用户以自己的语言使用这款 macOS 上的Android 连续互通工具。欢迎加入贡献行列赞分享【免费下载链接】airsync-macAirSync macOS - Bring the forbidden macOS continuity to Android项目地址https://gitcode.com/gh_mirrors/ai/airsync-mac点击查看免费下载相关推荐5分钟上手Micronetes微服务本地开发与测试的终极解决方案5分钟上手Micronetes微服务本地开发与测试的终极解决方案 Micronetes是一款受Kubernetes启发的本地编排工具专为简化微服务和分布式应PhoneInfoga社区翻译计划参与多语言本地化的贡献方式PhoneInfoga社区翻译计划参与多语言本地化的贡献方式 为什么需要多语言支持 你是否曾因开源工具缺乏本地化文档而放弃使用根据2024年GitHub网络安全后端CLIgenerator-nm核心原理揭秘Yeoman生成器架构与模板引擎解析generator nm核心原理揭秘Yeoman生成器架构与模板引擎解析 generator nm是一款基于Yeoman的Node.js模块脚手架工具能够帮创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考