- 新增 LocaleManager:语言偏好存 SharedPreferences,createConfigurationContext + LocaleList 包装 Application/MainActivity 的 attachBaseContext(零新依赖) - 设置页新增语言卡片与选择对话框:跟随系统 / 简体中文 / 繁體中文 / English - 新增繁体中文 values-b+zh+Hant(434 条,OpenCC s2twp 台湾标准转换+人工修正) - 简体目录改为 values-b+zh+Hans(BCP-47,与繁体对称;AGP9 不接受 values-zh-Hans) - widget_brand 可翻译:英=Rainy / 简繁=雨晴喵;app_name 可翻译:英=RainyToken / 简繁=雨晴Token - 资源三语言 434/434/434 对齐,占位符零差异
31 lines
937 B
Kotlin
31 lines
937 B
Kotlin
package com.rainy.token
|
||
|
||
import android.app.Application
|
||
import android.content.Context
|
||
import dagger.hilt.android.HiltAndroidApp
|
||
|
||
/**
|
||
* RainyToken 入口 Application。
|
||
*
|
||
* @HiltAndroidApp 触发 Hilt 组件树的生成(SingletonComponent 等),
|
||
* 整个 APP 的所有 @Inject 依赖都依赖它。
|
||
*/
|
||
@HiltAndroidApp
|
||
class RainyTokenApplication : Application() {
|
||
override fun attachBaseContext(base: Context) {
|
||
// 应用内语言偏好(跟随系统 / 中文 / English)在 Application 层生效,
|
||
// 保证 appContext 与系统级回调(如小组件)之外的代码都使用所选语言。
|
||
super.attachBaseContext(com.rainy.token.util.LocaleManager.wrapContext(base))
|
||
}
|
||
|
||
override fun onCreate() {
|
||
super.onCreate()
|
||
appContext = applicationContext
|
||
}
|
||
|
||
companion object {
|
||
@Volatile
|
||
lateinit var appContext: Context
|
||
private set
|
||
}
|
||
} |