Commit 1fc8ef0d authored by Ricki Hirner's avatar Ricki Hirner 🐑

Version 0.9.0.4

* ical4android: treat empty-string task location and URL as null values
* vcard4android: ignore raw contact data without MIMETYPE
* gracefully ignore when server doesn't sent Content-Type in GET responses
* merge translations from Transifex
parent 26cb32df
......@@ -17,8 +17,8 @@ android {
minSdkVersion 14
targetSdkVersion 22
versionCode 81
versionName "0.9.0.3"
versionCode 82
versionName "0.9.0.4"
buildConfigField "java.util.Date", "buildTime", "new java.util.Date()"
}
......
......@@ -141,8 +141,13 @@ public class CalendarSyncManager extends SyncManager {
ResponseBody body = remote.get("text/calendar");
String eTag = ((GetETag)remote.properties.get(GetETag.NAME)).eTag;
Charset charset = Charsets.UTF_8;
MediaType contentType = body.contentType();
if (contentType != null)
charset = contentType.charset(Charsets.UTF_8);
@Cleanup InputStream stream = body.byteStream();
processVEvent(remote.fileName(), eTag, stream, body.contentType().charset(Charsets.UTF_8));
processVEvent(remote.fileName(), eTag, stream, charset);
} else {
// multiple contacts, use multi-get
......
......@@ -160,8 +160,13 @@ public class ContactsSyncManager extends SyncManager {
ResponseBody body = remote.get("text/vcard;version=4.0, text/vcard;charset=utf-8;q=0.8, text/vcard;q=0.5");
String eTag = ((GetETag) remote.properties.get(GetETag.NAME)).eTag;
Charset charset = Charsets.UTF_8;
MediaType contentType = body.contentType();
if (contentType != null)
charset = contentType.charset(Charsets.UTF_8);
@Cleanup InputStream stream = body.byteStream();
processVCard(remote.fileName(), eTag, stream, body.contentType().charset(Charsets.UTF_8), downloader);
processVCard(remote.fileName(), eTag, stream, charset, downloader);
} else {
// multiple contacts, use multi-get
......
......@@ -140,8 +140,13 @@ public class TasksSyncManager extends SyncManager {
ResponseBody body = remote.get("text/calendar");
String eTag = ((GetETag)remote.properties.get(GetETag.NAME)).eTag;
Charset charset = Charsets.UTF_8;
MediaType contentType = body.contentType();
if (contentType != null)
charset = contentType.charset(Charsets.UTF_8);
@Cleanup InputStream stream = body.byteStream();
processVTodo(remote.fileName(), eTag, stream, body.contentType().charset(Charsets.UTF_8));
processVTodo(remote.fileName(), eTag, stream, charset);
} else {
// multiple contacts, use multi-get
......
......@@ -106,6 +106,7 @@ Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU
<string name="settings_log_to_external_file">Auf externen Speicher protokollieren</string>
<string name="settings_log_to_external_file_confirmation">Externe Protokolle beinhalten private Informationen und sind theoretisch auch von anderen Apps einsehbar. Schalten Sie das externe Loggen nach der Nutzung ab und löschen Sie diese Dateien.</string>
<string name="settings_log_to_external_file_on">Protokolle werden nach %s gespeichert (wenn möglich)</string>
<string name="settings_log_to_external_file_no_external_storage">Externer Speicher nicht verfügbar</string>
<string name="settings_log_to_external_file_off">Protokolle werden über ADB geschrieben</string>
<string name="settings_log_verbose">Ausführliche Protokollierung</string>
<string name="settings_log_verbose_on">Synchronisations-Details und Netzwerk-Verkehr protokollieren</string>
......
This diff is collapsed.
......@@ -108,20 +108,21 @@
<string name="settings_log_to_external_file">Journaliser dans un fichier extérieur</string>
<string name="settings_log_to_external_file_confirmation">Les journaux enregistrés dans des fichiers extérieurs contiennent des données privées et sont potentiellement accessibles par d\'autres applications. Arrêtez le stockage extérieur des journaux et supprimez les fichiers après utilisation.</string>
<string name="settings_log_to_external_file_on">Les journaux sont écrits sur %s (si possible)</string>
<string name="settings_log_to_external_file_no_external_storage">Le stockage externe n\'est pas disponible.</string>
<string name="settings_log_to_external_file_off">Les journaux sont écrits sur ADB</string>
<string name="settings_log_verbose">Journalisation détaillée</string>
<string name="settings_log_verbose_on">Enregistrer les informations de synchronisation et le trafic réseau</string>
<string name="settings_log_verbose_off">Enregistrer les informations de synchronisation uniquement</string>
<string name="settings_log_verbose_off">Enregistrer uniquement les informations de synchronisation</string>
<string name="settings_android_update_title">Mise à jour de la version d\'Android</string>
<string name="settings_android_update_description">Les mises à jour d\'Android peuvent avoir un impact sur le fonctionnement de DAVdroid. Si vous rencontrez des problèmes, veuillez supprimer vos comptes DAVdroid et les ajouter à nouveau.</string>
<string name="settings_version_update_title">Les paramètres ont été mis à jour</string>
<string name="settings_version_update_description">Les paramètres des l\'applications ont été mis à jour. Si vous rencontrez des problèmes, veuillez désinstaller DAVdroid et l\'installer à nouveau.</string>
<string name="settings_version_update_description">Les paramètres de l\'applications ont été mis à jour. Si vous rencontrez des problèmes, veuillez désinstaller DAVdroid et l\'installer à nouveau.</string>
<string name="setup_resource_detection">Détection des ressources</string>
<string name="setup_no_collections_found">Aucun carnet d\'adresse ou calendrier trouvé.</string>
<string name="setup_view_logs">Voir les journaux</string>
<string name="setup_add_account">Ajouter un compte</string>
<string name="setup_querying_server">Interroge le serveur. Patientez svp.</string>
<string name="setup_install_apps_info">Android ne supporte pas les listes de tâches (par opposition aux carnets d\'adresses et les agendas).</string>
<string name="setup_install_apps_info">Sans application tierce, Android ne supporte pas les listes de tâches (par opposition aux carnets d\'adresses et les agendas).</string>
<string name="setup_install_tasks_app_html"><![CDATA[
<p>DAVDroid est capable de synchroniser des tâches avec <a href=\"market://details?id=org.dmfs.tasks\">l\'application Tasks</a> de Marten Gajda.</p>
<p>À cause d\'un <a href=\"https://code.google.com/p/android/issues/detail?id=25906\">bug Android</a>, <b>l\'application Tasks doit être installé avant DAVDroid</b>, sinon DAVDroid ne peut obtenir les permissions nécessaires à la synchronisation.</p>
......@@ -134,7 +135,7 @@
<string name="setup_address_books">Carnets d\'adresses</string>
<string name="setup_calendars">Agendas</string>
<string name="setup_task_lists">Listes de tâches</string>
<string name="setup_select_address_book">Choisissez un carnet d\'adresses à synchronizer (toucher à nouveau pour désélectionner) :</string>
<string name="setup_select_address_book">Choisissez un carnet d\'adresses à synchroniser (toucher à nouveau pour désélectionner) :</string>
<string name="setup_select_calendars">Choisissez vos agendas à synchroniser :</string>
<string name="setup_select_task_lists">Choisir les listes de tâches à synchroniser :</string>
<string name="setup_account_details">Détails du compte</string>
......@@ -143,7 +144,7 @@
<string name="setup_account_name_info">Utilisez votre adresse email comme nom de compte car Android utilisera ce nom en tant que champ ORGANISATEUR pour les évènements que vous créerez. Vous ne pouvez pas avoir deux comptes avec le même nom.</string>
<string name="setup_read_only">lecture seule</string>
<!--sync errors and DebugInfoActivity-->
<string name="debug_info_title">Info de débogage</string>
<string name="debug_info_title">Infos de débogage</string>
<string name="sync_error_calendar">Échec de la synchronisation du calendrier (%s)</string>
<string name="sync_error_contacts">Échec de la synchronisation du carnet d\'adresse (%s)</string>
<string name="sync_error_tasks">Échec de la synchronisation (%s)</string>
......
......@@ -4,10 +4,13 @@
<string name="app_name">DAVdroid</string>
<string name="help">Pomoc</string>
<string name="next">Dalej</string>
<string name="please_wait">Proszę czekać</string>
<string name="send">Wyślij</string>
<string name="skip">Pomiń</string>
<!--MainActivity-->
<string name="main_manage_accounts">Zadządzaj kontami synchronizacji</string>
<string name="main_show_debug_info">Pokaż informacje do debug\'owania</string>
<string name="main_translation_info">Tłumaczenia w innych językach niż angielski i niemiecki zostały dodane przez wiele osób, które są wymienione w odpowienich wersjach językowych. Tłumaczenie na język polski przygotował &lt;a href="https://github.com/oskarjakiela"&gt;Oskar Jakieła&lt;/a&gt;.</string>
<!--AddAccountActivity-->
<string name="login_type_email">Logowanie za pomocą adresu e-mail</string>
<string name="login_type_email_description">Szczegóły usługi zostaną wykryte automatycznie na podstwie nazwy domeny. Na przykład mojekonto@icloud.com</string>
......@@ -63,9 +66,17 @@
<item>Co 4 godziny</item>
<item>Raz dziennie</item>
</string-array>
<string name="settings_debug">Debugowanie</string>
<string name="settings_security_warning">Potencjalne zagrożenie bezpieczeństwa!</string>
<string name="settings_log_to_external_file">Loguj to zewnętrznego pliku</string>
<string name="settings_log_to_external_file_confirmation">Zewnętrzne pliki logów będą zawierać prywtne dane i będą dostępne dla innych aplikacji. Wyłącz logowanie do zewnętrznego pliku i usuń pliki logów zaraz po uzyciu.</string>
<string name="settings_log_to_external_file_on">Logi są zapisane do %s (jeśli to możliwe)</string>
<string name="settings_log_to_external_file_no_external_storage">Zewnętrzny dysk jest niedostępny</string>
<string name="settings_log_to_external_file_off">Logi są zapisane do ADB</string>
<string name="settings_android_update_title">Aktualizacja wersji Androida</string>
<string name="settings_android_update_description">Aktualizacja wersji Androida może mieć wpływ na to, jak DAVdroid działa DAVdroid. W razie problemów prosimy o usunięcie swoich konta DAVdroid i dodanie je ponownie.</string>
<string name="settings_version_update_title">Ustawienia zostały zaktualizowane</string>
<string name="setup_view_logs">Pokaż logi</string>
<string name="setup_add_account">Dodaj konto</string>
<string name="setup_querying_server">Odpytywanie serwera. Proszę czekać…</string>
<string name="setup_install_apps_info">Zwykły Android nie obsługuje list zadań (w przeciwieństwie do kontaktów i kalendarzy).</string>
......
......@@ -4,12 +4,18 @@
<string name="app_name">DAVdroid</string>
<string name="help">Помощь</string>
<string name="next">Далее</string>
<string name="please_wait">Пожалуйста, подождите</string>
<string name="send">Отправить</string>
<string name="skip">Пропустить</string>
<!--MainActivity-->
<string name="main_manage_accounts">Управление аккаунтами синхронизации</string>
<string name="main_manage_accounts">Управление учётными данными синхронизации</string>
<string name="main_show_debug_info">Показать информацию отладки</string>
<string name="main_welcome">Добро пожаловать в DAVdroid/%s!</string>
<string name="main_used_libraries_heading">DAVdroid использует эти библиотеки (в алфавитном порядке)</string>
<!--AddAccountActivity-->
<string name="login_type_email">Вход по адресу email</string>
<string name="login_type_email_description">Данные сервиса будут автоматически определены через имя домена. Пример: myaccount@icloud.com</string>
<string name="login_type_url">Вход через URL и именем пользователя</string>
<string name="login_type_url">Вход через URL и имя пользователя</string>
<string name="login_type_url_description">Данные сервиса будут автоматически определены через начальную часть URL и имя пользователя. Обычно
используется для частных сервисов поддерживаемых самостоятельно.</string>
<string name="login_email_description">Введите свой адрес электронной почты. Имя домена из него будет использовано для автоматического определения настроек сервиса.</string>
......@@ -40,7 +46,8 @@
<string name="settings_sync_summary_manually">Вручную</string>
<string name="settings_sync_summary_periodically" tools:ignore="PluralsCandidate">Каждые %d минут и немедленно при локальных изменениях</string>
<string name="settings_sync_summary_not_available">Недоступно</string>
<string name="settings_sync_interval_calendars">Интервал синхронизации календарей</string>
<string name="settings_sync_interval_calendars">Период синхронизации календарей</string>
<string name="settings_sync_interval_tasks">Период синхронизации задач</string>
<string-array name="settings_sync_interval_seconds">
<item>-1</item>
<item>300</item>
......@@ -61,16 +68,41 @@
<item>Каждые 4 часа</item>
<item>Раз в сутки</item>
</string-array>
<string name="settings_debug">Отладка</string>
<string name="settings_security_warning">Возможная угроза безопасности!</string>
<string name="settings_log_to_external_file">Журналирование во внешний файл</string>
<string name="settings_log_to_external_file_confirmation">Внешние файлы журнала будут содержать частные данные и могут быть доступны для других приложений. Отключите внешнее журналирование и удалите файлы журнала после использования.</string>
<string name="settings_log_to_external_file_on">Журналы записываются в %s (если возможно)</string>
<string name="settings_log_to_external_file_no_external_storage">Внешнее хранилище недоступно</string>
<string name="settings_log_to_external_file_off">Журналы записаны в ADB</string>
<string name="settings_log_verbose">Детальное журналирование</string>
<string name="settings_log_verbose_on">Записывать в журнал информацию о синхронизации и сетевом траффике</string>
<string name="settings_log_verbose_off">Записывать в журнал только информацию о синхронизации</string>
<string name="settings_android_update_title">Обновление версии Android</string>
<string name="settings_version_update_title">Настройки были обновлены</string>
<string name="setup_resource_detection">Определение ресурсов</string>
<string name="setup_no_collections_found">Контакты или календари не найдены</string>
<string name="setup_view_logs">Просмотр журналов</string>
<string name="setup_add_account">Добавить аккаунт</string>
<string name="setup_querying_server">Опрашиваем сервер. Пожалуйста подождите…</string>
<string name="setup_what_to_sync">Какие коллекции будут синхронизироваться?</string>
<string name="setup_address_books">Контакты</string>
<string name="setup_calendars">Календари</string>
<string name="setup_task_lists">Список задач</string>
<string name="setup_select_address_book">Выберите единственную адресную книгу (нажмите снова для отмены выбора):</string>
<string name="setup_select_calendars">Выберите ваши календари:</string>
<string name="setup_select_task_lists">Выберите задачу для синхронизации</string>
<string name="setup_account_details">Данные аккаунта</string>
<string name="setup_account_name">Имя аккаунта:</string>
<string name="setup_account_name_hint">Мой аккаунт CalDAV/CardDAV</string>
<string name="setup_read_only">только чтение</string>
<!--sync errors and DebugInfoActivity-->
<string name="debug_info_title">Отладочная информация</string>
<string name="sync_error_calendar">Синхронизация календаря завершена с ошибкой (%s)</string>
<string name="sync_error_contacts">Синхронизация контактов завершена с ошибкой (%s)</string>
<string name="sync_error_tasks">Синхронизация задачи завершена с ошибкой (%s)</string>
<string name="sync_error">Ошибка %s</string>
<string name="sync_error_http_dav">Ошибка сервера %s</string>
<string name="sync_error_local_storage">Ошибка базы данных в процессе %s</string>
<string name="sync_error_unauthorized">Имя пользователя/пароль неверные</string>
</resources>
......@@ -4,9 +4,57 @@
<string name="app_name">DAVdroid</string>
<string name="help">帮助</string>
<string name="next">继续</string>
<string name="please_wait">请稍候</string>
<string name="send">发送</string>
<string name="skip">跳过</string>
<!--MainActivity-->
<string name="main_manage_accounts">管理同步账户</string>
<string name="main_show_debug_info">显示调试信息</string>
<string name="main_fdroid_donation_html"><![CDATA[
<p>感谢您从 F-Droid 下载 DAVdroid。开发 DAVdroid 是个大工程,花费了上千个小时。<strong>如果您喜欢 DAVdroid,请考虑<a href=\"https://davdroid.bitfire.at/donate\">给我们捐款</a></strong></p>
]]></string>
<string name="main_play_workaround_html"><![CDATA[
<p>感谢您通过 Google Play 购买 DAVdroid 支持我们。不幸的是,两个 Google Play 的问题可能会影响到您。点击链接即可查看详情。</p>
<p><a href=\"https://davdroid.bitfire.at/faq/entry/account-gone-after-reboot\">1. 账户可能在设备重启后消失</a>
影响部分 Android 4.1, 4.2 设备(如大部分三星设备和其他某些设备)。大部分最新的 Android 版本没有此问题。<br/>
<a href=\"https://davdroid.bitfire.at/faq/entry/account-gone-after-updating\">2. 账户可能在升级 DAVdroid 后消失</a>
影响部分 Android 4.4.2 设备(如 Nexus 设备、Moto G 和其他某些设备)。大部分最新的 Android 版本没有此问题。</p>
<p><strong>如果您遇到了这些问题,请 <a href=\"market://details?id=at.bitfire.davdroid.jbworkaround\">安装 DAVdroid JB Workaround</a></strong></p>
]]></string>
<string name="main_welcome">欢迎使用 DAVdroid/%s!</string>
<string name="main_what_is_davdroid_html"><![CDATA[
<p>DAVdroid 是 Android 4+ 的 CalDAV/CardDAV 同步器。只需增加 DAVdroid 账户,配置 CalDAV/CardDAV 服务器信息,联系人、日历事件或任务就会被双向同步。</p>
<p>更多信息请见 <a href=\"https://davdroid.bitfire.at/?pk_campaign=davdroid-app&amp;pk_kwd=main-activity\">DAVdroid 网站</a>
DAVdroid 尊重您的隐私,请参见我们的<a href=\"https://davdroid.bitfire.at/privacy?pk_campaign=davdroid-app&amp;pk_kwd=main-activity\">隐私政策</a>.</p>
]]></string>
<string name="main_how_to_setup_html"><![CDATA[
<p><b>如何配置</b></p>
<p>DAVdroid 会支持所有符合标准的 CalDAV/CardDAV 服务。查看所有已测试的服务列表和相关的配置信息,以及有关 TLS 和证书的信息,请查看
<a href=\"https://davdroid.bitfire.at/configuration?pk_campaign=davdroid-app&amp;pk_kwd=main-activity\">配置说明</a></p>
]]></string>
<string name="main_support_html"><![CDATA[<p><b>支持</b></p>
<p><b>如果出现问题,请先查看<a href=\"https://davdroid.bitfire.at/faq?pk_campaign=davdroid-app&amp;pk_kwd=main-activity\">常见问题列表</a>。要获得帮助或讨论 DAVdroid 有关的话题,请到
<a href=\"https://davdroid.bitfire.at/forums?pk_campaign=davdroid-app&amp;pk_kwd=main-activity\">DAVdroid 论坛</a></b>
请不要直接在应用商店里给我们留差评(这对双方而言是无用和沮丧的)。</p>
]]></string>
<string name="main_open_source_disclaimer_html"><![CDATA[<p><b>开源</b></p>
<p>DAVdroid 一直以来是一个开源项目。你可以自己编译应用,并不受限制地免费使用。你可以
<a href=\"https://davdroid.bitfire.at/source?pk_campaign=davdroid-app&amp;pk_kwd=main-activity\">直接获取源码</a>,或者在 <a href=\"https://f-droid.org/app/at.bitfire.davdroid\">F-Droid 下载应用</a>.</p></p>
]]></string>
<string name="main_license_html"><![CDATA[<p><b>授权协议</b></p>
<p>Copyright © 2013 – 2015 Ricki Hirner, Bernhard Stockmann (<a href=\"https://www.bitfire.at\">bitfire web engineering</a>).
All rights reserved. This program and the accompanying materials are made available under the terms of the GNU Public License
v3.0 which accompanies this distribution, and is available at <a
href=\"http://www.gnu.org/licenses/gpl.html\">http://www.gnu.org/licenses/gpl.html</a>. As far as Google Play, Samsung
Store or Amazon Appstore require other terms, the respective terms apply only to versions that are downloaded using these services.</p>
]]></string>
<string name="main_translation_info">英语和德文外的翻译由其他人提供,在相应语言的版本中会标明。</string>
<string name="main_used_libraries_heading">DAVdroid 使用的程序库(字母顺序排列):</string>
<!--AddAccountActivity-->
<string name="login_type_email">使用邮箱地址登录</string>
<string name="login_type_email_description">服务器连接信息由域名本身提供。例如: myaccount@icloud.com</string>
......@@ -62,6 +110,23 @@
<item>每 4 小时</item>
<item>每 24 小时</item>
</string-array>
<string name="settings_debug">调试</string>
<string name="settings_security_warning">有安全隐患!</string>
<string name="settings_log_to_external_file">记录日志到文件</string>
<string name="settings_log_to_external_file_confirmation">日志文件将包括隐私信息,可能会被其他应用读取。使用后,请关闭日志记录并删除日志文件。</string>
<string name="settings_log_to_external_file_on">日志路径为 %s(当选项打开)</string>
<string name="settings_log_to_external_file_no_external_storage">外部存储不可用</string>
<string name="settings_log_to_external_file_off">日志将写入到 ADB</string>
<string name="settings_log_verbose">记录完整日志</string>
<string name="settings_log_verbose_on">记录同步信息和网络交互</string>
<string name="settings_log_verbose_off">只记录同步信息</string>
<string name="settings_android_update_title">Android 版本升级</string>
<string name="settings_android_update_description">Android 系统的版本升级可能会影响 DAVdroid 的运行。如果出现问题,请删除并重新添加 DAVdroid 账户。</string>
<string name="settings_version_update_title">设置已保存</string>
<string name="settings_version_update_description">程序设置已更新。如果出现问题,请卸载并重新安装 DAVdroid。</string>
<string name="setup_resource_detection">资源查找</string>
<string name="setup_no_collections_found">找不到通讯录和日历。</string>
<string name="setup_view_logs">查看日志</string>
<string name="setup_add_account">增加账户</string>
<string name="setup_querying_server">正在尝试,请稍等…</string>
<string name="setup_install_apps_info">Android 系统不支持原生任务列表(相比于日程和通讯录)。</string>
......@@ -84,6 +149,28 @@
<string name="setup_account_details">账户信息</string>
<string name="setup_account_name">账户显示名:</string>
<string name="setup_account_name_hint">我的 CalDAV/CardDAV 账户</string>
<string name="setup_account_name_info">请使用你的邮箱地址作为帐户名,因为 Android 会将你创建的日历事件的创建者项设置为帐户名。你不能拥有多个帐户名相同的账户。</string>
<string name="setup_read_only">只读</string>
<!--sync errors and DebugInfoActivity-->
<string name="debug_info_title">调试信息</string>
<string name="sync_error_calendar">日历同步失败(%s)</string>
<string name="sync_error_contacts">通讯录同步失败(%s)</string>
<string name="sync_error_tasks">任务同步失败(%s)</string>
<string name="sync_error">%s时错误</string>
<string name="sync_error_http_dav">%s时服务器错误</string>
<string name="sync_error_local_storage">%s时数据库错误</string>
<string-array name="sync_error_phases">
<item>准备同步</item>
<item>请求功能列表</item>
<item>处理本地删除项目</item>
<item>准备创建/修改项目</item>
<item>上传创建/修改项目</item>
<item>检查同步状态</item>
<item>检查本地数据</item>
<item>检查远程数据</item>
<item>比较本地和远程数据</item>
<item>下载远程数据</item>
<item>保存同步状态</item>
</string-array>
<string name="sync_error_unauthorized">用户名或密码错误</string>
</resources>
Subproject commit 51c5bf4343a8dcc5ff0ce40b59a58ad0fdde2e67
Subproject commit 604dfc112b5d0262ed37b065ee83c0632042e092
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment