localization

star 1.6k

Use when adding, editing, or reviewing user-facing strings in the Alkaa project — UI labels, button text, content descriptions, empty states, error messages, plurals, or any text visible to the user.

igorescodro By igorescodro schedule Updated 3/28/2026

name: localization description: Use when adding, editing, or reviewing user-facing strings in the Alkaa project — UI labels, button text, content descriptions, empty states, error messages, plurals, or any text visible to the user.

Localization

Overview

All user-facing strings live in the resources module and must be translated for every supported language. Non-user-facing strings (previews, logs) may be hardcoded.

Naming Convention

<feature-name>_<component-name>_<description>
Example Feature Component Description
task_list_header_empty task list header_empty
category_cd_add_category category cd_add_category
task_alarm_permission_dialog_title task alarm_permission_dialog title

Use _cd_ in the component/description segment for content descriptions.

Where to Add

  • File: resources/src/commonMain/composeResources/values/strings.xml
  • Plurals: resources/src/commonMain/composeResources/values/plurals.xml

Place new strings:

  • Next to existing entries for the same feature, OR
  • In a new <!-- Feature --> comment block if no block exists yet
<!-- MyFeature -->
<string name="myfeature_screen_title">My Title</string>
<string name="myfeature_button_save">Save</string>
<string name="myfeature_cd_close">Close</string>

Supported Languages

Provide a translation in all four language files:

Directory Language
values/ English (default)
values-es/ Spanish
values-fr/ French
values-pt-rBR/ Portuguese (Brazil)

Each language directory contains strings.xml and plurals.xml. Add the new entry to the matching location in each file.

Plurals

Same rules apply. Use plurals.xml instead of strings.xml:

<!-- Tracker -->
<plurals name="tracker_message_title">
    <item quantity="one">%1$d completed task</item>
    <item quantity="other">%1$d completed tasks</item>
</plurals>

What NOT to Localize

Hardcode strings that are not user-facing:

  • Composable preview annotations (name = "TaskItem - Loading")
  • Log/debug messages
  • Internal identifiers

Common Mistakes

Mistake Fix
Reusing a string across two features Create a separate entry per feature, even if text is identical
Adding only to values/ Add to all four language directories
Hardcoding a content description Content descriptions are user-facing — add to resources
Skipping plurals translation Apply the same four-language rule to plurals.xml
Install via CLI
npx skills add https://github.com/igorescodro/alkaa --skill localization
Repository Details
star Stars 1,633
call_split Forks 162
navigation Branch main
article Path SKILL.md
More from Creator