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
- 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)
35 lines
1.3 KiB
Markdown
35 lines
1.3 KiB
Markdown
# Internationalization
|
|
|
|
The **host** builder UI is localized into 10 languages. (This is separate from the per-app translation overlay that translates generated-app *content*.)
|
|
|
|
## Supported languages
|
|
|
|
Chinese, English, Arabic (full RTL), Portuguese, Spanish, French, German, Russian, Japanese, Korean.
|
|
|
|
## Where strings live
|
|
|
|
Host UI strings live in `app/src/main/java/br/com/drukstech/codeapp/core/i18n/Strings.kt`, split across the `Strings` / `StringsA` … `StringsE` objects (all in that one file).
|
|
|
|
## Adding a user-facing string
|
|
|
|
1. Add the property on the correct `Strings*` split object, matching the surrounding style.
|
|
2. Provide **all 10 languages.** A new host string without full coverage is incomplete.
|
|
3. Reference it from Compose/UI the same way neighboring code does.
|
|
|
|
```kotlin
|
|
// Illustrative — match the actual split-object style in Strings.kt
|
|
val myNewLabel: String
|
|
get() = when (Strings.lang) {
|
|
AppLanguage.CHINESE -> "我的标签"
|
|
AppLanguage.ENGLISH -> "My label"
|
|
AppLanguage.ARABIC -> "..."
|
|
// ... all 10, never `else`
|
|
}
|
|
```
|
|
|
|
## Rules
|
|
|
|
- Prefer adding properties on the **existing split objects**; don't create new localization mechanisms.
|
|
- Arabic must be full RTL — verify layout mirrors correctly.
|
|
- Do not hard-code user-facing text in Compose screens; always route through `Strings`.
|