Fluxer 越南语本地化指南:解读 LOCALIZATION_PROMPT 与 vi 语言包实战规范
【免费下载链接】fluxerA free and open source instant messaging and VoIP chat app built for friends, groups, and communities.项目地址https://gitcode.com/gh_mirrors/flu/fluxer点击查看免费下载Fluxer 是一个面向好友、群组与社区的开源即时通讯与 VoIP 聊天应用其客户端fluxer_app通过 Lingui 建立了覆盖 35 个语言环境的完整国际化体系。本文以越南语语言目录下的 LOCALIZATION_PROMPT.md 为骨架系统拆解 Fluxer 为vi语言环境定义的产品名保护、句式大小写、语气边界、占位符保真、术语复用与质检清单等翻译规范并结合仓库中 4 万余行的 vi/messages.po 实际译文与 i18n 运行时代码说明这些规则如何在真实本地化工作中落地。读完本文你将掌握一套可直接复用的面向越南语用户的聊天应用本地化工作流与质检方法。一、LOCALIZATION_PROMPT 在 Fluxer 本地化体系中的位置Fluxer 的客户端国际化采用 Linguilingui/core、lingui/react、lingui/cli配置集中在 lingui.config.js共声明 35 个语言环境ar、bg、cs、da、de、en-GB、en-US、es-ES、es-419、he、hi、hr、hu、id、it、ja、ko、lt、nl、no、pl、pt-BR、ro、ru、sv-SE、th、tr、uk、vi、zh-CN、zh-TW等源语言为en-USsourceLocale: en-US即英文文案是翻译的基准目录采用src/features/i18n/locales/{locale}/messages的 PO 格式lingui/format-po扫描范围为src下的全部业务代码排除node_modules、类型声明、测试与testing目录。每个语言环境目录下都同时存在两类文件机器可读的messages.po全部词条与译文和面向人工/AI 翻译者的LOCALIZATION_PROMPT.md翻译行为规范。越南语的 vi/messages.po 共约 4 万行、覆盖数千条词目而 vi/LOCALIZATION_PROMPT.md 正是这些译文的质量标尺它规定了翻译者是谁、按什么规则翻、翻哪些词、最后怎么自查。二、核心规则逐条详解提示词开篇即定义你是将 Fluxer 客户端本地化为越南语localevi的翻译者随后给出 11 条核心规则。下面逐条解读并对照messages.po中的真实译文说明其含义。2.1 产品名精确保留Preserve product names exactly: Fluxer, Fluxer Desktop, Fluxer API, Plutonium, Fluxer Plutonium, Fluxer HQ, FluxerTag.产品名属于品牌资产一律不翻译。Fluxer及其桌面端Fluxer Desktop、API 服务Fluxer API、付费订阅产品Plutonium / Fluxer Plutonium、控制台Fluxer HQ以及引用协议标记FluxerTag在任何越南语译文中都必须原样保留。这与 Lingui 的占位符保护机制一致品牌名、协议 token 属于不可本地化的语义单元。2.2 遵循越南语句式大小写不照抄英文 Title CaseUse sentence case according to Vietnamese conventions. Do not copy English Title Case, including for English source badge titles such as Fluxer Staff or Fluxer Bug Hunter.英文界面习惯将标题每个实词首字母大写Title Case越南语没有这套规则。翻译时应用自然的越南语大小写习惯即使是Fluxer Staff、Fluxer Bug Hunter这类官方徽章标题对应仓库fluxer_static/badges/下的 staff.svg、bug-hunter.svg 等资源也应转换为越南语自然的标题样式而不是机械保留英文大写。2.3 语气分层低风险界面轻松高风险界面冷静Keep the tone fresh, clean, trustworthy, concise, and lightly humorous where the surface is low stakes. Keep auth, billing, privacy, safety, moderation, outages, and destructive actions calm and plain.Fluxer 对语气做了明确的风险分层低风险界面如设置开关、表情选择、主题切换允许新鲜、干净、可信、简洁可带轻度幽默认证、计费、隐私、安全、审核、服务中断、破坏性操作删号、删消息、封禁必须冷静、朴素。这一规则在messages.po中可以直接观察到例如(chỉ mình bạn thấy)仅自己可见、{actor} đã cấm {target}封禁等译文都采用平实陈述没有任何修辞夸张。开发端的错误提示同样如此如Something went wrong在 CommonMessageDescriptors.ts 中带有 Generic error modal title for an unexpected failure 的注释提示翻译时保持冷静客观。2.4 避免难以翻译的语言现象Avoid legalistic, damning, corporate, or overly serious language. Avoid idioms, puns, and culture-specific jokes that are difficult to translate.规则要求不用法律腔、苛责语气、公司腔或过度严肃的语言不使用成语、双关语和依赖特定文化的笑话。这是因为聊天应用的文案会被翻译成 35 种语言任何依赖源语言文字游戏的内容都可能在越南语中失去意义甚至造成误解。翻译者如果遇到此类源文案应优先改写为直白、可迁移的表达。2.5 占位符完整性保护Keep placeholders intact. Do not translate names, domains, URLs, emails, file names, keyboard shortcuts, permission constants, prices, counts, or protocol tokens inside placeholders.这是技术性最强的一条。Lingui 的 ICU 消息支持{0}、{a}、{name}、{count}等占位符PO 条目中占位符的内容人名、域名、URL、邮箱、文件名、快捷键、权限常量、价格、数量、协议 token一律不得翻译。例如messages.po中msgid {0, plural, one {# member} other {# members}}→msgstr {0, plural, one {# thành viên} other {# thành viên}}只翻译复数分支的文案占位符{0}原样保留{actor} added the emoji {emoji}→{actor} đã thêm biểu tượng cảm xúc {emoji}{actor}、{emoji}保持不动everyone这类角色占位符在{actor} added a permission override for everyone in {channel}中被明确要求Keep everyone unchanged见 PO 中的翻译注释。PO 文件里大量条目自带开发者注释#.行说明每个占位符的含义与展示方式例如{actor}is the member who made the change, shown as a clickable user chip。翻译时必须先读注释再动笔。2.6 术语复用保持一致性与既有译文Reuse established translations for settings tabs, permission labels, shortcut names, key labels, status labels, and repeated command names.设置标签页、权限标签、快捷键名称、按键标签、状态标签、反复出现的命令名必须复用已确立的译文避免同一概念出现多个译法。仓库中 CommonMessageDescriptors.ts 正是为这一目的服务的它以msg()描述符集中定义了数百个跨模块复用的通用文案如ONLINE_DESCRIPTOR、OFFLINE_DESCRIPTOR、SETTINGS_DESCRIPTOR、NOTIFICATION_LEVEL_*系列每个描述符还携带语境注释。任何模块引用这些描述符时译文天然保持一致。2.7 标点风格与本地语言一致Keep punctuation consistent with the locale. Do not add semicolons or dash-heavy sentence structures.标点要与目标语言习惯一致不要引入分号或大量破折号的句式。越南语界面文案应以句点、逗号为主避免英文式的破折号连接结构。2.8 沿用消息类应用术语保留 Fluxer 专属名词Follow familiar messaging-app terminology for the locale, while preserving Fluxer nouns such as community, Plutonium, and FluxerTag.在选用术语时优先使用越南语用户熟悉的即时通讯术语同时保留community、Plutonium、FluxerTag等 Fluxer 专属名词的既定译法。2.9 启动闪屏引语的特殊处理Do not translate splash quotes one by one. Translate only the single fallback loading string for non-English locales if it appears.启动闪屏上成组的引语splash quotes不逐条翻译对于非英语语言环境只需翻译其中单条的 fallback 加载字符串如果存在。这一规则避免了闪屏文案被碎片化翻译造成的风格割裂。三、Locale 指导越南语界面语言惯例Use natural Vietnamese app copy with friendly neutral tone. Follow Zalo, Messenger, and Telegram conventions. Prefer common tech terms users know.提示词要求越南语译文使用自然、友好、中性的语气遵循 Zalo、Messenger、Telegram 等越南用户高频使用的消息应用惯例优先采用用户已经熟悉的通用技术词汇。这意味着不追求官方文件式的严谨翻译而追求屏幕上读起来顺的自然表达常用技术概念bot、OAuth、webhook、passkey 等尽量沿用越南语社区通用的说法而非生硬造词。对照messages.po可以验证这种取向Sign in→Đăng nhập、Message→ 消息相关译文使用越南语用户习以为常的措辞整体风格口语化、简洁。四、产品术语决策表提示词单列一节Product terms针对高频业务名词给出决策原则可整理为下表源术语决策原则越南语落地示例community使用聊天应用对群组空间的惯用词除非别无自然选择避免 server 式措辞Create community→Tạo cộng đồngchannel使用命名聊天/语音空间的惯用词见 PO 中 voice/text channel 相关条目DM仅当越南语用户普遍认识该缩写时使用否则用私信的常规说法—group DM使用小型私人群聊的惯用本地说法—role / permission / invite / webhook / passkey / OAuth / bot采用常规应用或开发者术语{actor} đã thêm bot {target}favorites按本地应用惯例译为已保存/收藏绝不能译成恋爱偏好Favorites→Mục yêu thíchDiscovery若自然则可保留为 Fluxer 命名区域否则译为发现/探索区Discovery→Khám phá其中两个词条可以直接在vi/messages.po中验证msgid Favorites→msgstr Mục yêu thích来源 CommonMessageDescriptors.ts直译是收藏项明确表达了保存/收藏语义而非浪漫意义上的喜爱msgid Discovery→msgstr Khám phá探索同时该词条带community-settings-tab语境msgctxt与 Discovery 界面来源标注说明同一英文词在不同语境下也需保持一致的既定译法。值得注意的是msgctxt的使用messages.po中存在msgctxt community-settings-tab这样的语境区分说明 Fluxer 在词条层面就为多义词提供语境消歧翻译者应据此理解每个词条的真实使用场景。五、质量检查把自己当作用户去读屏幕Before returning translations, read them as an actual app screen. They should be short, familiar, grammatically correct, and easy to scan. If a string sounds like a press release, rewrite it.质检标准是一条可执行的交付前自检清单把译文当作真实的应用界面来读而不是孤立的词条译文应简短、熟悉、语法正确、易于扫读如果某条译文读起来像新闻稿press release必须重写。这一标准与 CommonMessageDescriptors.ts 中大量Keep it concise、Short的注释一脉相承也与 vi/LOCALIZATION_PROMPT.md 中fresh, clean, trustworthy, concise的语气目标互相呼应。六、从规范到交付本地化工作流与质量保障提示词定义的是翻译行为规范而仓库为这些规范提供了完整的工作流与运行时的质量保障机制。6.1 标准工作流fluxer_app/package.json中定义了完整的 i18n 命令链pnpm lingui:extract # 从 src 扫描并抽取词条--clean pnpm i18n:auto # 调用 tools/i18n_autoRust 工具做自动化翻译/补全 pnpm lingui:compile # 编译 PO → 运行时 catalog--strict未翻译词条会报错 pnpm i18n:refresh # 一键串联以上三步其中i18n:auto调用仓库根目录下 tools/i18n_autoRust 实现的自动化本地化工具这与每个语言环境下的LOCALIZATION_PROMPT.md形成闭环提示词规范 AI/人工翻译者的行为自动化工具承担机械性翻译--strict编译保证不存在漏翻词条。6.2 翻译安全的运行时保障Fluxer 在运行时对翻译内容做了防破坏设计相关源码集中在 fluxer_app/src/features/i18nAppI18nProvider.tsx 通过I18nProvider注入 Lingui 实例并设置defaultComponent{TranslationSafeMessage}TranslationSafeMessage.tsx 用flx-i18n包裹文本片段避免翻译文本与 React 虚拟 DOM 结构冲突TranslatorSimulation.ts 模拟浏览器自动翻译流水线Chrome/Firefox 各变体检测哪些文本节点在页面自动翻译下可能被破坏其中NEVER_TRANSLATED_TAGS、isTranslationOptedOut等逻辑与提示词占位符/代码不翻译的规则互为表里TranslationCommitHarness.ts 在flushSync渲染前后对比 DOM统计翻译不安全文本节点数量并捕获可能由翻译引发的 React 崩溃。这些测试基础设施保证了即使某条越南语译文包含特殊字符或 HTML 结构也不会在运行时破坏界面渲染——这正是提示词要求保持占位符完整、标点与语言一致背后的工程动机。6.3 其他配套文件utils/CommonMessageDescriptors.ts跨模块共享文案的单一事实来源保证术语复用规则2.6可执行utils/TranslationDomGuard.ts、utils/LocaleSwitchWatchdog.ts分别守护翻译后 DOM 的稳定性和语言切换的收敛性locales/auto-i18n-reviewed-unchanged.json记录经自动化工具处理后审核过且保持不变的词条用于减少重复的人工核对每个语言目录的LOCALIZATION_PROMPT.md与messages.po成对存在如 zh-CN 目录同样包含这两类文件说明该规范是整个多语言矩阵的统一方法论越南语只是其中一个实例。七、小结把 LOCALIZATION_PROMPT 用起来vi/LOCALIZATION_PROMPT.md 篇幅不长但浓缩了一套可迁移的本地化方法论先定边界哪些内容绝不可动品牌名、占位符、协议 token哪些内容必须本地化句式大小写、标点、术语再定语气按风险等级分层的语气策略低风险界面保留个性高风险界面保持冷静后定词汇术语决策表 既有译文复用保证 35 种语言下术语体系的收敛最后质检以真实屏幕可读性为最终标准逐条审查后再交付。配合lingui extract → i18n:auto → lingui compile的命令链、TranslationSafeMessage等运行时组件以及 TranslatorSimulation.ts 等测试工具这套规范已从提示词变成了可执行、可验证的工程实践。对于任何想在 Fluxer 体系中贡献越南语译文、或是在自己的聊天类应用中建立越南语本地化流程的开发者这份提示词都是最值得先读的入口文件。赞分享【免费下载链接】fluxerA free and open source instant messaging and VoIP chat app built for friends, groups, and communities.项目地址https://gitcode.com/gh_mirrors/flu/fluxer点击查看免费下载相关推荐Fluxer 日语本地化实战指南解读 LOCALIZATION_PROMPT 规范与 Lingui 多语言架构Fluxer 日语本地化实战指南解读 LOCALIZATION_PROMPT 规范与 Lingui 多语言架构 本篇技术指南围绕 Fluxer 客户端日语Fluxer 波兰语本地化指南LOCALIZATION_PROMPT 规范与 Lingui 多语言架构实践Fluxer 波兰语本地化指南LOCALIZATION_PROMPT 规范与 Lingui 多语言架构实践 本指南围绕 Fluxer 开源即时通讯客户端中面向ViMax 实操记录AI 视频生成从一句创意到成片的四步ViMax 实操记录AI 视频生成从一句创意到成片的四步 ViMax 是一个开源的多智能体 AI 视频生成框架输入一句创意它会把编剧、角色设定、分镜、镜头上一篇终极指南3个维度让低配电脑也能流畅运行AI绘画下一篇BlackHole终极指南如何在macOS上实现专业级零延迟音频路由创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考