From: tobiasKaminsky Date: Fri, 14 Aug 2015 13:39:35 +0000 (+0200) Subject: Merge remote-tracking branch 'upstream/video_thumbnail' into video_thumbnail X-Git-Tag: beta-20151202~1^2~2 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/c50aa8bc2ad90bad0e1f97a3a7bab461dc05b0d1?hp=921e38f13d40ce9bc288c3ad9453e16e4ba1d411 Merge remote-tracking branch 'upstream/video_thumbnail' into video_thumbnail --- diff --git a/.gitmodules b/.gitmodules index 38f0f582..7ccbef03 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,7 +2,7 @@ [submodule "owncloud-android-library"] path = owncloud-android-library url = git://github.com/owncloud/android-library.git - branch = develop + branch = master [submodule "ocdoc"] path = user_manual/ocdoc url = https://github.com/owncloud/documentation diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 2d989b1e..5b9fc717 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -18,8 +18,8 @@ along with this program. If not, see . --> + android:versionCode="10700200" + android:versionName="1.7.2" xmlns:android="http://schemas.android.com/apk/res/android"> @@ -36,7 +36,7 @@ diff --git a/CHANGELOG.md b/CHANGELOG.md index 308e8a7d..6934155f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +## 1.7.2 (July 2015) +- New navigation drawer +- Improved Passcode +- Automatic grid view just for folders full of images +- More characters allowed in file names +- Support for servers in same domain, different path +- Bugs fixed: + + Frequent crashes in folder with several images + + Sync error in servers with huge quota and external storage enable + + Share by link error + + Some other crashes and minor bugs ## 1.7.1 (April 2015) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 63bfd7ff..1dc53b42 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,23 +27,23 @@ Thanks for wanting to contribute source code to ownCloud. That's great! Before we're able to merge your code into the ownCloud app for Android, you need to sign our [Contributor Agreement][agreement]. ### Guidelines -* Contribute your code in the branch 'develop'. It will give us a better chance to test your code before merging it with stable code. -* For your first contribution, start a pull request on develop and send us the signed [Contributor Agreement][agreement]. +* Contribute your code in the branch 'master'. It will give us a better chance to test your code before merging it with stable code. +* For your first contribution, start a pull request on master and send us the signed [Contributor Agreement][agreement]. * Keep on using pull requests for your next contributions although you own write permissions. [agreement]: http://owncloud.org/about/contributor-agreement/ -### 1. Fork and download android/develop repository: +### 1. Fork and download android/master repository: NOTE: You must have the git installation folder in your environment variable PATH to perform the next operations. * In a web browser, go to https://github.com/owncloud/android, and click the 'Fork' button near the top right corner. * In a command line prompt, clone your new repo: ```git clone git@github.com:YOURGITHUBNAME/android.git```. * Move to the project folder with ```cd android```. -* Checkout the remote branch 'develop' in your own local branch: ```git checkout -b develop remotes/origin/develop```. -* Pull any changes from your remote branch 'develop': ```git pull origin develop``` +* Checkout the remote branch 'master' in your own local branch: ```git checkout -b master remotes/origin/master```. +* Pull any changes from your remote branch 'master': ```git pull origin master``` * Make official ownCloud repo known as upstream: ```git remote add upstream git@github.com:owncloud/android.git``` -* Make sure to get the latest changes from official android/develop branch: ```git pull upstream develop``` +* Make sure to get the latest changes from official android/master branch: ```git pull upstream master``` ### 7. Create pull request: @@ -53,18 +53,16 @@ NOTE: You must sign the [Contributor Agreement][1] before your changes can be ac * Commit your changes locally: "git commit -a" * Push your changes to your GitHub repo: "git push" * Browse to https://github.com/YOURGITHUBNAME/android/pulls and issue pull request -* Click "Edit" and set "base:develop" -* Again, click "Edit" and set "compare:develop" * Enter description and send pull request. ### 8. 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. +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/master. * git fetch upstream -* git checkout -b my_new_develop_branch upstream/develop -* If you want to rename that branch later: "git checkout -b my_new_develop_branch_with_new_name" -* Push branch to server: "git push -u origin name_of_local_develop_branch" +* git checkout -b my_new_master_branch upstream/master +* If you want to rename that branch later: "git checkout -b my_new_master_branch_with_new_name" +* Push branch to server: "git push -u origin name_of_local_master_branch" * Use GitHub to issue PR diff --git a/README.md b/README.md index dd75d3f2..e3ff5353 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,20 @@ -This is the Android client for [ownCloud][0]. +#This is the Android client for [ownCloud][0] The app performs file synchronization with an ownCloud server. Other ownCloud features may be added in the future, but they are not a priority right now. +## Build Status on +Git master: ![Build Status](https://api.travis-ci.org/owncloud/android.svg?branch=master) + +Git stable: ![Build Status](https://api.travis-ci.org/owncloud/android.svg?branch=stable) + +## Development + +### Project Setup Make sure you read [SETUP.md][1] when you start working on this project. [0]: https://github.com/owncloud/core [1]: https://github.com/owncloud/android/blob/master/SETUP.md + +### Contributing +Please see [Contribution Guidelines](https://owncloud.org/contribute/). Fork this repository and contribute back using +[pull requests](https://github.com/owncloud/android/pulls). All pull requests should be based on, and targeted to, the ['master'](https://github.com/owncloud/android/tree/master) branch. diff --git a/SETUP.md b/SETUP.md index e1148167..4f9cef9d 100644 --- a/SETUP.md +++ b/SETUP.md @@ -36,10 +36,10 @@ Next steps will assume you have a Github account and that you will get the code * Open a terminal and go on with the next steps in it. * Clone your forked repository: ```git clone git@github.com:YOURGITHUBNAME/android.git```. * Move to the project folder with ```cd android```. -* Checkout the remote branch 'develop' in your own local branch 'develop': ```git checkout -b develop remotes/origin/develop```. -* Pull any changes from your remote branch 'develop': ```git pull origin develop``` +* Checkout the remote branch 'master' in your own local branch 'master': ```git checkout -b master remotes/origin/master```. +* Pull any changes from your remote branch 'master': ```git pull origin master``` * Make official ownCloud repo known as upstream: ```git remote add upstream git@github.com:owncloud/android.git``` -* Make sure to get the latest changes from official android/develop branch: ```git pull upstream develop``` +* Make sure to get the latest changes from official android/master branch: ```git pull upstream master``` At this point you can continue using different tools to build the project. Section 2, 3, 4, 5 and 6 describe the existing alternatives. diff --git a/build.gradle b/build.gradle index 209b7ee9..a5c0431f 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:1.0.0' + classpath 'com.android.tools.build:gradle:1.2.3' } } @@ -28,7 +28,7 @@ dependencies { android { compileSdkVersion 19 - buildToolsVersion "20.0.0" + buildToolsVersion "22.0.1" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' diff --git a/oc_jb_workaround/AndroidManifest.xml b/oc_jb_workaround/AndroidManifest.xml index 65fc3648..c5163910 100644 --- a/oc_jb_workaround/AndroidManifest.xml +++ b/oc_jb_workaround/AndroidManifest.xml @@ -1,8 +1,8 @@ + android:versionCode="0100024" + android:versionName="1.0.24" > + android:text="@string/favorite" /> - + + + + - + android:layout_width="fill_parent" + android:id="@+id/frameLayout1" + android:layout_below="@+id/drawer_username" + android:layout_above="@+id/linearLayout1"> + + + + + + diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index 1ad8e9cc..0a15186a 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -11,16 +11,27 @@ إعدادات تفاصيل أرسل + ترتيب + ترتيب بـ + + الف باء + الأحدث إلى الاقدم + + كل الملفات + الإعدادات + سجلّ + إغلاق عام المزيد حسابات إدارة الحسابات + الرقم السري رفع الصورة مباشرة رفع صورة المؤخذة عبر الكاميرا رفع فيديو مباشرة @@ -34,6 +45,8 @@ توصية الى صديق ملاحظات الدمغة. + تذكر مشاركة الموقع + تذكر آخر موقع رُفِعَ جرب %1$s على جهازك الذكي تحقق من الخادم عنوان الخادم https://… @@ -55,11 +68,8 @@ يتم الرفع منذ ثواني لا يوجد شيء هنا. إرفع بعض الملفات! - جاري التحميل ... - مجلد - مجلدات - ملف - ملفات + تحميل ... + لا توجد ملفات في هذا المجلد اضغظ على الملف ليتم عرض خيارات أكثر الحجم : النوع : @@ -168,7 +178,7 @@ الخادم الخاص بك لم يعد الإتصال بهويتك الصحيحة, الرجاء الإتصال بالمسؤول لا يمكن المصادقة من الخادم - جعل الملف محدثا + المفضلة إعادة التسمية حذف هل تريد حقاً حذف %1$s ؟ @@ -226,11 +236,7 @@ رفع الصور من خلال الـ WiFi فقط رفع فيديو عبر الواي فاي حصراً /InstantUpload - تعارض في التحديث - الملف %s غير الاحتفاظ بالنسختين - استبدال - عدم الرفع معاينة الصورة لا يمكن عرض هذه الصورة %1$s تعذر نسخه %2$s للمجلد المحلي @@ -248,6 +254,7 @@ تعذر إكمال العملية، الخادم غير متوفر حسابات + سجل كلمة مرور خاطئة اختيار الأمان diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml index 3ae6219d..1e4b8f30 100644 --- a/res/values-az/strings.xml +++ b/res/values-az/strings.xml @@ -64,12 +64,7 @@ Yüklənmə gedir saniyələr öncə Burda heçnə yoxdur. Nese yükləyin! - Yüklənir... Bu qovluqda heç bir fayl movcud deyil. - qovluq - qovluqlar - fayl - fayllar Faylın üstünə sıxın ki, əlavə məlumat ekrana çıxsın. Həcm: Tip: @@ -185,7 +180,7 @@ Aşağıda göstərilən %5$s-də olan daxili və xarici fayl(lar) link edilmiş 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 Hesab göstərilən avadanlıqda mövcud deyil - Faylı gündəmdə saxla + İstəkli Adı dəyiş Sil Siz həqiqətən %1$s silmək istəyirsiniz? @@ -243,11 +238,7 @@ Aşağıda göstərilən %5$s-də olan daxili və xarici fayl(lar) link edilmiş Şəkilləri yalnız WiFi üzərindən yüklə Videoları yalnız WiFi üzərindən yüklə /CəldYükləmə - Yüklənmə konflikti - Uzaq fayl %s local faylla sinxronizasiya edilmədi. Faylın kontentinin serverdə dəyişdirilməsinə davam edirik. Birlikdə saxla - Sil yenidən yaz - Yükləmə Şəkili göstər Bu şəkil göstərilə bilməz %1$s nüsxələnə bilməz %2$s local qovluğa diff --git a/res/values-bg-rBG/strings.xml b/res/values-bg-rBG/strings.xml index a57b84a4..3edf84eb 100644 --- a/res/values-bg-rBG/strings.xml +++ b/res/values-bg-rBG/strings.xml @@ -2,7 +2,7 @@ %1$s Android приложение версия %1$s - Обновяване на профила + Обновяви профила Качване Съдържание от други приложения Файлове @@ -21,12 +21,17 @@ Biggest - Smallest--> + Всички файлове + Настройки + Логове + Затвори Общи Още Профили Управление на профилите + Заключваща парола Незабавно качване на снимки Незабвано качване на снимки направени с камерата Незабавно качване на видео @@ -64,12 +69,8 @@ Качване преди секунди Тук няма нищо. Качете нещо! - Зареждане... + Зарежда… Няма файлове в тази папка. - папка - папки - файл - файл Натисни върху файл, за да видиш допълнителна информация. Размер: Тип: @@ -78,6 +79,7 @@ Изтегляне Обновяване на файла Файлът беше преименуван на %1$s по време на качването. + Списък с изгледи Връзка за споделяне Премахване връзка за споделяне Да @@ -130,6 +132,15 @@ Локален: %1$s Отдалечен: %1$s Няма достатъчно място за копирането на избраните файлове до папка %1$s. Да се преместят ли вместо това? + Моля, въведи парола за достъп + Въведи парола за достъп + Паролата ще се изисква при всяко стартиране на приложението + Моля, въведи парола за достъп отново + Премахни парола + Паролите не съвпадат + Грешна парола + Паролата премахната + Паролата е запаметена %1$s музикален плеър %1$s (пусната) %1$s (се зарежда) @@ -181,7 +192,8 @@ Вашият сървър не връща правилен потребителски индентификатор. Моля, свържете се с администратора. Неуспешен опит за оторизиране с този сървър. - Поддържане на файла обновен. + Профила не съществува на устройството все още + Любими Преименуване Премахване Наистина ли искате да изтриете %1$s ? @@ -199,11 +211,13 @@ Съдържанието на файла е вече синхронизирано Папката не може да бъде създадена Забранени символи: / \\ < > : \" | ? * + Името на файла съдържа поне един невалиден символ Името на файла не може да бъде празно Изчакайте малко Неочакван проблем; моля, изберете файла от друга програма. Не е избран файл Изпращане на връзката до... + Копира файла от личното хранилище Вписване с oAuth2 Свързване с оАутх2 сървър... Самоличността на сайта не може да бъде проверена. @@ -239,11 +253,7 @@ Качване на снимки само през WiFi Качване на видео само през WiFi /InstantUpload - Обновяване на конфликтите - Външния файл %s не е синхронизиран с локалния. Ако продължите, ще замените съдържанието на файла на сървъра. Запазване и на двата - Презаписване - Да не се качва Преглед на изображението Изображението не може да бъде показано %1$s не може да бъде копиран в локалната папка %2$s @@ -295,6 +305,19 @@ Сигурност Качване на видео път Свалянето на директорията %1$s не може да бъде завършено + споделен + с теб + %1$s споделен \"%2$s\" с теб Обнови връзката Адрес на сървъра + Няма достатъчно памет + Потребителско име + 1 папка + %1$d папки + 1 файл + 1 файл, 1 папка + 1 файл, %1$d папки + %1$d файла + %1$d файла, 1 папка + %1$d файла, %2$d папки diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml index 643ba6b3..4907201b 100644 --- a/res/values-bn-rBD/strings.xml +++ b/res/values-bn-rBD/strings.xml @@ -55,7 +55,6 @@ আপলোড করা হচ্ছে সেকেন্ড পূর্বে এখানে কিছুই নেই। কিছু আপলোড করুন ! - লোড হচ্ছে.... এই ফোলডারে কোন ফাইল নেই অতিরিক্ত তথ্য প্রদর্শন করতে চাইলে ফাইলে ট্যাপ দিন আয়তনঃ @@ -166,7 +165,7 @@ আপনার সার্ভার একটি সঠিক ব্যবহারকারী আইডি দেয়না। দয়া করে প্রশাসকের সংগে যোগাযোগ করুন ⇥ এই সার্ভারের বিপরীতে অনুমোদন প্রদান করা গেলনা - ফাইল নবায়ন করে রাখুন + প্রিয়জন পূনঃনামকরণ অপসারণ আপনি কি সত্যিই %1$s অপসারণ করতে চান? @@ -224,11 +223,7 @@ শুধুমাত্র ওয়াইফাই দিয়ে ছবি আপলোড করুন শুধুমাত্র ওয়াইফাই দিয়ে ভিডিও আপলোড করুন /তাৎক্ষণিক আপলোড - নবায়নকরণে দ্বন্দ - স্থানীয় ফাইল আর দুরবর্তী ফাইল %s এক নয়। এগোতে চাইলে সার্ভারের ফাইলের কনটেন্ট প্রদিস্থাপিত হবে। উভয়কে রাখ - উপরে লেখ - আপলোড কোরোনা ছবি প্রাকদর্শন ছবিটি প্রদর্শন করা যাবেনা %1$s কে %2$s স্থানীয় ফোল্ডারে কপি করা গেলনা diff --git a/res/values-bn-rIN/strings.xml b/res/values-bn-rIN/strings.xml index 9e2c90c8..d71af21a 100644 --- a/res/values-bn-rIN/strings.xml +++ b/res/values-bn-rIN/strings.xml @@ -15,7 +15,6 @@ ইউজারনেম ফাইলস নতুন ফোল্ডার - লোড করা হচ্ছে... ডাউনলোড করুন বাতিল করা ভুল diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml index b3bc7a18..70c12904 100644 --- a/res/values-bs/strings.xml +++ b/res/values-bs/strings.xml @@ -29,6 +29,7 @@ Nepoznata greÅ¡ka Promijeni lozinku Kreiraj račun + Favorit Preimenuj PoÅ¡alji diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 36f28460..39877421 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -62,12 +62,7 @@ S\'està pujant segons enrere Res per aquí. Pugeu alguna cosa! - Carregant... No hi ha arxius a aquesta carpeta - carpeta - carpetes - fitxer - fitxers Feu clic en un fitxer per mostrar informació addicional. Mida: Tipus: @@ -176,7 +171,7 @@ %1$s no permet comptes múltiples El servidor no retorna una id d\'usuari correcta, contacteu amb l\'administrador. No es pot autenticar en aquest servidor - Mantén el fitxer actualitzat + Preferits Reanomena Elimina Esteu segur que voleu eliminar %1$s? @@ -234,11 +229,7 @@ Puja les fotos només via WiFi Puja les fotos només via WiFi /CarregaInstantània - Conflicte d\'actualització - El fitxer remot %s no està sincronitzat amb el fitxer local. Si continueu es substituirà el contingut del fitxer en el servidor. Mantén-los ambdós - Sobrescriu - No el pugis Visualització prèvia d\'imatge Aquesta imatge no es pot mostrar %1$s no s\'ha pogut copiar a la carpeta local %2$s diff --git a/res/values-cs-rCZ/strings.xml b/res/values-cs-rCZ/strings.xml index 5de9318e..0d5ed858 100644 --- a/res/values-cs-rCZ/strings.xml +++ b/res/values-cs-rCZ/strings.xml @@ -69,12 +69,8 @@ Odesílání před pár sekundami Žádný obsah. Nahrajte něco! - Načítám... + Načítání... V tomto adresáři nejsou žádné soubory. - adresář - adresáře - soubor - soubory Více informací získáte klepnutím na soubor. Velikost: Typ: @@ -83,6 +79,7 @@ Stáhnout Obnovit soubor Soubor byl v průběhu odesílání přejmenován na %1$s + Náhled seznamu Sdílet odkaz ZruÅ¡it sdílení odkazu Ano @@ -195,7 +192,8 @@ Váš server nevrací správné přihlaÅ¡ovací ID, kontaktujte prosím svého správce systému Není možné provést ověření V zařízení není zatím nastaven účet - Udržovat soubor aktuální + Oblíbené + Odebrat z oblíbených Přejmenovat Odstranit Opravdu chcete odstranit %1$s ? @@ -213,6 +211,7 @@ Obsah souboru je již synchronizován Adresář nemohl být vytvořen Zakázané znaky: / \\ < > : \" | ? * + Jméno souboru obsahuje aelspoň jeden neplatný znak Název nemůže být prázdný Počkejte chvíli Neočekávaný problém - zkuste zvolit soubor jinou aplikací @@ -254,11 +253,11 @@ Odesílat obrázky pouze přes WiFi Nahrávat videa pouze přes WiFi /InstantUpload - Konflikt při aktualizaci - Vzdálený soubor %s není synchronizován s místním souborem. Pokračování přepíše obsah souboru na serveru. + Konflikt souboru + Které soubory chcete ponechat? Pokud zvolíte obě verze, zkopírovaný soubor bude mít název doplněný o číslo. Ponechat oba - Přepsat - Nenahrávat + Použít lokální verzi + Použít serverovou verzi Náhled obrázku Obrázek nelze zobrazit %1$s nelze zkopírovat do místního adresáře %2$s @@ -310,7 +309,20 @@ správce systému. Zabezpečení Cesta pro nahrávání videí Stažení adresáře %1$s nemohlo být dokončeno + sdílené + s vámi + %1$s s vámi sdílí \"%2$s\" + \"%1$s\" ti byl nasdílen Obnovit připojení Adresa serveru Nedostatek paměti + Uživatelské jméno + 1 adresář + %1$d adresáře(ů) + 1 soubor + 1 soubor, 1 adresář + 1 soubor, %1$d adresáře(ů) + %1$d soubory(ů) + %1$d soubory(ů), 1 adresář + %1$d soubory(ů), %2$d adresáře(ů) diff --git a/res/values-cy-rGB/strings.xml b/res/values-cy-rGB/strings.xml index 08b31ad2..d28261a9 100644 --- a/res/values-cy-rGB/strings.xml +++ b/res/values-cy-rGB/strings.xml @@ -88,7 +88,6 @@ Fersiwn gweinydd heb ei gydnabod Methwyd creu cysylltiad Sefydlwyd cysylltiad diogel - Cadw\'r ffeil yn gyfredol Ailenwi Gwaredu Lleol yn unig @@ -129,11 +128,7 @@ Algorithm: Llwytho lluniau i fyny drwy WiFi\'n unig /LlwythoSyth - Gwrthdaro diweddaru - Nid yw ffeil bell %s wedi cydamseru â\'r ffeil leol. Bydd parhau yn amnewid cynnwys y ffeil ar y gweinydd. Cadw\'r ddau - Trosysgrifio - Peidio llwytho i fyny Anfon Cyfrifon diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index a659491e..1c744d97 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -71,10 +71,6 @@ Her er tomt. Upload noget! Indlæser... Der er ingen filer i denne mappe. - mappe - mapper - fil - filer Tryk pÃ¥ en fil for at vise yderligere information. Størelse: Type: @@ -196,7 +192,8 @@ Din server retunere ikke et korrekt bruger-id. Kontakt venligst din administrator Kan ikke autentificere mod denne server Kontoen findes endnu ikke pÃ¥ enheden - Hold filen opdateret + Foretrukken + Fjern markering som foretrukket Omdøb Fjern Er du sikker pÃ¥ at du vil fjerne %1$s ? @@ -214,6 +211,7 @@ Filindholdet allerede synkroniseret Kunne ikke oprette mappe Ugyldige tegn: / \\ < > : \" | ? * + Filnavnet indeholder mindst ét ugyldigt tegn Filnavnet kan ikke stÃ¥ tomt. Vent et øjeblik Uventet problem; prøv venligst en anden applikation til at vælge filen @@ -255,11 +253,11 @@ Upload kun billeder via WiFi Upload kun videoer via WiFi /Øjeblikkelig upload - Opdaterings konflikt - Ekstern fil %s er ikke synkroniseret med lokal fil. At fortsætte vil erstatte indholdet af filen pÃ¥ serveren. + Filkonflikt + Hvilke filer ønsker du at beholde? Hvis du vælger begge versioner, sÃ¥ vil den lokale fil fÃ¥ et tal tilføjet til sit navn. Behold begge - Overskriv - Upload ikke + Benyt lokal version + Benyt serverversionen ForhÃ¥ndsvisning af billede Dette billede kan ikke vises %1$s kunne ikke kopieres til %2$s lokale mappe @@ -313,8 +311,18 @@ Download af %1$s mappe kunne ikke fuldføres delt med dig + %1$s delte \"%2$s\" med dig + \"%1$s\" er blevet delt med dig Genopfrisk forbindelsen Serveradresse Ikke tilstrækkelig hukommelse Brugernavn + 1 mappe + %1$d mapper + 1 fil + 1 fil, 1 mappe + 1 fil, %1$d mapper + %1$d filer + %1$d filer, 1 mape + %1$d filer, %2$d mapper diff --git a/res/values-de-rAT/strings.xml b/res/values-de-rAT/strings.xml index 7f83c6e4..a99ab891 100644 --- a/res/values-de-rAT/strings.xml +++ b/res/values-de-rAT/strings.xml @@ -52,12 +52,7 @@ Lade hoch Sekunden zuvor Es ist nichts hier. Lade etwas hoch! - Lade... Es sind keine Dateien in diesem Ordner. - Ordner - Ordner - Datei - Dateien Auf eine Datei drücken, um mehr Informationen zu erhalten. Größe: Typ: diff --git a/res/values-de-rDE/strings.xml b/res/values-de-rDE/strings.xml index 9674d481..436dafe6 100644 --- a/res/values-de-rDE/strings.xml +++ b/res/values-de-rDE/strings.xml @@ -21,8 +21,12 @@ Biggest - Smallest--> + Alle Dateien + Einstellungen + Protokolle + Schließen Allgemein Mehr Konten @@ -65,12 +69,8 @@ Lade hoch Gerade eben Alles leer. Laden Sie etwas hoch! - Ladevorgang … + Lade… Es befinden sich keine Dateien in diesem Ordner. - Ordner - Ordner - Datei - Dateien Klicken Sie auf eine Datei für weitere Informationen. Größe: Art: @@ -79,6 +79,7 @@ Herunterladen Datei aktualisieren Datei wurde wärend des Uploads zu %1$s umbenannt + Listen-Layout Link teilen Link nicht mehr teilen Ja @@ -192,7 +193,8 @@ ⇥ Die Legitimierung gegenüber dem Server konnte nicht durchgeführt werden Das Benutzerkonto ist bis jetzt noch nicht auf dem Gerät vorhanden - Datei aktuell halten + Favorit + Nicht mehr favorisieren Umbenennen Löschen Möchten Sie %1$s wirklich löschen? @@ -210,6 +212,7 @@ Dateiinhalte bereits synchronisiert Ordner konnte nicht erstellt werden Verbotene Zeichen: / \\ < > : \" | ? * + Der Dateiname enthält mindestens ein ungültiges Zeichen Dateiname darf nicht leer sein Bitte warten Sie einen Moment. Ein unerwartetes Problem ist aufgetreten. Bitte versuchen Sie, die Datei in einer anderen App zu öffnen. @@ -251,11 +254,11 @@ Fotos nur über WiFi hochladen Videos nur über WiFi hochladen /SofortUpload - Konflikt beim Update - Serverdatei %s ist nicht synchronisiert mit der lokalen Datei. Weitermachen bedeutet, dass der Inhalt der Datei auf dem Server ersetzt wird. + Dateikonflikt + Welche Datei möchtest du behalten? Wenn du beide Versionen auswählst, wird der lokalen Datei eine Zahl am Ende Ihres Dateiname angehangen. Beide behalten - Überschreiben - Nicht hochladen + Benutze lokale Version + Benutze Version auf dem Server Bildvorschau Dieses Bild kann nicht angezeigt werden %1$s konnte nicht in den lokalen %2$s Ordner kopiert werden @@ -307,7 +310,20 @@ Sicherheit Verzeichnis zum Hochladen der Videos Herunterladen des %1$s - Ordners konnte nicht abgeschlossen werden + geteilt + Mit Ihnen + %1$s hat \"%2$s\" mit Ihnen geteilt + \"%1$s\" wurde mit dir geteilt Verbindung aktualisieren Serveradresse Nicht genügend Speicher + Benutzername + 1 Ordner + %1$d Ordner + 1 Datei + 1 Datei, 1 Ordner + 1 Datei, %1$d Ordner + %1$d Dateien + %1$d Dateien, 1 Ordner + %1$d Dateien, %2$d Ordner diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index b230acee..12a7b138 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -21,9 +21,12 @@ Biggest - Smallest--> + Alle Dateien Einstellungen + Protokolle + Schließen Allgemein Mehr Konten @@ -66,12 +69,8 @@ Lade hoch Gerade eben Alles leer. Lade etwas hoch! - Laden… + Lade… Es befinden sich keine Dateien in diesem Ordner. - Ordner - Ordner - Datei - Dateien Klicken Sie auf eine Datei für weitere Informationen. Größe: Art: @@ -80,6 +79,7 @@ Herunterladen Datei aktualisieren Datei wurde wärend des Uploads zu %1$s umbenannt + Listen-Layout Link teilen Link nicht mehr freigeben Ja @@ -193,7 +193,8 @@ Die Authentifizierung gegenüber dem Server konnte nicht durchgeführt werden Das Benutzerkonto ist bis jetzt noch nicht auf dem Gerät vorhanden - Datei aktuell halten + Favorisieren + Favorit entfernen Umbenennen Löschen Möchtest Du %1$s wirklich löschen? @@ -211,6 +212,7 @@ Dateiinhalte bereits synchronisiert Verzeichnis konnte nicht erstellt werden Verbotene Zeichen: / \\ < > : \" | ? * + Der Dateiname enthält mindestens ein ungültiges Zeichen Dateiname darf nicht leer sein Bitte warte einen Moment. Ein unerwartetes Problem ist aufgetreten. Bitte versuche, die Datei in einer anderen App zu öffnen @@ -252,11 +254,11 @@ Fotos nur über WiFi hochladen Videos nur über WiFi hochladen /SofortUpload - Konflikt beim Update - Serverdatei %s ist nicht synchronisiert mit der lokalen Datei. Weitermachen bedeutet, dass der Inhalt der Datei auf dem Server ersetzt wird. + Dateikonfilikt + Welche Datei möchtest du behalten? Wenn du beide Versionen auswählst, wird der lokalen Datei eine Zahl am Ende Ihres Dateiname angehangen. Beide behalten - Überschreiben - Nicht hochladen + Benutze lokale Version + Benutze Version auf dem Server Bildvorschau Dieses Bild kann nicht angezeigt werden %1$s konnte nicht in den lokalen %2$s Ordner kopiert werden @@ -308,7 +310,20 @@ Sicherheit Verzeichnis zum Hochladen der Videos Herunterladen des %1$s - Ordners konnte nicht abgeschlossen werden + geteilt + Mit Dir + %1$s hat \"%2$s\" mit Dir geteilt + \"%1$s\" wurde mit dir geteilt Verbindung aktualisieren Serveradresse Nicht genügend Speicher + Benutzername + 1 Ordner + %1$d Ordner + 1 Datei + 1 Datei, 1 Ordner + 1 Datei, %1$d Ordner + %1$d Dateien + %1$d Dateien, 1 Ordner + %1$d Dateien, %2$d Ordner diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 1da5dd6f..0ccada8d 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -71,10 +71,6 @@ Δεν υπάρχει τίποτα εδώ. Μεταφορτώστε κάτι! Φόρτωση... Δεν υπάρχουν αρχεία σε αυτό τον φάκελο. - φάκελος - φάκελοι - αρχείο - αρχεία Αγγίξτε κάποιο αρχείο για να προβάλετε περισσότερες πληροφορίες. Μέγεθος: Τύπος: @@ -197,7 +193,8 @@ ⇥ Δεν είναι δυνατή η πιστοποίηση με αυτόν το διακομιστή Ο λογαριασμός δεν υπάρχει στη συσκευή ακόμα. - Διατήρηση αρχείου σε ενημέρωση + Αγαπημένο + Κατάργηση από τα αγαπημένα Μετονομασία Αφαίρεση Θέλετε στ\' αλήθεια να αφαιρέσετε το %1$s; @@ -257,11 +254,11 @@ Μεταφόρτωση εικόνων μόνο μέσω WiFi Μεταφόρτωση βίντεο μόνο μέσω WiFi /InstantUpload - Σύγκρουση ενημερώσεων - Το απομακρυσμένο αρχείο %s δεν είναι συγχρονισμένο με το τοπικό αρχείο. Αν συνεχίσετε θα αντικατασταθεί το περιεχόμενο του αρχείου στο διακομιστή. + Διένεξη αρχείων + Ποια αρχεία θέλετε να κρατήσετε; Αν επιλέξετε και τις δύο εκδοχές, στο τοπικό αρχείο θα προστεθεί ένας αριθμός στο όνομά του. Διατήρηση και των δύο - Αντικατάσταση - Να μην μεταφορτωθεί + Χρήση τοπικής εκδοχής + Χρήση εκδοχής διακομιστή Προεπισκόπηση εικόνας Αυτή η εικόνα δεν μπορεί να προβληθεί Το %1$s δεν μπόρεσε να αντιγραφεί στον τοπικό φάκελο %2$s @@ -316,8 +313,17 @@ διαμοιρασμένα με εσάς Ο %1$s διαμοιράστηκε το \"%2$s\" με εσάς + \"%1$s\" μοιράστηκε μαζί σας Ανανέωση σύνδεσης Διεύθυνση διακομιστή Δεν υπάρχει αρκετή μνήμη Όνομα χρήστη + 1 φάκελος + %1$d φάκελοι + 1 αρχείο + 1 αρχείο, 1 φάκελος + 1 αρχείο, %1$d φάκελοι + %1$d αρχεία + %1$d αρχεία, 1 φάκελος + %1$d αρχεία, %2$d φάκελοι diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index aecbcbe1..2ee4e383 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -65,12 +65,7 @@ Uploading seconds ago Nothing in here. Upload something! - Loading... There are no files in this folder. - folder - folders - file - files Tap on a file to display additional information. Size: Type: @@ -192,7 +187,8 @@ Cannot authenticate against this server Account does not exist in the device yet - Keep file up to date + Favourite + Unfavourite Rename Remove Do you really want to remove %1$s? @@ -251,11 +247,7 @@ Upload pictures via WiFi only Upload videos via WiFi only /InstantUpload - Update conflict - Remote file %s is not synchronised with local file. Continuing will replace content of file on server. Keep both - Overwrite - Don\'t upload Image preview This image cannot be shown %1$s could not be copied to %2$s local folder diff --git a/res/values-eo/strings.xml b/res/values-eo/strings.xml index df6d6281..e4570adf 100644 --- a/res/values-eo/strings.xml +++ b/res/values-eo/strings.xml @@ -41,11 +41,6 @@ Alŝutante sekundoj antaÅ­e Nenio estas ĉi tie. Alŝutu ion! - Ŝargante... - dosierujo - dosierujoj - dosiero - dosieroj Grando: Tipo: Kreita je: @@ -122,7 +117,8 @@ Bonvolu enigi la nunan pasvorton Konektante al aÅ­tentiga servilo... La servilo ne kongruas kun ĉi tiu aÅ­tentiga metodo - Teni dosieron ĝisdatigita + Favorato + Nefavoratigi Alinomigi Forigi Ĉu vi vere volas forigi %1$s? @@ -171,11 +167,7 @@ 389 KB 12:23:45 Alŝuti bildojn nur per WiFi - Alŝuta konflikto - La malloka dosiero %s estas ne sinkronigita kun loka dosiero. Se la ago daÅ­rus, enhavo de la dosiero en la servilo anstataÅ­iĝus. Konservi ambaÅ­ - AnstataÅ­igi - Ne alŝuti AntaÅ­vido de bildo Ĉi tiu bildo ne povas montriĝi %1$s ne povis kopiiĝi al la loka dosierujo %2$s diff --git a/res/values-es-rAR/strings.xml b/res/values-es-rAR/strings.xml index 94eb4511..9ca0336c 100644 --- a/res/values-es-rAR/strings.xml +++ b/res/values-es-rAR/strings.xml @@ -64,12 +64,7 @@ Subiendo segundos atrás No hay nada. ¡Subí contenido! - Cargando... No existen archivos en esta carpeta. - carpeta - carpetas - archivo - archivos Pulsá sobre un archivo para mostrar información adicional. Tamaño: Tipo: @@ -178,7 +173,7 @@ %1$s no soporta múltiples cuentas Tú servidor no esta regresando una identificación de usuario correcta, por favor contacta a un administrador No se puede autenticar contra este servidor - Mantener el archivo actualizado + Favorito Renombrar Borrar ¿Realmente quieres eliminar %1$s? @@ -236,11 +231,7 @@ Subir imágenes solamente a través de WiFi Cargar videos mediante WiFi solamente /SubidasInstantáneas - Conflicto en la actualización - El archivo remoto %s no está sincronizado con el archivo local. Si seguís adelante, vas a reemplazar el contenido del archivo en el servidor. Mantener ambas - Sobrescribir - No subir Previsualización de imagen Esta imagen no puede ser mostrada %1$s no pudo ser copiado a la carpeta local %2$s diff --git a/res/values-es-rCL/strings.xml b/res/values-es-rCL/strings.xml index 6417313c..9ea8786c 100644 --- a/res/values-es-rCL/strings.xml +++ b/res/values-es-rCL/strings.xml @@ -111,7 +111,6 @@ No se pudo establecer la conexión Conexión segura establecida usuario o clave incorrecta - Mantener el archivo actualizado Renombrar Remover ¿Realmente desea eliminar %1$s? @@ -154,11 +153,7 @@ Firma: algoritmo Solo subir fotos vía WiFi - Conflicto al actualizar - El archivo remoto %s no está sincronizado con la copia local. Si continua, se reemplazará el archivo en el servidor. Mantener ambos - Sobre-escribir - No subir %1$s no pudo ser copiado a la carpeta local %2$s Cuentas diff --git a/res/values-es-rMX/strings.xml b/res/values-es-rMX/strings.xml index d64bf3e3..d26f51c6 100644 --- a/res/values-es-rMX/strings.xml +++ b/res/values-es-rMX/strings.xml @@ -149,7 +149,7 @@ Conectando al servidor de autenticación... El servidor no soporta este método de autenticación %1$s no soporta cuentas múltiples - Mantener el archivo actualizado + Favorito Renombrar Borrar Sólo local @@ -199,11 +199,7 @@ 12:23:45 Subir imágenes sólo via WiFi /SubidasInstantáneas - Conflicto en la actualización - El archivo remoto %s no está sincronizado con el archivo local. Si continúa, se reemplazará el contenido del archivo en el servidor. Mantener ambas - Sobrescribir - No subir Previsualización de imagen Enviar Copiado al portapapeles diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 94e6cb35..a7c87e14 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -71,10 +71,6 @@ No hay nada aquí. ¡Suba algo! Cargando... No hay archivos en esta carpeta. - carpeta - carpetas - archivo - archivos Pulsa sobre un archivo para mostrar información adicional. Tamaño: Tipo: @@ -197,7 +193,8 @@ No puede autenticarse en este servidor. Aún no existe la cuenta en el dispositivo - Mantener el archivo actualizado + Favorito + No-favorito Renombrar Borrar ¿Realmente desea eliminar %1$s? @@ -257,11 +254,11 @@ Subir imágenes sólo cuando hay WiFi Subir vídeos sólo por WiFi /SubidasInstantáneas - Conflicto en la actualización - El archivo remoto %s no está sincronizado con el archivo local. Si continúa, se reemplazará el contenido del archivo en el servidor. + Conflicto con archivo + ¿Qué archivos desea mantener? Si selecciona ambas versiones, el archivo local tendrá un número añadido a su nombre. Mantener ambos - Sobrescribir - No subir + Usar versión local + Usar versión del servidor Previsualización de imagen No se puede mostrar la imagen %1$s se pudo copiar a la carpeta local %2$s @@ -316,8 +313,17 @@ compartido con usted %1$s compartió \"%2$s\" conmigo + \"%1$s\" ha sido compartido con usted. Refrescar la conexión Dirección del servidor No hay suficiente memoria Nombre de usuario + 1 carpeta + %1$d carpetas + 1 archivo + 1 archivo, 1 carpeta + 1 archivo %1$d carpetas + %1$d archivos + %1$d archivos, 1 carpeta + %1$d archivos, %2$d carpetas diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml index a8857bb7..319cdffb 100644 --- a/res/values-et-rEE/strings.xml +++ b/res/values-et-rEE/strings.xml @@ -21,12 +21,17 @@ Biggest - Smallest--> + Kõik failid + Seaded + Logid + Sulge Üldine Rohkem Kontod Halda kontosid + Parooli lukk Piltide kohene üleslaadimine Laadi koheselt üles kaameraga tehtud pildid Videote kohene üleslaadimine @@ -64,12 +69,8 @@ Üleslaadimine sekundit tagasi Siin pole midagi. Lae midagi üles! - Laen ... + Laadimine... Kaustas pole faile. - kaust - kausta - fail - faili Lisainfo vaatamiseks vajuta failile. Suurus: Tüüp: @@ -78,6 +79,7 @@ Lae alla Värskenda faili Fail nimetati üleslaadimise käigus ümber %1$ + Nimekirja paigutus Jaga linki Tühista lingi jagamine Jah @@ -134,6 +136,15 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi Kohalik: %1$s Serveris: %1$s Pole piisavalt ruumi kopeerimaks valitud faile kataloogi %1$s. Kas soovid kopeerimise asemel neid ümber tõsta? + Palun sisestaoma parool + Sisesta oma parool + Parooli küsitakse iga kord, kui sa selle rakenduse käivitad + Palun sisesta oma parool uuesti + Eemalda oma parool + Paroolid pole samad + Vale parool + Parool on eemaldatud + Parool on salvestatud %1$s muusika mängija %1$s (mängib) %1$s (laeb) @@ -186,7 +197,8 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi ⇥ Ei suuda autoriseerida selle serveriga. Kontot pole veel seadmes - Hoia faili ajakohasena + Lemmik + Eemalda lemmik Nimeta ümber Eemalda Oled sa kindel, et soovid %1$s eemaldada? @@ -204,11 +216,13 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi Faili sisu on juba sünkroniseeritud Kataloogi ei saa tekitada Keelatud sümbolid: / \\ < > : \" | ? * + Faili nimesonvähemalt üks keelatud märk Faili nime lahter ei saa olla tühi Oota hetk Ootamatu tõrge ; palun kasuta faili valimiseks mõnda teist rakendust Ühtegi faili pole valitud Saada link + Faili kopeerimine privaatsest salvestusalast Logi sisse oAuth2-ga oAuth2 serveriga ühendumine... Saidi identiteeti ei suudetud kinnitada @@ -244,11 +258,7 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi Lae pilte üles ainult läbi WiFi Laadi videod üles ainult WiFi-t kasutades /InstantUpload - Uuenduse konflikt - Serveris asuvat faili ei sünkroniseeritud kohaliku failiga. Jätkates kirjutatakse serveris asuva faili sisu üle. Säilita mõlemad - Kirjuta üle - Ära uuenda Pildi eelvaade Seda pilti ei saa näidata %1$s ei suudetud kopeerida kohalikku kataloogi %2$s @@ -300,6 +310,19 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi Turvalisus Video üleslaadimise asukoht Kausta %1$s allalaadimine ei õnnestunud + jagatud + sinuga + %1$s jagas sinuga \"%2$s\" Värskenda ühendust Serveri aadress + Mälu pole piisavalt + Kasutajanimi + 1 kaust + %1$d kaustad + 1 fail + 1 fail, 1 kaust + 1 fail, %1$d kaustad + %1$d faili + %1$d faili, 1 kaust + %1$d faili, %2$d kausta diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index 23dcc3fd..3ea68c19 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -62,12 +62,7 @@ Igotzen segundu Ez dago ezer. Igo zerbait! - Kargatzen... Ez dago fitxategirik karpeta honetan. - karpeta - Karpetak - fitxategia - fitxategiak Sakatu fitxategi baten gainean informazio gehiago lortzeko Tamaina: Mota: @@ -178,7 +173,7 @@ Mesedez, baimendu berriz %1$s ez du kontu anitzak onartzen Zure zerbitzariak ez du bueltatzen erabiltzailearen id egokia, mesedez jarri harremanetan administratzailearekin. Ezin da autentikatu zerbitzarian. - Mantendu fitxategia eguneratuta + Gogokoa Berrizendatu Ezabatu Ziur zaude %1$s ezabatu nahi duzula? @@ -236,11 +231,7 @@ Mesedez, baimendu berriz Igo irudiak bakarrik WIFIren bidez Igo bideoak bakarrik WIFIren bidez /BerehalakoIgoerak - Igoera konfliktoa - Urruneko %s fitxategia ez dago bertako fitxategiarekin sinkronizatuta. Jarraituz gero zerbitzariko fitxategiaren edukia ordeztuko da. Mantendu biak - Gainidatzi - Ez igo Irudi aurreikuspena Ezin da irudi hau erakutsi %1$s ezin da %2$s karpeta lokalera kopiatu diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index df09cdda..0efba32c 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -51,12 +51,7 @@ در حال بارگزاری ثانیه‌ها پیش اینجا هیچ چیز نیست. - درحال بارگذاری... هیچ فایلی در این پوشه نیست. - پوشه - پوشه ها - پرونده - پرونده ها روی هر فایل کلیک کنید تا اطلاعات اضافی نمایش داده شود. اندازه نوع: @@ -156,7 +151,6 @@ اتصال به سرور احراز هویت... سرور این نوع احراز هویت را پشتیبانی نمی‌کند %1$s چند اکانته بودن را پشتیبانی نمی‌کند - فایل را به روز نگه دار تغییرنام حذف فقط محلی @@ -210,11 +204,7 @@ تصاویر را فقط از طریق wifi بارگذاری کن آپلود ویدیو فقط از طریق WiFi آپلود فوری - بارگذاری ناسازگار - فایل های دور از دسترس %s با فایل های محلی همگام نشده اند. ادامه کار، محتوا را بر روی فایل در سرور جایگزین خواهد کرد. نگهداشتن هر دو - دوباره نویسی - آپلود نکن پیش نمایش تصویر نمایش این عکس امکانپذیر نمی باشد در حین اشتراک گذاری این فایل یا پوشه خطایی رخ داده است diff --git a/res/values-fi-rFI/strings.xml b/res/values-fi-rFI/strings.xml index cae7a432..554b6c8e 100644 --- a/res/values-fi-rFI/strings.xml +++ b/res/values-fi-rFI/strings.xml @@ -69,12 +69,8 @@ Lähetetään sekuntia sitten Täällä ei ole mitään. Lähetä tänne jotakin! - Ladataan... + Ladataan… Tässä kansiossa ei ole tiedostoja - kansio - kansiota - tiedosto - tiedostoa Napauta tiedostoa nähdäksesi lisätietoja. Koko: Tyyppi: @@ -188,7 +184,8 @@ %1$s ei tue useita tilejä Tunnistautuminen palvelinta vastaan ei onnistu Tiliä ei ole olemassa vielä laitteella - Pidä tiedosto ajan tasalla + Suosikit + Poista suosikeista Nimeä uudelleen Poista Haluatko varmasti poistaa kohteen %1$s? @@ -245,11 +242,11 @@ Lähetä kuvat vain WiFi-verkossa Lähetä videot vain wifi-yhteydellä /InstantUpload - Päivitysristiriita - Etätiedostoa %s ei ole synkronoitu paikallisen tiedoston kanssa. Jatkaminen korvaa palvelimella olevan tiedoston sisällön. + Tiedoston ristiriita + Mitkä tiedostot haluat säilyttää? Jos valitset kummatkin versiot, paikallisen version tiedoston nimeen lisätään numero. Säilytä molemmat - Korvaa - Älä lähetä + Käytä paikallista versiota + Käytä palvelimen versiota Kuvan esikatselu Tätä kuvaa ei voi näyttää Lähetyspolku @@ -297,8 +294,17 @@ jaettu kanssasi %1$s jakoi kohteen \"%2$s\" kanssasi + \"%1$s\" on jaettu kanssasi Päivitä yhteys Palvelimen osoite Muistia ei ole riittävästi Käyttäjätunnus + 1 kansio + %1$d kansiota + 1 tiedosto + 1 tiedosto, 1 kansio + 1 tiedosto, %1$d kansiota + %1$d tiedostoa + %1$d tiedostoa, 1 kansio + %1$d tiedostoa, %2$d kansiota diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 3079a1f6..8370f52b 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -70,13 +70,9 @@ Téléchargez-le ici : %2$s Téléversement... il y a quelques secondes Il n\'y a rien ici ! Envoyez donc quelque chose :) - Chargement… + Chargement... Aucun fichier n\'est présent dans ce dossier. - dossier - dossiers - fichier - fichiers - Effleurez un fichier pour afficher les informations complémentaires. + Appuyez sur un fichier pour afficher les informations supplémentaires Taille : Type : Créé le : @@ -202,7 +198,8 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Impossible de s\'authentifier sur ce serveur Le compte n\'existe pas encore sur ce périphérique - Maintenir le fichier à jour + Ajouter aux favoris + Supprimer des favoris Renommer Supprimer Voulez-vous vraiment supprimer %1$s ? @@ -262,11 +259,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Téléverser les images via une connexion WiFi uniquement Téléverser les vidéos via une connexion WiFi uniquement /InstantUpload - Conflit de mise à jour - Le fichier distant %s n\'est pas synchronisé avec le fichier local. En choisissant de continuer, vous remplacerez le contenu du fichier sur le serveur. Garder les deux versions - Écraser - Ne pas téléverser Prévisualisation de l\'image Cette image ne peut pas être affichée %1$s n\'a pas pu être copié dans le dossier local %2$s @@ -316,12 +309,20 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Téléversement immédiat Sécurité Répertoire de téléversement des vidéos - Le téléchargement de %1$s dossier(s) n\'a pas pu être achevé - partagé + Le téléchargement du dossier %1$s n\'a pas pu être achevé + a partagé avec vous %1$s a partagé \"%2$s\" avec vous Actualiser la connexion Adresse du serveur Mémoire insuffisante Nom d\'utilisateur + 1 dossier + %1$d dossiers + 1 fichier + 1 fichier, 1 dossier + 1 fichier, %1$d dossiers + %1$d fichiers + %1$d fichiers, 1 dossier + %1$d fichiers, %2$d dossiers diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index 9b65a536..84962f2a 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -72,10 +72,6 @@ Descárgueo de aquí: %2$s Aquí non hai nada. Envíe algo! Cargando... Non hai ficheiros neste cartafol. - cartafol - cartafoles - ficheiro - ficheiros Prema nun ficheiro para que amose a información adicional. Tamaño: Tipo: @@ -198,7 +194,8 @@ Descárgueo de aquí: %2$s Non pode autenticarse neste servidor Aínda non existe a conta no dispositivo - Manter actualizado o ficheiro + Favorito + Retirar de favoritos Renomear Retirar Confirma que quere retirar %1$s? @@ -258,11 +255,11 @@ Descárgueo de aquí: %2$s Enviar imaxes só medinte WiFi Enviar os vídeos só a través de WiFi /EnvíoInstantáneo - Conflito de actualización - O ficheiro remoto %s non está sincronizado co ficheiro local. Continuando substituirase o contido do ficheiro no servidor. + Conflito de ficheiro + Que ficheiros quere conservar? Se selecciona ambas versións, o ficheiro copiado terá un número engadido ao nome. Manter ambos - Sobrescribir - Non enviar + Usar a versión local + Usar a versión do servidor Vista previa da imaxe Esta imaxe non pode ser amosada Non foi posíbel copiar %1$s no cartafol local %2$s @@ -317,8 +314,17 @@ Descárgueo de aquí: %2$s compartido con vostede %1$s compartiu «%2$s» con vostede + «%1$s» foi compartido con vostede Actualizar a conexión Enderezo do servidor Non hai memoria abondo Nome de usuario + 1 cartafol + %1$d cartafoles + 1 ficheiro + 1 ficheiro, 1 cartafol + 1 ficheiro, %1$d cartafoles + %1$d ficheiros + %1$d ficheiros, 1 cartafol + %1$d ficheiros, %2$d cartafoles diff --git a/res/values-he/strings.xml b/res/values-he/strings.xml index 29694b95..669a55ba 100644 --- a/res/values-he/strings.xml +++ b/res/values-he/strings.xml @@ -55,12 +55,7 @@ בהעלאה שניות אין כאן שום דבר. אולי ברצונך להעלות משהו? - בטעינה... אין קבצים בתיקייה זו: - תקיה - תקיות - קובץ - קבצים יש לגעת בקובץ כדי להציג פרטים נוספים. גודל: סוג: @@ -171,7 +166,7 @@ השרת אינו מחזיר מספר משתמש נכון, יש ליצור קשר עם מנהל ⇥ לא מצליח לאמת מול השרת - לשמור על קובץ עדכני + מועדף שינוי שם הסרה האם באמת להסיר %1$s? @@ -229,11 +224,7 @@ העלאת תמונות דרך WiFi בלבד העלאות קבצי וידאו על בסיס WiFi בלבד /InstantUpload - התנגשות עדכון - הקובץ המרוחק %s אינו מסונכרן עם הקובץ המקומי. בחירה בהמשך התהליך תחליף את תוכן הקובץ בשרת. להשאיר את שניהם - לשכתב - לא להעלות תצוגה מקדימה לתמונה תמונה זו לא ניתנת לצפייה %1$s לא ניתן להעתקה לתיקייה מקומית %2$s diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index 76986685..1ada651c 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -41,10 +41,6 @@ Izlaz prije par sekundi Nema ničega u ovoj mapi. PoÅ¡alji neÅ¡to! - mapa - mape - datoteka - datoteke Preuzimanje Podijelite vezu Da @@ -57,6 +53,7 @@ Izmjena lozinke Naziv mape Trying to login… + Favorit Promjeni ime Makni Detalji diff --git a/res/values-hu-rHU/strings.xml b/res/values-hu-rHU/strings.xml index 62ffad32..6fc11933 100644 --- a/res/values-hu-rHU/strings.xml +++ b/res/values-hu-rHU/strings.xml @@ -17,6 +17,7 @@ + Beállítások Általános Több Fiókok @@ -29,7 +30,7 @@ Ez használható a problémák naplózásához Naplózás előzménye Ez megjeleníti a rögzitett eseményeket - Elözmények törlése + Előzmények törlése Súgó Ajánlja egy barátjának Visszajelzés @@ -55,12 +56,7 @@ Feltöltés pár másodperce Itt nincs semmi. Töltsön fel valamit! - Betöltés... Nincs fájl ebben a mappában. - mappa - mappák - fájl - fájlok Érintsen meg egy fájlt a további információkért. Méret: Tipus: @@ -166,7 +162,8 @@ A kiszolgáló nem támogatja ezt a felhasználóazonosítási módszert %1$s nem támogat több bejelenkezési jogosultságot Nem tudod hitelesíteni magadat ezen a szerveren - Automatikusan frissítse a fájlokat + Kedvenc + Nem kedvenc Átnevezés Eltávolítás Tényleg el akarod távolítani %1$s? @@ -224,11 +221,7 @@ Képeket csak WiFi kapcsolaton keresztül töltsünk föl Videó feltöltés csak WIFI-vel /InstantUpload - Frissítési ütközés - %s távoli állományt nem szinkronizáltuk a helyi példánnyal. Ha folytatja, akkor a távoli állományt felülírjuk. Mindkettő megtartása - Felülírás - Ne töltsük föl Előnézeti kép Ez a kép nem jeleníthető meg %1$s nem lehet másolni a %2$s helyi könyvtárba diff --git a/res/values-ia/strings.xml b/res/values-ia/strings.xml index 00933787..d1cc465d 100644 --- a/res/values-ia/strings.xml +++ b/res/values-ia/strings.xml @@ -25,7 +25,6 @@ Nulle contos trovate secundas passate Nihil hic. Incarga alcun cosa! - dossier Dimension: Typo: Discargar diff --git a/res/values-id/strings.xml b/res/values-id/strings.xml index 11803a59..e45bdbeb 100644 --- a/res/values-id/strings.xml +++ b/res/values-id/strings.xml @@ -21,8 +21,12 @@ Biggest - Smallest--> + Semua berkas + Pengaturan + Log + Tutup Umum Lainnya Akun @@ -67,10 +71,6 @@ Tidak ada apa-apa di sini. Unggah sesuatu! Memuat... Tidak ada satupun berkas dalam folder ini. - folder - folder-folder - berkas - berkas-berkas Sentuh pada berkas untuk menampilkan informasi tambahan Ukuran: Tipe: @@ -79,6 +79,7 @@ Unduh Segarkan berkas Berkas diubah namanya menjadi %1$s saat pengunggahan + Daftar Tata Letak Bagikan tautan Batal bagikan tautan Ya @@ -192,7 +193,8 @@ Tidak dapat mengotentikasi pada server ini Akun tidak ada di perangkat ini - Biarkan berkas tetap terbaru + Favorit + Hapus favorit Ubah nama Hapus Apakah Anda yakin ingin menghapus %1$s? @@ -210,6 +212,7 @@ Isi berkas sudah diselaraskan Folder tidak dapat dibuat Karakter yang dilarang: / \\ < > : \" | ? * + Nama berkas berisi setidaknya satu karakter yang tidak sah Nama berkas tidak boleh kosong Tunggu sebentar Masalah tidak terduga, silahkan pilih berkas dari apl yang berbeda @@ -251,11 +254,7 @@ 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. Biarkan keduannya - Timpa - Jangan mengunggah Pratilik gambar Gambar ini tidak dapat ditampilkan %1$s tidak dapat disalin ke folder lokal %2$s @@ -307,6 +306,19 @@ Keamanan Unggah Lokasi Video Mengunduh folder %1$s tidak selesai + dibagikan + kepada Anda + %1$s dibagikan \"%2$s\" kepada Anda Menyegarkan sambungan Alamat server + Memori tidak cukup + Nama pengguna + 1 folder + %1$d folder + 1 berkas + 1 berkas, 1 folder + 1 berkas, %1$d folder + %1$d berkas + %1$d berkas, 1 folder + %1$d berkas, %2$d folder diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 3b3e56fb..c0e9d98e 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -71,10 +71,6 @@ Non c\'è niente qui. Carica qualcosa! Caricamento in corso... Non ci sono file in questa cartella. - cartella - cartelle - file - file Tocca un file per visualizzare informazioni aggiuntive. Dimensione: Tipo: @@ -197,7 +193,8 @@ Impossibile eseguire l\'autenticazione su questo server L\'account non esiste ancora sul dispositivo - Tieni aggiornato il file + Preferito + Rimuovi dai preferiti Rinomina Rimuovi Vuoi davvero rimuovere %1$s? @@ -257,11 +254,11 @@ Carica le immagini solo via WiFi Carica i video solo tramite WiFi /InstantUpload - Conflitto di aggiornamento - Il file remoto %s non è sincronizzato con il file locale. Se continui, il contenuto del file sarà sostituito sul server. + File in conflitto + Quali file vuoi tenere? Se selezioni entrambi le versioni, il file locale avrà un numero aggiunto al suo nome. Mantieni entrambi - Sovrascrivi - Non caricare + Usa la versione locale + Usa la versione del server Anteprima dell\'immagine Questa immagine non può essere mostrata %1$s non può essere copiato nella cartella locale %2$s @@ -315,8 +312,18 @@ Lo scaricamento della cartella %1$s non può essere completato condiviso con te + %1$s ha condiviso \"%2$s\" con te + \"%1$s\" è stato condiviso con te Aggiorna la connessione Indirizzo del server Memoria insufficiente Nome utente + 1 cartella + %1$d cartelle + 1 file + 1 file, 1 cartella + 1 file, %1$d cartelle + %1$d file + %1$d file, 1 cartella + %1$d file, %2$d cartelle diff --git a/res/values-ja-rJP/strings.xml b/res/values-ja-rJP/strings.xml index 5191529d..9034202d 100644 --- a/res/values-ja-rJP/strings.xml +++ b/res/values-ja-rJP/strings.xml @@ -21,8 +21,12 @@ Biggest - Smallest--> + すべてのファイル + 設定 + ログ + 閉じる 一般 もっと見る アカウント @@ -66,12 +70,8 @@ アップロード中 数秒前 ここには何もありません。何かアップロードしてください。 - 読込中 ... + 読込中... このフォルダーにはファイルがありません。 - フォルダー - フォルダー - ファイル - ファイル ファイルをタップすると追加情報が表示されます。 サイズ: タイプ: @@ -80,6 +80,7 @@ ダウンロード ファイルを同期 アップロード中にファイル名を %1$s に変更しました + リストレイアウト URLで共有 未共有のリンク はい @@ -132,6 +133,15 @@ ローカル: %1$s リモート: %1$s 十分なスペースがないため、選択されたファイルを %1$s フォルダーにコピーすることができません。コピーする代わりに、それらを移動させますか? + パスコードを入力してください + パスコードを入力 + アプリ開始時には毎回パスコードが要求されます + パスコードを再入力してください + パスコードを削除 + パスコードが一致しません + パスコードが正しくありません + パスコードを削除しました + パスコードを保存しました %1$s ミュージックプレーヤー %1$s (プレイ中) %1$s (読込中) @@ -180,11 +190,12 @@ 認証サーバーに接続中 ... サーバーはこの認証方式をサポートしていません %1$s は複数アカウントをサポートしていません - サーバーが正しいユーザーIDを返しませんでした。管理者に連絡してください。 + サーバーが正しいユーザーIDを返しませんでした。管理者に問い合わせてください。 このサーバーに対して認証できません デバイス上にまだアカウントが存在しません - ファイルを最新に保つ + お気に入り + お気に入りを解除 名前を変更 削除 本当に %1$s を削除しますか? @@ -202,11 +213,13 @@ ファイルコンテンツはすでに同期されています フォルダーを作成できませんでした 使用できない文字: / \\ < > : \" | ? * + ファイル名に1文字以上の無効な文字が含まれています ファイル名を空にすることはできません。 しばらくお待ちください 予期せぬ問題;他のアプリでファイルを選択してみてください。 ファイルは選択されていません リンクを送信… + プライベートストレージからファイルをコピー中 oAuth2でログイン oAuth2サーバーに接続中... サイトの識別子を確認できませんでした @@ -242,17 +255,13 @@ WiFi経由でのみ画像をアップロード WiFi経由でのみ動画をアップロード /InstantUpload - 更新が競合 - リモートファイル %s はローカルファイルと同期していません。続行すると、サーバー上のファイルを置き換えます。 両方を保持 - 上書き - アップロードしない イメージプレビュー この画像は表示できません %1$s は、ローカルフォルダー %2$s にコピーできませんでした。 アップロードパス すみませんが、サーバーで共有が有効になっていません。 - 管理者に連絡してください。 + 管理者に問い合わせてください。 共有できません。ファイルがあるか確認してください。 このファイルまたはフォルダーを共有する際にエラーが発生しました 共有を解除できません。ファイルがあるか確認してください。 @@ -298,6 +307,19 @@ セキュリティ 動画のアップロードパス %1$s フォルダーのダウンロードが完了しませんでした + 共有中 + あなたと + %1$s は \"%2$s\" をあなたと共有しました 再接続中 サーバーアドレス + 十分なメモリがありません + ユーザー名 + 1 フォルダー + %1$d フォルダー + 1 ファイル + 1 ファイル、1 フォルダー + 1 ファイル、%1$d フォルダー + %1$d ファイル + %1$d ファイル、1 フォルダー + %1$d ファイル、%2$d フォルダー diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml index 7a1987e1..241d5bab 100644 --- a/res/values-ka-rGE/strings.xml +++ b/res/values-ka-rGE/strings.xml @@ -95,7 +95,7 @@ ამოუცნობი სერვერის ვერსია კავშირის დამყარება ვერ მოხერხდა დაცული კავშირი დამყარდა - არ განაახლო ფაილი + ფავორიტი გადარქმევა წაშლა მხოლოდ ლოკალური @@ -136,11 +136,7 @@ ალგორითმი: ატვირთეთ სურათები მხოლოდ WiFi–ით /ეგრევე ატვირთვა - კონფლიქტი განახლებისას - დაშორებული ფაილი %s არ არის სინქრონიზირებული ლოკალურ ფაილთან. ოპერაციის გაგრძელება გამოიწვევს სერვერზე ფაილის შეცვლას. დატოვე ორივე - გადააწერე - არ ატვირთო გაგზავნა კოპირებულია კლიპბორდში diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml index 89bcc038..05de5dbc 100644 --- a/res/values-km/strings.xml +++ b/res/values-km/strings.xml @@ -81,7 +81,6 @@ កំពុង​​តែ​ព្យាយាម​ដើម្បី​ចូល... គ្មានបណ្តាញ​តភ្ជាប់ទេ មិនស្គាល់កំហុសបានកើតឡើង! - រក្សាឯកសាររហូតដល់កាលបរិច្ឆេទ ប្ដូរ​ឈ្មោះ ដកចេញ ទីកន្លែងតែមួយ diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml index 1e0b2fc5..056406d3 100644 --- a/res/values-kn/strings.xml +++ b/res/values-kn/strings.xml @@ -29,6 +29,7 @@ ತಪ್ಪಾಗಿದೆ ಗೊತ್ತಿಲ್ಲದ ದೋಷ ಗುಪ್ತ ಪದವನ್ನು ಬದಲಾಯಿಸಿ + ಅಚ್ಚುಮೆಚ್ಚಿನ ಮರುಹೆಸರಿಸು ತೆಗೆದುಹಾಕಿ ಕಳುಹಿಸಿ diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index cb4e8ba5..1cd42cc1 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -21,8 +21,12 @@ Biggest - Smallest--> + 모든 파일 + 설정 + 로그 + 닫기 일반 더 보기 계정 @@ -67,10 +71,6 @@ 내용이 없습니다. 업로드할 수 있습니다! 불러오는 중... 이 폴더에 파일이 없습니다. - 폴더 - 폴더 - 파일 - 파일 파일을 누르면 추가 정보가 표시됩니다. 크기: 종류: @@ -79,6 +79,7 @@ 다운로드 파일 새로 고침 업로드 중 파일 이름을 %1$s(으)로 변경하였습니다 + 목록 레이아웃 링크 공유 링크 공유 해제 예 @@ -192,7 +193,8 @@ 이 서버에 인증할 수 없음 장치에 아직 계정이 없음 - 파일을 최신 정보로 유지 + 책갈피 + 책갈피 해제 이름 바꾸기 삭제 %1$s을(를) 삭제하시겠습니까? @@ -210,6 +212,7 @@ 파일 내용이 이미 동기화됨 폴더를 만들 수 없음 사용할 수 없는 문자: / \\ < > : \" | ? * + 파일 이름에 하나 이상의 사용할 수 없는 문자가 포함되어 있음 파일 이름이 비어 있을 수 없음 잠시 기다려 주십시오 예상하지 못한 오류입니다. 다른 앱에서 파일을 선택하십시오 @@ -251,11 +254,7 @@ Wi-Fi 사용 중일때만 사진 업로드 Wi-Fi 사용 중일때만 동영상 업로드 /InstantUpload - 업데이트 충돌 - 원격 파일 %s이(가) 로컬 파일과 동기화되지 않았습니다. 계속 진행하면 서버에 있는 파일을 덮어씁니다. 모두 저장 - 덮어쓰기 - 업로드하지 않음 사진 미리 보기 이 사진을 미리 ë³¼ 수 없습니다 %1$s을(를) 로컬 폴더 %2$s(으)로 복사할 수 없습니다 @@ -306,6 +305,19 @@ 보안 동영상 업로드 경로 폴더 %1$s을(를) 다운로드할 수 없음 + 공유됨 + 여러분과 + %1$s 님이 \"%2$s\" 항목을 여러분과 공유하였습니다 연결 새로 고침 서버 주소 + 메모리 부족 + 사용자 이름 + 폴더 1개 + 폴더 %1$d개 + 파일 1개 + 파일 1개, 폴더 1개 + 파일 1개, 폴더 %1$d개 + 파일 %1$d개 + 파일 %1$d개, 폴더 1개 + 파일 %1$d개, 폴더 %2$d개 diff --git a/res/values-lb/strings.xml b/res/values-lb/strings.xml index ff197132..eb2e5cfb 100644 --- a/res/values-lb/strings.xml +++ b/res/values-lb/strings.xml @@ -56,10 +56,6 @@ Eroplueden Sekonnen hier Hei ass näischt. Lued eppes erop! - Dossier - Dossieren - Fichier - Fichieren Gréisst: Typ: Erstallt: @@ -144,7 +140,6 @@ Gëff w.e.g. däin aktuellt Passwuert an Deng Sessioun ass ofgelaf. Connectéier dech nei w.e.g. De Server ënnerstëtzt dës Authentifizéierungsmethod net - Fichier aktuell halen Ëmbenennen Läschen Wëlls du %1$s wierklech läschen? @@ -192,8 +187,6 @@ 18.05.2012 12:23 12:23:45 Béid halen - Iwwerschreiwen - Net eroplueden Biller-Virschau Dëst Bild kann net ugewise ginn %1$s konnt net an de lokalen Dossier %2$s kopéiert ginn diff --git a/res/values-lt-rLT/strings.xml b/res/values-lt-rLT/strings.xml index 9c15ba23..6e7855b5 100644 --- a/res/values-lt-rLT/strings.xml +++ b/res/values-lt-rLT/strings.xml @@ -23,6 +23,7 @@ + Parinktys Bendras Daugiau Paskyros @@ -63,12 +64,7 @@ IÅ¡siunčiama prieÅ¡ sekundę Čia tuščia. Ä®kelkite ką nors! - Ä®keliama ... Å iame aplanke nėra failų. - katalogas - katalogai - failas - failai Palieskite failą, kad parodyti papildomą informaciją. Dydis: Tipas: @@ -171,7 +167,7 @@ Serveris nepalaiko Å¡io autentikacijos metodo %1$s nepalaiko kelių paskyrų iÅ¡ karto Jungiamasi prie autentikacijos serverio... - Laikyti failą naujinamą + Mėgiamas Pervadinti PaÅ¡alinti Ar tikrai norite paÅ¡alinti %1$s? @@ -226,11 +222,7 @@ 12:23:45 Ä®kelti nuotraukas tik kai prisijungiama per WiFi Ä®kelti video tik per WiFi - Atnaujinimo konfliktas - Nutolęs failas %s nėra sinchronizuotas su vietiniu failu. Jei tęsite, failas serveryje bus pakeistas. Palikti abu - PerraÅ¡yti - Nebesiųsti Paveikslėlio peržiÅ«ra Neįmanoma parodyti Å¡io paveikslėlio Ä®vyko klaida bandant dalinti šį failą ar aplanką diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 148242c8..32f38478 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -55,12 +55,7 @@ AugÅ¡upielādē sekundes atpakaļ Te vēl nekas nav. RÄ«kojies, sāc augÅ¡upielādēt! - Ielāde... Å ajā mapē nav failu - mape - mapes - fails - faili Uzsitiet uz datnes, lai redzētu papildinformāciju. Izmērs: Tips: @@ -118,7 +113,7 @@ NeatpazÄ«ta servera versija Nevarēja izveidot savienojumu Ir izveidots droÅ¡s savienojums - Uzturēt datni aktuālu + IecienÄ«tais Pārsaukt Izņemt Tikai lokālos @@ -159,11 +154,7 @@ Algoritms: Attēlus augÅ¡upielādēt tikai caur WiFi /TÅ«lÄ«tējaAugÅ¡upielāde - Atjaunināšanas konflikts - Attālinātā datne %s nav sinhronizēta ar lokālo datni. Turpināšana aizstās datņu servera saturu. Paturēt abas - PārrakstÄ«t - NeaugÅ¡upielādēt SÅ«tÄ«t Konti diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index 7d6449f0..28329fa7 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -65,12 +65,7 @@ Префрлам пред секунди Тука нема ништо. Префрлете нешто! - Вчитување Нема датотеки во оваа папка. - папка - папки - датотека - датотеки Кликнете на датотеката за дополнителни информации. Големина: Тип: @@ -192,7 +187,6 @@ Не можам да се авторизирам на овој сервер Сметката сеуште не постои на овој уред - Чувај ги датотеките ажурно Преименувај Отстрани Дали навистина сакаш да ја отстраниш %1$s? @@ -251,11 +245,7 @@ Прикачувај слики само преку WiFi Прикачувај видеа само преку WiFi /InstantUpload - Конфликт при ажурирање - Одалечената датотека %s не е синхронизирана со локалната датотека. Ако продолжите ќе се замени содржината на датотеката на серверот. Задржи ги и двете - Препиши - Не прикачувај Преглед на сликата Сликата не може да се прикаже %1$s не може да се копира во локалната папка %2$s diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml index 809fc4d0..b2303ba9 100644 --- a/res/values-ms-rMY/strings.xml +++ b/res/values-ms-rMY/strings.xml @@ -1,8 +1,17 @@ + versi %1$s Muat naik Fail-fail + Buka dengan Set + Hantar + Susun + Susun mengikut + + A-Z + Baharu - Lama + @@ -23,10 +32,6 @@ Berhenti Memuatnaik Tiada apa-apa di sini. Muat naik sesuatu! - direktori - direktori - fail - fail Saiz Jenis Telah dibina: @@ -50,6 +55,7 @@ Namakan Buang Lokal sahaja + Hantar Akaun Alamat pelayan diff --git a/res/values-nb-rNO/strings.xml b/res/values-nb-rNO/strings.xml index 7e24d18d..cd1b3b8f 100644 --- a/res/values-nb-rNO/strings.xml +++ b/res/values-nb-rNO/strings.xml @@ -71,10 +71,6 @@ Ingenting her. Last opp noe! Laster... Det er ingen filer i denne mappen. - mappe - mapper - fil - filer Trykk pÃ¥ en fil for Ã¥ vise ekstra informasjon. Størrelse: Type: @@ -197,7 +193,8 @@ Kan ikke autentisere mot denne serveren Kontoen eksisterer ikke pÃ¥ enheten enda - Hold filen oppdatert + Gjør til favoritt + Fjern favoritt Endre navn Fjern Vil du virkelig fjerne %1$s? @@ -257,11 +254,7 @@ Kun last opp bilder via WiFi Last opp video kun via WiFi /Direkteopplasting - Oppdateringskonflikt - Ekstern fil %s er ikke synkronisert med lokal fil. Hvis du fortsetter vil det erstatte innhold pÃ¥ serveren. Behold begge - Overskriv - Ikke last opp BildeforhÃ¥ndsvisning Dette bildet kan ikke vises %1$s kunne ikke kopieres til lokal mappe %2$s @@ -315,8 +308,17 @@ Nedlasting av %1$s mappen kunne ikke fullføres delte med deg + %1$s delte \"%2$s\" med deg Oppfrisk forbindelse Server-adresse Ikke nok minne Brukernavn + 1 mappe + %1$d mapper + 1 fil + 1 fil, 1 mappe + 1 fil, %1$d mapper + %1$d filer + %1$d filer, 1 mappe + %1$d filer, %2$d mapper diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index ce646f81..1e05442d 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -70,12 +70,8 @@ Download hier: %2$s Uploaden seconden geleden Er bevindt zich hier niets. Upload een bestand! - Laden ... + Laden... Er staan geen bestanden in deze map. - map - mappen - bestand - bestanden Druk op een bestand om extra informatie weer te geven Grootte: Type: @@ -200,7 +196,8 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar Kan niet authenticeren tegen deze server Het account bestaat nog niet in dit apparaat - Houd bestand actueel + Favoriet + Niet meer favoriet Hernoemen Verwijderen Wilt u %1$s werkelijk verwijderen? @@ -260,11 +257,11 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar Upload afbeeldingen alleen via WiFi Upload video\'s alleen over wifi /InstantUpload - Update conflict - Het remote bestand %s is niet gesynchroniseerd met het lokale bestand. Als je doorgaat wordt de inhoud van het bestand op de server vervangen. + Bestandsconflict + Welke bestanden wilt u bewaren? Als u beide versies selecteert zal het lokale bestand een nummer aan de naam toegevoegd krijgen. Beide bewaren - Overschrijven - Niet uploaden + Gebruik de lokale versie + Gebruik de server-versie Afbeelding voorbeeld Deze afbeelding kan niet worden getoond %1$s kon niet worden gekopieerd naar de %2$s lokale map @@ -319,8 +316,17 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar gedeeld met u %1$s deelde \"%2$s\" met u + \"%1$s\" is gedeeld met u Verversen verbinding Serveradres Niet voldoende geheugen Gebruikersnaam + 1 map + %1$d mappen + 1 bestand + 1 bestand, 1 map + 1 bestand, %1$d mappen + %1$d bestanden + %1$d bestanden, 1 map + %1$d bestanden, %2$d mappen diff --git a/res/values-nn-rNO/strings.xml b/res/values-nn-rNO/strings.xml index c2c1a90d..b99a6204 100644 --- a/res/values-nn-rNO/strings.xml +++ b/res/values-nn-rNO/strings.xml @@ -101,7 +101,7 @@ Feil ved SSL-oppstart Klarte ikkje Ã¥ oppretta ei tilkopling Trygg tilkopling oppretta - Hald fila oppdatert + Favoritt Endra namn Fjern Berre lokalt diff --git a/res/values-oc/strings.xml b/res/values-oc/strings.xml index 807898f6..69f2d181 100644 --- a/res/values-oc/strings.xml +++ b/res/values-oc/strings.xml @@ -31,10 +31,6 @@ Al amontcargar segonda a Pas res dedins. Amontcarga qualquaren - Dorsièr - Dorsièrs - fichièr - fichièrs Talha : Tipe : Creat : @@ -57,6 +53,7 @@ Al avalcargar ... Capitada d\'avalcargar Causís lo compte + Apondre als favorits Torna nomenar Suprimir País : diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml index a206eb77..a757dba0 100644 --- a/res/values-pa/strings.xml +++ b/res/values-pa/strings.xml @@ -86,7 +86,6 @@ ਸੁਰੱਖਿਅਤ ਕੁਨੈਕਸ਼ਨ ਬਣਾਇਆ ਗਿਆ ਹੈ ਗਲਤ ਯੂਜ਼ਰ-ਨਾਂ ਜਾਂ ਪਾਸਵਰਡ ਆਪਣਾ ਮੌਜੂਦਾ ਪਾਸਵਰਡ ਦਿਉ ਜੀ - ਫਾਇਲ ਨੂੰ ਅੱਪ ਟੂ ਡੇਟ ਰੱਖੋ ਨਾਂ ਬਦਲੋ ਹਟਾਓ ਕੇਵਲ ਲੋਕਲ @@ -118,8 +117,6 @@ 12:23:45 ਤਸਵੀਰਾਂ ਨੂੰ ਵਾਈ-ਫਾਈ ਰਾਹੀਂ ਹੀ ਅੱਪਲੋਡ ਕਰੋ ਦੋਵੇਂ ਰੱਖੋ - ਉੱਤੇ ਲਿਖੋ - ਅੱਪਲੋਡ ਨਾ ਕਰੋ ਚਿੱਤਰ ਝਲਕ ਭੇਜੋ diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 44611a46..0822459b 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -65,12 +65,7 @@ Wysyłanie sekund temu Pusto. Wyślij coś! - Ładowanie... Nie ma plików w tym folderze. - folder - foldery - plik - pliki Dotknij plik aby wyświetlić dodatkowe informacje Rozmiar: Typ: @@ -193,7 +188,8 @@ Nie można autoryzować przy użyciu tego serwera Konto nie istnieje jeszcze na tym urządzeniu - Automatyczne aktualizuj plik + Ulubione + Usuń z ulubionych Zmień nazwę Usuń Czy naprawdę chcesz usunąć %1$s? @@ -252,11 +248,7 @@ Wysyłaj zdjęcia tylko przez WiFi Aktualizuj filmy tylko przez WiFi /InstantUpload - Konflikt aktualizacji - Zdalny plik %s nie jest zsynchronizowany z plikiem lokalnym. Kontynuując zastąpisz zawartość pliku na serwerze. Zatrzymaj oba - Zastąp - Nie wysyłaj Podgląd Ten obrazek nie może zostać wyświetlony %1$s nie może zostać skopiowany do lokalnego folderu %2$s diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml index bcb79cb5..56f898d9 100644 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@ -71,10 +71,6 @@ Nada aqui. Envie alguma coisa! Carregando... Não existe nenhum arquivo nesta pasta. - pasta - pastas - arquivo - arquivos Toque em um arquivo para mostrar informações adicionais. Tamanho: Tipo: @@ -197,7 +193,8 @@ ⇥ Não foi possível autenticar neste servidor Conta ainda não existe no dispositivo - Manter arquivo atualizado + Favorito + Nãofavorito Renomear Remover Você realmente deseja remover %1$s? @@ -257,11 +254,11 @@ Fazer envio de fotos somente via WiFi Enviar vídeos somente via WiFi /Upload instantâneo - Conflito de atualização - O arquivo remoto %s não está sincronizado com o arquivo local. Prosseguir irá substituir o arquivo no servidor. + Conflito de arquivo + Quais arquivos você deseja manter? Se você selecionar ambas as versões, o arquivo local terá um número adicionado ao seu nome. Manter ambos - Sobrescrever - Não enviar + Usar a versão local + Usar a versão servidor 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 @@ -315,8 +312,18 @@ Baixar %1$s da pasta não pode ser completado compartilhado com você + %1$s compartilhado \"%2$s\" com você + \"%1$s\" foi compartilhado com você Reinicializar conexão Endereço do servidor Não há memoria suficiente Nome do Usuário + 1 pasta + %1$d pastas + 1 arquivo + 1 arquivo, 1 pasta + 1 arquivo, %1$d pastas + %1$d arquivos + %1$d arquivos, 1 pasta + %1$d arquivos, %2$d pastas diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 30f73526..ce9565be 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -25,11 +25,13 @@ Definições + Registos de Alterações Fechar Geral Mais Contas Gerir Contas + Bloquear código Envios instantâneos de imagens Envio instantâneo de imagens tiradas com a câmara Envios instantâneos dos vídeos @@ -67,12 +69,7 @@ A enviar segundos atrás Aqui não existe nada. Envie alguma coisa! - A carregar ... Não existem ficheiros nesta pasta. - pasta - pastas - ficheiro - ficheiros Toque num ficheiro para visualizar a informação adicional. Tamanho: Tipo: @@ -133,6 +130,15 @@ Local: %1$s Remoto: %1$s Não existe espaço disponível para copiar o ficheiro seleccionado para a pasta %1$s . Em vez disso deseja mover o ficheiro? + Por favor, insira o seu código + Insira o seu código + O código será solicitado sempre que a aplicação for iniciada + Por favor, reinsira o seu código + Remova o seu código + Os códigos não coincidem + Código Incorreto + Código removido + Código guardado %1$s reprodutor de música %1$s (a reproduzir) %1$s (a carregar) @@ -184,7 +190,8 @@ O seu servidor não transmite o ID correcto. Por favor contacte o administrador. Não foi possível autenticar no servidor Conta ainda não existe no dispositivo - manter ficheiro actualizado + Favorito + Retirar Favorito Renomear Remover Tem a certeza que deseja remover %1$s ? @@ -242,11 +249,7 @@ Só enviar as fotografias via wi-fi Só enviar os vídeos por wi-fi /Envio Instantâneo - Conflito na atualização - O ficheiro remoto %s não está sincronizado com o ficheiro local. Se continuar ira substituir o ficheiro no servidor. Manter ambos - Substituir - Não enviar. Pré-Visualizar imagem Esta imagem não pode ser mostrada Não foi possível copiar %1$s para a pasta local %2$s diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 28c28e6f..cd989a49 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -21,29 +21,34 @@ Biggest - Smallest--> + Toate fișierele + Setări + Înregistrări + Închide General Mai mult Conturi Administrare conturi + Parolă blocare Încărcare instantă de imagini Încarcă instantant imagini luate cu camera Încărcare instantă de videoclipuri. Încarcă instant videoclipuri înregistrate cu camera - Permite logarea + Permite jurnalizarea Acesta este folosit pentru a înregistra problemele - Istoria logarilor - Asta arata înregistrările salvate - ŞtergeÅ£i istoric + Istoric jurnal + Asta arată înregistrările salvate + ȘtergeÅ£i istoric Ajutor - Recomandati unui prieten + Recomandați unui prieten Feedback Imprint Reține contribuie locația Reține locația fișierului încărcat precedent Încearcă %1$s pe smartphone-ul tău! - Te invit sa folosești %1$s pe smartphone-ul tău!\nDescarcă aici: %2$s + Te invit să folosești %1$s pe smartphone-ul tău!\nDescarcă aici: %2$s VerificaÅ£i Serverul Adresa serverului https://... Nume utilizator @@ -53,40 +58,37 @@ Conectare Încărcare Un nou dosar - AlegeÅ£i fişierul pentru încărcare + AlegeÅ£i dosarul pentru încărcare Nici un cont găsit Nu există conturi %1$s pe dispozitivul tău. Te rugăm să configurezi un cont mai întâi. Configurare - Anulare - Nu exista conÅ£inut pentru încărcare - Nu a fost primit nici un conÅ£inut .Nu exista nimic de încărcat . - %1$s nu este permis sa acceseze conținutul shared + Renunță + Nici un conÅ£inut pentru încărcare + Nu a fost primit nici un conÅ£inut. Nimic de încărcat. + %1$s nu are permisiunea să acceseze conținutul partajat Încărcare secunde în urmă Nimic aici. Încarcă ceva! - Se incarca - In acest folder nu sunt fisiere. - director - directoare - fișier - fișiere - Selectati un fisier pentru a afisa informatia aditionala + Se încarcă... + În acest folder nu sunt fișiere. + Selectați un fișier pentru a afișa informația adițională. Mărime: Tip: Creat: Modificat: Descarcă - Împrospătare fişier + Împrospătare fișier Fișierul a fost redenumit %1$s în timpul încărcării - Share link - Unshare link + Aspect listă + Partajază legătură + Departajează legătura Da Nu OK Anulează descărcarea Anulează încărcarea - Anulare - Salvare & Ieșire + Anulează + Salvare și ieșire Eroare Se încarcă... Eroare necunoscută @@ -95,25 +97,25 @@ Șterge cont Crează cont Încarcă din... - Denumire director - În curs de încărcare... + Nume director + Se încărcarcă... %1$d%% Se încarcă %2$s Încărcat cu succes %1$s a fost încărcat cu succes Încărcarea a eșuat Încărcarea fișierului %1$s nu a putut fi încheiată - Incărcarea a eşuat, trebuie să te logezi din nou + Încărcarea a eșuat, trebuie să te autentifici din nou Se descarcă... %1$d%% Se descarcă %2$s Descărcarea a reușit %1$s a fost descărcat cu succes Descărcarea a eșuat - Nu s-a putut face downloadarea completa a %1$s + Descărcarea a %1$s nu s-a putut termina Nu s-a descărcat încă - Descărcarea a eşuat, trebuie să te logezi din nou + Descărcarea a eșuat, trebuie să te autentifici din nou Alege cont Sincronizarea a eșuat - Sincronizare date a eşuat, trebuie să te logezi din nou + Sincronizarea a eșuat, trebuie să te autentifici din nou Sincronizarea %1$s nu a putut fi completata Parolă greșită pentru %1$s S-au gasit conflicte @@ -125,22 +127,31 @@ Conform ediției 1.3.16, fișierele încărcate de pe această platformă sunt copiate în dosarul local %1$s pentru a preveni pierderi de date atunci cînd un singur fișier este sincronizat cu mai multe conturi.\n\nDin cauza acestei schimbări, toate fișierele încărcate în edițiile precedente ale acestui app au fost încărcate in dosarul %2$s. Însă acest proces nu fost completat in timpul sincronizării contului din cauza unei erori. Ai opțiunea de a lăsa fișierul intact (fișierele intacte) și de a transfera sursa în dosarul %3$s sau de a schimba locația fișierului(-elor) în dosarul %1$s și de a păstra sursa în %4$s.\n\nMai jos găsești enumerate fișierul local(fișierele locale) și fișierul separat(fișierele separate) în %5$s cu sursa respectivă. Folderul %1$s nu mai există Muta tot/toate - Toate fişierele au fost mutate - Unele fişiere nu au putut fi mutate + Toate fișierele au fost mutate + Unele fișiere nu au putut fi mutate Local: %1$s - La distanta: %1$s + La distanță: %1$s Nu este suficient spațiu pentru a copia fișierele selectate în dosarul %1$s . Dorești să le muți în loc? + Te rugăm să introduci parola + Introdu parola + Parola va fi solicitată de fiecare dată când deschideți aplicația + Te rugăm să reintroduci parola + Șterge parola + Parolele nu se potrivesc + Parolă incorectă + Parolă ștearsă + Parolă stocată %1$s player de muzică %1$s (cântă) %1$s (încarcă) %1$s redare terminată - Nu a fost găsit nici un fişier media + Nu s-a găsit nici un fișier media Nu a fost dat nici un cont - Fişierul nu este într-un cont valid + Fișierul nu este într-un cont valid Codec media fără suport - Fişierul media nu a putut fi citit - Fişierul media nu a fost codat corect + Fișierul media nu a putut fi citit + Fișierul media nu a fost codat corect Timpul a expirat în ce încerca să execute Fișierul media nu poate fi transmis Fișierul media nu poate fi executat cu stock media player @@ -169,7 +180,7 @@ Versiune necunoscuta a serverului Nu s-a putut stabili conexiunea Conexiune sigură stabilită - Utilizator sau parola greşită + Nume de utilizator sau parolă greșită Autorizare nereușită Acces refuzat de serverul de autorizare Situație neașteptată, vă rugăm, introduceți din nou URL-ul serverului @@ -182,7 +193,7 @@ Server-ul dvs. nu întoarce un ID de utilizator corect, vă rugăm să contactați un administrator Nu se poate autentifica cu acest server Contul nu există încă în dispozitiv - Păstrează fișierul actualizat + Favorit Redenumește Elimină Doriti sigur sa stergeti %1$s? @@ -200,11 +211,13 @@ Continutul fisierului este deja sincronizat Nu a putut fi creat directorul Caractere interzise: / \\ < > : \" | ? * + Numele fișierului conține măcar un caracter invalid Numele fișierului nu poate fi gol. Așteaptă un moment Problema neasteptata ; selectati fisierul dintr-o aplicatie diferita Nu a fost selectat nici un fișier Trimite link la ... + Copiere fișier din stocare privată Întră în cont cu oAuth2 Se conectează la serverul oAuth2... Nu s-a putut verifica identitatea site-ului @@ -237,14 +250,10 @@ 389 KO 2012/05/18 12:23 PM 12:23:45 - Incarca poze doar via WiFi + Încarcă poze doar prin WiFi Încarcă videoclipuri doar via WiFi /Încărcare instantă - Actualizați conflictul - Fișierul de la distanță %s nu este sincronizat cu fișierul local. Continuand, se va înlocui conținutul fișierului de pe server. Pastreaza amandoua - Scrie peste - Nu încarcă Previzualizare imagine Aceasta imagine nu poate fi arătată %1$s nu a putut fi copiat in dosarul local %2$s @@ -295,6 +304,19 @@ Securitate Calea de încărcare Video Descărcarea fișierului %1$s nu s-a finisat + partajat + cu tine + %1$s a partajat fișierul \"%2$s\" cu tine Reîmprospătează conexiunea Adresa server-ului + Memorie insuficientă + Utilizator + 1 folder + %1$d foldere + 1 fișier + 1 fișier, 1 folder + 1 fișier, %1$d foldere + %1$d fișiere + %1$d fișiere, 1 folder + %1$d fișiere, %2$d foldere diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 85a259ed..4ef6bf11 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -68,14 +68,10 @@ Содержимое не получено. Нечего загружать. Доступ к общему ресурсу для %1$s запрещен Загрузка - пару секунд назад + несколько секунд назад Здесь ничего нет. Загрузите что-нибудь! Загрузка... В этом каталоге нет файлов. - каталог - каталоги - файл - файлы Нажмите на файл для отображения дополнительной информации. Размер: Тип: @@ -128,7 +124,7 @@ Не удалось синхронизировать файлы Содержимое %1$d файлов не может быть синхронизировано (конфликтов: %2$d) Некоторые загруженные файлы не были перенесены в локальную папку - Невозможно скопировать %1$d файлов из папки %2$s + Не удалось скопировать %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 больше не существует Переместить всё @@ -136,7 +132,7 @@ Некоторые файлы не могут быть перемещены Локальные: %1$s Удаленные: %1$s - Для копирования выбранных файлов в каталог %1$s недостаточно свободного места. Скопировать в другое место? + Для копирования выбранных файлов в каталог %1$s недостаточно свободного места. Переместить их вместо этого? Пожалуйста, укажите код Укажите ваш код Код будет запрашиваться каждый раз при запуске приложения @@ -198,7 +194,8 @@ ⇥ Невозможно авторизоваться на этом сервере Аккаунт не существует на устройстве ещё - Обновлять файл + Добавить в избранное + Убрать из избранного Переименовать Удалить Вы действительно хотите удалить %1$s? @@ -214,7 +211,7 @@ Переименование не может быть завершено Удаленный файл не может быть проверен Содержимое файла уже синхронизировано - Невозможно создать каталог + Не удалось создать каталог Недопустимые символы: / \\ < > : \" | ? * Имя файла содержит по крайней мере один некорректный символ Имя файла не может быть пустым @@ -258,11 +255,7 @@ Загрузка изображений только через Wi-Fi Загрузка видео только через WiFi /InstantUpload - Конфликт обновления - Удаленный файл %s не синхронизирован с локальным. Продолжение приведет к замене содержимого файла на сервере. Сохранить оба - Перезаписать - Не загружать Предпросмотр Это изображение не может быть отображено %1$s невозможно скопировать в локальный каталог %2$s @@ -303,7 +296,7 @@ Требуется аутентификация Неправильный пароль Переместить - Здесь ничего нет. Вы можете добавить каталог! + Здесь ничего нет. Вы можете создать каталог! Выбрать Невозможно переместить. Убедитесь, что файл существует Невозможно переместить каталог в его подкаталог @@ -313,7 +306,7 @@ Мгновенные загрузки Безопасность Путь для загрузки Видео - Загрузка папки %1$s не может быть завершена + Не удалось завершить скачивание каталога %1$s поделился с вами %1$s предоставил вам доступ к \"%2$s\" @@ -321,4 +314,12 @@ Адрес сервера Недостаточно памяти Имя пользователя + 1 каталог + %1$d каталогов + 1 файл + 1 файл, 1 папка + 1 файл, %1$d каталогов + %1$d файлов + %1$d файлов, 1 каталог + %1$d файлов, %2$d каталогов diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml index 3fb139de..dce26eeb 100644 --- a/res/values-si-rLK/strings.xml +++ b/res/values-si-rLK/strings.xml @@ -26,10 +26,6 @@ උඩුගතවේ තත්පරයන්ට පෙර මෙහි කිසිවක් නොමැත. යමක් උඩුගත කරන්න - ෆෝල්ඩරය - ෆෝල්ඩර - ගොනුව - ගොනු වැඩි විස්තර සඳහා ගොනුවක් ස්පර්ෂ කරන්න විශාලත්වය: ගණය: @@ -67,7 +63,6 @@ හඳුනාගත නොහැකි අනුවාදයක් සම්බන්ධයක් ඇතිකර ගැනීමට නොහැකි විය රක්‍ෂිත සම්බන්ධතාවක් සාදන ලදී - ගොනුව යාවත්කාලීනව තබාගන්න නැවත නම් කරන්න ඉවත් කරන්න පෙදෙසි පමණක් diff --git a/res/values-sk-rSK/strings.xml b/res/values-sk-rSK/strings.xml index 27fc1c2f..d3e366f9 100644 --- a/res/values-sk-rSK/strings.xml +++ b/res/values-sk-rSK/strings.xml @@ -68,12 +68,7 @@ Nahrávanie pred sekundami Žiadny súbor. Nahrajte niečo! - Nahráva sa... V tomto priečinku nie sú žiadne súbory. - priečinok - priečinky - súbor - súbory Viac informácií získate kliknutím na súbor. VeľkosÅ¥: Typ: @@ -138,6 +133,8 @@ Vložte svoje heslo Prosím, vložte znovu svoje heslo: ZmazaÅ¥ svoje heslo + Bezpečnostný kód odstránený + Bezpečnostný kód uložený Prehrávač hudby %1$s %1$s (prehráva) %1$s (načítava) @@ -190,7 +187,8 @@ Nie je možné vykonaÅ¥ autentifikáciu na server Účet zatiaľ v zariadení neexistuje - UdržiavaÅ¥ súbor aktuálny. + Obľúbené + OdobraÅ¥ z obľúbených Premenuj Odober Naozaj chcete odstrániÅ¥ %1$s? @@ -248,11 +246,7 @@ OdoslaÅ¥ fotografie iba cez WiFi NahrávaÅ¥ videá len cez WiFi /InstantUpload - Konflikt pri aktualizácii - Vzdialený súbor %s nie je zosynchronizovaný s lokálnym. Pokračovanie prepíše obsah súboru na serveri. PonechaÅ¥ oba - PrepísaÅ¥ - Nenahrávajte Ukážka obrazu Obrázok nemožno zobraziÅ¥ %1$s nemožno skopírovaÅ¥ do lokálneho priečinka %2$s diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index a560ff9d..e13d17dd 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -71,10 +71,6 @@ Tukaj Å¡e ni ničesar. Najprej je treba datoteke poslati v oblak! Poteka nalaganje ... V tej mapi ni datotek. - mapa - mape - datoteka - datoteke Pritisnite na datoteko za prikaz dodatnih podrobnosti. Velikost: Vrsta: @@ -197,7 +193,8 @@ Ni mogoče preveriti pristnosti strežnika Račun na napravi Å¡e ne obstaja. - Datoteka naj bo posodobljena + Priljubljene + Odstrani priljubljeno Preimenuj Odstrani Ali res želite odstraniti %1$s? @@ -257,11 +254,7 @@ PoÅ¡iljaj slike le preko povezav Wi-Fi PoÅ¡lji posnetke le preko povezave Wi-Fi /Poslano - Posodobi podatke spora - Oddaljena datoteka %s ni usklajena s krajevno. Z nadaljevanem bo datoteka na strežniku zamenjana s krajevno. Ohrani obe - PrepiÅ¡i - Ne poÅ¡lji Predogled slike Te slike ni mogoče prikazati Datoteke %1$s ni mogoče kopirati v krajevno mapo %2$s @@ -315,8 +308,17 @@ Imenika %1$s ni mogoče prejeti v celoti v souporabi z vami + Uporabnik %1$s je omogočil souporabo \"%2$s\" z vami Osveži povezavo Naslov strežnika Ni dovolj pomnilnika UporabniÅ¡ko ime + 1 mapa + %1$d map + 1 datoteka + 1 datoteka, 1 mapa + 1 datoteka, %1$d map + %1$d datotek + %1$d datotek, 1 mapa + %1$d datotek, %2$d map diff --git a/res/values-sr-rSP/strings.xml b/res/values-sr-rSP/strings.xml index 679c36aa..6380fe3f 100644 --- a/res/values-sr-rSP/strings.xml +++ b/res/values-sr-rSP/strings.xml @@ -52,6 +52,7 @@ Nema konekcije Sigurna konekcija nije dostupna. Konekcija uspostavljena + Omiljeni Preimenij Ukloni Uklanjanje je uspelo diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index f6bbd623..7ced0476 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -69,12 +69,8 @@ Отпремање пре пар секунди Овде нема ничег. Отпремите нешто! - Учитавам + Учитавам… Нема фајлова у овој фасцикли. - фасцикла - фасцикли - фајл - фајлова Тапните на фајл ради приказа додатних информација. Величина: Врста: @@ -197,7 +193,8 @@ Не могу да аутентификујем са овим сервером Не постоји налог на уређају - Редовно ажурирај фајл + Омиљени + Неомиљени Преименуј Уклони Желите да уклоните %1$s? @@ -257,11 +254,7 @@ Отпремај слике само путем бежичне мреже Отпремај видео само путем бежичне мреже /InstantUpload - Ажурирај сукоб - Удаљени фајл %s није синхронизован са локалним. Ако наставите, заменићете фајл на серверу. Задржи оба - Пребриши - Не отпремај Преглед слике Слика се не може приказати %1$s се не може копирати у локалну фасциклу %2$s @@ -320,4 +313,12 @@ Адреса сервера Нема довољно меморије Корисничко име + 1 фасцикла + %1$d фасцикли + 1 фајл + 1 фајл, 1 фасцикла + 1 фајл, %1$d фасцикли + %1$d фајлова + %1$d фајлова, 1 фасцикла + %1$d фајлова, %2$d фасцикли diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 2d7f8b5f..2efdb1af 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -64,12 +64,7 @@ Laddar upp sekunder sedan Ingenting här. Ladda upp nÃ¥got! - Laddar... Det finns inga filer i den här mappen. - mapp - mappar - fil - filer Peka pÃ¥ en fil för att visa mer information. Storlek: Typ: @@ -180,7 +175,8 @@ Din server returnerar inte ett korrekt användare id, vänligen kontakta en administratör Kan inte autentisera mot servern - HÃ¥ll filen uppdaterad + Favorit + Avfavoritisera Byt namn Radera Vill du verkligen ta bort %1$s? @@ -238,11 +234,7 @@ Ladda upp bilder endast via WiFi Ladda upp videos endast via WIFI /DirektUppladdning - Uppdateringskonflikt - Serverns fil %s är inte synkroniserad med den lokala filen. Fortsätt för att skriva över filen pÃ¥ servern. BehÃ¥ll bÃ¥da - Skriv över - Ladda inte upp Förhandsvisa bild Denna bild kan inte visas %1$s kunde inte kopieras till %2$s lokal mapp diff --git a/res/values-ta-rLK/strings.xml b/res/values-ta-rLK/strings.xml index 3122b6f5..37b569a8 100644 --- a/res/values-ta-rLK/strings.xml +++ b/res/values-ta-rLK/strings.xml @@ -83,7 +83,7 @@ அங்கீகரிக்கப்படாத சேவையகம் பதிப்பு இணைப்பை நிறுவமுடியாது பாதுகாப்பான இணைப்பு உருவாக்கப்பட்டது. - நவீன கோப்பை வைத்திருக்கவும் + விருப்பமான பெயர்மாற்றம் அகற்றுக உள்ளூர் மட்டும் @@ -124,11 +124,7 @@ நெறிமுறை இது ஒரு placeholder WiFi ஊடாக மட்டும் படங்களை பதிவேற்றுக - இற்றைப்படுத்தலில் முரண்பாடு - இடத்துரி கோப்புடன் தொலைவு கோப்பு %s ஒத்திசைவாக்கப்படவில்லை. தொடர்ந்து மேற்கொண்டால் சேவையகத்தில் உள்ள கோப்பின் உள்ளடக்கம் மாற்றப்படும். இரண்டையும் வைக்க - மேலெழுதல் - பதிவேற்ற வேண்டாம் கணக்குகள் தெரிவுசெய்க diff --git a/res/values-th-rTH/strings.xml b/res/values-th-rTH/strings.xml index 498cc97a..50d6fc25 100644 --- a/res/values-th-rTH/strings.xml +++ b/res/values-th-rTH/strings.xml @@ -63,18 +63,14 @@ ไม่มีบัญชี %1$s บนอุปกรณ์ของคุณ กรุณาตั้งค่าบัญชีของคุณก่อน ตั้งค่า ออก - ยังไม่มีเนื้อหาที่ถูกอัปโหลด + ยังไม่มีเนื้อหาที่ถูกอัพโหลด ยังไม่ได้รับเนื้อหา ยังไม่มีการอัพโหลดใดๆ %1$s ไม่ได้รับอนุญาตให้เข้าถึงเนื้อหาที่ถูกแชร์ไว้ กำลังอัพโหลด วินาที ก่อนหน้านี้ - ยังไม่มีไฟล์ใดๆเลย ลองอัปโหลดดูสิ! - กำลังโหลด ... + ยังไม่มีไฟล์ใดๆเลย ลองอัพโหลดดูสิ! + กำลังโหลด... ยังไม่มีไฟล์ในโฟลเดอร์นี้ - โฟลเดอร์ - โฟลเดอร์ - ไฟล์ - ไฟล์ แตะที่ไฟล์ เพื่อแสดงข้อมูลเพิ่มเติม ขนาด: ชนิด: @@ -118,14 +114,14 @@ ยังดาวน์โหลดไม่ได้ การดาวน์โหลดล้มเหลวคุณจะต้องเข้าสู่ระบบใหม่ เลือกบัญชี - การเชื่อมผสานข้อมูลล้มเหลว - การเชื่อมผสานข้อมูลล้มเหลว คุณจะต้องเข้าสู่ระบบใหม่ - การเชื่อมผสานข้อมูลของ %1$s ไม่สามารถดำเนินการให้เสร็จสมบูรณ์ได้ + การเชื่อมประสานข้อมูลล้มเหลว + การประสานข้อมูลล้มเหลว คุณจะต้องเข้าสู่ระบบใหม่ + การประสานข้อมูลของ %1$s ไม่สามารถดำเนินการให้เสร็จสมบูรณ์ได้ รหัสผ่านไม่ถูกต้องสำหรับ %1$s ตรวจพบความขัดแย้ง - %1$d ไฟล์ kept-in-sync ไม่สามารถเชื่อมผสานข้อมูลได้ + %1$d ไฟล์ kept-in-sync ไม่สามารถประสานข้อมูลได้ ไฟล์ Kept-in-sync ล้มเหลว - เนื้อหาของไฟล์ %1$d ไม่สามารถผสานเชื่อมข้อมูลได้ (ความขัดแย้ง %2$d รายการ) + เนื้อหาของไฟล์ %1$d ไม่สามารถประสานเชื่อมข้อมูลได้ (ความขัดแย้ง %2$d รายการ) มีแฟ้มข้อมูลต้นทางบางแฟ้มถูกลืม ไม่สามารถคัดลอกไฟล์ %1$d ไปยังโฟลเดอร์ %2$s ขณะที่รุ่น 1.3.16 ไฟล์ที่อัปโหลดจากเครื่องของคุณจะถูกคัดลอกไปสำรองไว้ที่ต้นทาง %1$s เพื่อป้องกันการสูญเสียข้อมูลเมื่อไฟล์เดียวถูกซิงค์กับบัญชีหลายบัญชี \n\n การเปลี่ยนแปลงนี้ไฟล์ทั้งหมดที่อัปโหลดในรุ่นก่อนหน้า ของ app นี้ถูกคัดลอกลงในโฟลเดอร์ %2$s แต่ก็อาจมีข้อผิดพลาดในการดำเนินการนี้ช่วงระหว่างการประสานบัญชี คุณอาจจะสูญเสียข้อมูล เช่นเดียวกับการลบ หรือย้ายไฟล์และเชื่อมโยงไปยัง %3$s ส่วนโฟลเดอร์ %1$s จะถูกเชื่อมโยงไปยัง %4$s \n\n รายชื่อด้านล่าง เป็นแฟ้มต้นทาง และแฟ้มปลายทาง ใน %5$s มันจะถูกนำมาเชื่อมโยงกัน @@ -196,7 +192,8 @@ เซิร์ฟเวอร์ของคุณไม่ได้ส่งคืนรหัสผู้ใช้ที่ถูกต้อง กรุณาติดต่อผู้ดูแลระบบ! ไม่สามารถยืนยันตัวตนกับเซิร์ฟเวอร์นี้ ยังไม่มีบัญชีในอุปกรณ์นี้ - ปรับปรุงไฟล์ให้ทันสมัยอยู่เสมอ + รายการโปรด + ออกจากรายการโปรด เปลี่ยนชื่อ ลบออก คุณต้องการที่จะลบ %1$s? @@ -211,7 +208,7 @@ ไฟล์ต้นทางที่คัดลอกไม่สามารถเปลี่ยนชื่อได้, กรุณาเปลี่ยนเป็นชื่อใหม่ ไม่สามารถเปลี่ยนชื่อได้ ไม่สามารถตรวจสอบไฟล์ระยะไกลได้ - เนื้อหาของไฟล์มีข้อมูลอยู่แล้ว + เนื้อหาของไฟล์ถูกประสานข้อมูลอยู่แล้ว ไม่สามารถสร้างโฟลเดอร์ ห้ามใช้ตัวอักษรดังนี้: / \\ < > : \" | ? * มีชื่อแฟ้มอย่างน้อยหนึ่งตัวอักษรที่ไม่ถูกต้อง @@ -256,11 +253,11 @@ อัพโหลดรูปภาพผ่านทาง WiFi เท่านั้น อัพโหลดวีดีโอผ่านทาง WiFi เท่านั้น /อัพโหลดทันที - ปรับปรุงข้อผิดพลาด - ไฟล์ระยะไกล %s ยังไม่ได้ผสานข้อมูลกับไฟล์ต้นทาง การดำเนินการต่อไปจะเป็นการแทนที่เนื้อหาของไฟล์ที่มีอยู่บนเซิร์ฟเวอร์ + ไฟล์ที่ขัดแย้ง + ไฟล์ใดที่คุณต้องการที่จะเก็บ? หากคุณเลือกทั้งสองรุ่น ไฟล์ต้นทางจะมีจำนวนชื่อเพิ่ม เก็บไว้ทั้งสองอย่าง - เขียนทับ - ไม่ต้องอัพโหลด + ใช้รุ่นทั่วไป + ใช้รุ่นของเซิร์ฟเวอร์ แสดงรูปภาพตัวอย่าง ไม่สามารถแสดงรูปภาพนี้ได้ %1$s ไม่สามารถคัดลอกไปยังโฟลเดอร์ %2$s ในเครื่อง @@ -313,8 +310,18 @@ การดาวน์โหลดโฟลเดอร์ %1$s อาจไม่สำเร็จ ถูกแชร์ กับคุณ + %1$s ได้แชร์ \"%2$s\" กับคุณ + \"%1$s\" ได้ถูกแชร์กับคุณ ฟื้นฟูการเชื่อมต่อ ที่อยู่เซิร์ฟเวอร์ หน่วยความจำไม่พอ ชื่อผู้ใช้ + 1 โฟลเดอร์ + %1$d โฟลเดอร์ + 1 ไฟล์ + 1 ไฟล์, 1 โฟลเดอร์ + 1 ไฟล์, %1$d โฟลเดอร์ + %1$d ไฟล์ + %1$d ไฟล์, 1 โฟลเดอร์ + %1$d ไฟล์, %2$d โฟลเดอร์ diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 92cae34a..13e90b66 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -71,10 +71,6 @@ Burada hiçbir şey yok. Bir şeyler yükleyin! Yükleniyor... Bu klasörde dosya yok. - klasör - klasör - dosya - dosya Ek bilgileri görmek için dosyaya dokunun. Boyut: Tür: @@ -197,7 +193,8 @@ Bu sunucuya karşı kimlik doğrulama yapılamaz Hesap henüz cihazda mevcut değil - Dosyayı güncel tut + Sık kullanılan + Favoriden kaldır Yeniden adlandır Kaldır Gerçekten %1$s dosyasını kaldırmak istiyor musunuz? @@ -257,11 +254,7 @@ Fotoğrafları sadece kablosuzda (WiFi) yükle Videoları sadece kablosuzda (WiFi) yükle /AnındaYükle - Çakışmayı güncelle - Uzaktaki %s dosyası, yerel dosya ile eşitlenemedi. İşleme devam etmek sunucudaki dosyanın içeriğini değiştirecektir. İkisini de koru - Üzerine yaz - Yükleme Resim önizleme Bu resim gösterilemiyor %1$s, %2$s yerel klasörüne kopyalanamadı @@ -315,8 +308,17 @@ %1$s klasörün indirilmesi tamamlanamadı sizinle paylaştı + %1$s, sizinle \"%2$s\" paylaşımını yaptı Bağlantıyı yenile Sunucu adresi Yeterli hafıza yok Kullanıcı adı + 1 klasör + %1$d klasör + 1 dosya + 1 dosya, 1 klasör + 1 dosya, %1$d klasör + %1$d dosya + %1$d dosya, 1 klasör + %1$d dosya, %2$d klasör diff --git a/res/values-ug/strings.xml b/res/values-ug/strings.xml index f5a7f4ad..97255fef 100644 --- a/res/values-ug/strings.xml +++ b/res/values-ug/strings.xml @@ -43,6 +43,7 @@ ئىم ئۆزگەرت قىسقۇچ ئاتى ھېسابات تاللاڭ + يىغقۇچ ئات ئۆزگەرت چىقىرىۋەت يوللا diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index c2341398..485b6ab1 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -21,8 +21,12 @@ Biggest - Smallest--> + Усі файли + Налаштування + Журнали + Закрити Основне Більше Облікові записи @@ -64,12 +68,8 @@ Завантаження секунди тому Тут нічого немає. Відвантажте що-небудь! - Завантаження... + Завантаження… В цій теці немає файлів. - тека - теки - файл - файли Натисніть на файлі для відображення додаткової інформації Розмір: Тип: @@ -182,7 +182,7 @@ ⇥ Аутентифікація на цьому сервері неможлива Користвача в пристрої не існуе - Оновлювати файл + Улюблений Перейменувати Видалити Ви дійсно бажаєте видалити %1$s? @@ -242,11 +242,7 @@ Завантажувати зображення тільки через WiFi Завантажувати відео тільки через WiFi /InstantUpload - Конфлікт оновлення - Віддалений файл %s не синхронізовано з локальним. Продовження процедури замінить вміст файлу на сервері. Залишити обидва - Замінити - Не завантажувати Попередній перегляд зображення Не вдалося показати зображення %1$s неможливо скопіювати до %2$s @@ -297,6 +293,18 @@ Безпека Шлях завантаження відео Скачування теки %1$s не може бути завершено + з Вами + %1$s поділився \"%2$s\" з вами Оновити з\'єднання Ареса серверу + Недостатньо пам\'яті + Ім\'я користувача + 1 тека + %1$d тек + 1 файл + 1 файл, 1 тека + 1 файл, %1$d тек + %1$d файлів + %1$d файлів, 1 тека + %1$d файлів, %2$d тек diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 622322f6..fdaec2a5 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -50,10 +50,6 @@ Đang tải lên vài giây trước Không có gì ở đây .Hãy tải lên một cái gì đó ! - folder - folders - file - files Tap vào một tập tin để hiển thị thêm thông tin Kích thước: Loại: @@ -154,7 +150,7 @@ Đang kết nối đến máy chá»§ xác thá»±c... Máy chá»§ không hổ trợ phương thức xác thá»±c này %1$s không hỗ trợ nhiều tài khoản - Giữ tập tin cập nhật + Ưu thích Sá»­a tên Xóa Chỉ cục bộ @@ -205,11 +201,7 @@ 12:23:45 Tải hình ảnh lên thông qua WiFi /Upload tức thì - Cập nhật xung đột - %s là tập tin từ xa nó không đồng bộ với tập tin máy bạn . Nếu bạn tiếp tục sẽ thay đổi nội dung cá»§a tập tin trên máy chá»§. Giữ cho cả hai - Ghi đè lên - Không tải lên Xem trước hình ảnh Một lỗi đã xảy ra khi thá»­ chia sẻ file hoặc thư mục này Một lỗi đã xảy ra khi thá»­ gỡ chia sẻ file hoặc thư mục này diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 6afb25d5..5551587c 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -1,6 +1,6 @@ - %1$s 安卓应用 + %1$s Android 应用 版本:%1$s 刷新帐户 上传 @@ -69,12 +69,8 @@ 上传 几秒前 这里还什么都没有。上传些东西吧! - 载入中.... + 加载中... 在该文件夹中不存在文件。 - 文件夹 - 文件夹 - 文件 - 文件 点击一个文件可以显示额外的信息。 大小: 类型: @@ -197,7 +193,7 @@ 无法通过此服务器认证 设备中还未存在该帐号 - 保证文件更新 + 收藏 重命名 删除 你确定要删除 %1$s 吗? @@ -215,6 +211,7 @@ 文件内容已同步 文件夹无法创建 禁用字符: / \\ < > : \" | ? * + 文件名中存在至少一个非法字符 文件名不能为空 请稍候 未知问题;请试试用其他程序选择此文件 @@ -256,11 +253,11 @@ 仅通过 WIFI 上传图片。 仅通过 WIFI 上传视频 /InstantUpload - 上传冲突 - 远程文件 %s 未与本地文件同步。继续将替换服务器上的文件内容。 + 文件冲突 + 您想要保留哪个文件?如果您同时选中了两个版本,本地的文件的文件名将被加上一个数字 保留两者 - 覆盖 - 不上传 + 使用本地版本 + 使用服务器版本 图片预览 无法显示图片 无法复制 %1$s 到本地目录 %2$s @@ -317,4 +314,12 @@ 服务器地址 内存不足 用户名 + 1 个文件夹 + %1$d 个文件夹 + 1 个文件 + 1 个文件,1 个文件夹 + 1 个文件,%1$d 个文件夹 + %1$d 个文件 + %1$d 个文件,1 个文件夹 + %1$d 个文件,%2$d 个文件夹 diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 369ae9ec..980ba44c 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -68,12 +68,7 @@ 上傳中 幾秒前 這裡還沒有東西,上傳一些吧! - 載入中… 這個目錄中沒有任何檔案. - 資料夾 - 資料夾 - 檔案 - 檔案 在檔案上輕觸來顯示更多資訊。 容量: 類型: @@ -186,7 +181,7 @@ 無法在這個伺服器上取得認證 帳號目前不存在於本裝置 - 讓檔案保持最新的 + 我的最愛 重新命名 移除 您真的要移除 %1$s ? @@ -244,11 +239,7 @@ 只使用 WiFi 來執行即時圖片上傳的功能 只使用 WiFi 來執行即時影像上傳的功能 /InstantUpload - 更新衝突 - 遠端檔案 %s 未同步到本地. 繼續將取代伺服器上的文件. 都保留 - 覆寫 - 不要上載 圖片預覽 無法顯示圖片 %1$s 無法被複製到本地目錄 %2$s diff --git a/res/values/strings.xml b/res/values/strings.xml index af79535a..dd8ce04f 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -72,12 +72,8 @@ Uploading seconds ago Nothing in here. Upload something! - Loading... + Loading… There are no files in this folder. - folder - folders - file - files Tap on a file to display additional information. Size: Type: @@ -204,7 +200,8 @@ Cannot authenticate against this server Account does not exist in the device yet - Keep file up to date + Favorite + Unfavorite Rename Remove "Do you really want to remove %1$s?" @@ -268,11 +265,11 @@ Upload pictures via WiFi only Upload videos via WiFi only /InstantUpload - Update conflict - Remote file %s is not synchronized with local file. Continuing will replace content of file on server. + File conflict + Which files do you want to keep? If you select both versions, the local file will have a number added to its name. Keep both - Overwrite - Don\'t upload + Use local version + Use server version Image preview This image cannot be shown @@ -301,7 +298,7 @@ An error occurred while waiting for the server, the operation couldn\'t have been done The operation couldn\'t be completed, server is unavailable - + You do not have permission %s to rename this file @@ -344,10 +341,21 @@ with you %1$s shared \"%2$s\" with you + \"%1$s\" has been shared with you Refresh connection Server address Not enough memory Username + + 1 folder + %1$d folders + 1 file + 1 file, 1 folder + 1 file, %1$d folders + %1$d files + %1$d files, 1 folder + %1$d files, %2$d folders + diff --git a/src/com/owncloud/android/datamodel/FileDataStorageManager.java b/src/com/owncloud/android/datamodel/FileDataStorageManager.java index 7db0a637..c5fc94d1 100644 --- a/src/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/src/com/owncloud/android/datamodel/FileDataStorageManager.java @@ -190,7 +190,7 @@ public class FileDataStorageManager { cv.put(ProviderTableMeta.FILE_ACCOUNT_OWNER, mAccount.name); cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE, file.getLastSyncDateForProperties()); cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA, file.getLastSyncDateForData()); - cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.keepInSync() ? 1 : 0); + cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.isFavorite() ? 1 : 0); cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag()); cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, file.isShareByLink() ? 1 : 0); cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink()); @@ -300,7 +300,7 @@ public class FileDataStorageManager { cv.put(ProviderTableMeta.FILE_ACCOUNT_OWNER, mAccount.name); cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE, file.getLastSyncDateForProperties()); cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA, file.getLastSyncDateForData()); - cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.keepInSync() ? 1 : 0); + cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.isFavorite() ? 1 : 0); cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag()); cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, file.isShareByLink() ? 1 : 0); cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink()); @@ -377,7 +377,7 @@ public class FileDataStorageManager { cv.put(ProviderTableMeta.FILE_ACCOUNT_OWNER, mAccount.name); cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE, folder.getLastSyncDateForProperties()); cv.put(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA, folder.getLastSyncDateForData()); - cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, folder.keepInSync() ? 1 : 0); + cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, folder.isFavorite() ? 1 : 0); cv.put(ProviderTableMeta.FILE_ETAG, folder.getEtag()); cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, folder.isShareByLink() ? 1 : 0); cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, folder.getPublicLink()); @@ -877,7 +877,7 @@ public class FileDataStorageManager { .getColumnIndex(ProviderTableMeta.FILE_LAST_SYNC_DATE))); file.setLastSyncDateForData(c.getLong(c. getColumnIndex(ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA))); - file.setKeepInSync(c.getInt( + file.setFavorite(c.getInt( c.getColumnIndex(ProviderTableMeta.FILE_KEEP_IN_SYNC)) == 1 ? true : false); file.setEtag(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_ETAG))); file.setShareByLink(c.getInt( @@ -1261,7 +1261,7 @@ public class FileDataStorageManager { ProviderTableMeta.FILE_LAST_SYNC_DATE_FOR_DATA, file.getLastSyncDateForData() ); - cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.keepInSync() ? 1 : 0); + cv.put(ProviderTableMeta.FILE_KEEP_IN_SYNC, file.isFavorite() ? 1 : 0); cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag()); cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, file.isShareByLink() ? 1 : 0); cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink()); diff --git a/src/com/owncloud/android/datamodel/OCFile.java b/src/com/owncloud/android/datamodel/OCFile.java index 2c9c53be..d1821b44 100644 --- a/src/com/owncloud/android/datamodel/OCFile.java +++ b/src/com/owncloud/android/datamodel/OCFile.java @@ -60,7 +60,7 @@ public class OCFile implements Parcelable, Comparable { private boolean mNeedsUpdating; private long mLastSyncDateForProperties; private long mLastSyncDateForData; - private boolean mKeepInSync; + private boolean mFavorite; private String mEtag; @@ -107,7 +107,7 @@ public class OCFile implements Parcelable, Comparable { mLocalPath = source.readString(); mMimeType = source.readString(); mNeedsUpdating = source.readInt() == 0; - mKeepInSync = source.readInt() == 1; + mFavorite = source.readInt() == 1; mLastSyncDateForProperties = source.readLong(); mLastSyncDateForData = source.readLong(); mEtag = source.readString(); @@ -132,7 +132,7 @@ public class OCFile implements Parcelable, Comparable { dest.writeString(mLocalPath); dest.writeString(mMimeType); dest.writeInt(mNeedsUpdating ? 1 : 0); - dest.writeInt(mKeepInSync ? 1 : 0); + dest.writeInt(mFavorite ? 1 : 0); dest.writeLong(mLastSyncDateForProperties); dest.writeLong(mLastSyncDateForData); dest.writeString(mEtag); @@ -346,7 +346,7 @@ public class OCFile implements Parcelable, Comparable { mModifiedTimestampAtLastSyncForData = 0; mLastSyncDateForProperties = 0; mLastSyncDateForData = 0; - mKeepInSync = false; + mFavorite = false; mNeedsUpdating = false; mEtag = null; mShareByLink = false; @@ -444,12 +444,12 @@ public class OCFile implements Parcelable, Comparable { mLastSyncDateForData = lastSyncDate; } - public void setKeepInSync(boolean keepInSync) { - mKeepInSync = keepInSync; + public void setFavorite(boolean favorite) { + mFavorite = favorite; } - public boolean keepInSync() { - return mKeepInSync; + public boolean isFavorite() { + return mFavorite; } @Override @@ -483,8 +483,8 @@ public class OCFile implements Parcelable, Comparable { @Override public String toString() { - String asString = "[id=%s, name=%s, mime=%s, downloaded=%s, local=%s, remote=%s, parentId=%s, keepInSync=%s etag=%s]"; - asString = String.format(asString, Long.valueOf(mId), getFileName(), mMimeType, isDown(), mLocalPath, mRemotePath, Long.valueOf(mParentId), Boolean.valueOf(mKeepInSync), mEtag); + String asString = "[id=%s, name=%s, mime=%s, downloaded=%s, local=%s, remote=%s, parentId=%s, favorite=%s etag=%s]"; + asString = String.format(asString, Long.valueOf(mId), getFileName(), mMimeType, isDown(), mLocalPath, mRemotePath, Long.valueOf(mParentId), Boolean.valueOf(mFavorite), mEtag); return asString; } diff --git a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java index 0e59a834..5806a408 100644 --- a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java +++ b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java @@ -24,6 +24,8 @@ package com.owncloud.android.datamodel; import java.io.File; import java.io.InputStream; import java.lang.ref.WeakReference; +import java.net.FileNameMap; +import java.net.URLConnection; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.GetMethod; @@ -33,6 +35,8 @@ import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Paint; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.ThumbnailUtils; @@ -51,6 +55,7 @@ import com.owncloud.android.lib.resources.status.OwnCloudVersion; import com.owncloud.android.ui.adapter.DiskLruImageCache; import com.owncloud.android.utils.BitmapUtils; import com.owncloud.android.utils.DisplayUtils; +import com.owncloud.android.utils.FileStorageUtils; /** * Manager for concurrent access to thumbnails cache. @@ -176,8 +181,19 @@ public class ThumbnailsCacheManager { if (mFile instanceof OCFile) { thumbnail = doOCFileInBackground(); + + if (((OCFile) mFile).isVideo()){ + thumbnail = addVideoOverlay(thumbnail); + } } else if (mFile instanceof File) { thumbnail = doFileInBackground(); + + String url = ((File) mFile).getAbsolutePath(); + String mMimeType = FileStorageUtils.getMimeTypeFromName(url); + + if (mMimeType != null && mMimeType.startsWith("video/")){ + thumbnail = addVideoOverlay(thumbnail); + } //} else { do nothing } @@ -362,6 +378,51 @@ public class ThumbnailsCacheManager { return null; } + public static Bitmap addVideoOverlay(Bitmap thumbnail){ + Bitmap playButton = BitmapFactory.decodeResource(MainApp.getAppContext().getResources(), + R.drawable.view_play); + + Bitmap resizedPlayButton = Bitmap.createScaledBitmap(playButton, + (int) (thumbnail.getWidth() * 0.3), + (int) (thumbnail.getHeight() * 0.3), true); + + Bitmap resultBitmap = Bitmap.createBitmap(thumbnail.getWidth(), + thumbnail.getHeight(), + Bitmap.Config.ARGB_8888); + + Canvas c = new Canvas(resultBitmap); + + // compute visual center of play button, according to resized image + int x1 = resizedPlayButton.getWidth(); + int y1 = resizedPlayButton.getHeight() / 2; + int x2 = 0; + int y2 = resizedPlayButton.getWidth(); + int x3 = 0; + int y3 = 0; + + double ym = ( ((Math.pow(x3,2) - Math.pow(x1,2) + Math.pow(y3,2) - Math.pow(y1,2)) * + (x2 - x1)) - (Math.pow(x2,2) - Math.pow(x1,2) + Math.pow(y2,2) - + Math.pow(y1,2)) * (x3 - x1) ) / (2 * ( ((y3 - y1) * (x2 - x1)) - + ((y2 - y1) * (x3 - x1)) )); + double xm = ( (Math.pow(x2,2) - Math.pow(x1,2)) + (Math.pow(y2,2) - Math.pow(y1,2)) - + (2*ym*(y2 - y1)) ) / (2*(x2 - x1)); + + // offset to top left + double ox = - xm; + double oy = thumbnail.getHeight() - ym; + + + c.drawBitmap(thumbnail, 0, 0, null); + + Paint p = new Paint(); + p.setAlpha(230); + + c.drawBitmap(resizedPlayButton, (float) ((thumbnail.getWidth() / 2) + ox), + (float) ((thumbnail.getHeight() / 2) - ym), p); + + return resultBitmap; + } + public static class AsyncDrawable extends BitmapDrawable { private final WeakReference bitmapWorkerTaskReference; diff --git a/src/com/owncloud/android/files/FileMenuFilter.java b/src/com/owncloud/android/files/FileMenuFilter.java index d6c075d6..2c2754cc 100644 --- a/src/com/owncloud/android/files/FileMenuFilter.java +++ b/src/com/owncloud/android/files/FileMenuFilter.java @@ -215,6 +215,20 @@ public class FileMenuFilter { toShow.add(R.id.action_send_file); } + // FAVORITES + if (mFile == null || downloading || uploading || mFile.isFolder() || mFile.isFavorite()) { + toHide.add(R.id.action_favorite_file); + } else { + toShow.add(R.id.action_favorite_file); + } + + // UNFAVORITES + if (mFile == null || downloading || uploading || mFile.isFolder() || !mFile.isFavorite()) { + toHide.add(R.id.action_unfavorite_file); + } else { + toShow.add(R.id.action_unfavorite_file); + } + } } diff --git a/src/com/owncloud/android/files/FileOperationsHelper.java b/src/com/owncloud/android/files/FileOperationsHelper.java index 75fae370..ddee2050 100644 --- a/src/com/owncloud/android/files/FileOperationsHelper.java +++ b/src/com/owncloud/android/files/FileOperationsHelper.java @@ -40,6 +40,7 @@ import com.owncloud.android.lib.common.network.WebdavUtils; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.lib.resources.status.OwnCloudVersion; import com.owncloud.android.services.OperationsService; +import com.owncloud.android.services.observer.FileObserverService; import com.owncloud.android.ui.activity.FileActivity; import com.owncloud.android.ui.dialog.ShareLinkToDialog; @@ -187,12 +188,14 @@ public class FileOperationsHelper { public void sendDownloadedFile(OCFile file) { if (file != null) { + String storagePath = file.getStoragePath(); + String encodedStoragePath = WebdavUtils.encodePath(storagePath); Intent sendIntent = new Intent(android.content.Intent.ACTION_SEND); // set MimeType sendIntent.setType(file.getMimetype()); - sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.getStoragePath())); + sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + encodedStoragePath)); sendIntent.putExtra(Intent.ACTION_SEND, true); // Send Action - + // Show dialog, without the own app String[] packagesToExclude = new String[] { mFileActivity.getPackageName() }; DialogFragment chooserDialog = ShareLinkToDialog.newInstance(sendIntent, packagesToExclude, file); @@ -223,6 +226,24 @@ public class FileOperationsHelper { mFileActivity.startService(intent); } } + + public void toggleFavorite(OCFile file, boolean isFavorite) { + file.setFavorite(isFavorite); + mFileActivity.getStorageManager().saveFile(file); + + /// register the OCFile instance in the observer service to monitor local updates + Intent observedFileIntent = FileObserverService.makeObservedFileIntent( + mFileActivity, + file, + mFileActivity.getAccount(), + isFavorite); + mFileActivity.startService(observedFileIntent); + + /// immediate content synchronization + if (file.isFavorite()) { + syncFile(file); + } + } public void renameFile(OCFile file, String newFilename) { // RenameFile @@ -282,8 +303,8 @@ public class FileOperationsHelper { downloaderBinder.cancel(account, file); // TODO - review why is this here, and solve in a better way - // Remove etag for parent, if file is a keep_in_sync - if (file.keepInSync()) { + // Remove etag for parent, if file is a favorite + if (file.isFavorite()) { OCFile parent = mFileActivity.getStorageManager().getFileById(file.getParentId()); parent.setEtag(""); mFileActivity.getStorageManager().saveFile(parent); diff --git a/src/com/owncloud/android/operations/CreateShareOperation.java b/src/com/owncloud/android/operations/CreateShareOperation.java index 7cdcc083..a7270eb8 100644 --- a/src/com/owncloud/android/operations/CreateShareOperation.java +++ b/src/com/owncloud/android/operations/CreateShareOperation.java @@ -161,9 +161,16 @@ public class CreateShareOperation extends SyncOperation { OCFile file = getStorageManager().getFileByPath(mPath); if (file!=null) { mSendIntent.putExtra(Intent.EXTRA_TEXT, share.getShareLink()); - mSendIntent.putExtra(Intent.EXTRA_SUBJECT, - String.format(mContext.getString(R.string.subject_token), - getClient().getCredentials().getUsername(), file.getFileName())); + if (getClient().getCredentials().getUsername() == null) { + //in saml is null + mSendIntent.putExtra(Intent.EXTRA_SUBJECT, + String.format(mContext.getString(R.string.saml_subject_token), + file.getFileName())); + } else { + mSendIntent.putExtra(Intent.EXTRA_SUBJECT, + String.format(mContext.getString(R.string.subject_token), + getClient().getCredentials().getUsername(), file.getFileName())); + } file.setPublicLink(share.getShareLink()); file.setShareByLink(true); getStorageManager().saveFile(file); diff --git a/src/com/owncloud/android/operations/RefreshFolderOperation.java b/src/com/owncloud/android/operations/RefreshFolderOperation.java index 2e3c4692..ddbffb8c 100644 --- a/src/com/owncloud/android/operations/RefreshFolderOperation.java +++ b/src/com/owncloud/android/operations/RefreshFolderOperation.java @@ -365,7 +365,7 @@ public class RefreshFolderOperation extends RemoteOperation { if (localFile != null) { // some properties of local state are kept unmodified remoteFile.setFileId(localFile.getFileId()); - remoteFile.setKeepInSync(localFile.keepInSync()); + remoteFile.setFavorite(localFile.isFavorite()); remoteFile.setLastSyncDateForData(localFile.getLastSyncDateForData()); remoteFile.setModificationTimestampAtLastSyncForData( localFile.getModificationTimestampAtLastSyncForData() @@ -397,7 +397,7 @@ public class RefreshFolderOperation extends RemoteOperation { searchForLocalFileInDefaultPath(remoteFile); // legacy /// prepare content synchronization for kept-in-sync files - if (remoteFile.keepInSync()) { + if (remoteFile.isFavorite()) { SynchronizeFileOperation operation = new SynchronizeFileOperation( localFile, remoteFile, mAccount, diff --git a/src/com/owncloud/android/operations/SynchronizeFileOperation.java b/src/com/owncloud/android/operations/SynchronizeFileOperation.java index 27b0b5ad..f94adb15 100644 --- a/src/com/owncloud/android/operations/SynchronizeFileOperation.java +++ b/src/com/owncloud/android/operations/SynchronizeFileOperation.java @@ -245,12 +245,12 @@ public class SynchronizeFileOperation extends SyncOperation { if (mSyncFileContents) { requestForDownload(mLocalFile); // local, not server; we won't to keep - // the value of keepInSync! + // the value of favorite! // the update of local data will be done later by the FileUploader // service when the upload finishes } else { // TODO CHECK: is this really useful in some point in the code? - mServerFile.setKeepInSync(mLocalFile.keepInSync()); + mServerFile.setFavorite(mLocalFile.isFavorite()); mServerFile.setLastSyncDateForData(mLocalFile.getLastSyncDateForData()); mServerFile.setStoragePath(mLocalFile.getStoragePath()); mServerFile.setParentId(mLocalFile.getParentId()); @@ -285,7 +285,7 @@ public class SynchronizeFileOperation extends SyncOperation { i.putExtra(FileUploader.KEY_ACCOUNT, mAccount); i.putExtra(FileUploader.KEY_FILE, file); /*i.putExtra(FileUploader.KEY_REMOTE_FILE, mRemotePath); - // doing this we would lose the value of keepInSync in the road, and maybe + // doing this we would lose the value of isFavorite in the road, and maybe // it's not updated in the database when the FileUploader service gets it! i.putExtra(FileUploader.KEY_LOCAL_FILE, localFile.getStoragePath());*/ i.putExtra(FileUploader.KEY_UPLOAD_TYPE, FileUploader.UPLOAD_SINGLE_FILE); diff --git a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java index 6bf1ef82..78b6a7ba 100644 --- a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java +++ b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java @@ -321,7 +321,7 @@ public class SynchronizeFolderOperation extends SyncOperation { if (localFile != null) { // some properties of local state are kept unmodified remoteFile.setFileId(localFile.getFileId()); - remoteFile.setKeepInSync(localFile.keepInSync()); + remoteFile.setFavorite(localFile.isFavorite()); remoteFile.setLastSyncDateForData(localFile.getLastSyncDateForData()); remoteFile.setModificationTimestampAtLastSyncForData( localFile.getModificationTimestampAtLastSyncForData() @@ -360,7 +360,7 @@ public class SynchronizeFolderOperation extends SyncOperation { startSyncFolderOperation(remoteFile.getRemotePath()); } - } else if (remoteFile.keepInSync()) { + } else if (remoteFile.isFavorite()) { /// prepare content synchronization for kept-in-sync files SynchronizeFileOperation operation = new SynchronizeFileOperation( localFile, diff --git a/src/com/owncloud/android/operations/UploadFileOperation.java b/src/com/owncloud/android/operations/UploadFileOperation.java index b114195b..12cf1ac7 100644 --- a/src/com/owncloud/android/operations/UploadFileOperation.java +++ b/src/com/owncloud/android/operations/UploadFileOperation.java @@ -407,7 +407,7 @@ public class UploadFileOperation extends RemoteOperation { newFile.setModificationTimestampAtLastSyncForData( mFile.getModificationTimestampAtLastSyncForData()); // newFile.setEtag(mFile.getEtag()) - newFile.setKeepInSync(mFile.keepInSync()); + newFile.setFavorite(mFile.isFavorite()); newFile.setLastSyncDateForProperties(mFile.getLastSyncDateForProperties()); newFile.setLastSyncDateForData(mFile.getLastSyncDateForData()); newFile.setStoragePath(mFile.getStoragePath()); diff --git a/src/com/owncloud/android/services/OperationsService.java b/src/com/owncloud/android/services/OperationsService.java index 7667e90a..2514c4de 100644 --- a/src/com/owncloud/android/services/OperationsService.java +++ b/src/com/owncloud/android/services/OperationsService.java @@ -457,7 +457,8 @@ public class OperationsService extends Service { // TODO refactor to run GetUserName as AsyncTask in the context of // AuthenticatorActivity credentials = OwnCloudCredentialsFactory.newSamlSsoCredentials( - mLastTarget.mCookie); // SAML SSO + null, // unknown + mLastTarget.mCookie); // SAML SSO } OwnCloudAccount ocAccount = new OwnCloudAccount( mLastTarget.mServerUrl, credentials); diff --git a/src/com/owncloud/android/ui/activity/ConflictsResolveActivity.java b/src/com/owncloud/android/ui/activity/ConflictsResolveActivity.java index fa3eea6f..601ec4fd 100644 --- a/src/com/owncloud/android/ui/activity/ConflictsResolveActivity.java +++ b/src/com/owncloud/android/ui/activity/ConflictsResolveActivity.java @@ -23,6 +23,7 @@ package com.owncloud.android.ui.activity; import com.owncloud.android.datamodel.OCFile; +import com.owncloud.android.files.services.FileDownloader; import com.owncloud.android.files.services.FileUploader; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.ui.dialog.ConflictsResolveDialog; @@ -58,11 +59,20 @@ public class ConflictsResolveActivity extends FileActivity implements OnConflict finish(); return; case OVERWRITE: + // use local version -> overwrite on server i.putExtra(FileUploader.KEY_FORCE_OVERWRITE, true); break; case KEEP_BOTH: i.putExtra(FileUploader.KEY_LOCAL_BEHAVIOUR, FileUploader.LOCAL_BEHAVIOUR_MOVE); break; + case SERVER: + // use server version -> delete local, request download + Intent intent = new Intent(this, FileDownloader.class); + intent.putExtra(FileDownloader.EXTRA_ACCOUNT, getAccount()); + intent.putExtra(FileDownloader.EXTRA_FILE, getFile()); + startService(intent); + finish(); + return; default: Log_OC.wtf(TAG, "Unhandled conflict decision " + decision); return; diff --git a/src/com/owncloud/android/ui/activity/FileActivity.java b/src/com/owncloud/android/ui/activity/FileActivity.java index 19960e3b..4e38c523 100644 --- a/src/com/owncloud/android/ui/activity/FileActivity.java +++ b/src/com/owncloud/android/ui/activity/FileActivity.java @@ -67,6 +67,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult; import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.operations.CreateShareOperation; +import com.owncloud.android.operations.SynchronizeFileOperation; import com.owncloud.android.operations.SynchronizeFolderOperation; import com.owncloud.android.operations.UnshareLinkOperation; import com.owncloud.android.services.OperationsService; @@ -75,6 +76,8 @@ import com.owncloud.android.ui.NavigationDrawerItem; import com.owncloud.android.ui.adapter.NavigationDrawerListAdapter; import com.owncloud.android.ui.dialog.LoadingDialog; import com.owncloud.android.ui.dialog.SharePasswordDialogFragment; +import com.owncloud.android.ui.fragment.FileDetailFragment; +import com.owncloud.android.ui.fragment.FileFragment; import com.owncloud.android.utils.ErrorMessageAdapter; import java.util.ArrayList; @@ -93,49 +96,49 @@ public class FileActivity extends ActionBarActivity "com.owncloud.android.ui.activity.WAITING_TO_PREVIEW"; public static final String EXTRA_FROM_NOTIFICATION = "com.owncloud.android.ui.activity.FROM_NOTIFICATION"; - + public static final String TAG = FileActivity.class.getSimpleName(); - + private static final String DIALOG_WAIT_TAG = "DIALOG_WAIT"; private static final String KEY_WAITING_FOR_OP_ID = "WAITING_FOR_OP_ID"; private static final String DIALOG_SHARE_PASSWORD = "DIALOG_SHARE_PASSWORD"; private static final String KEY_TRY_SHARE_AGAIN = "TRY_SHARE_AGAIN"; private static final String KEY_ACTION_BAR_TITLE = "ACTION_BAR_TITLE"; - + protected static final long DELAY_TO_REQUEST_OPERATION_ON_ACTIVITY_RESULTS = 200; - - + + /** OwnCloud {@link Account} where the main {@link OCFile} handled by the activity is located.*/ private Account mAccount; - + /** Main {@link OCFile} handled by the activity.*/ private OCFile mFile; - + /** Flag to signal that the activity will is finishing to enforce the creation of an ownCloud * {@link Account} */ private boolean mRedirectingToSetupAccount = false; - - /** Flag to signal when the value of mAccount was set */ + + /** Flag to signal when the value of mAccount was set */ protected boolean mAccountWasSet; - - /** Flag to signal when the value of mAccount was restored from a saved state */ + + /** Flag to signal when the value of mAccount was restored from a saved state */ protected boolean mAccountWasRestored; - + /** Flag to signal if the activity is launched by a notification */ private boolean mFromNotification; - + /** Messages handler associated to the main thread and the life cycle of the activity */ private Handler mHandler; - + /** Access point to the cached database for the current ownCloud {@link Account} */ private FileDataStorageManager mStorageManager = null; - + private FileOperationsHelper mFileOperationsHelper; - + private ServiceConnection mOperationsServiceConnection = null; - + private OperationsServiceBinder mOperationsServiceBinder = null; - + protected FileDownloaderBinder mDownloaderBinder = null; protected FileUploaderBinder mUploaderBinder = null; private ServiceConnection mDownloadServiceConnection, mUploadServiceConnection = null; @@ -158,12 +161,12 @@ public class FileActivity extends ActionBarActivity // TODO re-enable when "Accounts" is available in Navigation Drawer // protected boolean mShowAccounts = false; - + /** - * Loads the ownCloud {@link Account} and main {@link OCFile} to be handled by the instance of + * Loads the ownCloud {@link Account} and main {@link OCFile} to be handled by the instance of * the {@link FileActivity}. - * - * Grants that a valid ownCloud {@link Account} is associated to the instance, or that the user + * + * Grants that a valid ownCloud {@link Account} is associated to the instance, or that the user * is requested to create a new one. */ @Override @@ -191,11 +194,11 @@ public class FileActivity extends ActionBarActivity // or database setAccount(account, savedInstanceState != null); - + mOperationsServiceConnection = new OperationsServiceConnection(); bindService(new Intent(this, OperationsService.class), mOperationsServiceConnection, Context.BIND_AUTO_CREATE); - + mDownloadServiceConnection = newTransferenceServiceConnection(); if (mDownloadServiceConnection != null) { bindService(new Intent(this, FileDownloader.class), mDownloadServiceConnection, @@ -220,8 +223,8 @@ public class FileActivity extends ActionBarActivity } /** - * Since ownCloud {@link Account}s can be managed from the system setting menu, - * the existence of the {@link Account} associated to the instance must be checked + * Since ownCloud {@link Account}s can be managed from the system setting menu, + * the existence of the {@link Account} associated to the instance must be checked * every time it is restarted. */ @Override @@ -235,8 +238,8 @@ public class FileActivity extends ActionBarActivity Log_OC.v(TAG, "onRestart() end"); } - - @Override + + @Override protected void onStart() { super.onStart(); @@ -244,26 +247,26 @@ public class FileActivity extends ActionBarActivity onAccountSet(mAccountWasRestored); } } - + @Override protected void onResume() { super.onResume(); - + if (mOperationsServiceBinder != null) { doOnResumeAndBound(); } } - + @Override protected void onPause() { if (mOperationsServiceBinder != null) { mOperationsServiceBinder.removeOperationListener(this); } - + super.onPause(); } - - + + @Override protected void onDestroy() { if (mOperationsServiceConnection != null) { @@ -405,19 +408,14 @@ public class FileActivity extends ActionBarActivity /// choose the appropiate title if (chosenFile == null) { - // mFile determines the title - inRoot = (mFile == null || mFile.getParentId() == 0); - if (!inRoot) { - title = mFile.getFileName(); - } - - } else if (chosenFile.getParentId() != 0){ - // chosenFile determines the title, instead of mFile + chosenFile = mFile; // if no file is passed, current file decides + } + inRoot = ( + chosenFile == null || + (chosenFile.isFolder() && chosenFile.getParentId() == FileDataStorageManager.ROOT_PARENT_ID) + ); + if (!inRoot) { title = chosenFile.getFileName(); - inRoot = false; - - } else{ - inRoot = true; } /// set the chosen title @@ -440,12 +438,12 @@ public class FileActivity extends ActionBarActivity /** - * Sets and validates the ownCloud {@link Account} associated to the Activity. - * + * Sets and validates the ownCloud {@link Account} associated to the Activity. + * * If not valid, tries to swap it for other valid and existing ownCloud {@link Account}. - * - * POSTCONDITION: updates {@link #mAccountWasSet} and {@link #mAccountWasRestored}. - * + * + * POSTCONDITION: updates {@link #mAccountWasSet} and {@link #mAccountWasRestored}. + * * @param account New {@link Account} to set. * @param savedAccount When 'true', account was retrieved from a saved instance state. */ @@ -458,19 +456,19 @@ public class FileActivity extends ActionBarActivity mAccount = account; mAccountWasSet = true; mAccountWasRestored = (savedAccount || mAccount.equals(oldAccount)); - + } else { swapToDefaultAccount(); } } - + /** - * Tries to swap the current ownCloud {@link Account} for other valid and existing. - * - * If no valid ownCloud {@link Account} exists, the the user is requested + * Tries to swap the current ownCloud {@link Account} for other valid and existing. + * + * If no valid ownCloud {@link Account} exists, the the user is requested * to create a new ownCloud {@link Account}. - * + * * POSTCONDITION: updates {@link #mAccountWasSet} and {@link #mAccountWasRestored}. */ private void swapToDefaultAccount() { @@ -482,7 +480,7 @@ public class FileActivity extends ActionBarActivity mRedirectingToSetupAccount = true; mAccountWasSet = false; mAccountWasRestored = false; - + } else { mAccountWasSet = true; mAccountWasRestored = (newAccount.equals(mAccount)); @@ -505,7 +503,7 @@ public class FileActivity extends ActionBarActivity null); } - + /** * {@inheritDoc} */ @@ -518,32 +516,32 @@ public class FileActivity extends ActionBarActivity outState.putBoolean(KEY_TRY_SHARE_AGAIN, mTryShareAgain); outState.putString(KEY_ACTION_BAR_TITLE, getSupportActionBar().getTitle().toString()); } - - + + /** * Getter for the main {@link OCFile} handled by the activity. - * + * * @return Main {@link OCFile} handled by the activity. */ public OCFile getFile() { return mFile; } - + /** * Setter for the main {@link OCFile} handled by the activity. - * + * * @param file Main {@link OCFile} to be handled by the activity. */ public void setFile(OCFile file) { mFile = file; } - + /** * Getter for the ownCloud {@link Account} where the main {@link OCFile} handled by the activity * is located. - * + * * @return OwnCloud {@link Account} where the main {@link OCFile} handled by the activity * is located. */ @@ -561,7 +559,7 @@ public class FileActivity extends ActionBarActivity public boolean fromNotification() { return mFromNotification; } - + /** * @return 'True' when the Activity is finishing to enforce the setup of a new account. */ @@ -576,11 +574,11 @@ public class FileActivity extends ActionBarActivity public void setTryShareAgain(boolean tryShareAgain) { mTryShareAgain = tryShareAgain; } - + public OperationsServiceBinder getOperationsServiceBinder() { return mOperationsServiceBinder; } - + protected ServiceConnection newTransferenceServiceConnection() { return null; } @@ -588,7 +586,7 @@ public class FileActivity extends ActionBarActivity /** * Helper class handling a callback from the {@link AccountManager} after the creation of * a new ownCloud {@link Account} finished, successfully or not. - * + * * At this moment, only called after the creation of the first account. */ public class AccountCreationCallback implements AccountManagerCallback { @@ -609,11 +607,11 @@ public class FileActivity extends ActionBarActivity } } catch (OperationCanceledException e) { Log_OC.d(TAG, "Account creation canceled"); - + } catch (Exception e) { Log_OC.e(TAG, "Account creation finished in exception: ", e); } - + } else { Log_OC.e(TAG, "Account creation callback with null bundle"); } @@ -621,19 +619,19 @@ public class FileActivity extends ActionBarActivity moveTaskToBack(true); } } - + } - - + + /** * Called when the ownCloud {@link Account} associated to the Activity was just updated. - * + * * Child classes must grant that state depending on the {@link Account} is updated. */ protected void onAccountSet(boolean stateWasRecovered) { if (getAccount() != null) { mStorageManager = new FileDataStorageManager(getAccount(), getContentResolver()); - + } else { Log_OC.wtf(TAG, "onAccountChanged was called with NULL account associated!"); } @@ -653,13 +651,13 @@ public class FileActivity extends ActionBarActivity public Handler getHandler() { return mHandler; } - + public FileOperationsHelper getFileOperationsHelper() { return mFileOperationsHelper; } - + /** - * + * * @param operation Removal operation performed. * @param result Result of the removal. */ @@ -667,17 +665,17 @@ public class FileActivity extends ActionBarActivity public void onRemoteOperationFinish(RemoteOperation operation, RemoteOperationResult result) { Log_OC.d(TAG, "Received result of operation in FileActivity - common behaviour for all the " + "FileActivities "); - + mFileOperationsHelper.setOpIdWaitingFor(Long.MAX_VALUE); - + if (!result.isSuccess() && ( - result.getCode() == ResultCode.UNAUTHORIZED || + result.getCode() == ResultCode.UNAUTHORIZED || result.isIdPRedirection() || (result.isException() && result.getException() instanceof AuthenticatorException) )) { - + requestCredentialsUpdate(); - + if (result.getCode() == ResultCode.UNAUTHORIZED) { dismissLoadingDialog(); Toast t = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, @@ -689,13 +687,16 @@ public class FileActivity extends ActionBarActivity } else if (operation instanceof CreateShareOperation) { onCreateShareOperationFinish((CreateShareOperation) operation, result); - + } else if (operation instanceof UnshareLinkOperation) { onUnshareLinkOperationFinish((UnshareLinkOperation)operation, result); - + } else if (operation instanceof SynchronizeFolderOperation) { onSynchronizeFolderOperationFinish((SynchronizeFolderOperation)operation, result); + }else if (operation instanceof SynchronizeFileOperation) { + onSynchronizeFileOperationFinish((SynchronizeFileOperation)operation, result); + } } @@ -703,12 +704,12 @@ public class FileActivity extends ActionBarActivity Intent updateAccountCredentials = new Intent(this, AuthenticatorActivity.class); updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, getAccount()); updateAccountCredentials.putExtra( - AuthenticatorActivity.EXTRA_ACTION, + AuthenticatorActivity.EXTRA_ACTION, AuthenticatorActivity.ACTION_UPDATE_EXPIRED_TOKEN); updateAccountCredentials.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); startActivity(updateAccountCredentials); } - + private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) { @@ -716,7 +717,7 @@ public class FileActivity extends ActionBarActivity if (result.isSuccess()) { mTryShareAgain = false; updateFileFromDB(); - + Intent sendIntent = operation.getSendIntent(); startActivity(sendIntent); } else { @@ -740,22 +741,22 @@ public class FileActivity extends ActionBarActivity Toast.LENGTH_LONG); t.show(); } - } + } } - - + + private void onUnshareLinkOperationFinish(UnshareLinkOperation operation, RemoteOperationResult result) { dismissLoadingDialog(); - + if (result.isSuccess()){ updateFileFromDB(); - + } else { Toast t = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), Toast.LENGTH_LONG); t.show(); - } + } } private void onSynchronizeFolderOperationFinish( @@ -767,7 +768,29 @@ public class FileActivity extends ActionBarActivity t.show(); } } - + + private void onSynchronizeFileOperationFinish(SynchronizeFileOperation operation, + RemoteOperationResult result) { + dismissLoadingDialog(); + OCFile syncedFile = operation.getLocalFile(); + if (!result.isSuccess()) { + if (result.getCode() == ResultCode.SYNC_CONFLICT) { + Intent i = new Intent(this, ConflictsResolveActivity.class); + i.putExtra(ConflictsResolveActivity.EXTRA_FILE, syncedFile); + i.putExtra(ConflictsResolveActivity.EXTRA_ACCOUNT, getAccount()); + startActivity(i); + } + + } else { + if (!operation.transferWasRequested()) { + Toast msg = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, + operation, getResources()), Toast.LENGTH_LONG); + msg.show(); + } + invalidateOptionsMenu(); + } + } + protected void updateFileFromDB(){ OCFile file = getFile(); if (file != null) { @@ -775,9 +798,10 @@ public class FileActivity extends ActionBarActivity setFile(file); } } - + + /** - * Show loading dialog + * Show loading dialog */ public void showLoadingDialog() { // Construct dialog @@ -785,10 +809,10 @@ public class FileActivity extends ActionBarActivity FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); loading.show(ft, DIALOG_WAIT_TAG); - + } - + /** * Dismiss loading dialog */ @@ -800,7 +824,7 @@ public class FileActivity extends ActionBarActivity } } - + private void doOnResumeAndBound() { mOperationsServiceBinder.addOperationListener(FileActivity.this, mHandler); long waitingForOpId = mFileOperationsHelper.getOpIdWaitingFor(); @@ -814,8 +838,8 @@ public class FileActivity extends ActionBarActivity } - /** - * Implements callback methods for service binding. Passed as a parameter to { + /** + * Implements callback methods for service binding. Passed as a parameter to { */ private class OperationsServiceConnection implements ServiceConnection { @@ -833,7 +857,7 @@ public class FileActivity extends ActionBarActivity return; } } - + @Override public void onServiceDisconnected(ComponentName component) { diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 7c3f6f50..a3d9b104 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -58,6 +58,7 @@ import android.widget.Toast; import com.owncloud.android.MainApp; import com.owncloud.android.R; +import com.owncloud.android.datamodel.FileDataStorageManager; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.services.FileDownloader; import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; @@ -729,7 +730,8 @@ public class FileDisplayActivity extends HookActivity public void onBackPressed() { OCFileListFragment listOfFiles = getListOfFilesFragment(); if (mDualPane || getSecondFragment() == null) { - if (getFile() != null && getFile().getParentId() == 0) { + OCFile currentDir = getCurrentDir(); + if (currentDir == null || currentDir.getParentId() == FileDataStorageManager.ROOT_PARENT_ID) { finish(); return; } @@ -1257,7 +1259,7 @@ public class FileDisplayActivity extends HookActivity super.onRemoteOperationFinish(operation, result); if (operation instanceof RemoveFileOperation) { - onRemoveFileOperationFinish((RemoveFileOperation)operation, result); + onRemoveFileOperationFinish((RemoveFileOperation) operation, result); } else if (operation instanceof RenameFileOperation) { onRenameFileOperationFinish((RenameFileOperation)operation, result); @@ -1435,25 +1437,11 @@ public class FileDisplayActivity extends HookActivity private void onSynchronizeFileOperationFinish(SynchronizeFileOperation operation, RemoteOperationResult result) { - dismissLoadingDialog(); - OCFile syncedFile = operation.getLocalFile(); - if (!result.isSuccess()) { - if (result.getCode() == ResultCode.SYNC_CONFLICT) { - Intent i = new Intent(this, ConflictsResolveActivity.class); - i.putExtra(ConflictsResolveActivity.EXTRA_FILE, syncedFile); - i.putExtra(ConflictsResolveActivity.EXTRA_ACCOUNT, getAccount()); - startActivity(i); - - } - - } else { + if (result.isSuccess()) { if (operation.transferWasRequested()) { + OCFile syncedFile = operation.getLocalFile(); onTransferStateChanged(syncedFile, true, true); - - } else { - Toast msg = Toast.makeText(this, ErrorMessageAdapter.getErrorCauseMessage(result, - operation, getResources()), Toast.LENGTH_LONG); - msg.show(); + invalidateOptionsMenu(); } } } diff --git a/src/com/owncloud/android/ui/activity/PassCodeActivity.java b/src/com/owncloud/android/ui/activity/PassCodeActivity.java index b781e28a..09a96307 100644 --- a/src/com/owncloud/android/ui/activity/PassCodeActivity.java +++ b/src/com/owncloud/android/ui/activity/PassCodeActivity.java @@ -61,7 +61,9 @@ public class PassCodeActivity extends ActionBarActivity { private EditText[] mPassCodeEditTexts = new EditText[4]; private String [] mPassCodeDigits = {"","","",""}; + private static String KEY_PASSCODE_DIGITS = "PASSCODE_DIGITS"; private boolean mConfirmingPassCode = false; + private static String KEY_CONFIRMING_PASSCODE = "CONFIRMING_PASSCODE"; private boolean mBChange = true; // to control that only one blocks jump @@ -96,13 +98,22 @@ public class PassCodeActivity extends ActionBarActivity { setCancelButtonEnabled(false); // no option to cancel } else if (ACTION_ENABLE.equals(getIntent().getAction())) { - /// pass code preference has just been activated in Preferences; - // will receive and confirm pass code value - mPassCodeHdr.setText(R.string.pass_code_configure_your_pass_code); - //mPassCodeHdr.setText(R.string.pass_code_enter_pass_code); - // TODO choose a header, check iOS - mPassCodeHdrExplanation.setVisibility(View.VISIBLE); - setCancelButtonEnabled(true); + if (savedInstanceState != null) { + mConfirmingPassCode = savedInstanceState.getBoolean(PassCodeActivity.KEY_CONFIRMING_PASSCODE); + mPassCodeDigits = savedInstanceState.getStringArray(PassCodeActivity.KEY_PASSCODE_DIGITS); + } + if(mConfirmingPassCode){ + //the app was in the passcodeconfirmation + requestPassCodeConfirmation(); + }else{ + /// pass code preference has just been activated in Preferences; + // will receive and confirm pass code value + mPassCodeHdr.setText(R.string.pass_code_configure_your_pass_code); + //mPassCodeHdr.setText(R.string.pass_code_enter_pass_code); + // TODO choose a header, check iOS + mPassCodeHdrExplanation.setVisibility(View.VISIBLE); + setCancelButtonEnabled(true); + } } else if (ACTION_DISABLE.equals(getIntent().getAction())) { /// pass code preference has just been disabled in Preferences; @@ -455,6 +466,13 @@ public class PassCodeActivity extends ActionBarActivity { finish(); } + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putBoolean(PassCodeActivity.KEY_CONFIRMING_PASSCODE, mConfirmingPassCode); + outState.putStringArray(PassCodeActivity.KEY_PASSCODE_DIGITS, mPassCodeDigits); + } + private class PassCodeDigitTextWatcher implements TextWatcher { diff --git a/src/com/owncloud/android/ui/activity/Uploader.java b/src/com/owncloud/android/ui/activity/Uploader.java index 533bb991..f0e06953 100644 --- a/src/com/owncloud/android/ui/activity/Uploader.java +++ b/src/com/owncloud/android/ui/activity/Uploader.java @@ -426,7 +426,7 @@ public class Uploader extends FileActivity data, R.layout.uploader_list_item_layout, new String[] {"dirname"}, - new int[] {R.id.textView1}); + new int[] {R.id.filename}); mListView.setAdapter(sa); Button btnChooseFolder = (Button) findViewById(R.id.uploader_choose_folder); @@ -638,6 +638,7 @@ public class Uploader extends FileActivity mParents.add(""); } else{ String[] dir_names = last_path.split("/"); + mParents.clear(); for (String dir : dir_names) mParents.add(dir); } diff --git a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java index a589512e..26d77db5 100644 --- a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java +++ b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java @@ -30,6 +30,9 @@ import android.accounts.Account; import android.content.Context; import android.content.SharedPreferences; import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Paint; import android.os.Build; import android.preference.PreferenceManager; import android.text.format.DateUtils; @@ -268,15 +271,14 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { } // share with me icon - if (!file.isFolder()) { - ImageView sharedWithMeIconV = (ImageView) - view.findViewById(R.id.sharedWithMeIcon); - sharedWithMeIconV.bringToFront(); - if (checkIfFileIsSharedWithMe(file)) { - sharedWithMeIconV.setVisibility(View.VISIBLE); - } else { - sharedWithMeIconV.setVisibility(View.GONE); - } + ImageView sharedWithMeIconV = (ImageView) + view.findViewById(R.id.sharedWithMeIcon); + sharedWithMeIconV.bringToFront(); + if (checkIfFileIsSharedWithMe(file) && + (!file.isFolder() || !mGridMode)) { + sharedWithMeIconV.setVisibility(View.VISIBLE); + } else { + sharedWithMeIconV.setVisibility(View.GONE); } break; @@ -286,7 +288,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { // this if-else is needed even though favorite icon is visible by default // because android reuses views in listview - if (!file.keepInSync()) { + if (!file.isFavorite()) { view.findViewById(R.id.favoriteIcon).setVisibility(View.GONE); } else { view.findViewById(R.id.favoriteIcon).setVisibility(View.VISIBLE); @@ -300,7 +302,13 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { String.valueOf(file.getRemoteId()) ); if (thumbnail != null && !file.needsUpdateThumbnail()){ - fileIcon.setImageBitmap(thumbnail); + + if (file.isVideo()) { + Bitmap withOverlay = ThumbnailsCacheManager.addVideoOverlay(thumbnail); + fileIcon.setImageBitmap(withOverlay); + } else { + fileIcon.setImageBitmap(thumbnail); + } } else { // generate new Thumbnail if (ThumbnailsCacheManager.cancelPotentialWork(file, fileIcon)) { @@ -308,19 +316,17 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { new ThumbnailsCacheManager.ThumbnailGenerationTask( fileIcon, mStorageManager, mAccount ); - if (thumbnail != null) { - final ThumbnailsCacheManager.AsyncDrawable asyncDrawable = - new ThumbnailsCacheManager.AsyncDrawable( - mContext.getResources(), - thumbnail, - task - ); - fileIcon.setImageDrawable(asyncDrawable); - task.execute(file); - } else { - fileIcon.setImageResource(DisplayUtils.getFileTypeIconId( - file.getMimetype(), file.getFileName())); + if (thumbnail == null) { + thumbnail = ThumbnailsCacheManager.mDefaultImg; } + final ThumbnailsCacheManager.AsyncDrawable asyncDrawable = + new ThumbnailsCacheManager.AsyncDrawable( + mContext.getResources(), + thumbnail, + task + ); + fileIcon.setImageDrawable(asyncDrawable); + task.execute(file); } } } else { diff --git a/src/com/owncloud/android/ui/dialog/ConflictsResolveDialog.java b/src/com/owncloud/android/ui/dialog/ConflictsResolveDialog.java index d322a8ea..163197c5 100644 --- a/src/com/owncloud/android/ui/dialog/ConflictsResolveDialog.java +++ b/src/com/owncloud/android/ui/dialog/ConflictsResolveDialog.java @@ -42,7 +42,8 @@ public class ConflictsResolveDialog extends DialogFragment { public static enum Decision { CANCEL, KEEP_BOTH, - OVERWRITE + OVERWRITE, + SERVER } OnConflictDecisionMadeListener mListener; @@ -63,7 +64,7 @@ public class ConflictsResolveDialog extends DialogFragment { .setIcon(DisplayUtils.getSeasonalIconId()) .setTitle(R.string.conflict_title) .setMessage(String.format(getString(R.string.conflict_message), remotepath)) - .setPositiveButton(R.string.conflict_overwrite, + .setPositiveButton(R.string.conflict_use_local_version, new DialogInterface.OnClickListener() { @Override @@ -80,12 +81,12 @@ public class ConflictsResolveDialog extends DialogFragment { mListener.conflictDecisionMade(Decision.KEEP_BOTH); } }) - .setNegativeButton(R.string.conflict_dont_upload, + .setNegativeButton(R.string.conflict_use_server_version, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (mListener != null) - mListener.conflictDecisionMade(Decision.CANCEL); + mListener.conflictDecisionMade(Decision.SERVER); } }) .create(); diff --git a/src/com/owncloud/android/ui/dialog/RemoveFileDialogFragment.java b/src/com/owncloud/android/ui/dialog/RemoveFileDialogFragment.java index 3045b278..72f40f97 100644 --- a/src/com/owncloud/android/ui/dialog/RemoveFileDialogFragment.java +++ b/src/com/owncloud/android/ui/dialog/RemoveFileDialogFragment.java @@ -110,21 +110,21 @@ implements ConfirmationDialogFragmentListener { FileDataStorageManager storageManager = cg.getStorageManager(); - boolean containsKeepInSync = false; + boolean containsFavorite = false; if (mTargetFile.isFolder()) { // TODO Enable when "On Device" is recovered ? Vector files = storageManager.getFolderContent(mTargetFile/*, false*/); for(OCFile file: files) { - containsKeepInSync = file.keepInSync() || containsKeepInSync; + containsFavorite = file.isFavorite() || containsFavorite; - if (containsKeepInSync) + if (containsFavorite) break; } } - // Remove etag for parent, if file is a keep_in_sync - // or is a folder and contains keep_in_sync - if (mTargetFile.keepInSync() || containsKeepInSync) { + // Remove etag for parent, if file is a favorite + // or is a folder and contains favorite + if (mTargetFile.isFavorite() || containsFavorite) { OCFile folder = null; if (mTargetFile.isFolder()) { folder = mTargetFile; diff --git a/src/com/owncloud/android/ui/fragment/FileDetailFragment.java b/src/com/owncloud/android/ui/fragment/FileDetailFragment.java index 4f099e49..9916a3d0 100644 --- a/src/com/owncloud/android/ui/fragment/FileDetailFragment.java +++ b/src/com/owncloud/android/ui/fragment/FileDetailFragment.java @@ -131,7 +131,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener mView = inflater.inflate(mLayout, null); if (mLayout == R.layout.file_details_fragment) { - mView.findViewById(R.id.fdKeepInSync).setOnClickListener(this); + mView.findViewById(R.id.fdFavorite).setOnClickListener(this); ProgressBar progressBar = (ProgressBar)mView.findViewById(R.id.fdProgressBar); mProgressListener = new ProgressListener(progressBar); mView.findViewById(R.id.fdCancelBtn).setOnClickListener(this); @@ -259,6 +259,14 @@ public class FileDetailFragment extends FileFragment implements OnClickListener } return true; } + case R.id.action_favorite_file:{ + mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(), true); + return true; + } + case R.id.action_unfavorite_file:{ + mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(), false); + return true; + } default: return false; } @@ -267,8 +275,9 @@ public class FileDetailFragment extends FileFragment implements OnClickListener @Override public void onClick(View v) { switch (v.getId()) { - case R.id.fdKeepInSync: { - toggleKeepInSync(); + case R.id.fdFavorite: { + CheckBox cb = (CheckBox) getView().findViewById(R.id.fdFavorite); + mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(),cb.isChecked()); break; } case R.id.fdCancelBtn: { @@ -279,27 +288,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener Log_OC.e(TAG, "Incorrect view clicked!"); } } - - - private void toggleKeepInSync() { - CheckBox cb = (CheckBox) getView().findViewById(R.id.fdKeepInSync); - OCFile file = getFile(); - file.setKeepInSync(cb.isChecked()); - mContainerActivity.getStorageManager().saveFile(file); - - /// register the OCFile instance in the observer service to monitor local updates - Intent observedFileIntent = FileObserverService.makeObservedFileIntent( - getActivity(), - file, - mAccount, - cb.isChecked()); - getActivity().startService(observedFileIntent); - - /// immediate content synchronization - if (file.keepInSync()) { - mContainerActivity.getFileOperationsHelper().syncFile(getFile()); - } - } + /** * Check if the fragment was created with an empty layout. An empty fragment can't show file details, must be replaced. @@ -348,8 +337,8 @@ public class FileDetailFragment extends FileFragment implements OnClickListener setTimeModified(file.getModificationTimestamp()); - CheckBox cb = (CheckBox)getView().findViewById(R.id.fdKeepInSync); - cb.setChecked(file.keepInSync()); + CheckBox cb = (CheckBox)getView().findViewById(R.id.fdFavorite); + cb.setChecked(file.isFavorite()); // configure UI for depending upon local state of the file FileDownloaderBinder downloaderBinder = mContainerActivity.getFileDownloaderBinder(); @@ -437,7 +426,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener private void setButtonsForTransferring() { if (!isEmpty()) { // let's protect the user from himself ;) - getView().findViewById(R.id.fdKeepInSync).setEnabled(false); + getView().findViewById(R.id.fdFavorite).setEnabled(false); // show the progress bar for the transfer getView().findViewById(R.id.fdProgressBlock).setVisibility(View.VISIBLE); @@ -459,7 +448,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener */ private void setButtonsForDown() { if (!isEmpty()) { - getView().findViewById(R.id.fdKeepInSync).setEnabled(true); + getView().findViewById(R.id.fdFavorite).setEnabled(true); // hides the progress bar getView().findViewById(R.id.fdProgressBlock).setVisibility(View.GONE); @@ -473,7 +462,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener */ private void setButtonsForRemote() { if (!isEmpty()) { - getView().findViewById(R.id.fdKeepInSync).setEnabled(true); + getView().findViewById(R.id.fdFavorite).setEnabled(true); // hides the progress bar getView().findViewById(R.id.fdProgressBlock).setVisibility(View.GONE); diff --git a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java index 68deb031..5dfb329d 100644 --- a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -341,6 +341,14 @@ public class OCFileListFragment extends ExtendedListFragment { getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_MOVE_FILES); return true; } + case R.id.action_favorite_file:{ + mContainerActivity.getFileOperationsHelper().toggleFavorite(mTargetFile, true); + return true; + } + case R.id.action_unfavorite_file:{ + mContainerActivity.getFileOperationsHelper().toggleFavorite(mTargetFile, false); + return true; + } default: return super.onContextItemSelected(item); } @@ -421,7 +429,7 @@ public class OCFileListFragment extends ExtendedListFragment { foldersCount++; } else { filesCount++; - if (file.isImage()){ + if (file.isImage() || file.isVideo()){ imagesCount++; } } @@ -437,28 +445,48 @@ public class OCFileListFragment extends ExtendedListFragment { switchToGridView(); } else { switchToListView(); +// switchToGridView(); } } } private String generateFooterText(int filesCount, int foldersCount) { - String output = ""; - if (filesCount > 0){ - if (filesCount == 1) { - output = output + filesCount + " " + getResources().getString(R.string.file_list_file); - } else { - output = output + filesCount + " " + getResources().getString(R.string.file_list_files); + String output; + if (filesCount <= 0) { + if (foldersCount <= 0) { + output = ""; + + } else if (foldersCount == 1) { + output = getResources().getString(R.string.file_list__footer__folder); + + } else { // foldersCount > 1 + output = getResources().getString(R.string.file_list__footer__folders, foldersCount); } - } - if (foldersCount > 0 && filesCount > 0){ - output = output + ", "; - } - if (foldersCount == 1) { - output = output + foldersCount + " " + getResources().getString(R.string.file_list_folder); - } else if (foldersCount > 1) { - output = output + foldersCount + " " + getResources().getString(R.string.file_list_folders); - } + } else if (filesCount == 1) { + if (foldersCount <= 0) { + output = getResources().getString(R.string.file_list__footer__file); + + } else if (foldersCount == 1) { + output = getResources().getString(R.string.file_list__footer__file_and_folder); + + } else { // foldersCount > 1 + output = getResources().getString(R.string.file_list__footer__file_and_folders, foldersCount); + } + } else { // filesCount > 1 + if (foldersCount <= 0) { + output = getResources().getString(R.string.file_list__footer__files, filesCount); + + } else if (foldersCount == 1) { + output = getResources().getString(R.string.file_list__footer__files_and_folder, filesCount); + + } else { // foldersCount > 1 + output = getResources().getString( + R.string.file_list__footer__files_and_folders, filesCount, foldersCount + ); + + } + } return output; } @@ -473,8 +501,7 @@ public class OCFileListFragment extends ExtendedListFragment { public void sortBySize(boolean descending) { mAdapter.setSortOrder(FileStorageUtils.SORT_SIZE, descending); - } - - + } + } diff --git a/src/com/owncloud/android/ui/preview/PreviewImageActivity.java b/src/com/owncloud/android/ui/preview/PreviewImageActivity.java index 2b0d96ce..b2d0c8cf 100644 --- a/src/com/owncloud/android/ui/preview/PreviewImageActivity.java +++ b/src/com/owncloud/android/ui/preview/PreviewImageActivity.java @@ -55,6 +55,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCo import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.operations.CreateShareOperation; import com.owncloud.android.operations.RemoveFileOperation; +import com.owncloud.android.operations.SynchronizeFileOperation; import com.owncloud.android.operations.UnshareLinkOperation; import com.owncloud.android.ui.activity.FileActivity; import com.owncloud.android.ui.activity.FileDisplayActivity; @@ -234,6 +235,9 @@ public class PreviewImageActivity extends FileActivity implements } else if (operation instanceof RemoveFileOperation) { finish(); + } else if (operation instanceof SynchronizeFileOperation) { + onSynchronizeFileOperationFinish((SynchronizeFileOperation) operation, result); + } } @@ -263,6 +267,14 @@ public class PreviewImageActivity extends FileActivity implements } } + private void onSynchronizeFileOperationFinish(SynchronizeFileOperation operation, + RemoteOperationResult result) { + if (result.isSuccess()) { + invalidateOptionsMenu(); + } + + } + @Override protected ServiceConnection newTransferenceServiceConnection() { return new PreviewImageServiceConnection(); diff --git a/src/com/owncloud/android/ui/preview/PreviewImageFragment.java b/src/com/owncloud/android/ui/preview/PreviewImageFragment.java index 7950ec98..7ca1cfbb 100644 --- a/src/com/owncloud/android/ui/preview/PreviewImageFragment.java +++ b/src/com/owncloud/android/ui/preview/PreviewImageFragment.java @@ -306,7 +306,14 @@ public class PreviewImageFragment extends FileFragment { mContainerActivity.getFileOperationsHelper().syncFile(getFile()); return true; } - + case R.id.action_favorite_file:{ + mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(), true); + return true; + } + case R.id.action_unfavorite_file:{ + mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(), false); + return true; + } default: return false; } diff --git a/src/com/owncloud/android/ui/preview/PreviewMediaFragment.java b/src/com/owncloud/android/ui/preview/PreviewMediaFragment.java index c5883cfc..d87b82cb 100644 --- a/src/com/owncloud/android/ui/preview/PreviewMediaFragment.java +++ b/src/com/owncloud/android/ui/preview/PreviewMediaFragment.java @@ -341,7 +341,14 @@ public class PreviewMediaFragment extends FileFragment implements mContainerActivity.getFileOperationsHelper().syncFile(getFile()); return true; } - + case R.id.action_favorite_file:{ + mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(), true); + return true; + } + case R.id.action_unfavorite_file:{ + mContainerActivity.getFileOperationsHelper().toggleFavorite(getFile(), false); + return true; + } default: return false; }