本页介绍了 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.title、split.tags)save、close、submit)消息属性文件中的示例
# 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
来源
某些键不应针对特定语言进行翻译。这些例外情况在忽略列表配置文件中进行管理
来源
国际化系统与应用程序中的 Thymeleaf 模板集成。消息键使用 Thymeleaf 的 #{key} 语法进行引用。
来源
README 文件维护着所有支持语言及其翻译完成百分比的最新列表。例如英语有 100% 的覆盖率,而其他语言则处于不同的完成阶段。
翻译状态示例 (来自 README)
| 语言 | 进度 |
|---|---|
| 英语 (English) (en_GB) | |
| 英语 (US) (en_US) | |
| 意大利语 (Italiano) (it_IT) | |
| 德语 (Deutsch) (de_DE) | |
| 俄语 (Русский) (ru_RU) | |
| 波兰语 (Polski) (pl_PL) | |
| 阿拉伯语 (العربية) (ar_AR) |
来源
国际化系统已集成到应用程序的所有层中
来源
Stirling-PDF 中的国际化系统为应用程序支持多种语言提供了一个强大的框架。目前已支持 39 种以上语言(不同程度的完整度),该系统可以轻松切换语言,并确保应用程序能够被全球用户访问。消息组织结构化方法以及与 Spring Boot 和 Thymeleaf 的集成,使得维护和扩展语言支持变得简单明了。