diff --git a/app/src/main/java/org/distrinet/lanshield/ui/openports/OpenPortsScreen.kt b/app/src/main/java/org/distrinet/lanshield/ui/openports/OpenPortsScreen.kt
index a1471ac..ef0d0eb 100644
--- a/app/src/main/java/org/distrinet/lanshield/ui/openports/OpenPortsScreen.kt
+++ b/app/src/main/java/org/distrinet/lanshield/ui/openports/OpenPortsScreen.kt
@@ -186,7 +186,7 @@ private fun LANShieldNotActive(modifier: Modifier = Modifier) {
Spacer(modifier = Modifier.height(48.dp))
Text(
- text = "LANShield not active",
+ stringResource(R.string.LANShield_not_active),
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
style = MaterialTheme.typography.titleMedium,
diff --git a/app/src/main/java/org/distrinet/lanshield/ui/overview/OverviewScreen.kt b/app/src/main/java/org/distrinet/lanshield/ui/overview/OverviewScreen.kt
index 4d30089..b23a542 100644
--- a/app/src/main/java/org/distrinet/lanshield/ui/overview/OverviewScreen.kt
+++ b/app/src/main/java/org/distrinet/lanshield/ui/overview/OverviewScreen.kt
@@ -235,7 +235,10 @@ internal fun OverviewScreen(
contentDescription = vpnNotificationContentDescription
}
) {
- Text("Why is there a VPN notification?", textAlign = TextAlign.Center)
+ Text(
+ stringResource(R.string.why_is_there_a_vpn_notification),
+ textAlign = TextAlign.Center
+ )
}
}
diff --git a/app/src/main/res/drawable/ic_launcher_monochrome.xml b/app/src/main/res/drawable/ic_launcher_monochrome.xml
new file mode 100644
index 0000000..f2b0d5c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_launcher_monochrome.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/logo.xml b/app/src/main/res/mipmap-anydpi-v26/logo.xml
index 16a18b9..c0ccd7a 100644
--- a/app/src/main/res/mipmap-anydpi-v26/logo.xml
+++ b/app/src/main/res/mipmap-anydpi-v26/logo.xml
@@ -2,4 +2,5 @@
-
\ No newline at end of file
+
+
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..b98a76d
--- /dev/null
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -0,0 +1,141 @@
+
+
+ 关于
+ 关于 LANShield
+ 同意
+ 全部
+ 允许
+ 已允许
+ 允许通知
+ 打开通知设置
+ 通知已启用
+ 允许本地网络访问
+ 已授予权限
+ 打开应用设置
+ 本地网络访问
+ 授予“附近设备”权限后,LANShield 才能为您的应用转发本地网络流量。
+ 按单个应用修改拦截策略
+ 匿名共享
+ 检测到的所有局域网流量\n都将在此处显示
+ LANShield
+ 开机自启动
+ 返回
+ 拦截
+ 默认拦截或允许局域网流量
+ 已拦截
+ 取消
+ 取消搜索
+ 修改局域网访问策略
+ 确定要清除 %1$s 的所有受监控局域网流量记录吗?此操作无法撤销。
+ 选择默认应允许还是拦截局域网流量
+ 全部清除
+ 清除局域网流量记录
+ "配置局域网访问权限:"
+ 确认
+ 默认策略
+ 默认
+ 检测到协议:%1$s
+ 检测到协议:%1$s
+ 不同意
+ 忽略
+ 启用始终开启
+ 结束时间:%1$s
+ "欢迎使用 LANShield!"
+ 例外规则
+ 反馈
+ 完成
+ 接收通知
+ 提交反馈
+ 入站:%1$s
+ 单个应用局域网流量
+ 待补充 individual_lan_traffic_explanation
+ 信息
+ "首先,您需要选择默认是拦截还是允许局域网访问。之后您可以针对各个应用单独覆盖此规则。"
+ "有任何反馈意见吗?您可以在“设置”标签页中向我们提交!"
+ "当应用首次尝试访问您的本地网络时,LANShield 会发送通知,以便您决定允许或拦截。通知仅用于此类本地网络访问事件。"
+ "为了让我们更深入地了解应用行为,我们希望获知哪些应用在使用过程中并未尝试访问局域网。为此,您可以选择与我们共享您的应用使用情况数据。"
+ 共享应用使用情况
+ "LANShield 是比利时鲁汶大学(KU Leuven)的一项学术研究项目。通过共享设备上应用与本地网络交互的数据,您可以帮助我们了解应用访问局域网的原因。所有数据均完全匿名化,绝不会外泄或出售。"
+ "您连接的本地网络中通常连接有打印机、摄像头、音响等各类设备。LANShield 可以让您自主掌控哪些应用可以访问它们,哪些不能。"
+ LANShield 通过建立本地虚拟 VPN 接口在设备端过滤局域网流量。您会在状态栏看到 VPN 图标,但没有任何数据会被发送至外部互联网。
+ 参与我们的学术研究
+ 参与用户调研
+ 参与鲁汶大学(KU Leuven)学术研究
+ 局域网流量
+ 局域网流量拦截
+ 您可以在此配置 LANShield 应如何拦截或允许局域网流量。在“单应用例外”页面中,您可以为设备上的每个应用单独设定规则。若未设定单独规则,则应用“默认策略”。建议不要拦截系统应用,否则可能导致某些系统功能异常。
+ 来自 %1$s 的局域网流量
+ 此处概览了所有发送或接收过局域网流量的应用。在某些情况下,LANShield 无法确定具体是哪个应用发送了特定数据包,这些流量将被归类为“未知”。
+ LANShield 已启用
+ 无法启动 LANShield
+ 局域网防火墙未能启动,请重试。
+ LANShield 不再具备作为 VPN 运行的权限。点按即可打开 LANShield 并重新启用。
+ LANShield 助您管控\n其他应用的局域网访问权限
+ LANShield 徽标
+ 过去 24 小时:%1$s
+ 最近活跃:%1$s
+ 前往 lanshield.eu 了解更多
+ 为什么会显示 VPN 通知?
+ 徽标
+ 管理通知
+ 手动允许了 %1$s 个应用%2$s
+ 手动拦截了 %1$s 个应用%2$s
+ 更多信息
+ 下一步
+ 未检测到局域网流量
+ 通知
+ 出站:%1$s
+ 概览
+ 若要在设备重启后自动启动 LANShield,请在下一步的 LANShield VPN 设置界面中勾选“始终开启的 VPN”选项。
+ 为了防护您的局域网流量,LANShield 使用虚拟本地 VPN 连接来管控设备上其他应用的局域网访问。虽然您会看到系统 VPN 通知,但不会建立连接到外部互联网的 VPN 隧道。
+ 为了防护您的局域网流量,LANShield 需要建立一个虚拟本地 VPN 接口。在下一步中,系统将请求您授予此权限。应用不会建立连接到外部互联网的 VPN 隧道。
+ 对端:%1$s - %2$s
+ 单应用例外
+
+ 允许组播流量
+ 允许 DNS 流量
+ 隐藏组播通知
+ 隐藏 DNS 通知
+
+ "您可以在此为各个应用单独配置允许或拦截局域网流量。"
+ 策略:允许局域网流量
+ 策略:拦截局域网流量
+ 上一步
+ 隐私政策
+ 搜索
+ 共享
+ 设置默认策略
+ 设置
+ 跳过
+ 继续
+ 共享应用使用情况可帮助我们识别哪些应用从未尝试访问本地网络。若要继续,请在接下来的界面中找到 LANShield 并选择“允许”。
+ 共享匿名应用使用情况
+ 共享匿名局域网指标
+ 共享中\n
+ 共享应用使用情况
+ 显示系统应用
+ 开始时间:%1$s
+ 系统应用
+ MainActivity
+ 总计:%1$s
+ 未知
+ VPN 通知
+ 为什么会有 VPN 图标?
+ VPN 权限申请
+ LANShield 需要通知权限才能运行。请启用通知以开启防护。
+ LANShield 需要“附近设备”权限才能向本地网络转发流量。
+ 缺少本地网络权限
+ LANShield 需要“附近设备”权限才能向本地网络转发流量。点按即可打开 LANShield 并授予该权限。
+ 准备就绪!
+ 导出局域网流量
+ 高级设置
+ 常规设置
+ 检测到的所有开放端口都将在此处显示
+ 未检测到开放端口
+ 开放端口
+ LANShield 未开启
+ 此处列出了其他应用打开的端口。这些端口通常用于与同一局域网内的其他设备通信,例如设备发现或媒体串流。
+ 下拉即可刷新
+ 前往 lanshield.eu 了解详情(在浏览器中打开)
+ 为什么会显示 VPN 通知?(打开说明弹窗)
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 74f333d..7291b44 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -75,6 +75,7 @@
Last 24h: %1$s
Last seen: %1$s
Learn more on lanshield.eu
+ Why is there a VPN notification?
Logo
Manage notifications
Manually allowed %1$s app%2$s
@@ -132,6 +133,7 @@
Any detected open ports will be shown here
No open ports detected
Open Ports
+ LANShield not active
Here you can see a list of ports opened by other apps. These are typically used to communicate with other devices on the same local network, such as for device discovery or media streaming.
⬇ Pull down to refresh
Learn more on lanshield.eu, opens in browser