From: David A. Velasco Date: Fri, 24 Oct 2014 13:24:50 +0000 (+0200) Subject: Merge branch 'master' into develop X-Git-Tag: oc-android-1.7.0_signed~133 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/8d3a956c974661aa1a58f9083ae0af7c3e1a0ca3?hp=552a84c1c70186f8eda84a5d84a4ed68483056fc Merge branch 'master' into develop --- diff --git a/SETUP.md b/SETUP.md index a9650644..39539038 100644 --- a/SETUP.md +++ b/SETUP.md @@ -1,10 +1,14 @@ -If you want to start help developing ownCloud please follow the [contribution guidelines][0] and observe these instructions: - -### 1. Fork and download android/develop repository: +If you want to start help developing ownCloud please follow the [contribution guidelines][0] and observe these instructions. -NOTE: You must have git in your environment path variable to perform the next operations. +If you have any problems, start again with 1) and work your way down. If something still does not work as described here, please open a new issue describing exactly what you did, what happened, and what should have happened. +### 1) Fork and download android/develop repository: + +NOTE: Android SDK with platforms 8, 14 and 19 (and maybe others) need to be installed. + You must have the Android SDK 'tools/', and 'platforms-tools/' folders in your environment path variable. + "git" need to be installed and in your environment path variable. + * Navigate to https://github.com/owncloud/android, click fork. * Clone your new repo: "git clone git@github.com:YOURGITHUBNAME/android.git" * Move to the project folder with "cd android" @@ -14,16 +18,16 @@ NOTE: You must have git in your environment path variable to perform the next op * Make sure to get the latest changes from official android/develop branch: "git pull upstream develop" * Complete the setup of project properties and resolve pending dependencies running "setup_env.bat" or "./setup_env.sh" . -At this point you can continue using different tools to build the project. Section 2, 3 and 4 describe some of the existing alternatives. +At this point you can continue using different tools to build the project. Sections 2a), 2b), and 2c) describe some of the existing alternatives. -### 2. Building with Ant: +### 2a) Building with Ant: NOTE: You must have the Android SDK 'tools/', and 'platforms-tools/' folders in your environment path variable. * Run "ant clean" . * Run "ant debug" to generate a debuggable version of the ownCloud app. -### 3. Building with console/maven: +### 2b) Building with console/maven: NOTE: You must have mvn (version >= 3.1.1) in your environment path. Current Android 'platforms-tools' need to be installed. @@ -39,7 +43,7 @@ Download/install Android plugin for Maven, install owncloud-android-library, the Now you can create ownCloud APK using "mvn package" -### 4. Building with Eclipse: +### 2c) Building with Eclipse: NOTE: You must have the Android SDK 'tools/', and 'platforms-tools/' folders in your environment path variable. @@ -47,11 +51,12 @@ NOTE: You must have the Android SDK 'tools/', and 'platforms-tools/' folders in * Open Eclipse and create new "Android Project from Existing Code". Choose android/actionbarsherlock/library as root. * Clean project and compile. * If any error appear, check the project properties; in the 'Android' section, API Level should be greater or equal than 14. +* If "error loading libz.so.1" appears, try "sudo apt-get install lib32z1" * Make sure android/actionbarsherlock/library/bin/library.jar was created. -* Create a new "Android Project from Existing Code". Choose android/owncloud-android-library as root. +* Create a new "Android Project from Existing Code". Choose android/owncloud-android-library as root. (test and sample clients are not required.) * Clean project and compile. * If any error appear, check the project properties; in the 'Android' section, API Level should be 19 or greater. -* Make sure android/owncloud-android-library/bin/classes.jar was created. +* Make sure 'android/owncloud-android-library/bin/owncloud android library.jar' was created. * Import ownCloud Android project. * Clean project and compile. * If any error appears, check the project properties of owncloud-android project; in the 'Android' section: @@ -61,7 +66,7 @@ NOTE: You must have the Android SDK 'tools/', and 'platforms-tools/' folders in NOTE: Even though API level is set to 19, APK also runs on older devices because in AndroidManifest.xml minSdkVersion is set to 8. -### 5. Create pull request: +### 3) Create pull request: NOTE: You must sign the [Contributor Agreement][1] before your changes can be accepted! @@ -72,7 +77,7 @@ NOTE: You must sign the [Contributor Agreement][1] before your changes can be ac * Again, click "Edit" and set "compare:develop" * Enter description and send pull request. -### 6. Create another pull request: +### 4) Create another pull request: To make sure your new pull request does not contain commits which are already contained in previous PRs, create a new branch which is a clone of upstream/develop. diff --git a/owncloud-android-library b/owncloud-android-library index d7097983..5bd0d738 160000 --- a/owncloud-android-library +++ b/owncloud-android-library @@ -1 +1 @@ -Subproject commit d7097983594347167b5bde3fa5b2b4ad1d843392 +Subproject commit 5bd0d7387712ce3f53869294761ac4d8537841cd 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-ar/strings.xml b/res/values-ar/strings.xml index 37cee6ad..4d89b576 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -250,4 +250,5 @@ حسابات كلمة مرور خاطئة اختيار + الأمان diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml index 9ab44ea9..b037311c 100644 --- a/res/values-az/strings.xml +++ b/res/values-az/strings.xml @@ -130,7 +130,80 @@ Aşağıda göstərilən %5$s-də olan daxili və xarici fayl(lar) link edilmiş %1$s (yüklənir) %1$s geriyə oxunuş bitib Media faylı tapılmadı + Heç bir hesab təqdim edilməyib + Fayl keçərli hesabda deyil + Media kodeki dəstəklənmir + Media fayl oxunula bilmir + Media fayl düzgün kodlaşdırılmayıb + İşə salınmanın gözləmə vaxtı bitdi + Media faylı axınlı ola bilməz + Media faylı anbarda olan media oxuyucusu ilə işlədilə bilmız + Oynamaya çalışarkən təhlükəsizlik xətası %1$s + Oynamaya çalışarkən daxiletmə xətası %1$s + Oynamaya çalışarkən gözlənilməyən xəta %1$s + Geriyə qayıdış düyməsi + Oxunma və ya tənəffüs düyməsi + Sürətlə irəli düyməsi + Yetki alınır... + Girişə cəhd edilir... + Şəbəkə qoşulması yoxdur + Təhlükəsiz qoşulma mümkün deyil. + Əlaqə quruldu + Qoşulma test edilir... + Yalnış qurulmuş server konfiqurasiyası + Avadanlıqda eyni istifadəçi və server üçün artıq hesab mövcuddur + Daxil edilən hesab bu hesabla üst-üstə düşmür + Yalnış səhv baş verdi! + Host-u tapmaq mümkün olmadı + Server nüsxəsi tapılmadı + Server cavab üçün çox uzun müddət aldı + Xətalı URL + SSL inisializasiyası səhvi + SSL serverin şəxsiliyini təyin etmək mümkün olmadı + Təyin edilməyən server versiyası + Qoşulma yaratmaq mümkün olmadı + Təhlükəsiz qoşulma yaradıldı + Yalnış istifadəçi yada şifrə + Uğursuz yetkiləndirmə + Yetkiləndirmə serveri tərəfindən giriş əngəlləndi + Bəlli ediləbilməyən vəziyyət; xahiş olunur, serverin URL-ni yenidən daxil edəsiniz + Sizin yetinizin vaxtı bitmişdir. Xahiş olunur, yenidən yetkilənəsiniz + Xahiş olunur, hazırki şifrəni daxil edəsiniz + Sizin sessiyanın vaxtı bitmişdir. Xahiş olunur yenidən qoşulasınız + Yetkiləndirmə serverinə qoşulma gedir... + Server bu qeydiyyat metodikasını dəstəkləmir + %1$s çoxlu hesab dəstəkləmir + Sizin server düzgün istifadəçi id-si qaytarmır, xahiş olunur inzibatçı ilə əlaqə saxlayasınız + Bu serverdə yenidən qeydiyyatdan keçmək olmur + Faylı gündəmdə saxla + Adı dəyiş Sil + Siz həqiqətən %1$s silmək istəyirsiniz? + Siz həqiqətəndə %1$s və onun kontentini silmək istəyirsiniz? + Yalnız daxili + Yalnız daxili kontent + Serverdən sil + Uzaq və lokal + Silmə uğurlu oldu + Silmək mümkün olmadı + Yeni adı daxil edin + Daxili nüsxənin adı dəyişdirilə bilməz; fərqli ad yoxlayın + Ad dəyişmə bitə bilməz + Uzaq fayl yoxlanıla bilməz + Faylın kontenti artıq sinxronizasiya edilmişdir + Qovluq yaradıla bilməz + Qadağan edilmiş simvollar: / \\ < > : \" | ? * + Faylın adı boş ola bilməz + Biraz gözləyin + Naməlum problem; xahiş olunur faylı fərqli program təminatından seçəsiniz + Heç bir fayl seçilməyib + Linki yollayın ... + oAuth2 ilə qeydiyyatdan keçin + oAuth2 serverinə qoşulur... + Sayta olan identifikasiya yoxlanıla bilməz + Server sertifikati inamlı deyil + - Server sertifikatının vaxtı bitmişdir + - Server sertifikatının düzgün tarixi gələcəkdədir Detallar Bu fayl və ya qovluğun yayımlanmasının dayandırılmasında səhv baş verdi Göndər diff --git a/res/values-bg-rBG/strings.xml b/res/values-bg-rBG/strings.xml index 8eebb6a8..47d243cf 100644 --- a/res/values-bg-rBG/strings.xml +++ b/res/values-bg-rBG/strings.xml @@ -263,9 +263,9 @@ Файлът вече не се намира на този сървър Профили Добавяне на профил - Сигурна връзка е пренасочена по несигурен път. Доклади Изпрати История + ownCloud Android доклади Зареждане на информация... Нужна е идентификация Грешна парола @@ -277,4 +277,5 @@ Файлът вече съществува в отдалечената папка. Настъпи грешка при опита за преместване на този файл или папка. за да преместиш този файл + Сигурност diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml index 74739f5d..cae19b70 100644 --- a/res/values-bn-rBD/strings.xml +++ b/res/values-bn-rBD/strings.xml @@ -259,10 +259,10 @@ সার্ভারে এই ফাইলটি আর প্রাপ্তব্য নয় একাউন্ট একাউন্ট যোগ কর - নিরাপদ সংযোগকে একটি অনিরাপদ পথে দিকবদল করা হয়েছে ভুল কুটশব্দ সরাও এখানে কিছু নেই। একটি ফোল্ডার যোগ করতে পারেন! বেছে নিন সরাতে ব্যার্থ হলো। ফাইলটি রয়েছে কিনা দেখুন। + নিরাপত্তা diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 9c1d158e..d0b98a1d 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -257,8 +257,8 @@ El fitxer ja no està disponible en el servidor Comptes Afegeix compte - La connexió segura està essent redirigida a través d\'una ruta insegura Es requereix autenticació Contrasenya incorrecta Escull + Seguretat diff --git a/res/values-cs-rCZ/strings.xml b/res/values-cs-rCZ/strings.xml index 71b84c9e..6b8b96c6 100644 --- a/res/values-cs-rCZ/strings.xml +++ b/res/values-cs-rCZ/strings.xml @@ -15,9 +15,9 @@ 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,7 +27,7 @@ Zobrazuje zaznamenané logy Smazat historii Nápověda - Doporučit příteli + Doporučit přátelům Odezva Imprint Zkuste %1$s na vašem smartphonu! @@ -226,7 +226,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,6 +237,7 @@ 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. Nelze sdílet. Zkontrolujte prosím že soubor existuje @@ -262,7 +263,7 @@ administrátora. Tento soubor již není dostupný na serveru Účty Přidat účet - Zabezpečené spojení je přesměrováváno nezabezpečenou trasou. + Bezpečné spojení je přesměrováno na nezabezpečenou trasu. Logy Odeslat historii Logy aplikace ownCloud pro Android @@ -277,4 +278,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-da/strings.xml b/res/values-da/strings.xml index cbb2d75f..54449009 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -237,6 +237,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,9 +262,10 @@ Filen er ikke længere tilgængelig på serveren Konti Tilføj konto - Sikker forbindelse videredirigeres gennem en usikker rute. + Sikker forbindelse videredirigeres til en usikker rute. Logge Send historik + App-logregistreringer for ownCloud Android Indlæser data... Godkendelse påkrævet Forkert kodeord @@ -275,4 +277,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-rCH/strings.xml b/res/values-de-rCH/strings.xml index a6cb3c27..7a5b9e91 100644 --- a/res/values-de-rCH/strings.xml +++ b/res/values-de-rCH/strings.xml @@ -198,4 +198,5 @@ Konten Auswählen + Sicherheit diff --git a/res/values-de-rDE/strings.xml b/res/values-de-rDE/strings.xml index b1132871..70bd98fa 100644 --- a/res/values-de-rDE/strings.xml +++ b/res/values-de-rDE/strings.xml @@ -238,6 +238,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 Ihrem Server nicht aktiviert. Bitte kontaktieren Sie Ihren ⇥⇥Administrator. Teilen nicht möglich. Prüfen Sie, dass die Datei existiert @@ -278,4 +279,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 0b536c10..028b6bc6 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -104,7 +104,7 @@ Inhalte von %1$d konnte nicht synchronisiert werden (%2$d Konflikte) Einige lokale Dateien wurden vergessen %1$d Dateien aus dem %2$s Verzeichnis konnten nicht kopiert werden nach - Mit Version 1.3.16 werden Dateien die von diesem Gerät aus hochgeladen werden in den lokalen Ordner %1$s kopiert um Datenverlust zu vermeiden, wenn eine einzelne Datei mit mehreren Accounts synchronisiert wird.\n\nInfolge dieser Änderung wurden alle Dateien, die mit vorherigen Versionen dieser App hochgeladen wurden, in den Ordner %2$s verschoben. Jedoch ist während der Account-Synchronisation ein Fehler aufgetreten, der das Abschließen dieses Vorgangs verhindert. Du kannst die Datei(en) entweder wie sie sind belassen und den Link zu %3$s entfernen oder die Datei(en) in den %1$s Ordner verschieben und den Link zu %4$s beibehalten.\n\nUnten befindet sich eine Liste der lokalen Datei(en) und der mit ihnen verbundenen Remote-Datei(en) in %5$s. + Mit Version 1.3.16 werden Dateien die von diesem Gerät aus hochgeladen werden in den lokalen Ordner %1$s kopiert um Datenverlust zu vermeiden, wenn eine einzelne Datei mit mehreren Accounts synchronisiert wird.\n\nInfolge dieser Änderung wurden alle Dateien, die mit vorherigen Versionen dieser App hochgeladen wurden, in den Ordner %2$s verschoben. Jedoch ist während der Account-Synchronisation ein Fehler aufgetreten, der das Abschließen dieses Vorgangs verhindert. Du kannst die Datei(en) entweder wie sie sind belassen und den Link zu %3$s entfernen oder die Datei(en) in den Ordner %1$s verschieben und den Link zu %4$s beibehalten.\n\nUnten befindet sich eine Liste der lokalen Datei(en) und der mit ihnen verbundenen Remote-Datei(en) in %5$s. Das Verzeichnis %1$s existiert nicht mehr Verschiebe alle Alle Dateien wurden verschoben @@ -238,6 +238,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 @@ -274,8 +275,10 @@ Nichts vorhanden. Du kannst einen Ordner hinzufügen! Auswählen Verschieben nicht möglich. Prüfe, dass die Datei existiert - Es ist nicht möglich einen Ordner eine Ebene tiefer zu verschieben + Es ist nicht möglich, einen Ordner in einen seiner Unterordner zu verschieben Die Datei ist bereits im Zielordner vorhanden - Es ist ein Fehler beim Verschieben dieser Datei oder Ordners aufgetreten. - zum Datei verschieben + 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 179cdc56..94e35a6b 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -104,6 +104,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 +238,12 @@ Προεπισκόπηση εικόνας Αυτή η εικόνα δεν μπορεί να προβληθεί Το %1$s δεν μπόρεσε να αντιγραφεί στον τοπικό φάκελο %2$s + Διαδρομή Μεταφόρτωσης Λυπούμαστε, ο διαμοιρασμός δεν επιτρέπεται στο διακομιστή σας. Παρακαλούμε επικοινωνείστε με το διαχειριστή σας. + Αδύνατη η κοινή χρήση. Παρακαλώ ελέγξτε αν ο φάκελος υπάρχει Ένα σφάλμα προέκυψε κατά την προσπάθεια διαμοιρασμού αυτού του αρχείου ή φακέλου + Αδύνατη η διακοπή κοινής χρήσης. Παρακαλώ ελέγξτε αν ο φάκελος υπάρχει Ένα σφάλμα προέκυψε κατά τη διάρκεια ακύρωσης διαμοιρασμού αυτού του αρχείου ή φακέλου Αποστολή Αντιγραφή συνδέσμου @@ -260,9 +264,21 @@ Αυτό το αρχείο δεν είναι πια διαθέσιμο στο διακομιστή Λογαριασμοί Προσθήκη λογαριασμού - Ασφαλής σύνδεση ανακατευθύνεται μέσω μιας μη ασφαλούς διαδρομής. + Ασφαλής σύνδεση ανακατευθύνεται σε μια μη ασφαλή διαδρομή. + Αρχεία καταγραφών + Αποστολή ιστορικού + αρχεία καταγραφής της εφαρμογής ownCloud Android + Φόρτωση δεδομένων.... Απαιτείται πιστοποίηση Εσφαλμένο συνθηματικό + Μετακίνηση + Δεν υπάρχει τίποτα εδώ. Μπορείτε να προσθέσετε ένα φάκελο! Επιλέξτε + Αδύνατη η μετακίνηση. Παρακαλώ ελέγξτε αν ο φάκελος υπάρχει + Δεν είναι δυνατό να μετακινηθεί ο φάκελος σε έναν απογονικό + Το αρχείο υπάρχει ήδη στο φάκελο προορισμού + Ένα σφάλμα προέκυψε κατά την προσπάθεια μετακίνησης αυτού του αρχείου ή φακέλου για μετακίνηση αυτού του αρχείου + Στιγμιαίες Μεταφορτώσεις + Ασφάλεια diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index fd812c64..320d1e67 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -238,6 +238,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,7 +264,7 @@ The file is no longer available on the server Accounts Add account - Secure connection is redirected through an unsecured route. + Secure connection is redirected to an unsecured route. Logs Send History ownCloud Android app logs @@ -278,4 +279,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-eo/strings.xml b/res/values-eo/strings.xml index 065e59ab..2b4413ce 100644 --- a/res/values-eo/strings.xml +++ b/res/values-eo/strings.xml @@ -186,4 +186,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..780a6043 100644 --- a/res/values-es-rAR/strings.xml +++ b/res/values-es-rAR/strings.xml @@ -241,4 +241,5 @@ Autentificación requerida Clave incorrecta Elegir + Seguridad diff --git a/res/values-es-rMX/strings.xml b/res/values-es-rMX/strings.xml index 3772ff7a..ef91bc63 100644 --- a/res/values-es-rMX/strings.xml +++ b/res/values-es-rMX/strings.xml @@ -215,4 +215,5 @@ Cuentas Contraseña incorrecta Seleccionar + Seguridad diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 9fa84e2f..7f661730 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -101,7 +101,7 @@ Se encontraron conflictos Falló la sincronización de contenidos de %1$d ficheros Fallos en la sincronización de contenidos - Los contenidos de %1$d ficheros no se han sincronizado (%2$d conflictos) + Los contenidos de %1$d archivos no pudieron sincronizarse (%2$d conflictos) Algunos archivos locales se han perdido %1$d archivos en la carpeta %2$s no pudieron ser copiados a A partir de la versión 1.3.16, los ficheros subidos desde este dispositivo se copian en la carpeta local %1$s para evitar la pérdida de datos cuando se sincroniza un único archivo con varias cuentas.\n\nDebido a este cambio, todos los ficheros subidos con versiones anteriores de esta aplicación fueron copiados a la carpeta %2$s. Sin embargo, un error impidió que se completara esta operación durante la sincronización de la cuenta. Puede dejar los archivos tal y como están y eliminar el enlace a %3$s o mover los archivos a la carpeta %1$s y mantener el enlace a %4$s.\n\nDebajo se muestran los archivos locales y los archivos remotos en %5$s a los que fueron enlazados. @@ -150,12 +150,12 @@ Ya existe una cuenta en este dispositivo con los mismos datos de Usuario y Servidor El usuario introducido no concuerda con el usuario de esta cuenta Ocurrió un error desconocido - No se pudo encontrar la dirección + Error: no se pudo encontrar el host Instancia de servidor no encontrada El servidor ha tardado demasiado en responder URL no válida Falló la inicialización SSL - No fue posible verificar la identidad del servidor SLL + No fue posible verificar la identidad del servidor SSL No se reconoce la versión del servidor No se ha podido establecer la conexión Conexión segura establecida @@ -200,7 +200,7 @@ La identidad del sitio no puede ser verificada - El certificado del servidor no es de confianza - El certificado del servidor expiró - - El certificado del servidor es demasiado reciente + - El certificado del servidor es de una fecha que aún no llega - La URL no coincide con el nombre de dominio del certificado ¿Confías de todas formas en este certificado? El certificado no pudo ser guardado @@ -237,7 +237,8 @@ No subir Previsualización de imagen No se puede mostrar la imagen - %1$s no pudo ser copiado a la carpeta local %2$s + %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 @@ -257,15 +258,16 @@ para renombrar este archivo para eliminar este archivo para compartir este archivo - para ya no compartir este archivo + para dejar de compartir este archivo para crear el archivo para subir archivos a esta carpeta Este archivo ya no se encuentra en el servidor Cuentas Agregar cuenta - La conexión segura está siendo redirigida por una ruta insegura. - Trazas + La conexión segura está siendo desviada por una ruta insegura. + Logs Enviar historial + Logs de las apps ownCloud Android Cargando datos... Se necesita autenticación Contraseña incorrecta @@ -273,8 +275,10 @@ Aquí no hay nada. ¡Puede agregar una carpeta! Seleccionar No se puede mover. Revise si el archivo existe - No se puede mover una carpeta dentro de una de sus descendientes. + No se puede mover una carpeta dentro de una de SUS subcarpetas. 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 6604a713..daba47f4 100644 --- a/res/values-et-rEE/strings.xml +++ b/res/values-et-rEE/strings.xml @@ -31,6 +31,7 @@ Tagasiside Impressum Proovi oma nutitelefonil rakendust %1$s! + Kutsun sind kasutama oma nutitelefonis rakendust %1$s!\nLaadi see alla siit: %2$s Kontrolli serverit Serveri aadress https://... Kasutajanimi @@ -241,6 +242,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 @@ -266,7 +268,11 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi Fail ei ole serveris enam kättesaadav Kontod Lisa konto - Turvalist ühendust suunatakse läbi turvamata ühenduse. + Turvaline ühendus suunatakse läbi turvamata ühenduse. + Logid + Saada ajalugu + ownCloud Android rakenduse logid + Andmete laadimine... Autentimine on vajalik Vale parool Tõsta ümber @@ -277,4 +283,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/strings.xml b/res/values-eu/strings.xml index 3edade43..fec7404d 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -258,8 +258,8 @@ Mesedez, baimendu berriz Fitxategia jadanik ez dago eskuragarri zerbitzarian Kontuak Gehitu kontua - Konexio segurua birbideratu da segurua ez den bide batetik. Autentikazioa beharrezkoa Pasahitz okerra Aukeratu + Segurtasuna diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 200f5e2f..6a22f893 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -232,4 +232,5 @@ احراز هویت مورد نیاز است رمز عبور اشتباه است انتخاب کردن + امنیت diff --git a/res/values-fi-rFI/strings.xml b/res/values-fi-rFI/strings.xml index 9419f95f..6f02e4bc 100644 --- a/res/values-fi-rFI/strings.xml +++ b/res/values-fi-rFI/strings.xml @@ -218,6 +218,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,7 +241,6 @@ 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 @@ -253,4 +253,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/strings.xml b/res/values-fr/strings.xml index 5cbcd334..17da4a97 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -164,7 +164,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq 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 invalide + Nom d\'utilisateur ou mot de passe incorrect Echec d\'autorisation Accès refusé par le serveur d\'autorisation État inattendu ; veuillez entrer à nouveau l\'URL du serveur @@ -267,18 +267,19 @@ 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 - Le connexion sécurisée est redirigée vers une route non-sécurisée. Journaux - Historique des envois + Envoyer l\'historique + Journaux de l\'application Android ownCloud Chargement des données... Authentification requise Mot de passe incorrect Déplacer - Il n\'y rien ici. Vous pouvez ajouter un dossier ! + Il n\'y a rien ici. Vous pouvez ajouter un dossier ! Choisir - Impossible de supprimer. Vérifiez que le fichier est bien présent + Impossible de déplacer. Vérifiez que le fichier existe Il n\'est pas possible de déplacer un dossier vers un de ses descendants - Le fichier existe déjà dans le dossier destinataire + 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 + Sécurité diff --git a/res/values-fy-rNL/strings.xml b/res/values-fy-rNL/strings.xml new file mode 100644 index 00000000..56e55a1d --- /dev/null +++ b/res/values-fy-rNL/strings.xml @@ -0,0 +1,4 @@ + + + + diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index 65344d2f..c169179c 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -259,9 +259,9 @@ O ficheiro xa non está dispoñíbel no servidor Contas Engadir unha conta - A conexión segura está a ser redirixida a través dunha ruta non segura. Requírese autenticación Contrasinal incorrecto Mover Escoller + Seguranza diff --git a/res/values-he/strings.xml b/res/values-he/strings.xml index cd30af29..4ae0072d 100644 --- a/res/values-he/strings.xml +++ b/res/values-he/strings.xml @@ -260,6 +260,6 @@ הקובץ אינו זמין יותר על השרת חשבונות הוספת חשבון - חיבור מאובטח מנותב דרך נתיב לא מאובטח בחירה + אבטחה diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index 60b52f05..b8dcfc5b 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -36,4 +36,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..f5900060 100644 --- a/res/values-hu-rHU/strings.xml +++ b/res/values-hu-rHU/strings.xml @@ -242,4 +242,5 @@ Felhasználóazonosítás szükséges Hibás jelszó Válasszon + Biztonság diff --git a/res/values-id/strings.xml b/res/values-id/strings.xml index f7cfeaa7..be93270a 100644 --- a/res/values-id/strings.xml +++ b/res/values-id/strings.xml @@ -6,17 +6,21 @@ Unggah Konten dari apl lain Berkas - Bukan dengan + Buka dengan Folder baru - pengaturan + Pengaturan Rincian Kirim - umum + 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 +29,9 @@ Bantuan Rekomendasikan ke teman Umpan balik - Imprint - Coba %1$s pada smartphone Anda! + Jejak + Cobalah %1$s pada ponsel cerdas Anda! + Saya ingin mengajak Anda untuk menggunakan %1$s di ponsel cerdas Anda!\nUnduh gratis disini: %2$s Periksa Server Alamat server https://… Nama Pengguna @@ -35,6 +40,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 @@ -44,6 +50,8 @@ %1$s tidak diizinkan mengakses konten berbagi Mengunggah 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 +61,7 @@ Segarkan berkas Berkas diubah namanya menjadi %1$s saat pengunggahan Bagikan tautan + Batal bagikan tautan Ya Tidak Oke @@ -82,19 +91,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 ketika 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 berlangsung 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 +123,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 +139,7 @@ Tombol mundur Tombol main dan jeda Tombol maju + Mendapatkan otorisasi... Mencoba untuk masuk... Tidak ada koneksi internet Sambungan aman tidak tersedia @@ -150,9 +168,12 @@ Menyambungkan ke server otentikasi... Server tidak mendukung medote otentikasi ini %1$s tidak mendukung banyak akun + 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 +185,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 +216,8 @@ Untuk: Tanda tangan: Algoritma: + Sertifikat tidak dapat ditampilkan. + - Tidak ada informasi tantang terror Ini adalah placeholder placeholder.txt Gambar PNG @@ -199,6 +225,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 +233,13 @@ Timpa Jangan mengunggah Pratilik gambar + Gambar ini tidak dapat ditampilkan Kirim + Disalin ke papan klip Akun Diperlukan otentikasi Sandi salah Pilih + Keamanan diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index d4507602..ffa01f31 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -238,6 +238,7 @@ 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,7 +264,7 @@ Il file non è più disponibile sul server Account Aggiungi account - La connessione sicura è rediretta attraverso un percorso non sicuro. + La connessione sicura è rediretta su un percorso non sicuro. Registri Invia cronologia Registri applicazione ownCloud Android @@ -278,4 +279,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 d4e64f0f..b6d8ffb4 100644 --- a/res/values-ja-rJP/strings.xml +++ b/res/values-ja-rJP/strings.xml @@ -264,9 +264,9 @@ ファイルはサーバー上で利用できません アカウント アカウントを追加 - 暗号化されていない接続を経て、暗号化接続へリダイレクトされました。 ログ ログを送信 + ownCloud Android アプリログ 読込中 ... 認証を必要とする 無効なパスワード @@ -278,4 +278,5 @@ そのファイルは、宛先フォルダに既に存在しています。 このファイルまたはフォルダーを移動する際にエラーが発生しました このファイルを移動 + セキュリティ diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml index b23ca473..43b1a456 100644 --- a/res/values-ka-rGE/strings.xml +++ b/res/values-ka-rGE/strings.xml @@ -149,4 +149,5 @@ ანგარიში არჩევა + უსაფრთხოება diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml index 3c4f3cd3..752985c3 100644 --- a/res/values-km/strings.xml +++ b/res/values-km/strings.xml @@ -83,4 +83,5 @@ គណនី ខុស​ពាក្យ​សម្ងាត់ ជ្រើស + សុវត្ថិភាព diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index b8313dbc..4a0df83f 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -217,4 +217,5 @@ 인증 필요함 잘못된 암호 선택 + 보안 diff --git a/res/values-lt-rLT/strings.xml b/res/values-lt-rLT/strings.xml index 5dfaffa4..70bc85d5 100644 --- a/res/values-lt-rLT/strings.xml +++ b/res/values-lt-rLT/strings.xml @@ -234,4 +234,5 @@ Paskyros Neteisingas slaptažodis Pasirinkite + Saugumas diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 41a1872f..88df8292 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -143,4 +143,5 @@ Konti Izvēlieties + Drošība diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index d7a62301..e7b4906e 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -122,4 +122,5 @@ Потребна е автентификација Погрешна лозинка Избери + Безбедност diff --git a/res/values-nb-rNO/strings.xml b/res/values-nb-rNO/strings.xml index 78ded4f9..55e2bb4c 100644 --- a/res/values-nb-rNO/strings.xml +++ b/res/values-nb-rNO/strings.xml @@ -1,6 +1,6 @@ - %1$s Andriod app + %1$s Android app versjon %1$s Oppdater konto Last opp @@ -263,9 +263,9 @@ Filen finnes ikke på serveren lenger Kontoer Legg til en konto - Sikker tilkobling videresendes gjennom en usikker rute. Logger Send historikk + logger for ownCloud Android app Laster data... Autentisering kreves Feil passord @@ -277,4 +277,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-nl/strings.xml b/res/values-nl/strings.xml index 2f12347a..f79d9331 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -241,6 +241,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,7 +267,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 via een onveilige route. + De beveiligde verbinding is omgeleid naar een onveilige route. Logs Verstuur geschiedenis ownCloud Android app logs @@ -281,4 +282,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..528bff4f 100644 --- a/res/values-nn-rNO/strings.xml +++ b/res/values-nn-rNO/strings.xml @@ -129,4 +129,5 @@ Kontoar Feil passord Vel + Tryggleik diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 9fd718a0..8c0a9878 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -263,7 +263,6 @@ Ten plik nie jest już dostępny na serwerze Konta Dodaj konto - Bezpieczne połączenie jest przekierowywane przez niezabezpieczone trasy. Logi Wyślij historię Ładuję dane... @@ -277,4 +276,5 @@ Plik istnieje już w folderze docelowym Pojawił się błąd podczas próby przeniesienia tego pliku lub folderu aby przenieść ten plik + Bezpieczeństwo diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml index 71df1607..3ffb84b8 100644 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@ -238,6 +238,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,7 +264,7 @@ Este arquivo não mais está disponível neste servidor Contas Adicionar uma conta - A conexão segura está redirecionada através de uma rota insegura. + Conexão segura esta redirecionada para uma rota não segura. Logs Enviar Histórico Logs do aplicativo ownCloud Android @@ -278,4 +279,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 413b35e8..6c4aab17 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -31,6 +31,7 @@ Resposta Imprint Experimente %1$s no seu smartphone! + Quero convidar-te a usares %1$s no teu smartphone!\nFaz download aqui: %2$s Verificar Servidor Endereço do servidor https://.. Nome de Utilizador @@ -236,9 +237,11 @@ 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 + Não é possível retirar a partilha. Verifique se o ficheiro existe Ocorreu um erro enquanto retirava a partilha deste ficheiro ou pasta Enviar Copiar ligação @@ -259,13 +262,21 @@ O ficheiro não está mais disponível no servidor Contas Adicionar conta - Uma ligação segura foi redireccionada por uma rota insegura. + Ligação segura é redireccionada para um caminho inseguro. + Logs Enviar Histórico + Logs da app ownCloud Android A carregar os dados... Autenticação necessária Password errada Mover Não está aqui nada. Pode adicionar uma pasta! Escolha + Não é possível mover. Verifique se o ficheiro existe + Não é possível mover esta pasta deste modo + 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..b3ea7256 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -259,4 +259,5 @@ Conturi Parolă greșită Alege + Securitate diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 49c3e3cc..66ad7ad0 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -263,7 +263,6 @@ Этот файл больше недоступен на сервере Учётные записи Добавить учетную запись - Безопасное соединение перенаправлено через небезопасный маршрут. Журналы История Отправлений Журналы Андроид-приложения ownCloud @@ -278,4 +277,5 @@ Файл уже существует в папке назначения Произошла ошибка при попытке перемещения этого файла или папки переместить этот файл + Безопасность diff --git a/res/values-sk-rSK/strings.xml b/res/values-sk-rSK/strings.xml index 78e09425..76860435 100644 --- a/res/values-sk-rSK/strings.xml +++ b/res/values-sk-rSK/strings.xml @@ -259,9 +259,9 @@ Súbor už na serveri nie je dostupný Účty Pridať účet - Zabezpečené spojenie je presmerované nezabezpečenou cestou. Vyžaduje sa overenie Nesprávne heslo Presunúť Vybrať + Zabezpečenie diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index 5dc4e63b..dcdf6038 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -263,9 +263,9 @@ 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 Poteka nalaganje podatkov ... Zahtevana je overitev Napačno geslo @@ -277,4 +277,5 @@ Datoteka v ciljni mapi že obstaja. Prišlo je do napake med premikanjem datoteke v mapo med premikanjem datoteke + Varnost diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml index def1b9b8..adeb3e99 100644 --- a/res/values-sq/strings.xml +++ b/res/values-sq/strings.xml @@ -72,4 +72,5 @@ Llogarit Fjalëkalim i gabuar Zgjidh + Siguria diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index 5384da08..2ef13736 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -109,4 +109,5 @@ Налози Одабери + Безбедност diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index cbe890a9..c077786f 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -30,7 +30,8 @@ Rekommendera till en vän Feedback Imprint - Försök %1$s på din smarttelefon! + 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 @@ -50,6 +51,7 @@ Laddar upp Ingenting här. Ladda upp något! Laddar... + Det finns inga filer i den här mappen. Peka på en fil för att visa mer information. Storlek: Typ: @@ -93,6 +95,7 @@ Nerladda misslyckades, måste du logga in igen Välj konto Synkroniseringen misslyckades + Synkroniseringen misslyckades, du måste logga in på nytt. Synkronisering av %1$s kunde inte slutföras Felaktigt lösenord för %1$s Konflikter uppstod @@ -247,8 +250,23 @@ Ett fel uppstod i väntan på servern, operationen kunde inte ha gjorts Åtgärden kunte inte slutföras, servern är ej tillgänglig + Du har inga rättigheter %s + att döpa om denna fil + att radera denna fil + att dela denna fil + att avbryta delningen utav denna fil + att skapa filen + att ladda upp i den här mappen + Filen är inte längre tillgänglig på servern Konton + Lägg till konto + Laddar data... Autentisering krävs Fel lösenord + Flytta + Ingenting här. Du kan skapa en mapp! 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-tr/strings.xml b/res/values-tr/strings.xml index 72a15891..e5bfe93d 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -238,6 +238,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,7 +264,7 @@ Bu dosya artık sunucuda mevcut değil Hesaplar Hesap ekle - Güvenli bağlantı, güvenli olmayan bir rotaya yönlendiriliyor. + Güvenli bağlantı, güvenli olmayan bir rotaya yönlendirildi. Günlükler Geçmişi Gönder ownCloud Android uygulama kayıtları @@ -278,4 +279,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..e1140f87 100644 --- a/res/values-ug/strings.xml +++ b/res/values-ug/strings.xml @@ -41,4 +41,5 @@ يوللا ھېساباتلار + بىخەتەرلىك diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 68185743..d927e39f 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -1,8 +1,12 @@ + %1$s Android App + версія %1$s + Оновити account Відвантажити Вміст із інших програм Файли + Відкрити за допомогою Нова тека Налаштування Деталі @@ -13,14 +17,30 @@ Управління обліковими записами App програмний PIN Захист Вашог App клієнта + Миттєві зображення + Миттєві зображення з камери + Миттєві відео + Миттєві відео з камери + Ввімкнути журнал + Використовується для реєстрації помилок + Журнал + Тут показані записи журналу + Видалити історію записів Допомога + Порадити товаришу Зворотній зв\'язок Відбиток + Спробуйте %1$s на своєму смартфоні! + Пропоную вам користуватися %1$s на вашому смартфоні!\nЗавантажити можна за посиланням: %2$s + Перевірити сервер + Адреса серверу https://… Ім\'я користувача Пароль + Вперше в %1$s? Файли З\'єднати Відвантажити + Оберіть теку для завантаження: Не знайдено облікового запису На Вашому пристрої відсутні облікові записи %1$s. Будь ласка, спочатку створіть запис. Налаштування @@ -30,14 +50,18 @@ %1$s не може отримати доступ до спільного контенту Завантаження Тут нічого немає. Відвантажте що-небудь! + Завантаження... + В цій теці немає файлів. Натисніть на файлі для відображення додаткової інформації Розмір: Тип: Створено: Змінено: Завантажити + Оновити файл Файл був переіменований в %1$s протягом вивантаження Опублікувати посилання + Видалити посилання Так Ні OK @@ -46,6 +70,7 @@ Відмінити Зберегти & Вихід Помилка + Завантаження... Невідома помилка Про Змінити пароль @@ -59,25 +84,34 @@ %1$s було успішно завантажено Помилка завантаження Завантаження %1$s не може завершитись + Завантажити не вдалося, необхідно повторити вхід Зкачування … %1$d%% Зкачування %2$s Успішно зкачано %1$s успішно завантажено Завантаження не вдалося Завантаження %1$s не вдається завершити + Ще не завантажене + Зберегти не вдалося, необхідно повторити вхід Оберіть обліковий запис Помилка синхронізації + Синхронізація не вдалася, необхідно повторити вхід Синхронізація %1$s не вдалась + Невірний пароль для %1$s Конфліктів знайдено %1$d файли, які мають бути синхронізованими не можуть синхронізуватися Синхронізувати файли не вдалося Зміст %1$d файлів не може бути синхронізований (%2$d конфліктів) Деякі локальні файли були забуті + Неможливо скопіювати %1$d файли з теки %2$s + \"Починаючи з версії 1.3.16, файли, завантажені з цього пристрою копіюються в локальну теку %1$s для запобігання втрати даних під час синхронізації одного файлу з кількома обліковими записами.\n\nТому всі файли, завантажені в попередніх версіях цього додатку були скопійовані в теку %2$s. Однак, під час синхронізації сталася помилка. Ви можете залишити файл(и) як є та видалити посилання на %3$s, або перемістити файл(и) в директорію %1$s і зберегти посилання на %4$s.\n\nНижче наведені локальні та віддалені файли у %5$s з якою вони були пов\'язані. + Тека %1$s білше не існує Перемістити все Всі файли були переміщені Деякі файли не можуть бути переміщені Локально: %1$s Віддалено: %1$s + Недостатньо місця для копіювання обраних файлів у теку %1$s. Чи бажаєте ви перемістити їх замість копіювання? Будь ласка, введіть свій програмний PIN Введіть програмний PIN PIN необхідно буде вводити щоразу при запуску цієї програми @@ -87,24 +121,62 @@ Не вірний App програмний PIN App програмний PIN видалено App програмний PIN збережено + %1$s музичний плеєр + %1$s (відтворення) + %1$s (завантаження) + %1$s відтворення завершене + Медіа-файлів не знайдено + Обліковий запис не налаштований + Файл в невірному обліковому записі + Кодек не підтримується + Медіа-файл не читається + Медіа-файл невірно закодований + Вийшов час на спробу відтворення + Неможливо потоком відтворити файл + Медіа-файл неможливо відтворити вбудованим програвачем + Помилка безпеки при відтворені %1$s + Помилка вводу при відтворені %1$s + Несподівана помилка при відтворені %1$s + Перемтка назад + Відтворення або пауза + Перемотка вперед + Виконується вхід... Спроба входу… Відсутнє підключення до мережі Безпечне з\'єднання не доступне. З\'єднання встановлено Перевірка з\'єднання… Не вірні налаштування сервер + Такий обліковий запис вже існує на пристрої + Введений користувач не відповідає обліковому запису Виникла невідома помилка! Не вдалося знайти хост Не знайдено примірник сервер Сервер занадто довго не відповідає Пошкоджений URL Помилка SSL ініціалізації + Неможливо перевірити SSL-сертифікат сервера Не вдалося визначити версію сервер серверу Не вдалося встановити з\'єднання Встановлено захищене з\'єднання + Невірне ім\'я користувача або пароль + Невдала авторизація + Доступ заборонений сервером авторизації + Несподівана відповідь; будь ласка, введіть адресу сервера знову + Час авторизації минув. Будь ласка, увійдіть знову + Будь ласка, введіть пароль + Час сесії минув. Будь ласка, підключіться знов + Підключення до серверу аутентифікації... + Сервер не підтримує обраний метод аутентифікації + %1$s не підтримує одночасно декілька облікових записів + Ваш сервер не повертає коректний ідентифікатор користувача, будь ласка зверніться до адміністратора +⇥ + Аутентифікація на цьому сервері неможлива Оновлювати файл Перейменувати Видалити + Ви дійсно бажаєте видалити %1$s? + Ви дійсно бажаєте видалити %1$s та весь вміст? Лише локально Лише локальний зміст Видалити із серверу @@ -116,9 +188,15 @@ Перейменування не вдалося Неможливо перевірити віддалений файл Зміст файлу вже синхронізовано + Не вдалося створити теку + Заборонені символи: / \\ < > : \" | ? * + Ім\'я файлу не може бути порожнім. Зачекайте хвилинку Несподівані проблеми ; будь ласка, спробуйте використати іншу програму для вибору файлу Не обрано файл + Надіслати посилання... + Увійти через oAuth2 + Підключення до серверу oAuth2... Не вдалося перевірити ідентифікацію сайта - Не довірений сертифікат серверу - Сертифікат серверу втратив чинність @@ -141,17 +219,65 @@ До: Підпис: Алгоритм: + Не вдалося показати сертифікат. + - Інформація про помилку відсутня Це заповнювач + placeholder.txt + PNG зображення + 389 КБ + 2012/05/18 12:23 PM + 12:23:45 Завантажувати зображення тільки через WiFi + Завантажувати відео тільки через WiFi /InstantUpload Конфлікт оновлення Віддалений файл %s не синхронізовано з локальним. Продовження процедури замінить вміст файлу на сервері. Залишити обидва Замінити Не завантажувати + Попередній перегляд зображення + Не вдалося показати зображення + %1$s неможливо скопіювати до %2$s + Завантажити шлях + На жаль, обмін не включений на вашому сервері. Будь ласка, зв\'яжіться з вашим адмінистратором. + Неможливо поділитися. Будь ласка, перевірте, чи існує файл + Виникла помилка при спробі поділитися файлом або текою + Неможливо заборонити доступ. Будь ласка, перевірте, чи існує файл + Виникла помилка при спробі заборонити доступ до файлу або теки Надіслати + Копіювати посилання Скопійовано в буфер обміну + Критична помилка: виконання операції неможливе + Виникла помилка при підключені до сервера. + Під час очікування на сервер виникла помилка, операцію неможливо завершити + Під час очікування на сервер виникла помилка, операцію неможливо завершити + Неможливо завершити операцію, сервер недоступний + У вас немає повноважень %s + на перейменування цього файла + на видалення цього файла + для надання доступу до файла + для закриття доступу до файла + для створення файла + для завантаження в цю теку + Файл більше не доступний на сервері Облікові записи + Додати обліковий запис + Безпечне підключення перенаправляється через незабезпечений маршрут. + Журнали + Надіслати історію + Журнали Android-додатка ownCloud + Завантаження даних... + Потрібна аутентифікація + Невірний пароль + Перемістити + Тут нічого немає. Ви можете додати теку! Обрати + Неможливо перемістити. Будь ласка, перевірте, чи існує файл + Неможливо перемістити теку до теки-нащадка + Файл вже існує в теці призначення + Виникла помилка при спробі перемістити файл або теку + перемістити цей файл + Миттєво завантаження + Безпека diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index b7b6d142..79255f8d 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -31,6 +31,8 @@ 反馈 版本说明 在您的智能手机上试用一下 %1$s! + “我邀请你使用在你的智能手机上使用 %1$s,在这下载:%2$s” + 检查服务器 服务器地址 https://... 用户名 @@ -103,6 +105,7 @@ 无法同步 %1$d 文件内容(与 %2$d 冲突) 某些本地文件已被遗忘 %2$s 目录中的 %1$d 个文件不能被复制到 + 从 1.3.16 版起,从此设备上传的文件将被复制到本地的 %1$s 文件夹,以防止某个单一文件在多个账户间同步而造成的数据损失。\n\n 由于此项变化,此应用之前的版本上传的全部文件都已被复制到了 %2$s 文件夹。然而,账户同步期间有一个错误阻止了此操作的完成。您可能想保持文件不动,并移除指向 %3$s 的链接,或将文件移动到 %1$s 文件夹中并保持其到 %4$s 的链接。下面列出的是本地文件,以及它们被链接到的 %5$s 中的远程文件。 文件夹%1$s 不存在 移动所有 所有文件已被移动 @@ -260,14 +263,19 @@ 该文件在服务器上不可用 账号 添加账号 - 安全连接是通过一个非安全路由定向的。 + 日志 + 发送历史 + ownCloud安卓客户端日志 + 加载数据中... 需要认证 错误密码 移动 这里还什么都没有。上传些东西吧! 选择(&C)... 无法移动。请检查文件是否存在 + b不能够把一个目录移动到它的下级 该文件已经存在在目标文件夹 尝试移动该文件或文件夹时发生错误 移动该文件 + 安全 diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index aca365e0..91041380 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -31,6 +31,7 @@ 反饋 法律聲明 在您的手機中試用%1$s! + 我想邀請您在您的手機上使用 %1$s ! 可以由這兒下載: %2$s 檢查伺服器 伺服器位址 https://... 使用者名稱 @@ -49,6 +50,8 @@ %1$s 並沒有被允許存取分享的內容 上傳中 這裡還沒有東西,上傳一些吧! + 載入中… + 這個目錄中沒有任何檔案. 在檔案上輕觸來顯示更多資訊。 容量: 類型: @@ -92,6 +95,7 @@ 下傳失敗, 您需要重新登入 選擇帳號 同步失敗 + 同步作業失敗, 您需要重新登入 同步 %1$s 未完成 無效的密碼 %1$s 出現衝突 @@ -100,12 +104,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 +238,12 @@ 圖片預覽 無法顯示圖片 %1$s 無法被複製到本地目錄 %2$s + 上傳目錄 很抱歉, 您的伺服器並未開啟分享的功能. 請聯絡您的 伺服器管理員. + 無法分享這個檔案或目錄. 請檢查它們是否存在 在分享檔案或目錄時發生了錯誤 + 無法取消分享這個檔案或目錄. 請檢查它們是否存在 在取消分享檔案或目錄時發生了錯誤 寄出 複製連結 @@ -245,8 +254,31 @@ 在等待伺服器回應時發生了錯誤, 這個操作將無法被完成 這個操作無法完成, 無法使用伺服器 + 您沒有權限 %s + 重新命名檔案 + 刪除檔案 + 分享檔案 + 取消分享檔案 + 建立檔案 + 上傳這個目錄 + 這個檔案已經不存在於伺服器中 帳號 + 新增帳號 + 安全連線被轉向到一個非安全的連線 + 紀錄 + 傳送歷史記錄 + ownCloud Android 應用程式記錄 + 資料載入中... 必須驗證 密碼錯誤 + 移動 + 找不到任何檔案. 你可以新增一個目錄! 選擇 + 無法搬移. 請檢查該檔案是否存在 + 把一個目錄搬移到其底下的子目錄是不可能的 + 這個檔案已經存在於目的目錄中 + 在移動檔案或目錄時發生了錯誤 + 移動這個檔案 + 即時上傳 + 安全性 diff --git a/res/values/strings.xml b/res/values/strings.xml index 03b53623..af5a684d 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 @@ -251,6 +259,7 @@ 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. @@ -302,4 +311,7 @@ An error occurred while trying to move this file or folder to move this file + Instant Uploads + Security + diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index 945e853c..3b8b3e81 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -21,35 +21,41 @@ - - - + + - - - - - + + + + + + + + + @@ -65,4 +71,4 @@ - \ No newline at end of file + diff --git a/setup_env.sh b/setup_env.sh index e6047528..ae421423 100755 --- a/setup_env.sh +++ b/setup_env.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e git submodule init git submodule update 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/operations/CreateFolderOperation.java b/src/com/owncloud/android/operations/CreateFolderOperation.java index b0e7ed9d..4df8b3df 100644 --- a/src/com/owncloud/android/operations/CreateFolderOperation.java +++ b/src/com/owncloud/android/operations/CreateFolderOperation.java @@ -84,21 +84,36 @@ public class CreateFolderOperation extends SyncOperation implements OnRemoteOper } } - /** * Save new directory in local database */ public void saveFolderInDB() { - OCFile newDir = new OCFile(mRemotePath); - newDir.setMimetype("DIR"); - long parentId = getStorageManager().getFileByPath(FileStorageUtils.getParentPath(mRemotePath)).getFileId(); - newDir.setParentId(parentId); - newDir.setModificationTimestamp(System.currentTimeMillis()); - getStorageManager().saveFile(newDir); + if (mCreateFullPath && getStorageManager(). + getFileByPath(FileStorageUtils.getParentPath(mRemotePath)) == null){// When parent + // of remote path + // is not created + String[] subFolders = mRemotePath.split("/"); + String composedRemotePath = "/"; - Log_OC.d(TAG, "Create directory " + mRemotePath + " in Database"); + // For each antecesor folders create them recursively + for (int i=0; i 0 && uploadPath.charAt(uploadPath.length()-1) == slashString.charAt(0)) { + uploadPath = uploadPath.substring(0, uploadPath.length()-1); + } + + if (uploadPath.isEmpty()) { // Set default instant upload path + uploadPath = getString(R.string.instant_upload_path); + }else { + if (!uploadPath.startsWith(slashString)) { // Add initial slash on path if necessary + uploadPath = slashString.concat(uploadPath); + } + } + return uploadPath; + } + + /** + * Load upload path set on preferences + */ + private void loadInstantUploadPath() { + SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + mUploadPath = appPrefs.getString("instant_upload_path", getString(R.string.instant_upload_path)); + } + + /** + * Save the "Instant Upload Path" on preferences + */ + private void saveInstantUploadPathOnPreferences() { + SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + SharedPreferences.Editor editor = appPrefs.edit(); + editor.putString("instant_upload_path", mUploadPath); + editor.commit(); + } } diff --git a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java index 0d10e7fa..9a2a0d3a 100644 --- a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java +++ b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java @@ -17,11 +17,18 @@ */ 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.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -41,7 +48,8 @@ import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; 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 +59,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,6 +70,12 @@ 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, @@ -72,12 +86,20 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { 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; @@ -220,8 +242,14 @@ 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()) @@ -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,106 @@ 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(); + } } diff --git a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java index 3665fe0b..0b1059fc 100644 --- a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -386,5 +386,17 @@ public class OCFileListFragment extends ExtendedListFragment { mFile = directory; } } + + public void sortByName(boolean descending) { + mAdapter.setSortOrder(FileListListAdapter.SORT_NAME, descending); + } + + public void sortByDate(boolean descending) { + mAdapter.setSortOrder(FileListListAdapter.SORT_DATE, descending); + } + + public void sortBySize(boolean descending) { + mAdapter.setSortOrder(FileListListAdapter.SORT_SIZE, descending); + } } diff --git a/src/com/owncloud/android/utils/FileStorageUtils.java b/src/com/owncloud/android/utils/FileStorageUtils.java index 58dda0da..3895821d 100644 --- a/src/com/owncloud/android/utils/FileStorageUtils.java +++ b/src/com/owncloud/android/utils/FileStorageUtils.java @@ -26,6 +26,8 @@ import com.owncloud.android.lib.resources.files.RemoteFile; import android.annotation.SuppressLint; import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; import android.net.Uri; import android.os.Environment; import android.os.StatFs; @@ -73,7 +75,9 @@ public class FileStorageUtils { } public static String getInstantUploadFilePath(Context context, String fileName) { - String uploadPath = context.getString(R.string.instant_upload_path); + SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context); + String uploadPathdef = context.getString(R.string.instant_upload_path); + String uploadPath = pref.getString("instant_upload_path", uploadPathdef); String value = uploadPath + OCFile.PATH_SEPARATOR + (fileName == null ? "" : fileName); return value; } @@ -120,4 +124,4 @@ public class FileStorageUtils { return file; } -} \ No newline at end of file +} 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!