sgcLocalization,翻译您的 Delphi、C++ Builder 和 Lazarus 应用程序
让您的应用程序以客户使用的每一种语言发布。sgcLocalization 会找出窗体、框架和数据模块中的文本,提供一个统一的编辑器,让您手工翻译、交给专业译员或使用 AI 翻译,检查每一条译文,并只需一行代码即可在运行时切换整个应用程序。
让您的应用程序以客户使用的每一种语言发布。sgcLocalization 会找出窗体、框架和数据模块中的文本,提供一个统一的编辑器,让您手工翻译、交给专业译员或使用 AI 翻译,检查每一条译文,并只需一行代码即可在运行时切换整个应用程序。
sgcSetLanguage('de') 即可切换整个应用程序,无需重启。sgcLocalization 涵盖整个流程:收集文本、翻译、检查、在运行时切换语言,并在应用程序变化时让译文保持最新。
应用程序的全部文本集中在一个项目中,并由一个编辑器完成翻译。
收集与翻译
sgcLocalization 通过 RTTI 读取您的窗体、框架和数据模块,并列出找到的每个文本属性:标题、提示、列标题、列表项等。忽略规则会排除绝不能翻译的属性,内置的默认规则已涵盖常见的非文本属性。在代码中创建的文本会作为文本片段显式添加,同一个词需要两种译法时可加上上下文,文本随数字变化时可加上复数形式。
sgcT 处理在代码中创建的文本,支持上下文和复数形式
收集与翻译
将一种语言导出为 XLIFF 1.2 文件,交给译员,译文返回后再导入该文件。任何内容都不会被盲目写入:导入会先打开复核窗口,逐行显示旧文本、新文本和更改类型。有问题的行(例如格式说明符与源文本不再一致)会被标出,由您选择应用哪些行。
收集与翻译
让 AI 服务把新增和已更改的文本翻译成您选择的语言,并可使用您自己的术语表以及关于语气和术语的说明。AI 的译文先以建议的形式出现在当前文本旁边,由您逐条接受或拒绝。编辑器通过 sgcUI 的 AI 提供商与 AI 通信。安装 sgcWebSockets 后即可使用 ChatGPT、Claude、Gemini、Ollama 等服务,没有它时,也可以通过一个事件在您自己的代码中调用任何服务。
对每条文本的检查,以及自上次发布以来变化的清晰视图。
让译文保持正确
译文丢掉一个 %d 或快捷键,只会让使用该语言的用户遇到问题,因此很容易被漏掉。sgcLocalization 会检查格式说明符、占位符、快捷键、换行、开头和结尾的空白、空译文以及复数形式。手工译文、导入的译文和 AI 译文都经过相同的检查。复数文本遵循各语言的 CLDR 规则,因此编辑器只要求该语言所需的形式。
每个项目都有一个状态:新增、已更改、建议、已翻译、已审阅或已废弃。发布时标记一个版本,“自以下版本起新增或更改”筛选器就会显示此后新增或编辑的内容,因此新文本不会被遗漏。已从应用程序中删除的文本会被保留,并作为建议重复使用。
调用 sgcSetLanguage('de'),或在窗体上放一个现成的语言组合框。整个应用程序会一次性切换,之后创建的窗体也会自动翻译。从右到左的语言还会切换布局方向。
译文保存在一个 .sgcloc 项目文件中。它是 JSON 格式,便于版本控制。项目也可以嵌入窗体文件。
翻译编辑器本身提供 12 种语言以及浅色和深色主题。它在设计时和作为独立工具时是同一个编辑器,因此译员不需要 IDE。
窗体无需代码即可翻译。您只需写一行代码来切换语言,并包装在代码中创建的文本。
uses
sgcLocalization_Engine;
procedure TfrmMain.ShowSelection(aCount: Integer);
begin
// 将整个应用程序切换为德语
sgcSetLanguage('de');
// 在代码中创建的文本
ShowMessage(sgcT('The order has been saved.'));
// 同一个词带上下文,当它需要单独的译文时
lblState.Caption := sgcTC('order status', 'Open');
// 复数:与当前语言中 aCount 相符的形式
lblCount.Caption := Format(sgcTN('%d order selected',
'%d orders selected', aCount), [aCount]);
end;sgcLocalization 不单独销售,也没有自己的价格。每个 sgcUI 版本,以及作为单品包购买的每款 sgcUI 产品,都免费包含它。
适用于 VCL 应用程序的本地化组件。它会把当前语言应用到您的窗体。
适用于 VCL 的现成组合框,列出项目中的语言,并在用户选择后切换应用程序。
适用于 FireMonkey 应用程序的同一个本地化组件。
适用于 FireMonkey 的语言组合框。
可在 IDE 中于设计时打开,也可作为独立工具运行,提供 12 种语言以及浅色和深色主题。
用于在代码中创建的文本的函数:普通文本、带上下文的文本和复数。
| 目标 | 框架 | 平台 |
|---|---|---|
| Delphi 7 至 13 | VCL | Windows |
| Delphi | FireMonkey | FireMonkey 可运行之处:Windows、macOS、iOS、Android 和 Linux |
| C++ Builder | VCL 和 FireMonkey | 该框架所支持的平台 |
| Lazarus | LCL | Windows 和 Linux |
无需额外费用。每个 sgcUI 版本,以及作为单品包购买的每款 sgcUI 产品,都包含 sgcLocalization。它不单独销售。
不需要。窗体、框架和数据模块的文本属性通过 RTTI 找出,因此窗体保持原样。只有在代码中创建的文本需要修改:用 sgcT 包装它,并将其作为文本片段添加到项目中。
可以。sgcSetLanguage 只需一行代码就能切换整个应用程序,语言组合框无需代码也能做到。之后创建的窗体会自动翻译,从右到左的语言还会切换布局方向。
编辑器使用 sgcUI 的 AI 提供商。安装 sgcWebSockets 后,它可连接 ChatGPT、Claude、Gemini、Ollama 等服务。没有 sgcWebSockets 时,由一个事件把请求交给您,您可以在自己的代码中调用任何服务。无论哪种方式,译文都以建议的形式出现,由您接受或拒绝。
新的扫描会把新增的文本标记为新增,把被编辑的文本标记为已更改,现有译文保持不变。“自以下版本起新增或更改”筛选器会列出版本标记之后被改动的内容。已被删除的文本会变为已废弃,保留在项目中,并作为建议重复使用。
保存在一个 JSON 格式的 .sgcloc 项目文件中,便于配合版本控制使用,也可以嵌入窗体文件。
Delphi 7 至 13、C++ Builder 和 Lazarus,支持 VCL、FireMonkey 和 LCL,并可在框架所支持的 Windows、macOS、iOS、Android 和 Linux 上运行。
sgcLocalization 记录在 sgcUI 帮助中:Delphi 和 C++ Builder。
Delphi 和 C++ Builder,涵盖每一款 sgcUI 产品。