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

1.3 KiB

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.
// 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.