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