From: jabarros Date: Wed, 7 Jan 2015 13:04:46 +0000 (+0100) Subject: Merge branch 'develop' into download_folder X-Git-Tag: oc-android-1.7.0_signed~23^2~16 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/d05d5ffe1a5b7a4f470afa541515a0b9c7eb9f59?hp=f737785b4f708d2bff23d08bb7dde4ae34ee5533 Merge branch 'develop' into download_folder --- diff --git a/res/layout/preference_widget_radiobutton.xml b/res/layout/preference_widget_radiobutton.xml new file mode 100644 index 00000000..85f8f600 --- /dev/null +++ b/res/layout/preference_widget_radiobutton.xml @@ -0,0 +1,21 @@ + + + + \ No newline at end of file diff --git a/res/values-af-rZA/strings.xml b/res/values-af-rZA/strings.xml index 0e39030a..634d2672 100644 --- a/res/values-af-rZA/strings.xml +++ b/res/values-af-rZA/strings.xml @@ -7,6 +7,8 @@ Gebruikersnaam Wagwoord sekondes gelede + Ja + Nee OK Kanseleer Fout diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index 5134014b..d8d4eb00 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -53,6 +53,10 @@ منذ ثواني لا يوجد شيء هنا. إرفع بعض الملفات! جاري التحميل ... + مجلد + مجلدات + ملف + ملفات اضغظ على الملف ليتم عرض خيارات أكثر الحجم : النوع : @@ -254,4 +258,5 @@ كلمة مرور خاطئة اختيار الأمان + مُشارك diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml index d3a9060b..3f91b6d8 100644 --- a/res/values-az/strings.xml +++ b/res/values-az/strings.xml @@ -220,4 +220,5 @@ Aşağıda göstərilən %5$s-də olan daxili və xarici fayl(lar) link edilmiş Hesablar Hesab əlavə et Yalnış şifrə + yayımlanmış diff --git a/res/values-bg-rBG/strings.xml b/res/values-bg-rBG/strings.xml index 4b3ecfd1..1fd8462d 100644 --- a/res/values-bg-rBG/strings.xml +++ b/res/values-bg-rBG/strings.xml @@ -66,6 +66,7 @@ папка папки файл + файл Натисни върху файл, за да видиш допълнителна информация. Размер: Тип: @@ -281,8 +282,6 @@ Сигурна връзка е пренасочена по несигурен път. Доклади Изпрати История - ownCloud Android доклади - Зареждане на информация... Нужна е идентификация Грешна парола Премести @@ -295,4 +294,5 @@ за да преместиш този файл Незабавно качване Сигурност + споделен diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml index 49e04b49..a2861bae 100644 --- a/res/values-bn-rBD/strings.xml +++ b/res/values-bn-rBD/strings.xml @@ -268,4 +268,5 @@ বেছে নিন সরাতে ব্যার্থ হলো। ফাইলটি রয়েছে কিনা দেখুন। নিরাপত্তা + ভাগাভাগিকৃত diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml index 4c2f8692..9ab386ca 100644 --- a/res/values-bs/strings.xml +++ b/res/values-bs/strings.xml @@ -1,7 +1,34 @@ + Učitaj + Datoteke Nova fascikla + Postavke + PoÅ¡alji + ViÅ¡e + Pomoć + Korisničko ime + Lozinka + Datoteke + Učitaj + Preuzmite + Podijelite vezu + Da + Ne + Ok + Prekini učitavanje + Odustani + GreÅ¡ka + Nepoznata greÅ¡ka + Promijeni lozinku + Kreiraj račun + Preimenuj + PoÅ¡alji + Potrebna autentifikacija + PogreÅ¡na lozinka + Izaberite + Sigurnost diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 9980cf2c..6979b06a 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -268,4 +268,5 @@ Contrasenya incorrecta Escull Seguretat + compartit diff --git a/res/values-cs-rCZ/strings.xml b/res/values-cs-rCZ/strings.xml index 03387293..d7b4abc7 100644 --- a/res/values-cs-rCZ/strings.xml +++ b/res/values-cs-rCZ/strings.xml @@ -281,8 +281,9 @@ správce systému. Bezpečné spojení je přesměrováno na nezabezpečenou trasu. Logy Odeslat historii - Logy aplikace ownCloud pro Android - Načítám data... + Nebyla nalezena žádná aplikace pro odesílání logů. Nainstalujte poÅ¡tovní aplikaci! + %1$s logy aplikace pro Android + Načítání dat… Vyžadováno přihlášení Nesprávné heslo Přesunout @@ -296,4 +297,7 @@ správce systému. Okamžitá odesílání Zabezpečení Cesta pro nahrávání videí + sdílené + s vámi + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index ee807fca..5aa03ad1 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -280,8 +280,9 @@ Sikker forbindelse videredirigeres til en usikker rute. Logge Send historik - App-logregistreringer for ownCloud Android - Indlæser data... + Der blev ikke fundet apps, der kan sende logge. Installér mail-app\'en! + %1$s Android-app - logge + Indlæser data ... Godkendelse pÃ¥krævet Forkert kodeord Flyt @@ -295,4 +296,7 @@ Øjeblikkelige uploads Sikkerhed Sti til videoupload + delt + med dig + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-de-rDE/strings.xml b/res/values-de-rDE/strings.xml index 00fdce2e..2cd13be6 100644 --- a/res/values-de-rDE/strings.xml +++ b/res/values-de-rDE/strings.xml @@ -282,8 +282,9 @@ Die gesicherte Verbindung wird auf eine unsichere Route weitergeleitet. Protokolle Verlauf senden - Protokolle der ownCloud-Android-App - Daten werden geladen … + Keine App zum Versenden der Meldungen gefunden. Bitte installieren Sie die Mail-App! + %1$s Android-App Meldungen + Lade Daten… Legitimierung benötigt Falsches Passwort Verschieben @@ -297,4 +298,7 @@ Sofortiges Hochladen Sicherheit Verzeichnis zum Hochladen der Videos + geteilt + Mit Ihnen + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 2d7ccd4d..9de3d4ba 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -282,8 +282,9 @@ Die gesicherte Verbindung wird auf eine unsichere Route weitergeleitet. Protokolle Verlauf senden - Protokolle der ownCloud-Android-App - Daten werden geladen … + Keine App zum Versenden der Meldungen gefunden. Bitte installiere die Mail-App! + %1$s Android-App Meldungen + Lade Daten… Legitimierung benötigt Falsches Passwort Verschieben @@ -297,4 +298,7 @@ Sofortiges Hochladen Sicherheit Verzeichnis zum Hochladen der Videos + geteilt + Mit Dir + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 917ca39c..c365dff9 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -11,6 +11,8 @@ Ρυθμίσεις Λεπτομέρειες Αποστολή + Ταξινόμηση + Ταξινόμηση κατά A-Z Νεότερο - Παλαιότερο @@ -36,6 +38,8 @@ Προτείνετε σε φίλο Σχόλια Αποτύπωμα + Αποθήκευση σημείου διαμοιρασμού + Αποθήκευση τελευταίου σημείου διαμοιρασμού μεταφόρτωσης Δοκιμάστε %1$s στο κινητό σας! Θα ήθελα να σε προσκαλέσω να χρησιμοποιήσεις το %1$s στο κινητό σου!\nΛήψη εδώ: %2$s Έλεγχος Διακομιστή @@ -278,7 +282,8 @@ Ασφαλής σύνδεση ανακατευθύνεται σε μια μη ασφαλή διαδρομή. Αρχεία καταγραφών Αποστολή ιστορικού - αρχεία καταγραφής της εφαρμογής ownCloud Android + Δεν εντοπίστηκε εφαρμογή αποστολής αναφορών συστήματος. Εγκαταστήστε το mail app! + %1$s αναφορές του Android app Φόρτωση δεδομένων.... Απαιτείται πιστοποίηση Εσφαλμένο συνθηματικό @@ -292,4 +297,7 @@ για μετακίνηση αυτού του αρχείου Στιγμιαίες Μεταφορτώσεις Ασφάλεια + Διαδρομή Μεταφόρτωσης Βίντεο + μοιρασμένο + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index 27e95793..6540be19 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -282,8 +282,9 @@ Secure connection is redirected to an unsecured route. Logs Send History - ownCloud Android app logs - Loading data... + No app for sending logs found. Install mail app! + %1$s Android app logs + Loading data… Authentication required Incorrect password Move @@ -297,4 +298,7 @@ Instant Uploads Security Upload Video Path + shared + with you + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-eo/strings.xml b/res/values-eo/strings.xml index faf45252..4c604f03 100644 --- a/res/values-eo/strings.xml +++ b/res/values-eo/strings.xml @@ -194,4 +194,5 @@ Malĝusta pasvorto Elekti Sekuro + kunhavigita diff --git a/res/values-es-rAR/strings.xml b/res/values-es-rAR/strings.xml index 3baeea20..6100a407 100644 --- a/res/values-es-rAR/strings.xml +++ b/res/values-es-rAR/strings.xml @@ -249,4 +249,5 @@ Clave incorrecta Elegir Seguridad + compartido diff --git a/res/values-es-rMX/strings.xml b/res/values-es-rMX/strings.xml index a760bfec..57584635 100644 --- a/res/values-es-rMX/strings.xml +++ b/res/values-es-rMX/strings.xml @@ -219,4 +219,5 @@ Contraseña incorrecta Seleccionar Seguridad + compartido diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 63e96215..3f9b74b7 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -282,7 +282,8 @@ La conexión segura está siendo desviada por una ruta insegura. Logs Enviar historial - Logs de las apps ownCloud Android + No se ha encontrado una app para enviar logs. Instale la app mail! + Se han encontrado %1$s logs de la app Android Cargando datos... Se necesita autenticación Contraseña incorrecta @@ -297,4 +298,7 @@ Subidas instantáneas Seguridad Ruta de vídeo de subida + compartido + contigo + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml index 5c25d132..84636cc7 100644 --- a/res/values-et-rEE/strings.xml +++ b/res/values-et-rEE/strings.xml @@ -286,8 +286,6 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi Turvaline ühendus suunatakse läbi turvamata ühenduse. Logid Saada ajalugu - ownCloud Android rakenduse logid - Andmete laadimine... Autentimine on vajalik Vale parool Tõsta ümber @@ -300,4 +298,5 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi selle faili liigutamiseks Kohesed üleslaadimised Turvalisus + jagatud diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index ac6f3252..e74ff818 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -271,12 +271,11 @@ Mesedez, baimendu berriz Fitxategia jadanik ez dago eskuragarri zerbitzarian Kontuak Gehitu kontua - ownCloud Android programaren egunerokoak - Datuak kargatzen... Autentikazioa beharrezkoa Pasahitz okerra Mugitu Aukeratu Berehalako Igoerak Segurtasuna + konpartitua diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 0140c07a..142e71b4 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -240,4 +240,5 @@ رمز عبور اشتباه است انتخاب کردن امنیت + اشتراک گذاشته شده diff --git a/res/values-fi-rFI/strings.xml b/res/values-fi-rFI/strings.xml index 571a9123..f347edfc 100644 --- a/res/values-fi-rFI/strings.xml +++ b/res/values-fi-rFI/strings.xml @@ -75,6 +75,7 @@ Päivitä tiedosto Tiedoston nimeksi muutettiin %1$s siirron yhteydessä Jaa linkki + Poista linkin jako Kyllä Ei OK @@ -151,6 +152,7 @@ Testataan yhteyttä... Väärin tehdyt palvelin-asetukset Laitteella on jo tili samalle käyttäjälle ja palvelimelle + Syötetty käyttäjä ei täsmää tämän tilin käyttäjän kanssa Tuntematon virhe Isäntää ei löydy Palvelin-instanssia ei löydetty @@ -259,8 +261,8 @@ Salattu yhteys on ohjattu uudelleen salaamatonta reittiä pitkin. Lokit Lähetä historia - ownCloudin Android-sovelluksen lokit - Ladataan tietoja... + Lokien lähettämistä varten ei löytynyt sovellusta. Asenna sähköpostisovellus! + Ladataan tietoja… Tunnistautuminen vaaditaan Väärä salasana Siirrä @@ -271,4 +273,6 @@ Tämän tiedoston tai kansion siirtoa yrittäessä tapahtui virhe Välittömät lähetykset Tietoturva + jaettu + kanssasi diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml new file mode 100644 index 00000000..52444048 --- /dev/null +++ b/res/values-fi/strings.xml @@ -0,0 +1,43 @@ + + + Lähetä + Avaa sovelluksessa + Luo kansio + Asetukset + + Lisää + Hallitse tilejä + Sovelluksen PIN + Apua + http://esimerkki.fi/palvelu/ + Käyttäjätunnus + Salasana + Lähetä + Ei sisältöä. Siirrä tänne jotakin! + Ladataan... + kansio + kansiot + tiedosto + Tiedostot + Jaa linkki + Poista linkin jako + KYLLÄ + EI + Ok + Peruuta + Virhe + Virheellinen PIN + Sovelluksen PIN poistettu + Sovelluksen PIN tallennettu + Syötetty käyttäjä ei täsmää tämän tilin käyttäjän kanssa + Palvelin ei tue tätä autentikointitapaa + Nimeä uudelleen + Sijainti: + Ylikirjoita + Kopioi linkki + + Siirrä + Valitse + Tiedosto on jo kohdekansiossa. + diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 73d97d56..46d14ca2 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -12,10 +12,10 @@ Détails Envoyer Trier - Trier par + Trier - A-Z - Plus récent - Plus ancien + par ordre alphabétique + du plus récent au plus ancien @@ -23,12 +23,12 @@ Plus Comptes Gestion des comptes utilisateur - Utilisation d\'un code de sécurité - Protéger l\'accès aux données manipulées par le client - Téléchargements instantanés d\'images - Téléversement instantané des photos prises par la caméra - Téléchargements instantanés de vidéos - Téléversement instantané des vidéos prises par la caméra + Code de sécurité + Protéger l\'accès à l\'application + Envoi instantané des photos + Téléverser immédiatement les photos prises par la caméra + Envoi instantané des vidéos + Téléverser immédiatement les vidéos prises par la caméra Activer les logs Utilisé pour enregistrer les problèmes dans les logs Historique des logs @@ -40,14 +40,14 @@ Empreinte Mémoriser l\'emplacement de partage Mémoriser le dernier emplacement d\'upload - Essayez %1$s sur votre smartphone&nbsp;! + Essayez %1$s sur votre smartphone ! J\'aimerais vous inviter à utiliser %1$s sur votre smartphone ! Téléchargez-le ici : %2$s Vérifier le serveur Adresse du serveur https://… Nom d\'utilisateur Mot de passe - Nouveau dans %1$s&nbsp;? + Nouveau dans %1$s ? Fichiers Connecter Téléverser @@ -129,7 +129,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Tout déplacer Tous les fichiers ont été déplacés Certains fichiers n\'ont pu être déplacés - Local&nbsp;: %1$s + Local : %1$s Distant : %1$s Il n\'y a pas assez de place disponible pour copier les fichiers sélectionnés dans le dossier %1$s. Voulez-vous quand même les déplacer ? Veuillez saisir votre code de sécurité @@ -144,7 +144,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq %1$s lecteur de musique %1$s (lecture) %1$s (chargement) - %1$s pourcentage de lecture finie + Lecture de %1$s terminée Fichier média introuvable Aucun compte n\'a été trouvé Le fichier n\'est pas dans un compte valide @@ -173,7 +173,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Impossible de trouver l\'hôte Aucune instance du serveur n\'a été trouvée Le serveur met trop longtemps à répondre - Adresse invalide + Adresse non valide Échec de l\'initialisation SSL Impossible de vérifier l\'identité du serveur SSL La version du serveur n\'est pas reconnue @@ -195,26 +195,26 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Maintenir le fichier à jour Renommer Supprimer - Voulez-vous vraiment supprimer %1$s&nbsp;? - Voulez-vous vraiment supprimer %1$s et son contenu&nbsp;? + Voulez-vous vraiment supprimer %1$s ? + Voulez-vous vraiment supprimer %1$s et son contenu ? Local seulement - Le contenu local uniquement + Contenu local uniquement Effacer du serveur - Les deux distant et local + Distant et local Suppression effectuée avec succès Suppression impossible Entrez un nouveau nom La version locale ne peut être renommée, veuillez réessayer avec un nom différent Renommage impossible Le fichier distant n\'a pu être vérifié - Le contenu des fichiers est déjà synchronisé + Le contenu du fichier est déjà synchronisé Le dossier n\'a pas pu être créé - Caractères interdits&nbsp;: / \\ &lt; &gt; : " | ? * + Caractères interdits : / \\ < > : \" | ? * Le nom du fichier ne peut pas être vide Veuillez patienter Problème inattendu. Veuillez essayer une autre application pour la sélection du fichier Aucun fichier sélectionné - Envoyer un lien à… + Envoyer le lien vers… Connexion avec oAuth2 Connexion au serveur oAuth2… L\'identité du site ne peut être vérifiée @@ -222,23 +222,23 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq - Le certificat du serveur a expiré - Le certificat du serveur n\'est pas encore valide - L\'URL ne correspond pas au nom d\'hôte du certificat - Voulez-vous tout de même faire confiance à ce certificat&nbsp;? + Voulez-vous tout de même faire confiance à ce certificat ? Impossible de sauvegarder le certificat Détails Masquer - Délivré à&nbsp;: - Délivré par&nbsp;: + Délivré à : + Délivré par : Nom d\'usage : - Organisation&nbsp;: - Unité organisationnelle&nbsp;: - Pays&nbsp;: - Région&nbsp;: - Localisation&nbsp;: - Validité&nbsp;: - De&nbsp;: - À&nbsp;: - Signature&nbsp;: - Algorithme&nbsp;: + Organisation : + Unité organisationnelle : + Pays : + Région : + Localisation : + Validité : + Du : + Au : + Signature : + Algorithme : Impossible d\'afficher le certificat. - Aucune information sur l\'erreur Ceci est un espace réservé @@ -249,7 +249,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq 12:23:45 Téléverser les images via une connexion WiFi uniquement Téléverser les vidéos via une connexion WiFi uniquement - /TéléversementInstantané + /Instantané Conflit de mise à jour Le fichier distant %s n\'est pas synchronisé avec le fichier local. En choisissant de continuer, vous remplacerez le contenu de fichier sur le serveur. Garder les deux versions @@ -258,7 +258,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Prévisualisation de l\'image Cette image ne peut pas être affichée %1$s n\'a pas pu être copié dans le dossier local %2$s - Chemin d\'accès pour le téléversement + Répertoire d\'envoi Désolé, le partage n\'est pas disponible sur votre serveur. Veuillez contacter votre administrateur. Impossible de partager. Vérifiez que le fichier est bien présent Une erreur est survenue lors de la tentative de partage de ce fichier ou répertoire @@ -267,7 +267,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Envoyer Copier le lien Copié dans le presse-papiers - Erreur critique&nbsp;: impossible de réaliser des opérations + Erreur critique : impossible de réaliser des opérations Une erreur s\'est produite pendant la connection au serveur Une erreur est survenue pendant l\'attente du serveur. L\'opération n\'a pas pu être effectuée. Une erreur est survenue pendant l\'attente du serveur. L\'opération n\'a pas pu être effectuée. @@ -286,7 +286,8 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq La connexion sécurisée est redirigée via une route non-sécurisée. Journaux Envoyer l\'historique - Journaux de l\'application Android ownCloud + Aucune application trouvée pour envoyer les logs. Installez une application de courriel ! + Journaux de l\'application Android %1$s Chargement des données... Authentification requise Mot de passe incorrect @@ -298,6 +299,10 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Le fichier existe déjà dans le dossier de destination Une erreur est survenue lors de la tentative de déplacement de ce fichier ou dossier de déplacer ce fichier - Téléchargements instantanés + Envoi instantané Sécurité + Répertoire d\'envoi des vidéos + partagé(e) + avec vous + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index a7605641..17407273 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -283,7 +283,8 @@ Descárgueo de aquí: %2$s A conexión segura está a ser redirixida a unha ruta non segura. Rexistros Enviar o historial - Rexistros da app ownCloud Android + Non se atopou unha aplicación para enviar os rexistros. Instale unha aplicación de correo! + Rexistros da aplicación %1$s Android Cargando os datos... Requírese autenticación Contrasinal incorrecto @@ -298,4 +299,7 @@ Descárgueo de aquí: %2$s Envío instantáneo Seguranza Enviar a ruta do vídeo + compartido + con vostede + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-hu-rHU/strings.xml b/res/values-hu-rHU/strings.xml index bdfb3e5c..e8d11114 100644 --- a/res/values-hu-rHU/strings.xml +++ b/res/values-hu-rHU/strings.xml @@ -246,8 +246,12 @@ Bemásolva a vágólapra Fiókok + Fiók hozzáadása + Naplók Felhasználóazonosítás szükséges Hibás jelszó + Mozgatás Válasszon Biztonság + Megosztott diff --git a/res/values-id/strings.xml b/res/values-id/strings.xml index 795cfde0..eb2df51e 100644 --- a/res/values-id/strings.xml +++ b/res/values-id/strings.xml @@ -282,8 +282,6 @@ Sambungan aman dialihkan ke rute yang tidak aman. Log Kirim Riwayat - Log apl ownCloud Android - Memuat data... Diperlukan otentikasi Sandi salah Pindah @@ -296,4 +294,5 @@ untuk memindahkan berkas ini Unggah Cepat Keamanan + dibagikan diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 4efe1ef9..e121130b 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -282,7 +282,8 @@ La connessione sicura è rediretta su un percorso non sicuro. Registri Invia cronologia - Registri applicazione ownCloud Android + Non è stata trovata alcuna applicazione per l\'invio dei registri. Installa l\'applicazione mail! + Registri applicazione %1$s Android Caricamento dati in corso... Autenticazione richiesta Password errata @@ -297,4 +298,7 @@ Caricamenti istantanei Protezione Percorso di caricamento video + condiviso + con te + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-ja-rJP/strings.xml b/res/values-ja-rJP/strings.xml index 7c0d99c0..ed5da423 100644 --- a/res/values-ja-rJP/strings.xml +++ b/res/values-ja-rJP/strings.xml @@ -283,7 +283,8 @@ 暗号化接続は非暗号化接続にリダイレクトされました。 ログ ログを送信 - ownCloud Android アプリログ + ログを送るアプリが見つかりませんでした。メールアプリをインストールして下さい。 + %1$s アンドロイドアプリログ 読込中 ... 認証を必要とする 無効なパスワード @@ -298,4 +299,7 @@ 自動アップロード セキュリティ 動画のアップロードパス + 共有中 + あなたと + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml index 69623e19..f55428eb 100644 --- a/res/values-kn/strings.xml +++ b/res/values-kn/strings.xml @@ -1,6 +1,35 @@ + ಪೇರಿಸು + ಕಡತಗಳು + ಹೊಸ ಕಡತಕೋಶ + ಆಯ್ಕೆ + ಕಳುಹಿಸಿ + ಇನ್ನಷ್ಟು + ಸಹಾಯ + ಮುದ್ರೆ + ಬಳಕೆಯ ಹೆಸರು + ಗುಪ್ತ ಪದ + ಕಡತಗಳು + ಪೇರಿಸು + ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ + ಸಂಪರ್ಕ ಕೊಂಡಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳಬಹುದು + ಹೌದು + ಇಲ್ಲ + ಸರಿ + ವರ್ಗಾವಣೆ ರದ್ದು ಮಾಡಿ + ರದ್ದು + ತಪ್ಪಾಗಿದೆ + ಗೊತ್ತಿಲ್ಲದ ದೋಷ + ಗುಪ್ತ ಪದವನ್ನು ಬದಲಾಯಿಸಿ + ಮರುಹೆಸರಿಸು + ತೆಗೆದುಹಾಕಿ + ಕಳುಹಿಸಿ + ದೃಢೀಕರಣ ಅಗತ್ಯವಿದೆ + ದುರ್ಬಲ ಗುಪ್ತಪದ + ಆಯ್ಕೆ + ಭದ್ರತೆ diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 3bb9a60c..1cb3bec5 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -225,4 +225,5 @@ 잘못된 암호 선택 보안 + 공유됨 diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml new file mode 100644 index 00000000..69623e19 --- /dev/null +++ b/res/values-lo/strings.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/res/values-lt-rLT/strings.xml b/res/values-lt-rLT/strings.xml index 30cca384..b8c3bb15 100644 --- a/res/values-lt-rLT/strings.xml +++ b/res/values-lt-rLT/strings.xml @@ -11,6 +11,12 @@ Nustatymai Informacija Siųsti + Rikiuoti + Rikiuoti pagal + + A-Z + Naujausi - Seniausi + Bendras @@ -32,6 +38,8 @@ Rekomenduoti draugui Atsiliepimai Imprint + Prisiminti bendrinimo vietą + Prisiminti paskutinio bendrinimo įkėlimo vietą IÅ¡bandykite %1$s savo iÅ¡maniajame telefone! Patikrinti Serverį Serverio adresas @@ -242,4 +250,5 @@ Neteisingas slaptažodis Pasirinkite Saugumas + bendrinamas diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index c185f73f..0895ca91 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -149,6 +149,7 @@ SÅ«tÄ«t Konti + Nepareiza parole Izvēlieties Drošība diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index 2ce829c4..23c36119 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -130,4 +130,5 @@ Погрешна лозинка Избери Безбедност + споделен diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml index 69623e19..b4185fd3 100644 --- a/res/values-mn/strings.xml +++ b/res/values-mn/strings.xml @@ -1,6 +1,17 @@ + Байршуулах + Файлууд + Тохиргоо + Ерөнхий + Хэрэглэгчийн нэр + Нууц үг + Файлууд + Байршуулах + Аккаунт үүсгэх + Устгах + Аюулгүй байдал diff --git a/res/values-nb-rNO/strings.xml b/res/values-nb-rNO/strings.xml index c9a09ab1..859c7c99 100644 --- a/res/values-nb-rNO/strings.xml +++ b/res/values-nb-rNO/strings.xml @@ -11,6 +11,12 @@ Innstillinger Detaljer Send + Sorter + Sorter pÃ¥ + + A-Z + Nyeste - Eldste + Generelt @@ -32,6 +38,8 @@ Anbefal til en venn Tilbakemelding Avtrykk + Husk delt plassering + Husk sist delt plassering for opplasting Prøv %1$s pÃ¥ smarttelefonen din! Jeg ønsker Ã¥ invitere deg til Ã¥ bruke %1$s pÃ¥ smarttelefonen din!\nLast ned her: %2$s Sjekk server @@ -245,6 +253,7 @@ BildeforhÃ¥ndsvisning Dette bildet kan ikke vises %1$s kunne ikke kopieres til lokal mappe %2$s + Sti til opplasting Beklager, deling er ikke skrudd pÃ¥ for din tjener. Ta kontakt med administratoren. Kan ikke dele. Sjekk om filen eksisterer. @@ -270,9 +279,11 @@ Filen finnes ikke pÃ¥ serveren lenger Kontoer Legg til en konto + Sikker forbindelse er omdirigert til en usikker rute. Logger Send historikk - logger for ownCloud Android app + Ingen app for sending av logger funnet. Installer epost-app! + %1$s Android app logger Laster data... Autentisering kreves Feil passord @@ -284,5 +295,10 @@ Filen finnes allerede i mÃ¥lmappen En feil oppstod ved flytting av denne filen eller mappen Ã¥ flytte denne filen + Umiddelbare opplastinger Sikkerhet + Sti til video-opplasting + delt + med deg + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 84a0e0dd..bbe89ba2 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -285,7 +285,8 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar De beveiligde verbinding is omgeleid naar een onveilige route. Logs Verstuur geschiedenis - ownCloud Android app logs + Geen app voor versturen van logs gevonden. Installeer de mail app! + %1$s Android app logs Laden data... Authenticatie vereist Onjuist wachtwoord @@ -300,4 +301,7 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar Directe uploads Beveiliging Upload Video Pad + gedeeld + met u + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 7715d945..cc0f5b44 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -38,6 +38,7 @@ Poleć znajomemu Wsparcie Stopka + Zapamiętaj położenie udostępnienia Wypróbuj %1$s na swoim smartphonie! Chciałbym zaprosić Cię do używania %1$s na swoim smartfonie!\nŚciągnij tutaj: %2$s Sprawdź serwer @@ -280,7 +281,7 @@ Bezpieczne połączenie jest przekierowywane przez niezabezpieczone trasy. Logi Wyślij historię - Logi aplikacji ownCloud Android + %1$s Logi aplikacji Android Ładuję dane... Wymagana autoryzacja Złe hasło @@ -294,4 +295,6 @@ aby przenieść ten plik Automatyczne wysyłanie Bezpieczeństwo + Katalog wysyłania dla wideo + współdzielone diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml index 004c2ab3..7e02b56a 100644 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@ -282,8 +282,9 @@ Conexão segura esta redirecionada para uma rota não segura. Logs Enviar Histórico - Logs do aplicativo ownCloud Android - Carregamento de dados... + Não foi encontrado nenhum app para envio de logs. Instale o mail app! + %1$s logs do Android app + Carregando dados... Autenticação é requerida Senha incorreta Mover @@ -297,4 +298,7 @@ Envios Instantâneos Segurança Enviar o Caminho do Vídeo + compartilhado + com você + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index f5ccd30f..9a37c42f 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -40,7 +40,7 @@ Imprint Lembrar localização de partilha Lembrar da última localização de envio de partilha - Experimente %1$s no seu smartphone! + Test %1$s no seu smartphone! Quero convidar-te a usares %1$s no teu smartphone!\nFaz download aqui: %2$s Verificar Servidor Endereço do servidor https://.. @@ -60,26 +60,26 @@ O %1$s não está autorizado a aceder aos ficheiro partilhados. A enviar segundos atrás - Vazio. Envie alguma coisa! + Aqui não existe nada. Envie alguma coisa! A carregar ... Não existem ficheiros nesta pasta. pasta pastas ficheiro ficheiros - Clique no ficheiro para visualizar informação adicional. + Toque num ficheiro para visualizar a informação adicional. Tamanho: Tipo: Criado: Modificado: Transferir Atualizar ficheiro - O nome do ficheiro foi alterado para %1$s durante o envio. + O ficheiro foi renomeado para %1$s durante o envio. Partilhar a hiperligação Deixar de partilhar a ligação Sim Não - OK + ACEITAR Cancelar a transferência Cancelar o envio Cancelar @@ -94,20 +94,20 @@ Enviar de ... Nome da pasta A enviar ... - A enviar %1$d%% , %2$s completo. - Carregado com sucesso - %1$s foi carregado com sucesso - Carregamento falhou + %1$d%% A enviar %2$s + Envio bem sucedido + %1$s foi enviado com sucesso + Não foi possível enviar O envio do ficheiro %1$s não foi concluído. Falha no carregamento, é necessário fazer novo login A transferir ... - %1$d%% A decarregar %2$s - Descarga com sucesso + %1$d%% A transferir %2$s + Transferência bem sucedida %1$s foi descarregado com sucesso Descarga falhou O descarregamento %1$s não foi possível descarregar - Não transferido - Falha no download, é necessário fazer login + Ainda não foi transferido + Não foi possível transferir, tem de iniciar a sessão novamente Escolha a conta Falhou a sincronização Falhou a sincronização, necessita fazer um novo login @@ -122,23 +122,23 @@ Tal como na versão 1.3.16, os ficheiros que foram enviados deste dispositivo são copiados para a pasta local %1$s para prevenir perda de dados quando um ficheiro é partilhado com várias contas.\n\nDevido a esta alteração, todos os ficheiros das versões anteriores foram copiados para a pasta %2$s. No entanto, um erro impediu a conclusão deste processo durante a sincronização da conta. Pode deixar o ficheiro(s) como estão e remover o link para %3$s, ou mover o(s) ficheiro(s) para a pasta %1$s e guardar o link para %4$s. \n\nEm baixo estão listados ficheiro(s) locais e remotos em %5$s que foram ligados. A pasta %1$s já não existe Mover Todos - Todos os ficheiros foram movidos + Foram movidos todos os ficheiros Não foi possível mover alguns ficheiros Local: %1$s Remoto: %1$s Não existe espaço disponível para copiar o ficheiro seleccionado para a pasta %1$s . Em vez disso deseja mover o ficheiro? - Por favor escreva o PIN da Aplicação - Escreva o PIN da Aplicação - O PIN vai ser pedido todas as vezes que iniciar a aplicação. - Volte a inserir o App PIN, por favor - Remover o PIN do aplicação. + Por favor, insira o PIN da App + Insira o PIN da App + O PIN será pedido sempre que a app seja iniciada. + Por favor, reinsira o PIN da App + Remover o seu PIN da App Os códigos PIN introduzidos não são iguais. Código PIN Incorrecto. PIN da aplicação removido PIN da aplicação guardado %1$s leitor de música - A tocar: %1$s - %1$s (A carregar) + %1$s (a reproduzir) + %1$s (a carregar) %1$s leitura terminada Não foi encontrado nenhum ficheiro de média Não foi fornecida conta @@ -280,8 +280,9 @@ Ligação segura é redireccionada para um caminho inseguro. Registos de Alterações Enviar Histórico - Registos das alterações da app ownCloud Android - A carregar os dados ... + Não foi encontrado o aplicativo para envio de registos . Instale app e-mail! + %1$s Android Aplicação de Registyos + A carregar os dados... Autenticação necessária Palavra-passe errada Mover @@ -294,4 +295,6 @@ para mover este ficheiro Envios Instantâneos Segurança + Envio do Caminho do Vídeo + partilhado diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 123c779b..74c1b55c 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -21,10 +21,10 @@ Administrare conturi PIN-ul aplicaÅ£iei ProtejaÅ£i-vă clientul - Încărcare instanta de imagine - Încărca instantaneu imagini luate de camera + Încărcare instantă de imagini + Încarcă instantant imagini luate cu camera Încărcare instantă de videoclipuri. - Încarcă videoclipuri instant, filmate cu camera. + Încarcă instant videoclipuri înregistrate cu camera Permite logarea Acesta este folosit pentru a înregistra problemele Istoria logarilor @@ -236,7 +236,7 @@ 12:23:45 Incarca poze doar via WiFi Încarcă videoclipuri doar via WiFi - /Încărcare instanta + /Încărcare instantă Actualizați conflictul Fișierul de la distanță %s nu este sincronizat cu fișierul local. Continuand, se va înlocui conținutul fișierului de pe server. Pastreaza amandoua @@ -267,12 +267,12 @@ Fișierul nu mai este disponibil pe server Conturi Adaugă cont - Se încarcă datele... Autentificare necesară Parolă greșită Mutare Nu este nimic aici. Poți adăuga un director! Alege pentru a muta acest fișier + Încărcări instante Securitate diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 8a628018..bf3c9757 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -1,13 +1,13 @@ - %1$s Приложение для Андроида + %1$s Приложение для Андроид Версия %1$s Обновить учетную запись Загрузить Содержимое из других приложений Файлы Открыть с помощью - Новая папка + Новый каталог Настройки Подробно Отправить @@ -15,7 +15,7 @@ Упорядочить по А-Я - Новые - Старые + По новизне @@ -25,10 +25,10 @@ Управление учётными записями App PIN Защитить ваш клиент - Быстрая загрузка фотографий + Мгновенная загрузка фотографий Немедленно загружать фотографии сделанные камерой - Быстрая загрузка видео - Быстрая загрузка видео с камеры + Мгновенная загрузка видео + Немедленно загружать видео сделанные камерой Включить журналирование Используется для регистрации ошибок Журнал @@ -38,6 +38,8 @@ Рекомендовать другу Обратная связь Штамп + Запомнить расположение общего ресурса + Запомнить расположение загрузки последней публикации Попробуйте %1$s на вашем смартфоне! Хочу предложить вам использовать %1$s на смартфоне!\nЗагрузить можно здесь: %2$s @@ -49,21 +51,21 @@ Файлы Подключиться Загрузить - Выберете папку для загрузки + Выберете каталог для загрузки Учётная запись не найдена - На вашем устройстве нет учётных записей %1$s. Сначала нужно настроить учётную запись. + На вашем устройстве нет учётных записей %1$s. Сначала, необходимо настроить учётную запись. Установка Выход Нет содержимого для загрузки Содержимое не получено. Нечего загружать. - %1$s не имеет доступа к опубликованным данным + Доступ к общему ресурсу для %1$s запрещен Загрузка - только что + менее минуты Здесь ничего нет. Загрузите что-нибудь! Загрузка... - В данной папке нет файлов. - папка - папки + В этом каталоге нет файлов. + каталог + каталоги файл файлы Нажмите на файл для отображения дополнительной информации. @@ -91,14 +93,14 @@ Удалить учётную запись Создать учётную запись Загрузить из... - Имя папки + Имя каталога Загрузка... %1$d%% загрузки %2$s Загрузка завершена %1$s был успешно загружен Ошибка загрузки Загрузка %1$s не может быть завершена - Загрузка не удалась, Вам необходимо переподключиться + Загрузка не удалась, необходимо переподключиться Скачивание... %1$d%% скачивания %2$s Скачивание завершено @@ -106,27 +108,27 @@ Скачивание не удалось Скачивание %1$s не может быть завершено Ещё не скачано - Скачивание не удалось, Вам необходимо переподключиться + Скачивание не удалось, необходимо переподключиться Выберите учётную запись Синхронизация прошла неудачно - Синхронизация не удалась, Вам необходимо переподключиться + Синхронизация не удалась, необходимо переподключиться Синхронизация %1$s не может быть завершена Неверный пароль для %1$s Обнаружены конфликты %1$d файлы не могут быть синхронизированы Не удалось синхронизировать файлы Содержимое %1$d файлов не может быть синхронизировано (конфликтов: %2$d) - Несколько локальных файлов были забыты + Некоторые локальные файлы были проигнорированы Не возможно скопировать %1$d файлы из %2$s папки - Начиная с версии 1.3.16, файлы, загружаемые с этого устройства, копируются в локальную директорию %1$s, чтобы предотвратить потерю данных при синхронизации файла с несколькими учётными записями.\n\nПоэтому все файлы, загруженные предыдущими версиями данного приложения, были скопированы в директорию %2$s. Однако, во время синхронизации что-то помешало завершить эту операцию. Теперь можно либо оставить файлы как есть и удалить ссылку на %3$s, либо переместить их в %1$s и сохранить ссылку на %4$s.\n\nНиже перечислены локальные файлы, и соответствующие им удалённые файлы в %5$s, к которым они привязаны. + Начиная с версии 1.3.16, файлы, загружаемые с этого устройства, копируются в локальный каталог %1$s, чтобы предотвратить потерю данных при синхронизации файла с несколькими учётными записями.\n\nПоэтому все файлы, загруженные предыдущими версиями данного приложения, были скопированы в каталог %2$s. Однако, во время синхронизации что-то помешало завершить эту операцию. Можете оставить файлы как есть и удалить ссылку на %3$s, либо переместить их в %1$s и сохранить ссылку на %4$s.\n\nНиже перечислены локальные файлы, и соответствующие им удалённые файлы в %5$s, к которым они привязаны. Каталог %1$s больше не существует Переместить всё Все файлы были перемещены Некоторые файлы не могут быть перемещены Локально: %1$s Удаленно: %1$s - Для копирования выбранных файлов в папку %1$s недостаточно свободного места. Скопировать в другое место? - Вставьте App PIN + Для копирования выбранных файлов в каталог %1$s недостаточно свободного места. Скопировать в другое место? + Укажите App PIN Введите App PIN PIN-код будет запрашиваться при каждом запуске приложения. Повторите ввод App PIN @@ -183,9 +185,9 @@ Подключение к серверу аутентификации... Сервер не поддерживает выбранный метод аутентификации %1$s не поддерживает сразу несколько учётных записей - Ваш сервер не возвращает корректный пользовательский идентификатор, пожалуйста свяжитесь с администратором + Cервер не возвращает корректный пользовательский идентификатор. Пожалуйста, свяжитесь с вашим администратором ⇥ - Невозможно аутентифицироваться на этом сервере + Невозможно авторизоваться на этом сервере Обновлять файл Переименовать Удалить @@ -202,7 +204,7 @@ Переименование не может быть завершено Удаленный файл не может быть проверен Содержимое файла уже синхронизировано - Не возможно создать папку + Не возможно создать каталог Недопустимые символы: / \\ < > : \" | ? * Имя файла не может быть пустым Подождите немного @@ -251,47 +253,53 @@ Не загружать Предпросмотр Это изображение не может быть отображено - %1$s не возможно скопировать в локальною папку %2$s + %1$s невозможно скопировать в локальный каталог %2$s Путь для загрузки - К сожалению, на вашем сервере отключен совместный доступ. Пожалуйста, свяжитесь с вашим администратором. - Невозможно добавить в общий доступ. Пожалуйста, проверьте, существует ли файл - Ошибка предоставления общего доступа к этому файлу или каталогу - Невозможно убрать из общего доступа. Пожалуйста, проверьте, существует ли файл - Ошибка удаления общего доступа к этому файлу или каталогу + Механизм общего доступа не включен на данном сервере. Пожалуйста, свяжитесь с вашим +⇥⇥администратором. + Невозможно поделиться. Убедитесь, что файл существует + При попытке поделиться этим файлом или каталогом произошла ошибка + Невозможно закрыть доступ. Убедитесь что файл существует + При попытке закрыть доступ к этому файлу или каталогу произошла ошибка Отправить Копировать ссылку Скопировано в буфер обмена - Критическая ошибка: невозможно выполнить операции + Критическая ошибка: невозможно выполнить действия При подключении к серверу возникла ошибка - Во время ожидания сервера возникла ошибка, операция не может быть завершена - Во время ожидания сервера возникла ошибка, операция не может быть завершена - Операция не может быть завершена, сервер недоступен + Во время ожидания сервера произошла ошибка, действие не может быть выполнено + Во время ожидания сервера произошла ошибка, действие не может быть выполнено + Действие не может быть выполнено, сервер недоступен - У вас нет доступа %s - переименовать этот файл - удалить этот файл - опубликовать этот файл - отменить публикацию этого файла - создать файл - загрузить в эту папку + Недостаточно прав в %s + что-бы переименовать этот файл + что-бы удалить этот файл + что-бы поделиться этим файлом + что-бы закрыть доступ к этому файлу + что-бы создать файл + что-бы загрузить в этот каталог Этот файл больше недоступен на сервере Учётные записи Добавить учетную запись - Защищённое соединение перенаправлено по незащищённому маршруту + Защищённое соединение перенаправлено по небезопасному маршруту Журналы История Отправлений - Журналы Андроид-приложения ownCloud - Загружаются данные... + Приложение для отправки журнала не найдено. Установите почтовое приложение! + Журналы приложения %1$s для Android + Загрузка данных… Требуется аутентификация Неправильный пароль Переместить - Здесь ничего нет. Вы можете добавить папку! + Здесь ничего нет. Вы можете добавить каталог! Выбрать - Невозможно переместить. Пожалуйста, проверьте, существует ли файл - Невозможно переместить папку в папку-потомок - Файл уже существует в папке назначения - Произошла ошибка при попытке перемещения этого файла или папки + Невозможно переместить. Убедитесь, что файл существует + Невозможно переместить каталог в его подкаталог + Файл уже существует в каталоге назначения + Произошла ошибка при попытке перемещения этого файла или каталога переместить этот файл Мгновенные загрузки Безопасность + Путь для загрузки Видео + Общие + с вами + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-sk-rSK/strings.xml b/res/values-sk-rSK/strings.xml index 5c097d37..4416fd41 100644 --- a/res/values-sk-rSK/strings.xml +++ b/res/values-sk-rSK/strings.xml @@ -282,8 +282,6 @@ Zabezpečené pripojenie je presmerované na nezabezpečenú trasu. Logy OdoslaÅ¥ históriu - Logy aplikácie ownCloud pre Android - Nahrávam dáta... Vyžaduje sa overenie Nesprávne heslo Presunúť @@ -296,4 +294,5 @@ pre presun tohoto súboru Okamžité nahratie Zabezpečenie + zdieľané diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index 86be0f34..7f1a6258 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -282,7 +282,8 @@ Varna povezava je preusmerjena preko ne-varne poti. Dnevnik PoÅ¡lji zgodovino - Dnevnik programa ownCloud + Ni nameščenega poÅ¡tnega programa za poÅ¡iljanje dnevnikov. + %1$s dnevniki programa Poteka nalaganje podatkov ... Zahtevana je overitev Napačno geslo @@ -297,4 +298,7 @@ TakojÅ¡nje poÅ¡iljanje v oblak Varnost Pot videa za poÅ¡iljanje + v souporabi + z vami + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml index 02918e8a..7c1b7ffc 100644 --- a/res/values-sq/strings.xml +++ b/res/values-sq/strings.xml @@ -77,4 +77,5 @@ Fjalëkalim i gabuar Zgjidh Siguria + Ndarë diff --git a/res/values-sr-rSP/strings.xml b/res/values-sr-rSP/strings.xml index b5d14f16..ada7c59e 100644 --- a/res/values-sr-rSP/strings.xml +++ b/res/values-sr-rSP/strings.xml @@ -22,6 +22,7 @@ Veličina: Tip: Preuzmi + Podeli prečicu Da Ne Ok @@ -30,6 +31,7 @@ Izmeni lozinku Ukloni nalog Novi nalog + Ime fascikle Otpremanje... UspeÅ¡no otpremljeno Otpremanje nije uspelo diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index feb002e0..254ed65e 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -11,6 +11,12 @@ Inställningar Detaljer Skicka + Sortera + Sortera efter + + A-Ö + Nyast - Äldst + Allmänt @@ -32,6 +38,8 @@ Rekommendera till en vän Feedback Imprint + Kom ihÃ¥g plats för delat + Kom ihÃ¥g senaste uppladdningsplats vid dela Prova %1$s pÃ¥ din smartphone! Jag skullje vilja bjuda in dig till att prova %1$s pÃ¥ din smartphone!\nLadda ner appen frÃ¥n Google Play här: %2$s Kontrollera Server @@ -111,6 +119,7 @@ InnehÃ¥llet i %1$d filer kunde inte synkas (%2$d konflikter) Vissa lokala filer glömdes %1$d filer frÃ¥n %2$s mappar kunde inte kopieras till + FrÃ¥n och med version 1.3.16 kommer filer uppladdade frÃ¥n denna enhet kopieras in till lokal %1$s mapp för att förhindra dataförlust när en enskild fil synkroniseras med flera konton.\n\nPÃ¥ grund av denna ändring kommer alla filer uppladdade i tidigare versioner av denna applikation kopieras in till %2$s mapp. Dock förhindrade ett fel slutförandet av denna operation under konto-synkronisering. Du kan antingen lämna filerna som de är och ta bort länken till %3$s, eller flytta filerna in till %1$s mapp och behÃ¥lla länken till %4$s.\n\nNedan listas de lokala filerna och de fjrran filerna i %5$s som de länkades till. Mappen %1$s existerar inte längre Flytta allt Alla filer flyttades @@ -244,9 +253,12 @@ Förhandsvisa bild Denna bild kan inte visas %1$s kunde inte kopieras till %2$s lokal mapp + Uppladdnings-sökväg Ledsen, delning är inte aktiverat pÃ¥ din server. Vänligen kontakta din administratör. + Lyckades ej dela. Vänligen kontrollera om filen eisterar Ett fel uppstod vid försök att dela denna fil eller mapp + Lyckades ej sluta dela. Vänligen kontrollera om filen existerar Ett fel uppstod vid försök att sluta dela denna fil eller mapp Skicka Kopiera länk @@ -267,6 +279,11 @@ Filen är inte längre tillgänglig pÃ¥ servern Konton Lägg till konto + Säker anslutning är omdirigerad till en osäker väg. + Loggar + Skickat historik + Ingen app för att skicka loggar hittades. Installera mail appen! + %1$s Android app logs Laddar data... Autentisering krävs Fel lösenord @@ -274,6 +291,14 @@ Ingenting här. Du kan skapa en mapp! Välj Gick inte att flytta. Vänligen kontrollera att filen existerar + Det är inte möjligt att flytta mappen in i underliggande struktur + Filen existerar redan i destinationsmappen + Ett fel uppstod vid försök att flytta denna fil eller mapp att flytta den här filen + Direktuppladning Säkerhet + Uppladdnings-sökväg för video + delad + med dig + %1$s %2$s >>%3$s<< %4$s diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index a35922f7..56ec0389 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -282,8 +282,9 @@ Güvenli bağlantı, güvenli olmayan bir rotaya yönlendirildi. Günlükler Geçmişi Gönder - ownCloud Android uygulama kayıtları - Veri yükleniyor... + Günlükleri göndermek için uygulama bulunamadı. E-posta uygulamasını yükleyin! + %1$s Android uygulama kayıtları + Yükleniyor... Kimlik doğrulama gerekli Hatalı parola Taşı @@ -297,4 +298,5 @@ Anında Yüklemeler Güvenlik Video Yükleme Yolu + paylaşılan diff --git a/res/values-ug/strings.xml b/res/values-ug/strings.xml index 12a54928..abee26e6 100644 --- a/res/values-ug/strings.xml +++ b/res/values-ug/strings.xml @@ -44,4 +44,5 @@ ھېساباتلار بىخەتەرلىك + ھەمبەھىرلەنگەن diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index e66a5405..8af7792f 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -279,8 +279,6 @@ Безпечне підключення перенаправляється через незабезпечений маршрут. Журнали Надіслати історію - Журнали Android-додатка ownCloud - Завантаження даних... Потрібна аутентифікація Невірний пароль Перемістити @@ -293,4 +291,5 @@ перемістити цей файл Миттєво завантаження Безпека + спільне diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 3f198464..22142ace 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -4,13 +4,19 @@ 版本:%1$s 刷新帐户 上传 - 来自其它app的内容 + 来自其它应用的内容 文件 - 打开 - 增加文件夹 + 打开方式 + 新建文件夹 设置 详细信息 发送 + 排序 + 排序方式 + + A - Z + 新 - 旧 + 常规 @@ -18,13 +24,13 @@ 账号 管理账号 App PIN - 保护您的App客户端 + 保护客户端 即时图片上传 即时上传相机拍摄的图片 - 立即上传视频 + 即时上传视频 即时上传由相机拍摄的视频 开启日志 - 这过去是日志问题 + 用于记录问题 日志历史 这显示已经保存的日志 删除历史 @@ -32,27 +38,28 @@ 推荐给朋友 反馈 版本说明 - 在您的智能手机上试用一下 %1$s! - “我邀请你使用在你的智能手机上使用 %1$s,在这下载:%2$s” - + 记住共享位置 + 记住上次共享上传的位置 + 在您的智能手机上试用 %1$s! + 我邀请你在智能手机上使用 %1$s\n下载路径:%2$s 检查服务器 服务器地址 https://... 用户名 密码 - 新增到 %1$s? + 初次使用 %1$s? 文件 连接 上传 选择上传文件夹: 未找到账号 - 设备上未找到账号,请先创建账号。 + 设备上未找到 %1$s 账号,请先设置账号。 设置 退出 - 没有上传的内容 - 没有接收到内容,无可上传。 + 没有需要上传的内容 + 没有接收到内容,没有需要上传的内容。 %1$s未被允许访问共享内容。 上传 - 秒前 + 几秒前 这里还什么都没有。上传些东西吧! 载入中.... 在该文件夹中不存在文件。 @@ -60,19 +67,19 @@ 文件夹 文件 文件 - 点击一个文件来显示额外的信息。 + 点击一个文件可以显示额外的信息。 大小: 类型: 创建于: - 已修改: + 修改于: 下载 刷新文件 上传过程中文件被更名为了 %1$s 分享链接 - 取消共享链接 + 取消分享链接 是 否 - OK + 确定 取消下载 取消上传 取消 @@ -85,35 +92,35 @@ 删除账号 创建账号 上传自... - 目录名称 + 文件夹名称 上传... %1$d%% 上传 %2$s 上传成功 %1$s 成功上传 上传失败 - 1$上传未能完成 + %1$s 未能成功上传 上传失败,您需要重新登录 - 下载中…… + 下载中... %1$d%% 下载中 %2$s 下载成功 - %1$s 成功下载 + 成功下载 %1$s 下载失败 - 下载1$s 未能完成 + %1$s 下载未能完成 未下载完毕 下载失败,您需要重新登录 选择账户 同步失败 同步失败,您需要重新登录 %1$s同步未完成。 - 密码错误%1$s + %1$s 的密码错误 发现冲突 %1$d 文件无法同步 文件同步失败 - 无法同步 %1$d 文件内容(与 %2$d 冲突) + 无法同步 %1$d 文件内容(%2$d 冲突) 某些本地文件已被遗忘 %2$s 目录中的 %1$d 个文件不能被复制到 从 1.3.16 版起,从此设备上传的文件将被复制到本地的 %1$s 文件夹,以防止某个单一文件在多个账户间同步而造成的数据损失。\n\n 由于此项变化,此应用之前的版本上传的全部文件都已被复制到了 %2$s 文件夹。然而,账户同步期间有一个错误阻止了此操作的完成。您可能想保持文件不动,并移除指向 %3$s 的链接,或将文件移动到 %1$s 文件夹中并保持其到 %4$s 的链接。下面列出的是本地文件,以及它们被链接到的 %5$s 中的远程文件。 - 文件夹%1$s 不存在 + 文件夹%1$s 已经不存在 移动所有 所有文件已被移动 某些文件无法被移动 @@ -128,7 +135,7 @@ 两次 App PIN码不同 App PIN码不正确 App PIN码已移除 - App PIN码已保存。 + App PIN码已保存 %1$s 音乐播放器 %1$s (播放中) %1$s (载入中) @@ -149,16 +156,16 @@ 播放暂停按钮 快进按钮 正在认证... - 尝试登录 + 尝试登录... 没有网络连接 - 安全链接无效。 + 安全连接不可用。 连接已建立。 测试连接…… - 服务器配置不正确。 + 服务器配置不正确 此设备中已经存在同名同服务器的帐号 输入用户与此帐户的用户不符 发生未知错误! - 无法找到服务器 + 无法找到主机 未发现服务器实例 看起来服务器不太给力 网址不正确 @@ -166,13 +173,13 @@ 无法验证 SSL 服务器的身份 不可辨识的服务器服务器版本 无法建立连接 - 加密连接已建立 - 用户名或密码错误! + 安全连接已建立 + 用户名或密码错误 认证不成功 访问被认证服务器拒绝 意外状态;请再次输入服务器的地址 你的授权已经过期。请重新授权。 - 请输入当前密码: + 请输入当前密码 您的会话超时了,请重新连接 正在连接到认证服务器.... 服务器不支持这种验证方式 @@ -201,15 +208,15 @@ 文件名不能为空 请稍候 未知问题;请试试用其他程序选择此文件 - 未选择文件。 + 未选择文件 发送链接给 … 使用oAuth2登陆 连接oAuth2 服务器... 站点身份无法验证 - 不受信任的服务器证书 - 服务器证书过期 - 服务器证书过新 - 主机名与证书中的记录不匹配 + - 不受信任的服务器证书 + - 服务器证书过期 + - 服务器证书时间比当前时间还晚 + - 主机名与证书中的记录不匹配 是否信任此证书? 证书无法保存 详细信息 @@ -235,8 +242,8 @@ 389字节 2012/05/18 下午12:23 12:23:45 - 仅通过WIFI上传图片。 - 仅在 WIFI 下上传视频 + 仅通过 WIFI 上传图片。 + 仅通过 WIFI 上传视频 /InstantUpload 上传冲突 远程文件 %s 未与本地文件同步。继续将替换服务器上的文件内容。 @@ -244,8 +251,9 @@ 覆盖 不上传 图片预览 - 不能显示图片 + 无法显示图片 无法复制 %1$s 到本地目录 %2$s + 上传路径 抱歉,共享功能未启用。请联系管理员。 无法共享。请检查文件是否存在 共享文件或目录出错 @@ -260,29 +268,34 @@ 等待服务器响应时发生了一个错误,此操作无法完成 服务器不可用,此操作无法完成 - 你没有许可%s + 你没有权限%s 重命名该文件 删除该文件 - 分享该文件 + 共享该文件 取消共享该文件 创建文件 - 上传此文件夹 + 在此文件夹上传 该文件在服务器上不可用 账号 添加账号 + 安全连接被重定向到非安全路径. 日志 发送历史 - ownCloud安卓客户端日志 - 加载数据中... + 未找到可以发送日志的程序。请安装 mail! + %1$s Android 程序日志 + 载入数据... 需要认证 错误密码 移动 这里还什么都没有。上传些东西吧! - 选择(&C)... + 选择 无法移动。请检查文件是否存在 - b不能够把一个目录移动到它的下级 + 无法把一个目录移动到它的下级 该文件已经存在在目标文件夹 尝试移动该文件或文件夹时发生错误 移动该文件 + 即时上传 安全 + 视频上传路径 + 分享 diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml index b2731798..892944eb 100644 --- a/res/values-zh-rHK/strings.xml +++ b/res/values-zh-rHK/strings.xml @@ -71,4 +71,5 @@ 帳號 密碼錯誤 + 安全 diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index c8da742d..645c05ea 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -282,7 +282,8 @@ 安全連線被轉向到一個非安全的連線 紀錄 傳送歷史記錄 - ownCloud Android 應用程式記錄 + 找不到可以傳送記錄的電子郵件程式. 請安裝電子郵件軟體! + %1$s Android 應用程式記錄 資料載入中... 必須驗證 密碼錯誤 @@ -296,4 +297,6 @@ 移動這個檔案 即時上傳 安全性 + 影片上傳路徑 + 以分享的 diff --git a/res/values/strings.xml b/res/values/strings.xml index a4c25f83..914681b4 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -304,8 +304,9 @@ Logs Send History - ownCloud Android app logs - Loading data... + No app for sending logs found. Install mail app! + %1$s Android app logs + Loading data… Authentication required Wrong password @@ -325,4 +326,8 @@ Upload Video Path Download of %1$s folder could not be completed + shared + with you + %1$s %2$s >>%3$s<< %4$s + diff --git a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java index 1d2cda8c..ce53c444 100644 --- a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java +++ b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java @@ -29,8 +29,10 @@ import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.graphics.BitmapFactory; +import android.graphics.Matrix; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; +import android.media.ExifInterface; import android.media.ThumbnailUtils; import android.net.Uri; import android.os.AsyncTask; @@ -216,6 +218,9 @@ public class ThumbnailsCacheManager { if (bitmap != null) { thumbnail = ThumbnailUtils.extractThumbnail(bitmap, px, px); + + // Rotate image, obeying exif tag + thumbnail = BitmapUtils.rotateImage(thumbnail, mFile.getStoragePath()); // Add thumbnail to cache addBitmapToCache(imageKey, thumbnail); @@ -317,5 +322,5 @@ public class ThumbnailsCacheManager { mThumbnailsDiskCacheLock.notifyAll(); // Wake any waiting threads } } - + } diff --git a/src/com/owncloud/android/operations/CreateShareOperation.java b/src/com/owncloud/android/operations/CreateShareOperation.java index b563790f..fc44f530 100644 --- a/src/com/owncloud/android/operations/CreateShareOperation.java +++ b/src/com/owncloud/android/operations/CreateShareOperation.java @@ -24,8 +24,10 @@ package com.owncloud.android.operations; * */ +import android.content.Context; import android.content.Intent; +import com.owncloud.android.R; import com.owncloud.android.datamodel.FileDataStorageManager; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.lib.common.OwnCloudClient; @@ -46,6 +48,7 @@ public class CreateShareOperation extends SyncOperation { protected FileDataStorageManager mStorageManager; + private Context mContext; private String mPath; private ShareType mShareType; private String mShareWith; @@ -56,6 +59,7 @@ public class CreateShareOperation extends SyncOperation { /** * Constructor + * @param context The context that the share is coming from. * @param path Full path of the file/folder being shared. Mandatory argument * @param shareType 0 = user, 1 = group, 3 = Public link. Mandatory argument * @param shareWith User/group ID with who the file should be shared. This is mandatory for shareType of 0 or 1 @@ -72,9 +76,10 @@ public class CreateShareOperation extends SyncOperation { * To obtain combinations, add the desired values together. * For instance, for Re-Share, delete, read, update, add 16+8+2+1 = 27. */ - public CreateShareOperation(String path, ShareType shareType, String shareWith, boolean publicUpload, + public CreateShareOperation(Context context, String path, ShareType shareType, String shareWith, boolean publicUpload, String password, int permissions, Intent sendIntent) { + mContext = context; mPath = path; mShareType = shareType; mShareWith = shareWith; @@ -128,6 +133,9 @@ public class CreateShareOperation extends SyncOperation { OCFile file = getStorageManager().getFileByPath(mPath); if (file!=null) { mSendIntent.putExtra(Intent.EXTRA_TEXT, share.getShareLink()); + mSendIntent.putExtra(Intent.EXTRA_SUBJECT, String.format(mContext.getString(R.string.subject_token), + getClient().getCredentials().getUsername(), mContext.getString(R.string.shared_subject_header), + file.getFileName(), mContext.getString(R.string.with_you_subject_header))); file.setPublicLink(share.getShareLink()); file.setShareByLink(true); getStorageManager().saveFile(file); diff --git a/src/com/owncloud/android/services/OperationsService.java b/src/com/owncloud/android/services/OperationsService.java index ae4988d7..2b51660d 100644 --- a/src/com/owncloud/android/services/OperationsService.java +++ b/src/com/owncloud/android/services/OperationsService.java @@ -691,7 +691,7 @@ public class OperationsService extends Service { String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH); Intent sendIntent = operationIntent.getParcelableExtra(EXTRA_SEND_INTENT); if (remotePath.length() > 0) { - operation = new CreateShareOperation(remotePath, ShareType.PUBLIC_LINK, + operation = new CreateShareOperation(OperationsService.this, remotePath, ShareType.PUBLIC_LINK, "", false, "", 1, sendIntent); } diff --git a/src/com/owncloud/android/ui/LongClickableCheckBoxPreference.java b/src/com/owncloud/android/ui/LongClickableCheckBoxPreference.java deleted file mode 100644 index 5befe64a..00000000 --- a/src/com/owncloud/android/ui/LongClickableCheckBoxPreference.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.owncloud.android.ui; - -import android.content.Context; -import android.preference.CheckBoxPreference; -import android.view.View; - -public class LongClickableCheckBoxPreference extends CheckBoxPreference implements View.OnLongClickListener { - - public LongClickableCheckBoxPreference(Context context) { - super(context); - } - - @Override - public boolean onLongClick(View v) { - return true; - } -} diff --git a/src/com/owncloud/android/ui/RadioButtonPreference.java b/src/com/owncloud/android/ui/RadioButtonPreference.java new file mode 100644 index 00000000..8f562b36 --- /dev/null +++ b/src/com/owncloud/android/ui/RadioButtonPreference.java @@ -0,0 +1,20 @@ +package com.owncloud.android.ui; + +import android.content.Context; +import android.preference.CheckBoxPreference; +import android.view.View; + +import com.owncloud.android.R; + +public class RadioButtonPreference extends CheckBoxPreference implements View.OnLongClickListener { + + public RadioButtonPreference(Context context) { + super(context, null, android.R.attr.checkBoxPreferenceStyle); + setWidgetLayoutResource(R.layout.preference_widget_radiobutton); + } + + @Override + public boolean onLongClick(View v) { + return true; + } +} diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 8f24ca4c..059cb2b4 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -25,6 +25,8 @@ import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.AuthenticatorException; import android.accounts.OperationCanceledException; +import android.annotation.SuppressLint; +import android.annotation.TargetApi; import android.app.AlertDialog; import android.app.Dialog; import android.app.ProgressDialog; @@ -605,13 +607,23 @@ OnSslUntrustedCertListener, OnEnforceableRefreshListener { /** * Called, when the user selected something for uploading + * */ + @TargetApi(Build.VERSION_CODES.JELLY_BEAN) protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == ACTION_SELECT_CONTENT_FROM_APPS && (resultCode == RESULT_OK || resultCode == UploadFilesActivity.RESULT_OK_AND_MOVE)) { - requestSimpleUpload(data, resultCode); - + //getClipData is only supported on api level 16+, Jelly Bean + if (data.getData() == null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){ + for( int i = 0; i < data.getClipData().getItemCount(); i++){ + Intent intent = new Intent(); + intent.setData(data.getClipData().getItemAt(i).getUri()); + requestSimpleUpload(intent, resultCode); + } + }else { + requestSimpleUpload(data, resultCode); + } } else if (requestCode == ACTION_SELECT_MULTIPLE_FILES && (resultCode == RESULT_OK || resultCode == UploadFilesActivity.RESULT_OK_AND_MOVE)) { requestMultipleUpload(data, resultCode); @@ -877,6 +889,10 @@ OnSslUntrustedCertListener, OnEnforceableRefreshListener { } else if (item == 1) { Intent action = new Intent(Intent.ACTION_GET_CONTENT); action = action.setType("*/*").addCategory(Intent.CATEGORY_OPENABLE); + //Intent.EXTRA_ALLOW_MULTIPLE is only supported on api level 18+, Jelly Bean + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { + action.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); + } startActivityForResult(Intent.createChooser(action, getString(R.string.upload_chooser_title)), ACTION_SELECT_CONTENT_FROM_APPS); } diff --git a/src/com/owncloud/android/ui/activity/LogHistoryActivity.java b/src/com/owncloud/android/ui/activity/LogHistoryActivity.java index 676388d2..793b3d9d 100644 --- a/src/com/owncloud/android/ui/activity/LogHistoryActivity.java +++ b/src/com/owncloud/android/ui/activity/LogHistoryActivity.java @@ -25,6 +25,7 @@ import java.lang.ref.WeakReference; import java.lang.reflect.Field; import java.util.ArrayList; +import android.content.ActivityNotFoundException; import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; @@ -36,6 +37,7 @@ import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; +import android.widget.Toast; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.SherlockFragmentActivity; @@ -51,12 +53,15 @@ public class LogHistoryActivity extends SherlockFragmentActivity { private static final String MAIL_ATTACHMENT_TYPE = "text/plain"; + private static final String KEY_LOG_TEXT = "LOG_TEXT"; + private static final String TAG = LogHistoryActivity.class.getSimpleName(); private static final String DIALOG_WAIT_TAG = "DIALOG_WAIT"; private String mLogPath = FileStorageUtils.getLogPath(); private File logDIR = null; + private String mLogText; @Override @@ -70,6 +75,7 @@ public class LogHistoryActivity extends SherlockFragmentActivity { actionBar.setDisplayHomeAsUpEnabled(true); Button deleteHistoryButton = (Button) findViewById(R.id.deleteLogHistoryButton); Button sendHistoryButton = (Button) findViewById(R.id.sendLogHistoryButton); + TextView logTV = (TextView) findViewById(R.id.logTV); deleteHistoryButton.setOnClickListener(new OnClickListener() { @@ -89,20 +95,22 @@ public class LogHistoryActivity extends SherlockFragmentActivity { } }); - if (mLogPath != null) { - logDIR = new File(mLogPath); - } - - if (logDIR != null && logDIR.isDirectory()) { - // Show a dialog while log data is being loaded - showLoadingDialog(); - - TextView logTV = (TextView) findViewById(R.id.logTV); + if (savedInstanceState == null) { + if (mLogPath != null) { + logDIR = new File(mLogPath); + } - // Start a new thread that will load all the log data - LoadingLogTask task = new LoadingLogTask(logTV); - task.execute(); + if (logDIR != null && logDIR.isDirectory()) { + // Show a dialog while log data is being loaded + showLoadingDialog(); + // Start a new thread that will load all the log data + LoadingLogTask task = new LoadingLogTask(logTV); + task.execute(); + } + } else { + mLogText = savedInstanceState.getString(KEY_LOG_TEXT); + logTV.setText(mLogText); } } @@ -125,41 +133,45 @@ public class LogHistoryActivity extends SherlockFragmentActivity { */ private void sendMail() { + // For the moment we need to consider the possibility that setup.xml + // does not include the "mail_logger" entry. This block prevents that + // compilation fails in this case. String emailAddress; try { Class stringClass = R.string.class; Field mailLoggerField = stringClass.getField("mail_logger"); - int emailAddressId = (Integer)mailLoggerField.get(null); + int emailAddressId = (Integer) mailLoggerField.get(null); emailAddress = getString(emailAddressId); - } catch (Exception e) { emailAddress = ""; } - + ArrayList uris = new ArrayList(); // Convert from paths to Android friendly Parcelable Uri's for (String file : Log_OC.getLogFileNames()) { - if (new File(mLogPath + File.separator, file).exists()) { - Uri u = Uri.parse("file://" + mLogPath + File.separator + file); - uris.add(u); + File logFile = new File(mLogPath, file); + if (logFile.exists()) { + uris.add(Uri.fromFile(logFile)); } } Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); - // Explicitly only use Gmail to send - intent.setClassName("com.google.android.gm","com.google.android.gm.ComposeActivityGmail"); - intent.putExtra(Intent.EXTRA_EMAIL, new String[]{ emailAddress }); - intent.putExtra(Intent.EXTRA_SUBJECT, getText(R.string.log_mail_subject)); + intent.putExtra(Intent.EXTRA_EMAIL, emailAddress); + String subject = String.format(getString(R.string.log_send_mail_subject), getString(R.string.app_name)); + intent.putExtra(Intent.EXTRA_SUBJECT, subject); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setType(MAIL_ATTACHMENT_TYPE); intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); - - if (intent.resolveActivity(getPackageManager()) != null) { + try { startActivity(intent); + } catch (ActivityNotFoundException e) { + Toast.makeText(this, getString(R.string.log_send_no_mail_app), Toast.LENGTH_LONG).show(); + Log_OC.i(TAG, "Could not find app for sending log history."); } + } /** @@ -183,7 +195,8 @@ public class LogHistoryActivity extends SherlockFragmentActivity { if (textViewReference != null && result != null) { final TextView logTV = textViewReference.get(); if (logTV != null) { - logTV.setText(result); + mLogText = result; + logTV.setText(mLogText); dismissLoadingDialog(); } } @@ -258,4 +271,12 @@ public class LogHistoryActivity extends SherlockFragmentActivity { loading.dismiss(); } } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + + /// global state + outState.putString(KEY_LOG_TEXT, mLogText); + } } \ No newline at end of file diff --git a/src/com/owncloud/android/ui/activity/Preferences.java b/src/com/owncloud/android/ui/activity/Preferences.java index f794cf15..1d80a703 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -53,7 +53,7 @@ import com.owncloud.android.authentication.AuthenticatorActivity; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.db.DbHandler; import com.owncloud.android.lib.common.utils.Log_OC; -import com.owncloud.android.ui.LongClickableCheckBoxPreference; +import com.owncloud.android.ui.RadioButtonPreference; import com.owncloud.android.utils.DisplayUtils; @@ -107,9 +107,9 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa ListAdapter listAdapter = listView.getAdapter(); Object obj = listAdapter.getItem(position); - if (obj != null && obj instanceof LongClickableCheckBoxPreference) { + if (obj != null && obj instanceof RadioButtonPreference) { mShowContextMenu = true; - mAccountName = ((LongClickableCheckBoxPreference) obj).getKey(); + mAccountName = ((RadioButtonPreference) obj).getKey(); Preferences.this.openContextMenu(listView); @@ -119,7 +119,18 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa return false; } }); - + + // Load package info + String temp; + try { + PackageInfo pkg = getPackageManager().getPackageInfo(getPackageName(), 0); + temp = pkg.versionName; + } catch (NameNotFoundException e) { + temp = ""; + Log_OC.e(TAG, "Error while showing about dialog", e); + } + final String appVersion = temp; + // Register context menu for list of preferences. registerForContextMenu(getListView()); @@ -208,7 +219,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa @Override public boolean onPreferenceClick(Preference preference) { String feedbackMail =(String) getText(R.string.mail_feedback); - String feedback =(String) getText(R.string.prefs_feedback); + String feedback =(String) getText(R.string.prefs_feedback) + " - android v" + appVersion; Intent intent = new Intent(Intent.ACTION_SENDTO); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, feedback); @@ -286,13 +297,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa pAboutApp = (Preference) findPreference("about_app"); if (pAboutApp != null) { pAboutApp.setTitle(String.format(getString(R.string.about_android), getString(R.string.app_name))); - PackageInfo pkg; - try { - pkg = getPackageManager().getPackageInfo(getPackageName(), 0); - pAboutApp.setSummary(String.format(getString(R.string.about_version), pkg.versionName)); - } catch (NameNotFoundException e) { - Log_OC.e(TAG, "Error while showing about dialog", e); - } + pAboutApp.setSummary(String.format(getString(R.string.about_version), appVersion)); } loadInstantUploadPath(); @@ -463,7 +468,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa else { for (Account a : accounts) { - LongClickableCheckBoxPreference accountPreference = new LongClickableCheckBoxPreference(this); + RadioButtonPreference accountPreference = new RadioButtonPreference(this); accountPreference.setKey(a.name); // Handle internationalized domain names accountPreference.setTitle(DisplayUtils.convertIdn(a.name, false)); @@ -483,7 +488,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa AccountManager am = (AccountManager) getSystemService(ACCOUNT_SERVICE); Account accounts[] = am.getAccountsByType(MainApp.getAccountType()); for (Account a : accounts) { - CheckBoxPreference p = (CheckBoxPreference) findPreference(a.name); + RadioButtonPreference p = (RadioButtonPreference) findPreference(a.name); if (key.equals(a.name)) { boolean accountChanged = !p.isChecked(); p.setChecked(true); diff --git a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java index fd0b1a55..73ae5dc2 100644 --- a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -257,15 +257,9 @@ public class OCFileListFragment extends ExtendedListFragment { ); mf.filter(menu); } - - /// additional restrictions for this fragment - // TODO allow in the future 'open with' for previewable files - MenuItem item = menu.findItem(R.id.action_open_file_with); - if (item != null) { - item.setVisible(false); - item.setEnabled(false); - } + /// TODO break this direct dependency on FileDisplayActivity... if possible + MenuItem item = menu.findItem(R.id.action_open_file_with); FileFragment frag = ((FileDisplayActivity)getSherlockActivity()).getSecondFragment(); if (frag != null && frag instanceof FileDetailFragment && frag.getFile().getFileId() == targetFile.getFileId()) { @@ -291,6 +285,10 @@ public class OCFileListFragment extends ExtendedListFragment { mContainerActivity.getFileOperationsHelper().shareFileWithLink(mTargetFile); return true; } + case R.id.action_open_file_with: { + mContainerActivity.getFileOperationsHelper().openFile(mTargetFile); + return true; + } case R.id.action_unshare_file: { mContainerActivity.getFileOperationsHelper().unshareFileWithLink(mTargetFile); return true; diff --git a/src/com/owncloud/android/ui/preview/PreviewImageActivity.java b/src/com/owncloud/android/ui/preview/PreviewImageActivity.java index c06f341f..1cee30e8 100644 --- a/src/com/owncloud/android/ui/preview/PreviewImageActivity.java +++ b/src/com/owncloud/android/ui/preview/PreviewImageActivity.java @@ -79,7 +79,9 @@ ViewPager.OnPageChangeListener, OnRemoteOperationListener { private static final int INITIAL_HIDE_DELAY = 0; // immediate hide private ExtendedViewPager mViewPager; - private PreviewImagePagerAdapter mPreviewImagePagerAdapter; + private PreviewImagePagerAdapter mPreviewImagePagerAdapter; + private int mSavedPosition = 0; + private boolean mHasSavedPosition = false; private boolean mRequestWaitingForBinder; @@ -146,7 +148,7 @@ ViewPager.OnPageChangeListener, OnRemoteOperationListener { } mPreviewImagePagerAdapter = new PreviewImagePagerAdapter(getSupportFragmentManager(), parentFolder, getAccount(), getStorageManager()); mViewPager = (ExtendedViewPager) findViewById(R.id.fragmentPager); - int position = mPreviewImagePagerAdapter.getFilePosition(getFile()); + int position = mHasSavedPosition ? mSavedPosition : mPreviewImagePagerAdapter.getFilePosition(getFile()); position = (position >= 0) ? position : 0; mViewPager.setAdapter(mPreviewImagePagerAdapter); mViewPager.setOnPageChangeListener(this); @@ -378,6 +380,8 @@ ViewPager.OnPageChangeListener, OnRemoteOperationListener { */ @Override public void onPageSelected(int position) { + mSavedPosition = position; + mHasSavedPosition = true; if (mDownloaderBinder == null) { mRequestWaitingForBinder = true; diff --git a/src/com/owncloud/android/ui/preview/PreviewImageFragment.java b/src/com/owncloud/android/ui/preview/PreviewImageFragment.java index a3814c77..0995793d 100644 --- a/src/com/owncloud/android/ui/preview/PreviewImageFragment.java +++ b/src/com/owncloud/android/ui/preview/PreviewImageFragment.java @@ -53,6 +53,7 @@ import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.ui.dialog.ConfirmationDialogFragment; import com.owncloud.android.ui.dialog.RemoveFileDialogFragment; import com.owncloud.android.ui.fragment.FileFragment; +import com.owncloud.android.utils.BitmapUtils; import com.owncloud.android.utils.TouchImageViewCustom; @@ -82,6 +83,8 @@ public class PreviewImageFragment extends FileFragment { private static final String TAG = PreviewImageFragment.class.getSimpleName(); private boolean mIgnoreFirstSavedState; + + private LoadBitmapTask mLoadBitmapTask = null; /** @@ -190,12 +193,22 @@ public class PreviewImageFragment extends FileFragment { public void onStart() { super.onStart(); if (getFile() != null) { - BitmapLoader bl = new BitmapLoader(mImageView, mMessageView, mProgressWheel); - bl.execute(new String[]{getFile().getStoragePath()}); + mLoadBitmapTask = new LoadBitmapTask(mImageView, mMessageView, mProgressWheel); + mLoadBitmapTask.execute(new String[]{getFile().getStoragePath()}); } } + @Override + public void onStop() { + super.onStop(); + if (mLoadBitmapTask != null) { + mLoadBitmapTask.cancel(true); + mLoadBitmapTask = null; + } + + } + /** * {@inheritDoc} */ @@ -328,8 +341,8 @@ public class PreviewImageFragment extends FileFragment { finish(); } - - private class BitmapLoader extends AsyncTask { + + private class LoadBitmapTask extends AsyncTask { /** * Weak reference to the target {@link ImageView} where the bitmap will be loaded into. @@ -365,7 +378,7 @@ public class PreviewImageFragment extends FileFragment { * * @param imageView Target {@link ImageView} where the bitmap will be loaded into. */ - public BitmapLoader(ImageViewCustom imageView, TextView messageView, ProgressBar progressWheel) { + public LoadBitmapTask(ImageViewCustom imageView, TextView messageView, ProgressBar progressWheel) { mImageViewRef = new WeakReference(imageView); mMessageViewRef = new WeakReference(messageView); mProgressWheelRef = new WeakReference(progressWheel); @@ -379,43 +392,65 @@ public class PreviewImageFragment extends FileFragment { String storagePath = params[0]; try { + if (isCancelled()) return result; + File picture = new File(storagePath); if (picture != null) { - //Decode file into a bitmap in real size for being able to make zoom on the image + // Decode file into a bitmap in real size for being able to make zoom on + // the image result = BitmapFactory.decodeStream(new FlushedInputStream (new BufferedInputStream(new FileInputStream(picture)))); } + if (isCancelled()) return result; + if (result == null) { mErrorMessageId = R.string.preview_image_error_unknown_format; Log_OC.e(TAG, "File could not be loaded as a bitmap: " + storagePath); + } else { + // Rotate image, obeying exif tag. + result = BitmapUtils.rotateImage(result, storagePath); } } catch (OutOfMemoryError e) { Log_OC.e(TAG, "Out of memory occured for file " + storagePath, e); - // If out of memory error when loading image, try to load it scaled + if (isCancelled()) return result; + + // If out of memory error when loading or rotating image, try to load it scaled result = loadScaledImage(storagePath); if (result == null) { mErrorMessageId = R.string.preview_image_error_unknown_format; Log_OC.e(TAG, "File could not be loaded as a bitmap: " + storagePath); + } else { + // Rotate scaled image, obeying exif tag + result = BitmapUtils.rotateImage(result, storagePath); } } catch (NoSuchFieldError e) { mErrorMessageId = R.string.common_error_unknown; - Log_OC.e(TAG, "Error from access to unexisting field despite protection; file " + storagePath, e); + Log_OC.e(TAG, "Error from access to unexisting field despite protection; file " + + storagePath, e); } catch (Throwable t) { mErrorMessageId = R.string.common_error_unknown; Log_OC.e(TAG, "Unexpected error loading " + getFile().getStoragePath(), t); } + return result; } @Override + protected void onCancelled(Bitmap result) { + if (result != null) { + result.recycle(); + } + } + + @Override protected void onPostExecute(Bitmap result) { hideProgressWheel(); if (result != null) { @@ -424,7 +459,7 @@ public class PreviewImageFragment extends FileFragment { showErrorMessage(); } } - + @SuppressLint("InlinedApi") private void showLoadedImage(Bitmap result) { if (mImageViewRef != null) { diff --git a/src/com/owncloud/android/utils/BitmapUtils.java b/src/com/owncloud/android/utils/BitmapUtils.java index 687b5a4f..70367278 100644 --- a/src/com/owncloud/android/utils/BitmapUtils.java +++ b/src/com/owncloud/android/utils/BitmapUtils.java @@ -16,9 +16,13 @@ */ package com.owncloud.android.utils; +import com.owncloud.android.lib.common.utils.Log_OC; + import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.graphics.Matrix; import android.graphics.BitmapFactory.Options; +import android.media.ExifInterface; /** * Utility class with methods for decoding Bitmaps. @@ -96,4 +100,75 @@ public class BitmapUtils { return inSampleSize; } + /** + * Rotate bitmap according to EXIF orientation. + * Cf. http://www.daveperrett.com/articles/2012/07/28/exif-orientation-handling-is-a-ghetto/ + * @param bitmap Bitmap to be rotated + * @param storagePath Path to source file of bitmap. Needed for EXIF information. + * @return correctly EXIF-rotated bitmap + */ + public static Bitmap rotateImage(Bitmap bitmap, String storagePath){ + Bitmap resultBitmap = bitmap; + + try + { + ExifInterface exifInterface = new ExifInterface(storagePath); + int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1); + + Matrix matrix = new Matrix(); + + // 1: nothing to do + + // 2 + if (orientation == ExifInterface.ORIENTATION_FLIP_HORIZONTAL) + { + matrix.postScale(-1.0f, 1.0f); + } + // 3 + else if (orientation == ExifInterface.ORIENTATION_ROTATE_180) + { + matrix.postRotate(180); + } + // 4 + else if (orientation == ExifInterface.ORIENTATION_FLIP_VERTICAL) + { + matrix.postScale(1.0f, -1.0f); + } + // 5 + else if (orientation == ExifInterface.ORIENTATION_TRANSPOSE) + { + matrix.postRotate(-90); + matrix.postScale(1.0f, -1.0f); + } + // 6 + else if (orientation == ExifInterface.ORIENTATION_ROTATE_90) + { + matrix.postRotate(90); + } + // 7 + else if (orientation == ExifInterface.ORIENTATION_TRANSVERSE) + { + matrix.postRotate(90); + matrix.postScale(1.0f, -1.0f); + } + // 8 + else if (orientation == ExifInterface.ORIENTATION_ROTATE_270) + { + matrix.postRotate(270); + } + + // Rotate the bitmap + resultBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); + if (resultBitmap != bitmap) { + bitmap.recycle(); + } + } + catch (Exception exception) + { + Log_OC.e("BitmapUtil", "Could not rotate the image: " + storagePath); + } + return resultBitmap; + } + + }