From 2e0adab642eabfc976c57a43ad81ec0ffdd00027 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Wed, 10 Oct 2012 10:12:49 +0200 Subject: Have translationby string a useful default for translators Grrrr at Chinese languages. Russian is complete enought to be usable --HG-- rename : res/values-zh-CN/arrays.xml => res/values-zh-rCN/arrays.xml rename : res/values-zh-CN/strings.xml => res/values-zh-rCN/strings.xml --- AndroidManifest.xml | 6 +- fetchtranslations.sh | 14 ++- res/layout/about.xml | 4 +- res/values-ru/arrays.xml | 27 +++++ res/values-ru/strings.xml | 192 +++++++++++++++++++++++++++++++ res/values-zh-CN/arrays.xml | 27 ----- res/values-zh-CN/strings.xml | 156 ------------------------- res/values-zh-rCN/arrays.xml | 27 +++++ res/values-zh-rCN/strings.xml | 167 +++++++++++++++++++++++++++ res/values/strings.xml | 5 +- src/de/blinkt/openvpn/AboutFragment.java | 7 ++ 11 files changed, 435 insertions(+), 197 deletions(-) create mode 100755 res/values-ru/arrays.xml create mode 100755 res/values-ru/strings.xml delete mode 100755 res/values-zh-CN/arrays.xml delete mode 100755 res/values-zh-CN/strings.xml create mode 100755 res/values-zh-rCN/arrays.xml create mode 100755 res/values-zh-rCN/strings.xml diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 58ee4643..6677201f 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -17,8 +17,8 @@ + android:versionCode="51" + android:versionName="0.5.24" > @@ -116,4 +116,4 @@ - \ No newline at end of file + diff --git a/fetchtranslations.sh b/fetchtranslations.sh index e9ab2f95..900aff0a 100755 --- a/fetchtranslations.sh +++ b/fetchtranslations.sh @@ -3,12 +3,14 @@ if [ "$ICSCROWDAPIKEY" != "" ] then - fetch -1 -o - http://api.crowdin.net/api/project/ics-openvpn/export?key=$ICSCROWDAPIKEY + echo "Generating new translation archives" + fetch -q -1 -o - http://api.crowdin.net/api/project/ics-openvpn/export?key=$ICSCROWDAPIKEY fi -fetch http://crowdin.net/download/project/ics-openvpn.zip +echo "Fetch translation archive" +fetch -q http://crowdin.net/download/project/ics-openvpn.zip -langtoinclude="de cs ko et fr he" +langtoinclude="de cs ko et fr he ru" for lang in $langtoinclude do @@ -17,8 +19,10 @@ done # Chinese language require zh-CN and zh-TW -for lang in zh-CN +lang="zh-CN" +rlang="zh-rCN" do + echo "Fetch archive for $lang" fetch http://crowdin.net/download/project/ics-openvpn/$lang.zip - tar -xv -C res/values-$lang/ --strip-components 3 -f $lang.zip + tar -xv -C res/values-$rlang/ --strip-components 3 -f $lang.zip done \ No newline at end of file diff --git a/res/layout/about.xml b/res/layout/about.xml index b9c84ff2..5820d291 100644 --- a/res/layout/about.xml +++ b/res/layout/about.xml @@ -47,10 +47,10 @@ android:layout_height="10sp" /> + android:autoLink="all" /> + + + + Сертификаты + Файл PKCS12 + Сертификат Андроид-устройства + Логин/Пароль + Статичные ключи + Логин/пароль + Сертификаты + Логин/пароль + PKCS12 + Логин/пароль + сертификат Android + + + 0 + 1 + Не указан + + + 0 -Не вести лог + 1 - Уровень лога по-умолчанию + 2 - подробный лог + 3 + 4 + 5 - лог для отладки + + diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml new file mode 100755 index 00000000..538e4ca8 --- /dev/null +++ b/res/values-ru/strings.xml @@ -0,0 +1,192 @@ + + + + OpenVPN для Android + Адрес сервера: + Порт сервера: + Расположение + нет доступа в папку! + Выбрать + Отмена + Нет данных + Сжатие LZO + Нет сертификата + Сертификат клиента + Ключ сертификата клиента + PKCS12 файл + CA сертификат + Ничего не выбрано + Исходники и информация о версиях находятся по адресу http://code.google.com/p/ics-openvpn/ + Программа использует следующие компоненты. Смотрите в исходники для получения подробной информации о лицензии + О программе + Описание OpenVPN для Android + Список всех туннелей VPN + Конфигурации VPN + Тип + Пароль для PKCS12 + Выбрать… + Ничего не выбрано + Использовать авторизацию TLS + TLS Direction + Введите адрес/маску подсети IPv6 в формате CIDR (например 2000:dd::23/64) + Введите адрес/маску подсети IPv4 в формате CIDR (например 1.2.3.4/24) + Адрес IPv4 + Адрес IPv6 + Введите дополнительные параметры OpenVPN. Используйте эту возможность с большой осторожностью. Если вы считаете, что отсутствует важный параметр, свяжитесь с автором + Имя пользователя + Пароль + Для конфигурации с статичными сертификатами будут использоваться ключи TLS. + Настройка VPN-туннеля + Добавить конфигурацию + Введите имя новой конфигурации + Копировать имя конфигурации + Имя конфигурации + Не выбран сертификат клиента. + Ошибок не найдено + Ошибка в конфигурации + Невозможно прочесть IPv4 адрес + Невозможно примениить пользовательские маршруты + Оставьте пустым для запроса по требованию + Ярлык OpenVPN + Подключиться к VPN + Не найден профиль, указанный в ярлыке + Случайные префикс узла + Добавляет 6 случайных символов перед именем хоста + Включить пользовательские параметры + Пользовательские параметры. Используйте с осторожностью! + Маршрут отвергнут Android + Отключение + очистить лог + Подтверждение отмены + Отключение активных VPN/Отмена попыток подключения? + Удалить VPN + Проверять, использует ли сервер сертификат TLS + Исключить сервер TLS + Проверка имени хоста сертификата + Удаленный хост (CN) + Включить аутентификацию по TLS ключу + Файл аутентификации TLS + Запрос IP-адреса, маршрутов и параметров от сервера. + Игнорировать все параметры сервера. Параметры должны быть указаны ниже. + DNS + Переопределить параметры DNS от сервера + Использовать ваши DNS + Домен поиска + DNS-сервер для использования. + DNS-сервер + Вторичный DNS-сервер используется, если не получен ответ от первого сервера DNS. + Резервный сервер DNS + Игнорировать посылаемые маршруты + Игнорировать маршруты, посылаемые сервером. + Перенаправляет весь трафик через VPN + Использовать маршрут по-умолчанию + Введите пользовательские маршруты. Только введите адрес назначения в формате CIDR. \"10.0.0.0/8 2002::/16\" будет использовано для 10.0.0.0/8 и 2002::/16 сетей через VPN. + Пользовательские маршруты + Уровень детализации лога + Разрешить пакеты аутентификации с любого IP-адреса + Пользовательские параметры + Редактирование параметров VPN + Удаление профиля VPN %s? + Открытие интерфейса tun окончилось неудачей. + "Ошибка: " + Очистить + информация + Показать подробности о подключении + DNS-сервер: %s + DNS-домен: %s + Маршруты: %s + Маршруты IPv6: %s + %1$s %2$s + Отправить файл журнала + Отправить + ICS OpenVPN файла лога + Скопировать лог в буфер обмена + Режим TAP + Режим TAP невозможен на устройствах без root-а. Поэтому это приложение не поддерживает TAP + Снова? Вы издеваетесь? Не поддерживается режим TAP и просьбы к автору об этом не помогут ему реализоваться. + Вопросы и ответы + Часто задаваемые вопросы и некоторые советы + Копирование записей лога + Ярлык для запуска + Вы можете поместить ярлык для запуска OpenVPN на рабочий стол. В зависимости от вашего окружения необходимо добавить ярлык или виджет. + Ваше изображение не поддерживает API VPNService, извините:( + Шифрование + Укажите метод шифрования + Введите ключ шифра для OpenVPN. Оставьте пустым для использования шифрования по умолчанию + Авторизация/шифрование + Обзор файлов + Встроенный файл + Импорт + Ошибка при импорте файла + Не удалось импортировать файл из файловой системы + [[Встроенный файл данных]] + Отказ в открытии устройства tun без информации об IP-адресе + Импорта конфигурации из файла .ovpn + Импорт + Не удалось прочитать конфигурацию для импорта + Ошибка чтения файла конфигурации + добавить конфигурацию + Попытка чтения файла: %1$s + Не удалось найти файл %1$s, указанный в файле конфигурации + Импорт файла конфигурации из исходного %1$s + Ваша конфигурация имела несколько директив, которые не поняты программой. Эти директивы были добавлены в дополнительные параметры пользовательской конфигурации. Пользовательская конфигурация отображена ниже: + Файла конфигурации успешно прочитан. + Импорт файла конфигурации + Соображения безопасности + Импорт + Ошибка вывода выбранного сертификата + IPv4 + IPv6 + Ожидание сообщения о состоянии… + импортируемый профиль + импортируемый профиль %d + Нечитаемое изображение + Имя пользователя не должно быть пустым. + Файл PKCS12-ключа + Пароль закрытого ключа + Пароль + файл значка + TLS-аутентификация + Сгенерированая конфигурация + Общие параметры + Показать сгенерированный файл конфигурации OpenVPN + Правка \"%s\" + Создание конфигурации… + Включение этого параметра заставит переподключиться, если состояние сети изменения (WIFI с мобильного) + Переподключение при изменении сети + Статус сети: %s + Выбрать + Показывает окно журнала при подключении. Окно журнала всегда может быть доступно из панели уведомлений. + Показать окно лога + Не закрывать окно с информацией о подключении после соединения для показа информации о траффике. + Показать статистику трафика + Ошибка подписи с использованием ключа из хранилища Android %1$s: %2$s + Сообщение о подключении и звук уведомления + + IP-адрес и DNS + Основные + Маршрутизация + Скрывать параметры OpenVPN. Обычно не требуется. + Расширенные + ICS Openvpn конфигурация + DNS-серверы не используются. Разрешение имен может не работать. Рассмотрите возможность указания DNS-серверов + Не удалось добавить DNS-сервер \"%1$s\", отклонен системой: %2$s + Быстрый старт + Попробуйте загрузить модуль ядра tun.ko прежде чем пытаться подключиться. Требуется root-доступ на устройстве. + Загрузить tun-модуль + Импорт PKCS12 из хранилища ключей Android + Ошибка при получении параметров прокси-сервера: %s + Используется прокси-сервер %1$s %2$d + Использовать прокси-сервер системы + Переподключение после перезагрузки + Игнорировать + Перезагрузка + Изменения конфигурации применяются после перезапуска VPN. (Пере)запустить VPN теперь? + Конфигурация изменена + Дублирующиеся уведомления + Профили VPN не указаны. + Не забудьте заглянуть в FAQ. Также имеется краткое руководство. + Преобразовать формат удаленного tls OpenVPN 2.2 в формат 2.3 + Конфигурация маршрутизации/интерфейса + Стойкость tun + diff --git a/res/values-zh-CN/arrays.xml b/res/values-zh-CN/arrays.xml deleted file mode 100755 index 89444bbe..00000000 --- a/res/values-zh-CN/arrays.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - "证书" - "PKCS12 文件" - "Android 证书" - "用户名/密码" - "静态密钥" - "用户名/密码 + 证书" - "用户名/密码 + PKCS12 " - "用户名/密码 + Android" - - - "0" - "1" - "未指定" - - - "0 - 无日志" - "1 - 默认详细级别" - "2 - 更详细" - "3" - "4" - "5 - 调试日志" - - diff --git a/res/values-zh-CN/strings.xml b/res/values-zh-CN/strings.xml deleted file mode 100755 index ec53f315..00000000 --- a/res/values-zh-CN/strings.xml +++ /dev/null @@ -1,156 +0,0 @@ - - - - OpenVPN Android版 - 服务器地址: - 服务器端口: - 地点 - 无法读取文件夹! - 选择 - 取消 - 无数据 - LZO 压缩 - 无客户端证书 - 客户端证书 - 客户端证书密钥 - PKCS12 文件 - CA 证书 - 无证书 - 请前往 http://code.google.com/p/ics-openvpn/ 源码或提供问题反馈 - 本程序使用以下组件,请在 Licenses 查看源码获取更详细内容。 - 关于 - 关于 Android版 - 已配置的 VPN 列表 - VPN列表 - VPN类型 - PKCS12 密码 - 选择 - 未选择任何项 - 使用 TLS 认证 - TLS 方向 - 输入 CIDR 格式 IPv6 地址/子网掩码(例如:2000:dd::23/64) - 输入 CIDR 格式 IPv4 地址/子网掩码(例如:1.2.3.4/24) - IPv4 地址 - IPv6 地址 - 输入自定义 OpenVPN 选项 - 用户名 - 密码 - 配置 VPN - 添加配置文件 - 输入新配置文件名: - 配置文件名已存在 - 配置文件名 - 未选用户证书。 - 未找到错误 - 配置有错误 - 无法解析 IPv4 地址 - 无法解析自定义路由 - OpenVPN 快捷方式 - 连接到 VPN - 未找到快捷方式中指定的配置文件 - 随机主机前缀 - 在主机名前添加6个随机字符 - 启用自定义选项 - 指定自定义选项。小心! - Android 拒绝了路由 - 断开 - 清除日志 - 取消确认 - 断开已连接的 VPN / 取消连接尝试? - 删除 VPN - 检查服务器是否使用 TLS 服务器证书 - 远程主机名 (CN) - 启用 TLS 密钥认证 - TLS 认证文件 - 使用pull - DNS - 覆盖服务器 DNS 设置 - 使用自定义 DNS 服务器 - 搜索域 - 要使用的 DNS 服务器 - DNS 服务器 - 如果无法达到主 DNS 服务器,要使用辅助 DNS 服务器。 - 备用 DNS 服务器 - 忽略推送路由 - 忽略服务器推送的路由 - 使用默认路由 - 输入自定义路由。输入 CIDR 格式地址。 - 自定义路由 - 日志详细级别 - 允许来自任何 IP 的认证数据包 - 允许浮服务器 - 自定义选项 - 编辑 VPN 设置 - 删除 VPN 配置文件 %s 吗? - 错误 - 清除 - 信息 - 显示连接信息 - 最后 OpenVPN 接口配置: - 本地 IPv4: %1$s/%2$d IPv6: %3$s MTU: %4$d - DNS 服务器: %s - DNS 域: %s - IPv4 路由: %s - IPv6 路由: %s - %1$s %2$s - 发送日志文件 - 发送 - ICS OpenVPN 日志文件 - 日志条目已复制剪贴板 - Tap 模式 - 常见问题 - 常见问题和建议 - 复制日志条目 - 启动快捷方式 - 加密 - 输入加密方法 - 输入 OpenVPN 密钥。留空以使用默认密码 - 认证/加密 - 文件浏览器 - 导入 - 导入文件出错 - 无法导入文件系统文件 - 从 ovpn 文件中导入配置文件 - 导入 - 无法读取要导入的配置文件 - 读取配置文件发生出错 - 添加配置文件 - 尝试读取文件: %1$s - 无法找到导入配置文件参考的文件: %1$s - 从 %1$s 中导入配置文件 - 读取配置文件完成 - 不关联到本地地址和端口 - 导入配置文件 - 安全注意 - 导入 - 显示证书发生错误 - IPv4 - IPv6 - 等待状态消息 - 已导入配置文件 - 已导入配置文件 %d - 用户名不能为空。 - PKCS12 文件加密密钥 - 私钥密码 - 密码 - 文件图标 - TLS 认证 - 已生成的配置 - 通用设置 - 显示已生成的 OpenVPN 配置文件 - 编辑 %s - 正在生成配置 - 当转换网络时重新连接 - 网络状态: %s - 选择 - 显示日志窗口 - 显示流量统计 - 运行 %1$s ( %2$s ) %3$s ,Android API %4$d - 中文翻译: 白达卫 -<59539051+ovpntrans.zh@mail.dcu.ie> - IP 和 DNS - 基本 - 路由 - 旧的 OpenVPN 设定 - 高级 - diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml new file mode 100755 index 00000000..ff60c1b2 --- /dev/null +++ b/res/values-zh-rCN/arrays.xml @@ -0,0 +1,27 @@ + + + + + 证书 + PKCS12 加密文件 + Android 证书 + 用户名/密码 + 静态密钥 + 用户名/密码 + 证书 + 用户名/密码 + PKCS12 + 用户名/密码 + Android 证书 + + + 0 + 1 + 未指定 + + + 0 - 无日志 + 1 - 默认 + 2 - 详细 + 3 + 4 + 5 - 调试 + + diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml new file mode 100755 index 00000000..730b2add --- /dev/null +++ b/res/values-zh-rCN/strings.xml @@ -0,0 +1,167 @@ + + + + OpenVPN Android版 + 服务器地址: + 服务器端口: + 地点 + 无法读取文件夹! + 选择 + 取消 + 无数据 + LZO 压缩 + 无客户端证书 + 客户端证书 + 客户端证书密钥 + PKCS12 文件 + CA 证书 + 无证书 + 请前往 http://code.google.com/p/ics-openvpn/ 源码或提供问题反馈 + 本程序使用以下组件,请在 Licenses 查看源码获取更详细内容。 + 关于 + 关于 OpenVPN for Android + 已完成配置的 VPN 列表 + VPN 配置文件 + 类型 + PKCS12 密码 + 选择 + 未选择任何项 + 使用 TLS 认证 + TLS 方向 + 输入 CIDR 格式 IPv6 地址/子网掩码(例如:2000:dd::23/64) + 输入 CIDR 格式 IPv4 地址/子网掩码(例如:1.2.3.4/24) + IPv4 地址 + IPv6 地址 + 输入自定义 OpenVPN 选项 + 用户名 + 密码 + 配置 VPN + 添加配置文件 + 输入新配置文件名: + 配置文件名已存在 + 配置文件名 + 未选用户证书。 + 未找到错误 + 配置有错误 + 无法解析 IPv4 地址 + 无法解析自定义路由 + OpenVPN 快捷方式 + 连接到 VPN + 未找到快捷方式中指定的配置文件 + 随机主机前缀 + 在主机名前添加6个随机字符 + 启用自定义选项 + 指定自定义选项。小心! + Android 拒绝了路由 + 断开 + 清除日志 + 取消确认 + 断开已连接的 VPN / 取消连接尝试? + 删除 VPN + 检查服务器是否使用 TLS 服务器证书 + 远程主机名 (CN) + 启用 TLS 密钥认证 + TLS 认证文件 + 使用pull + DNS + 覆盖服务器 DNS 设置 + 使用自定义 DNS 服务器 + 搜索域 + 要使用的 DNS 服务器 + DNS 服务器 + 如果无法达到主 DNS 服务器,要使用辅助 DNS 服务器。 + 备用 DNS 服务器 + 忽略推送路由 + 忽略服务器推送的路由 + 使用默认路由 + 输入自定义路由。输入 CIDR 格式地址。 + 自定义路由 + 日志详细级别 + 允许来自任何 IP 的认证数据包 + 允许浮服务器 + 自定义选项 + 编辑 VPN 设置 + 删除 VPN 配置文件 %s 吗? + 错误 + 清除 + 信息 + 显示连接信息 + 最后 OpenVPN 接口配置: + 本地 IPv4: %1$s/%2$d IPv6: %3$s MTU: %4$d + DNS 服务器: %s + DNS 域: %s + IPv4 路由: %s + IPv6 路由: %s + %1$s %2$s + 发送日志文件 + 发送 + ICS OpenVPN 日志文件 + 日志条目已复制剪贴板 + Tap 模式 + 常见问题 + 常见问题和建议 + 复制日志条目 + 启动快捷方式 + 加密 + 输入加密方法 + 输入 OpenVPN 密钥。留空以使用默认密码 + 认证/加密 + 文件浏览器 + 导入 + 导入文件出错 + 无法导入文件系统文件 + 从 ovpn 文件中导入配置文件 + 导入 + 无法读取要导入的配置文件 + 读取配置文件发生出错 + 添加配置文件 + 尝试读取文件: %1$s + 无法找到导入配置文件参考的文件: %1$s + 从 %1$s 中导入配置文件 + 读取配置文件完成 + 不关联到本地地址和端口 + 导入配置文件 + 安全注意 + 导入 + 显示证书发生错误 + IPv4 + IPv6 + 等待状态消息 + 已导入配置文件 + 已导入配置文件 %d + 用户名不能为空。 + PKCS12 文件加密密钥 + 私钥密码 + 密码 + 文件图标 + TLS 认证 + 已生成的配置 + 通用设置 + 显示已生成的 OpenVPN 配置文件 + 编辑 %s + 正在生成配置 + 当转换网络时重新连接 + 网络状态: %s + 选择 + 显示日志窗口 + 显示流量统计 + 运行 %1$s ( %2$s ) %3$s ,Android API %4$d + 中文翻译: 白达卫 +<59539051+ovpntrans.zh@mail.dcu.ie> + IP 和 DNS 设置 + 基本 + 路由设置 + 其他 OpenVPN 设置,一般不需要修改。 + 高级设置 + 快速入门 + 尝试在连接之前加载 tun.ko 内核模块。需要 root 权限。 + 载入 tun 模块 + 将 PKCS12 导入 Android 密钥库 + 获取代理设置时出错:%s + 重启时重新连接 + 忽略 + 重启 + 配置已更改 + 当 OpenVPN 重连时,也一直使用 VPN 连接。 + 保持 tun 通道 + diff --git a/res/values/strings.xml b/res/values/strings.xml index 7ffdca90..4943aab0 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -186,11 +186,8 @@ Error signing with Android keystore key %1$s: %2$s The VPN connection warning telling you that this app can intercept all traffic is imposed by the system to prevent abuse of the VPNService API.\nThe VPN connection notification (The key symbol) is also imposed by the Android system to signal an ongoing VPN connection. On some images this notification plays a sound.\nAndroid introduced these system dialogs for your own safety and made sure that they cannot be circumenvented. (On some images this unfortunely includes a notifciation sound) Connection warning and notification sound - - IP and DNS Basic Routing diff --git a/src/de/blinkt/openvpn/AboutFragment.java b/src/de/blinkt/openvpn/AboutFragment.java index b30b95f3..85f48bc7 100644 --- a/src/de/blinkt/openvpn/AboutFragment.java +++ b/src/de/blinkt/openvpn/AboutFragment.java @@ -46,6 +46,13 @@ public class AboutFragment extends Fragment { paypal.setText(htmltext); paypal.setMovementMethod(LinkMovementMethod.getInstance()); + TextView translation = (TextView) v.findViewById(R.id.translation); + + // Don't print a text for myself + if ( getString(R.string.translationby).contains("Arne Schwabe")) + translation.setText(""); + else + translation.setText(R.string.translationby); return v; } -- cgit v1.2.3