{"id":38649654,"url":"https://github.com/aormsby/android-locale-resource-generator","last_synced_at":"2026-01-17T09:18:28.199Z","repository":{"id":130806801,"uuid":"583826318","full_name":"aormsby/android-locale-resource-generator","owner":"aormsby","description":"A Gradle plugin for Android projects. Generate `locale-config.xml` files for Android API 33 along with source code for an in-app language selector.","archived":false,"fork":false,"pushed_at":"2024-08-04T14:33:42.000Z","size":110,"stargazers_count":6,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-04T23:17:12.408Z","etag":null,"topics":["android","android-plugin","automation","gradle-plugin","kotlin","language-support","localization"],"latest_commit_sha":null,"homepage":"","language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aormsby.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-31T04:05:18.000Z","updated_at":"2024-08-04T14:00:41.000Z","dependencies_parsed_at":"2024-08-02T23:05:39.539Z","dependency_job_id":"5a9013e2-a82f-4f96-850d-a71179720250","html_url":"https://github.com/aormsby/android-locale-resource-generator","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/aormsby/android-locale-resource-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aormsby%2Fandroid-locale-resource-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aormsby%2Fandroid-locale-resource-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aormsby%2Fandroid-locale-resource-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aormsby%2Fandroid-locale-resource-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aormsby","download_url":"https://codeload.github.com/aormsby/android-locale-resource-generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aormsby%2Fandroid-locale-resource-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28505169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-plugin","automation","gradle-plugin","kotlin","language-support","localization"],"created_at":"2026-01-17T09:18:28.024Z","updated_at":"2026-01-17T09:18:28.151Z","avatar_url":"https://github.com/aormsby.png","language":"Groovy","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Android Locale Resource Generator\n\nA Gradle plugin for Android projects to automate locale configuration and provide supporting source/resource files.\nBuilt with Android Gradle Plugin (AGP) 7.5.0\n\n## Functionality\n\n- Generates `locale-config.xml` file for Android [per-app language settings](https://developer.android.com/guide/topics/resources/app-languages)\n- Generates `SupportedLocales` Kotlin class for in-app access to your configured locales\n- Includes pseudolocale support when pseudolocales enabled for build variant\n\n## Community and Docs\n\n- [Wiki](../../wiki) for more details on language tag support and plugin configuration\n- [Discussions](../../discussions) for project roadmap, ideas, Q\u0026A, and polls\n- [Issues](../../issues) for found bugs and reporting specific locale issues\n\n## Setup\n\n### Plugin Dependency Management\n\n```kotlin\n// File - settings.gradle.kts (project settings)\n\ndependencyResolutionManagement {\n    // don't modify\n}\n\n// add this if you don't have it\npluginManagement {\n    repositories {\n        gradlePluginPortal()\n        google()\n    }\n}\n```\n\n### Project Locale Configuration\n\nThe `resourceConfigurations` property is a list of explicitly configured resource types to be added to your project. Often, it's used to prevent building your project with extra resources you don't need (like locale resources you don't support coming from project dependencies)\n\nSince it's good practice to specify resources in use, this plugin utilizes the same `resourceConfigurations` list to guide its resource generation. Add your supported locales into this list, and the plugin will handle the rest!\n\n```kotlin\n// File -  build.gradle.kts (app module)\n\nplugins {\n    //...\n    id(\"com.mermake.locale-resource-generator\") version \"{{latest}}\"\n}\n\nandroid {\n    //...\n    defaultConfig {\n        //...\n        resourceConfigurations.addAll(\n            listOf(\n                \"en\",\n                \"en-rUS\",\n                \"es\",\n                \"es-rUS\",\n                \"b+de+DE\",\n                \"en-rXA\",\n                \"ar-rXB\"\n            )\n        )\n    }\n}\n```\n\u003e See the wiki page on [Locales and Android Support](../../wiki/Locales-and-Android-Support) for details on supported language tags.\n\n### Manifest Configuration\n\n```xml\n\u003c!-- AndroidManifest.xml --\u003e\n\u003capplication\u003e\n    \u003c!-- Include this line in your application tag. The file is generated when you build or run the locale config task. --\u003e\n    android:localeConfig=\"@xml/locale_config\"\n  \n    \u003c!-- Add this for supporting lower than API 33 (see Android docs for more info) --\u003e\n    \u003cservice\n            android:name=\"androidx.appcompat.app.AppLocalesMetadataHolderService\"\n            android:enabled=\"false\"\n            android:exported=\"false\"\u003e\n            \u003cmeta-data\n                android:name=\"autoStoreLocales\"\n                android:value=\"true\" /\u003e\n        \u003c/service\u003e\n\u003c/application\u003e\n```\n\n## Gradle Tasks\n\nThe plugin runs its tasks automatically before the `preBuild` step of your normal builds. A variant task is configured for each of your project's build variants. (debug, release, wumbo, etc.)\n- `generateLocaleConfig[Variant]` - generates `locale_config.xml` resource file\n- `generateSupportedLocales[Variant]` - generates `SupportedLocales.kt` class\n- `soakConfiguredLocales[Variant]` - creates the intermediate files with supported locale information that is used in the other tasks\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faormsby%2Fandroid-locale-resource-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faormsby%2Fandroid-locale-resource-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faormsby%2Fandroid-locale-resource-generator/lists"}