OpenCode AI e9899d2e6d
Some checks failed
Android CI Build / check (push) Has been cancelled
Android CI Build / package-apks (push) Has been cancelled
Docs Deploy / build (push) Has been cancelled
Module Market Check / Validate modules/ (push) Has been cancelled
Module Market Publish / Generate submissions.json (push) Has been cancelled
Docs Deploy / deploy (push) Has been cancelled
Initial DruksCode V2: fresh fork of web-to-app (f3b488e) with DruksCode identity
- Package rename com.webtoapp -> br.com.drukstech.codeapp
- Product rename WebToApp/web-to-app -> DruksCode/drukscode
- Design system Wta* -> Dkc*
- applicationId br.com.drukstech.codeapp (.play for gplay flavor)
- rootProject.name DruksCode
- Fresh git history (upstream kept as remote for sync)
2026-09-12 02:42:02 +02:00

35 lines
1.3 KiB
Markdown

# 国际化
**宿主**构建器界面本地化为 10 种语言。(这与按应用配置、翻译生成应用*内容*的翻译叠加层相互独立。)
## 支持的语言
中文、英文、阿拉伯文(完整 RTL)、葡萄牙文、西班牙文、法文、德文、俄文、日文、韩文。
## 字符串在哪里
宿主 UI 字符串位于 `app/src/main/java/br/com/drukstech/codeapp/core/i18n/Strings.kt`,拆分在 `Strings` / `StringsA` … `StringsE` 对象之间(都在这一个文件里)。
## 添加用户可见字符串
1. 在正确的 `Strings*` 拆分对象上添加属性,匹配周围风格。
2. 提供**全部 10 种语言。** 缺少完整覆盖的新宿主字符串是不完整的。
3. 像相邻代码那样从 Compose/UI 引用它。
```kotlin
// 示意 —— 匹配 Strings.kt 中实际的拆分对象风格
val myNewLabel: String
get() = when (Strings.lang) {
AppLanguage.CHINESE -> "我的标签"
AppLanguage.ENGLISH -> "My label"
AppLanguage.ARABIC -> "..."
// ... 全部 10 种,绝不用 `else`
}
```
## 规则
- 优先在**现有拆分对象**上添加属性;不要创建新的本地化机制。
- 阿拉伯文必须完整 RTL —— 验证布局正确镜像。
- 不要在 Compose 界面中硬编码用户可见文本;始终经由 `Strings`。