菜单

国际化

相关源文件

本页介绍了 Stirling-PDF 中使用的国际化 (i18n) 系统,解释了如何实现和管理多语言支持。该系统目前支持 39 种以上语言,翻译完整度各不相同。有关添加新语言的信息,请参阅 添加新语言

系统概览

Stirling-PDF 的国际化系统基于 Java 的 ResourceBundle 机制,并与 Spring Boot 和 Thymeleaf 模板集成。该系统为所有 UI 元素提供翻译,允许在运行时切换语言,并支持从左到右 (LTR) 和从右到左 (RTL) 的语言。

来源

消息资源

所有 UI 文本都已外部化为消息资源文件,遵循 messages_[language_code].properties 模式。基本文件是 messages_en_GB.properties,它作为所有翻译的参考。

资源文件结构

每个消息文件都按部分组织,键按功能分组

来源

键命名约定

消息键遵循结构化的命名模式

  • 基于部分的名称(例如,home.navbar.settings.
  • 特定功能的键(例如,merge.titlesplit.tags
  • 通用操作键(例如,saveclosesubmit

消息属性文件中的示例

# Generic terms
true=True
false=False
unknown=Unknown
save=Save
close=Close

# Feature-specific
home.merge.title=Merge
home.merge.desc=Easily merge multiple PDFs into one
merge.tags=merge,page operations,back end,server side

来源

支持的语言

Stirling-PDF 目前支持 39 种以上语言,翻译完整度各不相同。该实现同时支持从左到右和从右到左的书写系统。

语言方向支持

每个语言文件都使用 language.direction 属性来指定其文本方向

# the direction that the language is written (ltr = left to right, rtl = right to left)
language.direction=ltr

阿拉伯语等从右到左的语言使用

language.direction=rtl

来源

语言选择界面

应用程序在导航栏中提供了一个语言选择器,允许用户在运行时切换语言

来源

翻译流程

翻译文件

每种语言都有自己的属性文件,包含与参考英文文件相同的键,但值为翻译后的文本。例如:

英语 (messages_en_GB.properties)

pdfPrompt=Select PDF(s)
multiPdfPrompt=Select PDFs (2+)

意大利语 (messages_it_IT.properties)

pdfPrompt=Scegli PDF
multiPdfPrompt=Scegli 2 o più PDF

来源

翻译忽略列表

某些键不应针对特定语言进行翻译。这些例外情况在忽略列表配置文件中进行管理

来源

与 UI 集成

国际化系统与应用程序中的 Thymeleaf 模板集成。消息键使用 Thymeleaf 的 #{key} 语法进行引用。

Thymeleaf 集成示例

来源

翻译状态

README 文件维护着所有支持语言及其翻译完成百分比的最新列表。例如英语有 100% 的覆盖率,而其他语言则处于不同的完成阶段。

翻译状态示例 (来自 README)

语言进度
英语 (English) (en_GB)100%
英语 (US) (en_US)100%
意大利语 (Italiano) (it_IT)99%
德语 (Deutsch) (de_DE)94%
俄语 (Русский) (ru_RU)94%
波兰语 (Polski) (pl_PL)96%
阿拉伯语 (العربية) (ar_AR)84%

来源

系统架构集成

国际化系统已集成到应用程序的所有层中

来源

结论

Stirling-PDF 中的国际化系统为应用程序支持多种语言提供了一个强大的框架。目前已支持 39 种以上语言(不同程度的完整度),该系统可以轻松切换语言,并确保应用程序能够被全球用户访问。消息组织结构化方法以及与 Spring Boot 和 Thymeleaf 的集成,使得维护和扩展语言支持变得简单明了。