Add card darkness adjustment function

- Updated some string translations
This commit is contained in:
ShirkNeko
2025-05-14 19:55:11 +08:00
parent b3b7fa6f4d
commit 4d59ce435e
7 changed files with 155 additions and 29 deletions

View File

@@ -40,6 +40,7 @@ import androidx.compose.material.icons.filled.DarkMode
import androidx.compose.material.icons.filled.KeyboardArrowDown import androidx.compose.material.icons.filled.KeyboardArrowDown
import androidx.compose.material.icons.filled.KeyboardArrowUp import androidx.compose.material.icons.filled.KeyboardArrowUp
import androidx.compose.material.icons.filled.Language import androidx.compose.material.icons.filled.Language
import androidx.compose.material.icons.filled.LightMode
import androidx.compose.material.icons.filled.Opacity import androidx.compose.material.icons.filled.Opacity
import androidx.compose.material.icons.filled.Palette import androidx.compose.material.icons.filled.Palette
import androidx.compose.material.icons.filled.Security import androidx.compose.material.icons.filled.Security
@@ -345,6 +346,7 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
// 卡片配置状态 // 卡片配置状态
var cardAlpha by rememberSaveable { mutableFloatStateOf(CardConfig.cardAlpha) } var cardAlpha by rememberSaveable { mutableFloatStateOf(CardConfig.cardAlpha) }
var cardDim by rememberSaveable { mutableFloatStateOf(CardConfig.cardDim) }
var isCustomBackgroundEnabled by rememberSaveable { var isCustomBackgroundEnabled by rememberSaveable {
mutableStateOf(ThemeConfig.customBackgroundUri != null) mutableStateOf(ThemeConfig.customBackgroundUri != null)
} }
@@ -393,6 +395,7 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
// 加载设置 // 加载设置
CardConfig.load(context) CardConfig.load(context)
cardAlpha = CardConfig.cardAlpha cardAlpha = CardConfig.cardAlpha
cardDim = CardConfig.cardDim
isCustomBackgroundEnabled = ThemeConfig.customBackgroundUri != null isCustomBackgroundEnabled = ThemeConfig.customBackgroundUri != null
// 设置主题模式 // 设置主题模式
@@ -699,10 +702,13 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
isCustomBackgroundEnabled = false isCustomBackgroundEnabled = false
CardConfig.cardElevation CardConfig.cardElevation
CardConfig.cardAlpha = 1f CardConfig.cardAlpha = 1f
CardConfig.cardDim = 0f
CardConfig.isCustomAlphaSet = false CardConfig.isCustomAlphaSet = false
CardConfig.isCustomDimSet = false
CardConfig.isCustomBackgroundEnabled = false CardConfig.isCustomBackgroundEnabled = false
saveCardConfig(context) saveCardConfig(context)
cardAlpha = 1f cardAlpha = 1f
cardDim = 0f
// 重置其他相关设置 // 重置其他相关设置
ThemeConfig.needsResetOnThemeChange = true ThemeConfig.needsResetOnThemeChange = true
@@ -730,7 +736,7 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
) )
) )
// 透明度 Slider // 透明度和亮度调节滑动条
AnimatedVisibility( AnimatedVisibility(
visible = ThemeConfig.customBackgroundUri != null, visible = ThemeConfig.customBackgroundUri != null,
enter = fadeIn() + expandVertically(), enter = fadeIn() + expandVertically(),
@@ -738,6 +744,7 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
modifier = Modifier.padding(horizontal = 32.dp) modifier = Modifier.padding(horizontal = 32.dp)
) { ) {
Column(modifier = Modifier.padding(vertical = 8.dp)) { Column(modifier = Modifier.padding(vertical = 8.dp)) {
// 透明度滑动条
Row( Row(
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.padding(bottom = 4.dp) modifier = Modifier.padding(bottom = 4.dp)
@@ -785,6 +792,55 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
inactiveTrackColor = MaterialTheme.colorScheme.surfaceVariant inactiveTrackColor = MaterialTheme.colorScheme.surfaceVariant
) )
) )
// 亮度调节滑动条
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.padding(top = 16.dp, bottom = 4.dp)
) {
Icon(
Icons.Filled.LightMode,
contentDescription = null,
modifier = Modifier.size(20.dp),
tint = MaterialTheme.colorScheme.primary
)
Spacer(modifier = Modifier.width(8.dp))
Text(
text = stringResource(R.string.settings_card_dim),
style = MaterialTheme.typography.titleSmall
)
Spacer(modifier = Modifier.weight(1f))
Text(
text = "${(cardDim * 100).roundToInt()}%",
style = MaterialTheme.typography.labelMedium,
color = MaterialTheme.colorScheme.onSurfaceVariant
)
}
Slider(
value = cardDim,
onValueChange = { newValue ->
cardDim = newValue
CardConfig.cardDim = newValue
CardConfig.isCustomDimSet = true
prefs.edit {
putBoolean("is_custom_dim_set", true)
putFloat("card_dim", newValue)
}
},
onValueChangeFinished = {
coroutineScope.launch(Dispatchers.IO) {
saveCardConfig(context)
}
},
valueRange = 0f..1f,
steps = 20,
colors = SliderDefaults.colors(
thumbColor = MaterialTheme.colorScheme.primary,
activeTrackColor = MaterialTheme.colorScheme.primary,
inactiveTrackColor = MaterialTheme.colorScheme.surfaceVariant
)
)
} }
} }
} }
@@ -1144,6 +1200,9 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
if (!CardConfig.isCustomAlphaSet) { if (!CardConfig.isCustomAlphaSet) {
CardConfig.cardAlpha = 1f CardConfig.cardAlpha = 1f
} }
if (!CardConfig.isCustomDimSet) {
CardConfig.cardDim = 0.5f
}
CardConfig.save(context) CardConfig.save(context)
} }
1 -> { // 浅色 1 -> { // 浅色
@@ -1153,6 +1212,9 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) {
if (!CardConfig.isCustomAlphaSet) { if (!CardConfig.isCustomAlphaSet) {
CardConfig.cardAlpha = 1f CardConfig.cardAlpha = 1f
} }
if (!CardConfig.isCustomDimSet) {
CardConfig.cardDim = 0f
}
CardConfig.save(context) CardConfig.save(context)
} }
0 -> { // 跟随系统 0 -> { // 跟随系统

View File

@@ -5,6 +5,7 @@ import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.CardDefaults import androidx.compose.material3.CardDefaults
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableFloatStateOf
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
@@ -16,10 +17,15 @@ object CardConfig {
val settingElevation: Dp = 4.dp val settingElevation: Dp = 4.dp
val customBackgroundElevation: Dp = 0.dp val customBackgroundElevation: Dp = 0.dp
var cardAlpha by mutableStateOf(1f) // 卡片透明度
var cardAlpha by mutableFloatStateOf(1f)
// 卡片亮度
var cardDim by mutableFloatStateOf(0f)
// 卡片阴影
var cardElevation by mutableStateOf(settingElevation) var cardElevation by mutableStateOf(settingElevation)
var isShadowEnabled by mutableStateOf(true) var isShadowEnabled by mutableStateOf(true)
var isCustomAlphaSet by mutableStateOf(false) var isCustomAlphaSet by mutableStateOf(false)
var isCustomDimSet by mutableStateOf(false)
var isUserDarkModeEnabled by mutableStateOf(false) var isUserDarkModeEnabled by mutableStateOf(false)
var isUserLightModeEnabled by mutableStateOf(false) var isUserLightModeEnabled by mutableStateOf(false)
var isCustomBackgroundEnabled by mutableStateOf(false) var isCustomBackgroundEnabled by mutableStateOf(false)
@@ -31,9 +37,11 @@ object CardConfig {
val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE) val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE)
prefs.edit().apply { prefs.edit().apply {
putFloat("card_alpha", cardAlpha) putFloat("card_alpha", cardAlpha)
putFloat("card_dim", cardDim)
putBoolean("custom_background_enabled", isCustomBackgroundEnabled) putBoolean("custom_background_enabled", isCustomBackgroundEnabled)
putBoolean("is_shadow_enabled", isShadowEnabled) putBoolean("is_shadow_enabled", isShadowEnabled)
putBoolean("is_custom_alpha_set", isCustomAlphaSet) putBoolean("is_custom_alpha_set", isCustomAlphaSet)
putBoolean("is_custom_dim_set", isCustomDimSet)
putBoolean("is_user_dark_mode_enabled", isUserDarkModeEnabled) putBoolean("is_user_dark_mode_enabled", isUserDarkModeEnabled)
putBoolean("is_user_light_mode_enabled", isUserLightModeEnabled) putBoolean("is_user_light_mode_enabled", isUserLightModeEnabled)
apply() apply()
@@ -46,9 +54,11 @@ object CardConfig {
fun load(context: Context) { fun load(context: Context) {
val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE) val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE)
cardAlpha = prefs.getFloat("card_alpha", 1f) cardAlpha = prefs.getFloat("card_alpha", 1f)
cardDim = prefs.getFloat("card_dim", 0f)
isCustomBackgroundEnabled = prefs.getBoolean("custom_background_enabled", false) isCustomBackgroundEnabled = prefs.getBoolean("custom_background_enabled", false)
isShadowEnabled = prefs.getBoolean("is_shadow_enabled", true) isShadowEnabled = prefs.getBoolean("is_shadow_enabled", true)
isCustomAlphaSet = prefs.getBoolean("is_custom_alpha_set", false) isCustomAlphaSet = prefs.getBoolean("is_custom_alpha_set", false)
isCustomDimSet = prefs.getBoolean("is_custom_dim_set", false)
isUserDarkModeEnabled = prefs.getBoolean("is_user_dark_mode_enabled", false) isUserDarkModeEnabled = prefs.getBoolean("is_user_dark_mode_enabled", false)
isUserLightModeEnabled = prefs.getBoolean("is_user_light_mode_enabled", false) isUserLightModeEnabled = prefs.getBoolean("is_user_light_mode_enabled", false)
updateShadowEnabled(isShadowEnabled) updateShadowEnabled(isShadowEnabled)
@@ -72,9 +82,25 @@ object CardConfig {
* 设置深色模式默认值 * 设置深色模式默认值
*/ */
fun setDarkModeDefaults() { fun setDarkModeDefaults() {
if (!isCustomAlphaSet) {
cardAlpha = 0.70f
}
if (!isCustomDimSet) {
cardDim = 0.5f
}
updateShadowEnabled(isShadowEnabled)
}
/**
* 设置浅色模式默认值
*/
fun setLightModeDefaults() {
if (!isCustomAlphaSet) { if (!isCustomAlphaSet) {
cardAlpha = 1f cardAlpha = 1f
} }
if (!isCustomDimSet) {
cardDim = 0f
}
updateShadowEnabled(isShadowEnabled) updateShadowEnabled(isShadowEnabled)
} }
} }

View File

@@ -110,6 +110,9 @@ fun KernelSUTheme(
if (!isCustomAlphaSet) { if (!isCustomAlphaSet) {
cardAlpha = if (systemIsDark) 0.50f else 1f cardAlpha = if (systemIsDark) 0.50f else 1f
} }
if (!isCustomDimSet) {
cardDim = if (systemIsDark) 0.5f else 0f
}
save(context) save(context)
} }
} }
@@ -148,6 +151,8 @@ fun KernelSUTheme(
val isDarkModeWithCustomBackground = darkTheme && ThemeConfig.customBackgroundUri != null val isDarkModeWithCustomBackground = darkTheme && ThemeConfig.customBackgroundUri != null
if (darkTheme && !dynamicColor) { if (darkTheme && !dynamicColor) {
CardConfig.setDarkModeDefaults() CardConfig.setDarkModeDefaults()
} else if (!darkTheme && !dynamicColor) {
CardConfig.setLightModeDefaults()
} }
CardConfig.updateShadowEnabled(!isDarkModeWithCustomBackground) CardConfig.updateShadowEnabled(!isDarkModeWithCustomBackground)
@@ -199,6 +204,9 @@ fun KernelSUTheme(
} }
} }
// 计算适用的暗化值
val dimFactor = CardConfig.cardDim
MaterialTheme( MaterialTheme(
colorScheme = colorScheme, colorScheme = colorScheme,
typography = Typography typography = Typography
@@ -234,13 +242,13 @@ fun KernelSUTheme(
) )
} }
// 亮度调节层 // 亮度调节层 (根据cardDim调整)
Box( Box(
modifier = Modifier modifier = Modifier
.fillMaxSize() .fillMaxSize()
.background( .background(
if (darkTheme) Color.Black.copy(alpha = 0.6f) if (darkTheme) Color.Black.copy(alpha = 0.6f + dimFactor * 0.3f)
else Color.White.copy(alpha = 0.1f) else Color.White.copy(alpha = 0.1f + dimFactor * 0.2f)
) )
) )
@@ -252,8 +260,8 @@ fun KernelSUTheme(
Brush.radialGradient( Brush.radialGradient(
colors = listOf( colors = listOf(
Color.Transparent, Color.Transparent,
if (darkTheme) Color.Black.copy(alpha = 0.5f) if (darkTheme) Color.Black.copy(alpha = 0.5f + dimFactor * 0.2f)
else Color.Black.copy(alpha = 0.2f) else Color.Black.copy(alpha = 0.2f + dimFactor * 0.1f)
), ),
radius = 1200f radius = 1200f
) )

View File

@@ -305,23 +305,50 @@
<string name="app_settings">アプリの設定</string> <string name="app_settings">アプリの設定</string>
<string name="tools">ツール</string> <string name="tools">ツール</string>
<string name="currently_selected">現在</string> <string name="currently_selected">現在</string>
<!-- String resources used in SuperUser --> <!-- SuperUser 里用到的字符串资源 -->
<string name="clear">削除</string> <string name="clear">クリア</string>
<string name="apps_with_root">root アプリの権限</string> <string name="apps_with_root">ルートアクセスの許可</string>
<string name="apps_with_custom_profile">カスタマイズされたアプリ構成</string> <string name="apps_with_custom_profile">カスタムアプリの設定</string>
<string name="other_apps">その他のアプリ</string> <string name="other_apps">その他のアプリ</string>
<string name="no_apps_found">アプリがりません</string> <string name="no_apps_found">アプリが見つかりません</string>
<string name="selinux_enabled_toast">SELinux 有効</string> <string name="selinux_enabled_toast">SELinux 有効にするステータスを設定します</string>
<string name="selinux_disabled_toast">SELinux 無効</string> <string name="selinux_disabled_toast">SELinux は Permissive に設定されています</string>
<string name="selinux_change_failed">SELinux ステータスの変更に失敗しました</string> <string name="selinux_change_failed">SELinux 状態の変更に失敗しました</string>
<string name="advanced_settings">高度な設定</string> <string name="advanced_settings">詳細設定</string>
<string name="appearance_settings">ツールバーをカスタマイズ</string> <string name="appearance_settings">外観設定</string>
<string name="back">戻る</string> <string name="back">戻る</string>
<string name="expand">最高の状態</string> <string name="expand">表示する</string>
<string name="collapse">設置</string> <string name="collapse">收起</string>
<string name="susfs_enabled">SuSFS 有効</string> <string name="susfs_enabled">SuSFS 有効</string>
<string name="susfs_disabled">SuSFS 無効</string> <string name="susfs_disabled">SuSFS 無効</string>
<string name="background_set_success">背景の設定が成功しました</string> <string name="background_set_success">設定は正常に更新されました</string>
<string name="background_removed">カスタム背景を削除しました</string> <string name="background_removed">カスタム背景を削除しています</string>
<string name="root_require_for_install">root 権限が必要</string> <string name="root_require_for_install">Root権限が必要です</string>
<!-- KPM 显示设置相关 -->
<string name="show_kpm_info">KPMを表示</string>
<string name="show_kpm_info_summary">ホーム画面と底バーで KPM に関する情報を表示します(アプリを再度開く必要があります)</string>
<!-- Webui X 设置相关 -->
<string name="use_webuix">WebUI X を使用</string>
<string name="use_webuix_summary">WebUIではなく、より API をサポートする Web UI X</string>
<string name="use_webuix_eruda">Eruda に Web UI X を注入</string>
<string name="use_webuix_eruda_summary">WebUI Xでデバッグコンソールの注入ができます。デバッグが簡単になりやすいように、WebView のデバッグを有効にする必要があります</string>
<!-- DPI设置相关字符串 -->
<string name="dpi_settings">DPI 設定</string>
<string name="app_dpi_title">DPI を使用</string>
<string name="app_dpi_summary">画面密度を現在のアプリの画面解像度に合わせる</string>
<string name="dpi_size_small"></string>
<string name="dpi_size_medium"></string>
<string name="dpi_size_large">大きく</string>
<string name="dpi_size_extra_large">特大</string>
<string name="dpi_size_custom">カスタム</string>
<string name="dpi_apply_settings">DPI 設定のセットアップ</string>
<string name="dpi_confirm_title">画素密度を変更確認</string>
<string name="dpi_confirm_message">DPI を %1$d から %2$d に変更してもよろしいですか?</string>
<string name="dpi_confirm_summary">アプリの再起動が必要です DPIの設定はシステムステータスバーや他のアプリには影響しません</string>
<string name="dpi_applied_success">DPI は %1$dに設定され、アプリを再起動後に適用されます</string>
<!-- 语言设置相关字符串 -->
<string name="language_setting">アプリの言語</string>
<string name="language_follow_system">システムに従う</string>
<string name="language_changed">変更を適用するには言語の再起動が必要です</string>
<string name="settings_card_dim">暗さされたカード(暗い部分)</string>
</resources> </resources>

View File

@@ -36,11 +36,11 @@
<string name="settings">Cài đặt</string> <string name="settings">Cài đặt</string>
<string name="reboot_userspace">Khởi động lại không gian người dùng</string> <string name="reboot_userspace">Khởi động lại không gian người dùng</string>
<string name="reboot_recovery">Khởi động lại vào Recovery</string> <string name="reboot_recovery">Khởi động lại vào Recovery</string>
<string name="reboot_bootloader">hởi động lại vào Bootloader</string> <string name="reboot_bootloader">Khởi động lại vào Bootloader</string>
<string name="reboot_download">Khởi động lại vào Download Mode</string> <string name="reboot_download">Khởi động lại vào Download Mode</string>
<string name="reboot_edl">Khởi động lại vào EDL</string> <string name="reboot_edl">Khởi động lại vào EDL</string>
<string name="about">Thông tin</string> <string name="about">Thông tin</string>
<string name="module_uninstall_confirm">Bạn có THẬT SỰ muốn gỡ module %s?</string> <string name="module_uninstall_confirm">Bạn có THẬT SỰ muốn gỡ cài đặt module %s không?</string>
<string name="module_uninstall_success">%s đã được gỡ cài đặt</string> <string name="module_uninstall_success">%s đã được gỡ cài đặt</string>
<string name="module_uninstall_failed">Gỡ cài đặt thất bại: %s</string> <string name="module_uninstall_failed">Gỡ cài đặt thất bại: %s</string>
<string name="module_version">Phiên bản</string> <string name="module_version">Phiên bản</string>
@@ -58,7 +58,7 @@
<string name="home_support_title">Hỗ trợ chúng tôi</string> <string name="home_support_title">Hỗ trợ chúng tôi</string>
<string name="home_support_content">KernelSU sẽ luôn là miễn phí và mã nguồn mở. Tuy nhiên, bạn có thể cho chúng tôi thấy rằng bạn quan tâm bằng cách quyên góp.</string> <string name="home_support_content">KernelSU sẽ luôn là miễn phí và mã nguồn mở. Tuy nhiên, bạn có thể cho chúng tôi thấy rằng bạn quan tâm bằng cách quyên góp.</string>
<string name="about_source_code"><![CDATA[Xem mã nguồn tại %1$s<br/>Tham gia kênh %2$s của chúng tôi]]></string> <string name="about_source_code"><![CDATA[Xem mã nguồn tại %1$s<br/>Tham gia kênh %2$s của chúng tôi]]></string>
<string name="profile" translatable="false">App Profile</string> <string name="profile" translatable="false">Hồ sơ ứng dụng</string>
<string name="profile_default">Mặc định</string> <string name="profile_default">Mặc định</string>
<string name="profile_template">Bản mẫu</string> <string name="profile_template">Bản mẫu</string>
<string name="profile_custom">Tuỳ chỉnh</string> <string name="profile_custom">Tuỳ chỉnh</string>
@@ -139,7 +139,7 @@
<string name="log_saved">Logs đã được lưu</string> <string name="log_saved">Logs đã được lưu</string>
<string name="status_supported">Được hỗ trợ</string> <string name="status_supported">Được hỗ trợ</string>
<string name="status_not_supported">Không được hỗ trợ</string> <string name="status_not_supported">Không được hỗ trợ</string>
<string name="status_unknown">Unknown</string> <string name="status_unknown">Không rõ</string>
<string name="sus_su_mode">Chế độ SU của SuS:</string> <string name="sus_su_mode">Chế độ SU của SuS:</string>
<!-- Module related --> <!-- Module related -->
<string name="module_install_confirm">Xác nhận cài đặt Module %1$s</string> <string name="module_install_confirm">Xác nhận cài đặt Module %1$s</string>
@@ -180,7 +180,7 @@
<string name="settings_disable_su">Vô hiệu hoá khả năng của lệnh SU</string> <string name="settings_disable_su">Vô hiệu hoá khả năng của lệnh SU</string>
<string name="settings_disable_su_summary">Vô hiệu hoá khả năng thực thi lệnh SU để lấy quyền root (những app đã cấp trước đó không bị ảnh hưởng).</string> <string name="settings_disable_su_summary">Vô hiệu hoá khả năng thực thi lệnh SU để lấy quyền root (những app đã cấp trước đó không bị ảnh hưởng).</string>
<string name="using_mksu_manager">Bạn đang sử dụng trình quản lý SukiSU Beta</string> <string name="using_mksu_manager">Bạn đang sử dụng trình quản lý SukiSU Beta</string>
<string name="module_install_multiple_confirm">Bạn có chắc muốn cài đặt các Module %d đã chọn không??</string> <string name="module_install_multiple_confirm">Bạn có chắc muốn cài đặt các Module %d đã chọn không?</string>
<string name="module_install_multiple_confirm_with_names">Bạn có chắc muốn cài đặt các module %1$d sau không? \n\n%2$s</string> <string name="module_install_multiple_confirm_with_names">Bạn có chắc muốn cài đặt các module %1$d sau không? \n\n%2$s</string>
<string name="more_settings">Nhiều thiết lập hơn</string> <string name="more_settings">Nhiều thiết lập hơn</string>
<string name="selinux">SELinux</string> <string name="selinux">SELinux</string>
@@ -247,7 +247,7 @@
<string name="home_click_to_ContributionCard_kernelsu">SukiSU Ultra sẽ là một nhánh tương đối độc lập của KSU trong tương lai, nhưng chúng tôi xin cảm ơn KernelSU và MKSU,... vì những đóng góp của họ!</string> <string name="home_click_to_ContributionCard_kernelsu">SukiSU Ultra sẽ là một nhánh tương đối độc lập của KSU trong tương lai, nhưng chúng tôi xin cảm ơn KernelSU và MKSU,... vì những đóng góp của họ!</string>
<string name="not_supported">Không được hỗ trợ</string> <string name="not_supported">Không được hỗ trợ</string>
<string name="supported">Được hỗ trợ</string> <string name="supported">Được hỗ trợ</string>
<string name="home_kpm_module">"Module KPM: %d "</string> <string name="home_kpm_module">Module KPM: %d</string>
<string name="kpm_invalid_file">Tệp KPM không hợp lệ</string> <string name="kpm_invalid_file">Tệp KPM không hợp lệ</string>
<string name="kernel_patched">Kernel chưa được vá</string> <string name="kernel_patched">Kernel chưa được vá</string>
<string name="kernel_not_enabled">Kernel chưa được cấu hình</string> <string name="kernel_not_enabled">Kernel chưa được cấu hình</string>
@@ -350,4 +350,5 @@
<string name="language_setting">Ngôn ngữ ứng dụng</string> <string name="language_setting">Ngôn ngữ ứng dụng</string>
<string name="language_follow_system">Theo dõi hệ thống</string> <string name="language_follow_system">Theo dõi hệ thống</string>
<string name="language_changed">Ngôn ngữ đã thay đổi, khởi động lại để áp dụng thay đổi</string> <string name="language_changed">Ngôn ngữ đã thay đổi, khởi động lại để áp dụng thay đổi</string>
<string name="settings_card_dim">Điều chỉnh độ tối của thẻ</string>
</resources> </resources>

View File

@@ -346,4 +346,5 @@
<string name="language_setting">应用语言</string> <string name="language_setting">应用语言</string>
<string name="language_follow_system">跟随系统</string> <string name="language_follow_system">跟随系统</string>
<string name="language_changed">语言已更改,重启应用以应用更改</string> <string name="language_changed">语言已更改,重启应用以应用更改</string>
<string name="settings_card_dim">卡片暗度调节</string>
</resources> </resources>

View File

@@ -350,4 +350,5 @@
<string name="language_setting">App Language</string> <string name="language_setting">App Language</string>
<string name="language_follow_system">Follow System</string> <string name="language_follow_system">Follow System</string>
<string name="language_changed">Language changed, restarting to apply changes</string> <string name="language_changed">Language changed, restarting to apply changes</string>
<string name="settings_card_dim">Card Darkness Adjustment</string>
</resources> </resources>