Android kotlin library for change ui language in android application on runtime.
Add mavenCentral() to your repositories and include the dependency in your module build.gradle:
repositories { mavenCentral() } dependencies { implementation 'com.ninenox.kotlinlocalemanager:kotlin-locale-manager:1.0.1' } - Create class and extend
ApplicationLocale.
class App : ApplicationLocale() { } - In
AndroidManifest.xml
<application android:name=".App" ... /> - In folder
resadd new locale.
values-th - strings.xml values-en - strings.xml - In any
ActivityextendAppCompatActivityBaseon it.
class MainActivity : AppCompatActivityBase() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) ... } } - Call funtion
setNewLocale("...")for set current language and refresh UI.
setNewLocale(LocaleManager.LANGUAGE_ENGLISH) // ตัวอย่าง LocaleManager.LANGUAGE_ENGLISH, LocaleManager.LANGUAGE_THAI, ... - Get current language code string. The value of language will be a lowercase language code such as "en" or "th", and it is recommended to access it via ApplicationLocale.localeManager?.language to use the locale manager that is shared throughout the app.
ApplicationLocale.localeManager?.language // "en" - Get current
Localeinstance.
LocaleManager.getLocale(resources) will return the current Locale and can be used for country checks or locale-aware formatting.
val locale = LocaleManager.getLocale(resources) if (locale.country == "TH") { // ประเทศไทย } val dateFormat = java.text.DateFormat.getDateInstance(java.text.DateFormat.SHORT, locale) val formattedDate = dateFormat.format(java.util.Date())Run unit tests with Gradle:
./gradlew test This command executes the library's test suite.
Licensed under the Apache License 2.0. See the LICENSE file for details.

