Merge branch 'master' into move-aborted-upload-detection-into-plugin-master

This commit is contained in:
Thomas Müller 2013-09-30 09:21:37 +02:00
commit 952433eae6
67 changed files with 683 additions and 274 deletions

View File

@ -41,6 +41,7 @@ $TRANSLATIONS = array(
"Your storage is almost full ({usedSpacePercent}%)" => "Ο αποθηκευτικός χώρος είναι σχεδόν γεμάτος ({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" => "Ο αποθηκευτικός χώρος είναι σχεδόν γεμάτος ({usedSpacePercent}%)",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Η κρυπτογράφηση απενεργοποιήθηκε, αλλά τα αρχεία σας είναι ακόμα κρυπτογραφημένα. Παρακαλούμε απενεργοποιήσετε την κρυπτογράφηση αρχείων από τις προσωπικές σας ρυθμίσεις", "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Η κρυπτογράφηση απενεργοποιήθηκε, αλλά τα αρχεία σας είναι ακόμα κρυπτογραφημένα. Παρακαλούμε απενεργοποιήσετε την κρυπτογράφηση αρχείων από τις προσωπικές σας ρυθμίσεις",
"Your download is being prepared. This might take some time if the files are big." => "Η λήψη προετοιμάζεται. Αυτό μπορεί να πάρει ώρα εάν τα αρχεία έχουν μεγάλο μέγεθος.", "Your download is being prepared. This might take some time if the files are big." => "Η λήψη προετοιμάζεται. Αυτό μπορεί να πάρει ώρα εάν τα αρχεία έχουν μεγάλο μέγεθος.",
"Error moving file" => "Σφάλμα κατά τη μετακίνηση του αρχείου",
"Name" => "Όνομα", "Name" => "Όνομα",
"Size" => "Μέγεθος", "Size" => "Μέγεθος",
"Modified" => "Τροποποιήθηκε", "Modified" => "Τροποποιήθηκε",

View File

@ -13,10 +13,14 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Hiányzik egy ideiglenes mappa", "Missing a temporary folder" => "Hiányzik egy ideiglenes mappa",
"Failed to write to disk" => "Nem sikerült a lemezre történő írás", "Failed to write to disk" => "Nem sikerült a lemezre történő írás",
"Not enough storage available" => "Nincs elég szabad hely.", "Not enough storage available" => "Nincs elég szabad hely.",
"Upload failed. Could not get file info." => "A feltöltés nem sikerült. Az állományt leíró információk nem érhetők el.",
"Upload failed. Could not find uploaded file" => "A feltöltés nem sikerült. Nem található a feltöltendő állomány.",
"Invalid directory." => "Érvénytelen mappa.", "Invalid directory." => "Érvénytelen mappa.",
"Files" => "Fájlok", "Files" => "Fájlok",
"Unable to upload {filename} as it is a directory or has 0 bytes" => "A(z) {filename} állomány nem tölthető fel, mert ez vagy egy mappa, vagy pedig 0 bájtból áll.",
"Not enough space available" => "Nincs elég szabad hely", "Not enough space available" => "Nincs elég szabad hely",
"Upload cancelled." => "A feltöltést megszakítottuk.", "Upload cancelled." => "A feltöltést megszakítottuk.",
"Could not get result from server." => "A kiszolgálótól nem kapható meg az eredmény.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Fájlfeltöltés van folyamatban. Az oldal elhagyása megszakítja a feltöltést.", "File upload is in progress. Leaving the page now will cancel the upload." => "Fájlfeltöltés van folyamatban. Az oldal elhagyása megszakítja a feltöltést.",
"URL cannot be empty." => "Az URL nem lehet semmi.", "URL cannot be empty." => "Az URL nem lehet semmi.",
"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Érvénytelen mappanév. A 'Shared' az ownCloud számára fenntartott elnevezés", "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Érvénytelen mappanév. A 'Shared' az ownCloud számára fenntartott elnevezés",
@ -31,15 +35,18 @@ $TRANSLATIONS = array(
"cancel" => "mégse", "cancel" => "mégse",
"replaced {new_name} with {old_name}" => "{new_name} fájlt kicseréltük ezzel: {old_name}", "replaced {new_name} with {old_name}" => "{new_name} fájlt kicseréltük ezzel: {old_name}",
"undo" => "visszavonás", "undo" => "visszavonás",
"_%n folder_::_%n folders_" => array("",""), "_%n folder_::_%n folders_" => array("%n mappa","%n mappa"),
"_%n file_::_%n files_" => array("",""), "_%n file_::_%n files_" => array("%n állomány","%n állomány"),
"_Uploading %n file_::_Uploading %n files_" => array("",""), "{dirs} and {files}" => "{dirs} és {files}",
"_Uploading %n file_::_Uploading %n files_" => array("%n állomány feltöltése","%n állomány feltöltése"),
"'.' is an invalid file name." => "'.' fájlnév érvénytelen.", "'.' is an invalid file name." => "'.' fájlnév érvénytelen.",
"File name cannot be empty." => "A fájlnév nem lehet semmi.", "File name cannot be empty." => "A fájlnév nem lehet semmi.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Érvénytelen elnevezés. Ezek a karakterek nem használhatók: '\\', '/', '<', '>', ':', '\"', '|', '?' és '*'", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Érvénytelen elnevezés. Ezek a karakterek nem használhatók: '\\', '/', '<', '>', ':', '\"', '|', '?' és '*'",
"Your storage is full, files can not be updated or synced anymore!" => "A tároló tele van, a fájlok nem frissíthetőek vagy szinkronizálhatóak a jövőben.", "Your storage is full, files can not be updated or synced anymore!" => "A tároló tele van, a fájlok nem frissíthetőek vagy szinkronizálhatóak a jövőben.",
"Your storage is almost full ({usedSpacePercent}%)" => "A tároló majdnem tele van ({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" => "A tároló majdnem tele van ({usedSpacePercent}%)",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "A titkosítási funkciót kikapcsolták, de az Ön állományai még mindig titkosított állapotban vannak. A személyes beállításoknál tudja a titkosítást feloldani.",
"Your download is being prepared. This might take some time if the files are big." => "Készül a letöltendő állomány. Ez eltarthat egy ideig, ha nagyok a fájlok.", "Your download is being prepared. This might take some time if the files are big." => "Készül a letöltendő állomány. Ez eltarthat egy ideig, ha nagyok a fájlok.",
"Error moving file" => "Az állomány áthelyezése nem sikerült.",
"Name" => "Név", "Name" => "Név",
"Size" => "Méret", "Size" => "Méret",
"Modified" => "Módosítva", "Modified" => "Módosítva",

View File

@ -18,6 +18,7 @@ $TRANSLATIONS = array(
"Upload cancelled." => "Завантаження перервано.", "Upload cancelled." => "Завантаження перервано.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження.", "File upload is in progress. Leaving the page now will cancel the upload." => "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження.",
"URL cannot be empty." => "URL не може бути пустим.", "URL cannot be empty." => "URL не може бути пустим.",
"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Неправильне ім'я теки. Використання 'Shared' зарезервовано ownCloud",
"Error" => "Помилка", "Error" => "Помилка",
"Share" => "Поділитися", "Share" => "Поділитися",
"Delete permanently" => "Видалити назавжди", "Delete permanently" => "Видалити назавжди",
@ -29,7 +30,7 @@ $TRANSLATIONS = array(
"cancel" => "відміна", "cancel" => "відміна",
"replaced {new_name} with {old_name}" => "замінено {new_name} на {old_name}", "replaced {new_name} with {old_name}" => "замінено {new_name} на {old_name}",
"undo" => "відмінити", "undo" => "відмінити",
"_%n folder_::_%n folders_" => array("","",""), "_%n folder_::_%n folders_" => array("%n тека","%n тека","%n теки"),
"_%n file_::_%n files_" => array("","",""), "_%n file_::_%n files_" => array("","",""),
"_Uploading %n file_::_Uploading %n files_" => array("","",""), "_Uploading %n file_::_Uploading %n files_" => array("","",""),
"'.' is an invalid file name." => "'.' це невірне ім'я файлу.", "'.' is an invalid file name." => "'.' це невірне ім'я файлу.",
@ -53,7 +54,7 @@ $TRANSLATIONS = array(
"Save" => "Зберегти", "Save" => "Зберегти",
"New" => "Створити", "New" => "Створити",
"Text file" => "Текстовий файл", "Text file" => "Текстовий файл",
"Folder" => "Папка", "Folder" => "Тека",
"From link" => "З посилання", "From link" => "З посилання",
"Deleted files" => "Видалено файлів", "Deleted files" => "Видалено файлів",
"Cancel upload" => "Перервати завантаження", "Cancel upload" => "Перервати завантаження",

View File

@ -1,6 +1,7 @@
<?php <?php
$TRANSLATIONS = array( $TRANSLATIONS = array(
"Saving..." => "Зберігаю...", "Saving..." => "Зберігаю...",
"personal settings" => "особисті налаштування",
"Encryption" => "Шифрування", "Encryption" => "Шифрування",
"Change Password" => "Змінити Пароль" "Change Password" => "Змінити Пароль"
); );

View File

@ -40,11 +40,14 @@ class Keymanager {
public static function getPrivateKey(\OC_FilesystemView $view, $user) { public static function getPrivateKey(\OC_FilesystemView $view, $user) {
$path = '/' . $user . '/' . 'files_encryption' . '/' . $user . '.private.key'; $path = '/' . $user . '/' . 'files_encryption' . '/' . $user . '.private.key';
$key = false;
$proxyStatus = \OC_FileProxy::$enabled; $proxyStatus = \OC_FileProxy::$enabled;
\OC_FileProxy::$enabled = false; \OC_FileProxy::$enabled = false;
$key = $view->file_get_contents($path); if ($view->file_exists($path)) {
$key = $view->file_get_contents($path);
}
\OC_FileProxy::$enabled = $proxyStatus; \OC_FileProxy::$enabled = $proxyStatus;

View File

@ -50,9 +50,8 @@ class Proxy extends \OC_FileProxy {
private static function shouldEncrypt($path) { private static function shouldEncrypt($path) {
if (is_null(self::$enableEncryption)) { if (is_null(self::$enableEncryption)) {
if ( if (
\OCP\Config::getAppValue('files_encryption', 'enable_encryption', 'true') === 'true' \OCP\App::isEnabled('files_encryption') === true
&& Crypt::mode() === 'server' && Crypt::mode() === 'server'
) { ) {
@ -200,7 +199,7 @@ class Proxy extends \OC_FileProxy {
*/ */
public function preUnlink($path) { public function preUnlink($path) {
// let the trashbin handle this // let the trashbin handle this
if (\OCP\App::isEnabled('files_trashbin')) { if (\OCP\App::isEnabled('files_trashbin')) {
return true; return true;
} }
@ -291,7 +290,7 @@ class Proxy extends \OC_FileProxy {
// Close the original encrypted file // Close the original encrypted file
fclose($result); fclose($result);
// Open the file using the crypto stream wrapper // Open the file using the crypto stream wrapper
// protocol and let it do the decryption work instead // protocol and let it do the decryption work instead
$result = fopen('crypt://' . $path, $meta['mode']); $result = fopen('crypt://' . $path, $meta['mode']);

View File

@ -20,6 +20,7 @@
*/ */
namespace OC\Files\Cache; namespace OC\Files\Cache;
use OCP\Share_Backend_Collection;
/** /**
* Metadata cache for shared files * Metadata cache for shared files
@ -226,7 +227,36 @@ class Shared_Cache extends Cache {
* @return array of file data * @return array of file data
*/ */
public function search($pattern) { public function search($pattern) {
// TODO
// normalize pattern
$pattern = $this->normalize($pattern);
$ids = $this->getAll();
$files = array();
// divide into 1k chunks
$chunks = array_chunk($ids, 1000);
foreach ($chunks as $chunk) {
$placeholders = join(',', array_fill(0, count($chunk), '?'));
$sql = 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`,
`encrypted`, `unencrypted_size`, `etag`
FROM `*PREFIX*filecache` WHERE `name` LIKE ? AND `fileid` IN (' . $placeholders . ')';
$result = \OC_DB::executeAudited($sql, array_merge(array($pattern), $chunk));
while ($row = $result->fetchRow()) {
if (substr($row['path'], 0, 6)==='files/') {
$row['path'] = substr($row['path'],6); // remove 'files/' from path as it's relative to '/Shared'
}
$row['mimetype'] = $this->getMimetype($row['mimetype']);
$row['mimepart'] = $this->getMimetype($row['mimepart']);
$files[] = $row;
}
}
return $files;
} }
/** /**
@ -244,13 +274,30 @@ class Shared_Cache extends Cache {
} }
$mimetype = $this->getMimetypeId($mimetype); $mimetype = $this->getMimetypeId($mimetype);
$ids = $this->getAll(); $ids = $this->getAll();
$placeholders = join(',', array_fill(0, count($ids), '?'));
$query = \OC_DB::prepare(' $files = array();
SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted`
FROM `*PREFIX*filecache` WHERE ' . $where . ' AND `fileid` IN (' . $placeholders . ')' // divide into 1k chunks
); $chunks = array_chunk($ids, 1000);
$result = $query->execute(array_merge(array($mimetype), $ids));
return $result->fetchAll(); foreach ($chunks as $chunk) {
$placeholders = join(',', array_fill(0, count($ids), '?'));
$sql = 'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`,
`encrypted`, `unencrypted_size`, `etag`
FROM `*PREFIX*filecache` WHERE ' . $where . ' AND `fileid` IN (' . $placeholders . ')';
$result = \OC_DB::executeAudited($sql, array_merge(array($mimetype), $chunk));
while ($row = $result->fetchRow()) {
if (substr($row['path'], 0, 6)==='files/') {
$row['path'] = substr($row['path'],6); // remove 'files/' from path as it's relative to '/Shared'
}
$row['mimetype'] = $this->getMimetype($row['mimetype']);
$row['mimepart'] = $this->getMimetype($row['mimepart']);
$files[] = $row;
}
}
return $files;
} }
/** /**
@ -272,7 +319,20 @@ class Shared_Cache extends Cache {
* @return int[] * @return int[]
*/ */
public function getAll() { public function getAll() {
return \OCP\Share::getItemsSharedWith('file', \OC_Share_Backend_File::FORMAT_GET_ALL); $ids = \OCP\Share::getItemsSharedWith('file', \OC_Share_Backend_File::FORMAT_GET_ALL);
$folderBackend = \OCP\Share::getBackend('folder');
if ($folderBackend instanceof Share_Backend_Collection) {
foreach ($ids as $file) {
/** @var $folderBackend Share_Backend_Collection */
$children = $folderBackend->getChildren($file);
foreach ($children as $child) {
$ids[] = (int)$child['source'];
}
}
}
return $ids;
} }
/** /**

View File

@ -8,8 +8,8 @@ $TRANSLATIONS = array(
"Delete permanently" => "Végleges törlés", "Delete permanently" => "Végleges törlés",
"Name" => "Név", "Name" => "Név",
"Deleted" => "Törölve", "Deleted" => "Törölve",
"_%n folder_::_%n folders_" => array("",""), "_%n folder_::_%n folders_" => array("","%n mappa"),
"_%n file_::_%n files_" => array("",""), "_%n file_::_%n files_" => array("","%n állomány"),
"restored" => "visszaállítva", "restored" => "visszaállítva",
"Nothing in here. Your trash bin is empty!" => "Itt nincs semmi. Az Ön szemetes mappája üres!", "Nothing in here. Your trash bin is empty!" => "Itt nincs semmi. Az Ön szemetes mappája üres!",
"Restore" => "Visszaállítás", "Restore" => "Visszaállítás",

View File

@ -16,6 +16,7 @@ $TRANSLATIONS = array(
"Connection test failed" => "A kapcsolatellenőrzés eredménye: nem sikerült", "Connection test failed" => "A kapcsolatellenőrzés eredménye: nem sikerült",
"Do you really want to delete the current Server Configuration?" => "Tényleg törölni szeretné a kiszolgáló beállításait?", "Do you really want to delete the current Server Configuration?" => "Tényleg törölni szeretné a kiszolgáló beállításait?",
"Confirm Deletion" => "A törlés megerősítése", "Confirm Deletion" => "A törlés megerősítése",
"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "<b>Figyelem:</b> a user_ldap és user_webdavauth alkalmazások nem kompatibilisek. Együttes használatuk váratlan eredményekhez vezethet. Kérje meg a rendszergazdát, hogy a kettő közül kapcsolja ki az egyiket.",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Figyelmeztetés:</b> Az LDAP PHP modul nincs telepítve, ezért ez az alrendszer nem fog működni. Kérje meg a rendszergazdát, hogy telepítse!", "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Figyelmeztetés:</b> Az LDAP PHP modul nincs telepítve, ezért ez az alrendszer nem fog működni. Kérje meg a rendszergazdát, hogy telepítse!",
"Server configuration" => "A kiszolgálók beállításai", "Server configuration" => "A kiszolgálók beállításai",
"Add Server Configuration" => "Új kiszolgáló beállításának hozzáadása", "Add Server Configuration" => "Új kiszolgáló beállításának hozzáadása",
@ -29,8 +30,11 @@ $TRANSLATIONS = array(
"Password" => "Jelszó", "Password" => "Jelszó",
"For anonymous access, leave DN and Password empty." => "Bejelentkezés nélküli eléréshez ne töltse ki a DN és Jelszó mezőket!", "For anonymous access, leave DN and Password empty." => "Bejelentkezés nélküli eléréshez ne töltse ki a DN és Jelszó mezőket!",
"User Login Filter" => "Szűrő a bejelentkezéshez", "User Login Filter" => "Szűrő a bejelentkezéshez",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Ez a szűrő érvényes a bejelentkezés megkísérlésekor. Ekkor az %%uid változó helyére a bejelentkezési név kerül. Például: \"uid=%%uid\"",
"User List Filter" => "A felhasználók szűrője", "User List Filter" => "A felhasználók szűrője",
"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Ez a szűrő érvényes a felhasználók listázásakor (nincs helyettesíthető változó). Például: \"objectClass=person\"",
"Group Filter" => "A csoportok szűrője", "Group Filter" => "A csoportok szűrője",
"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Ez a szűrő érvényes a csoportok listázásakor (nincs helyettesíthető változó). Például: \"objectClass=posixGroup\"",
"Connection Settings" => "Kapcsolati beállítások", "Connection Settings" => "Kapcsolati beállítások",
"Configuration Active" => "A beállítás aktív", "Configuration Active" => "A beállítás aktív",
"When unchecked, this configuration will be skipped." => "Ha nincs kipipálva, ez a beállítás kihagyódik.", "When unchecked, this configuration will be skipped." => "Ha nincs kipipálva, ez a beállítás kihagyódik.",
@ -39,19 +43,23 @@ $TRANSLATIONS = array(
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Adjon meg egy opcionális másodkiszolgálót. Ez a fő LDAP/AD kiszolgáló szinkron másolata (replikája) kell legyen.", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Adjon meg egy opcionális másodkiszolgálót. Ez a fő LDAP/AD kiszolgáló szinkron másolata (replikája) kell legyen.",
"Backup (Replica) Port" => "A másodkiszolgáló (replika) portszáma", "Backup (Replica) Port" => "A másodkiszolgáló (replika) portszáma",
"Disable Main Server" => "A fő szerver kihagyása", "Disable Main Server" => "A fő szerver kihagyása",
"Only connect to the replica server." => "Csak a másodlagos (másolati) kiszolgálóhoz kapcsolódjunk.",
"Use TLS" => "Használjunk TLS-t", "Use TLS" => "Használjunk TLS-t",
"Do not use it additionally for LDAPS connections, it will fail." => "LDAPS kapcsolatok esetén ne kapcsoljuk be, mert nem fog működni.", "Do not use it additionally for LDAPS connections, it will fail." => "LDAPS kapcsolatok esetén ne kapcsoljuk be, mert nem fog működni.",
"Case insensitve LDAP server (Windows)" => "Az LDAP-kiszolgáló nem tesz különbséget a kis- és nagybetűk között (Windows)", "Case insensitve LDAP server (Windows)" => "Az LDAP-kiszolgáló nem tesz különbséget a kis- és nagybetűk között (Windows)",
"Turn off SSL certificate validation." => "Ne ellenőrizzük az SSL-tanúsítvány érvényességét", "Turn off SSL certificate validation." => "Ne ellenőrizzük az SSL-tanúsítvány érvényességét",
"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Használata nem javasolt (kivéve tesztelési céllal). Ha a kapcsolat csak ezzel a beállítással működik, akkor importálja az LDAP-kiszolgáló SSL tanúsítványát a(z) %s kiszolgálóra!",
"Cache Time-To-Live" => "A gyorsítótár tárolási időtartama", "Cache Time-To-Live" => "A gyorsítótár tárolási időtartama",
"in seconds. A change empties the cache." => "másodpercben. A változtatás törli a cache tartalmát.", "in seconds. A change empties the cache." => "másodpercben. A változtatás törli a cache tartalmát.",
"Directory Settings" => "Címtár beállítások", "Directory Settings" => "Címtár beállítások",
"User Display Name Field" => "A felhasználónév mezője", "User Display Name Field" => "A felhasználónév mezője",
"The LDAP attribute to use to generate the user's display name." => "Ebből az LDAP attribútumból képződik a felhasználó megjelenítendő neve.",
"Base User Tree" => "A felhasználói fa gyökere", "Base User Tree" => "A felhasználói fa gyökere",
"One User Base DN per line" => "Soronként egy felhasználói fa gyökerét adhatjuk meg", "One User Base DN per line" => "Soronként egy felhasználói fa gyökerét adhatjuk meg",
"User Search Attributes" => "A felhasználók lekérdezett attribútumai", "User Search Attributes" => "A felhasználók lekérdezett attribútumai",
"Optional; one attribute per line" => "Nem kötelező megadni, soronként egy attribútum", "Optional; one attribute per line" => "Nem kötelező megadni, soronként egy attribútum",
"Group Display Name Field" => "A csoport nevének mezője", "Group Display Name Field" => "A csoport nevének mezője",
"The LDAP attribute to use to generate the groups's display name." => "Ebből az LDAP attribútumból képződik a csoport megjelenítendő neve.",
"Base Group Tree" => "A csoportfa gyökere", "Base Group Tree" => "A csoportfa gyökere",
"One Group Base DN per line" => "Soronként egy csoportfa gyökerét adhatjuk meg", "One Group Base DN per line" => "Soronként egy csoportfa gyökerét adhatjuk meg",
"Group Search Attributes" => "A csoportok lekérdezett attribútumai", "Group Search Attributes" => "A csoportok lekérdezett attribútumai",

View File

@ -33,7 +33,7 @@ class Controller {
$image->show(); $image->show();
} else { } else {
// Signalizes $.avatar() to display a defaultavatar // Signalizes $.avatar() to display a defaultavatar
\OC_JSON::success(); \OC_JSON::success(array("data"=> array("displayname"=> \OC_User::getDisplayName($user)) ));
} }
} }

View File

@ -16,6 +16,7 @@
-moz-box-sizing: border-box; box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;
background-color: #f8f8f8; background-color: #f8f8f8;
border-right: 1px solid #ccc; border-right: 1px solid #ccc;
padding-bottom: 44px;
} }
#app-navigation > ul { #app-navigation > ul {
height: 100%; height: 100%;
@ -192,7 +193,7 @@
.settings-button { .settings-button {
display: block; display: block;
height: 32px; height: 44px;
width: 100%; width: 100%;
padding: 0; padding: 0;
margin: 0; margin: 0;

View File

@ -69,7 +69,11 @@
var url = OC.Router.generate('core_avatar_get', {user: user, size: size})+'?requesttoken='+oc_requesttoken; var url = OC.Router.generate('core_avatar_get', {user: user, size: size})+'?requesttoken='+oc_requesttoken;
$.get(url, function(result) { $.get(url, function(result) {
if (typeof(result) === 'object') { if (typeof(result) === 'object') {
$div.placeholder(user); if (result.data && result.data.displayname) {
$div.placeholder(user, result.data.displayname);
} else {
$div.placeholder(user);
}
} else { } else {
if (ie8fix === true) { if (ie8fix === true) {
$div.html('<img src="'+url+'#'+Math.floor(Math.random()*1000)+'">'); $div.html('<img src="'+url+'#'+Math.floor(Math.random()*1000)+'">');

View File

@ -36,10 +36,21 @@
* *
* <div id="albumart" style="background-color: hsl(123, 90%, 65%); ... ">T</div> * <div id="albumart" style="background-color: hsl(123, 90%, 65%); ... ">T</div>
* *
* You may also call it like this, to have a different background, than the seed:
*
* $('#albumart').placeholder('The Album Title', 'Album Title');
*
* Resulting in:
*
* <div id="albumart" style="background-color: hsl(123, 90%, 65%); ... ">A</div>
*
*/ */
(function ($) { (function ($) {
$.fn.placeholder = function(seed) { $.fn.placeholder = function(seed, text) {
// set optional argument "text" to value of "seed" if undefined
text = text || seed;
var hash = md5(seed), var hash = md5(seed),
maxRange = parseInt('ffffffffffffffffffffffffffffffff', 16), maxRange = parseInt('ffffffffffffffffffffffffffffffff', 16),
hue = parseInt(hash, 16) / maxRange * 256, hue = parseInt(hash, 16) / maxRange * 256,
@ -56,7 +67,7 @@
this.css('font-size', (height * 0.55) + 'px'); this.css('font-size', (height * 0.55) + 'px');
if(seed !== null && seed.length) { if(seed !== null && seed.length) {
this.html(seed[0].toUpperCase()); this.html(text[0].toUpperCase());
} }
}; };
}(jQuery)); }(jQuery));

View File

@ -174,10 +174,10 @@ OC.Share={
var allowPublicUploadStatus = false; var allowPublicUploadStatus = false;
$.each(data.shares, function(key, value) { $.each(data.shares, function(key, value) {
if (allowPublicUploadStatus) { if (value.share_type === OC.Share.SHARE_TYPE_LINK) {
allowPublicUploadStatus = (value.permissions & OC.PERMISSION_CREATE) ? true : false;
return true; return true;
} }
allowPublicUploadStatus = (value.permissions & OC.PERMISSION_CREATE) ? true : false;
}); });
html += '<input id="shareWith" type="text" placeholder="'+t('core', 'Share with')+'" />'; html += '<input id="shareWith" type="text" placeholder="'+t('core', 'Share with')+'" />';

View File

@ -59,6 +59,7 @@ $TRANSLATIONS = array(
"Ok" => "Ok", "Ok" => "Ok",
"Error loading message template: {error}" => "Chyba při nahrávání šablony zprávy: {error}", "Error loading message template: {error}" => "Chyba při nahrávání šablony zprávy: {error}",
"_{count} file conflict_::_{count} file conflicts_" => array("","",""), "_{count} file conflict_::_{count} file conflicts_" => array("","",""),
"One file conflict" => "Jeden konflikt souboru",
"Cancel" => "Zrušit", "Cancel" => "Zrušit",
"The object type is not specified." => "Není určen typ objektu.", "The object type is not specified." => "Není určen typ objektu.",
"Error" => "Chyba", "Error" => "Chyba",

View File

@ -16,6 +16,8 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Fejl ved tilføjelse af %s til favoritter.", "Error adding %s to favorites." => "Fejl ved tilføjelse af %s til favoritter.",
"No categories selected for deletion." => "Ingen kategorier valgt", "No categories selected for deletion." => "Ingen kategorier valgt",
"Error removing %s from favorites." => "Fejl ved fjernelse af %s fra favoritter.", "Error removing %s from favorites." => "Fejl ved fjernelse af %s fra favoritter.",
"Unknown filetype" => "Ukendt filtype",
"Invalid image" => "Ugyldigt billede",
"Sunday" => "Søndag", "Sunday" => "Søndag",
"Monday" => "Mandag", "Monday" => "Mandag",
"Tuesday" => "Tirsdag", "Tuesday" => "Tirsdag",

View File

@ -19,6 +19,8 @@ $TRANSLATIONS = array(
"No image or file provided" => "Aucune image ou fichier fourni", "No image or file provided" => "Aucune image ou fichier fourni",
"Unknown filetype" => "Type de fichier inconnu", "Unknown filetype" => "Type de fichier inconnu",
"Invalid image" => "Image invalide", "Invalid image" => "Image invalide",
"No temporary profile picture available, try again" => "Aucune image temporaire disponible pour le profil. Essayez à nouveau.",
"No crop data provided" => "Aucune donnée de culture fournie",
"Sunday" => "Dimanche", "Sunday" => "Dimanche",
"Monday" => "Lundi", "Monday" => "Lundi",
"Tuesday" => "Mardi", "Tuesday" => "Mardi",
@ -61,7 +63,10 @@ $TRANSLATIONS = array(
"Which files do you want to keep?" => "Quels fichiers désirez-vous garder ?", "Which files do you want to keep?" => "Quels fichiers désirez-vous garder ?",
"If you select both versions, the copied file will have a number added to its name." => "Si vous sélectionnez les deux versions, un nombre sera ajouté au nom du fichier copié.", "If you select both versions, the copied file will have a number added to its name." => "Si vous sélectionnez les deux versions, un nombre sera ajouté au nom du fichier copié.",
"Cancel" => "Annuler", "Cancel" => "Annuler",
"Continue" => "Poursuivre",
"(all selected)" => "(tous sélectionnés)",
"({count} selected)" => "({count} sélectionnés)", "({count} selected)" => "({count} sélectionnés)",
"Error loading file exists template" => "Erreur de chargement du modèle de fichier existant",
"The object type is not specified." => "Le type d'objet n'est pas spécifié.", "The object type is not specified." => "Le type d'objet n'est pas spécifié.",
"Error" => "Erreur", "Error" => "Erreur",
"The app name is not specified." => "Le nom de l'application n'est pas spécifié.", "The app name is not specified." => "Le nom de l'application n'est pas spécifié.",

View File

@ -53,18 +53,18 @@ $TRANSLATIONS = array(
"last year" => "anno scorso", "last year" => "anno scorso",
"years ago" => "anni fa", "years ago" => "anni fa",
"Choose" => "Scegli", "Choose" => "Scegli",
"Error loading file picker template: {error}" => "Errore nel caricamento del modello del selettore file: {error}", "Error loading file picker template: {error}" => "Errore durante il caricamento del modello del selettore file: {error}",
"Yes" => "", "Yes" => "",
"No" => "No", "No" => "No",
"Ok" => "Ok", "Ok" => "Ok",
"Error loading message template: {error}" => "Errore nel caricamento del modello di messaggio: {error}", "Error loading message template: {error}" => "Errore durante il caricamento del modello di messaggio: {error}",
"_{count} file conflict_::_{count} file conflicts_" => array("{count} file in conflitto","{count} file in conflitto"), "_{count} file conflict_::_{count} file conflicts_" => array("{count} file in conflitto","{count} file in conflitto"),
"One file conflict" => "Un conflitto tra file", "One file conflict" => "Un file in conflitto",
"Which files do you want to keep?" => "Quali file vuoi mantenere?", "Which files do you want to keep?" => "Quali file vuoi mantenere?",
"If you select both versions, the copied file will have a number added to its name." => "Se selezioni entrambe le versioni, verrà aggiunto un numero al nome del file copiato.", "If you select both versions, the copied file will have a number added to its name." => "Se selezioni entrambe le versioni, sarà aggiunto un numero al nome del file copiato.",
"Cancel" => "Annulla", "Cancel" => "Annulla",
"Continue" => "Continua", "Continue" => "Continua",
"(all selected)" => "(tutti selezionati)", "(all selected)" => "(tutti i selezionati)",
"({count} selected)" => "({count} selezionati)", "({count} selected)" => "({count} selezionati)",
"Error loading file exists template" => "Errore durante il caricamento del modello del file esistente", "Error loading file exists template" => "Errore durante il caricamento del modello del file esistente",
"The object type is not specified." => "Il tipo di oggetto non è specificato.", "The object type is not specified." => "Il tipo di oggetto non è specificato.",

View File

@ -16,6 +16,11 @@ $TRANSLATIONS = array(
"Error adding %s to favorites." => "Fel vid tillägg av %s till favoriter.", "Error adding %s to favorites." => "Fel vid tillägg av %s till favoriter.",
"No categories selected for deletion." => "Inga kategorier valda för radering.", "No categories selected for deletion." => "Inga kategorier valda för radering.",
"Error removing %s from favorites." => "Fel vid borttagning av %s från favoriter.", "Error removing %s from favorites." => "Fel vid borttagning av %s från favoriter.",
"No image or file provided" => "Ingen bild eller fil har tillhandahållits",
"Unknown filetype" => "Okänd filtyp",
"Invalid image" => "Ogiltig bild",
"No temporary profile picture available, try again" => "Ingen temporär profilbild finns tillgänglig, försök igen",
"No crop data provided" => "Ingen beskärdata har angivits",
"Sunday" => "Söndag", "Sunday" => "Söndag",
"Monday" => "Måndag", "Monday" => "Måndag",
"Tuesday" => "Tisdag", "Tuesday" => "Tisdag",
@ -48,11 +53,20 @@ $TRANSLATIONS = array(
"last year" => "förra året", "last year" => "förra året",
"years ago" => "år sedan", "years ago" => "år sedan",
"Choose" => "Välj", "Choose" => "Välj",
"Error loading file picker template: {error}" => "Fel uppstod för filväljarmall: {error}",
"Yes" => "Ja", "Yes" => "Ja",
"No" => "Nej", "No" => "Nej",
"Ok" => "Ok", "Ok" => "Ok",
"_{count} file conflict_::_{count} file conflicts_" => array("",""), "Error loading message template: {error}" => "Fel uppstod under inläsningen av meddelandemallen: {error}",
"_{count} file conflict_::_{count} file conflicts_" => array("{count} filkonflikt","{count} filkonflikter"),
"One file conflict" => "En filkonflikt",
"Which files do you want to keep?" => "Vilken fil vill du behålla?",
"If you select both versions, the copied file will have a number added to its name." => "Om du väljer båda versionerna kommer de kopierade filerna ha nummer tillagda i filnamnet.",
"Cancel" => "Avbryt", "Cancel" => "Avbryt",
"Continue" => "Fortsätt",
"(all selected)" => "(Alla valda)",
"({count} selected)" => "({count} valda)",
"Error loading file exists template" => "Fel uppstod filmall existerar",
"The object type is not specified." => "Objekttypen är inte specificerad.", "The object type is not specified." => "Objekttypen är inte specificerad.",
"Error" => "Fel", "Error" => "Fel",
"The app name is not specified." => " Namnet på appen är inte specificerad.", "The app name is not specified." => " Namnet på appen är inte specificerad.",

View File

@ -12,9 +12,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-22 12:55-0400\n" "POT-Creation-Date: 2013-09-27 00:01-0400\n"
"PO-Revision-Date: 2013-09-20 15:01+0000\n" "PO-Revision-Date: 2013-09-25 10:50+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" "Last-Translator: pstast <petr@stastny.eu>\n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -284,7 +284,7 @@ msgstr[2] ""
#: js/oc-dialogs.js:361 #: js/oc-dialogs.js:361
msgid "One file conflict" msgid "One file conflict"
msgstr "" msgstr "Jeden konflikt souboru"
#: js/oc-dialogs.js:367 #: js/oc-dialogs.js:367
msgid "Which files do you want to keep?" msgid "Which files do you want to keep?"
@ -325,7 +325,7 @@ msgstr "Není určen typ objektu."
#: js/oc-vcategories.js:110 js/oc-vcategories.js:125 js/oc-vcategories.js:136 #: js/oc-vcategories.js:110 js/oc-vcategories.js:125 js/oc-vcategories.js:136
#: js/oc-vcategories.js:172 js/oc-vcategories.js:189 js/oc-vcategories.js:195 #: js/oc-vcategories.js:172 js/oc-vcategories.js:189 js/oc-vcategories.js:195
#: js/oc-vcategories.js:199 js/share.js:129 js/share.js:142 js/share.js:149 #: js/oc-vcategories.js:199 js/share.js:129 js/share.js:142 js/share.js:149
#: js/share.js:645 js/share.js:657 #: js/share.js:656 js/share.js:668
msgid "Error" msgid "Error"
msgstr "Chyba" msgstr "Chyba"
@ -345,7 +345,7 @@ msgstr "Sdílené"
msgid "Share" msgid "Share"
msgstr "Sdílet" msgstr "Sdílet"
#: js/share.js:131 js/share.js:685 #: js/share.js:131 js/share.js:696
msgid "Error while sharing" msgid "Error while sharing"
msgstr "Chyba při sdílení" msgstr "Chyba při sdílení"
@ -445,23 +445,23 @@ msgstr "smazat"
msgid "share" msgid "share"
msgstr "sdílet" msgstr "sdílet"
#: js/share.js:400 js/share.js:632 #: js/share.js:400 js/share.js:643
msgid "Password protected" msgid "Password protected"
msgstr "Chráněno heslem" msgstr "Chráněno heslem"
#: js/share.js:645 #: js/share.js:656
msgid "Error unsetting expiration date" msgid "Error unsetting expiration date"
msgstr "Chyba při odstraňování data vypršení platnosti" msgstr "Chyba při odstraňování data vypršení platnosti"
#: js/share.js:657 #: js/share.js:668
msgid "Error setting expiration date" msgid "Error setting expiration date"
msgstr "Chyba při nastavení data vypršení platnosti" msgstr "Chyba při nastavení data vypršení platnosti"
#: js/share.js:672 #: js/share.js:683
msgid "Sending ..." msgid "Sending ..."
msgstr "Odesílám ..." msgstr "Odesílám ..."
#: js/share.js:683 #: js/share.js:694
msgid "Email sent" msgid "Email sent"
msgstr "E-mail odeslán" msgstr "E-mail odeslán"

View File

@ -11,8 +11,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-22 12:55-0400\n" "POT-Creation-Date: 2013-09-27 00:01-0400\n"
"PO-Revision-Date: 2013-09-20 15:01+0000\n" "PO-Revision-Date: 2013-09-24 17:20+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -100,11 +100,11 @@ msgstr ""
#: avatar/controller.php:81 #: avatar/controller.php:81
msgid "Unknown filetype" msgid "Unknown filetype"
msgstr "" msgstr "Ukendt filtype"
#: avatar/controller.php:85 #: avatar/controller.php:85
msgid "Invalid image" msgid "Invalid image"
msgstr "" msgstr "Ugyldigt billede"
#: avatar/controller.php:115 avatar/controller.php:142 #: avatar/controller.php:115 avatar/controller.php:142
msgid "No temporary profile picture available, try again" msgid "No temporary profile picture available, try again"
@ -319,7 +319,7 @@ msgstr "Objekttypen er ikke angivet."
#: js/oc-vcategories.js:110 js/oc-vcategories.js:125 js/oc-vcategories.js:136 #: js/oc-vcategories.js:110 js/oc-vcategories.js:125 js/oc-vcategories.js:136
#: js/oc-vcategories.js:172 js/oc-vcategories.js:189 js/oc-vcategories.js:195 #: js/oc-vcategories.js:172 js/oc-vcategories.js:189 js/oc-vcategories.js:195
#: js/oc-vcategories.js:199 js/share.js:129 js/share.js:142 js/share.js:149 #: js/oc-vcategories.js:199 js/share.js:129 js/share.js:142 js/share.js:149
#: js/share.js:645 js/share.js:657 #: js/share.js:656 js/share.js:668
msgid "Error" msgid "Error"
msgstr "Fejl" msgstr "Fejl"
@ -339,7 +339,7 @@ msgstr "Delt"
msgid "Share" msgid "Share"
msgstr "Del" msgstr "Del"
#: js/share.js:131 js/share.js:685 #: js/share.js:131 js/share.js:696
msgid "Error while sharing" msgid "Error while sharing"
msgstr "Fejl under deling" msgstr "Fejl under deling"
@ -439,23 +439,23 @@ msgstr "slet"
msgid "share" msgid "share"
msgstr "del" msgstr "del"
#: js/share.js:400 js/share.js:632 #: js/share.js:400 js/share.js:643
msgid "Password protected" msgid "Password protected"
msgstr "Beskyttet med adgangskode" msgstr "Beskyttet med adgangskode"
#: js/share.js:645 #: js/share.js:656
msgid "Error unsetting expiration date" msgid "Error unsetting expiration date"
msgstr "Fejl ved fjernelse af udløbsdato" msgstr "Fejl ved fjernelse af udløbsdato"
#: js/share.js:657 #: js/share.js:668
msgid "Error setting expiration date" msgid "Error setting expiration date"
msgstr "Fejl under sætning af udløbsdato" msgstr "Fejl under sætning af udløbsdato"
#: js/share.js:672 #: js/share.js:683
msgid "Sending ..." msgid "Sending ..."
msgstr "Sender ..." msgstr "Sender ..."
#: js/share.js:683 #: js/share.js:694
msgid "Email sent" msgid "Email sent"
msgstr "E-mail afsendt" msgstr "E-mail afsendt"

View File

@ -10,9 +10,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-16 11:33-0400\n" "POT-Creation-Date: 2013-09-27 00:01-0400\n"
"PO-Revision-Date: 2013-09-16 15:34+0000\n" "PO-Revision-Date: 2013-09-24 17:20+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" "Last-Translator: Sappe\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -58,15 +58,15 @@ msgstr "Upgradering af \"%s\" fejlede"
#: avatar.php:56 #: avatar.php:56
msgid "Custom profile pictures don't work with encryption yet" msgid "Custom profile pictures don't work with encryption yet"
msgstr "" msgstr "Personligt profilbillede virker endnu ikke sammen med kryptering"
#: avatar.php:64 #: avatar.php:64
msgid "Unknown filetype" msgid "Unknown filetype"
msgstr "" msgstr "Ukendt filtype"
#: avatar.php:69 #: avatar.php:69
msgid "Invalid image" msgid "Invalid image"
msgstr "" msgstr "Ugyldigt billede"
#: defaults.php:35 #: defaults.php:35
msgid "web services under your control" msgid "web services under your control"
@ -167,15 +167,15 @@ msgstr "Adgangsfejl"
msgid "Token expired. Please reload page." msgid "Token expired. Please reload page."
msgstr "Adgang er udløbet. Genindlæs siden." msgstr "Adgang er udløbet. Genindlæs siden."
#: search/provider/file.php:17 search/provider/file.php:35 #: search/provider/file.php:18 search/provider/file.php:36
msgid "Files" msgid "Files"
msgstr "Filer" msgstr "Filer"
#: search/provider/file.php:26 search/provider/file.php:33 #: search/provider/file.php:27 search/provider/file.php:34
msgid "Text" msgid "Text"
msgstr "SMS" msgstr "SMS"
#: search/provider/file.php:29 #: search/provider/file.php:30
msgid "Images" msgid "Images"
msgstr "Billeder" msgstr "Billeder"

View File

@ -10,8 +10,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-24 12:58-0400\n" "POT-Creation-Date: 2013-09-27 00:01-0400\n"
"PO-Revision-Date: 2013-09-24 16:59+0000\n" "PO-Revision-Date: 2013-09-24 17:00+0000\n"
"Last-Translator: Sappe\n" "Last-Translator: Sappe\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -114,7 +114,7 @@ msgstr "Serveren understøtter ikke kodeordsskifte, men brugernes krypteringsnø
#: changepassword/controller.php:92 changepassword/controller.php:103 #: changepassword/controller.php:92 changepassword/controller.php:103
msgid "Unable to change password" msgid "Unable to change password"
msgstr "" msgstr "Kunne ikke ændre kodeord"
#: js/apps.js:43 #: js/apps.js:43
msgid "Update to {appversion}" msgid "Update to {appversion}"

View File

@ -5,14 +5,15 @@
# Translators: # Translators:
# Efstathios Iosifidis <iefstathios@gmail.com>, 2013 # Efstathios Iosifidis <iefstathios@gmail.com>, 2013
# Efstathios Iosifidis <iosifidis@opensuse.org>, 2013 # Efstathios Iosifidis <iosifidis@opensuse.org>, 2013
# gtsamis <gtsamis@yahoo.com>, 2013
# frerisp <petrosfreris@gmail.com>, 2013 # frerisp <petrosfreris@gmail.com>, 2013
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-20 10:44-0400\n" "POT-Creation-Date: 2013-09-27 00:01-0400\n"
"PO-Revision-Date: 2013-09-20 14:45+0000\n" "PO-Revision-Date: 2013-09-25 12:10+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" "Last-Translator: gtsamis <gtsamis@yahoo.com>\n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -89,7 +90,7 @@ msgstr ""
msgid "Invalid directory." msgid "Invalid directory."
msgstr "Μη έγκυρος φάκελος." msgstr "Μη έγκυρος φάκελος."
#: appinfo/app.php:12 #: appinfo/app.php:11
msgid "Files" msgid "Files"
msgstr "Αρχεία" msgstr "Αρχεία"
@ -224,7 +225,7 @@ msgstr "Η λήψη προετοιμάζεται. Αυτό μπορεί να π
#: js/files.js:507 js/files.js:545 #: js/files.js:507 js/files.js:545
msgid "Error moving file" msgid "Error moving file"
msgstr "" msgstr "Σφάλμα κατά τη μετακίνηση του αρχείου"
#: js/files.js:558 templates/index.php:61 #: js/files.js:558 templates/index.php:61
msgid "Name" msgid "Name"

View File

@ -13,9 +13,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-24 12:58-0400\n" "POT-Creation-Date: 2013-09-27 00:01-0400\n"
"PO-Revision-Date: 2013-09-23 19:40+0000\n" "PO-Revision-Date: 2013-09-26 15:10+0000\n"
"Last-Translator: ogre_sympathique <ogre.sympathique@speed.1s.fr>\n" "Last-Translator: Christophe Lherieau <skimpax@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -110,11 +110,11 @@ msgstr "Image invalide"
#: avatar/controller.php:115 avatar/controller.php:142 #: avatar/controller.php:115 avatar/controller.php:142
msgid "No temporary profile picture available, try again" msgid "No temporary profile picture available, try again"
msgstr "" msgstr "Aucune image temporaire disponible pour le profil. Essayez à nouveau."
#: avatar/controller.php:135 #: avatar/controller.php:135
msgid "No crop data provided" msgid "No crop data provided"
msgstr "" msgstr "Aucune donnée de culture fournie"
#: js/config.php:32 #: js/config.php:32
msgid "Sunday" msgid "Sunday"
@ -298,11 +298,11 @@ msgstr "Annuler"
#: js/oc-dialogs.js:386 #: js/oc-dialogs.js:386
msgid "Continue" msgid "Continue"
msgstr "" msgstr "Poursuivre"
#: js/oc-dialogs.js:433 js/oc-dialogs.js:446 #: js/oc-dialogs.js:433 js/oc-dialogs.js:446
msgid "(all selected)" msgid "(all selected)"
msgstr "" msgstr "(tous sélectionnés)"
#: js/oc-dialogs.js:436 js/oc-dialogs.js:449 #: js/oc-dialogs.js:436 js/oc-dialogs.js:449
msgid "({count} selected)" msgid "({count} selected)"
@ -310,7 +310,7 @@ msgstr "({count} sélectionnés)"
#: js/oc-dialogs.js:457 #: js/oc-dialogs.js:457
msgid "Error loading file exists template" msgid "Error loading file exists template"
msgstr "" msgstr "Erreur de chargement du modèle de fichier existant"
#: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 #: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102
#: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 #: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162

View File

@ -13,9 +13,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-20 10:45-0400\n" "POT-Creation-Date: 2013-09-27 00:01-0400\n"
"PO-Revision-Date: 2013-09-20 14:45+0000\n" "PO-Revision-Date: 2013-09-26 15:00+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" "Last-Translator: Christophe Lherieau <skimpax@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -102,18 +102,18 @@ msgstr "Aucun utilisateur fourni"
msgid "" msgid ""
"Please provide an admin recovery password, otherwise all user data will be " "Please provide an admin recovery password, otherwise all user data will be "
"lost" "lost"
msgstr "" msgstr "Veuillez fournir un mot de passe administrateur de récupération de données, sinon toutes les données de l'utilisateur seront perdues"
#: changepassword/controller.php:79 #: changepassword/controller.php:79
msgid "" msgid ""
"Wrong admin recovery password. Please check the password and try again." "Wrong admin recovery password. Please check the password and try again."
msgstr "" msgstr "Mot de passe administrateur de récupération de données invalide. Veuillez vérifier le mot de passe et essayer à nouveau."
#: changepassword/controller.php:87 #: changepassword/controller.php:87
msgid "" msgid ""
"Back-end doesn't support password change, but the users encryption key was " "Back-end doesn't support password change, but the users encryption key was "
"successfully updated." "successfully updated."
msgstr "" msgstr "L'infrastructure d'arrière-plan ne supporte pas la modification de mot de passe, mais la clef de chiffrement des utilisateurs a été mise à jour avec succès."
#: changepassword/controller.php:92 changepassword/controller.php:103 #: changepassword/controller.php:92 changepassword/controller.php:103
msgid "Unable to change password" msgid "Unable to change password"
@ -123,11 +123,11 @@ msgstr "Impossible de modifier le mot de passe"
msgid "Update to {appversion}" msgid "Update to {appversion}"
msgstr "Mettre à jour vers {appversion}" msgstr "Mettre à jour vers {appversion}"
#: js/apps.js:49 js/apps.js:82 js/apps.js:108 #: js/apps.js:49 js/apps.js:82 js/apps.js:110
msgid "Disable" msgid "Disable"
msgstr "Désactiver" msgstr "Désactiver"
#: js/apps.js:49 js/apps.js:89 js/apps.js:102 js/apps.js:117 #: js/apps.js:49 js/apps.js:90 js/apps.js:103 js/apps.js:119
msgid "Enable" msgid "Enable"
msgstr "Activer" msgstr "Activer"
@ -135,31 +135,31 @@ msgstr "Activer"
msgid "Please wait...." msgid "Please wait...."
msgstr "Veuillez patienter…" msgstr "Veuillez patienter…"
#: js/apps.js:79 js/apps.js:80 js/apps.js:100 #: js/apps.js:79 js/apps.js:80 js/apps.js:101
msgid "Error while disabling app" msgid "Error while disabling app"
msgstr "Erreur lors de la désactivation de l'application" msgstr "Erreur lors de la désactivation de l'application"
#: js/apps.js:99 js/apps.js:112 js/apps.js:113 #: js/apps.js:100 js/apps.js:114 js/apps.js:115
msgid "Error while enabling app" msgid "Error while enabling app"
msgstr "Erreur lors de l'activation de l'application" msgstr "Erreur lors de l'activation de l'application"
#: js/apps.js:123 #: js/apps.js:125
msgid "Updating...." msgid "Updating...."
msgstr "Mise à jour..." msgstr "Mise à jour..."
#: js/apps.js:126 #: js/apps.js:128
msgid "Error while updating app" msgid "Error while updating app"
msgstr "Erreur lors de la mise à jour de l'application" msgstr "Erreur lors de la mise à jour de l'application"
#: js/apps.js:126 #: js/apps.js:128
msgid "Error" msgid "Error"
msgstr "Erreur" msgstr "Erreur"
#: js/apps.js:127 templates/apps.php:43 #: js/apps.js:129 templates/apps.php:43
msgid "Update" msgid "Update"
msgstr "Mettre à jour" msgstr "Mettre à jour"
#: js/apps.js:130 #: js/apps.js:132
msgid "Updated" msgid "Updated"
msgstr "Mise à jour effectuée avec succès" msgstr "Mise à jour effectuée avec succès"

View File

@ -8,9 +8,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-20 10:44-0400\n" "POT-Creation-Date: 2013-09-27 00:01-0400\n"
"PO-Revision-Date: 2013-09-20 14:45+0000\n" "PO-Revision-Date: 2013-09-24 18:40+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" "Last-Translator: Laszlo Tornoci <torlasz@gmail.com>\n"
"Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -77,23 +77,23 @@ msgstr "Nincs elég szabad hely."
#: ajax/upload.php:120 ajax/upload.php:143 #: ajax/upload.php:120 ajax/upload.php:143
msgid "Upload failed. Could not get file info." msgid "Upload failed. Could not get file info."
msgstr "" msgstr "A feltöltés nem sikerült. Az állományt leíró információk nem érhetők el."
#: ajax/upload.php:136 #: ajax/upload.php:136
msgid "Upload failed. Could not find uploaded file" msgid "Upload failed. Could not find uploaded file"
msgstr "" msgstr "A feltöltés nem sikerült. Nem található a feltöltendő állomány."
#: ajax/upload.php:160 #: ajax/upload.php:160
msgid "Invalid directory." msgid "Invalid directory."
msgstr "Érvénytelen mappa." msgstr "Érvénytelen mappa."
#: appinfo/app.php:12 #: appinfo/app.php:11
msgid "Files" msgid "Files"
msgstr "Fájlok" msgstr "Fájlok"
#: js/file-upload.js:244 #: js/file-upload.js:244
msgid "Unable to upload {filename} as it is a directory or has 0 bytes" msgid "Unable to upload {filename} as it is a directory or has 0 bytes"
msgstr "" msgstr "A(z) {filename} állomány nem tölthető fel, mert ez vagy egy mappa, vagy pedig 0 bájtból áll."
#: js/file-upload.js:255 #: js/file-upload.js:255
msgid "Not enough space available" msgid "Not enough space available"
@ -105,7 +105,7 @@ msgstr "A feltöltést megszakítottuk."
#: js/file-upload.js:356 #: js/file-upload.js:356
msgid "Could not get result from server." msgid "Could not get result from server."
msgstr "" msgstr "A kiszolgálótól nem kapható meg az eredmény."
#: js/file-upload.js:446 #: js/file-upload.js:446
msgid "" msgid ""
@ -167,24 +167,24 @@ msgstr "visszavonás"
#: js/filelist.js:533 js/filelist.js:599 js/files.js:576 #: js/filelist.js:533 js/filelist.js:599 js/files.js:576
msgid "%n folder" msgid "%n folder"
msgid_plural "%n folders" msgid_plural "%n folders"
msgstr[0] "" msgstr[0] "%n mappa"
msgstr[1] "" msgstr[1] "%n mappa"
#: js/filelist.js:534 js/filelist.js:600 js/files.js:582 #: js/filelist.js:534 js/filelist.js:600 js/files.js:582
msgid "%n file" msgid "%n file"
msgid_plural "%n files" msgid_plural "%n files"
msgstr[0] "" msgstr[0] "%n állomány"
msgstr[1] "" msgstr[1] "%n állomány"
#: js/filelist.js:541 #: js/filelist.js:541
msgid "{dirs} and {files}" msgid "{dirs} and {files}"
msgstr "" msgstr "{dirs} és {files}"
#: js/filelist.js:731 js/filelist.js:769 #: js/filelist.js:731 js/filelist.js:769
msgid "Uploading %n file" msgid "Uploading %n file"
msgid_plural "Uploading %n files" msgid_plural "Uploading %n files"
msgstr[0] "" msgstr[0] "%n állomány feltöltése"
msgstr[1] "" msgstr[1] "%n állomány feltöltése"
#: js/files.js:25 #: js/files.js:25
msgid "'.' is an invalid file name." msgid "'.' is an invalid file name."
@ -212,7 +212,7 @@ msgstr "A tároló majdnem tele van ({usedSpacePercent}%)"
msgid "" msgid ""
"Encryption was disabled but your files are still encrypted. Please go to " "Encryption was disabled but your files are still encrypted. Please go to "
"your personal settings to decrypt your files." "your personal settings to decrypt your files."
msgstr "" msgstr "A titkosítási funkciót kikapcsolták, de az Ön állományai még mindig titkosított állapotban vannak. A személyes beállításoknál tudja a titkosítást feloldani."
#: js/files.js:296 #: js/files.js:296
msgid "" msgid ""
@ -222,7 +222,7 @@ msgstr "Készül a letöltendő állomány. Ez eltarthat egy ideig, ha nagyok a
#: js/files.js:507 js/files.js:545 #: js/files.js:507 js/files.js:545
msgid "Error moving file" msgid "Error moving file"
msgstr "" msgstr "Az állomány áthelyezése nem sikerült."
#: js/files.js:558 templates/index.php:61 #: js/files.js:558 templates/index.php:61
msgid "Name" msgid "Name"

View File

@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-08-15 04:47-0400\n" "POT-Creation-Date: 2013-09-27 00:01-0400\n"
"PO-Revision-Date: 2013-08-15 08:48+0000\n" "PO-Revision-Date: 2013-09-24 18:40+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" "Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -28,43 +28,43 @@ msgstr "Nem sikerült %s végleges törlése"
msgid "Couldn't restore %s" msgid "Couldn't restore %s"
msgstr "Nem sikerült %s visszaállítása" msgstr "Nem sikerült %s visszaállítása"
#: js/trash.js:7 js/trash.js:100 #: js/trash.js:7 js/trash.js:102
msgid "perform restore operation" msgid "perform restore operation"
msgstr "a visszaállítás végrehajtása" msgstr "a visszaállítás végrehajtása"
#: js/trash.js:20 js/trash.js:48 js/trash.js:118 js/trash.js:146 #: js/trash.js:20 js/trash.js:49 js/trash.js:120 js/trash.js:148
msgid "Error" msgid "Error"
msgstr "Hiba" msgstr "Hiba"
#: js/trash.js:36 #: js/trash.js:37
msgid "delete file permanently" msgid "delete file permanently"
msgstr "az állomány végleges törlése" msgstr "az állomány végleges törlése"
#: js/trash.js:127 #: js/trash.js:129
msgid "Delete permanently" msgid "Delete permanently"
msgstr "Végleges törlés" msgstr "Végleges törlés"
#: js/trash.js:182 templates/index.php:17 #: js/trash.js:190 templates/index.php:21
msgid "Name" msgid "Name"
msgstr "Név" msgstr "Név"
#: js/trash.js:183 templates/index.php:27 #: js/trash.js:191 templates/index.php:31
msgid "Deleted" msgid "Deleted"
msgstr "Törölve" msgstr "Törölve"
#: js/trash.js:191 #: js/trash.js:199
msgid "%n folder" msgid "%n folder"
msgid_plural "%n folders" msgid_plural "%n folders"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] "%n mappa"
#: js/trash.js:197 #: js/trash.js:205
msgid "%n file" msgid "%n file"
msgid_plural "%n files" msgid_plural "%n files"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] "%n állomány"
#: lib/trash.php:819 lib/trash.php:821 #: lib/trashbin.php:814 lib/trashbin.php:816
msgid "restored" msgid "restored"
msgstr "visszaállítva" msgstr "visszaállítva"
@ -72,11 +72,11 @@ msgstr "visszaállítva"
msgid "Nothing in here. Your trash bin is empty!" msgid "Nothing in here. Your trash bin is empty!"
msgstr "Itt nincs semmi. Az Ön szemetes mappája üres!" msgstr "Itt nincs semmi. Az Ön szemetes mappája üres!"
#: templates/index.php:20 templates/index.php:22 #: templates/index.php:24 templates/index.php:26
msgid "Restore" msgid "Restore"
msgstr "Visszaállítás" msgstr "Visszaállítás"
#: templates/index.php:30 templates/index.php:31 #: templates/index.php:34 templates/index.php:35
msgid "Delete" msgid "Delete"
msgstr "Törlés" msgstr "Törlés"

View File

@ -9,9 +9,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-07 04:40-0400\n" "POT-Creation-Date: 2013-09-27 00:01-0400\n"
"PO-Revision-Date: 2013-09-05 11:51+0000\n" "PO-Revision-Date: 2013-09-24 19:00+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" "Last-Translator: Laszlo Tornoci <torlasz@gmail.com>\n"
"Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -92,7 +92,7 @@ msgid ""
"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may" "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may"
" experience unexpected behavior. Please ask your system administrator to " " experience unexpected behavior. Please ask your system administrator to "
"disable one of them." "disable one of them."
msgstr "" msgstr "<b>Figyelem:</b> a user_ldap és user_webdavauth alkalmazások nem kompatibilisek. Együttes használatuk váratlan eredményekhez vezethet. Kérje meg a rendszergazdát, hogy a kettő közül kapcsolja ki az egyiket."
#: templates/settings.php:12 #: templates/settings.php:12
msgid "" msgid ""
@ -157,7 +157,7 @@ msgstr "Szűrő a bejelentkezéshez"
msgid "" msgid ""
"Defines the filter to apply, when login is attempted. %%uid replaces the " "Defines the filter to apply, when login is attempted. %%uid replaces the "
"username in the login action. Example: \"uid=%%uid\"" "username in the login action. Example: \"uid=%%uid\""
msgstr "" msgstr "Ez a szűrő érvényes a bejelentkezés megkísérlésekor. Ekkor az %%uid változó helyére a bejelentkezési név kerül. Például: \"uid=%%uid\""
#: templates/settings.php:55 #: templates/settings.php:55
msgid "User List Filter" msgid "User List Filter"
@ -167,7 +167,7 @@ msgstr "A felhasználók szűrője"
msgid "" msgid ""
"Defines the filter to apply, when retrieving users (no placeholders). " "Defines the filter to apply, when retrieving users (no placeholders). "
"Example: \"objectClass=person\"" "Example: \"objectClass=person\""
msgstr "" msgstr "Ez a szűrő érvényes a felhasználók listázásakor (nincs helyettesíthető változó). Például: \"objectClass=person\""
#: templates/settings.php:59 #: templates/settings.php:59
msgid "Group Filter" msgid "Group Filter"
@ -177,7 +177,7 @@ msgstr "A csoportok szűrője"
msgid "" msgid ""
"Defines the filter to apply, when retrieving groups (no placeholders). " "Defines the filter to apply, when retrieving groups (no placeholders). "
"Example: \"objectClass=posixGroup\"" "Example: \"objectClass=posixGroup\""
msgstr "" msgstr "Ez a szűrő érvényes a csoportok listázásakor (nincs helyettesíthető változó). Például: \"objectClass=posixGroup\""
#: templates/settings.php:66 #: templates/settings.php:66
msgid "Connection Settings" msgid "Connection Settings"
@ -215,7 +215,7 @@ msgstr "A fő szerver kihagyása"
#: templates/settings.php:72 #: templates/settings.php:72
msgid "Only connect to the replica server." msgid "Only connect to the replica server."
msgstr "" msgstr "Csak a másodlagos (másolati) kiszolgálóhoz kapcsolódjunk."
#: templates/settings.php:73 #: templates/settings.php:73
msgid "Use TLS" msgid "Use TLS"
@ -238,7 +238,7 @@ msgstr "Ne ellenőrizzük az SSL-tanúsítvány érvényességét"
msgid "" msgid ""
"Not recommended, use it for testing only! If connection only works with this" "Not recommended, use it for testing only! If connection only works with this"
" option, import the LDAP server's SSL certificate in your %s server." " option, import the LDAP server's SSL certificate in your %s server."
msgstr "" msgstr "Használata nem javasolt (kivéve tesztelési céllal). Ha a kapcsolat csak ezzel a beállítással működik, akkor importálja az LDAP-kiszolgáló SSL tanúsítványát a(z) %s kiszolgálóra!"
#: templates/settings.php:76 #: templates/settings.php:76
msgid "Cache Time-To-Live" msgid "Cache Time-To-Live"
@ -258,7 +258,7 @@ msgstr "A felhasználónév mezője"
#: templates/settings.php:80 #: templates/settings.php:80
msgid "The LDAP attribute to use to generate the user's display name." msgid "The LDAP attribute to use to generate the user's display name."
msgstr "" msgstr "Ebből az LDAP attribútumból képződik a felhasználó megjelenítendő neve."
#: templates/settings.php:81 #: templates/settings.php:81
msgid "Base User Tree" msgid "Base User Tree"
@ -282,7 +282,7 @@ msgstr "A csoport nevének mezője"
#: templates/settings.php:83 #: templates/settings.php:83
msgid "The LDAP attribute to use to generate the groups's display name." msgid "The LDAP attribute to use to generate the groups's display name."
msgstr "" msgstr "Ebből az LDAP attribútumból képződik a csoport megjelenítendő neve."
#: templates/settings.php:84 #: templates/settings.php:84
msgid "Base Group Tree" msgid "Base Group Tree"

View File

@ -11,9 +11,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-22 12:55-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: 2013-09-22 13:40+0000\n" "PO-Revision-Date: 2013-09-27 18:30+0000\n"
"Last-Translator: nappo <leone@inventati.org>\n" "Last-Translator: Vincenzo Reale <vinx.reale@gmail.com>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -252,7 +252,7 @@ msgstr "Scegli"
#: js/oc-dialogs.js:146 #: js/oc-dialogs.js:146
msgid "Error loading file picker template: {error}" msgid "Error loading file picker template: {error}"
msgstr "Errore nel caricamento del modello del selettore file: {error}" msgstr "Errore durante il caricamento del modello del selettore file: {error}"
#: js/oc-dialogs.js:172 #: js/oc-dialogs.js:172
msgid "Yes" msgid "Yes"
@ -268,7 +268,7 @@ msgstr "Ok"
#: js/oc-dialogs.js:219 #: js/oc-dialogs.js:219
msgid "Error loading message template: {error}" msgid "Error loading message template: {error}"
msgstr "Errore nel caricamento del modello di messaggio: {error}" msgstr "Errore durante il caricamento del modello di messaggio: {error}"
#: js/oc-dialogs.js:347 #: js/oc-dialogs.js:347
msgid "{count} file conflict" msgid "{count} file conflict"
@ -278,7 +278,7 @@ msgstr[1] "{count} file in conflitto"
#: js/oc-dialogs.js:361 #: js/oc-dialogs.js:361
msgid "One file conflict" msgid "One file conflict"
msgstr "Un conflitto tra file" msgstr "Un file in conflitto"
#: js/oc-dialogs.js:367 #: js/oc-dialogs.js:367
msgid "Which files do you want to keep?" msgid "Which files do you want to keep?"
@ -288,7 +288,7 @@ msgstr "Quali file vuoi mantenere?"
msgid "" msgid ""
"If you select both versions, the copied file will have a number added to its" "If you select both versions, the copied file will have a number added to its"
" name." " name."
msgstr "Se selezioni entrambe le versioni, verrà aggiunto un numero al nome del file copiato." msgstr "Se selezioni entrambe le versioni, sarà aggiunto un numero al nome del file copiato."
#: js/oc-dialogs.js:376 #: js/oc-dialogs.js:376
msgid "Cancel" msgid "Cancel"
@ -300,7 +300,7 @@ msgstr "Continua"
#: js/oc-dialogs.js:433 js/oc-dialogs.js:446 #: js/oc-dialogs.js:433 js/oc-dialogs.js:446
msgid "(all selected)" msgid "(all selected)"
msgstr "(tutti selezionati)" msgstr "(tutti i selezionati)"
#: js/oc-dialogs.js:436 js/oc-dialogs.js:449 #: js/oc-dialogs.js:436 js/oc-dialogs.js:449
msgid "({count} selected)" msgid "({count} selected)"
@ -319,7 +319,7 @@ msgstr "Il tipo di oggetto non è specificato."
#: js/oc-vcategories.js:110 js/oc-vcategories.js:125 js/oc-vcategories.js:136 #: js/oc-vcategories.js:110 js/oc-vcategories.js:125 js/oc-vcategories.js:136
#: js/oc-vcategories.js:172 js/oc-vcategories.js:189 js/oc-vcategories.js:195 #: js/oc-vcategories.js:172 js/oc-vcategories.js:189 js/oc-vcategories.js:195
#: js/oc-vcategories.js:199 js/share.js:129 js/share.js:142 js/share.js:149 #: js/oc-vcategories.js:199 js/share.js:129 js/share.js:142 js/share.js:149
#: js/share.js:645 js/share.js:657 #: js/share.js:656 js/share.js:668
msgid "Error" msgid "Error"
msgstr "Errore" msgstr "Errore"
@ -339,7 +339,7 @@ msgstr "Condivisi"
msgid "Share" msgid "Share"
msgstr "Condividi" msgstr "Condividi"
#: js/share.js:131 js/share.js:685 #: js/share.js:131 js/share.js:696
msgid "Error while sharing" msgid "Error while sharing"
msgstr "Errore durante la condivisione" msgstr "Errore durante la condivisione"
@ -439,23 +439,23 @@ msgstr "elimina"
msgid "share" msgid "share"
msgstr "condividi" msgstr "condividi"
#: js/share.js:400 js/share.js:632 #: js/share.js:400 js/share.js:643
msgid "Password protected" msgid "Password protected"
msgstr "Protetta da password" msgstr "Protetta da password"
#: js/share.js:645 #: js/share.js:656
msgid "Error unsetting expiration date" msgid "Error unsetting expiration date"
msgstr "Errore durante la rimozione della data di scadenza" msgstr "Errore durante la rimozione della data di scadenza"
#: js/share.js:657 #: js/share.js:668
msgid "Error setting expiration date" msgid "Error setting expiration date"
msgstr "Errore durante l'impostazione della data di scadenza" msgstr "Errore durante l'impostazione della data di scadenza"
#: js/share.js:672 #: js/share.js:683
msgid "Sending ..." msgid "Sending ..."
msgstr "Invio in corso..." msgstr "Invio in corso..."
#: js/share.js:683 #: js/share.js:694
msgid "Email sent" msgid "Email sent"
msgstr "Messaggio inviato" msgstr "Messaggio inviato"

View File

@ -3,6 +3,7 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# #
# Translators: # Translators:
# Daniel Sandman <revoltism@gmail.com>, 2013
# Gunnar Norin <blittan@xbmc.org>, 2013 # Gunnar Norin <blittan@xbmc.org>, 2013
# medialabs, 2013 # medialabs, 2013
# Magnus Höglund <magnus@linux.com>, 2013 # Magnus Höglund <magnus@linux.com>, 2013
@ -11,9 +12,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-22 12:55-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: 2013-09-20 15:01+0000\n" "PO-Revision-Date: 2013-09-28 02:02+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" "Last-Translator: Daniel Sandman <revoltism@gmail.com>\n"
"Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -96,23 +97,23 @@ msgstr "Fel vid borttagning av %s från favoriter."
#: avatar/controller.php:62 #: avatar/controller.php:62
msgid "No image or file provided" msgid "No image or file provided"
msgstr "" msgstr "Ingen bild eller fil har tillhandahållits"
#: avatar/controller.php:81 #: avatar/controller.php:81
msgid "Unknown filetype" msgid "Unknown filetype"
msgstr "" msgstr "Okänd filtyp"
#: avatar/controller.php:85 #: avatar/controller.php:85
msgid "Invalid image" msgid "Invalid image"
msgstr "" msgstr "Ogiltig bild"
#: avatar/controller.php:115 avatar/controller.php:142 #: avatar/controller.php:115 avatar/controller.php:142
msgid "No temporary profile picture available, try again" msgid "No temporary profile picture available, try again"
msgstr "" msgstr "Ingen temporär profilbild finns tillgänglig, försök igen"
#: avatar/controller.php:135 #: avatar/controller.php:135
msgid "No crop data provided" msgid "No crop data provided"
msgstr "" msgstr "Ingen beskärdata har angivits"
#: js/config.php:32 #: js/config.php:32
msgid "Sunday" msgid "Sunday"
@ -252,7 +253,7 @@ msgstr "Välj"
#: js/oc-dialogs.js:146 #: js/oc-dialogs.js:146
msgid "Error loading file picker template: {error}" msgid "Error loading file picker template: {error}"
msgstr "" msgstr "Fel uppstod för filväljarmall: {error}"
#: js/oc-dialogs.js:172 #: js/oc-dialogs.js:172
msgid "Yes" msgid "Yes"
@ -268,27 +269,27 @@ msgstr "Ok"
#: js/oc-dialogs.js:219 #: js/oc-dialogs.js:219
msgid "Error loading message template: {error}" msgid "Error loading message template: {error}"
msgstr "" msgstr "Fel uppstod under inläsningen av meddelandemallen: {error}"
#: js/oc-dialogs.js:347 #: js/oc-dialogs.js:347
msgid "{count} file conflict" msgid "{count} file conflict"
msgid_plural "{count} file conflicts" msgid_plural "{count} file conflicts"
msgstr[0] "" msgstr[0] "{count} filkonflikt"
msgstr[1] "" msgstr[1] "{count} filkonflikter"
#: js/oc-dialogs.js:361 #: js/oc-dialogs.js:361
msgid "One file conflict" msgid "One file conflict"
msgstr "" msgstr "En filkonflikt"
#: js/oc-dialogs.js:367 #: js/oc-dialogs.js:367
msgid "Which files do you want to keep?" msgid "Which files do you want to keep?"
msgstr "" msgstr "Vilken fil vill du behålla?"
#: js/oc-dialogs.js:368 #: js/oc-dialogs.js:368
msgid "" msgid ""
"If you select both versions, the copied file will have a number added to its" "If you select both versions, the copied file will have a number added to its"
" name." " name."
msgstr "" msgstr "Om du väljer båda versionerna kommer de kopierade filerna ha nummer tillagda i filnamnet."
#: js/oc-dialogs.js:376 #: js/oc-dialogs.js:376
msgid "Cancel" msgid "Cancel"
@ -296,19 +297,19 @@ msgstr "Avbryt"
#: js/oc-dialogs.js:386 #: js/oc-dialogs.js:386
msgid "Continue" msgid "Continue"
msgstr "" msgstr "Fortsätt"
#: js/oc-dialogs.js:433 js/oc-dialogs.js:446 #: js/oc-dialogs.js:433 js/oc-dialogs.js:446
msgid "(all selected)" msgid "(all selected)"
msgstr "" msgstr "(Alla valda)"
#: js/oc-dialogs.js:436 js/oc-dialogs.js:449 #: js/oc-dialogs.js:436 js/oc-dialogs.js:449
msgid "({count} selected)" msgid "({count} selected)"
msgstr "" msgstr "({count} valda)"
#: js/oc-dialogs.js:457 #: js/oc-dialogs.js:457
msgid "Error loading file exists template" msgid "Error loading file exists template"
msgstr "" msgstr "Fel uppstod filmall existerar"
#: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102 #: js/oc-vcategories.js:5 js/oc-vcategories.js:85 js/oc-vcategories.js:102
#: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162 #: js/oc-vcategories.js:117 js/oc-vcategories.js:132 js/oc-vcategories.js:162
@ -319,7 +320,7 @@ msgstr "Objekttypen är inte specificerad."
#: js/oc-vcategories.js:110 js/oc-vcategories.js:125 js/oc-vcategories.js:136 #: js/oc-vcategories.js:110 js/oc-vcategories.js:125 js/oc-vcategories.js:136
#: js/oc-vcategories.js:172 js/oc-vcategories.js:189 js/oc-vcategories.js:195 #: js/oc-vcategories.js:172 js/oc-vcategories.js:189 js/oc-vcategories.js:195
#: js/oc-vcategories.js:199 js/share.js:129 js/share.js:142 js/share.js:149 #: js/oc-vcategories.js:199 js/share.js:129 js/share.js:142 js/share.js:149
#: js/share.js:645 js/share.js:657 #: js/share.js:656 js/share.js:668
msgid "Error" msgid "Error"
msgstr "Fel" msgstr "Fel"
@ -339,7 +340,7 @@ msgstr "Delad"
msgid "Share" msgid "Share"
msgstr "Dela" msgstr "Dela"
#: js/share.js:131 js/share.js:685 #: js/share.js:131 js/share.js:696
msgid "Error while sharing" msgid "Error while sharing"
msgstr "Fel vid delning" msgstr "Fel vid delning"
@ -439,23 +440,23 @@ msgstr "radera"
msgid "share" msgid "share"
msgstr "dela" msgstr "dela"
#: js/share.js:400 js/share.js:632 #: js/share.js:400 js/share.js:643
msgid "Password protected" msgid "Password protected"
msgstr "Lösenordsskyddad" msgstr "Lösenordsskyddad"
#: js/share.js:645 #: js/share.js:656
msgid "Error unsetting expiration date" msgid "Error unsetting expiration date"
msgstr "Fel vid borttagning av utgångsdatum" msgstr "Fel vid borttagning av utgångsdatum"
#: js/share.js:657 #: js/share.js:668
msgid "Error setting expiration date" msgid "Error setting expiration date"
msgstr "Fel vid sättning av utgångsdatum" msgstr "Fel vid sättning av utgångsdatum"
#: js/share.js:672 #: js/share.js:683
msgid "Sending ..." msgid "Sending ..."
msgstr "Skickar ..." msgstr "Skickar ..."
#: js/share.js:683 #: js/share.js:694
msgid "Email sent" msgid "Email sent"
msgstr "E-post skickat" msgstr "E-post skickat"

View File

@ -3,6 +3,7 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# #
# Translators: # Translators:
# Daniel Sandman <revoltism@gmail.com>, 2013
# Gunnar Norin <blittan@xbmc.org>, 2013 # Gunnar Norin <blittan@xbmc.org>, 2013
# Jan Busk, 2013 # Jan Busk, 2013
# Jan Busk, 2013 # Jan Busk, 2013
@ -13,9 +14,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-20 10:45-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: 2013-09-20 14:45+0000\n" "PO-Revision-Date: 2013-09-28 01:44+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" "Last-Translator: Daniel Sandman <revoltism@gmail.com>\n"
"Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -92,42 +93,42 @@ msgstr "Kunde inte uppdatera appen."
#: changepassword/controller.php:20 #: changepassword/controller.php:20
msgid "Wrong password" msgid "Wrong password"
msgstr "" msgstr "Fel lösenord"
#: changepassword/controller.php:42 #: changepassword/controller.php:42
msgid "No user supplied" msgid "No user supplied"
msgstr "" msgstr "Ingen användare angiven"
#: changepassword/controller.php:74 #: changepassword/controller.php:74
msgid "" msgid ""
"Please provide an admin recovery password, otherwise all user data will be " "Please provide an admin recovery password, otherwise all user data will be "
"lost" "lost"
msgstr "" msgstr "Ange ett återställningslösenord för administratören. Annars kommer all användardata förloras"
#: changepassword/controller.php:79 #: changepassword/controller.php:79
msgid "" msgid ""
"Wrong admin recovery password. Please check the password and try again." "Wrong admin recovery password. Please check the password and try again."
msgstr "" msgstr "Felaktigt återställningslösenord för administratör. Kolla lösenordet och prova igen."
#: changepassword/controller.php:87 #: changepassword/controller.php:87
msgid "" msgid ""
"Back-end doesn't support password change, but the users encryption key was " "Back-end doesn't support password change, but the users encryption key was "
"successfully updated." "successfully updated."
msgstr "" msgstr "Gränssnittet stödjer inte byte av lösenord, men användarnas krypteringsnyckel blev uppdaterad."
#: changepassword/controller.php:92 changepassword/controller.php:103 #: changepassword/controller.php:92 changepassword/controller.php:103
msgid "Unable to change password" msgid "Unable to change password"
msgstr "" msgstr "Kunde inte ändra lösenord"
#: js/apps.js:43 #: js/apps.js:43
msgid "Update to {appversion}" msgid "Update to {appversion}"
msgstr "Uppdatera till {appversion}" msgstr "Uppdatera till {appversion}"
#: js/apps.js:49 js/apps.js:82 js/apps.js:108 #: js/apps.js:49 js/apps.js:82 js/apps.js:110
msgid "Disable" msgid "Disable"
msgstr "Deaktivera" msgstr "Deaktivera"
#: js/apps.js:49 js/apps.js:89 js/apps.js:102 js/apps.js:117 #: js/apps.js:49 js/apps.js:90 js/apps.js:103 js/apps.js:119
msgid "Enable" msgid "Enable"
msgstr "Aktivera" msgstr "Aktivera"
@ -135,43 +136,43 @@ msgstr "Aktivera"
msgid "Please wait...." msgid "Please wait...."
msgstr "Var god vänta..." msgstr "Var god vänta..."
#: js/apps.js:79 js/apps.js:80 js/apps.js:100 #: js/apps.js:79 js/apps.js:80 js/apps.js:101
msgid "Error while disabling app" msgid "Error while disabling app"
msgstr "Fel vid inaktivering av app" msgstr "Fel vid inaktivering av app"
#: js/apps.js:99 js/apps.js:112 js/apps.js:113 #: js/apps.js:100 js/apps.js:114 js/apps.js:115
msgid "Error while enabling app" msgid "Error while enabling app"
msgstr "Fel vid aktivering av app" msgstr "Fel vid aktivering av app"
#: js/apps.js:123 #: js/apps.js:125
msgid "Updating...." msgid "Updating...."
msgstr "Uppdaterar..." msgstr "Uppdaterar..."
#: js/apps.js:126 #: js/apps.js:128
msgid "Error while updating app" msgid "Error while updating app"
msgstr "Fel uppstod vid uppdatering av appen" msgstr "Fel uppstod vid uppdatering av appen"
#: js/apps.js:126 #: js/apps.js:128
msgid "Error" msgid "Error"
msgstr "Fel" msgstr "Fel"
#: js/apps.js:127 templates/apps.php:43 #: js/apps.js:129 templates/apps.php:43
msgid "Update" msgid "Update"
msgstr "Uppdatera" msgstr "Uppdatera"
#: js/apps.js:130 #: js/apps.js:132
msgid "Updated" msgid "Updated"
msgstr "Uppdaterad" msgstr "Uppdaterad"
#: js/personal.js:220 #: js/personal.js:221
msgid "Select a profile picture" msgid "Select a profile picture"
msgstr "" msgstr "Välj en profilbild"
#: js/personal.js:265 #: js/personal.js:266
msgid "Decrypting files... Please wait, this can take some time." msgid "Decrypting files... Please wait, this can take some time."
msgstr "Dekrypterar filer... Vänligen vänta, detta kan ta en stund." msgstr "Dekrypterar filer... Vänligen vänta, detta kan ta en stund."
#: js/personal.js:287 #: js/personal.js:288
msgid "Saving..." msgid "Saving..."
msgstr "Sparar..." msgstr "Sparar..."
@ -499,27 +500,27 @@ msgstr "Profilbild"
#: templates/personal.php:90 #: templates/personal.php:90
msgid "Upload new" msgid "Upload new"
msgstr "" msgstr "Ladda upp ny"
#: templates/personal.php:92 #: templates/personal.php:92
msgid "Select new from Files" msgid "Select new from Files"
msgstr "" msgstr "Välj ny från filer"
#: templates/personal.php:93 #: templates/personal.php:93
msgid "Remove image" msgid "Remove image"
msgstr "" msgstr "Radera bild"
#: templates/personal.php:94 #: templates/personal.php:94
msgid "Either png or jpg. Ideally square but you will be able to crop it." msgid "Either png or jpg. Ideally square but you will be able to crop it."
msgstr "" msgstr "Antingen png eller jpg. Helst fyrkantig, men du kommer att kunna beskära den."
#: templates/personal.php:97 #: templates/personal.php:97
msgid "Abort" msgid "Abort"
msgstr "" msgstr "Avbryt"
#: templates/personal.php:98 #: templates/personal.php:98
msgid "Choose as profile image" msgid "Choose as profile image"
msgstr "" msgstr "Välj som profilbild"
#: templates/personal.php:106 templates/personal.php:107 #: templates/personal.php:106 templates/personal.php:107
msgid "Language" msgid "Language"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n" "Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-09-24 12:58-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n" "Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-09-24 12:58-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n" "Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-09-24 12:58-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n" "Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-09-24 12:58-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n" "Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-09-24 12:58-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n" "Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-09-24 12:58-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n" "Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-09-24 12:58-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n" "Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-09-24 12:58-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n" "Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-09-24 12:58-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -156,15 +156,15 @@ msgstr ""
msgid "Updated" msgid "Updated"
msgstr "" msgstr ""
#: js/personal.js:220 #: js/personal.js:221
msgid "Select a profile picture" msgid "Select a profile picture"
msgstr "" msgstr ""
#: js/personal.js:265 #: js/personal.js:266
msgid "Decrypting files... Please wait, this can take some time." msgid "Decrypting files... Please wait, this can take some time."
msgstr "" msgstr ""
#: js/personal.js:287 #: js/personal.js:288
msgid "Saving..." msgid "Saving..."
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n" "Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-09-24 12:58-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 5.0.0\n" "Project-Id-Version: ownCloud Core 5.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-09-24 12:58-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,9 +8,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-20 10:44-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: 2013-09-20 14:45+0000\n" "PO-Revision-Date: 2013-09-27 19:42+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" "Last-Translator: zubr139 <zubr139@ukr.net>\n"
"Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -87,7 +87,7 @@ msgstr ""
msgid "Invalid directory." msgid "Invalid directory."
msgstr "Невірний каталог." msgstr "Невірний каталог."
#: appinfo/app.php:12 #: appinfo/app.php:11
msgid "Files" msgid "Files"
msgstr "Файли" msgstr "Файли"
@ -118,7 +118,7 @@ msgstr "URL не може бути пустим."
#: js/file-upload.js:525 lib/app.php:53 #: js/file-upload.js:525 lib/app.php:53
msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud" msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud"
msgstr "" msgstr "Неправильне ім'я теки. Використання 'Shared' зарезервовано ownCloud"
#: js/file-upload.js:557 js/file-upload.js:573 js/files.js:507 js/files.js:545 #: js/file-upload.js:557 js/file-upload.js:573 js/files.js:507 js/files.js:545
msgid "Error" msgid "Error"
@ -167,9 +167,9 @@ msgstr "відмінити"
#: js/filelist.js:533 js/filelist.js:599 js/files.js:576 #: js/filelist.js:533 js/filelist.js:599 js/files.js:576
msgid "%n folder" msgid "%n folder"
msgid_plural "%n folders" msgid_plural "%n folders"
msgstr[0] "" msgstr[0] "%n тека"
msgstr[1] "" msgstr[1] "%n тека"
msgstr[2] "" msgstr[2] "%n теки"
#: js/filelist.js:534 js/filelist.js:600 js/files.js:582 #: js/filelist.js:534 js/filelist.js:600 js/files.js:582
msgid "%n file" msgid "%n file"
@ -290,7 +290,7 @@ msgstr "Текстовий файл"
#: templates/index.php:11 #: templates/index.php:11
msgid "Folder" msgid "Folder"
msgstr "Папка" msgstr "Тека"
#: templates/index.php:13 #: templates/index.php:13
msgid "From link" msgid "From link"

View File

@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-18 11:46-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: 2013-09-17 13:05+0000\n" "PO-Revision-Date: 2013-09-27 19:12+0000\n"
"Last-Translator: zubr139 <zubr139@ukr.net>\n" "Last-Translator: zubr139 <zubr139@ukr.net>\n"
"Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -93,7 +93,7 @@ msgstr ""
#: templates/invalid_private_key.php:7 #: templates/invalid_private_key.php:7
msgid "personal settings" msgid "personal settings"
msgstr "" msgstr "особисті налаштування"
#: templates/settings-admin.php:5 templates/settings-personal.php:4 #: templates/settings-admin.php:5 templates/settings-personal.php:4
msgid "Encryption" msgid "Encryption"

View File

@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# #
# Translators: # Translators:
# zubr139 <zubr139@ukr.net>, 2013
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-09-20 10:45-0400\n" "POT-Creation-Date: 2013-09-29 00:02-0400\n"
"PO-Revision-Date: 2013-09-20 14:45+0000\n" "PO-Revision-Date: 2013-09-27 19:43+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n" "Last-Translator: zubr139 <zubr139@ukr.net>\n"
"Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -32,7 +33,7 @@ msgstr ""
#: ajax/changedisplayname.php:34 #: ajax/changedisplayname.php:34
msgid "Unable to change display name" msgid "Unable to change display name"
msgstr "Не вдалося змінити зображене ім'я" msgstr "Не вдалося змінити ім'я"
#: ajax/creategroup.php:10 #: ajax/creategroup.php:10
msgid "Group already exists" msgid "Group already exists"
@ -117,11 +118,11 @@ msgstr ""
msgid "Update to {appversion}" msgid "Update to {appversion}"
msgstr "Оновити до {appversion}" msgstr "Оновити до {appversion}"
#: js/apps.js:49 js/apps.js:82 js/apps.js:108 #: js/apps.js:49 js/apps.js:82 js/apps.js:110
msgid "Disable" msgid "Disable"
msgstr "Вимкнути" msgstr "Вимкнути"
#: js/apps.js:49 js/apps.js:89 js/apps.js:102 js/apps.js:117 #: js/apps.js:49 js/apps.js:90 js/apps.js:103 js/apps.js:119
msgid "Enable" msgid "Enable"
msgstr "Включити" msgstr "Включити"
@ -129,43 +130,43 @@ msgstr "Включити"
msgid "Please wait...." msgid "Please wait...."
msgstr "Зачекайте, будь ласка..." msgstr "Зачекайте, будь ласка..."
#: js/apps.js:79 js/apps.js:80 js/apps.js:100 #: js/apps.js:79 js/apps.js:80 js/apps.js:101
msgid "Error while disabling app" msgid "Error while disabling app"
msgstr "" msgstr ""
#: js/apps.js:99 js/apps.js:112 js/apps.js:113 #: js/apps.js:100 js/apps.js:114 js/apps.js:115
msgid "Error while enabling app" msgid "Error while enabling app"
msgstr "" msgstr ""
#: js/apps.js:123 #: js/apps.js:125
msgid "Updating...." msgid "Updating...."
msgstr "Оновлюється..." msgstr "Оновлюється..."
#: js/apps.js:126 #: js/apps.js:128
msgid "Error while updating app" msgid "Error while updating app"
msgstr "Помилка при оновленні програми" msgstr "Помилка при оновленні програми"
#: js/apps.js:126 #: js/apps.js:128
msgid "Error" msgid "Error"
msgstr "Помилка" msgstr "Помилка"
#: js/apps.js:127 templates/apps.php:43 #: js/apps.js:129 templates/apps.php:43
msgid "Update" msgid "Update"
msgstr "Оновити" msgstr "Оновити"
#: js/apps.js:130 #: js/apps.js:132
msgid "Updated" msgid "Updated"
msgstr "Оновлено" msgstr "Оновлено"
#: js/personal.js:220 #: js/personal.js:221
msgid "Select a profile picture" msgid "Select a profile picture"
msgstr "" msgstr ""
#: js/personal.js:265 #: js/personal.js:266
msgid "Decrypting files... Please wait, this can take some time." msgid "Decrypting files... Please wait, this can take some time."
msgstr "" msgstr ""
#: js/personal.js:287 #: js/personal.js:288
msgid "Saving..." msgid "Saving..."
msgstr "Зберігаю..." msgstr "Зберігаю..."
@ -590,7 +591,7 @@ msgstr "Сховище"
#: templates/users.php:108 #: templates/users.php:108
msgid "change display name" msgid "change display name"
msgstr "змінити зображене ім'я" msgstr "змінити ім'я"
#: templates/users.php:112 #: templates/users.php:112
msgid "set new password" msgid "set new password"

View File

@ -75,7 +75,13 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa
\OC\Files\Filesystem::file_put_contents($partpath, $data); \OC\Files\Filesystem::file_put_contents($partpath, $data);
// rename to correct path // rename to correct path
\OC\Files\Filesystem::rename($partpath, $newPath); $renameOkay = \OC\Files\Filesystem::rename($partpath, $newPath);
$fileExists = \OC\Files\Filesystem::file_exists($newPath);
if ($renameOkay === false || $fileExists === false) {
\OC_Log::write('webdav', '\OC\Files\Filesystem::rename() failed', \OC_Log::ERROR);
\OC\Files\Filesystem::unlink($partpath);
throw new Sabre_DAV_Exception();
}
// allow sync clients to send the mtime along in a header // allow sync clients to send the mtime along in a header
$mtime = OC_Request::hasModificationTime(); $mtime = OC_Request::hasModificationTime();

View File

@ -74,7 +74,14 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D
} }
// rename to correct path // rename to correct path
\OC\Files\Filesystem::rename($partpath, $this->path); $renameOkay = \OC\Files\Filesystem::rename($partpath, $this->path);
$fileExists = \OC\Files\Filesystem::file_exists($this->path);
if ($renameOkay === false || $fileExists === false) {
\OC_Log::write('webdav', '\OC\Files\Filesystem::rename() failed', \OC_Log::ERROR);
\OC\Files\Filesystem::unlink($partpath);
throw new Sabre_DAV_Exception();
}
//allow sync clients to send the mtime along in a header //allow sync clients to send the mtime along in a header
$mtime = OC_Request::hasModificationTime(); $mtime = OC_Request::hasModificationTime();

View File

@ -78,6 +78,11 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr
*/ */
public function setName($name) { public function setName($name) {
// rename is only allowed if the update privilege is granted
if (!\OC\Files\Filesystem::isUpdatable($this->path)) {
throw new \Sabre_DAV_Exception_Forbidden();
}
list($parentPath, ) = Sabre_DAV_URLUtil::splitPath($this->path); list($parentPath, ) = Sabre_DAV_URLUtil::splitPath($this->path);
list(, $newName) = Sabre_DAV_URLUtil::splitPath($name); list(, $newName) = Sabre_DAV_URLUtil::splitPath($name);
@ -135,6 +140,12 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr
* Even if the modification time is set to a custom value the access time is set to now. * Even if the modification time is set to a custom value the access time is set to now.
*/ */
public function touch($mtime) { public function touch($mtime) {
// touch is only allowed if the update privilege is granted
if (!\OC\Files\Filesystem::isUpdatable($this->path)) {
throw new \Sabre_DAV_Exception_Forbidden();
}
\OC\Files\Filesystem::touch($this->path, $mtime); \OC\Files\Filesystem::touch($this->path, $mtime);
} }

View File

@ -11,6 +11,14 @@ namespace OC\Connector\Sabre;
use OC\Files\Filesystem; use OC\Files\Filesystem;
class ObjectTree extends \Sabre_DAV_ObjectTree { class ObjectTree extends \Sabre_DAV_ObjectTree {
/**
* keep this public to allow mock injection during unit test
*
* @var \OC\Files\View
*/
public $fileView;
/** /**
* Returns the INode object for the requested path * Returns the INode object for the requested path
* *
@ -21,14 +29,16 @@ class ObjectTree extends \Sabre_DAV_ObjectTree {
public function getNodeForPath($path) { public function getNodeForPath($path) {
$path = trim($path, '/'); $path = trim($path, '/');
if (isset($this->cache[$path])) return $this->cache[$path]; if (isset($this->cache[$path])) {
return $this->cache[$path];
}
// Is it the root node? // Is it the root node?
if (!strlen($path)) { if (!strlen($path)) {
return $this->rootNode; return $this->rootNode;
} }
$info = Filesystem::getFileInfo($path); $info = $this->getFileView()->getFileInfo($path);
if (!$info) { if (!$info) {
throw new \Sabre_DAV_Exception_NotFound('File with name ' . $path . ' could not be located'); throw new \Sabre_DAV_Exception_NotFound('File with name ' . $path . ' could not be located');
@ -64,7 +74,25 @@ class ObjectTree extends \Sabre_DAV_ObjectTree {
list($sourceDir,) = \Sabre_DAV_URLUtil::splitPath($sourcePath); list($sourceDir,) = \Sabre_DAV_URLUtil::splitPath($sourcePath);
list($destinationDir,) = \Sabre_DAV_URLUtil::splitPath($destinationPath); list($destinationDir,) = \Sabre_DAV_URLUtil::splitPath($destinationPath);
Filesystem::rename($sourcePath, $destinationPath); // check update privileges
$fs = $this->getFileView();
if (!$fs->isUpdatable($sourcePath)) {
throw new \Sabre_DAV_Exception_Forbidden();
}
if ($sourceDir !== $destinationDir) {
// for a full move we need update privileges on sourcePath and sourceDir as well as destinationDir
if (!$fs->isUpdatable($sourceDir)) {
throw new \Sabre_DAV_Exception_Forbidden();
}
if (!$fs->isUpdatable($destinationDir)) {
throw new \Sabre_DAV_Exception_Forbidden();
}
}
$renameOkay = $fs->rename($sourcePath, $destinationPath);
if (!$renameOkay) {
throw new \Sabre_DAV_Exception_Forbidden('');
}
$this->markDirty($sourceDir); $this->markDirty($sourceDir);
$this->markDirty($destinationDir); $this->markDirty($destinationDir);
@ -101,4 +129,14 @@ class ObjectTree extends \Sabre_DAV_ObjectTree {
list($destinationDir,) = \Sabre_DAV_URLUtil::splitPath($destination); list($destinationDir,) = \Sabre_DAV_URLUtil::splitPath($destination);
$this->markDirty($destinationDir); $this->markDirty($destinationDir);
} }
/**
* @return \OC\Files\View
*/
public function getFileView() {
if (is_null($this->fileView)) {
$this->fileView = \OC\Files\Filesystem::getView();
}
return $this->fileView;
}
} }

View File

@ -8,6 +8,9 @@ $TRANSLATIONS = array(
"Users" => "Brugere", "Users" => "Brugere",
"Admin" => "Admin", "Admin" => "Admin",
"Failed to upgrade \"%s\"." => "Upgradering af \"%s\" fejlede", "Failed to upgrade \"%s\"." => "Upgradering af \"%s\" fejlede",
"Custom profile pictures don't work with encryption yet" => "Personligt profilbillede virker endnu ikke sammen med kryptering",
"Unknown filetype" => "Ukendt filtype",
"Invalid image" => "Ugyldigt billede",
"web services under your control" => "Webtjenester under din kontrol", "web services under your control" => "Webtjenester under din kontrol",
"cannot open \"%s\"" => "Kan ikke åbne \"%s\"", "cannot open \"%s\"" => "Kan ikke åbne \"%s\"",
"ZIP download is turned off." => "ZIP-download er slået fra.", "ZIP download is turned off." => "ZIP-download er slået fra.",

View File

@ -9,11 +9,21 @@ namespace OC\Preview;
class TXT extends Provider { class TXT extends Provider {
private static $blacklist = array(
'text/calendar',
'text/vcard',
);
public function getMimeType() { public function getMimeType() {
return '/text\/.*/'; return '/text\/.*/';
} }
public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) { public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
$mimetype = $fileview->getMimeType($path);
if(in_array($mimetype, self::$blacklist)) {
return false;
}
$content = $fileview->fopen($path, 'r'); $content = $fileview->fopen($path, 'r');
$content = stream_get_contents($content); $content = stream_get_contents($content);

View File

@ -760,10 +760,10 @@ class Share {
/** /**
* @brief Get the backend class for the specified item type * @brief Get the backend class for the specified item type
* @param string Item type * @param string $itemType
* @return Sharing backend object * @return Share_Backend
*/ */
private static function getBackend($itemType) { public static function getBackend($itemType) {
if (isset(self::$backends[$itemType])) { if (isset(self::$backends[$itemType])) {
return self::$backends[$itemType]; return self::$backends[$itemType];
} else if (isset(self::$backendTypes[$itemType]['class'])) { } else if (isset(self::$backendTypes[$itemType]['class'])) {

View File

@ -177,6 +177,7 @@ class OC_User {
* setup the configured backends in config.php * setup the configured backends in config.php
*/ */
public static function setupBackends() { public static function setupBackends() {
OC_App::loadApps(array('prelogin'));
$backends = OC_Config::getValue('user_backends', array()); $backends = OC_Config::getValue('user_backends', array());
foreach ($backends as $i => $config) { foreach ($backends as $i => $config) {
$class = $config['class']; $class = $config['class'];
@ -419,7 +420,7 @@ class OC_User {
$manager = self::getManager(); $manager = self::getManager();
$username = $manager->checkPassword($uid, $password); $username = $manager->checkPassword($uid, $password);
if ($username !== false) { if ($username !== false) {
return $manager->get($username)->getUID(); return $username->getUID();
} }
return false; return false;
} }

View File

@ -730,12 +730,6 @@ class OC_Util {
'baseUri' => OC_Helper::linkToRemote('webdav'), 'baseUri' => OC_Helper::linkToRemote('webdav'),
); );
// save the old timeout so that we can restore it later
$oldTimeout = ini_get("default_socket_timeout");
// use a 5 sec timeout for the check. Should be enough for local requests.
ini_set("default_socket_timeout", 5);
$client = new \Sabre_DAV_Client($settings); $client = new \Sabre_DAV_Client($settings);
// for this self test we don't care if the ssl certificate is self signed and the peer cannot be verified. // for this self test we don't care if the ssl certificate is self signed and the peer cannot be verified.
@ -752,9 +746,6 @@ class OC_Util {
$return = false; $return = false;
} }
// restore the original timeout
ini_set("default_socket_timeout", $oldTimeout);
return $return; return $return;
} }

View File

@ -34,6 +34,7 @@ function changeDisplayName(){
$('#oldDisplayName').text($('#displayName').val()); $('#oldDisplayName').text($('#displayName').val());
// update displayName on the top right expand button // update displayName on the top right expand button
$('#expandDisplayName').text($('#displayName').val()); $('#expandDisplayName').text($('#displayName').val());
updateAvatar();
} }
else{ else{
$('#newdisplayname').val(data.data.displayName); $('#newdisplayname').val(data.data.displayName);

View File

@ -21,6 +21,7 @@ $TRANSLATIONS = array(
"Please provide an admin recovery password, otherwise all user data will be lost" => "Angiv venligst en admininstrator gendannelseskode, ellers vil alt brugerdata gå tabt", "Please provide an admin recovery password, otherwise all user data will be lost" => "Angiv venligst en admininstrator gendannelseskode, ellers vil alt brugerdata gå tabt",
"Wrong admin recovery password. Please check the password and try again." => "Forkert admin gendannelseskode. Se venligst koden efter og prøv igen.", "Wrong admin recovery password. Please check the password and try again." => "Forkert admin gendannelseskode. Se venligst koden efter og prøv igen.",
"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Serveren understøtter ikke kodeordsskifte, men brugernes krypteringsnøgle blev opdateret.", "Back-end doesn't support password change, but the users encryption key was successfully updated." => "Serveren understøtter ikke kodeordsskifte, men brugernes krypteringsnøgle blev opdateret.",
"Unable to change password" => "Kunne ikke ændre kodeord",
"Update to {appversion}" => "Opdatér til {appversion}", "Update to {appversion}" => "Opdatér til {appversion}",
"Disable" => "Deaktiver", "Disable" => "Deaktiver",
"Enable" => "Aktiver", "Enable" => "Aktiver",

View File

@ -18,6 +18,9 @@ $TRANSLATIONS = array(
"Couldn't update app." => "Impossible de mettre à jour l'application", "Couldn't update app." => "Impossible de mettre à jour l'application",
"Wrong password" => "Mot de passe incorrect", "Wrong password" => "Mot de passe incorrect",
"No user supplied" => "Aucun utilisateur fourni", "No user supplied" => "Aucun utilisateur fourni",
"Please provide an admin recovery password, otherwise all user data will be lost" => "Veuillez fournir un mot de passe administrateur de récupération de données, sinon toutes les données de l'utilisateur seront perdues",
"Wrong admin recovery password. Please check the password and try again." => "Mot de passe administrateur de récupération de données invalide. Veuillez vérifier le mot de passe et essayer à nouveau.",
"Back-end doesn't support password change, but the users encryption key was successfully updated." => "L'infrastructure d'arrière-plan ne supporte pas la modification de mot de passe, mais la clef de chiffrement des utilisateurs a été mise à jour avec succès.",
"Unable to change password" => "Impossible de modifier le mot de passe", "Unable to change password" => "Impossible de modifier le mot de passe",
"Update to {appversion}" => "Mettre à jour vers {appversion}", "Update to {appversion}" => "Mettre à jour vers {appversion}",
"Disable" => "Désactiver", "Disable" => "Désactiver",

View File

@ -16,6 +16,12 @@ $TRANSLATIONS = array(
"Unable to add user to group %s" => "Kan inte lägga till användare i gruppen %s", "Unable to add user to group %s" => "Kan inte lägga till användare i gruppen %s",
"Unable to remove user from group %s" => "Kan inte radera användare från gruppen %s", "Unable to remove user from group %s" => "Kan inte radera användare från gruppen %s",
"Couldn't update app." => "Kunde inte uppdatera appen.", "Couldn't update app." => "Kunde inte uppdatera appen.",
"Wrong password" => "Fel lösenord",
"No user supplied" => "Ingen användare angiven",
"Please provide an admin recovery password, otherwise all user data will be lost" => "Ange ett återställningslösenord för administratören. Annars kommer all användardata förloras",
"Wrong admin recovery password. Please check the password and try again." => "Felaktigt återställningslösenord för administratör. Kolla lösenordet och prova igen.",
"Back-end doesn't support password change, but the users encryption key was successfully updated." => "Gränssnittet stödjer inte byte av lösenord, men användarnas krypteringsnyckel blev uppdaterad.",
"Unable to change password" => "Kunde inte ändra lösenord",
"Update to {appversion}" => "Uppdatera till {appversion}", "Update to {appversion}" => "Uppdatera till {appversion}",
"Disable" => "Deaktivera", "Disable" => "Deaktivera",
"Enable" => "Aktivera", "Enable" => "Aktivera",
@ -27,6 +33,7 @@ $TRANSLATIONS = array(
"Error" => "Fel", "Error" => "Fel",
"Update" => "Uppdatera", "Update" => "Uppdatera",
"Updated" => "Uppdaterad", "Updated" => "Uppdaterad",
"Select a profile picture" => "Välj en profilbild",
"Decrypting files... Please wait, this can take some time." => "Dekrypterar filer... Vänligen vänta, detta kan ta en stund.", "Decrypting files... Please wait, this can take some time." => "Dekrypterar filer... Vänligen vänta, detta kan ta en stund.",
"Saving..." => "Sparar...", "Saving..." => "Sparar...",
"deleted" => "raderad", "deleted" => "raderad",
@ -101,6 +108,12 @@ $TRANSLATIONS = array(
"Your email address" => "Din e-postadress", "Your email address" => "Din e-postadress",
"Fill in an email address to enable password recovery" => "Fyll i en e-postadress för att aktivera återställning av lösenord", "Fill in an email address to enable password recovery" => "Fyll i en e-postadress för att aktivera återställning av lösenord",
"Profile picture" => "Profilbild", "Profile picture" => "Profilbild",
"Upload new" => "Ladda upp ny",
"Select new from Files" => "Välj ny från filer",
"Remove image" => "Radera bild",
"Either png or jpg. Ideally square but you will be able to crop it." => "Antingen png eller jpg. Helst fyrkantig, men du kommer att kunna beskära den.",
"Abort" => "Avbryt",
"Choose as profile image" => "Välj som profilbild",
"Language" => "Språk", "Language" => "Språk",
"Help translate" => "Hjälp att översätta", "Help translate" => "Hjälp att översätta",
"WebDAV" => "WebDAV", "WebDAV" => "WebDAV",

View File

@ -2,7 +2,7 @@
$TRANSLATIONS = array( $TRANSLATIONS = array(
"Unable to load list from App Store" => "Не вдалося завантажити список з App Store", "Unable to load list from App Store" => "Не вдалося завантажити список з App Store",
"Authentication error" => "Помилка автентифікації", "Authentication error" => "Помилка автентифікації",
"Unable to change display name" => "Не вдалося змінити зображене ім'я", "Unable to change display name" => "Не вдалося змінити ім'я",
"Group already exists" => "Група вже існує", "Group already exists" => "Група вже існує",
"Unable to add group" => "Не вдалося додати групу", "Unable to add group" => "Не вдалося додати групу",
"Email saved" => "Адресу збережено", "Email saved" => "Адресу збережено",
@ -97,7 +97,7 @@ $TRANSLATIONS = array(
"Other" => "Інше", "Other" => "Інше",
"Username" => "Ім'я користувача", "Username" => "Ім'я користувача",
"Storage" => "Сховище", "Storage" => "Сховище",
"change display name" => "змінити зображене ім'я", "change display name" => "змінити ім'я",
"set new password" => "встановити новий пароль", "set new password" => "встановити новий пароль",
"Default" => "За замовчуванням" "Default" => "За замовчуванням"
); );

View File

@ -1,7 +1,5 @@
<?php <?php
global $RUNTIME_NOAPPS;
$RUNTIME_NOAPPS = true;
define('PHPUNIT_RUN', 1); define('PHPUNIT_RUN', 1);

13
tests/data/testcal.ics Normal file
View File

@ -0,0 +1,13 @@
BEGIN:VCALENDAR
PRODID:-//some random cal software//EN
VERSION:2.0
BEGIN:VEVENT
CREATED:20130102T120000Z
LAST-MODIFIED:20130102T120000Z
DTSTAMP:20130102T120000Z
UID:f106ecdf-c716-43ef-9d94-4e6f19f2fcfb
SUMMARY:a test cal file
DTSTART;VALUE=DATE:20130101
DTEND;VALUE=DATE:20130102
END:VEVENT
END:VCALENDAR

View File

@ -0,0 +1,6 @@
BEGIN:VCARD
VERSION:3.0
PRODID:-//some random contact software//EN
N:def;abc;;;
FN:abc def
END:VCARD

View File

@ -0,0 +1,87 @@
<?php
/**
* Copyright (c) 2013 Thomas Müller <thomas.mueller@tmit.eu>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace Test\OC\Connector\Sabre;
use OC_Connector_Sabre_Directory;
use PHPUnit_Framework_TestCase;
use Sabre_DAV_Exception_Forbidden;
class TestDoubleFileView extends \OC\Files\View{
public function __construct($updatables, $canRename = true) {
$this->updatables = $updatables;
$this->canRename = $canRename;
}
public function isUpdatable($path) {
return $this->updatables[$path];
}
public function rename($path1, $path2) {
return $this->canRename;
}
}
class ObjectTree extends PHPUnit_Framework_TestCase {
/**
* @dataProvider moveFailedProvider
* @expectedException Sabre_DAV_Exception_Forbidden
*/
public function testMoveFailed($source, $dest, $updatables) {
$this->moveTest($source, $dest, $updatables);
}
/**
* @dataProvider moveSuccessProvider
*/
public function testMoveSuccess($source, $dest, $updatables) {
$this->moveTest($source, $dest, $updatables);
$this->assertTrue(true);
}
function moveFailedProvider() {
return array(
array('a/b', 'a/c', array('a' => false, 'a/b' => false, 'a/c' => false)),
array('a/b', 'b/b', array('a' => false, 'a/b' => false, 'b' => false, 'b/b' => false)),
array('a/b', 'b/b', array('a' => false, 'a/b' => true, 'b' => false, 'b/b' => false)),
array('a/b', 'b/b', array('a' => true, 'a/b' => true, 'b' => false, 'b/b' => false)),
);
}
function moveSuccessProvider() {
return array(
array('a/b', 'a/c', array('a' => false, 'a/b' => true, 'a/c' => false)),
array('a/b', 'b/b', array('a' => true, 'a/b' => true, 'b' => true, 'b/b' => false)),
);
}
/**
* @param $source
* @param $dest
* @param $updatables
*/
private function moveTest($source, $dest, $updatables) {
$rootDir = new OC_Connector_Sabre_Directory('');
$objectTree = $this->getMock('\OC\Connector\Sabre\ObjectTree',
array('nodeExists', 'getNodeForPath'),
array($rootDir));
$objectTree->expects($this->once())
->method('getNodeForPath')
->with($this->identicalTo($source))
->will($this->returnValue(false));
/** @var $objectTree \OC\Connector\Sabre\ObjectTree */
$objectTree->fileView = new TestDoubleFileView($updatables);
$objectTree->move($source, $dest);
}
}

View File

@ -92,6 +92,47 @@ class Preview extends \PHPUnit_Framework_TestCase {
$this->assertEquals($image->height(), $maxY); $this->assertEquals($image->height(), $maxY);
} }
public function txtBlacklist() {
$txt = 'random text file';
$ics = file_get_contents(__DIR__ . '/../data/testcal.ics');
$vcf = file_get_contents(__DIR__ . '/../data/testcontact.vcf');
return array(
array('txt', $txt, false),
array('ics', $ics, true),
array('vcf', $vcf, true),
);
}
/**
* @dataProvider txtBlacklist
*/
public function testIsTransparent($extension, $data, $expectedResult) {
$user = $this->initFS();
$rootView = new \OC\Files\View('');
$rootView->mkdir('/'.$user);
$rootView->mkdir('/'.$user.'/files');
$x = 32;
$y = 32;
$sample = '/'.$user.'/files/test.'.$extension;
$rootView->file_put_contents($sample, $data);
$preview = new \OC\Preview($user, 'files/', 'test.'.$extension, $x, $y);
$image = $preview->getPreview();
$resource = $image->resource();
//http://stackoverflow.com/questions/5702953/imagecolorat-and-transparency
$colorIndex = imagecolorat($resource, 1, 1);
$colorInfo = imagecolorsforindex($resource, $colorIndex);
$this->assertEquals(
$expectedResult,
$colorInfo['alpha'] === 127,
'Failed asserting that only previews for text files are transparent.'
);
}
private function initFS() { private function initFS() {
if(\OC\Files\Filesystem::getView()){ if(\OC\Files\Filesystem::getView()){
$user = \OC_User::getUser(); $user = \OC_User::getUser();
@ -105,4 +146,4 @@ class Preview extends \PHPUnit_Framework_TestCase {
return $user; return $user;
} }
} }

43
tests/lib/user.php Normal file
View File

@ -0,0 +1,43 @@
<?php
/**
* Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace Test;
use OC\Hooks\PublicEmitter;
class User extends \PHPUnit_Framework_TestCase {
public function testCheckPassword() {
/**
* @var \OC_User_Backend | \PHPUnit_Framework_MockObject_MockObject $backend
*/
$backend = $this->getMock('\OC_User_Dummy');
$backend->expects($this->once())
->method('checkPassword')
->with($this->equalTo('foo'), $this->equalTo('bar'))
->will($this->returnValue('foo'));
$backend->expects($this->any())
->method('implementsActions')
->will($this->returnCallback(function ($actions) {
if ($actions === \OC_USER_BACKEND_CHECK_PASSWORD) {
return true;
} else {
return false;
}
}));
$manager = \OC_User::getManager();
$manager->registerBackend($backend);
$uid = \OC_User::checkPassword('foo', 'bar');
$this->assertEquals($uid, 'foo');
}
}

View File

@ -11,7 +11,21 @@
<directory suffix=".php">..</directory> <directory suffix=".php">..</directory>
<exclude> <exclude>
<directory suffix=".php">../3rdparty</directory> <directory suffix=".php">../3rdparty</directory>
<directory suffix=".php">../apps/files/l10n</directory>
<directory suffix=".php">../apps/files_external/l10n</directory>
<directory suffix=".php">../apps/files_external/3rdparty</directory>
<directory suffix=".php">../apps/files_versions/l10n</directory>
<directory suffix=".php">../apps/files_encryption/l10n</directory>
<directory suffix=".php">../apps/files_encryption/3rdparty</directory>
<directory suffix=".php">../apps/files_sharing/l10n</directory>
<directory suffix=".php">../apps/files_trashbin/l10n</directory>
<directory suffix=".php">../apps/user_ldap/l10n</directory>
<directory suffix=".php">../apps/user_webdavauth/l10n</directory>
<directory suffix=".php">../lib/MDB2</directory> <directory suffix=".php">../lib/MDB2</directory>
<directory suffix=".php">../lib/l10n</directory>
<directory suffix=".php">../core/l10n</directory>
<directory suffix=".php">../settings/l10n</directory>
<directory suffix=".php">../tests</directory>
</exclude> </exclude>
</whitelist> </whitelist>
</filter> </filter>