android-localization-apply

Audits and applies localization conformance for existing Android apps against a spec corpus.

Updated Aug 10, 2026
One-click install
npx skills add https://github.com/nolte/claude-android-engineering --skill android-localization-apply-nolte
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: android-localization-apply
Source: https://github.com/nolte/claude-android-engineering/tree/main/skills/android-localization-apply
Command: npx skills add https://github.com/nolte/claude-android-engineering --skill android-localization-apply-nolte

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Existing Android apps often accumulate hard-coded strings, missing translations, broken plurals, and incomplete locale wiring. This Skill audits an existing app against the spec/android/localization/ rule set and then applies the missing pieces with per-item operator approval, closing on a green Gradle build and lint run. ## Core Features & Use Cases - Read-only audit: Scans resources, Kotlin sources, manifest, build scripts, and lint output, producing a severity-classified findings report (Critical/Warning/Suggestion/Info) with file, line, and spec section per finding. - Guided apply workflow: Externalizes hard-coded strings, fixes plurals and placeholders, migrates resourceConfigurations to localeFilters, adds generateLocaleConfig, wires the AppCompatDelegate language picker, enables pseudolocales, and adds per-locale and font-scale previews. - Locale-correct code fixes: Replaces hand-built date/number patterns with ICU formatters, enforces Locale.ROOT, Collator, BidiFormatter, and RTL start/end conventions. - Use Case: You inherit an English-only Compose app and need it to ship English and German with an in-app language switcher. Run the audit to get a findings report, approve the apply plan item by item, and finish with a verified pseudolocale pass and green build. ## Quick Start Ask the assistant to audit and localize your existing Android app and add an in-app language picker, approving each proposed change as it is presented.

Frequently Asked Questions about android-localization-apply

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I localize an existing Android app with Jetpack Compose?

Run the audit operation first to get a severity-classified findings report, then approve an apply plan that externalizes strings, fixes plurals, wires localeFilters and generateLocaleConfig, and adds an AppCompatDelegate language picker. The workflow closes on a green Gradle build and lint run.

How to add an in-app language picker to an Android app?

Use AppCompatDelegate.setApplicationLocales with LocaleListCompat.forLanguageTags on the main thread, offer a system-default option via getEmptyLocaleList, and derive options from the declared locale config. Below Android 13, the autoStoreLocales manifest service persists the choice.

What is the difference between resourceConfigurations and localeFilters in AGP?

resourceConfigurations is deprecated since AGP 8.8; androidResources.localeFilters replaces its language filtering. The two must never coexist in a build script, and on older AGP versions the deprecated form should not be written.

Does this work for creating a new Android project?

No, it only operates on existing Android projects with a Gradle application module. New project scaffolding with a bilingual baseline is routed to the android-project-scaffold skill, and new screens go to android-compose-ui.

Why does ImpliedQuantity lint fire on my plurals?

ImpliedQuantity fires when a plural item's text omits the number, because categories like 'one' cover values such as 101 in some languages. Every quantity string must include the number as a positional placeholder like %1$d.

Can the audit run without changing any files?

Yes, the audit operation is strictly read-only: it scans resources, Kotlin sources, the manifest, build scripts, and lint output, then writes only an optional findings report to .audits/android-localization/. Nothing in the project is modified.