From e63f210cc855b1da4dac44d3ce132a4620312bc6 Mon Sep 17 00:00:00 2001 From: Kr328 <39107975+Kr328@users.noreply.github.com> Date: Wed, 19 Feb 2020 02:46:38 +0800 Subject: [PATCH] add zh-cn --- .../kr328/clash/settings/InterfaceFragment.kt | 31 +---- .../kr328/clash/settings/SettingsDataStore.kt | 7 ++ app/src/main/res/values-zh/arrays.xml | 18 +++ app/src/main/res/values-zh/strings.xml | 117 ++++++++++++++++++ 4 files changed, 147 insertions(+), 26 deletions(-) create mode 100644 app/src/main/res/values-zh/arrays.xml create mode 100644 app/src/main/res/values-zh/strings.xml diff --git a/app/src/main/java/com/github/kr328/clash/settings/InterfaceFragment.kt b/app/src/main/java/com/github/kr328/clash/settings/InterfaceFragment.kt index 8a1093a..3c002f2 100644 --- a/app/src/main/java/com/github/kr328/clash/settings/InterfaceFragment.kt +++ b/app/src/main/java/com/github/kr328/clash/settings/InterfaceFragment.kt @@ -13,36 +13,15 @@ class InterfaceFragment: BaseSettingFragment() { override fun onCreateDataStore(): SettingsDataStore { return SettingsDataStore().apply { - on(KEY_DARK_MODE, DarkModeSource()) + on(KEY_DARK_MODE, UiSettings.DARK_MODE.asSource(ui)) on(KEY_LANGUAGE, UiSettings.LANGUAGE.asSource(ui)) + + onApply { + requireActivity().recreate() + } } } override val xmlResourceId: Int get() = R.xml.settings_interface - - private inner class DarkModeSource: SettingsDataStore.Source { - override fun set(value: Any?) { - ui.commit { - put(UiSettings.DARK_MODE, value as String) - } - - requireActivity().recreate() - } - - override fun get(): Any? { - return when ( activity.delegate.localNightMode ) { - AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM -> - UiSettings.DARK_MODE_AUTO - AppCompatDelegate.MODE_NIGHT_YES -> - UiSettings.DARK_MODE_DARK - AppCompatDelegate.MODE_NIGHT_NO -> - UiSettings.DARK_MODE_LIGHT - else -> UiSettings.DARK_MODE_AUTO - } - } - - private val activity: AppCompatActivity - get() = requireActivity() as AppCompatActivity - } } \ No newline at end of file diff --git a/app/src/main/java/com/github/kr328/clash/settings/SettingsDataStore.kt b/app/src/main/java/com/github/kr328/clash/settings/SettingsDataStore.kt index c0c5070..6271b3f 100644 --- a/app/src/main/java/com/github/kr328/clash/settings/SettingsDataStore.kt +++ b/app/src/main/java/com/github/kr328/clash/settings/SettingsDataStore.kt @@ -10,11 +10,16 @@ class SettingsDataStore: PreferenceDataStore() { } private val sources: MutableMap = mutableMapOf() + var applyListener: () -> Unit = {} fun on(key: String, source: Source) { sources[key] = source } + fun onApply(block: () -> Unit) { + this.applyListener = block + } + inline fun BaseSettings.Entry.asSource(settings: BaseSettings): Source { return object: Source { override fun set(value: Any?) { @@ -23,6 +28,8 @@ class SettingsDataStore: PreferenceDataStore() { settings.commit { put(this@asSource, v as T) } + + applyListener() } override fun get(): Any? { diff --git a/app/src/main/res/values-zh/arrays.xml b/app/src/main/res/values-zh/arrays.xml new file mode 100644 index 0000000..f350ab2 --- /dev/null +++ b/app/src/main/res/values-zh/arrays.xml @@ -0,0 +1,18 @@ + + + + 允许所有应用 + 仅允许已选择的应用 + 不允许已选择的应用 + + + 自动 + 暗黑 + 明亮 + + + 自动 + 英文 + 简体中文 + + \ No newline at end of file diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml new file mode 100644 index 0000000..92c624d --- /dev/null +++ b/app/src/main/res/values-zh/strings.xml @@ -0,0 +1,117 @@ + + + 为应用配置访问权限 + 关于 + 访问控制 + 访问控制模式 + 访问控制应用包列表 + 追加系统 DNS + 自动追加系统 DNS 到 clash + 应用损坏 + Clash for Android + 自动更新 + 行为 + 启动 + 绕过私有网络 + 绕过私有网络地址 + 取消 + 正在捕捉日志 + Clash 日志捕捉工具 + 新配置 + Clash 启动失败 + 创建配置 + 暗黑模式 + 默认 + 延迟 + 删除 + 删除所有日志 + 所有历史日志将丢失 + 删除日志 + %s 将被删除 + 详情 + 直连 + 直连模式 + 已禁用 + DNS 劫持 + 处理所有 DNS 数据包 + DNS 配置覆盖 + 强制使用内置 DNS 配置 + 下载失败 + 复制 + 编辑 + 编辑配置 + 空名称 + 启用 IPv6 支持 (不建议) + 已启用 + 退出而不保存 + 所有变更将会丢失 + 导出 + 外部 + 反馈 + 文件 + 文件已导出 + %s %s + %d 天 + %s %s.log + %d 小时 + %d 分钟 + %d 月 + %s 已激活 + %s 已转发 + %d 年 + 全局 + 全局模式 + 历史 + 从文件导入 + 从 URL 导入 + 以分钟计算 + 界面 + 无效的间隔 + 无效的 URL + IPv6 + 语言 + Clash + 日志查看器 + 日志 + 前缀合并 + 模式 + 名称 + 网络 + 新配置 + 未选择 + 通知 + 确认 + 打开日志失败 + 处理中 + 配置 + 配置名称 + 配置 URL + 配置文件 + 参数 + 代理 + 近期 + 刷新 + 重置外部引用 + 路由系统流量 + 通过 VpnService 路由所有系统流量 + 规则 + 规则模式 + 运行中 + 发送 + 设置 + 显示流量 + 在通知中自动刷新流量 + 代理组排序 + 代理排序 + 在系统启动时启动 Clash + 开机时启动 + 打开 URL 提供商 失败 + 已停止 + 支持 + 点此启动 + 未知 + 更新 + URL + 实用工具 + VPN Service + \ No newline at end of file