From: tobiasKaminsky Date: Fri, 21 Nov 2014 16:54:47 +0000 (+0100) Subject: Merge remote-tracking branch 'upstream/develop' into triggerMediaScan X-Git-Tag: oc-android-1.7.0_signed~90^2~19 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/5d49850c2593b68523051571925157939041f68d?hp=4bbb4846bb97a4be0ff0dbc8ee43295729def71a Merge remote-tracking branch 'upstream/develop' into triggerMediaScan --- diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 910ea787..a5990afd 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -18,8 +18,8 @@ along with this program. If not, see . --> + android:versionCode="10600100" + android:versionName="1.6.1" xmlns:android="http://schemas.android.com/apk/res/android"> diff --git a/oc_jb_workaround/AndroidManifest.xml b/oc_jb_workaround/AndroidManifest.xml index b8b89c1e..ada508ca 100644 --- a/oc_jb_workaround/AndroidManifest.xml +++ b/oc_jb_workaround/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="0100019" + android:versionName="1.0.19" > diff --git a/res/layout/video_layout.xml b/res/layout/video_layout.xml index dfa29f7d..8063ab4d 100644 --- a/res/layout/video_layout.xml +++ b/res/layout/video_layout.xml @@ -3,9 +3,10 @@ android:layout_width="match_parent" android:layout_height="match_parent" > - + \ No newline at end of file diff --git a/res/menu/file_select_all.xml b/res/menu/file_select_all.xml new file mode 100644 index 00000000..a8097aae --- /dev/null +++ b/res/menu/file_select_all.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/res/menu/main_menu.xml b/res/menu/main_menu.xml index 1df273ea..b7383229 100644 --- a/res/menu/main_menu.xml +++ b/res/menu/main_menu.xml @@ -49,6 +49,12 @@ android:orderInCategory="2" android:showAsAction="never" android:title="@string/actionbar_logger"/> + diff --git a/res/values-af-rZA/strings.xml b/res/values-af-rZA/strings.xml index 6ea41913..4b024b71 100644 --- a/res/values-af-rZA/strings.xml +++ b/res/values-af-rZA/strings.xml @@ -1,9 +1,12 @@ Instellings + Hulp Gebruikersnaam Wagwoord + sekondes gelede OK Kanseleer diff --git a/res/values-ak/strings.xml b/res/values-ak/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-ak/strings.xml +++ b/res/values-ak/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-am-rET/strings.xml b/res/values-am-rET/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-am-rET/strings.xml +++ b/res/values-am-rET/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index 37cee6ad..276af9b7 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -11,6 +11,8 @@ إعدادات تفاصيل أرسل + عام المزيد حسابات @@ -48,6 +50,7 @@ لم يتم استلام أي محتوى. لا شيء للرفع. %1$s غير مسموح له بالوصول للمحتوى المشارك يتم الرفع + منذ ثواني لا يوجد شيء هنا. إرفع بعض الملفات! جاري التحميل ... اضغظ على الملف ليتم عرض خيارات أكثر @@ -250,4 +253,5 @@ حسابات كلمة مرور خاطئة اختيار + الأمان diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml index b037311c..d3a9060b 100644 --- a/res/values-az/strings.xml +++ b/res/values-az/strings.xml @@ -11,6 +11,8 @@ Quraşdırmalar Detallar Göndər + Ümumi Daha da Hesablar diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml index 42e20789..c0dd55b6 100644 --- a/res/values-be/strings.xml +++ b/res/values-be/strings.xml @@ -1,6 +1,9 @@ Налады + + Секунд таму Так Не Добра diff --git a/res/values-bg-rBG/strings.xml b/res/values-bg-rBG/strings.xml index 03b75d8a..ff47c31f 100644 --- a/res/values-bg-rBG/strings.xml +++ b/res/values-bg-rBG/strings.xml @@ -11,6 +11,14 @@ Настройки Детайли Изпращане + Сортиране + Сортирай по + + А-Я + Нови - Стари + + Общи Още Профили @@ -30,6 +38,8 @@ Препоръчай на приятел Обратна Връзка Imprint + Запомни мястото за споделяне + Запомни мястото на последната споделена папка Опитай %1$s на смартфона си! Бих желал да те поканя да ползваш %1$s на своя смартфон!\nИзтеглия я от тук:%2$s Проверка на сървъра @@ -49,6 +59,7 @@ Не беше получено съдържание. Няма какво да се качи. %1$s няма разрешен достъп до споделеното съдържание. Качване + преди секунди Тук няма нищо. Качете нещо! Зареждане... Няма файлове в тази папка. @@ -238,6 +249,7 @@ Преглед на изображението Изображението не може да бъде показано %1$s не може да бъде копиран в локалната папка %2$s + Местоположение на качване За съжаление споделянето не е включено на сървъра ви. Моля, свържете се с администратора. Неуспешен опит за споделяне. Моля, провери дали файла съществува. @@ -263,6 +275,7 @@ Файлът вече не се намира на този сървър Профили Добавяне на профил + Сигурна връзка е пренасочена по несигурен път. Доклади Изпрати История ownCloud Android доклади @@ -277,4 +290,6 @@ Файлът вече съществува в отдалечената папка. Настъпи грешка при опита за преместване на този файл или папка. за да преместиш този файл + Незабавно качване + Сигурност diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml index 9ddd0246..f0f23000 100644 --- a/res/values-bn-rBD/strings.xml +++ b/res/values-bn-rBD/strings.xml @@ -11,6 +11,8 @@ নিয়ামকসমূহ বিস্তারিত পাঠাও + সাধারণ বেশী একাউন্ট @@ -48,6 +50,7 @@ কোন কনটেনট আসেনি৷ আপলোডের কনটেনট নেই এই যৌথ কনটেন্ট এ %1$s এর প্রবেশ অনুমোদিত নয় আপলোড করা হচ্ছে + সেকেন্ড পূর্বে এখানে কিছুই নেই। কিছু আপলোড করুন ! লোড হচ্ছে.... এই ফোলডারে কোন ফাইল নেই @@ -264,4 +267,5 @@ এখানে কিছু নেই। একটি ফোল্ডার যোগ করতে পারেন! বেছে নিন সরাতে ব্যার্থ হলো। ফাইলটি রয়েছে কিনা দেখুন। + নিরাপত্তা diff --git a/res/values-bn-rIN/strings.xml b/res/values-bn-rIN/strings.xml index a49555a8..3b69168f 100644 --- a/res/values-bn-rIN/strings.xml +++ b/res/values-bn-rIN/strings.xml @@ -5,6 +5,8 @@ ফাইলস নতুন ফোল্ডার সেটিংস + অঙ্কিত করা ইউজারনেম ফাইলস diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml index 30f5ce22..4c2f8692 100644 --- a/res/values-bs/strings.xml +++ b/res/values-bs/strings.xml @@ -1,5 +1,7 @@ Nova fascikla + diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 9e9fc844..19085087 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -11,6 +11,8 @@ Configuració Detalls Envia + General Més Comptes @@ -48,6 +50,7 @@ No s\'ha rebut cap contingut. Res per pujar %1$s no pot accedir al contingut compartit S\'està pujant + segons enrere Res per aquí. Pugeu alguna cosa! Carregant... No hi ha arxius a aquesta carpeta @@ -260,4 +263,5 @@ Es requereix autenticació Contrasenya incorrecta Escull + Seguretat diff --git a/res/values-cs-rCZ/strings.xml b/res/values-cs-rCZ/strings.xml index 0e1c16ec..08f37b60 100644 --- a/res/values-cs-rCZ/strings.xml +++ b/res/values-cs-rCZ/strings.xml @@ -11,13 +11,21 @@ Nastavení Podrobnosti Odeslat + Seřadit + Seřadit podle + + A-Z + Nejnovější - nejstarší + + Obecné Více Účty Spravovat účty - PIN aplikace + PIN do aplikace Chraňte svého klienta - Okamžité nahrání obrázků + Okamžité nahrávání obrázků Okamžitě nahrávat vytvořené fotografie Okamžité nahrávání videa Okamžitě odesílat nahrané video @@ -27,9 +35,11 @@ Zobrazuje zaznamenané logy Smazat historii Nápověda - Doporučit příteli + Doporučit přátelům Odezva Imprint + Zapamatovat umístění sdílení + Zapamatovat poslední umístění pro nahrání sdílených souborů Zkuste %1$s na vašem smartphonu! Chtěl bych vás pozvat k používání %1$s na vašem chytrém telefonu!\nKe stažení zde: %2$s Zkontrolovat server @@ -49,6 +59,7 @@ Neobdržen žádný obsah. Nic k odeslání. %1$s nemá právo přistupovat ke sdílenému obsahu Odesílání + před pár sekundami Žádný obsah. Nahrajte něco! Načítám... V tomto adresáři nejsou žádné soubory. @@ -169,7 +180,7 @@ Připojuji se k přihlašovacímu serveru... Server nepodporuje tuto přihlašovací metodu %1$s nepodporuje více účtů - Váš server nevrací správné přihlašovací ID, kontaktujte vašeho administrátora + Váš server nevrací správné přihlašovací ID, kontaktujte prosím svého správce systému Není možné provést ověření Udržovat soubor aktuální Přejmenovat @@ -226,7 +237,7 @@ 389 KB 2012/05/18 12:23 PM 12:23:45 - Odesílat obrázky pouze skrze WiFi + Odesílat obrázky pouze přes WiFi Nahrávat videa pouze přes WiFi /InstantUpload Konflikt při aktualizaci @@ -237,8 +248,9 @@ Náhled obrázku Obrázek nelze zobrazit %1$s nelze zkopírovat do místního adresáře %2$s + Cesta pro nahrání Je nám líto, ale sdílení není na vašem serveru povoleno. Kontaktujte svého -administrátora. +správce systému. Nelze sdílet. Zkontrolujte prosím že soubor existuje Při pokusu o sdílení tohoto souboru či složky nastala chyba Nelze ukončit sdílení. Zkontrolujte prosím že soubor existuje @@ -262,6 +274,7 @@ administrátora. Tento soubor již není dostupný na serveru Účty Přidat účet + Bezpečné spojení je přesměrováno na nezabezpečenou trasu. Logy Odeslat historii Logy aplikace ownCloud pro Android @@ -276,4 +289,6 @@ administrátora. Soubor již v cílovém adresáři existuje Při pokusu o přesun tohoto souboru či složky nastala chyba pro přesun tohoto souboru + Okamžitá odesílání + Zabezpečení diff --git a/res/values-cy-rGB/strings.xml b/res/values-cy-rGB/strings.xml index daace9cd..97ef0670 100644 --- a/res/values-cy-rGB/strings.xml +++ b/res/values-cy-rGB/strings.xml @@ -5,6 +5,8 @@ Ffeiliau Gosodiadau Anfon + Cyffredinol Cyfrifon Rheoli Cyfrifon @@ -25,6 +27,7 @@ Heb dderbyn cynnwys. Dim cynnwys i lwytho i fyny Does dim mynediad gan %1$s i gynnwys a rennir Yn llwytho i fyny + eiliad yn ôl Does dim byd fan hyn. Llwythwch rhywbeth i fyny! Tapiwch ffeil i ddangos gwybodaeth ychwanegol Maint: diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index e6b39292..df31bdc2 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -11,6 +11,14 @@ Indstillinger Detaljer Send + Sortér + Sortér efter + + A-Å + Nyeste - ældste + + Generel Mere Konti @@ -30,6 +38,8 @@ Anbefal til en ven Feedback Imprint + Husk delt placering + Husk seneste delte placering for overførsel Prøv %1$s på din smartphone! Jeg ønsker at invitere dig til at bruge %1$s på din smartphone!\nHent den her: %2$s Tjek server @@ -49,6 +59,7 @@ Intet indhold blev modtaget. Intet at uploade. %1$s er ikke tilladt adgang til delt indhold Uploader + sekunder siden Her er tomt. Upload noget! Indlæser... Der er ingen filer i denne mappe. @@ -237,6 +248,7 @@ Forhåndsvisning af billede Dette billede kan ikke vises %1$s kunne ikke kopieres til %2$s lokale mappe + Sti til upload Beklager, deling er ikke slået til på din server. Kontakt venligst din administrator. Kan ikke dele. Tjek venligst om filen findes. Der opstod en fejl ved deling af denne fil eller mappe @@ -261,6 +273,7 @@ Filen er ikke længere tilgængelig på serveren Konti Tilføj konto + Sikker forbindelse videredirigeres til en usikker rute. Logge Send historik App-logregistreringer for ownCloud Android @@ -275,4 +288,6 @@ Filen findes allerede i destinationsmappen Der opstod en fejl under forsøg på at flytte denne mappe eller fil til at flytte denne fil + Øjeblikkelige uploads + Sikkerhed diff --git a/res/values-de-rAT/strings.xml b/res/values-de-rAT/strings.xml index f2c13bf6..8a65cc16 100644 --- a/res/values-de-rAT/strings.xml +++ b/res/values-de-rAT/strings.xml @@ -2,6 +2,8 @@ Dateien Einstellungen + Allgemein Hilfe Passwort diff --git a/res/values-de-rCH/strings.xml b/res/values-de-rCH/strings.xml index a6cb3c27..20392974 100644 --- a/res/values-de-rCH/strings.xml +++ b/res/values-de-rCH/strings.xml @@ -11,6 +11,8 @@ Einstellungen Details Senden + Allgemein Mehr Konten @@ -198,4 +200,5 @@ Konten Auswählen + Sicherheit diff --git a/res/values-de-rDE/strings.xml b/res/values-de-rDE/strings.xml index ea39a038..26691309 100644 --- a/res/values-de-rDE/strings.xml +++ b/res/values-de-rDE/strings.xml @@ -11,27 +11,37 @@ Einstellungen Details Senden + Sortieren + Sortieren nach + + A-Z + Neueste - Älteste + + Allgemein Mehr Konten Konten verwalten App-PIN Schützen Sie Ihren Client - Sofortiges Bilderhochladen + Sofortiger Bilderupload Fotos von der Kamera sofort hochladen - Sofortiges Videohochladen + Sofortiger Videoupload Videos von der Kamera sofort hochladen Protokollierung aktivieren - Dieses wird zur Protokollierung von Problemen benutzt - Protokollierungsverlauf - Dieses zeigt die gespeicherten Protokollierungen + Dies wird zur Protokollierung von Problemen benutzt + Protokollverlauf + Dies zeigt die gespeicherten Protokolle Verlauf löschen Hilfe - Dieses einem Freund empfehlen + Dies einem Freund empfehlen Rückmeldungen Impressum + Geteilten Speicherort merken + Geteilten Upload-Speicherort merken %1$s auf Ihrem Smartphone ausprobieren! - Ich möchte Sie zum Benutzen von %1$s auf Ihrem Smartphone einladen!\nHier herunterladen: %2$s + Ich möchte Sie einladen, %1$s auf Ihrem Smartphone zu verwenden!\nHier herunterladen: %2$s Server überprüfen Server-Adresse https://… Benutzername @@ -40,7 +50,7 @@ Dateien Verbinden Hochladen - Zielordner auswählen: + Uploadordner auswählen: Kein Konto gefunden Es sind keine %1$s-Konten auf Ihrem Gerät eingerichtet. Bitte richten Sie zuerst ein Konto ein. Einrichten @@ -49,6 +59,7 @@ Es wurden keine Inhalte empfangen. Es gibt nichts zum Hochladen. %1$s darf den freigegebenen Inhalt nicht nutzen. Lade hoch + Gerade eben Alles leer. Laden Sie etwas hoch! Ladevorgang … Es befinden sich keine Dateien in diesem Ordner. @@ -84,7 +95,7 @@ %1$s wurde(n) erfolgreich hochgeladen Hochladen fehlgeschlagen Hochladen von %1$s konnte nicht abgeschlossen werden - Hochladen fehlgeschlagen, Sie müssen sich nochmals anmelden + Hochladen fehlgeschlagen, Sie müssen sich neu anmelden Herunterladen... %1$d%% Herunterladen %2$s Herunterladen erfolgreich @@ -92,7 +103,7 @@ Herunterladen fehlgeschlagen Herunterladen von %1$s konnte nicht abgeschlossen werden Noch nicht heruntergeladen - Herunterladen fehlgeschlagen, Sie müssen sich nochmals anmelden + Herunterladen fehlgeschlagen, Sie müssen sich neu anmelden Konto auswählen Synchronisation fehlgeschlagen Synchronisation fehlgeschlagen, Sie müssen sich neu anmelden @@ -111,7 +122,7 @@ Einige Dateien konnten nicht verschoben werden Lokal: %1$s Remote: %1$s - Es steht nicht genügend Speicherplatz zur Verfügung um die ausgewählten Dateien in den %1$s Ordner zu kopieren. Möchten Sie diese stattdessen verschieben? + Es steht nicht genügend Speicherplatz zur Verfügung um die ausgewählten Dateien in den Ordner %1$s zu kopieren. Möchten Sie diese stattdessen verschieben? Bitte geben Sie Ihre App-PIN ein Bitte geben Sie Ihre App-PIN ein PIN-Abfrage erfolgt nach Starten der App. @@ -166,9 +177,9 @@ Ihre Legitimierung ist abgelaufen. Bitte Legitimierung nochmals durchführen Bitte geben Sie Ihr aktuelles Passwort ein Ihre Sitzung ist abgelaufen. Bitte Anmeldung nochmals durchführen - Zum Legitimierungsserver wird verbunden … + Zum Legitimierungsserver verbinden… Der Server unterstützt diese Legitimierungsmethode nicht - %1$s unterstützt nicht mehrere Benutzerkonten + %1$s unterstützt mehrere Benutzerkonten nicht Ihr Server gibt keine richtige Benutzerkennung zurück, bitte kontaktieren Sie einen Administrator ⇥ Die Legitimierung gegenüber dem Server konnte nicht durchgeführt werden @@ -238,19 +249,20 @@ Bildvorschau Dieses Bild kann nicht angezeigt werden %1$s konnte nicht in den lokalen %2$s Ordner kopiert werden + Upload Pfad Entschuldigung, Freigaben sind auf Ihrem Server nicht aktiviert. Bitte kontaktieren Sie Ihren ⇥⇥Administrator. - Teilen nicht möglich. Prüfen Sie, dass die Datei existiert + Teilen nicht möglich. Prüfen Sie, ob die Datei existiert Es ist ein Fehler beim Freigeben der Datei oder des Ordners aufgetreten. - Entfernen der Freigabe nicht möglich. Prüfen Sie, dass die Datei existiert + Entfernen der Freigabe nicht möglich. Prüfen Sie, ob die Datei existiert Es ist ein Fehler beim Entfernen der Freigabe für diese Datei oder den Ordner aufgetreten. Senden Link kopieren In die Zwischenablage kopiert Kritischer Fehler: Operationen können nicht ausgeführt werden - Es ist ein Fehler beim Verbinden mit dem Server aufgetreten. - Es ist ein Fehler beim Warten auf den Server aufgetreten, die Operation kann nicht ausgeführt werden - Es ist ein Fehler beim Warten auf den Server aufgetreten, die Operation kann nicht ausgeführt werden + Es ist ein Fehler bei der Verbindung mit dem Server aufgetreten. + Es ist ein Fehler während des Wartens auf den Server aufgetreten, die Operation kann nicht ausgeführt werden + Es ist ein Fehler während des Wartens auf den Server aufgetreten, die Operation kann nicht ausgeführt werden Die Operation kann nicht abgeschlossen werden, der Server ist nicht erreichbar Sie haben keine Berechtigung %s @@ -263,6 +275,7 @@ Diese Datei steht auf dem Server nicht mehr zur Verfügung Konten Konto hinzufügen + Die gesicherte Verbindung wird auf eine unsichere Route weitergeleitet. Protokolle Verlauf senden Protokolle der ownCloud-Android-App @@ -277,4 +290,6 @@ Die Datei ist bereits im Zielordner vorhanden Es ist ein Fehler beim Verschieben dieser Datei oder dieses Ordners aufgetreten. um diese Datei zu verschieben + Sofortiges Hochladen + Sicherheit diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index d8b0ed0a..45f078d7 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -11,6 +11,14 @@ Einstellungen Details Senden + Sortieren + Sortieren nach + + A-Z + Neueste - Älteste + + Allgemein Mehr Konten @@ -30,6 +38,8 @@ Empfehle dies einem Freund Rückmeldungen Impressum + Geteilten Speicherort merken + Geteilten Upload-Speicherort merken Probiere %1$s auf Deinem Smartphone! Ich möchte Dich zum Benutzen von %1$s auf Deinem Smartphone einladen!\nLade es hier herunter: %2$s Überprüfe den Server @@ -49,6 +59,7 @@ Es wurden keine Inhalte empfangen. Es gibt nichts zum Hochladen. %1$s darf den freigegebenen Inhalt nicht nutzen. Lade hoch + Gerade eben Alles leer. Lade etwas hoch! Ladevorgang … Es befinden sich keine Dateien in diesem Ordner. @@ -238,6 +249,7 @@ Bildvorschau Dieses Bild kann nicht angezeigt werden %1$s konnte nicht in den lokalen %2$s Ordner kopiert werden + Pfad hochladen Entschuldigung, Freigaben sind auf Deinem Server nicht aktiviert. Bitte kontaktiere Deinen ⇥⇥Administrator. Teilen nicht möglich. Prüfe, dass die Datei existiert @@ -263,6 +275,7 @@ Diese Datei steht auf dem Server nicht mehr zur Verfügung Konten Konto hinzufügen + Die gesicherte Verbindung wird auf eine unsichere Route weitergeleitet. Protokolle Verlauf senden Protokolle der ownCloud-Android-App @@ -277,4 +290,6 @@ Die Datei ist bereits im Zielordner vorhanden Es ist ein Fehler beim Verschieben der Datei oder des Ordners aufgetreten. um diese Datei zu verschieben + Sofortiges Hochladen + Sicherheit diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 07b1d783..6a304ca1 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -11,6 +11,12 @@ Ρυθμίσεις Λεπτομέρειες Αποστολή + + A-Z + Νεότερο - Παλαιότερο + + Γενικά Περισσότερα Λογαριασμοί @@ -49,6 +55,7 @@ Δεν ελήφθη περιεχόμενο. Δεν υπάρχει τίποτα να μεταφορτώσετε. Ο %1$s δεν επιτρέπεται να έχει πρόσβαση στο κοινόχρηστο περιεχόμενο Μεταφόρτωση + δευτερόλεπτα πριν Δεν υπάρχει τίποτα εδώ. Ανεβάστε κάτι! Φόρτωση ... Δεν υπάρχουν αρχεία σε αυτό τον φάκελο. @@ -104,6 +111,7 @@ Τα περιεχόμενα των %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$s δεν υπάρχει πια Μετακίνηση όλων Όλα τα αρχεία μετακινήθηκαν @@ -237,9 +245,12 @@ Προεπισκόπηση εικόνας Αυτή η εικόνα δεν μπορεί να προβληθεί Το %1$s δεν μπόρεσε να αντιγραφεί στον τοπικό φάκελο %2$s + Διαδρομή Μεταφόρτωσης Λυπούμαστε, ο διαμοιρασμός δεν επιτρέπεται στο διακομιστή σας. Παρακαλούμε επικοινωνείστε με το διαχειριστή σας. + Αδύνατη η κοινή χρήση. Παρακαλώ ελέγξτε αν ο φάκελος υπάρχει Ένα σφάλμα προέκυψε κατά την προσπάθεια διαμοιρασμού αυτού του αρχείου ή φακέλου + Αδύνατη η διακοπή κοινής χρήσης. Παρακαλώ ελέγξτε αν ο φάκελος υπάρχει Ένα σφάλμα προέκυψε κατά τη διάρκεια ακύρωσης διαμοιρασμού αυτού του αρχείου ή φακέλου Αποστολή Αντιγραφή συνδέσμου @@ -260,13 +271,21 @@ Αυτό το αρχείο δεν είναι πια διαθέσιμο στο διακομιστή Λογαριασμοί Προσθήκη λογαριασμού + Ασφαλής σύνδεση ανακατευθύνεται σε μια μη ασφαλή διαδρομή. Αρχεία καταγραφών Αποστολή ιστορικού + αρχεία καταγραφής της εφαρμογής ownCloud Android Φόρτωση δεδομένων.... Απαιτείται πιστοποίηση Εσφαλμένο συνθηματικό Μετακίνηση + Δεν υπάρχει τίποτα εδώ. Μπορείτε να προσθέσετε ένα φάκελο! Επιλέξτε + Αδύνατη η μετακίνηση. Παρακαλώ ελέγξτε αν ο φάκελος υπάρχει + Δεν είναι δυνατό να μετακινηθεί ο φάκελος σε έναν απογονικό Το αρχείο υπάρχει ήδη στο φάκελο προορισμού + Ένα σφάλμα προέκυψε κατά την προσπάθεια μετακίνησης αυτού του αρχείου ή φακέλου για μετακίνηση αυτού του αρχείου + Στιγμιαίες Μεταφορτώσεις + Ασφάλεια diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index bd3c9c2a..94bf042d 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -11,6 +11,14 @@ Settings Details Send + Sort + Sort by + + A-Z + Newest - Oldest + + General More Accounts @@ -30,6 +38,8 @@ Recommend to a friend Feedback Imprint + Remember share location + Remember last share upload location Try %1$s on your smartphone! I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s Check Server @@ -49,6 +59,7 @@ No content was received. Nothing to upload. %1$s is not allowed to access the shared content Uploading + seconds ago Nothing in here. Upload something! Loading... There are no files in this folder. @@ -238,6 +249,7 @@ Image preview This image cannot be shown %1$s could not be copied to %2$s local folder + Upload Path Sorry, sharing is not enabled on your server. Please contact your administrator. Unable to share. Please check whether the file exists @@ -263,6 +275,7 @@ The file is no longer available on the server Accounts Add account + Secure connection is redirected to an unsecured route. Logs Send History ownCloud Android app logs @@ -277,4 +290,6 @@ The file exists already in the destination folder An error occurred whilst trying to move this file or folder to move this file + Instant Uploads + Security diff --git a/res/values-en-rNZ/strings.xml b/res/values-en-rNZ/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-en-rNZ/strings.xml +++ b/res/values-en-rNZ/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-eo/strings.xml b/res/values-eo/strings.xml index 065e59ab..6b15f108 100644 --- a/res/values-eo/strings.xml +++ b/res/values-eo/strings.xml @@ -10,6 +10,8 @@ Agordo Detaloj Sendi + Ĝeneralo Pli Kontoj @@ -34,6 +36,7 @@ Neniu enhavo riceviĝis. Nenio alŝutota. $1%s ne estas permesata aliri la kunhavigitan enhavon Alŝutante + sekundoj antaŭe Nenio estas ĉi tie. Alŝutu ion! Grando: Tipo: @@ -186,4 +189,5 @@ Aŭtentiĝo nepras Malĝusta pasvorto Elekti + Sekuro diff --git a/res/values-es-rAR/strings.xml b/res/values-es-rAR/strings.xml index 09fdb53b..eeb51c32 100644 --- a/res/values-es-rAR/strings.xml +++ b/res/values-es-rAR/strings.xml @@ -11,6 +11,8 @@ Configuración Detalles Mandar + General Más Cuentas @@ -48,6 +50,7 @@ No se recibió ningún contenido. No hay nada para subir. %1$s no está autorizado para acceder al contenido compartido Subiendo + segundos atrás No hay nada. ¡Subí contenido! Cargando... No existen archivos en esta carpeta. @@ -241,4 +244,5 @@ Autentificación requerida Clave incorrecta Elegir + Seguridad diff --git a/res/values-es-rBO/strings.xml b/res/values-es-rBO/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rBO/strings.xml +++ b/res/values-es-rBO/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es-rCL/strings.xml b/res/values-es-rCL/strings.xml index c9510725..8f2457d8 100644 --- a/res/values-es-rCL/strings.xml +++ b/res/values-es-rCL/strings.xml @@ -7,6 +7,8 @@ Nuevo directorio Configuración detalles + General Cuentas Administrar Cuentas @@ -31,6 +33,7 @@ No se ha recibido ningún contenido. No hay nada para subir. %1$s no esta autorizado para acceder al contenido compartido Subiendo + segundos antes Seleccione un archivo para desplegar información adicional. Tamaño: Tipo: diff --git a/res/values-es-rCO/strings.xml b/res/values-es-rCO/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rCO/strings.xml +++ b/res/values-es-rCO/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es-rCR/strings.xml b/res/values-es-rCR/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rCR/strings.xml +++ b/res/values-es-rCR/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es-rEC/strings.xml b/res/values-es-rEC/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rEC/strings.xml +++ b/res/values-es-rEC/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es-rMX/strings.xml b/res/values-es-rMX/strings.xml index 3772ff7a..36060254 100644 --- a/res/values-es-rMX/strings.xml +++ b/res/values-es-rMX/strings.xml @@ -11,6 +11,8 @@ Ajustes Detalles Enviar + General Más Cuentas @@ -43,6 +45,7 @@ Ningún contenido ha sido recibido. No hay nada que subir. %1$s no está autorizado para acceder al contenido compartido Enviando + hace segundos No hay nada aquí. ¡Suba algo! Pulsa sobre un archivo para mostrar información adicional. Tamaño: @@ -215,4 +218,5 @@ Cuentas Contraseña incorrecta Seleccionar + Seguridad diff --git a/res/values-es-rPE/strings.xml b/res/values-es-rPE/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rPE/strings.xml +++ b/res/values-es-rPE/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es-rPY/strings.xml b/res/values-es-rPY/strings.xml index 56fe6665..26dde5f1 100644 --- a/res/values-es-rPY/strings.xml +++ b/res/values-es-rPY/strings.xml @@ -1,6 +1,8 @@ Archivos + Archivos diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es-rUY/strings.xml b/res/values-es-rUY/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rUY/strings.xml +++ b/res/values-es-rUY/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 09a3d35c..93e83c28 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -11,6 +11,14 @@ Configuración Detalles Enviar + Ordenar + Ordenar por + + A-Z + Más nuevo - Más viejo + + General Más Cuentas @@ -30,6 +38,8 @@ Recomendar a un amigo Mensajes de retroalimentación pie de imprenta + Recordar la ubicación de los archivos compartidos + Recordar la ubicación de los últimos archivos compartidos subidos Prueba %1$s en tu smarthphone! ¡Quiero invitarle a usar %1$s en su smartphone!\nDescárguelo aquí: %2$s Compruebe el servidor. @@ -49,6 +59,7 @@ Ningún contenido ha sido recibido. No hay nada que subir. %1$s no está autorizado para acceder al contenido compartido Subiendo... + hace segundos No hay nada aquí. ¡Suba algo! Cargando... No hay archivos en esta carpeta. @@ -238,6 +249,7 @@ Previsualización de imagen No se puede mostrar la imagen %1$s se pudo copiar a la carpeta local %2$s + Ruta de subida La función Compartir no está activada en su servidor. Contacte a su administrador. No se puede compartir. Revise si el archivo existe @@ -263,6 +275,7 @@ Este archivo ya no se encuentra en el servidor Cuentas Agregar cuenta + La conexión segura está siendo desviada por una ruta insegura. Logs Enviar historial Logs de las apps ownCloud Android @@ -277,4 +290,6 @@ El archivo ya existe en la carpeta de destino Hubo un error al tratar de mover este archivo o carpeta para mover este archivo + Subidas instantáneas + Seguridad diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml index 45bad262..75f28a7a 100644 --- a/res/values-et-rEE/strings.xml +++ b/res/values-et-rEE/strings.xml @@ -11,6 +11,14 @@ Seaded Üksikasjad Saada + Sorteeri + Sorteeri + + A-Z + Uuem - vanem + + Üldine Rohkem Kontod @@ -30,6 +38,8 @@ Soovita sõbrale Tagasiside Impressum + Jäta meelde jagamise asukoht + Jäta meelde viimase jagamise üleslaadimise asukoht Proovi oma nutitelefonil rakendust %1$s! Kutsun sind kasutama oma nutitelefonis rakendust %1$s!\nLaadi see alla siit: %2$s Kontrolli serverit @@ -49,6 +59,7 @@ Sisu ei saadud. Pole midagi üles laadida. %1$sile pole lubatud ligipääs jagatud sisule Üleslaadimine + sekundit tagasi Siin pole midagi. Lae midagi üles! Laen ... Kaustas pole faile. @@ -242,6 +253,7 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi Pildi eelvaade Seda pilti ei saa näidata %1$s ei suudetud kopeerida kohalikku kataloogi %2$s + Üleslaadimise rada Vabandust, server ei toeta jagamist. Palun kontakteeru ⇥⇥administraatoriga. Jagamine ebaõnnestus. Palun kontrolli, kas fail on olemas @@ -267,6 +279,7 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi Fail ei ole serveris enam kättesaadav Kontod Lisa konto + Turvaline ühendus suunatakse läbi turvamata ühenduse. Logid Saada ajalugu ownCloud Android rakenduse logid @@ -281,4 +294,6 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi See fail on juba sihtkaustas olemas Selle faili või kausta liigutamisel tekkis tõrge selle faili liigutamiseks + Kohesed üleslaadimised + Turvalisus diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml index a9461fc0..4afe2756 100644 --- a/res/values-eu-rES/strings.xml +++ b/res/values-eu-rES/strings.xml @@ -1,5 +1,7 @@ + Deskargatu Ezeztatu diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index b9409dcc..7480e323 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -11,6 +11,13 @@ Ezarpenak Xehetasunak Bidali + Ordenatu + + A-Z + Berrienak - Zaharrenak + + Orokorra Gehiago Kontuak @@ -48,6 +55,7 @@ Ez da edukirik jaso. Ez dago ezer igotzeko. %1$s-(e)k ez du baimenik elkarbanatutako edukian sartzeko Igotzen + segundu Ez dago ezer. Igo zerbait! Kargatzen... Ez dago fitxategirik karpeta honetan. @@ -236,6 +244,7 @@ Mesedez, baimendu berriz Irudi aurreikuspena Ezin da irudi hau erakutsi %1$s ezin da %2$s karpeta lokalera kopiatu + Igotzetarako Bidea Sentitzen dut, partekatzea ez dago zure zerbitzarian gaituta. Mesedez jarri harremanetan zure administratzailearekin. Errore bat egon da fitxategaia edo karpeta partekatzerakoan Errore bat egon da fitxategaia edo karpeta partekatzeari uzterakoan @@ -258,7 +267,12 @@ 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 diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 200f5e2f..d11e513b 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -11,6 +11,8 @@ تنظیمات جزئیات ارسال + عمومی بیش‌تر حساب‌ها @@ -44,6 +46,7 @@ هیچ مطلبی دریافت نشده است. هیچ‌‌چیزی بارگزاری نشده. %1$s اجازه ی دسترسی به محتوای مشترک را نمی دهد در حال بارگزاری + ثانیه‌ها پیش اینجا هیچ چیز نیست. درحال بارگذاری... هیچ فایلی در این پوشه نیست. @@ -232,4 +235,5 @@ احراز هویت مورد نیاز است رمز عبور اشتباه است انتخاب کردن + امنیت diff --git a/res/values-fi-rFI/strings.xml b/res/values-fi-rFI/strings.xml index 271e9665..3d77e6b9 100644 --- a/res/values-fi-rFI/strings.xml +++ b/res/values-fi-rFI/strings.xml @@ -11,6 +11,14 @@ Asetukset Tiedot Lähetä + Lajittele + Lajittelujärjestys + + A-Ö + Uusimmasta vanhimpaan + + Yleiset Enemmän Tilit @@ -29,6 +37,8 @@ Ohje Suosittele kaverille Palaute + Muista jaon sijainti + Muista viimeisin jaon lähetyssijainti Kokeile %1$sia älypuhelimellasi! Kutsun sinut käyttämään %1$sia älypuhelimellasi!\nLataa se tästä: %2$s Tarkista palvelin @@ -48,6 +58,7 @@ Sisältöä ei saatu. Ei lähetettävää palvelimelle. %1$silla ei ole oikeuksia jaettuun sisältöön Lähetetään + sekuntia sitten Täällä ei ole mitään. Lähetä tänne jotakin! Ladataan... Tässä kansiossa ei ole tiedostoja @@ -218,6 +229,7 @@ Älä lähetä Kuvan esikatselu Tätä kuvaa ei voi näyttää + Lähetyspolku Jakaminen ei ole käytössä palvelimellasi. Ota yhteys ylläpitäjään. Virhe tiedoston tai kansion jakamista yrittäessä @@ -240,6 +252,7 @@ Tämä tiedosto ei ole enää palvelimella käytettävissä Tilit Lisää tili + Salattu yhteys on ohjattu uudelleen salaamatonta reittiä pitkin. Lokit Lähetä historia ownCloudin Android-sovelluksen lokit @@ -252,4 +265,6 @@ Siirto ei onnistu. Tarkista, ettei tiedostoa ole jo olemassa Tiedosto on jo olemassa kohdekansiossa Tämän tiedoston tai kansion siirtoa yrittäessä tapahtui virhe + Välittömät lähetykset + Tietoturva diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index a6c640b2..90c7ba74 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -4,13 +4,21 @@ version %1$s Actualiser le compte Téléverser - Contenu d\'une autre application + Contenu d\'autres applications Fichiers Ouvrir avec Nouveau dossier Paramètres Détails Envoyer + Trier + Trier par + + A-Z + Plus récent - Plus ancien + + Général Plus Comptes @@ -30,14 +38,16 @@ Recommander à un ami Commentaires Empreinte - Essayez %1$s sur votre smartphone ! + Mémoriser l\'emplacement de partage + Mémoriser le dernier emplacement d\'upload + Essayez %1$s sur votre smartphone&nbsp;! 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://... + Adresse du serveur https://… Nom d\'utilisateur Mot de passe - Nouveau dans %1$s ? + Nouveau dans %1$s&nbsp;? Fichiers Connecter Téléverser @@ -50,6 +60,7 @@ Téléchargez-le ici : %2$s Aucun contenu reçu. Rien à envoyer. %1$s n\'est pas autorisé à accéder au contenu partagé Téléversement + il y a quelques secondes Il n\'y a rien ici ! Envoyez donc quelque chose :) Chargement… Aucun fichier n\'est présent dans ce dossier. @@ -71,8 +82,8 @@ Téléchargez-le ici : %2$s Annuler Sauvegarder & Quitter Erreur - Chargement ... - Erreur Inconnue + Chargement… + Erreur inconnue À propos de Changer de mot de passe Effacer ce compte @@ -80,7 +91,7 @@ Téléchargez-le ici : %2$s Téléverser un fichier depuis… Nom du dossier Téléversement… - Envoi du fichier %2$s en cours, %1$d%% effectués + Envoi du fichier %2$s : %1$d%% effectués Téléversement réussi Le fichier %1$s a été envoyé avec succès Échec de l\'envoi @@ -102,7 +113,7 @@ Téléchargez-le ici : %2$s Des conflits ont été trouvés %1$d fichiers à garder synchronisés n\'ont put être synchronisé La synchronisation des fichiers a échoué - Le contenu de %1$d fichiers n\'a put être synchronisé (%2$d conflits) + Le contenu de %1$d fichiers n\'a pu être synchronisé (%2$d conflits) Certains fichiers locaux ont été oubliés %1$d fichiers du dossier %2$s n\'ont pas pu être copiés dans Depuis la version 1.3.16, les fichiers envoyé depuis ce périphérique sont copiés dans le dossier local %1$s pour éviter une perte de données lorsqu\'un même fichier est synchronisé avec plusieurs comptes. @@ -114,8 +125,8 @@ 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: %1$s - Distant: %1$s + Local&nbsp;: %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é Veuillez saisir votre code de sécurité @@ -133,20 +144,20 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Fichier média introuvable Aucun compte n\'a été trouvé Le fichier n\'est pas dans un compte valide - Le codec de ce média n\'est pas supporté + Le codec de ce média n\'est pas pris en charge Le fichier média ne peut pas être lu Le fichier média n\'est pas correctement encodé Délai dépassé pour la lecture du morceau. Le fichier média ne peut pas être diffusé - Fichier média ne peut être joué avec le stock de media player - taux %1$s erreurs de sécurité essayant de jouer - Taux %1$s d\'erreurs de saisie essayant de jouer - Taux %1$s d\'erreurs inattendues essayant de jouer - Bouton de rem-bobinage - Bouton de Lecture ou de Pause + Le fichier média ne peut être joué avec le lecteur standard + Erreur de sécurité à la lecture de %1$s + Erreur de lecture de fichier à la lecture de %1$s + Erreur inattendue à la lecture de %1$s + Bouton de rembobinage + Bouton de lecture ou de pause Bouton d\'avance rapide - Demande d\'autorisation... - Tentative de connexion … + Demande d\'autorisation… + Tentative de connexion… Pas de connexion réseau Connexion sécurisée non disponible Connexion établie @@ -160,28 +171,28 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Le serveur met trop longtemps à répondre Adresse invalide Échec de l\'initialisation SSL - Impossible de vérifier l\'identité du serveur SSL. + Impossible de vérifier l\'identité du serveur SSL La version du serveur n\'est pas reconnue Impossible d\'établir la connexion Connexion sécurisée établie Nom d\'utilisateur ou mot de passe incorrect - Echec d\'autorisation + Échec d\'autorisation Accès refusé par le serveur d\'autorisation État inattendu ; veuillez entrer à nouveau l\'URL du serveur Votre autorisation a expiré. Merci de vous authentifier à nouveau Veuillez saisir le mot de passe courant Votre session a expiré. Merci de vous reconnecter - Connexion au serveur d\'authentification... - Le serveur ne supporte pas cette méthode d\'authentification - %1$s ne supporte pas les comptes multiples + Connexion au serveur d\'authentification… + Le serveur ne prend pas en charge pas cette méthode d\'authentification + %1$s ne prend pas en charge les comptes multiples Votre serveur a retourné un identifiant d\'utilisateur incorrect. Veuillez prendre contact avec votre administrateur Impossible de s\'authentifier sur ce serveur Maintenir le fichier à jour Renommer Supprimer - Voulez-vous vraiment supprimer %1$s ? - Voulez-vous vraiment supprimer %1$s et son contenu ? + Voulez-vous vraiment supprimer %1$s&nbsp;? + Voulez-vous vraiment supprimer %1$s et son contenu&nbsp;? Local seulement Le contenu local uniquement Effacer du serveur @@ -194,36 +205,36 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Le fichier distant n\'a pu être vérifié Le contenu des fichiers est déjà synchronisé Le dossier n\'a pas pu être créé - Caractères interdits : / \\ < > : \" | ? * + Caractères interdits&nbsp;: / \\ &lt; &gt; : " | ? * Le nom du fichier ne peut pas être vide Veuillez patienter - Problème inattendu ; veuillez essayer une autre app pour la sélection du fichier + Problème inattendu. Veuillez essayer une autre application pour la sélection du fichier Aucun fichier sélectionné Envoyer un lien à… - Connexion avec aAuth2. - Connexion au serveur aAuth2... + Connexion avec oAuth2 + Connexion au serveur oAuth2… L\'identité du site ne peut être vérifiée - Le certificat du serveur n\'est pas sûr - 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 ? + Voulez-vous tout de même faire confiance à ce certificat&nbsp;? Impossible de sauvegarder le certificat Détails Masquer - Délivré à : - Délivré par : + Délivré à&nbsp;: + Délivré par&nbsp;: Nom d\'usage : - Organisation : - Unité organisationnelle : - Pays : - Région : - Localisation : - Validité : - De : - À : - Signature : - Algorithme : + Organisation&nbsp;: + Unité organisationnelle&nbsp;: + Pays&nbsp;: + Région&nbsp;: + Localisation&nbsp;: + Validité&nbsp;: + De&nbsp;: + À&nbsp;: + Signature&nbsp;: + Algorithme&nbsp;: Impossible d\'afficher le certificat. - Aucune information sur l\'erreur Ceci est un espace réservé @@ -243,7 +254,8 @@ 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 - Désolé, le partage n\'est pas disponible sur votre serveur. Contactez votre administrateur, s\'il vous plait. + Chemin d\'accès pour le téléversement + 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 Impossible de supprimer le partage. Vérifiez que le fichier est bien présent @@ -251,7 +263,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 : impossible de réaliser des opérations + Erreur critique&nbsp;: 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. @@ -267,6 +279,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Ce fichier n’est plus disponible sur le serveur Comptes Ajouter un compte + 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 @@ -281,4 +294,6 @@ 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 + Sécurité diff --git a/res/values-fy-rNL/strings.xml b/res/values-fy-rNL/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-fy-rNL/strings.xml +++ b/res/values-fy-rNL/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index e1152a5a..d2783327 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -11,6 +11,8 @@ Preferencias Detalles Enviar + Xeral Máis Contas @@ -48,6 +50,7 @@ Non se recibiu contido. Non hai nada para enviar. %1$s non ten permiso para acceder ao contido compartido Enviando + segundos atrás Aquí non hai nada. Envíe algo! Cargando... Non hai ficheiros neste cartafol. @@ -263,4 +266,5 @@ Contrasinal incorrecto Mover Escoller + Seguranza diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-gu/strings.xml +++ b/res/values-gu/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-he/strings.xml b/res/values-he/strings.xml index c1bc172d..4599f2fa 100644 --- a/res/values-he/strings.xml +++ b/res/values-he/strings.xml @@ -11,6 +11,8 @@ הגדרות פרטים שליחה + כללי יותר חשבונות @@ -48,6 +50,7 @@ לא התקבל תוכן. אין מה להעלות. ל־%1$s אין הרשאה לגשת לתוכן המשותף שלך בהעלאה + שניות אין כאן שום דבר. אולי ברצונך להעלות משהו? בטעינה... אין קבצים בתיקייה זו: @@ -261,4 +264,5 @@ חשבונות הוספת חשבון בחירה + אבטחה diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index 6d0355c7..06c5d2b9 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -11,6 +11,8 @@ सेटिंग्स विवरण भेजें + सामान्य और अधिक खाते diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index 60b52f05..c9bf237a 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -5,6 +5,8 @@ Nova mapa Postavke Pošaljite + Općenito više Korisnićki računi @@ -15,6 +17,7 @@ Poveži Učitaj Izlaz + prije par sekundi Nema ničega u ovoj mapi. Pošalji nešto! Preuzimanje Podijelite vezu @@ -36,4 +39,5 @@ Potrebna autentikacija Pogrešna lozinka Izaberi + Sigurnost diff --git a/res/values-hu-rHU/strings.xml b/res/values-hu-rHU/strings.xml index a0b16a04..0e646831 100644 --- a/res/values-hu-rHU/strings.xml +++ b/res/values-hu-rHU/strings.xml @@ -11,6 +11,8 @@ Beállítások Részletek Küldjük el + Általános Több Fiókok @@ -48,6 +50,7 @@ Nem jött tartalom. Nincs mit feltölteni. %1$s nem jogosult a megosztott tartalom elérésére Feltöltés + pár másodperce Itt nincs semmi. Töltsön fel valamit! Betöltés... Nincs fájl ebben a mappában. @@ -242,4 +245,5 @@ Felhasználóazonosítás szükséges Hibás jelszó Válasszon + Biztonság diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml index eeb78fe8..7994bf47 100644 --- a/res/values-hy/strings.xml +++ b/res/values-hy/strings.xml @@ -1,5 +1,7 @@ + Բեռնել diff --git a/res/values-ia/strings.xml b/res/values-ia/strings.xml index 0d79fbde..598d99a9 100644 --- a/res/values-ia/strings.xml +++ b/res/values-ia/strings.xml @@ -5,6 +5,8 @@ Nove dossier Configurationes Invia + General Plus Adjuta @@ -13,6 +15,7 @@ Files Connecte Incargar + secundas passate Nihil hic. Incarga alcun cosa! Discargar Compartir ligamine diff --git a/res/values-id/strings.xml b/res/values-id/strings.xml index f7cfeaa7..1434642b 100644 --- a/res/values-id/strings.xml +++ b/res/values-id/strings.xml @@ -6,17 +6,29 @@ Unggah Konten dari apl lain Berkas - Bukan dengan + Buka dengan Folder baru - pengaturan + Pengaturan Rincian Kirim - umum + Urutkan + Urutan + + A-Z + Terbaru - Terlawas + + + Umum Lainnya Akun Kelola Akun PIN Apl Lindungi klien Anda + Unggah gambar cepat + Unggah gambar yang diambil kamera dengan cepat + Unggah video cepat + Unggah video yang direkam kamera dengan cepat Aktifkan Pencatatan Ini digunakan untuk mencatat masalah Riwayat Catatan @@ -25,8 +37,11 @@ Bantuan Rekomendasikan ke teman Umpan balik - Imprint - Coba %1$s pada smartphone Anda! + Jejak + Ingat lokasi berbagi + Ingat lokasi unggahan berbagi terakhir + Cobalah %1$s pada ponsel cerdas Anda! + Saya mengajak Anda untuk menggunakan %1$s di ponsel cerdas Anda!\nUnduh gratis disini: %2$s Periksa Server Alamat server https://… Nama Pengguna @@ -35,6 +50,7 @@ Berkas Sambungkan Unggah + Pilih folder unggah: Tidak ada akun yang ditemukan Belum ada akun %1$s pada perangkat Anda. Silahkan buat akun terlebih dahulu. Pengaturan @@ -43,7 +59,10 @@ Tidak ada konten yang diterima. Tidak ada yang diunggah %1$s tidak diizinkan mengakses konten berbagi Mengunggah + beberapa detik yang lalu Tidak ada apa-apa di sini. Unggah sesuatu! + Memuat... + Tidak ada satupun berkas dalam folder ini. Sentuh pada berkas untuk menampilkan informasi tambahan Ukuran: Tipe: @@ -53,6 +72,7 @@ Segarkan berkas Berkas diubah namanya menjadi %1$s saat pengunggahan Bagikan tautan + Batal bagikan tautan Ya Tidak Oke @@ -75,6 +95,7 @@ %1$s berhasil diunggah Gagal mengunggah Unggah %1$s tidak selesai + Unggah gagal, Anda perlu masuk ulang Mengunduh... %1$d%% Mengunduh %2$s Berhasil mengunduh @@ -82,19 +103,26 @@ Gagal Mengunduh Mengunduh %1$s tidak selesai Belum diunduh + Gagal mengunduh, Anda perlu masuk kembali Pilih akun Sinkronisasi gagal + Sinkronisasi gagal, Anda perlu masuk kembali Sinkronisasi %1$s tidak selesai Sandi salah untuk %1$s Konflik ditemukan + %1$d berkas kept-in-sync tidak dapat disinkronkan + Berkas kept-in-sync gagal Konten berkas %1$d tidak dapat disinkronasikan (%2$d konflik) Beberapa berkas lokal terlupakan + %1$d berkas diluar folder %2$s tidak dapat disalin kedalamnya + Sejak versi 1.3.16, berkas-berkas yang diunggah dari piranti ini akan disalin kedalam folder %1$s lokal untuk mencagah kehilangan data saat berkas tunggal disinkronkan dengan akun lebih dari satu.\n\nAkibat perubahan ini, semua berkas yang diunggah di versi aplikasi sebelumnya disalin kedalam folder %2$s. Namun, sebuah kesalahan mencegah penyelesaian operasi ini saat sinkronisasi akun. Anda boleh meninggalkan berkas seperti ini dan menghapus tautan ke %3$s atau memindahkan berkas kedalam folder %1$s dan membiarkan tautan ke %4$s.\n\nYang tampak dibawah adalah berkas lokal, dan berkas remote didalam %5$s yang dihubungkan dengannya. Folder %1$s tidak ada lagi Pindahkan semua Semua berkas sudah dipindahkan Beberapa berkas tidak dapat dipindahkan Lokal: %1$s Jauh: %1$s + Ruang tidak cukup untuk menyalin berkas terpilih kedalam folder %1$s. Apakah Anda ingin memindahkannya saja? Silakan masukkan PIN Apl Masukkan PIN Apl PIN akan selalu diminta setiap kali apl dijalankan @@ -107,6 +135,7 @@ Pemutar musik %1$s %1$s (dimainkan) %1$s (sedang dimuat) + %1$s pemutaran selesai Tidak ditemukan berkas media Tidak ada akun yang diberikan Brkas tidak didalam akun yang sah @@ -122,6 +151,7 @@ Tombol mundur Tombol main dan jeda Tombol maju + Mendapatkan otorisasi... Mencoba untuk masuk... Tidak ada koneksi internet Sambungan aman tidak tersedia @@ -150,9 +180,14 @@ Menyambungkan ke server otentikasi... Server tidak mendukung medote otentikasi ini %1$s tidak mendukung banyak akun + Server Anda tidak membalas id pengguna dengan banar, Sialakn hubungi Administrator + + Tidak dapat mengotentikasi pada server ini Biarkan berkas tetap terbaru Ubah nama Hapus + Apakah Anda yakin ingin menghapus %1$s? + Apakah Anda yakin ingin menghapus %1$s dan isinya? Lokal saja Konten lokal saja Hapus dari server @@ -164,10 +199,13 @@ Mengubah nama tidak selesai Berkas jauh tidak dapat diperiksa Isi berkas sudah diselaraskan + Folder tidak dapat dibuat Karakter yang dilarang: / \\ < > : \" | ? * - Tunggu sejenak + Nama berkas tidak boleh kosong + Tunggu sebentar Masalah tidak terduga, silahkan pilih berkas dari apl yang berbeda Tidak ada berkas yang terpilih + Kirim taukan ke Masuk dengan oAuth2 Menyambungkan ke server oAuth2... Identitas situs tidak dapat diverfikasi @@ -192,6 +230,8 @@ Untuk: Tanda tangan: Algoritma: + Sertifikat tidak dapat ditampilkan. + - Tidak ada informasi tantang error Ini adalah placeholder placeholder.txt Gambar PNG @@ -199,6 +239,7 @@ 18/05/2012 12:23 PM 12:23:45 Hanya unggah gambar via WiFi + Hanya unggah video via WiFi /UnggahInstan Perbarui benturan Berkas jauh %s tidak sinkron dengan berkas lokal. Melanjutkan akan menggantikan konten berkas di server. @@ -206,10 +247,49 @@ Timpa Jangan mengunggah Pratilik gambar + Gambar ini tidak dapat ditampilkan + %1$s tidak dapat disalin ke folder lokal %2$s + Jalur Lokasi Unggah + Maaf, berbagi tidak diaktifkan pada server Anda. Silakan hubungi + administrator Anda. + Tidak dapat berbagi. Mohon periksa apakah berkas ada + Terjadi kesalahan saat mencoba membagikan berkas atau folder ini + Tidak dapat menghapus berbagi. Mohon periksa apakah berkas ada + Terjadi kesalahan saat mencoba menghapus berbagi berkas dan folder ini Kirim + Salin tautan + Disalin ke papan klip + Kesalahan fatal: tidak dapat melakukan operasi + Terjadi kesalahan saat menghubungkan dengan server. + Terjadi kesalahan saat menunggu balasan server, operasi tidak dapat diselesaikan + Terjadi kesalahan saat menunggu balasan server, operasi tidak dapat diselesaikan + Operasi tidak dapat diselesaikan, server tidak tersedia + Anda tidak memiliki izin %s + untuk mengubah nama berkas ini + untuk menghapus berkas ini + untuk membagikan berkas ini + untuk batal membagikan berkas ini + untuk membuat berkas + untuk mengunggah kedalam folder ini + Berkas tidak lagi tersedia pada server Akun + Tambah akun + Sambungan aman dialihkan ke rute yang tidak aman. + Log + Kirim Riwayat + Log apl ownCloud Android + Memuat data... Diperlukan otentikasi Sandi salah + Pindah + Tdak ada apapun disini. Anda dapat menambahkan sebuah folder! Pilih + Tidak dapat memindahkan. Silakan periksa apakah berkas ada + Tidak mungkin untuk memindahkan folder kedalam turunannya + Berkas sudah ada didalam folder tujuan + Terjadi kesalahan saat mencoba memindahkan berkas atau folder ini + untuk memindahkan berkas ini + Unggah Cepat + Keamanan diff --git a/res/values-io/strings.xml b/res/values-io/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-io/strings.xml +++ b/res/values-io/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml index d6eaedad..1e14885b 100644 --- a/res/values-is/strings.xml +++ b/res/values-is/strings.xml @@ -4,12 +4,15 @@ Skrár Stillingar Senda + Meira Hjálp Notendanafn Lykilorð Skrár Senda inn + sek. Ekkert hér. Settu eitthvað inn! Niðurhal Já diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index e0f7e47d..5bb79824 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -11,6 +11,14 @@ Impostazioni Dettagli Invia + Ordina + Ordina per + + A-Z + Più recente - Più datato + + Generale Altro Account @@ -30,6 +38,8 @@ Consiglia ad un amico Segnalazioni Imprint + Ricorda la posizione della condivisione + Ricorda l\'ultima posizione di caricamento della condivisione Prova %1$s sul tuo smartphone! Vorrei invitarti a usare %1$s sul tuo smartphone!\nScarica qui: %2$s Verifica server @@ -49,6 +59,7 @@ Non è stato ricevuto alcun contenuto. Niente da caricare. %1$s non è abilitato ad accedere al contenuto condiviso Caricamento in corso + secondi fa Non c\'è niente qui. Carica qualcosa! Caricamento in corso... Non ci sono file in questa cartella. @@ -66,7 +77,7 @@ No OK Annulla lo scaricamento - Annulla invio + Annulla caricamento Annulla Salva ed esci Errore @@ -234,10 +245,11 @@ Il file remoto %s non è sincronizzato con il file locale. Se continui, il contenuto del file sarà sostituito sul server. Mantieni entrambi Sovrascrivi - Non inviare + Non caricare Anteprima dell\'immagine Questa immagine non può essere mostrata %1$s non può essere copiato nella cartella locale %2$s + Percorso di caricamento Spiacenti, la condivisione non è abilitata sul tuo server. Contatta il tuo amministratore. Impossibile condividere. Assicurati che il file esista @@ -263,6 +275,7 @@ Il file non è più disponibile sul server Account Aggiungi account + La connessione sicura è rediretta su un percorso non sicuro. Registri Invia cronologia Registri applicazione ownCloud Android @@ -277,4 +290,6 @@ Il file esiste già nella cartella di destinazione Si è verificato un errore durante il tentativo di spostare il file o la cartella per spostare questo file + Caricamenti istantanei + Protezione diff --git a/res/values-ja-rJP/strings.xml b/res/values-ja-rJP/strings.xml index 704170f9..f6e43e2a 100644 --- a/res/values-ja-rJP/strings.xml +++ b/res/values-ja-rJP/strings.xml @@ -11,6 +11,14 @@ 設定 詳細 送信 + ソート + ソート: + + A-Z + 最新 - 最古 + + 一般 もっと見る アカウント @@ -30,6 +38,8 @@ 友達に推薦 フィードバック インプリント + 共有場所を記憶する + 最後に共有アップロードした場所を記憶する スマートフォンで %1$s を試してください! スマートフォンで %1$s を利用してみませんか! ここからダウンロードしてください: %2$s @@ -50,6 +60,7 @@ コンテンツを受信しませんでした。アップロードするものはありません。 %1$sで共有コンテンツへのアクセスが許可されていません。 アップロード中 + 数秒前 ここには何もありません。何かアップロードしてください。 読込中 ... このフォルダーにはファイルがありません。 @@ -239,6 +250,7 @@ イメージプレビュー この画像は表示できません %1$s は、ローカルフォルダー %2$s にコピーできませんでした。 + アップロードパス 申し訳ございません。共有がサーバー上で有効になっていません。 管理者に ご連絡ください。 共有できません。ファイルがあるか確認してください。 @@ -264,6 +276,7 @@ ファイルはサーバー上で利用できません アカウント アカウントを追加 + 暗号化接続は非暗号化接続にリダイレクトされました。 ログ ログを送信 ownCloud Android アプリログ @@ -278,4 +291,6 @@ そのファイルは、宛先フォルダに既に存在しています。 このファイルまたはフォルダーを移動する際にエラーが発生しました このファイルを移動 + 自動アップロード + セキュリティ diff --git a/res/values-jv/strings.xml b/res/values-jv/strings.xml index 084a4e3e..0eaa7454 100644 --- a/res/values-jv/strings.xml +++ b/res/values-jv/strings.xml @@ -1,5 +1,7 @@ + Njipuk diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml index b23ca473..f0efc92c 100644 --- a/res/values-ka-rGE/strings.xml +++ b/res/values-ka-rGE/strings.xml @@ -6,6 +6,8 @@ ახალი ფოლდერი პარამეტრები გაგზავნა + ზოგადი უფრო მეტი ანგარიში @@ -28,6 +30,7 @@ კონტენტი არ იქნა მიღებული. არაფერია ასატვირთად. %1$s–ი არ დაიშვება გაზიარებული კონტენტის სანახავად მიმდინარეობს ატვირთვა + წამის წინ აქ არაფერი არ არის. ატვირთე რამე! დააჭირეთ ფაილს დამატებითი ინფორმაციის გამოსაჩენად. ზომა: @@ -149,4 +152,5 @@ ანგარიში არჩევა + უსაფრთხოება diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml index 3c4f3cd3..75c68d75 100644 --- a/res/values-km/strings.xml +++ b/res/values-km/strings.xml @@ -6,6 +6,8 @@ ការកំណត់ ព័ត៌មាន​លម្អិត ផ្ញើ + ទូទៅ ច្រើន​ទៀត គណនី @@ -21,6 +23,7 @@ ដំឡើង ចាក់ចេញ កំពុង​ផ្ទុក​ឡើង + វិនាទី​មុន គ្មាន​អ្វី​នៅ​ទីនេះ​ទេ។ ផ្ទុក​ឡើង​អ្វី​មួយ! ចុចមួយ​លើឯកសារ ដើម្បី​បង្ហាញ​ព័ត៌មាន​បន្ថែម។ ទំហំ៖ @@ -83,4 +86,5 @@ គណនី ខុស​ពាក្យ​សម្ងាត់ ជ្រើស + សុវត្ថិភាព diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-kn/strings.xml +++ b/res/values-kn/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index b8313dbc..a298ff5a 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -11,6 +11,8 @@ 설정 세부내용 보내기 + 일반 더 중요함 계정 @@ -43,6 +45,7 @@ 받은 콘텐츠가 없습니다. 업로드할 항목이 없습니다. %1$s에서 공유된 콘텐츠에 접근할 수 없습니다 업로드 중 + 초 전 내용이 없습니다. 업로드할 수 있습니다! 파일을 누르면 추가 정보가 표시됩니다. 크기: @@ -217,4 +220,5 @@ 인증 필요함 잘못된 암호 선택 + 보안 diff --git a/res/values-ku-rIQ/strings.xml b/res/values-ku-rIQ/strings.xml index 2e843f2d..c342c643 100644 --- a/res/values-ku-rIQ/strings.xml +++ b/res/values-ku-rIQ/strings.xml @@ -3,6 +3,8 @@ بارکردن په‌ڕگەکان ده‌ستكاری + گشتی هەژمارەکان یارمەتی diff --git a/res/values-lb/strings.xml b/res/values-lb/strings.xml index 19b003ec..545c8427 100644 --- a/res/values-lb/strings.xml +++ b/res/values-lb/strings.xml @@ -7,6 +7,8 @@ Astellungen Detailer Schécken + Allgemeng Méi Accounten @@ -22,6 +24,7 @@ Setup Erausgoen Eroplueden + Sekonnen hir Hei ass näischt. Lued eppes rop! Gréisst: Typ: diff --git a/res/values-lt-rLT/strings.xml b/res/values-lt-rLT/strings.xml index 5dfaffa4..2f45be19 100644 --- a/res/values-lt-rLT/strings.xml +++ b/res/values-lt-rLT/strings.xml @@ -11,6 +11,8 @@ Nustatymai Informacija Siųsti + Bendras Daugiau Paskyros @@ -48,6 +50,7 @@ nebuvo gauta turinio. Nėra įkeltino turinio %1$s neleidžiama prieiti prie turinio, kuriuo dalijamasi Išsiunčiama + prieš sekundę Čia tuščia. Įkelkite ką nors! Įkeliama ... Šiame aplanke nėra failų. @@ -234,4 +237,5 @@ Paskyros Neteisingas slaptažodis Pasirinkite + Saugumas diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 41a1872f..39ea5bf0 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -6,6 +6,8 @@ Jauna mape Iestatījumi Sūtīt + Vispārīgi Vairāk Konti @@ -26,6 +28,7 @@ Nav saņemts nekāds saturs. Nav ko augšupielādēt. %1$s nedrīkst piekļūt koplietotajam saturam Augšupielādē + sekundes atpakaļ Te vēl nekas nav. Rīkojies, sāc augšupielādēt! Uzsitiet uz datnes, lai redzētu papildinformāciju. Izmērs: @@ -143,4 +146,5 @@ Konti Izvēlieties + Drošība diff --git a/res/values-mg/strings.xml b/res/values-mg/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-mg/strings.xml +++ b/res/values-mg/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index d7a62301..5333aae4 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -7,6 +7,8 @@ Параметри Детали: Прати + Општо Повеќе Сметки @@ -26,6 +28,7 @@ Не е пронајдена сметка Нагодување Прекини + пред секунди Тука нема ништо. Снимете нешто! Големина: Тип: @@ -122,4 +125,5 @@ Потребна е автентификација Погрешна лозинка Избери + Безбедност diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml index 75c6f22f..3ee64f03 100644 --- a/res/values-ml-rIN/strings.xml +++ b/res/values-ml-rIN/strings.xml @@ -1,6 +1,8 @@ ഫയലുകൾ + ഫയലുകൾ diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-ml/strings.xml +++ b/res/values-ml/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-mn/strings.xml +++ b/res/values-mn/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml index af534d2e..808ab65d 100644 --- a/res/values-ms-rMY/strings.xml +++ b/res/values-ms-rMY/strings.xml @@ -3,6 +3,8 @@ Muat naik Fail-fail Set + Umum Lanjutan Akaun diff --git a/res/values-mt-rMT/strings.xml b/res/values-mt-rMT/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-mt-rMT/strings.xml +++ b/res/values-mt-rMT/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml index 7f998bf3..7ec90056 100644 --- a/res/values-my/strings.xml +++ b/res/values-my/strings.xml @@ -1,10 +1,13 @@ ဖိုင်များ + အကူအညီ သုံးစွဲသူအမည် စကားဝှက် ဖိုင်များ + စက္ကန့်အနည်းငယ်က ဒေါင်းလုတ် ဟုတ် မဟုတ်ဘူး diff --git a/res/values-nb-rNO/strings.xml b/res/values-nb-rNO/strings.xml index 117236cc..11326516 100644 --- a/res/values-nb-rNO/strings.xml +++ b/res/values-nb-rNO/strings.xml @@ -11,6 +11,8 @@ Innstillinger Detaljer Send + Generelt Mer Kontoer @@ -49,6 +51,7 @@ Intet innhold ble mottatt. Intet å laste opp. %1$s har ikke tilgang til det delte innholdet Laster opp + for få sekunder siden Ingenting her. Last opp noe! Laster... Det er ingen filer i denne mappen. @@ -277,4 +280,5 @@ Filen finnes allerede i målmappen En feil oppstod ved flytting av denne filen eller mappen å flytte denne filen + Sikkerhet diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-ne/strings.xml +++ b/res/values-ne/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index de6768d4..e0bcaa41 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -11,6 +11,14 @@ Instellingen Details Versturen + Sorteren + Sorteer op + + A-Z + Nieuwste - Oudste + + Algemeen Meer Accounts @@ -30,6 +38,8 @@ Aanbevelen bij een vriend Feedback afdruk + Onthoud de share locatie + Onthoud de laatste upload locatie Probeer %1$s op uw smartphone! Uitnodiging om %1$s op uw smartphone uit te proberen! Download hier: %2$s @@ -50,6 +60,7 @@ Download hier: %2$s Er werd geen inhoud ontvangen. Niets om te uploaden. %1$s is niet toegestaan om toegang te hebben tot de publieke inhoud Uploaden + seconden geleden Er bevindt zich hier niets. Upload een bestand! Laden ... Er staan geen bestanden in deze map. @@ -60,7 +71,7 @@ Download hier: %2$s Aangepast: Download Bestand verversen - Bestand was hernoemt naar %1$s tijdens het uploaden + Bestand is tijdens het uploaden hernoemd naar %1$s Deel link Link niet meer delen Ja @@ -109,7 +120,7 @@ Download hier: %2$s Door deze aanpassing werden alle bestanden die met een eerdere versie zijn ge-uploaded gekopieerd naar de %2$s map. Maar een fout voorkwam het succesvol afronden van deze actie tijdens het synchroniseren. U kunt de/het bestand(en) laten staan zoals ze nu zijn en de link naar %3$s verwijderen, of u kunt de bestanden verplaatsen naar de %1$s map en de link naar %4$s laten staan. Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar verwezen. Map %1$s bestaat niet meer - Alle verplaatsen + Alles verplaatsen Alle bestanden zijn verplaatst Een paar bestanden konden niet worden verplaatst Lokaal: %1$s @@ -241,6 +252,7 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar Afbeelding voorbeeld Deze afbeelding kan niet worden getoond %1$s kon niet worden gekopieerd naar de %2$s lokale map + Upload pad Sorry, delen is niet mogelijk op uw server. Neem contact op met uw beheerder. Kan dit niet delen. Controleer of dit bestand wel bestaat. @@ -266,6 +278,7 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar Dit bestand is niet langer beschikbaar op de server Accounts Toevoegen account + De beveiligde verbinding is omgeleid naar een onveilige route. Logs Verstuur geschiedenis ownCloud Android app logs @@ -280,4 +293,6 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar Het bestand bestaat al in de doelmap Er trad een fout op bij uw poging dit bestand of deze map te verplaatsen om dit bestand te verplaatsen + Directe uploads + Beveiliging diff --git a/res/values-nn-rNO/strings.xml b/res/values-nn-rNO/strings.xml index 8c15264f..9cf7ac6e 100644 --- a/res/values-nn-rNO/strings.xml +++ b/res/values-nn-rNO/strings.xml @@ -11,6 +11,8 @@ Innstillingar Detaljar Send + Generelt Meir Kontoar @@ -44,6 +46,7 @@ Inga innhald å lasta opp Mottok ikkje noko innhald. Ingenting å lasta opp. Lastar opp + sekund sidan Ingenting her. Last noko opp! Trykk på ei fil for å visa meir informasjon. Storleik: @@ -129,4 +132,5 @@ Kontoar Feil passord Vel + Tryggleik diff --git a/res/values-oc/strings.xml b/res/values-oc/strings.xml index 84ca4981..e6a7eae9 100644 --- a/res/values-oc/strings.xml +++ b/res/values-oc/strings.xml @@ -3,6 +3,8 @@ Amontcarga Fichièrs Configuracion + General Mai d\'aquò Comptes @@ -17,6 +19,7 @@ Configuracion Quita Al amontcargar + segonda a Pas res dedins. Amontcarga qualquaren Talha : Tipe : diff --git a/res/values-or-rIN/strings.xml b/res/values-or-rIN/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-or-rIN/strings.xml +++ b/res/values-or-rIN/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml index dc0b9e78..bf5abd69 100644 --- a/res/values-pa/strings.xml +++ b/res/values-pa/strings.xml @@ -10,6 +10,8 @@ ਸੈਟਿੰਗ ਵੇਰਵ ਭੇਜੋ + ਆਮ ਅਕਾਊਂਟ ਲਾਗ ਰੱਖਣਾ ਚਾਲੂ @@ -27,6 +29,7 @@ ਅੱਪਲੋਡ ਕਰਨ ਲਈ ਕੋਈ ਸਮੱਗਰੀ ਨਹੀਂ ਕੋਈ ਸਮੱਗਰੀ ਨਹੀਂ ਮਿਲੀ। ਅੱਪਲੋਡ ਕਰਨ ਲਈ ਕੁਝ ਨਹੀਂ ਹੈ। ਅੱਪਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ + ਸਕਿੰਟ ਪਹਿਲਾਂ ਹੋਰ ਜਾਣਕਾਰੀ ਵੇਖਣ ਲਈ ਫਾਇਲ ਉੱਤੇ ਛੂਹੋ ਆਕਾਰ: ਕਿਸਮ: diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 856f4f91..a5a7b7b9 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -11,6 +11,14 @@ Ustawienia Szczegóły Wyślij + Sortuj + Sortuj według + + A-Z + Nowsze - Starsze + + Ogólne Więcej Konta @@ -49,6 +57,7 @@ Nie otrzymano danych. Nie ma nic do wysłania. %1$s nie ma dostępu do udostępnionych treści Wysyłanie + sekund temu Pusto. Wyślij coś! Ładowanie... Nie ma plików w tym folderze. @@ -238,6 +247,7 @@ Podgląd Ten obrazek nie może zostać wyświetlony %1$s nie może zostać skopiowany do lokalnego folderu %2$s + Katalog wysyłania Przepraszamy, ale współdzielenie nie jest włączone na Twoim serwerze. Proszę skontaktuj się z administratorem. Nie można udostępnić. Proszę sprawdzić, czy plik istnieje @@ -263,8 +273,10 @@ Ten plik nie jest już dostępny na serwerze Konta Dodaj konto + Bezpieczne połączenie jest przekierowywane przez niezabezpieczone trasy. Logi Wyślij historię + Logi aplikacji ownCloud Android Ładuję dane... Wymagana autoryzacja Złe hasło @@ -276,4 +288,6 @@ Plik istnieje już w folderze docelowym Pojawił się błąd podczas próby przeniesienia tego pliku lub folderu aby przenieść ten plik + Automatyczne wysyłanie + Bezpieczeństwo diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml index 5f95b944..512cfe56 100644 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@ -11,6 +11,14 @@ Configurações Detalhes Enviar + Classificar + Classificar por + + A-Z + Mais Recente - Mais Antigo + + Geral Mais Contas @@ -30,6 +38,8 @@ Recomendar a um amigo Feedback Imprint + Lembre-se do local de compartilhamento + Lembrar do último local de envio de compartilhamento Tentar %1$s em seu smartfone! Gostaria de convida-lo a usar %1$s em seu smartphone!\nBaixe aqui: %2$s Verificar Servidor @@ -49,6 +59,7 @@ Nenhum conteúdo foi recebido. Nada para enviar. %1$s não é permitido acessar o conteúdo compartilhado Enviando + segundos atrás Nada aqui. Envie alguma coisa! Carregando... Não existe nenhum arquivo nesta pasta. @@ -238,6 +249,7 @@ Pré-visualização da imagem Esta imagem não pode ser mostrada %1$s não pôde ser copiado para pasta local %2$s + Enviar Caminho Desculpe, o compartilhamento não está habilitado em seu servidor. Entre em contato com seu ⇥⇥ administrador. Não é possível compartilhar. Por favor verifique se o arquivo existe @@ -263,6 +275,7 @@ Este arquivo não mais está disponível neste servidor Contas Adicionar uma conta + Conexão segura esta redirecionada para uma rota não segura. Logs Enviar Histórico Logs do aplicativo ownCloud Android @@ -277,4 +290,6 @@ O arquivo já existe na pasta de destino Ocorreu um erro ao tentar mover este arquivo ou pasta mover este arquivo + Envios Instantâneos + Segurança diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index cc6613e2..4da13ba2 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -2,34 +2,44 @@ %1$s Aplicação(ões) Android versão %1$s - Actualizar + Atualizar conta Enviar - Conteúdo das outras apps + Conteúdo de outras apps Ficheiros Abrir com Nova Pasta Definições Detalhes Enviar + Ordenar + Ordenar por + + A-Z + Mais Recente - Mais Antigo + + Geral Mais Contas - Gerir contas - App PIN + Gerir Contas + PIN da App Proteja o seu cliente - Transferência instantânea de imagens - Transferência instantânea de imagens tiradas com câmara + Envios instantâneos de imagens + Envio instantâneo de imagens tiradas com a câmara Envios instantâneos dos vídeos - Carregamento instantâneo de vídeos registados com a camera - Ativar Rastreio - Isto é usado para registar problemas - Historico do rastreio + Envio instantâneo de vídeos gravados com a câmara + Ativar Registo de Eventos + Isto é utilizado para registar problemas + Histórico dos Registos Isto mostra os registos guardados - Eliminar Histórico + Apagar Histórico Ajuda Recomendar a um amigo - Resposta + Feedback Imprint + Lembrar localização de partilha + Lembrar da última localização de envio de partilha Experimente %1$s no seu smartphone! Quero convidar-te a usares %1$s no teu smartphone!\nFaz download aqui: %2$s Verificar Servidor @@ -49,43 +59,44 @@ Não foi recebido nenhum conteúdo. Nada para enviar. O %1$s não está autorizado a aceder aos ficheiro partilhados. A enviar + Minutos atrás Vazio. Envie alguma coisa! - A carregar... + A carregar ... Não existem ficheiros nesta pasta. Clique no ficheiro para visualizar informação adicional. Tamanho: Tipo: Criado: Modificado: - Descarregar + Transferir Atualizar ficheiro O nome do ficheiro foi alterado para %1$s durante o envio. - Partilhar o link + Partilhar a hiperligação Deixar de partilhar a ligação Sim Não OK Cancelar a transferência - Cancelar envio + Cancelar o envio Cancelar Guardar & Sair Erro - A carregar... + A carregar ... Erro Desconhecido Sobre - Alterar palavra-chave + Alterar senha Apagar conta Criar conta - Carregar de... + Enviar de ... Nome da pasta - A carregar... + A enviar ... A enviar %1$d%% , %2$s completo. Carregado com sucesso %1$s foi carregado com sucesso Carregamento falhou O envio do ficheiro %1$s não foi concluído. Falha no carregamento, é necessário fazer novo login - A descarregar... + A transferir ... %1$d%% A decarregar %2$s Descarga com sucesso %1$s foi descarregado com sucesso @@ -97,7 +108,7 @@ Falhou a sincronização Falhou a sincronização, necessita fazer um novo login Não foi possível sincronizar %1$s - Password inválida para %1$s + Senha inválida para %1$s Foram encontrados conflitos Não foi possível sincronizar o ficheiro %1$d Falhou a operação de manter os ficheiros sincronizados @@ -237,6 +248,7 @@ Pré-Visualização da imagem Esta imagem não pode ser mostrada Não foi possível copiar %1$s para a pasta local %2$s + Caminho de Upload Lamentamos mas não é possível partilhar através do seu servidor. Por favor contacte o seu administrador. Não é possivel partilhar. Por favor verifique se o ficheiro existe Ocorreu um erro enquanto tentava partilhar este ficheiro ou pasta @@ -261,6 +273,7 @@ O ficheiro não está mais disponível no servidor Contas Adicionar conta + Ligação segura é redireccionada para um caminho inseguro. Logs Enviar Histórico Logs da app ownCloud Android @@ -275,4 +288,6 @@ O ficheiro já existe na pasta de destino Um erro ocorreu ao tentar mover este ficheiro ou pasta para mover este ficheiro + Uploads Instantâneos + Segurança diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index c3e20eee..5df31b3e 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -11,6 +11,10 @@ Setări Detalii Expediază + Sortare + Sortare după + General Mai mult Conturi @@ -48,6 +52,7 @@ Nu a fost primit nici un conţinut .Nu exista nimic de încărcat . %1$s nu este permis sa acceseze conținutul shared Încărcare + secunde în urmă Nimic aici. Încarcă ceva! Se incarca In acest folder nu sunt fisiere. @@ -257,6 +262,13 @@ pentru a încărca în acest folder 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 + Securitate diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 93a2672f..1f773f96 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -11,6 +11,14 @@ Настройки Подробно Отправить + Упорядочить + Упорядочить по + + А-Я + Новые - Старые + + Основные Больше Учётные записи @@ -50,6 +58,7 @@ Содержимое не получено. Нечего загружать. %1$s не имеет доступа к опубликованным данным Загрузка + только что Здесь ничего нет. Загрузите что-нибудь! Загрузка... В данной папке нет файлов. @@ -239,6 +248,7 @@ Предпросмотр Это изображение не может быть отображено %1$s не возможно скопировать в локальною папку %2$s + Путь для загрузки К сожалению, на вашем сервере отключен совместный доступ. Пожалуйста, свяжитесь с вашим администратором. Невозможно добавить в общий доступ. Пожалуйста, проверьте, существует ли файл Ошибка предоставления общего доступа к этому файлу или каталогу @@ -263,6 +273,7 @@ Этот файл больше недоступен на сервере Учётные записи Добавить учетную запись + Защищённое соединение перенаправлено по незащищённому маршруту Журналы История Отправлений Журналы Андроид-приложения ownCloud @@ -277,4 +288,6 @@ Файл уже существует в папке назначения Произошла ошибка при попытке перемещения этого файла или папки переместить этот файл + Мгновенные загрузки + Безопасность diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml index e64f5775..d413c8f9 100644 --- a/res/values-si-rLK/strings.xml +++ b/res/values-si-rLK/strings.xml @@ -3,6 +3,8 @@ උඩුගත කිරීම ගොනු සිටුවම් + සාමාන්‍යයෙන් වැඩි ගිණුම් @@ -19,6 +21,7 @@ ස්ථාපනය නික්මෙන්න උඩුගතවේ + තත්පරයන්ට පෙර මෙහි කිසිවක් නොමැත. යමක් උඩුගත කරන්න වැඩි විස්තර සඳහා ගොනුවක් ස්පර්ෂ කරන්න විශාලත්වය: diff --git a/res/values-sk-rSK/strings.xml b/res/values-sk-rSK/strings.xml index 2927e955..8616f683 100644 --- a/res/values-sk-rSK/strings.xml +++ b/res/values-sk-rSK/strings.xml @@ -11,6 +11,8 @@ Nastavenia Podrobnosti Odoslať + Všeobecné Viac Účty @@ -48,6 +50,7 @@ Nedodaný žiaden obsah. Nič na odoslanie. %1$s nemá práva pre prístup k zdieľanému obsahu Nahrávanie + pred sekundami Žiadny súbor. Nahrajte niečo! Nahráva sa... V tomto priečinku nie sú žiadne súbory. @@ -263,4 +266,5 @@ Nesprávne heslo Presunúť Vybrať + Zabezpečenie diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index ca46b982..f0c1ee2a 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -11,6 +11,14 @@ Nastavitve Podrobnosti Pošlji + Razvrsti + Razvrsti po + + Naraščajoče A – Z + Novejše – Starejše + + Splošno Več Računi @@ -30,6 +38,8 @@ Priporoči prijateljem Odziv Natis + Zapomni si mesto souporabe + Zapomni si zadnje mesto za pošiljanje v oblak Preizkusi %1$s na pametnem telefonu! Želim ti predstaviti %1$s na pametnem telefonu!\nPrejmeš ga lahko na: %2$s Preveri strežnik @@ -49,6 +59,7 @@ Ni prejete vsebine. Ni datotek za pošiljanje. Oblak %1$s nima nastavljenih dovoljenj za dostop do vsebine v souporabi Pošiljanje + pred nekaj sekundami Tukaj še ni ničesar. Najprej je treba datoteke poslati v oblak! Poteka nalaganje ... V tej mapi ni datotek. @@ -238,6 +249,7 @@ Predogled slike Te slike ni mogoče prikazati Datoteke %1$s ni mogoče kopirati v krajevno mapo %2$s + Pot za pošiljanje Souporaba je na strežniku onemogočena. Možnost lahko spreminjajo le uporabniki s skrbniškimi dovoljenji. Souporaba ni mogoča. Preverite, ali datoteka obstaja. @@ -263,6 +275,7 @@ Datoteka na strežniku ni več na voljo. Računi Dodaj račun + Varna povezava je preusmerjena preko ne-varne poti. Dnevnik Pošlji zgodovino Dnevnik programa ownCloud @@ -277,4 +290,6 @@ Datoteka v ciljni mapi že obstaja. Prišlo je do napake med premikanjem datoteke v mapo med premikanjem datoteke + Takojšnje pošiljanje v oblak + Varnost diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml index def1b9b8..a794c6d9 100644 --- a/res/values-sq/strings.xml +++ b/res/values-sq/strings.xml @@ -5,6 +5,8 @@ Dosje e\'re Parametrat Dërgo + Përgjithshme Më tepër Llogarit @@ -22,6 +24,7 @@ Ndërto Dil Ngarko + sekonda më parë Këtu nuk ka asgje. Ngarko dicka Trokitje e lehtë në një dokument për të shfaqur informacion shtesë. Dimensioni: @@ -72,4 +75,5 @@ Llogarit Fjalëkalim i gabuar Zgjidh + Siguria diff --git a/res/values-sr-rSP/strings.xml b/res/values-sr-rSP/strings.xml index 973a5489..64e2de07 100644 --- a/res/values-sr-rSP/strings.xml +++ b/res/values-sr-rSP/strings.xml @@ -5,6 +5,8 @@ Podešavanja Detaljnije Pošalji + Opšte Nalozi Upravljaj nalozima @@ -15,6 +17,7 @@ Pošalji Nalog nije nađen Šalje se + Pre par sekundi Ovde nema ničeg. Pošaljite nešto! Veličina: Tip: diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index 5384da08..ea8c40ef 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -5,6 +5,8 @@ Датотеке Поставке Пошаљи + Опште Више Налози @@ -20,6 +22,7 @@ Нема садржаја за отпремање Садржај није примљен. Нема ништа да се отпреми. Отпремање + пре неколико секунди Овде нема ничег. Отпремите нешто! Додирните датотеку ради приказа додатних информација. Величина: @@ -109,4 +112,5 @@ Налози Одабери + Безбедност diff --git a/res/values-su/strings.xml b/res/values-su/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-su/strings.xml +++ b/res/values-su/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index be006747..0a01a65f 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -11,6 +11,8 @@ Inställningar Detaljer Skicka + Allmänt Mer Konton @@ -30,8 +32,8 @@ Rekommendera till en vän Feedback Imprint - Försök %1$s på din smarttelefon! - Jag skulle vilja bjuda in dig till att använda %1$s på din smartphone!\nLadda ner här: %2$s + 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 Serveradress https://... Användarnamn @@ -49,6 +51,7 @@ Inget innehåll mottaget. Inget att ladda upp. %1$s har inte rättighet till det delade innehållet Laddar upp + sekunder sedan Ingenting här. Ladda upp något! Laddar... Det finns inga filer i den här mappen. @@ -268,4 +271,5 @@ Välj Gick inte att flytta. Vänligen kontrollera att filen existerar att flytta den här filen + Säkerhet diff --git a/res/values-sw-rKE/strings.xml b/res/values-sw-rKE/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-sw-rKE/strings.xml +++ b/res/values-sw-rKE/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml index 9cce7aeb..5a27ffd0 100644 --- a/res/values-ta-rIN/strings.xml +++ b/res/values-ta-rIN/strings.xml @@ -11,6 +11,8 @@ அமைப்புகள் விவரங்கள் அனுப்பவும் + பொது மேலும் கணக்குகள் diff --git a/res/values-ta-rLK/strings.xml b/res/values-ta-rLK/strings.xml index 8dd0c780..f317edf8 100644 --- a/res/values-ta-rLK/strings.xml +++ b/res/values-ta-rLK/strings.xml @@ -5,6 +5,8 @@ கோப்புகள் அமைப்புகள் விவரங்கள் + பொதுவான மேலதிக கணக்குகள் @@ -25,6 +27,7 @@ ஒரு உள்ளடக்கமும் பெறப்படவில்லை. பதிவேற்றுவதற்கு ஒன்றும் இல்லை பகிரப்பட்ட உள்ளடக்ககங்களை அணுகுவதற்கு %1$s அனுமதிக்கமாட்டாது பதிவேற்றல் + செக்கன்களுக்கு முன் இங்கு ஒன்றும் இல்லை. ஏதாவது பதிவேற்றுக! மேலதிக தகவல்களை காட்சிப்படுத்துவதற்கு கோப்பின் மேல் தட்டுக. அளவு: diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml index ac049826..fdebfa74 100644 --- a/res/values-te/strings.xml +++ b/res/values-te/strings.xml @@ -3,10 +3,13 @@ కొత్త సంచయం అమరికలు పంపించు + మరిన్ని సహాయం వాడుకరి పేరు సంకేతపదం + క్షణాల క్రితం అవును కాదు సరే diff --git a/res/values-tg-rTJ/strings.xml b/res/values-tg-rTJ/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-tg-rTJ/strings.xml +++ b/res/values-tg-rTJ/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-th-rTH/strings.xml b/res/values-th-rTH/strings.xml index 0b141a18..f10ec0f6 100644 --- a/res/values-th-rTH/strings.xml +++ b/res/values-th-rTH/strings.xml @@ -7,6 +7,8 @@ ตั้งค่า รายละเอียด ส่ง + ทั่วไป มาก บัญชี @@ -27,6 +29,7 @@ ยังไม่ได้รับเนื้อหา ไม่มีอะไรให้ต้องอัพโหลด %1$s ไม่อนุญาตให้เข้าถึงเนื้อหาที่ถูกแชร์ไว้ กำลังอัพโหลด + วินาที ก่อนหน้านี้ ยังไม่มีไฟล์ใดๆอยู่ที่นี่ กรุณาอัพโหลดไฟล์! แตะที่ไฟล์ เพื่อแสดงข้อมูลเพิ่มเติม ขนาด: diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 9bb636d4..2a34fcf5 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -11,6 +11,14 @@ Ayarlar Ayrıntılar Gönder + Sırala + Şuna göre sırala + + A-Z + Yeniden - Eskiye + + Genel Daha fazla Hesaplar @@ -30,6 +38,8 @@ Bir arkadaşa öner Geribildirim İzlenim + Konum paylaşmayı hatırla + Son paylaşma yükleme konumunu hatırla %1$s uygulamasını akıllı telefonunda dene! Seni, akıllı telefonunda %1$s kullanmaya davet ediyorum!\nBuradan indirebilirsin: %2$s Sunucuyu Denetle @@ -49,6 +59,7 @@ Hiç içerik alınmadı. Yüklenecek hiçbir şey yok. %1$s için paylaşılan içeriğe erişim izni yok Yükleniyor + saniyeler önce Burada hiçbir şey yok. Bir şeyler yükleyin! Yükleniyor... Bu klasörde dosya yok. @@ -238,6 +249,7 @@ Resim önizleme Bu resim gösterilemiyor %1$s, %2$s yerel klasörüne kopyalanamadı + Yükleme Yolu Üzgünüz, paylaşım sunucunuzda etkin değil. Lütfen yöneticinizle iletişime geçin. Paylaşma başarısız. Lütfen dosyanın mevcut olup olmadığını denetleyin @@ -263,6 +275,7 @@ Bu dosya artık sunucuda mevcut değil Hesaplar Hesap ekle + Güvenli bağlantı, güvenli olmayan bir rotaya yönlendirildi. Günlükler Geçmişi Gönder ownCloud Android uygulama kayıtları @@ -277,4 +290,6 @@ Dosya zaten hedef klasörde mevcut Bu dosya veya klasörü taşımaya çalışılırken bir hata oluştu bu dosyayı taşımak için + Anında Yüklemeler + Güvenlik diff --git a/res/values-ug/strings.xml b/res/values-ug/strings.xml index b126d897..12a54928 100644 --- a/res/values-ug/strings.xml +++ b/res/values-ug/strings.xml @@ -5,6 +5,8 @@ يېڭى قىسقۇچ تەڭشەكلەر يوللا + ئادەتتىكى تېخىمۇ كۆپ ھېساباتلار @@ -41,4 +43,5 @@ يوللا ھېساباتلار + بىخەتەرلىك diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 790dfbdb..597150b8 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -11,6 +11,14 @@ Налаштування Деталі Надіслати + Сортувати + Сортувати за + + А-Я + Новіші-Старіші + + Основне Більше Облікові записи @@ -49,6 +57,7 @@ Не отримано даних. Нічого завантажувати. %1$s не може отримати доступ до спільного контенту Завантаження + секунди тому Тут нічого немає. Відвантажте що-небудь! Завантаження... В цій теці немає файлів. @@ -238,6 +247,7 @@ Попередній перегляд зображення Не вдалося показати зображення %1$s неможливо скопіювати до %2$s + Завантажити шлях На жаль, обмін не включений на вашому сервері. Будь ласка, зв\'яжіться з вашим адмінистратором. Неможливо поділитися. Будь ласка, перевірте, чи існує файл Виникла помилка при спробі поділитися файлом або текою @@ -262,6 +272,7 @@ Файл більше не доступний на сервері Облікові записи Додати обліковий запис + Безпечне підключення перенаправляється через незабезпечений маршрут. Журнали Надіслати історію Журнали Android-додатка ownCloud @@ -276,4 +287,6 @@ Файл вже існує в теці призначення Виникла помилка при спробі перемістити файл або теку перемістити цей файл + Миттєво завантаження + Безпека diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml index 1532b7ac..229bdaca 100644 --- a/res/values-ur-rPK/strings.xml +++ b/res/values-ur-rPK/strings.xml @@ -2,11 +2,14 @@ سیٹینگز بھجیں + مزید مدد یوزر نیم پاسورڈ منسلک + سیکنڈز پہلے ڈاؤن لوڈ، اشتراک لنک ہاں diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-uz/strings.xml +++ b/res/values-uz/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 122092d1..52e3c563 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -11,6 +11,8 @@ Cài đặt Chi tiết Gởi + Tổng hợp hơn Tài khoản @@ -43,6 +45,7 @@ Không có nội dung được nhận. Không có gì để tải lên. %1$s không cho phép truy cập vào các nội dung chia sẻ Đang tải lên + vài giây trước Không có gì ở đây .Hãy tải lên một cái gì đó ! Tap vào một tập tin để hiển thị thêm thông tin Kích thước: diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index dd04a1f2..8c647c45 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -11,6 +11,8 @@ 设置 详细信息 发送 + 常规 更多 账号 @@ -50,6 +52,7 @@ 没有接收到内容,无可上传。 %1$s未被允许访问共享内容。 上传 + 秒前 这里还什么都没有。上传些东西吧! 载入中.... 在该文件夹中不存在文件。 @@ -277,4 +280,5 @@ 该文件已经存在在目标文件夹 尝试移动该文件或文件夹时发生错误 移动该文件 + 安全 diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml index bd5f2e13..b2731798 100644 --- a/res/values-zh-rHK/strings.xml +++ b/res/values-zh-rHK/strings.xml @@ -7,6 +7,8 @@ 新資料夾 設定 傳送 + 一般 更多 帳號 @@ -23,6 +25,7 @@ 設定 退出 正在上戴 + 秒前 按一下文件顯示更多資料。 大小: 類別: diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index aca365e0..8dc73b02 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -11,6 +11,14 @@ 設定 詳細資料 寄出 + 排序 + 排序依照 + + A-Z + 最新 - 最舊 + + 一般 更多 帳號 @@ -30,7 +38,10 @@ 推薦給朋友 反饋 法律聲明 + 記住分享位置 + 記住上次分享上傳位置 在您的手機中試用%1$s! + 我想邀請您在您的手機上使用 %1$s ! 可以由這兒下載: %2$s 檢查伺服器 伺服器位址 https://... 使用者名稱 @@ -48,7 +59,10 @@ 沒接到任何內容。沒有什麼可上載。 %1$s 並沒有被允許存取分享的內容 上傳中 + 幾秒前 這裡還沒有東西,上傳一些吧! + 載入中… + 這個目錄中沒有任何檔案. 在檔案上輕觸來顯示更多資訊。 容量: 類型: @@ -92,6 +106,7 @@ 下傳失敗, 您需要重新登入 選擇帳號 同步失敗 + 同步作業失敗, 您需要重新登入 同步 %1$s 未完成 無效的密碼 %1$s 出現衝突 @@ -100,12 +115,14 @@ %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$s 不存在 移動全部 所有文件已被移動 部份文件無法被移動 本地: %1$s 遠端: %1$s + 無足夠的空間可以複製檔案到 %1$s 目錄. 是否使用移動的方式來處理? 請輸入您的 App 密碼 輸入您的 App 密碼 這個密碼在你每次啟動這程式時都會被要求輸入 @@ -232,9 +249,12 @@ 圖片預覽 無法顯示圖片 %1$s 無法被複製到本地目錄 %2$s + 上傳目錄 很抱歉, 您的伺服器並未開啟分享的功能. 請聯絡您的 伺服器管理員. + 無法分享這個檔案或目錄. 請檢查它們是否存在 在分享檔案或目錄時發生了錯誤 + 無法取消分享這個檔案或目錄. 請檢查它們是否存在 在取消分享檔案或目錄時發生了錯誤 寄出 複製連結 @@ -245,8 +265,31 @@ 在等待伺服器回應時發生了錯誤, 這個操作將無法被完成 這個操作無法完成, 無法使用伺服器 + 您沒有權限 %s + 重新命名檔案 + 刪除檔案 + 分享檔案 + 取消分享檔案 + 建立檔案 + 上傳這個目錄 + 這個檔案已經不存在於伺服器中 帳號 + 新增帳號 + 安全連線被轉向到一個非安全的連線 + 紀錄 + 傳送歷史記錄 + ownCloud Android 應用程式記錄 + 資料載入中... 必須驗證 密碼錯誤 + 移動 + 找不到任何檔案. 你可以新增一個目錄! 選擇 + 無法搬移. 請檢查該檔案是否存在 + 把一個目錄搬移到其底下的子目錄是不可能的 + 這個檔案已經存在於目的目錄中 + 在移動檔案或目錄時發生了錯誤 + 移動這個檔案 + 即時上傳 + 安全性 diff --git a/res/values/dims.xml b/res/values/dims.xml new file mode 100644 index 00000000..d433cba3 --- /dev/null +++ b/res/values/dims.xml @@ -0,0 +1,21 @@ + + + + 32dp + diff --git a/res/values/strings.xml b/res/values/strings.xml index 389db1da..d8f1e930 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -12,6 +12,14 @@ Settings Details Send + Sort + Sort by + + A-Z + Newest - Oldest + + General More Accounts @@ -31,7 +39,9 @@ Recommend to a friend Feedback Imprint - + Remember share location + Remember last share upload location + "Try %1$s on your smartphone!" "I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s" @@ -52,6 +62,7 @@ No content was received. Nothing to upload. %1$s is not allowed to access the shared content Uploading + seconds ago Nothing in here. Upload something! Loading... There are no files in this folder. @@ -271,6 +282,7 @@ An error occurred while waiting for the server, the operation couldn\'t have been done An error occurred while waiting for the server, the operation couldn\'t have been done The operation couldn\'t be completed, server is unavailable + You do not have permission %s @@ -305,5 +317,4 @@ Instant Uploads Security - diff --git a/src/com/owncloud/android/MainApp.java b/src/com/owncloud/android/MainApp.java index e04239df..c2a4c68b 100644 --- a/src/com/owncloud/android/MainApp.java +++ b/src/com/owncloud/android/MainApp.java @@ -55,7 +55,7 @@ public class MainApp extends Application { } else { OwnCloudClientManagerFactory.setDefaultPolicy(Policy.ALWAYS_NEW_CLIENT); } - + // initialise thumbnails cache on background thread new ThumbnailsCacheManager.InitDiskCacheTask().execute(); diff --git a/src/com/owncloud/android/authentication/AuthenticatorActivity.java b/src/com/owncloud/android/authentication/AuthenticatorActivity.java index 97dcfde8..0f7892ee 100644 --- a/src/com/owncloud/android/authentication/AuthenticatorActivity.java +++ b/src/com/owncloud/android/authentication/AuthenticatorActivity.java @@ -85,6 +85,7 @@ import com.owncloud.android.ui.dialog.IndeterminateProgressDialog; import com.owncloud.android.ui.dialog.SamlWebViewDialog; import com.owncloud.android.ui.dialog.SslUntrustedCertDialog; import com.owncloud.android.ui.dialog.SslUntrustedCertDialog.OnSslUntrustedCertListener; +import com.owncloud.android.utils.DisplayUtils; /** * This Activity is used to add an ownCloud account to the App @@ -356,7 +357,8 @@ SsoWebViewClientListener, OnSslUntrustedCertListener { /// step 2 - set properties of UI elements (text, visibility, enabled...) mHostUrlInput = (EditText) findViewById(R.id.hostUrlInput); - mHostUrlInput.setText(mServerInfo.mBaseUrl); + // Convert IDN to Unicode + mHostUrlInput.setText(DisplayUtils.convertIdn(mServerInfo.mBaseUrl, false)); if (mAction != ACTION_CREATE) { /// lock things that should not change mHostUrlInput.setEnabled(false); @@ -737,6 +739,8 @@ SsoWebViewClientListener, OnSslUntrustedCertListener { showRefreshButton(false); if (uri.length() != 0) { + // Handle internationalized domain names + uri = DisplayUtils.convertIdn(uri, true); mServerStatusText = R.string.auth_testing_connection; mServerStatusIcon = R.drawable.progress_small; showServerStatus(); diff --git a/src/com/owncloud/android/datamodel/FileDataStorageManager.java b/src/com/owncloud/android/datamodel/FileDataStorageManager.java index 5b1bef1b..41a51063 100644 --- a/src/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/src/com/owncloud/android/datamodel/FileDataStorageManager.java @@ -300,6 +300,7 @@ public class FileDataStorageManager { cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink()); cv.put(ProviderTableMeta.FILE_PERMISSIONS, file.getPermissions()); cv.put(ProviderTableMeta.FILE_REMOTE_ID, file.getRemoteId()); + cv.put(ProviderTableMeta.FILE_UPDATE_THUMBNAIL, file.needsUpdateThumbnail()); boolean existsByPath = fileExists(file.getRemotePath()); if (existsByPath || fileExists(file.getFileId())) { diff --git a/src/com/owncloud/android/datamodel/OCFile.java b/src/com/owncloud/android/datamodel/OCFile.java index c3284fc0..392d03bc 100644 --- a/src/com/owncloud/android/datamodel/OCFile.java +++ b/src/com/owncloud/android/datamodel/OCFile.java @@ -21,7 +21,7 @@ package com.owncloud.android.datamodel; import java.io.File; import com.owncloud.android.lib.common.utils.Log_OC; - +import third_parties.daveKoeller.AlphanumComparator; import android.os.Parcel; import android.os.Parcelable; @@ -460,7 +460,7 @@ public class OCFile implements Parcelable, Comparable { } else if (another.isFolder()) { return 1; } - return getRemotePath().toLowerCase().compareTo(another.getRemotePath().toLowerCase()); + return new AlphanumComparator().compare(this, another); } @Override diff --git a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java index e75404ef..1d2cda8c 100644 --- a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java +++ b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java @@ -20,19 +20,30 @@ package com.owncloud.android.datamodel; import java.io.File; import java.lang.ref.WeakReference; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.GetMethod; + +import android.accounts.Account; +import android.accounts.AccountManager; import android.content.res.Resources; import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.graphics.Bitmap.CompressFormat; +import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.ThumbnailUtils; +import android.net.Uri; import android.os.AsyncTask; -import android.util.TypedValue; import android.widget.ImageView; import com.owncloud.android.MainApp; +import com.owncloud.android.R; +import com.owncloud.android.lib.common.OwnCloudAccount; +import com.owncloud.android.lib.common.OwnCloudClient; +import com.owncloud.android.lib.common.OwnCloudClientManagerFactory; +import com.owncloud.android.lib.common.accounts.AccountUtils.Constants; import com.owncloud.android.lib.common.utils.Log_OC; +import com.owncloud.android.lib.resources.status.OwnCloudVersion; import com.owncloud.android.ui.adapter.DiskLruImageCache; import com.owncloud.android.utils.BitmapUtils; import com.owncloud.android.utils.DisplayUtils; @@ -47,7 +58,8 @@ public class ThumbnailsCacheManager { private static final String TAG = ThumbnailsCacheManager.class.getSimpleName(); - private static final String CACHE_FOLDER = "thumbnailCache"; + private static final String CACHE_FOLDER = "thumbnailCache"; + private static final String MINOR_SERVER_VERSION_FOR_THUMBS = "7.8.0"; private static final Object mThumbnailsDiskCacheLock = new Object(); private static DiskLruImageCache mThumbnailCache = null; @@ -56,7 +68,9 @@ public class ThumbnailsCacheManager { private static final int DISK_CACHE_SIZE = 1024 * 1024 * 10; // 10MB private static final CompressFormat mCompressFormat = CompressFormat.JPEG; private static final int mCompressQuality = 70; - + private static OwnCloudClient mClient = null; + private static String mServerVersion = null; + public static Bitmap mDefaultImg = BitmapFactory.decodeResource( MainApp.getAppContext().getResources(), @@ -65,10 +79,12 @@ public class ThumbnailsCacheManager { public static class InitDiskCacheTask extends AsyncTask { + @Override protected Void doInBackground(File... params) { synchronized (mThumbnailsDiskCacheLock) { mThumbnailCacheStarting = true; + if (mThumbnailCache == null) { try { // Check if media is mounted or storage is built-in, if so, @@ -153,15 +169,17 @@ public class ThumbnailsCacheManager { public static class ThumbnailGenerationTask extends AsyncTask { private final WeakReference mImageViewReference; + private static Account mAccount; private OCFile mFile; private FileDataStorageManager mStorageManager; - public ThumbnailGenerationTask(ImageView imageView, FileDataStorageManager storageManager) { + public ThumbnailGenerationTask(ImageView imageView, FileDataStorageManager storageManager, Account account) { // Use a WeakReference to ensure the ImageView can be garbage collected mImageViewReference = new WeakReference(imageView); if (storageManager == null) throw new IllegalArgumentException("storageManager must not be NULL"); mStorageManager = storageManager; + mAccount = account; } // Decode image in background. @@ -170,6 +188,15 @@ public class ThumbnailsCacheManager { Bitmap thumbnail = null; try { + if (mAccount != null) { + AccountManager accountMgr = AccountManager.get(MainApp.getAppContext()); + + mServerVersion = accountMgr.getUserData(mAccount, Constants.KEY_OC_VERSION); + OwnCloudAccount ocAccount = new OwnCloudAccount(mAccount, MainApp.getAppContext()); + mClient = OwnCloudClientManagerFactory.getDefaultSingleton(). + getClientFor(ocAccount, MainApp.getAppContext()); + } + mFile = params[0]; final String imageKey = String.valueOf(mFile.getRemoteId()); @@ -180,9 +207,8 @@ public class ThumbnailsCacheManager { if (thumbnail == null || mFile.needsUpdateThumbnail()) { // Converts dp to pixel Resources r = MainApp.getAppContext().getResources(); - int px = (int) Math.round(TypedValue.applyDimension( - TypedValue.COMPLEX_UNIT_DIP, 150, r.getDisplayMetrics() - )); + + int px = (int) Math.round(r.getDimension(R.dimen.file_icon_size)); if (mFile.isDown()){ Bitmap bitmap = BitmapUtils.decodeSampledBitmapFromFile( @@ -198,6 +224,36 @@ public class ThumbnailsCacheManager { mStorageManager.saveFile(mFile); } + } else { + // Download thumbnail from server + if (mClient != null && mServerVersion != null) { + OwnCloudVersion serverOCVersion = new OwnCloudVersion(mServerVersion); + if (serverOCVersion.compareTo(new OwnCloudVersion(MINOR_SERVER_VERSION_FOR_THUMBS)) >= 0) { + try { + int status = -1; + + String uri = mClient.getBaseUri() + "/index.php/apps/files/api/v1/thumbnail/" + + px + "/" + px + Uri.encode(mFile.getRemotePath(), "/"); + Log_OC.d("Thumbnail", "URI: " + uri); + GetMethod get = new GetMethod(uri); + status = mClient.executeMethod(get); + if (status == HttpStatus.SC_OK) { + byte[] bytes = get.getResponseBody(); + Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length); + thumbnail = ThumbnailUtils.extractThumbnail(bitmap, px, px); + + // Add thumbnail to cache + if (thumbnail != null) { + addBitmapToCache(imageKey, thumbnail); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } else { + Log_OC.d(TAG, "Server too old"); + } + } } } diff --git a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java index 455ff63d..d61e6784 100644 --- a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java +++ b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java @@ -33,6 +33,7 @@ import org.apache.http.HttpStatus; import android.accounts.Account; import android.content.Context; import android.content.Intent; +import android.util.Log; //import android.support.v4.content.LocalBroadcastManager; import com.owncloud.android.datamodel.FileDataStorageManager; @@ -121,14 +122,14 @@ public class SynchronizeFolderOperation extends RemoteOperation { /** * Creates a new instance of {@link SynchronizeFolderOperation}. * - * @param remoteFolderPath Remote folder to synchronize. + * @param folder Folder to synchronize. * @param currentSyncTime Time stamp for the synchronization process in progress. - * @param localFolderId Identifier in the local database of the folder - * to synchronize. - * @param updateFolderProperties 'True' means that the properties of the folder should - * be updated also, not just its content. * @param syncFullAccount 'True' means that this operation is part of a full account * synchronization. + * @param isShareSupported 'True' means that the server supports the sharing API. + * @param ignoreEtag 'True' means that the content of the remote folder should + * be fetched and updated even though the 'eTag' did not + * change. * @param dataStorageManager Interface with the local database. * @param account ownCloud account where the folder is located. * @param context Application context. @@ -325,7 +326,7 @@ public class SynchronizeFolderOperation extends RemoteOperation { private void synchronizeData(ArrayList folderAndFiles, OwnCloudClient client) { // get 'fresh data' from the database mLocalFolder = mStorageManager.getFileByPath(mLocalFolder.getRemotePath()); - + // parse data from remote folder OCFile remoteFolder = fillOCFile((RemoteFile)folderAndFiles.get(0)); remoteFolder.setParentId(mLocalFolder.getParentId()); @@ -372,6 +373,10 @@ public class SynchronizeFolderOperation extends RemoteOperation { if (remoteFile.isFolder()) { remoteFile.setFileLength(localFile.getFileLength()); // TODO move operations about size of folders to FileContentProvider + } else if (mRemoteFolderChanged && remoteFile.isImage() && + remoteFile.getModificationTimestamp() != localFile.getModificationTimestamp()) { + remoteFile.setNeedsUpdateThumbnail(true); + Log.d(TAG, "Image " + remoteFile.getFileName() + " updated on the server"); } remoteFile.setPublicLink(localFile.getPublicLink()); remoteFile.setShareByLink(localFile.isShareByLink()); diff --git a/src/com/owncloud/android/syncadapter/FileSyncAdapter.java b/src/com/owncloud/android/syncadapter/FileSyncAdapter.java index b095981e..33e24003 100644 --- a/src/com/owncloud/android/syncadapter/FileSyncAdapter.java +++ b/src/com/owncloud/android/syncadapter/FileSyncAdapter.java @@ -264,7 +264,7 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter { mCurrentSyncTime, true, mIsShareSupported, - true, + false, getStorageManager(), getAccount(), getContext() diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 21472fd1..b5d543a4 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -48,7 +48,6 @@ import android.provider.MediaStore; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; -import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; @@ -89,6 +88,7 @@ import com.owncloud.android.operations.SynchronizeFolderOperation; import com.owncloud.android.operations.UnshareLinkOperation; import com.owncloud.android.services.observer.FileObserverService; import com.owncloud.android.syncadapter.FileSyncAdapter; +import com.owncloud.android.ui.adapter.FileListListAdapter; import com.owncloud.android.ui.dialog.CreateFolderDialogFragment; import com.owncloud.android.ui.dialog.SslUntrustedCertDialog; import com.owncloud.android.ui.dialog.SslUntrustedCertDialog.OnSslUntrustedCertListener; @@ -151,7 +151,7 @@ OnSslUntrustedCertListener, OnEnforceableRefreshListener { private String DIALOG_UNTRUSTED_CERT; private OCFile mWaitingToSend; - + @Override protected void onCreate(Bundle savedInstanceState) { Log_OC.d(TAG, "onCreate() start"); @@ -504,6 +504,40 @@ OnSslUntrustedCertListener, OnEnforceableRefreshListener { } break; } + case R.id.action_sort: { + SharedPreferences appPreferences = PreferenceManager + .getDefaultSharedPreferences(this); + + // Read sorting order, default to sort by name ascending + Integer sortOrder = appPreferences + .getInt("sortOrder", FileListListAdapter.SORT_NAME); + + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.actionbar_sort_title) + .setSingleChoiceItems(R.array.actionbar_sortby, sortOrder , new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + + switch (which){ + case 0: + sortByName(true); + break; + case 1: + sortByDate(false); + break; + +// TODO re-enable when server-side folder size calculation is available +// case 2: +// sortBySize(false); +// break; + } + + dialog.dismiss(); + + } + }); + builder.create().show(); + break; + } default: retval = super.onOptionsItemSelected(item); } @@ -1748,4 +1782,16 @@ OnSslUntrustedCertListener, OnEnforceableRefreshListener { } } } + + private void sortByDate(boolean ascending){ + getListOfFilesFragment().sortByDate(ascending); + } + + private void sortBySize(boolean ascending){ + getListOfFilesFragment().sortBySize(ascending); + } + + private void sortByName(boolean ascending){ + getListOfFilesFragment().sortByName(ascending); + } } diff --git a/src/com/owncloud/android/ui/activity/Preferences.java b/src/com/owncloud/android/ui/activity/Preferences.java index d078b1e2..20330931 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -104,7 +104,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa if (obj != null && obj instanceof LongClickableCheckBoxPreference) { mShowContextMenu = true; - mAccountName = obj.toString(); + mAccountName = ((LongClickableCheckBoxPreference) obj).getKey(); Preferences.this.openContextMenu(listView); @@ -406,7 +406,8 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa for (Account a : accounts) { LongClickableCheckBoxPreference accountPreference = new LongClickableCheckBoxPreference(this); accountPreference.setKey(a.name); - accountPreference.setTitle(a.name); + // Handle internationalized domain names + accountPreference.setTitle(DisplayUtils.convertIdn(a.name, false)); mAccountsPrefCategory.addPreference(accountPreference); // Check the current account that is being used diff --git a/src/com/owncloud/android/ui/activity/UploadFilesActivity.java b/src/com/owncloud/android/ui/activity/UploadFilesActivity.java index 09185726..83e7bc07 100644 --- a/src/com/owncloud/android/ui/activity/UploadFilesActivity.java +++ b/src/com/owncloud/android/ui/activity/UploadFilesActivity.java @@ -34,6 +34,9 @@ import android.widget.TextView; import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.ActionBar.OnNavigationListener; +import com.actionbarsherlock.internal.view.menu.ActionMenuItemView; +import com.actionbarsherlock.view.Menu; +import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; import com.owncloud.android.R; import com.owncloud.android.lib.common.utils.Log_OC; @@ -73,6 +76,8 @@ public class UploadFilesActivity extends FileActivity implements private static final String WAIT_DIALOG_TAG = "WAIT"; private static final String QUERY_TO_MOVE_DIALOG_TAG = "QUERY_TO_MOVE"; + private boolean selectAllToggled = false; + private Menu menu; @Override public void onCreate(Bundle savedInstanceState) { @@ -119,6 +124,7 @@ public class UploadFilesActivity extends FileActivity implements actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); actionBar.setListNavigationCallbacks(mDirectories, this); + // wait dialog if (mCurrentDialog != null) { mCurrentDialog.dismiss(); @@ -127,8 +133,15 @@ public class UploadFilesActivity extends FileActivity implements Log_OC.d(TAG, "onCreate() end"); } - - + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu items for use in the action bar + MenuInflater inflater = getSherlock().getMenuInflater(); + inflater.inflate(R.menu.file_select_all, menu); + this.menu = menu; + return true; + } + @Override public boolean onOptionsItemSelected(MenuItem item) { boolean retval = true; @@ -139,12 +152,33 @@ public class UploadFilesActivity extends FileActivity implements } break; } + case R.id.actionbar_select_all:{ + if(selectAllToggled){ + toggleOffSelectAll(); + }else{ + toggleOnSelectAll(item); + } + break; + } default: retval = super.onOptionsItemSelected(item); } return retval; } - + public void toggleOffSelectAll(MenuItem item){ + selectAllToggled = false; + item.setIcon(android.R.drawable.checkbox_off_background); + mFileListFragment.deselectAll(); + } + public void toggleOffSelectAll(){ + MenuItem item = menu.findItem(R.id.actionbar_select_all); + toggleOffSelectAll(item); + } + public void toggleOnSelectAll(MenuItem item){ + selectAllToggled = true; + item.setIcon(android.R.drawable.checkbox_on_background); + mFileListFragment.selectAll(); + } @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { @@ -175,6 +209,7 @@ public class UploadFilesActivity extends FileActivity implements ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(false); } + toggleOffSelectAll(); } @@ -242,10 +277,11 @@ public class UploadFilesActivity extends FileActivity implements * {@inheritDoc} */ @Override - public void onDirectoryClick(File directory) { + public void onDirectoryClick(File directory) { pushDirname(directory); ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); + toggleOffSelectAll(); } diff --git a/src/com/owncloud/android/ui/activity/Uploader.java b/src/com/owncloud/android/ui/activity/Uploader.java index 62ad44a4..66359f3d 100644 --- a/src/com/owncloud/android/ui/activity/Uploader.java +++ b/src/com/owncloud/android/ui/activity/Uploader.java @@ -39,22 +39,22 @@ import android.accounts.AccountManager; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.Dialog; -import android.app.ListActivity; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.DialogInterface.OnClickListener; import android.content.Intent; +import android.content.SharedPreferences; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.os.Parcelable; +import android.preference.PreferenceManager; import android.provider.MediaStore.Audio; import android.provider.MediaStore.Images; import android.provider.MediaStore.Video; import android.view.View; -import android.view.Window; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; @@ -62,6 +62,10 @@ import android.widget.EditText; import android.widget.SimpleAdapter; import android.widget.Toast; +import com.actionbarsherlock.app.ActionBar; +import com.actionbarsherlock.app.SherlockListActivity; +import com.actionbarsherlock.view.MenuItem; +import com.owncloud.android.utils.DisplayUtils; /** * This can be used to upload things to an ownCloud instance. @@ -69,7 +73,7 @@ import android.widget.Toast; * @author Bartek Przybylski * */ -public class Uploader extends ListActivity implements OnItemClickListener, android.view.View.OnClickListener { +public class Uploader extends SherlockListActivity implements OnItemClickListener, android.view.View.OnClickListener { private static final String TAG = "ownCloudUploader"; private Account mAccount; @@ -91,9 +95,11 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - getWindow().requestFeature(Window.FEATURE_NO_TITLE); mParents = new Stack(); - mParents.add(""); + + ActionBar actionBar = getSupportActionBar(); + actionBar.setIcon(DisplayUtils.getSeasonalIconId()); + if (prepareStreamsToUpload()) { mAccountManager = (AccountManager) getSystemService(Context.ACCOUNT_SERVICE); Account[] accounts = mAccountManager.getAccountsByType(MainApp.getAccountType()); @@ -106,8 +112,11 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro } else { mAccount = accounts[0]; mStorageManager = new FileDataStorageManager(mAccount, getContentResolver()); + initTargetFolder(); populateDirectoryList(); + } + } else { showDialog(DIALOG_NO_STREAM); } @@ -169,6 +178,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro public void onClick(DialogInterface dialog, int which) { mAccount = mAccountManager.getAccountsByType(MainApp.getAccountType())[which]; mStorageManager = new FileDataStorageManager(mAccount, getContentResolver()); + initTargetFolder(); populateDirectoryList(); } }); @@ -288,12 +298,22 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro private void populateDirectoryList() { setContentView(R.layout.uploader_layout); - String full_path = ""; - for (String a : mParents) - full_path += a + "/"; + String current_dir = mParents.peek(); + if(current_dir.equals("")){ + getSupportActionBar().setTitle(getString(R.string.default_display_name_for_root_folder)); + } + else{ + getSupportActionBar().setTitle(current_dir); + } + boolean notRoot = (mParents.size() > 1); + ActionBar actionBar = getSupportActionBar(); + actionBar.setDisplayHomeAsUpEnabled(notRoot); + actionBar.setHomeButtonEnabled(notRoot); + + String full_path = generatePath(mParents); Log_OC.d(TAG, "Populating view with content of : " + full_path); - + mFile = mStorageManager.getFileByPath(full_path); if (mFile != null) { Vector files = mStorageManager.getFolderContent(mFile); @@ -317,6 +337,14 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro } } + private String generatePath(Stack dirs) { + String full_path = ""; + + for (String a : dirs) + full_path += a + "/"; + return full_path; + } + private boolean prepareStreamsToUpload() { if (getIntent().getAction().equals(Intent.ACTION_SEND)) { mStreamsToUpload = new ArrayList(); @@ -408,6 +436,13 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro intent.putExtra(FileUploader.KEY_REMOTE_FILE, remote.toArray(new String[remote.size()])); intent.putExtra(FileUploader.KEY_ACCOUNT, mAccount); startService(intent); + + //Save the path to shared preferences + SharedPreferences.Editor appPrefs = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()).edit(); + appPrefs.putString("last_upload_path", mUploadPath); + appPrefs.apply(); + finish(); } @@ -416,5 +451,52 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro Toast.makeText(this, message, Toast.LENGTH_LONG).show(); } } + + /** + * Loads the target folder initialize shown to the user. + * + * The target account has to be chosen before this method is called. + */ + private void initTargetFolder() { + if (mStorageManager == null) { + throw new IllegalStateException("Do not call this method before initializing mStorageManager"); + } + + SharedPreferences appPreferences = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()); + + String last_path = appPreferences.getString("last_upload_path", ""); + // "/" equals root-directory + if(last_path.equals("/")) { + mParents.add(""); + } + else{ + String[] dir_names = last_path.split("/"); + for (String dir : dir_names) + mParents.add(dir); + } + //Make sure that path still exists, if it doesn't pop the stack and try the previous path + while(!mStorageManager.fileExists(generatePath(mParents)) && mParents.size() > 1){ + mParents.pop(); + } + } + + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + boolean retval = true; + switch (item.getItemId()) { + case android.R.id.home: { + if((mParents.size() > 1)) { + onBackPressed(); + } + break; + } + default: + retval = super.onOptionsItemSelected(item); + } + return retval; + } + } diff --git a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java index 0d10e7fa..10356320 100644 --- a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java +++ b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java @@ -17,11 +17,19 @@ */ package com.owncloud.android.ui.adapter; + +import java.io.File; +import java.util.Collections; +import java.util.Comparator; import java.util.Vector; +import third_parties.daveKoeller.AlphanumComparator; import android.accounts.Account; import android.content.Context; +import android.content.SharedPreferences; import android.graphics.Bitmap; +import android.preference.PreferenceManager; +import android.text.format.DateUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -39,9 +47,11 @@ import com.owncloud.android.datamodel.ThumbnailsCacheManager; import com.owncloud.android.datamodel.ThumbnailsCacheManager.AsyncDrawable; import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; +import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.ui.activity.ComponentsGetter; import com.owncloud.android.utils.DisplayUtils; - +import com.owncloud.android.utils.FileStorageUtils; + /** * This Adapter populates a ListView with all files and folders in an ownCloud @@ -51,7 +61,7 @@ import com.owncloud.android.utils.DisplayUtils; * @author Tobias Kaminsky * @author David A. Velasco */ -public class FileListListAdapter extends BaseAdapter implements ListAdapter { +public class FileListListAdapter extends BaseAdapter implements ListAdapter { private final static String PERMISSION_SHARED_WITH_ME = "S"; private Context mContext; @@ -62,22 +72,38 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { private FileDataStorageManager mStorageManager; private Account mAccount; private ComponentsGetter mTransferServiceGetter; + private Integer mSortOrder; + public static final Integer SORT_NAME = 0; + public static final Integer SORT_DATE = 1; + public static final Integer SORT_SIZE = 2; + private Boolean mSortAscending; + private SharedPreferences mAppPreferences; public FileListListAdapter( boolean justFolders, Context context, ComponentsGetter transferServiceGetter ) { - + mJustFolders = justFolders; mContext = context; mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext); - mTransferServiceGetter = transferServiceGetter; + + mTransferServiceGetter = transferServiceGetter; + + mAppPreferences = PreferenceManager + .getDefaultSharedPreferences(mContext); + + // Read sorting order, default to sort by name ascending + mSortOrder = mAppPreferences + .getInt("sortOrder", 0); + mSortAscending = mAppPreferences.getBoolean("sortAscending", true); // initialise thumbnails cache on background thread new ThumbnailsCacheManager.InitDiskCacheTask().execute(); + } - + @Override public boolean areAllItemsEnabled() { return true; @@ -159,9 +185,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { fileSizeV.setVisibility(View.VISIBLE); fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.getFileLength())); lastModV.setVisibility(View.VISIBLE); - lastModV.setText( - DisplayUtils.unixTimeToHumanReadable(file.getModificationTimestamp()) - ); + lastModV.setText(showRelativeTimestamp(file)); // this if-else is needed even thoe fav icon is visible by default // because android reuses views in listview if (!file.keepInSync()) { @@ -195,7 +219,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { if (ThumbnailsCacheManager.cancelPotentialWork(file, fileIcon)) { final ThumbnailsCacheManager.ThumbnailGenerationTask task = new ThumbnailsCacheManager.ThumbnailGenerationTask( - fileIcon, mStorageManager + fileIcon, mStorageManager, mAccount ); if (thumbnail == null) { thumbnail = ThumbnailsCacheManager.mDefaultImg; @@ -220,12 +244,16 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { } } else { - fileSizeV.setVisibility(View.INVISIBLE); - //fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.getFileLength())); + // TODO Re-enable when server supports folder-size calculation +// if (FileStorageUtils.getDefaultSavePathFor(mAccount.name, file) != null){ +// fileSizeV.setVisibility(View.VISIBLE); +// fileSizeV.setText(getFolderSizeHuman(FileStorageUtils.getDefaultSavePathFor(mAccount.name, file))); +// } else { + fileSizeV.setVisibility(View.INVISIBLE); +// } + lastModV.setVisibility(View.VISIBLE); - lastModV.setText( - DisplayUtils.unixTimeToHumanReadable(file.getModificationTimestamp()) - ); + lastModV.setText(showRelativeTimestamp(file)); checkBoxV.setVisibility(View.GONE); view.findViewById(R.id.imageView3).setVisibility(View.GONE); @@ -254,7 +282,47 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { return view; } - + + /** + * Local Folder size in human readable format + * + * @param path + * String + * @return Size in human readable format + */ + private String getFolderSizeHuman(String path) { + + File dir = new File(path); + + if (dir.exists()) { + long bytes = getFolderSize(dir); + return DisplayUtils.bytesToHumanReadable(bytes); + } + + return "0 B"; + } + + /** + * Local Folder size + * @param dir File + * @return Size in bytes + */ + private long getFolderSize(File dir) { + if (dir.exists()) { + long result = 0; + File[] fileList = dir.listFiles(); + for(int i = 0; i < fileList.length; i++) { + if(fileList[i].isDirectory()) { + result += getFolderSize(fileList[i]); + } else { + result += fileList[i].length(); + } + } + return result; + } + return 0; + } + @Override public int getViewTypeCount() { return 1; @@ -291,6 +359,26 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { } else { mFiles = null; } + + sortDirectory(); + } + + /** + * Sorts all filenames, regarding last user decision + */ + private void sortDirectory(){ + switch (mSortOrder){ + case 0: + sortByName(mSortAscending); + break; + case 1: + sortByDate(mSortAscending); + break; + case 2: + sortBySize(mSortAscending); + break; + } + notifyDataSetChanged(); } @@ -326,4 +414,111 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { && file.getPermissions() != null && file.getPermissions().contains(PERMISSION_SHARED_WITH_ME)); } + + /** + * Sorts list by Date + * @param sortAscending true: ascending, false: descending + */ + private void sortByDate(boolean sortAscending){ + final Integer val; + if (sortAscending){ + val = 1; + } else { + val = -1; + } + + Collections.sort(mFiles, new Comparator() { + public int compare(OCFile o1, OCFile o2) { + if (o1.isFolder() && o2.isFolder()) { + Long obj1 = o1.getModificationTimestamp(); + return val * obj1.compareTo(o2.getModificationTimestamp()); + } + else if (o1.isFolder()) { + return -1; + } else if (o2.isFolder()) { + return 1; + } else if (o1.getModificationTimestamp() == 0 || o2.getModificationTimestamp() == 0){ + return 0; + } else { + Long obj1 = o1.getModificationTimestamp(); + return val * obj1.compareTo(o2.getModificationTimestamp()); + } + } + }); + } + + /** + * Sorts list by Size + * @param sortAscending true: ascending, false: descending + */ + private void sortBySize(boolean sortAscending){ + final Integer val; + if (sortAscending){ + val = 1; + } else { + val = -1; + } + + Collections.sort(mFiles, new Comparator() { + public int compare(OCFile o1, OCFile o2) { + if (o1.isFolder() && o2.isFolder()) { + Long obj1 = getFolderSize(new File(FileStorageUtils.getDefaultSavePathFor(mAccount.name, o1))); + return val * obj1.compareTo(getFolderSize(new File(FileStorageUtils.getDefaultSavePathFor(mAccount.name, o2)))); + } + else if (o1.isFolder()) { + return -1; + } else if (o2.isFolder()) { + return 1; + } else if (o1.getFileLength() == 0 || o2.getFileLength() == 0){ + return 0; + } else { + Long obj1 = o1.getFileLength(); + return val * obj1.compareTo(o2.getFileLength()); + } + } + }); + } + + /** + * Sorts list by Name + * @param sortAscending true: ascending, false: descending + */ + private void sortByName(boolean sortAscending){ + final Integer val; + if (sortAscending){ + val = 1; + } else { + val = -1; + } + + Collections.sort(mFiles, new Comparator() { + public int compare(OCFile o1, OCFile o2) { + if (o1.isFolder() && o2.isFolder()) { + return val * o1.getRemotePath().toLowerCase().compareTo(o2.getRemotePath().toLowerCase()); + } else if (o1.isFolder()) { + return -1; + } else if (o2.isFolder()) { + return 1; + } + return val * new AlphanumComparator().compare(o1, o2); + } + }); + } + + public void setSortOrder(Integer order, boolean ascending) { + SharedPreferences.Editor editor = mAppPreferences.edit(); + editor.putInt("sortOrder", order); + editor.putBoolean("sortAscending", ascending); + editor.commit(); + + mSortOrder = order; + mSortAscending = ascending; + + sortDirectory(); + } + + private CharSequence showRelativeTimestamp(OCFile file){ + return DisplayUtils.getRelativeDateTimeString(mContext, file.getModificationTimestamp(), + DateUtils.SECOND_IN_MILLIS, DateUtils.WEEK_IN_MILLIS, 0); + } } diff --git a/src/com/owncloud/android/ui/fragment/LocalFileListFragment.java b/src/com/owncloud/android/ui/fragment/LocalFileListFragment.java index a9b6ad2c..62b41a3e 100644 --- a/src/com/owncloud/android/ui/fragment/LocalFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/LocalFileListFragment.java @@ -18,6 +18,7 @@ package com.owncloud.android.ui.fragment; import java.io.File; +import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; @@ -97,13 +98,33 @@ public class LocalFileListFragment extends ExtendedListFragment { Log_OC.i(TAG, "onActivityCreated() stop"); } + public void selectAll(){ + int numberOfFiles = mAdapter.getCount(); + for(int i = 0; i < numberOfFiles; i++){ + File file = (File) mAdapter.getItem(i); + if (file != null) { + if (!file.isDirectory()) { + /// Click on a file + getListView().setItemChecked(i, true); + // notify the change to the container Activity + mContainerActivity.onFileClick(file); + } + } + } + } + + public void deselectAll(){ + mAdapter = new LocalFileListAdapter(mContainerActivity.getInitialDirectory(), getActivity()); + setListAdapter(mAdapter); + } /** * Checks the file clicked over. Browses inside if it is a directory. Notifies the container activity in any case. */ @Override public void onItemClick(AdapterView l, View v, int position, long id) { - File file = (File) mAdapter.getItem(position); + File file = (File) mAdapter.getItem(position); + if (file != null) { /// Click on a directory if (file.isDirectory()) { @@ -209,16 +230,18 @@ public class LocalFileListFragment extends ExtendedListFragment { * @return File paths to the files checked by the user. */ public String[] getCheckedFilePaths() { - String [] result = null; + ArrayList result = new ArrayList(); SparseBooleanArray positions = mList.getCheckedItemPositions(); if (positions.size() > 0) { - Log_OC.d(TAG, "Returning " + positions.size() + " selected files"); - result = new String[positions.size()]; - for (int i=0; i= 354) { + if (Calendar.getInstance().get(Calendar.DAY_OF_YEAR) >= 354 && + MainApp.getAppContext().getString(R.string.app_name).equals(OWNCLOUD_APP_NAME)) { return R.drawable.winter_holidays_icon; } else { return R.drawable.icon; } } + + /** + * Converts an internationalized domain name (IDN) in an URL to and from ASCII/Unicode. + * @param url the URL where the domain name should be converted + * @param toASCII if true converts from Unicode to ASCII, if false converts from ASCII to Unicode + * @return the URL containing the converted domain name + */ + @TargetApi(Build.VERSION_CODES.GINGERBREAD) + public static String convertIdn(String url, boolean toASCII) { + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { + // Find host name after '//' or '@' + int hostStart = 0; + if (url.indexOf("//") != -1) { + hostStart = url.indexOf("//") + "//".length(); + } else if (url.indexOf("@") != -1) { + hostStart = url.indexOf("@") + "@".length(); + } + + int hostEnd = url.substring(hostStart).indexOf("/"); + // Handle URL which doesn't have a path (path is implicitly '/') + hostEnd = (hostEnd == -1 ? url.length() : hostStart + hostEnd); + + String host = url.substring(hostStart, hostEnd); + host = (toASCII ? IDN.toASCII(host) : IDN.toUnicode(host)); + + return url.substring(0, hostStart) + host + url.substring(hostEnd); + } else { + return url; + } + } + + public static CharSequence getRelativeDateTimeString(Context c, long time, long minResolution, long transitionResolution, int flags){ + CharSequence dateString = ""; + + // in Future + if (time > System.currentTimeMillis()){ + return DisplayUtils.unixTimeToHumanReadable(time); + } + // < 60 seconds -> seconds ago + else if ((System.currentTimeMillis() - time) < 60 * 1000) { + return c.getString(R.string.file_list_seconds_ago); + } else { + // Workaround 2.x bug (see https://github.com/owncloud/android/issues/716) + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.HONEYCOMB && (System.currentTimeMillis() - time) > 24 * 60 * 60 * 1000){ + Date date = new Date(time); + date.setHours(0); + date.setMinutes(0); + date.setSeconds(0); + dateString = DateUtils.getRelativeDateTimeString(c, date.getTime(), minResolution, transitionResolution, flags); + } else { + dateString = DateUtils.getRelativeDateTimeString(c, time, minResolution, transitionResolution, flags); + } + } + + return dateString.toString().split(",")[0]; + } } diff --git a/src/third_parties/daveKoeller/AlphanumComparator.java b/src/third_parties/daveKoeller/AlphanumComparator.java new file mode 100644 index 00000000..e6bd6f38 --- /dev/null +++ b/src/third_parties/daveKoeller/AlphanumComparator.java @@ -0,0 +1,129 @@ +/* + * The Alphanum Algorithm is an improved sorting algorithm for strings + * containing numbers. Instead of sorting numbers in ASCII order like + * a standard sort, this algorithm sorts numbers in numeric order. + * + * The Alphanum Algorithm is discussed at http://www.DaveKoelle.com + * + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +package third_parties.daveKoeller; +import java.util.Comparator; + +import com.owncloud.android.datamodel.OCFile; + +/** + * This is an updated version with enhancements made by Daniel Migowski, + * Andre Bogus, and David Koelle + * + * To convert to use Templates (Java 1.5+): + * - Change "implements Comparator" to "implements Comparator" + * - Change "compare(Object o1, Object o2)" to "compare(String s1, String s2)" + * - Remove the type checking and casting in compare(). + * + * To use this class: + * Use the static "sort" method from the java.util.Collections class: + * Collections.sort(your list, new AlphanumComparator()); + */ +public class AlphanumComparator implements Comparator +{ + private final boolean isDigit(char ch) + { + return ch >= 48 && ch <= 57; + } + + /** Length of string is passed in for improved efficiency (only need to calculate it once) **/ + private final String getChunk(String s, int slength, int marker) + { + StringBuilder chunk = new StringBuilder(); + char c = s.charAt(marker); + chunk.append(c); + marker++; + if (isDigit(c)) + { + while (marker < slength) + { + c = s.charAt(marker); + if (!isDigit(c)) + break; + chunk.append(c); + marker++; + } + } else + { + while (marker < slength) + { + c = s.charAt(marker); + if (isDigit(c)) + break; + chunk.append(c); + marker++; + } + } + return chunk.toString(); + } + + public int compare(OCFile o1, OCFile o2) + { + String s1 = (String)o1.getRemotePath().toLowerCase(); + String s2 = (String)o2.getRemotePath().toLowerCase(); + + int thisMarker = 0; + int thatMarker = 0; + int s1Length = s1.length(); + int s2Length = s2.length(); + + while (thisMarker < s1Length && thatMarker < s2Length) + { + String thisChunk = getChunk(s1, s1Length, thisMarker); + thisMarker += thisChunk.length(); + + String thatChunk = getChunk(s2, s2Length, thatMarker); + thatMarker += thatChunk.length(); + + // If both chunks contain numeric characters, sort them numerically + int result = 0; + if (isDigit(thisChunk.charAt(0)) && isDigit(thatChunk.charAt(0))) + { + // Simple chunk comparison by length. + int thisChunkLength = thisChunk.length(); + result = thisChunkLength - thatChunk.length(); + // If equal, the first different number counts + if (result == 0) + { + for (int i = 0; i < thisChunkLength; i++) + { + result = thisChunk.charAt(i) - thatChunk.charAt(i); + if (result != 0) + { + return result; + } + } + } + } else + { + result = thisChunk.compareTo(thatChunk); + } + + if (result != 0) + return result; + } + + return s1Length - s2Length; + } +} diff --git a/src/third_parties/daveKoeller/lgpl-2.1.txt b/src/third_parties/daveKoeller/lgpl-2.1.txt new file mode 100644 index 00000000..4362b491 --- /dev/null +++ b/src/third_parties/daveKoeller/lgpl-2.1.txt @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/tests/.classpath b/tests/.classpath index 9b141f6f..26d8fe48 100644 --- a/tests/.classpath +++ b/tests/.classpath @@ -1,10 +1,10 @@ - - + +