{"repo":"adrielcafe/lyricist","free":true,"listed":false,"github":"https://github.com/adrielcafe/lyricist","clone":"git clone https://github.com/adrielcafe/lyricist.git","description":"🌎 The missing I18N/L10N (internationalization/localization) multiplatform library for Compose Multiplatform!","language":"Kotlin","stars":812,"topics":["android","android-library","compose","jetpack-compose","kotlin","kotlin-android","i18n","internationalization","localization","translation"],"license":"MIT","category":"mobile-apps","readme_excerpt":"Lyricist 🌎🌍🌏 The missing I18N and L10N multiplatform library for Jetpack Compose! Jetpack Compose greatly improved the way we build UIs on Android, but not how we interact with strings . stringResource() works well, but doesn't benefit from the idiomatic Kotlin like Compose. Lyricist tries to make working with strings as powerful as building UIs with Compose, i.e. , working with parameterized string is now typesafe, use of when expression to work with plurals with more flexibility, and even load/update the strings dynamically via an API! Features - [x] Multiplatform: Android, Desktop, iOS, Web (JsCanvas) - [x] Simple API to handle locale changes and provide the current strings - [x] Multi module support - [x] Easy migration from strings.xml - [x] Extensible: supports Compose Multiplatform out of the box but can be integrated on any UI Toolkit - [x] Code generation with KSP Limitations The XML processor doesn't handle few and many plural values (PRs are welcome) Why Lyricist ? Inspired by accompanist library: music composing is done by a composer, and since this library is about writing lyrics strings, the role of a lyricist felt like a good name. Usage Take a look at the sample app and sample-multi-module for working examples. Start by declaring your strings on a data class , class or interface (pick one). The strings can be anything (really, it's up to you): Char , String , AnnotatedString , List , Set or even lambdas! Next, create instances for each supported language an","default_branch":null,"files":null,"tree":[],"storefront":"/r/adrielcafe","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/adrielcafe/lyricist/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}