.claude/skills/localization/SKILL.md
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.
npx skillsauth add igorescodro/alkaa localizationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
<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.
resources/src/commonMain/composeResources/values/strings.xmlresources/src/commonMain/composeResources/values/plurals.xmlPlace new strings:
<!-- 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>
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.
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>
Hardcode strings that are not user-facing:
name = "TaskItem - Loading")| 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 |
development
A skill for reviewing Android code before it is pushed to production.
documentation
Use when writing a new ViewModel or modifying an existing one in the Alkaa project. Triggers on tasks like "add a ViewModel", "create VM for X screen", "implement state handling", or "connect use case to UI".
testing
Use when writing or modifying unit tests in the Alkaa project — triggers on tasks like "add a test", "write tests for X", "test this ViewModel", "cover this use case with tests", or "add unit test coverage".
testing
Use when writing or modifying UI/Compose instrumented tests in the Alkaa project — triggers on tasks like "add a UI test", "test this composable", "add instrumented test", "test this screen behavior".