Merge branch 'master' into memcache-public

This commit is contained in:
Robin Appelman 2014-01-09 13:54:58 +01:00
commit 5d456c7cc2
96 changed files with 4266 additions and 339 deletions

View File

@ -38,3 +38,6 @@ DirectoryIndex index.php index.html
</IfModule>
AddDefaultCharset utf-8
Options -Indexes
<IfModule pagespeed_module>
ModPagespeed Off
</IfModule>

@ -1 +1 @@
Subproject commit 42efd966284debadf83b761367e529bc45f806d6
Subproject commit 95ab25149c4903650a1113c01ccb1732fb089f14

View File

@ -37,12 +37,7 @@ if(!\OC\Files\Filesystem::file_exists($filename)) {
$ftype=\OC\Files\Filesystem::getMimeType( $filename );
header('Content-Type:'.$ftype);
if ( preg_match( "/MSIE/", $_SERVER["HTTP_USER_AGENT"] ) ) {
header( 'Content-Disposition: attachment; filename="' . rawurlencode( basename($filename) ) . '"' );
} else {
header( 'Content-Disposition: attachment; filename*=UTF-8\'\'' . rawurlencode( basename($filename) )
. '; filename="' . rawurlencode( basename($filename) ) . '"' );
}
OCP\Response::setContentDispositionHeader(basename($filename), 'attachment');
OCP\Response::disableCaching();
header('Content-Length: '.\OC\Files\Filesystem::filesize($filename));

View File

@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"File name must not contain \"/\". Please choose a different name." => "Faili nimi ei tohi sisaldada \"/\". Palun vali mõni teine nimi.",
"The name %s is already used in the folder %s. Please choose a different name." => "Nimi %s on juba kasutusel kataloogis %s. Palun vali mõni teine nimi.",
"Not a valid source" => "Pole korrektne lähteallikas",
"Server is not allowed to open URLs, please check the server configuration" => "Server ei võimalda URL-ide avamist, palun kontrolli serveri seadistust",
"Error while downloading %s to %s" => "Viga %s allalaadimisel %s",
"Error when creating the file" => "Viga faili loomisel",
"Folder name cannot be empty." => "Kataloogi nimi ei saa olla tühi.",
@ -36,6 +37,7 @@ $TRANSLATIONS = array(
"{new_name} already exists" => "{new_name} on juba olemas",
"Could not create file" => "Ei suuda luua faili",
"Could not create folder" => "Ei suuda luua kataloogi",
"Error fetching URL" => "Viga URL-i haaramisel",
"Share" => "Jaga",
"Delete permanently" => "Kustuta jäädavalt",
"Rename" => "Nimeta ümber",

7
apps/files/l10n/ur.php Normal file
View File

@ -0,0 +1,7 @@
<?php
$TRANSLATIONS = array(
"_%n folder_::_%n folders_" => array("",""),
"_%n file_::_%n files_" => array("",""),
"_Uploading %n file_::_Uploading %n files_" => array("","")
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -1,6 +1,41 @@
<?php
$TRANSLATIONS = array(
"Recovery key successfully enabled" => "Kunci pemulihan berhasil diaktifkan",
"Could not enable recovery key. Please check your recovery key password!" => "Tidak dapat mengaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!",
"Recovery key successfully disabled" => "Kunci pemulihan berhasil dinonaktifkan",
"Could not disable recovery key. Please check your recovery key password!" => "Tidak dapat menonaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!",
"Password successfully changed." => "Sandi berhasil diubah",
"Could not change the password. Maybe the old password was not correct." => "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.",
"Private key password successfully updated." => "Sandi kunci privat berhasil diperbarui.",
"Could not update the private key password. Maybe the old password was not correct." => "Tidak dapat memperbarui sandi kunci privat. Kemungkinan sandi lama yang Anda masukkan salah.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Tidak dapat mendekripsi berkas ini, mungkin ini adalah berkas bersama. Silakan meminta pemilik berkas ini untuk membagikan kembali dengan Anda.",
"Unknown error please check your system settings or contact your administrator" => "Kesalahan tak dikenal, silakan periksa pengaturan sistem Anda atau hubungi admin.",
"Missing requirements." => "Persyaratan yang hilang.",
"Following users are not set up for encryption:" => "Pengguna berikut belum diatur untuk enkripsi:",
"Initial encryption started... This can take some time. Please wait." => "Inisial enskripsi dijalankan... Ini dapat memakan waktu. Silakan tunggu.",
"Saving..." => "Menyimpan...",
"Encryption" => "Enkripsi"
"Go directly to your " => "Langsung ke anda",
"personal settings" => "pengaturan pribadi",
"Encryption" => "Enkripsi",
"Enable recovery key (allow to recover users files in case of password loss):" => "Aktifkan kunci pemulihan (memungkinkan pengguna untuk memulihkan berkas dalam kasus kehilangan sandi):",
"Recovery key password" => "Sandi kunci pemulihan",
"Repeat Recovery key password" => "Ulangi sandi kunci Pemulihan",
"Enabled" => "Diaktifkan",
"Disabled" => "Dinonaktifkan",
"Change recovery key password:" => "Ubah sandi kunci pemulihan:",
"Old Recovery key password" => "Sandi kunci Pemulihan Lama",
"New Recovery key password" => "Sandi kunci Pemulihan Baru",
"Repeat New Recovery key password" => "Ulangi sandi kunci Pemulihan baru",
"Change Password" => "Ubah sandi",
"Your private key password no longer match your log-in password:" => "Sandi kunci privat Anda tidak lagi cocok dengan sandi masuk:",
"Set your old private key password to your current log-in password." => "Atur sandi kunci privat lama Anda sebagai sandi masuk Anda saat ini.",
" If you don't remember your old password you can ask your administrator to recover your files." => "Jika Anda tidak ingat sandi lama, Anda dapat meminta administrator Anda untuk memulihkan berkas.",
"Old log-in password" => "Sandi masuk yang lama",
"Current log-in password" => "Sandi masuk saat ini",
"Update Private Key Password" => "Perbarui Sandi Kunci Privat",
"Enable password recovery:" => "Aktifkan sandi pemulihan:",
"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi",
"File recovery settings updated" => "Pengaturan pemulihan berkas diperbarui",
"Could not update file recovery" => "Tidak dapat memperbarui pemulihan berkas"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";

View File

@ -9,6 +9,7 @@
OC::$CLASSPATH['OC\Files\Storage\StreamWrapper'] = 'files_external/lib/streamwrapper.php';
OC::$CLASSPATH['OC\Files\Storage\FTP'] = 'files_external/lib/ftp.php';
OC::$CLASSPATH['OC\Files\Storage\DAV'] = 'files_external/lib/webdav.php';
OC::$CLASSPATH['OC\Files\Storage\OwnCloud'] = 'files_external/lib/owncloud.php';
OC::$CLASSPATH['OC\Files\Storage\Google'] = 'files_external/lib/google.php';
OC::$CLASSPATH['OC\Files\Storage\Swift'] = 'files_external/lib/swift.php';
OC::$CLASSPATH['OC\Files\Storage\SMB'] = 'files_external/lib/smb.php';

View File

@ -114,14 +114,24 @@ class OC_Mount_Config {
}
}
if(OC_Mount_Config::checkcurl()) $backends['\OC\Files\Storage\DAV']=array(
'backend' => 'ownCloud / WebDAV',
'configuration' => array(
'host' => 'URL',
'user' => 'Username',
'password' => '*Password',
'root' => '&Root',
'secure' => '!Secure https://'));
if(OC_Mount_Config::checkcurl()){
$backends['\OC\Files\Storage\DAV']=array(
'backend' => 'WebDAV',
'configuration' => array(
'host' => 'URL',
'user' => 'Username',
'password' => '*Password',
'root' => '&Root',
'secure' => '!Secure https://'));
$backends['\OC\Files\Storage\OwnCloud']=array(
'backend' => 'ownCloud',
'configuration' => array(
'host' => 'URL',
'user' => 'Username',
'password' => '*Password',
'root' => '&Remote subfolder',
'secure' => '!Secure https://'));
}
$backends['\OC\Files\Storage\SFTP']=array(
'backend' => 'SFTP',

View File

@ -0,0 +1,51 @@
<?php
/**
* Copyright (c) 2013 Vincent Petry <pvince81@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace OC\Files\Storage;
/**
* ownCloud backend for external storage based on DAV backend.
*
* The ownCloud URL consists of three parts:
* http://%host/%context/remote.php/webdav/%root
*
*/
class OwnCloud extends \OC\Files\Storage\DAV{
const OC_URL_SUFFIX = 'remote.php/webdav';
public function __construct($params) {
// extract context path from host if specified
// (owncloud install path on host)
$host = $params['host'];
$contextPath = '';
$hostSlashPos = strpos($host, '/');
if ($hostSlashPos !== false){
$contextPath = substr($host, $hostSlashPos);
$host = substr($host, 0, $hostSlashPos);
}
if (substr($contextPath , 1) !== '/'){
$contextPath .= '/';
}
if (isset($params['root'])){
$root = $params['root'];
if (substr($root, 1) !== '/'){
$root = '/' . $root;
}
}
else{
$root = '/';
}
$params['host'] = $host;
$params['root'] = $contextPath . self::OC_URL_SUFFIX . $root;
parent::__construct($params);
}
}

View File

@ -79,7 +79,7 @@ class DAV extends \OC\Files\Storage\Common{
return 'webdav::' . $this->user . '@' . $this->host . '/' . $this->root;
}
private function createBaseUri() {
protected function createBaseUri() {
$baseUri='http';
if ($this->secure) {
$baseUri.='s';

View File

@ -23,6 +23,13 @@ return array(
'password'=>'test',
'root'=>'/owncloud/files/webdav.php',
),
'owncloud'=>array(
'run'=>true,
'host'=>'localhost/owncloud',
'user'=>'test',
'password'=>'test',
'root'=>'',
),
'google'=>array(
'run'=> false,
'configured' => 'true',

View File

@ -0,0 +1,31 @@
<?php
/**
* Copyright (c) 2013 Vincent Petry <pvince81@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace Test\Files\Storage;
class OwnCloud extends Storage {
private $config;
public function setUp() {
$id = uniqid();
$this->config = include('files_external/tests/config.php');
if ( ! is_array($this->config) or ! isset($this->config['owncloud']) or ! $this->config['owncloud']['run']) {
$this->markTestSkipped('ownCloud backend not configured');
}
$this->config['owncloud']['root'] .= '/' . $id; //make sure we have an new empty folder to work in
$this->instance = new \OC\Files\Storage\OwnCloud($this->config['owncloud']);
$this->instance->mkdir('/');
}
public function tearDown() {
if ($this->instance) {
$this->instance->rmdir('/');
}
}
}

View File

@ -1,19 +1,19 @@
<?php
$TRANSLATIONS = array(
"This share is password-protected" => "Αυτός ο κοινόχρηστος φάκελος προστατεύεται με κωδικό",
"The password is wrong. Try again." => "Εσφαλμένο συνθηματικό. Προσπαθήστε ξανά.",
"Password" => "Συνθηματικό",
"The password is wrong. Try again." => "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά.",
"Password" => "Κωδικός πρόσβασης",
"Sorry, this link doesnt seem to work anymore." => "Συγγνώμη, αυτός ο σύνδεσμος μοιάζει να μην ισχύει πια.",
"Reasons might be:" => "Οι λόγοι μπορεί να είναι:",
"the item was removed" => "το αντικείμενο απομακρύνθηκε",
"the link expired" => "ο σύνδεσμος έληξε",
"sharing is disabled" => "ο διαμοιρασμός απενεργοποιήθηκε",
"For more info, please ask the person who sent this link." => "Για περισσότερες πληροφορίες, παρακαλώ ρωτήστε το άτομο που σας έστειλε αυτόν τον σύνδεσμο.",
"%s shared the folder %s with you" => "%s μοιράστηκε τον φάκελο %s μαζί σας",
"%s shared the file %s with you" => "%s μοιράστηκε το αρχείο %s μαζί σας",
"%s shared the folder %s with you" => "Ο %s μοιράστηκε τον φάκελο %s μαζί σας",
"%s shared the file %s with you" => "Ο %s μοιράστηκε το αρχείο %s μαζί σας",
"Download" => "Λήψη",
"Upload" => "Μεταφόρτωση",
"Cancel upload" => "Ακύρωση αποστολής",
"Cancel upload" => "Ακύρωση μεταφόρτωσης",
"No preview available for" => "Δεν υπάρχει διαθέσιμη προεπισκόπηση για",
"Direct link" => "Άμεσος σύνδεσμος"
);

View File

@ -1,11 +1,20 @@
<?php
$TRANSLATIONS = array(
"This share is password-protected" => "Berbagi ini dilindungi sandi",
"The password is wrong. Try again." => "Sandi salah. Coba lagi",
"Password" => "Sandi",
"Sorry, this link doesnt seem to work anymore." => "Maaf, tautan ini tampaknya tidak berfungsi lagi.",
"Reasons might be:" => "Alasan mungkin:",
"the item was removed" => "item telah dihapus",
"the link expired" => "tautan telah kadaluarsa",
"sharing is disabled" => "berbagi dinonaktifkan",
"For more info, please ask the person who sent this link." => "Untuk info lebih lanjut, silakan tanyakan orang yang mengirim tautan ini.",
"%s shared the folder %s with you" => "%s membagikan folder %s dengan Anda",
"%s shared the file %s with you" => "%s membagikan file %s dengan Anda",
"%s shared the file %s with you" => "%s membagikan berkas %s dengan Anda",
"Download" => "Unduh",
"Upload" => "Unggah",
"Cancel upload" => "Batal pengunggahan",
"No preview available for" => "Tidak ada pratinjau tersedia untuk"
"Cancel upload" => "Batal unggah",
"No preview available for" => "Tidak ada pratinjau yang tersedia untuk",
"Direct link" => "Tautan langsung"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";

View File

@ -1,51 +0,0 @@
<?php
/**
* ownCloud - trash bin
*
* @author Bjoern Schiessle
* @copyright 2013 Bjoern Schiessle schiessle@owncloud.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
// Check if we are a user
OCP\User::checkLoggedIn();
$filename = $_GET["file"];
$view = new OC_FilesystemView('/'.\OCP\User::getUser().'/files_trashbin/files');
if(!$view->file_exists($filename)) {
header("HTTP/1.0 404 Not Found");
$tmpl = new OCP\Template( '', '404', 'guest' );
$tmpl->assign('file', $filename);
$tmpl->printPage();
exit;
}
$ftype=$view->getMimeType( $filename );
header('Content-Type:'.$ftype);if ( preg_match( "/MSIE/", $_SERVER["HTTP_USER_AGENT"] ) ) {
header( 'Content-Disposition: attachment; filename="' . rawurlencode( basename($filename) ) . '"' );
} else {
header( 'Content-Disposition: attachment; filename*=UTF-8\'\'' . rawurlencode( basename($filename) )
. '; filename="' . rawurlencode( basename($filename) ) . '"' );
}
OCP\Response::disableCaching();
header('Content-Length: '. $view->filesize($filename));
OC_Util::obEnd();
$view->readfile( $filename );

View File

@ -3,11 +3,11 @@ $TRANSLATIONS = array(
"Couldn't delete %s permanently" => "Αδύνατη η μόνιμη διαγραφή του %s",
"Couldn't restore %s" => "Αδυναμία επαναφοράς %s",
"Error" => "Σφάλμα",
"restored" => "έγινε επαναφορά",
"restored" => "επαναφέρθηκαν",
"Nothing in here. Your trash bin is empty!" => "Δεν υπάρχει τίποτα εδώ. Ο κάδος σας είναι άδειος!",
"Name" => "Όνομα",
"Restore" => "Επαναφορά",
"Deleted" => "Διαγράφηκε",
"Deleted" => "Διαγραμμένα",
"Delete" => "Διαγραφή",
"Deleted Files" => "Διαγραμμένα Αρχεία"
);

View File

@ -36,12 +36,7 @@ $view = new OC\Files\View('/');
$ftype = $view->getMimeType('/'.$uid.'/files/'.$filename);
header('Content-Type:'.$ftype);
if ( preg_match( "/MSIE/", $_SERVER["HTTP_USER_AGENT"] ) ) {
header( 'Content-Disposition: attachment; filename="' . rawurlencode( basename($filename) ) . '"' );
} else {
header( 'Content-Disposition: attachment; filename*=UTF-8\'\'' . rawurlencode( basename($filename) )
. '; filename="' . rawurlencode( basename($filename) ) . '"' );
}
OCP\Response::setContentDispositionHeader(basename($filename), 'attachment');
OCP\Response::disableCaching();
header('Content-Length: '.$view->filesize($versionName));

View File

@ -1,6 +1,6 @@
<?php
$TRANSLATIONS = array(
"Could not revert: %s" => "Αδυναμία επαναφοράς του: %s",
"Could not revert: %s" => "Αδυναμία επαναφοράς: %s",
"Versions" => "Εκδόσεις",
"Failed to revert {file} to revision {timestamp}." => "Αποτυχία επαναφοράς του {file} στην αναθεώρηση {timestamp}.",
"More versions..." => "Περισσότερες εκδόσεις...",

View File

@ -0,0 +1,6 @@
<?php
$TRANSLATIONS = array(
"_%s group found_::_%s groups found_" => array("",""),
"_%s user found_::_%s users found_" => array("","")
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -634,6 +634,10 @@ class Access extends LDAPUtility {
return $this->search($filter, $this->connection->ldapBaseUsers, $attr, $limit, $offset);
}
public function countUsers($filter, $attr = array('dn'), $limit = null, $offset = null) {
return $this->count($filter, $this->connection->ldapBaseGroups, $attr, $limit, $offset);
}
/**
* @brief executes an LDAP search, optimized for Groups
* @param $filter the LDAP filter for the search
@ -647,61 +651,68 @@ class Access extends LDAPUtility {
}
/**
* @brief executes an LDAP search
* @brief prepares and executes an LDAP search operation
* @param $filter the LDAP filter for the search
* @param $base an array containing the LDAP subtree(s) that shall be searched
* @param $attr optional, array, one or more attributes that shall be
* retrieved. Results will according to the order in the array.
* @returns array with the search result
*
* Executes an LDAP search
* @param $limit optional, maximum results to be counted
* @param $offset optional, a starting point
* @returns array with the search result as first value and pagedSearchOK as
* second | false if not successful
*/
private function search($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) {
private function executeSearch($filter, $base, &$attr = null, $limit = null, $offset = null) {
if(!is_null($attr) && !is_array($attr)) {
$attr = array(mb_strtolower($attr, 'UTF-8'));
}
// See if we have a resource, in case not cancel with message
$link_resource = $this->connection->getConnectionResource();
if(!$this->ldap->isResource($link_resource)) {
$cr = $this->connection->getConnectionResource();
if(!$this->ldap->isResource($cr)) {
// Seems like we didn't find any resource.
// Return an empty array just like before.
\OCP\Util::writeLog('user_ldap', 'Could not search, because resource is missing.', \OCP\Util::DEBUG);
return array();
return false;
}
//check wether paged search should be attempted
$pagedSearchOK = $this->initPagedSearch($filter, $base, $attr, $limit, $offset);
$linkResources = array_pad(array(), count($base), $link_resource);
$linkResources = array_pad(array(), count($base), $cr);
$sr = $this->ldap->search($linkResources, $base, $filter, $attr);
$error = $this->ldap->errno($link_resource);
$error = $this->ldap->errno($cr);
if(!is_array($sr) || $error !== 0) {
\OCP\Util::writeLog('user_ldap',
'Error when searching: '.$this->ldap->error($link_resource).
' code '.$this->ldap->errno($link_resource),
'Error when searching: '.$this->ldap->error($cr).
' code '.$this->ldap->errno($cr),
\OCP\Util::ERROR);
\OCP\Util::writeLog('user_ldap', 'Attempt for Paging? '.print_r($pagedSearchOK, true), \OCP\Util::ERROR);
return array();
return false;
}
// Do the server-side sorting
foreach(array_reverse($attr) as $sortAttr){
foreach($sr as $searchResource) {
$this->ldap->sort($link_resource, $searchResource, $sortAttr);
}
}
return array($sr, $pagedSearchOK);
}
$findings = array();
foreach($sr as $key => $res) {
$findings = array_merge($findings, $this->ldap->getEntries($link_resource, $res ));
}
/**
* @brief processes an LDAP paged search operation
* @param $sr the array containing the LDAP search resources
* @param $filter the LDAP filter for the search
* @param $base an array containing the LDAP subtree(s) that shall be searched
* @param $iFoundItems number of results in the search operation
* @param $limit maximum results to be counted
* @param $offset a starting point
* @param $pagedSearchOK whether a paged search has been executed
* @param $skipHandling required for paged search when cookies to
* prior results need to be gained
* @returns array with the search result as first value and pagedSearchOK as
* second | false if not successful
*/
private function processPagedSearchStatus($sr, $filter, $base, $iFoundItems, $limit, $offset, $pagedSearchOK, $skipHandling) {
if($pagedSearchOK) {
\OCP\Util::writeLog('user_ldap', 'Paged search successful', \OCP\Util::INFO);
$cr = $this->connection->getConnectionResource();
foreach($sr as $key => $res) {
$cookie = null;
if($this->ldap->controlPagedResultResponse($link_resource, $res, $cookie)) {
\OCP\Util::writeLog('user_ldap', 'Set paged search cookie', \OCP\Util::INFO);
if($this->ldap->controlPagedResultResponse($cr, $res, $cookie)) {
$this->setPagedResultCookie($base[$key], $filter, $limit, $offset, $cookie);
}
}
@ -713,7 +724,7 @@ class Access extends LDAPUtility {
// if count is bigger, then the server does not support
// paged search. Instead, he did a normal search. We set a
// flag here, so the callee knows how to deal with it.
if($findings['count'] <= $limit) {
if($iFoundItems <= $limit) {
$this->pagedSearchedSuccessful = true;
}
} else {
@ -721,6 +732,86 @@ class Access extends LDAPUtility {
\OCP\Util::writeLog('user_ldap', 'Paged search failed :(', \OCP\Util::INFO);
}
}
}
/**
* @brief executes an LDAP search, but counts the results only
* @param $filter the LDAP filter for the search
* @param $base an array containing the LDAP subtree(s) that shall be searched
* @param $attr optional, array, one or more attributes that shall be
* retrieved. Results will according to the order in the array.
* @param $limit optional, maximum results to be counted
* @param $offset optional, a starting point
* @param $skipHandling indicates whether the pages search operation is
* completed
* @returns int | false if the search could not be initialized
*
*/
private function count($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) {
\OCP\Util::writeLog('user_ldap', 'Count filter: '.print_r($filter, true), \OCP\Util::DEBUG);
$search = $this->executeSearch($filter, $base, $attr, $limit, $offset);
if($search === false) {
return false;
}
list($sr, $pagedSearchOK) = $search;
$cr = $this->connection->getConnectionResource();
$counter = 0;
foreach($sr as $key => $res) {
$count = $this->ldap->countEntries($cr, $res);
if($count !== false) {
$counter += $count;
}
}
$this->processPagedSearchStatus($sr, $filter, $base, $counter, $limit,
$offset, $pagedSearchOK, $skipHandling);
return $counter;
}
/**
* @brief executes an LDAP search
* @param $filter the LDAP filter for the search
* @param $base an array containing the LDAP subtree(s) that shall be searched
* @param $attr optional, array, one or more attributes that shall be
* retrieved. Results will according to the order in the array.
* @returns array with the search result
*
* Executes an LDAP search
*/
private function search($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) {
$search = $this->executeSearch($filter, $base, $attr, $limit, $offset);
if($search === false) {
return array();
}
list($sr, $pagedSearchOK) = $search;
$cr = $this->connection->getConnectionResource();
if($skipHandling) {
//i.e. result do not need to be fetched, we just need the cookie
//thus pass 1 or any other value as $iFoundItems because it is not
//used
$this->processPagedSearchStatus($sr, $filter, $base, 1, $limit,
$offset, $pagedSearchOK,
$skipHandling);
return;
}
// Do the server-side sorting
foreach(array_reverse($attr) as $sortAttr){
foreach($sr as $searchResource) {
$this->ldap->sort($cr, $searchResource, $sortAttr);
}
}
$findings = array();
foreach($sr as $key => $res) {
$findings = array_merge($findings, $this->ldap->getEntries($cr , $res ));
}
$this->processPagedSearchStatus($sr, $filter, $base, $findings['count'],
$limit, $offset, $pagedSearchOK,
$skipHandling);
// if we're here, probably no connection resource is returned.
// to make ownCloud behave nicely, we simply give back an empty array.

View File

@ -408,4 +408,58 @@ class Test_User_Ldap_Direct extends \PHPUnit_Framework_TestCase {
//no test for getDisplayNames, because it just invokes getUsers and
//getDisplayName
public function testCountUsers() {
$access = $this->getAccessMock();
$access->connection->expects($this->once())
->method('__get')
->will($this->returnCallback(function($name) {
if($name === 'ldapLoginFilter') {
return 'uid=%uid';
}
return null;
}));
$access->expects($this->once())
->method('countUsers')
->will($this->returnCallback(function($filter, $a, $b, $c) {
if($filter !== 'uid=*') {
return false;
}
return 5;
}));
$backend = new UserLDAP($access);
$result = $backend->countUsers();
$this->assertEquals(5, $result);
}
public function testCountUsersFailing() {
$access = $this->getAccessMock();
$access->connection->expects($this->once())
->method('__get')
->will($this->returnCallback(function($name) {
if($name === 'ldapLoginFilter') {
return 'invalidFilter';
}
return null;
}));
$access->expects($this->once())
->method('countUsers')
->will($this->returnCallback(function($filter, $a, $b, $c) {
if($filter !== 'uid=*') {
return false;
}
return 5;
}));
$backend = new UserLDAP($access);
$result = $backend->countUsers();
$this->assertFalse($result);
}
}

View File

@ -363,7 +363,8 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface {
return (bool)((OC_USER_BACKEND_CHECK_PASSWORD
| OC_USER_BACKEND_GET_HOME
| OC_USER_BACKEND_GET_DISPLAYNAME
| OC_USER_BACKEND_PROVIDE_AVATAR)
| OC_USER_BACKEND_PROVIDE_AVATAR
| OC_USER_BACKEND_COUNT_USERS)
& $actions);
}
@ -373,4 +374,16 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface {
public function hasUserListings() {
return true;
}
/**
* counts the users in LDAP
*
* @return int | bool
*/
public function countUsers() {
$filter = \OCP\Util::mb_str_replace(
'%uid', '*', $this->access->connection->ldapLoginFilter, 'UTF-8');
$entries = $this->access->countUsers($filter);
return $entries;
}
}

View File

@ -210,4 +210,19 @@ class User_Proxy extends lib\Proxy implements \OCP\UserInterface {
return $this->refBackend->hasUserListings();
}
/**
* @brief Count the number of users
* @returns int | bool
*/
public function countUsers() {
$users = false;
foreach($this->backends as $backend) {
$backendUsers = $backend->countUsers();
if ($backendUsers !== false) {
$users += $backendUsers;
}
}
return $users;
}
}

View File

@ -13,6 +13,7 @@ ADMINLOGIN=admin$EXECUTOR_NUMBER
BASEDIR=$PWD
DBCONFIGS="sqlite mysql pgsql oci"
PHPUNIT=$(which phpunit)
function print_syntax {
echo -e "Syntax: ./autotest.sh [dbconfigname] [testfile]\n" >&2
@ -23,6 +24,20 @@ function print_syntax {
echo -e "\nIf no arguments are specified, all tests will be run with all database configs" >&2
}
if ! [ -x $PHPUNIT ]; then
echo "phpunit executable not found, please install phpunit version >= 3.7" >&2
exit 3
fi
PHPUNIT_VERSION=$($PHPUNIT --version | cut -d" " -f2)
PHPUNIT_MAJOR_VERSION=$(echo $PHPUNIT_VERSION | cut -d"." -f1)
PHPUNIT_MINOR_VERSION=$(echo $PHPUNIT_VERSION | cut -d"." -f2)
if ! [ $PHPUNIT_MAJOR_VERSION -gt 3 -o \( $PHPUNIT_MAJOR_VERSION -eq 3 -a $PHPUNIT_MINOR_VERSION -ge 7 \) ]; then
echo "phpunit version >= 3.7 required. Version found: $PHPUNIT_VERSION" >&2
exit 4
fi
if ! [ -w config -a -w config/config.php ]; then
echo "Please enable write permissions on config and config/config.php" >&2
exit 1
@ -179,10 +194,10 @@ EOF
mkdir coverage-html-$1
php -f enable_all.php
if [ -z "$NOCOVERAGE" ]; then
phpunit --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml --coverage-clover autotest-clover-$1.xml --coverage-html coverage-html-$1 $2 $3
$PHPUNIT --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml --coverage-clover autotest-clover-$1.xml --coverage-html coverage-html-$1 $2 $3
else
echo "No coverage"
phpunit --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml $2 $3
$PHPUNIT --configuration phpunit-autotest.xml --log-junit autotest-results-$1.xml $2 $3
fi
}

View File

@ -0,0 +1,61 @@
<?php
/**
* Copyright (c) 2014 Arthur Schiwon <blizzz@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace OC\Core\Command\User;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Helper\TableHelper;
class Report extends Command {
protected function configure() {
$this
->setName('user:report')
->setDescription('shows how many users have access');
}
protected function execute(InputInterface $input, OutputInterface $output) {
$table = $this->getHelperSet()->get('table');
$table->setHeaders(array('User Report', ''));
$userCountArray = $this->countUsers();
if(!empty($userCountArray)) {
$total = 0;
$rows = array();
foreach($userCountArray as $classname => $users) {
$total += $users;
$rows[] = array($classname, $users);
}
$rows[] = array(' ');
$rows[] = array('total users', $total);
} else {
$rows[] = array('No backend enabled that supports user counting', '');
}
$userDirectoryCount = $this->countUserDirectories();
$rows[] = array(' ');
$rows[] = array('user directories', $userDirectoryCount);
$table->setRows($rows);
$table->render($output);
}
private function countUsers() {
\OC_App::loadApps(array('authentication'));
$userManager = \OC::$server->getUserManager();
return $userManager->countUsers();
}
private function countUserDirectories() {
$dataview = new \OC\Files\View('/');
$userDirectories = $dataview->getDirectoryContent('/', 'httpd/unix-directory');
return count($userDirectories);
}
}

View File

@ -153,7 +153,7 @@ $TRANSLATIONS = array(
"Database tablespace" => "Database tabelplads",
"Database host" => "Databasehost",
"Finish setup" => "Afslut opsætning",
"Finishing …" => "Færdigbehandling ...",
"Finishing …" => "Færdigbehandler ...",
"This application requires JavaScript to be enabled for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and re-load this interface." => "Programmet forudsætter at JavaScript er aktiveret for at kunne afvikles korrekt. <a href=\"http://enable-javascript.com/\" target=\"_blank\">Aktiver JavaScript</a> og genindlæs siden..",
"%s is available. Get more information on how to update." => "%s er tilgængelig. Få mere information om, hvordan du opdaterer.",
"Log out" => "Log ud",

9
core/l10n/ur.php Normal file
View File

@ -0,0 +1,9 @@
<?php
$TRANSLATIONS = array(
"_%n minute ago_::_%n minutes ago_" => array("",""),
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day ago_::_%n days ago_" => array("",""),
"_%n month ago_::_%n months ago_" => array("",""),
"_{count} file conflict_::_{count} file conflicts_" => array("","")
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -15,3 +15,4 @@ $application->add(new OC\Core\Command\App\Disable());
$application->add(new OC\Core\Command\App\Enable());
$application->add(new OC\Core\Command\App\ListApps());
$application->add(new OC\Core\Command\Maintenance\Repair(new \OC\Repair()));
$application->add(new OC\Core\Command\User\Report());

View File

@ -7,6 +7,7 @@
*/
// Post installation check
/** @var $this OC_Router */
$this->create('post_setup_check', '/post-setup-check')
->action('OC_Setup', 'postSetupCheck');
@ -61,7 +62,7 @@ $this->create('core_tags_delete', '/tags/{type}/delete')
->action('OC\Core\Tags\Controller', 'deleteTags')
->requirements(array('type'));
// oC JS config
$this->create('js_config', '/core/js/config.js')
$this->create('js_config', '/core/js/oc.js')
->actionInclude('core/js/config.php');
// Routing
$this->create('core_ajax_routes', '/core/routes.json')

View File

@ -7,15 +7,16 @@
# claus_chr <claus_chr@webspeed.dk>, 2013
# kaffeldt <kasper.affeldt@gmail.com>, 2013
# lodahl <leiflodahl@gmail.com>, 2013
# Morten Juhl-Johansen Zölde-Fejér <morten@writtenandread.net>, 2014
# Ole Holm Frandsen <froksen@gmail.com>, 2013
# Peter Jespersen <flywheeldk@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-12-21 01:55-0500\n"
"PO-Revision-Date: 2013-12-20 21:40+0000\n"
"Last-Translator: lodahl <leiflodahl@gmail.com>\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: 2014-01-07 08:50+0000\n"
"Last-Translator: Morten Juhl-Johansen Zölde-Fejér <morten@writtenandread.net>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -158,55 +159,55 @@ msgstr "December"
msgid "Settings"
msgstr "Indstillinger"
#: js/js.js:869
#: js/js.js:872
msgid "seconds ago"
msgstr "sekunder siden"
#: js/js.js:870
#: js/js.js:873
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "%n minut siden"
msgstr[1] "%n minutter siden"
#: js/js.js:871
#: js/js.js:874
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "%n time siden"
msgstr[1] "%n timer siden"
#: js/js.js:872
#: js/js.js:875
msgid "today"
msgstr "i dag"
#: js/js.js:873
#: js/js.js:876
msgid "yesterday"
msgstr "i går"
#: js/js.js:874
#: js/js.js:877
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "%n dag siden"
msgstr[1] "%n dage siden"
#: js/js.js:875
#: js/js.js:878
msgid "last month"
msgstr "sidste måned"
#: js/js.js:876
#: js/js.js:879
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "%n måned siden"
msgstr[1] "%n måneder siden"
#: js/js.js:877
#: js/js.js:880
msgid "months ago"
msgstr "måneder siden"
#: js/js.js:878
#: js/js.js:881
msgid "last year"
msgstr "sidste år"
#: js/js.js:879
#: js/js.js:882
msgid "years ago"
msgstr "år siden"
@ -685,7 +686,7 @@ msgstr "Afslut opsætning"
#: templates/installation.php:185
msgid "Finishing …"
msgstr "Færdigbehandling ..."
msgstr "Færdigbehandler ..."
#: templates/layout.user.php:40
msgid ""

View File

@ -16,8 +16,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-04 01:55-0500\n"
"PO-Revision-Date: 2014-01-02 17:40+0000\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 20:50+0000\n"
"Last-Translator: vkehayas <vkehayas@gmail.com>\n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
@ -161,55 +161,55 @@ msgstr "Δεκέμβριος"
msgid "Settings"
msgstr "Ρυθμίσεις"
#: js/js.js:869
#: js/js.js:872
msgid "seconds ago"
msgstr "δευτερόλεπτα πριν"
#: js/js.js:870
#: js/js.js:873
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "%n λεπτό πριν"
msgstr[1] "%n λεπτά πριν"
#: js/js.js:871
#: js/js.js:874
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "%n ώρα πριν"
msgstr[1] "%n ώρες πριν"
#: js/js.js:872
#: js/js.js:875
msgid "today"
msgstr "σήμερα"
#: js/js.js:873
#: js/js.js:876
msgid "yesterday"
msgstr "χτες"
#: js/js.js:874
#: js/js.js:877
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "%n ημέρα πριν"
msgstr[1] "%n ημέρες πριν"
#: js/js.js:875
#: js/js.js:878
msgid "last month"
msgstr "τελευταίο μήνα"
#: js/js.js:876
#: js/js.js:879
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "%n μήνας πριν"
msgstr[1] "%n μήνες πριν"
#: js/js.js:877
#: js/js.js:880
msgid "months ago"
msgstr "μήνες πριν"
#: js/js.js:878
#: js/js.js:881
msgid "last year"
msgstr "τελευταίο χρόνο"
#: js/js.js:879
#: js/js.js:882
msgid "years ago"
msgstr "χρόνια πριν"

View File

@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-12-31 01:55-0500\n"
"PO-Revision-Date: 2013-12-30 16:00+0000\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 20:50+0000\n"
"Last-Translator: vkehayas <vkehayas@gmail.com>\n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"

View File

@ -4,13 +4,13 @@
#
# Translators:
# Efstathios Iosifidis <iosifidis@opensuse.org>, 2013
# vkehayas <vkehayas@gmail.com>, 2013
# vkehayas <vkehayas@gmail.com>, 2013-2014
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-04 01:55-0500\n"
"PO-Revision-Date: 2014-01-02 17:40+0000\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 21:00+0000\n"
"Last-Translator: vkehayas <vkehayas@gmail.com>\n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
@ -25,11 +25,11 @@ msgstr "Αυτός ο κοινόχρηστος φάκελος προστατεύ
#: templates/authenticate.php:7
msgid "The password is wrong. Try again."
msgstr "Εσφαλμένο συνθηματικό. Προσπαθήστε ξανά."
msgstr "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά."
#: templates/authenticate.php:10
msgid "Password"
msgstr "Συνθηματικό"
msgstr "Κωδικός πρόσβασης"
#: templates/part.404.php:3
msgid "Sorry, this link doesnt seem to work anymore."
@ -58,12 +58,12 @@ msgstr "Για περισσότερες πληροφορίες, παρακαλώ
#: templates/public.php:18
#, php-format
msgid "%s shared the folder %s with you"
msgstr "%s μοιράστηκε τον φάκελο %s μαζί σας"
msgstr "Ο %s μοιράστηκε τον φάκελο %s μαζί σας"
#: templates/public.php:21
#, php-format
msgid "%s shared the file %s with you"
msgstr "%s μοιράστηκε το αρχείο %s μαζί σας"
msgstr "Ο %s μοιράστηκε το αρχείο %s μαζί σας"
#: templates/public.php:29 templates/public.php:95
msgid "Download"
@ -75,7 +75,7 @@ msgstr "Μεταφόρτωση"
#: templates/public.php:59
msgid "Cancel upload"
msgstr "Ακύρωση αποστολής"
msgstr "Ακύρωση μεταφόρτωσης"
#: templates/public.php:92
msgid "No preview available for"

View File

@ -4,13 +4,14 @@
#
# Translators:
# Efstathios Iosifidis <iosifidis@opensuse.org>, 2013
# vkehayas <vkehayas@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-11-21 10:01-0500\n"
"PO-Revision-Date: 2013-11-16 07:44+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 21:15+0000\n"
"Last-Translator: vkehayas <vkehayas@gmail.com>\n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -18,44 +19,44 @@ msgstr ""
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/delete.php:42
#: ajax/delete.php:63
#, php-format
msgid "Couldn't delete %s permanently"
msgstr "Αδύνατη η μόνιμη διαγραφή του %s"
#: ajax/undelete.php:42
#: ajax/undelete.php:43
#, php-format
msgid "Couldn't restore %s"
msgstr "Αδυναμία επαναφοράς %s"
#: js/trash.js:18 js/trash.js:44 js/trash.js:121 js/trash.js:149
#: js/trash.js:18 js/trash.js:45 js/trash.js:88 js/trash.js:142
msgid "Error"
msgstr "Σφάλμα"
#: lib/trashbin.php:815 lib/trashbin.php:817
#: lib/trashbin.php:905 lib/trashbin.php:907
msgid "restored"
msgstr "έγινε επαναφορά"
msgstr "επαναφέρθηκαν"
#: templates/index.php:8
#: templates/index.php:7
msgid "Nothing in here. Your trash bin is empty!"
msgstr "Δεν υπάρχει τίποτα εδώ. Ο κάδος σας είναι άδειος!"
#: templates/index.php:22
#: templates/index.php:20
msgid "Name"
msgstr "Όνομα"
#: templates/index.php:25 templates/index.php:27
#: templates/index.php:23 templates/index.php:25
msgid "Restore"
msgstr "Επαναφορά"
#: templates/index.php:33
#: templates/index.php:31
msgid "Deleted"
msgstr "Διαγράφηκε"
msgstr "Διαγραμμένα"
#: templates/index.php:36 templates/index.php:37
#: templates/index.php:34 templates/index.php:35
msgid "Delete"
msgstr "Διαγραφή"
#: templates/part.breadcrumb.php:9
#: templates/part.breadcrumb.php:8
msgid "Deleted Files"
msgstr "Διαγραμμένα Αρχεία"

View File

@ -4,13 +4,14 @@
#
# Translators:
# Efstathios Iosifidis <iosifidis@opensuse.org>, 2013
# vkehayas <vkehayas@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-08-07 08:59-0400\n"
"PO-Revision-Date: 2013-08-06 07:40+0000\n"
"Last-Translator: Efstathios Iosifidis <iefstathios@gmail.com>\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 21:15+0000\n"
"Last-Translator: vkehayas <vkehayas@gmail.com>\n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -21,24 +22,24 @@ msgstr ""
#: ajax/rollbackVersion.php:13
#, php-format
msgid "Could not revert: %s"
msgstr "Αδυναμία επαναφοράς του: %s"
msgstr "Αδυναμία επαναφοράς: %s"
#: js/versions.js:7
#: js/versions.js:14
msgid "Versions"
msgstr "Εκδόσεις"
#: js/versions.js:53
#: js/versions.js:60
msgid "Failed to revert {file} to revision {timestamp}."
msgstr "Αποτυχία επαναφοράς του {file} στην αναθεώρηση {timestamp}."
#: js/versions.js:79
#: js/versions.js:86
msgid "More versions..."
msgstr "Περισσότερες εκδόσεις..."
#: js/versions.js:116
#: js/versions.js:123
msgid "No other versions available"
msgstr "Δεν υπάρχουν άλλες εκδόσεις διαθέσιμες"
#: js/versions.js:149
#: js/versions.js:154
msgid "Restore"
msgstr "Επαναφορά"

View File

@ -14,8 +14,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-04 01:55-0500\n"
"PO-Revision-Date: 2014-01-02 18:11+0000\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 20:50+0000\n"
"Last-Translator: vkehayas <vkehayas@gmail.com>\n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"

View File

@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-04 01:55-0500\n"
"PO-Revision-Date: 2014-01-02 18:11+0000\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 20:50+0000\n"
"Last-Translator: vkehayas <vkehayas@gmail.com>\n"
"Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n"
"MIME-Version: 1.0\n"

View File

@ -3,15 +3,15 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# pisike.sipelgas <pisike.sipelgas@gmail.com>, 2013
# pisike.sipelgas <pisike.sipelgas@gmail.com>, 2013-2014
# Rivo Zängov <eraser@eraser.ee>, 2013
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-12-20 01:55-0500\n"
"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 07:20+0000\n"
"Last-Translator: pisike.sipelgas <pisike.sipelgas@gmail.com>\n"
"Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -51,7 +51,7 @@ msgstr "Pole korrektne lähteallikas"
#: ajax/newfile.php:86
msgid ""
"Server is not allowed to open URLs, please check the server configuration"
msgstr ""
msgstr "Server ei võimalda URL-ide avamist, palun kontrolli serveri seadistust"
#: ajax/newfile.php:103
#, php-format
@ -180,7 +180,7 @@ msgstr "Ei suuda luua kataloogi"
#: js/file-upload.js:661
msgid "Error fetching URL"
msgstr ""
msgstr "Viga URL-i haaramisel"
#: js/fileactions.js:125
msgid "Share"

View File

@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-12-20 01:55-0500\n"
"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 14:30+0000\n"
"Last-Translator: Christophe Lherieau <skimpax@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
"MIME-Version: 1.0\n"

View File

@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-11-15 22:54-0500\n"
"PO-Revision-Date: 2013-11-13 16:11+0000\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 14:30+0000\n"
"Last-Translator: etiess <etiess@gmail.com>\n"
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
"MIME-Version: 1.0\n"

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-12-31 01:55-0500\n"
"PO-Revision-Date: 2013-12-31 03:40+0000\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: 2014-01-07 07:10+0000\n"
"Last-Translator: arifpedia <arifpedia@gmail.com>\n"
"Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
"MIME-Version: 1.0\n"
@ -152,51 +152,51 @@ msgstr "Desember"
msgid "Settings"
msgstr "Pengaturan"
#: js/js.js:869
#: js/js.js:872
msgid "seconds ago"
msgstr "beberapa detik yang lalu"
#: js/js.js:870
#: js/js.js:873
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] "%n menit yang lalu"
#: js/js.js:871
#: js/js.js:874
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] "%n jam yang lalu"
#: js/js.js:872
#: js/js.js:875
msgid "today"
msgstr "hari ini"
#: js/js.js:873
#: js/js.js:876
msgid "yesterday"
msgstr "kemarin"
#: js/js.js:874
#: js/js.js:877
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] "%n hari yang lalu"
#: js/js.js:875
#: js/js.js:878
msgid "last month"
msgstr "bulan kemarin"
#: js/js.js:876
#: js/js.js:879
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] "%n bulan yang lalu"
#: js/js.js:877
#: js/js.js:880
msgid "months ago"
msgstr "beberapa bulan lalu"
#: js/js.js:878
#: js/js.js:881
msgid "last year"
msgstr "tahun kemarin"
#: js/js.js:879
#: js/js.js:882
msgid "years ago"
msgstr "beberapa tahun lalu"

View File

@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-12-20 01:55-0500\n"
"PO-Revision-Date: 2013-12-20 06:23+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: 2014-01-07 08:10+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"

View File

@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# arifpedia <arifpedia@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-11-29 14:08-0500\n"
"PO-Revision-Date: 2013-11-29 19:08+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: 2014-01-07 07:40+0000\n"
"Last-Translator: arifpedia <arifpedia@gmail.com>\n"
"Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,39 +20,39 @@ msgstr ""
#: ajax/adminrecovery.php:29
msgid "Recovery key successfully enabled"
msgstr ""
msgstr "Kunci pemulihan berhasil diaktifkan"
#: ajax/adminrecovery.php:34
msgid ""
"Could not enable recovery key. Please check your recovery key password!"
msgstr ""
msgstr "Tidak dapat mengaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!"
#: ajax/adminrecovery.php:48
msgid "Recovery key successfully disabled"
msgstr ""
msgstr "Kunci pemulihan berhasil dinonaktifkan"
#: ajax/adminrecovery.php:53
msgid ""
"Could not disable recovery key. Please check your recovery key password!"
msgstr ""
msgstr "Tidak dapat menonaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!"
#: ajax/changeRecoveryPassword.php:49
msgid "Password successfully changed."
msgstr ""
msgstr "Sandi berhasil diubah"
#: ajax/changeRecoveryPassword.php:51
msgid "Could not change the password. Maybe the old password was not correct."
msgstr ""
msgstr "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah."
#: ajax/updatePrivateKeyPassword.php:52
msgid "Private key password successfully updated."
msgstr ""
msgstr "Sandi kunci privat berhasil diperbarui."
#: ajax/updatePrivateKeyPassword.php:54
msgid ""
"Could not update the private key password. Maybe the old password was not "
"correct."
msgstr ""
msgstr "Tidak dapat memperbarui sandi kunci privat. Kemungkinan sandi lama yang Anda masukkan salah."
#: files/error.php:12
msgid ""
@ -72,32 +73,32 @@ msgstr ""
msgid ""
"Can not decrypt this file, probably this is a shared file. Please ask the "
"file owner to reshare the file with you."
msgstr ""
msgstr "Tidak dapat mendekripsi berkas ini, mungkin ini adalah berkas bersama. Silakan meminta pemilik berkas ini untuk membagikan kembali dengan Anda."
#: files/error.php:22 files/error.php:27
msgid ""
"Unknown error please check your system settings or contact your "
"administrator"
msgstr ""
msgstr "Kesalahan tak dikenal, silakan periksa pengaturan sistem Anda atau hubungi admin."
#: hooks/hooks.php:59
#: hooks/hooks.php:62
msgid "Missing requirements."
msgstr ""
msgstr "Persyaratan yang hilang."
#: hooks/hooks.php:60
#: hooks/hooks.php:63
msgid ""
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL "
"together with the PHP extension is enabled and configured properly. For now,"
" the encryption app has been disabled."
msgstr ""
#: hooks/hooks.php:273
#: hooks/hooks.php:281
msgid "Following users are not set up for encryption:"
msgstr ""
msgstr "Pengguna berikut belum diatur untuk enkripsi:"
#: js/detect-migration.js:21
msgid "Initial encryption started... This can take some time. Please wait."
msgstr ""
msgstr "Inisial enskripsi dijalankan... Ini dapat memakan waktu. Silakan tunggu."
#: js/settings-admin.js:13
msgid "Saving..."
@ -105,11 +106,11 @@ msgstr "Menyimpan..."
#: templates/invalid_private_key.php:8
msgid "Go directly to your "
msgstr ""
msgstr "Langsung ke anda"
#: templates/invalid_private_key.php:8
msgid "personal settings"
msgstr ""
msgstr "pengaturan pribadi"
#: templates/settings-admin.php:4 templates/settings-personal.php:3
msgid "Encryption"
@ -118,84 +119,84 @@ msgstr "Enkripsi"
#: templates/settings-admin.php:7
msgid ""
"Enable recovery key (allow to recover users files in case of password loss):"
msgstr ""
msgstr "Aktifkan kunci pemulihan (memungkinkan pengguna untuk memulihkan berkas dalam kasus kehilangan sandi):"
#: templates/settings-admin.php:11
msgid "Recovery key password"
msgstr ""
msgstr "Sandi kunci pemulihan"
#: templates/settings-admin.php:14
msgid "Repeat Recovery key password"
msgstr ""
msgstr "Ulangi sandi kunci Pemulihan"
#: templates/settings-admin.php:21 templates/settings-personal.php:51
msgid "Enabled"
msgstr ""
msgstr "Diaktifkan"
#: templates/settings-admin.php:29 templates/settings-personal.php:59
msgid "Disabled"
msgstr ""
msgstr "Dinonaktifkan"
#: templates/settings-admin.php:34
msgid "Change recovery key password:"
msgstr ""
msgstr "Ubah sandi kunci pemulihan:"
#: templates/settings-admin.php:40
msgid "Old Recovery key password"
msgstr ""
msgstr "Sandi kunci Pemulihan Lama"
#: templates/settings-admin.php:47
msgid "New Recovery key password"
msgstr ""
msgstr "Sandi kunci Pemulihan Baru"
#: templates/settings-admin.php:53
msgid "Repeat New Recovery key password"
msgstr ""
msgstr "Ulangi sandi kunci Pemulihan baru"
#: templates/settings-admin.php:58
msgid "Change Password"
msgstr ""
msgstr "Ubah sandi"
#: templates/settings-personal.php:9
msgid "Your private key password no longer match your log-in password:"
msgstr ""
msgstr "Sandi kunci privat Anda tidak lagi cocok dengan sandi masuk:"
#: templates/settings-personal.php:12
msgid "Set your old private key password to your current log-in password."
msgstr ""
msgstr "Atur sandi kunci privat lama Anda sebagai sandi masuk Anda saat ini."
#: templates/settings-personal.php:14
msgid ""
" If you don't remember your old password you can ask your administrator to "
"recover your files."
msgstr ""
msgstr "Jika Anda tidak ingat sandi lama, Anda dapat meminta administrator Anda untuk memulihkan berkas."
#: templates/settings-personal.php:22
msgid "Old log-in password"
msgstr ""
msgstr "Sandi masuk yang lama"
#: templates/settings-personal.php:28
msgid "Current log-in password"
msgstr ""
msgstr "Sandi masuk saat ini"
#: templates/settings-personal.php:33
msgid "Update Private Key Password"
msgstr ""
msgstr "Perbarui Sandi Kunci Privat"
#: templates/settings-personal.php:42
msgid "Enable password recovery:"
msgstr ""
msgstr "Aktifkan sandi pemulihan:"
#: templates/settings-personal.php:44
msgid ""
"Enabling this option will allow you to reobtain access to your encrypted "
"files in case of password loss"
msgstr ""
msgstr "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi"
#: templates/settings-personal.php:60
msgid "File recovery settings updated"
msgstr ""
msgstr "Pengaturan pemulihan berkas diperbarui"
#: templates/settings-personal.php:61
msgid "Could not update file recovery"
msgstr ""
msgstr "Tidak dapat memperbarui pemulihan berkas"

View File

@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# arifpedia <arifpedia@gmail.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-11-15 22:54-0500\n"
"PO-Revision-Date: 2013-11-13 16:11+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: 2014-01-07 08:00+0000\n"
"Last-Translator: arifpedia <arifpedia@gmail.com>\n"
"Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,11 +20,11 @@ msgstr ""
#: templates/authenticate.php:4
msgid "This share is password-protected"
msgstr ""
msgstr "Berbagi ini dilindungi sandi"
#: templates/authenticate.php:7
msgid "The password is wrong. Try again."
msgstr ""
msgstr "Sandi salah. Coba lagi"
#: templates/authenticate.php:10
msgid "Password"
@ -31,27 +32,27 @@ msgstr "Sandi"
#: templates/part.404.php:3
msgid "Sorry, this link doesnt seem to work anymore."
msgstr ""
msgstr "Maaf, tautan ini tampaknya tidak berfungsi lagi."
#: templates/part.404.php:4
msgid "Reasons might be:"
msgstr ""
msgstr "Alasan mungkin:"
#: templates/part.404.php:6
msgid "the item was removed"
msgstr ""
msgstr "item telah dihapus"
#: templates/part.404.php:7
msgid "the link expired"
msgstr ""
msgstr "tautan telah kadaluarsa"
#: templates/part.404.php:8
msgid "sharing is disabled"
msgstr ""
msgstr "berbagi dinonaktifkan"
#: templates/part.404.php:10
msgid "For more info, please ask the person who sent this link."
msgstr ""
msgstr "Untuk info lebih lanjut, silakan tanyakan orang yang mengirim tautan ini."
#: templates/public.php:18
#, php-format
@ -61,7 +62,7 @@ msgstr "%s membagikan folder %s dengan Anda"
#: templates/public.php:21
#, php-format
msgid "%s shared the file %s with you"
msgstr "%s membagikan file %s dengan Anda"
msgstr "%s membagikan berkas %s dengan Anda"
#: templates/public.php:29 templates/public.php:95
msgid "Download"
@ -73,12 +74,12 @@ msgstr "Unggah"
#: templates/public.php:59
msgid "Cancel upload"
msgstr "Batal pengunggahan"
msgstr "Batal unggah"
#: templates/public.php:92
msgid "No preview available for"
msgstr "Tidak ada pratinjau tersedia untuk"
msgstr "Tidak ada pratinjau yang tersedia untuk"
#: templates/public.php:99
msgid "Direct link"
msgstr ""
msgstr "Tautan langsung"

View File

@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-11-21 10:01-0500\n"
"PO-Revision-Date: 2013-11-16 07:44+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: 2014-01-07 07:10+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -17,44 +17,44 @@ msgstr ""
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: ajax/delete.php:42
#: ajax/delete.php:63
#, php-format
msgid "Couldn't delete %s permanently"
msgstr "Tidak dapat menghapus permanen %s"
#: ajax/undelete.php:42
#: ajax/undelete.php:43
#, php-format
msgid "Couldn't restore %s"
msgstr "Tidak dapat memulihkan %s"
#: js/trash.js:18 js/trash.js:44 js/trash.js:121 js/trash.js:149
#: js/trash.js:18 js/trash.js:45 js/trash.js:88 js/trash.js:142
msgid "Error"
msgstr "Galat"
#: lib/trashbin.php:815 lib/trashbin.php:817
#: lib/trashbin.php:905 lib/trashbin.php:907
msgid "restored"
msgstr ""
#: templates/index.php:8
#: templates/index.php:7
msgid "Nothing in here. Your trash bin is empty!"
msgstr "Tempat sampah anda kosong!"
#: templates/index.php:22
#: templates/index.php:20
msgid "Name"
msgstr "Nama"
#: templates/index.php:25 templates/index.php:27
#: templates/index.php:23 templates/index.php:25
msgid "Restore"
msgstr "Pulihkan"
#: templates/index.php:33
#: templates/index.php:31
msgid "Deleted"
msgstr "Dihapus"
#: templates/index.php:36 templates/index.php:37
#: templates/index.php:34 templates/index.php:35
msgid "Delete"
msgstr "Hapus"
#: templates/part.breadcrumb.php:9
#: templates/part.breadcrumb.php:8
msgid "Deleted Files"
msgstr "Berkas yang Dihapus"

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-12-31 01:55-0500\n"
"PO-Revision-Date: 2013-12-31 03:40+0000\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: 2014-01-07 08:10+0000\n"
"Last-Translator: arifpedia <arifpedia@gmail.com>\n"
"Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
"MIME-Version: 1.0\n"

View File

@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2013-12-31 01:55-0500\n"
"PO-Revision-Date: 2013-12-30 17:20+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: 2014-01-07 07:10+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-06 01:55-0500\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-06 01:55-0500\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-06 01:55-0500\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-06 01:55-0500\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-06 01:55-0500\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-06 01:55-0500\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-06 01:55-0500\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-06 01:55-0500\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -71,23 +71,23 @@ msgstr ""
msgid "cannot open \"%s\""
msgstr ""
#: private/files.php:231
#: private/files.php:226
msgid "ZIP download is turned off."
msgstr ""
#: private/files.php:232
#: private/files.php:227
msgid "Files need to be downloaded one by one."
msgstr ""
#: private/files.php:233 private/files.php:261
#: private/files.php:228 private/files.php:256
msgid "Back to Files"
msgstr ""
#: private/files.php:258
#: private/files.php:253
msgid "Selected files too large to generate zip file."
msgstr ""
#: private/files.php:259
#: private/files.php:254
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-06 01:55-0500\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -71,23 +71,23 @@ msgstr ""
msgid "cannot open \"%s\""
msgstr ""
#: files.php:231
#: files.php:226
msgid "ZIP download is turned off."
msgstr ""
#: files.php:232
#: files.php:227
msgid "Files need to be downloaded one by one."
msgstr ""
#: files.php:233 files.php:261
#: files.php:228 files.php:256
msgid "Back to Files"
msgstr ""
#: files.php:258
#: files.php:253
msgid "Selected files too large to generate zip file."
msgstr ""
#: files.php:259
#: files.php:254
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-06 01:55-0500\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-06 01:55-0500\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-06 01:55-0500\n"
"POT-Creation-Date: 2014-01-08 01:55-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

775
l10n/ur/core.po Normal file
View File

@ -0,0 +1,775 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 23:45+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Urdu (http://www.transifex.com/projects/p/owncloud/language/ur/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/share.php:119 ajax/share.php:198
#, php-format
msgid "%s shared »%s« with you"
msgstr ""
#: ajax/share.php:169
#, php-format
msgid "Couldn't send mail to following users: %s "
msgstr ""
#: ajax/update.php:11
msgid "Turned on maintenance mode"
msgstr ""
#: ajax/update.php:14
msgid "Turned off maintenance mode"
msgstr ""
#: ajax/update.php:17
msgid "Updated database"
msgstr ""
#: ajax/update.php:20
msgid "Updating filecache, this may take really long..."
msgstr ""
#: ajax/update.php:23
msgid "Updated filecache"
msgstr ""
#: ajax/update.php:26
#, php-format
msgid "... %d%% done ..."
msgstr ""
#: avatar/controller.php:62
msgid "No image or file provided"
msgstr ""
#: avatar/controller.php:81
msgid "Unknown filetype"
msgstr ""
#: avatar/controller.php:85
msgid "Invalid image"
msgstr ""
#: avatar/controller.php:115 avatar/controller.php:142
msgid "No temporary profile picture available, try again"
msgstr ""
#: avatar/controller.php:135
msgid "No crop data provided"
msgstr ""
#: js/config.php:32
msgid "Sunday"
msgstr ""
#: js/config.php:33
msgid "Monday"
msgstr ""
#: js/config.php:34
msgid "Tuesday"
msgstr ""
#: js/config.php:35
msgid "Wednesday"
msgstr ""
#: js/config.php:36
msgid "Thursday"
msgstr ""
#: js/config.php:37
msgid "Friday"
msgstr ""
#: js/config.php:38
msgid "Saturday"
msgstr ""
#: js/config.php:43
msgid "January"
msgstr ""
#: js/config.php:44
msgid "February"
msgstr ""
#: js/config.php:45
msgid "March"
msgstr ""
#: js/config.php:46
msgid "April"
msgstr ""
#: js/config.php:47
msgid "May"
msgstr ""
#: js/config.php:48
msgid "June"
msgstr ""
#: js/config.php:49
msgid "July"
msgstr ""
#: js/config.php:50
msgid "August"
msgstr ""
#: js/config.php:51
msgid "September"
msgstr ""
#: js/config.php:52
msgid "October"
msgstr ""
#: js/config.php:53
msgid "November"
msgstr ""
#: js/config.php:54
msgid "December"
msgstr ""
#: js/js.js:398
msgid "Settings"
msgstr ""
#: js/js.js:872
msgid "seconds ago"
msgstr ""
#: js/js.js:873
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] ""
msgstr[1] ""
#: js/js.js:874
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
msgstr[1] ""
#: js/js.js:875
msgid "today"
msgstr ""
#: js/js.js:876
msgid "yesterday"
msgstr ""
#: js/js.js:877
msgid "%n day ago"
msgid_plural "%n days ago"
msgstr[0] ""
msgstr[1] ""
#: js/js.js:878
msgid "last month"
msgstr ""
#: js/js.js:879
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
msgstr[1] ""
#: js/js.js:880
msgid "months ago"
msgstr ""
#: js/js.js:881
msgid "last year"
msgstr ""
#: js/js.js:882
msgid "years ago"
msgstr ""
#: js/oc-dialogs.js:123
msgid "Choose"
msgstr ""
#: js/oc-dialogs.js:146
msgid "Error loading file picker template: {error}"
msgstr ""
#: js/oc-dialogs.js:172
msgid "Yes"
msgstr ""
#: js/oc-dialogs.js:182
msgid "No"
msgstr ""
#: js/oc-dialogs.js:199
msgid "Ok"
msgstr ""
#: js/oc-dialogs.js:219
msgid "Error loading message template: {error}"
msgstr ""
#: js/oc-dialogs.js:347
msgid "{count} file conflict"
msgid_plural "{count} file conflicts"
msgstr[0] ""
msgstr[1] ""
#: js/oc-dialogs.js:361
msgid "One file conflict"
msgstr ""
#: js/oc-dialogs.js:367
msgid "Which files do you want to keep?"
msgstr ""
#: js/oc-dialogs.js:368
msgid ""
"If you select both versions, the copied file will have a number added to its"
" name."
msgstr ""
#: js/oc-dialogs.js:376
msgid "Cancel"
msgstr ""
#: js/oc-dialogs.js:386
msgid "Continue"
msgstr ""
#: js/oc-dialogs.js:433 js/oc-dialogs.js:446
msgid "(all selected)"
msgstr ""
#: js/oc-dialogs.js:436 js/oc-dialogs.js:449
msgid "({count} selected)"
msgstr ""
#: js/oc-dialogs.js:457
msgid "Error loading file exists template"
msgstr ""
#: js/share.js:51 js/share.js:66 js/share.js:106
msgid "Shared"
msgstr ""
#: js/share.js:109
msgid "Share"
msgstr ""
#: js/share.js:158 js/share.js:171 js/share.js:178 js/share.js:707
#: js/share.js:719 templates/installation.php:10
msgid "Error"
msgstr ""
#: js/share.js:160 js/share.js:747
msgid "Error while sharing"
msgstr ""
#: js/share.js:171
msgid "Error while unsharing"
msgstr ""
#: js/share.js:178
msgid "Error while changing permissions"
msgstr ""
#: js/share.js:187
msgid "Shared with you and the group {group} by {owner}"
msgstr ""
#: js/share.js:189
msgid "Shared with you by {owner}"
msgstr ""
#: js/share.js:213
msgid "Share with user or group …"
msgstr ""
#: js/share.js:219
msgid "Share link"
msgstr ""
#: js/share.js:222
msgid "Password protect"
msgstr ""
#: js/share.js:224 templates/installation.php:58 templates/login.php:38
msgid "Password"
msgstr ""
#: js/share.js:229
msgid "Allow Public Upload"
msgstr ""
#: js/share.js:233
msgid "Email link to person"
msgstr ""
#: js/share.js:234
msgid "Send"
msgstr ""
#: js/share.js:239
msgid "Set expiration date"
msgstr ""
#: js/share.js:240
msgid "Expiration date"
msgstr ""
#: js/share.js:275
msgid "Share via email:"
msgstr ""
#: js/share.js:278
msgid "No people found"
msgstr ""
#: js/share.js:322 js/share.js:359
msgid "group"
msgstr ""
#: js/share.js:333
msgid "Resharing is not allowed"
msgstr ""
#: js/share.js:375
msgid "Shared in {item} with {user}"
msgstr ""
#: js/share.js:397
msgid "Unshare"
msgstr ""
#: js/share.js:405
msgid "notify by email"
msgstr ""
#: js/share.js:408
msgid "can edit"
msgstr ""
#: js/share.js:410
msgid "access control"
msgstr ""
#: js/share.js:413
msgid "create"
msgstr ""
#: js/share.js:416
msgid "update"
msgstr ""
#: js/share.js:419
msgid "delete"
msgstr ""
#: js/share.js:422
msgid "share"
msgstr ""
#: js/share.js:694
msgid "Password protected"
msgstr ""
#: js/share.js:707
msgid "Error unsetting expiration date"
msgstr ""
#: js/share.js:719
msgid "Error setting expiration date"
msgstr ""
#: js/share.js:734
msgid "Sending ..."
msgstr ""
#: js/share.js:745
msgid "Email sent"
msgstr ""
#: js/share.js:769
msgid "Warning"
msgstr ""
#: js/tags.js:4
msgid "The object type is not specified."
msgstr ""
#: js/tags.js:13
msgid "Enter new"
msgstr ""
#: js/tags.js:27
msgid "Delete"
msgstr ""
#: js/tags.js:31
msgid "Add"
msgstr ""
#: js/tags.js:39
msgid "Edit tags"
msgstr ""
#: js/tags.js:57
msgid "Error loading dialog template: {error}"
msgstr ""
#: js/tags.js:261
msgid "No tags selected for deletion."
msgstr ""
#: js/update.js:8
msgid "Please reload the page."
msgstr ""
#: js/update.js:17
msgid ""
"The update was unsuccessful. Please report this issue to the <a "
"href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud "
"community</a>."
msgstr ""
#: js/update.js:21
msgid "The update was successful. Redirecting you to ownCloud now."
msgstr ""
#: lostpassword/controller.php:62
#, php-format
msgid "%s password reset"
msgstr ""
#: lostpassword/templates/email.php:2
msgid "Use the following link to reset your password: {link}"
msgstr ""
#: lostpassword/templates/lostpassword.php:7
msgid ""
"The link to reset your password has been sent to your email.<br>If you do "
"not receive it within a reasonable amount of time, check your spam/junk "
"folders.<br>If it is not there ask your local administrator ."
msgstr ""
#: lostpassword/templates/lostpassword.php:15
msgid "Request failed!<br>Did you make sure your email/username was right?"
msgstr ""
#: lostpassword/templates/lostpassword.php:18
msgid "You will receive a link to reset your password via Email."
msgstr ""
#: lostpassword/templates/lostpassword.php:21 templates/installation.php:52
#: templates/login.php:31
msgid "Username"
msgstr ""
#: lostpassword/templates/lostpassword.php:25
msgid ""
"Your files are encrypted. If you haven't enabled the recovery key, there "
"will be no way to get your data back after your password is reset. If you "
"are not sure what to do, please contact your administrator before you "
"continue. Do you really want to continue?"
msgstr ""
#: lostpassword/templates/lostpassword.php:27
msgid "Yes, I really want to reset my password now"
msgstr ""
#: lostpassword/templates/lostpassword.php:30
msgid "Reset"
msgstr ""
#: lostpassword/templates/resetpassword.php:4
msgid "Your password was reset"
msgstr ""
#: lostpassword/templates/resetpassword.php:5
msgid "To login page"
msgstr ""
#: lostpassword/templates/resetpassword.php:8
msgid "New password"
msgstr ""
#: lostpassword/templates/resetpassword.php:11
msgid "Reset password"
msgstr ""
#: strings.php:5
msgid "Personal"
msgstr ""
#: strings.php:6
msgid "Users"
msgstr ""
#: strings.php:7 templates/layout.user.php:111
msgid "Apps"
msgstr ""
#: strings.php:8
msgid "Admin"
msgstr ""
#: strings.php:9
msgid "Help"
msgstr ""
#: tags/controller.php:22
msgid "Error loading tags"
msgstr ""
#: tags/controller.php:48
msgid "Tag already exists"
msgstr ""
#: tags/controller.php:64
msgid "Error deleting tag(s)"
msgstr ""
#: tags/controller.php:75
msgid "Error tagging"
msgstr ""
#: tags/controller.php:86
msgid "Error untagging"
msgstr ""
#: tags/controller.php:97
msgid "Error favoriting"
msgstr ""
#: tags/controller.php:108
msgid "Error unfavoriting"
msgstr ""
#: templates/403.php:12
msgid "Access forbidden"
msgstr ""
#: templates/404.php:15
msgid "Cloud not found"
msgstr ""
#: templates/altmail.php:2
#, php-format
msgid ""
"Hey there,\n"
"\n"
"just letting you know that %s shared %s with you.\n"
"View it: %s\n"
"\n"
msgstr ""
#: templates/altmail.php:4 templates/mail.php:17
#, php-format
msgid "The share will expire on %s."
msgstr ""
#: templates/altmail.php:7 templates/mail.php:20
msgid "Cheers!"
msgstr ""
#: templates/installation.php:25 templates/installation.php:32
#: templates/installation.php:39
msgid "Security Warning"
msgstr ""
#: templates/installation.php:26
msgid "Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)"
msgstr ""
#: templates/installation.php:27
#, php-format
msgid "Please update your PHP installation to use %s securely."
msgstr ""
#: templates/installation.php:33
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
#: templates/installation.php:34
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
#: templates/installation.php:40
msgid ""
"Your data directory and files are probably accessible from the internet "
"because the .htaccess file does not work."
msgstr ""
#: templates/installation.php:42
#, php-format
msgid ""
"For information how to properly configure your server, please see the <a "
"href=\"%s\" target=\"_blank\">documentation</a>."
msgstr ""
#: templates/installation.php:48
msgid "Create an <strong>admin account</strong>"
msgstr ""
#: templates/installation.php:67
msgid "Advanced"
msgstr ""
#: templates/installation.php:74
msgid "Data folder"
msgstr ""
#: templates/installation.php:86
msgid "Configure the database"
msgstr ""
#: templates/installation.php:91 templates/installation.php:103
#: templates/installation.php:114 templates/installation.php:125
#: templates/installation.php:137
msgid "will be used"
msgstr ""
#: templates/installation.php:149
msgid "Database user"
msgstr ""
#: templates/installation.php:156
msgid "Database password"
msgstr ""
#: templates/installation.php:161
msgid "Database name"
msgstr ""
#: templates/installation.php:169
msgid "Database tablespace"
msgstr ""
#: templates/installation.php:176
msgid "Database host"
msgstr ""
#: templates/installation.php:185
msgid "Finish setup"
msgstr ""
#: templates/installation.php:185
msgid "Finishing …"
msgstr ""
#: templates/layout.user.php:40
msgid ""
"This application requires JavaScript to be enabled for correct operation. "
"Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable "
"JavaScript</a> and re-load this interface."
msgstr ""
#: templates/layout.user.php:44
#, php-format
msgid "%s is available. Get more information on how to update."
msgstr ""
#: templates/layout.user.php:72 templates/singleuser.user.php:8
msgid "Log out"
msgstr ""
#: templates/login.php:9
msgid "Automatic logon rejected!"
msgstr ""
#: templates/login.php:10
msgid ""
"If you did not change your password recently, your account may be "
"compromised!"
msgstr ""
#: templates/login.php:12
msgid "Please change your password to secure your account again."
msgstr ""
#: templates/login.php:17
msgid "Server side authentication failed!"
msgstr ""
#: templates/login.php:18
msgid "Please contact your administrator."
msgstr ""
#: templates/login.php:44
msgid "Lost your password?"
msgstr ""
#: templates/login.php:49
msgid "remember"
msgstr ""
#: templates/login.php:52
msgid "Log in"
msgstr ""
#: templates/login.php:58
msgid "Alternative Logins"
msgstr ""
#: templates/mail.php:15
#, php-format
msgid ""
"Hey there,<br><br>just letting you know that %s shared »%s« with you.<br><a "
"href=\"%s\">View it!</a><br><br>"
msgstr ""
#: templates/singleuser.user.php:3
msgid "This ownCloud instance is currently in single user mode."
msgstr ""
#: templates/singleuser.user.php:4
msgid "This means only administrators can use the instance."
msgstr ""
#: templates/singleuser.user.php:5 templates/update.user.php:5
msgid ""
"Contact your system administrator if this message persists or appeared "
"unexpectedly."
msgstr ""
#: templates/singleuser.user.php:7 templates/update.user.php:6
msgid "Thank you for your patience."
msgstr ""
#: templates/update.admin.php:3
#, php-format
msgid "Updating ownCloud to version %s, this may take a while."
msgstr ""
#: templates/update.user.php:3
msgid ""
"This ownCloud instance is currently being updated, which may take a while."
msgstr ""
#: templates/update.user.php:4
msgid "Please reload this page after a short time to continue using ownCloud."
msgstr ""

413
l10n/ur/files.po Normal file
View File

@ -0,0 +1,413 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 23:45+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Urdu (http://www.transifex.com/projects/p/owncloud/language/ur/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/move.php:17
#, php-format
msgid "Could not move %s - File with this name already exists"
msgstr ""
#: ajax/move.php:27 ajax/move.php:30
#, php-format
msgid "Could not move %s"
msgstr ""
#: ajax/newfile.php:56 js/files.js:74
msgid "File name cannot be empty."
msgstr ""
#: ajax/newfile.php:62
msgid "File name must not contain \"/\". Please choose a different name."
msgstr ""
#: ajax/newfile.php:72 ajax/newfolder.php:37 lib/app.php:67
#, php-format
msgid ""
"The name %s is already used in the folder %s. Please choose a different "
"name."
msgstr ""
#: ajax/newfile.php:81
msgid "Not a valid source"
msgstr ""
#: ajax/newfile.php:86
msgid ""
"Server is not allowed to open URLs, please check the server configuration"
msgstr ""
#: ajax/newfile.php:103
#, php-format
msgid "Error while downloading %s to %s"
msgstr ""
#: ajax/newfile.php:140
msgid "Error when creating the file"
msgstr ""
#: ajax/newfolder.php:21
msgid "Folder name cannot be empty."
msgstr ""
#: ajax/newfolder.php:27
msgid "Folder name must not contain \"/\". Please choose a different name."
msgstr ""
#: ajax/newfolder.php:56
msgid "Error when creating the folder"
msgstr ""
#: ajax/upload.php:18 ajax/upload.php:50
msgid "Unable to set upload directory."
msgstr ""
#: ajax/upload.php:27
msgid "Invalid Token"
msgstr ""
#: ajax/upload.php:64
msgid "No file was uploaded. Unknown error"
msgstr ""
#: ajax/upload.php:71
msgid "There is no error, the file uploaded with success"
msgstr ""
#: ajax/upload.php:72
msgid ""
"The uploaded file exceeds the upload_max_filesize directive in php.ini: "
msgstr ""
#: ajax/upload.php:74
msgid ""
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
"the HTML form"
msgstr ""
#: ajax/upload.php:75
msgid "The uploaded file was only partially uploaded"
msgstr ""
#: ajax/upload.php:76
msgid "No file was uploaded"
msgstr ""
#: ajax/upload.php:77
msgid "Missing a temporary folder"
msgstr ""
#: ajax/upload.php:78
msgid "Failed to write to disk"
msgstr ""
#: ajax/upload.php:96
msgid "Not enough storage available"
msgstr ""
#: ajax/upload.php:127 ajax/upload.php:154
msgid "Upload failed. Could not get file info."
msgstr ""
#: ajax/upload.php:144
msgid "Upload failed. Could not find uploaded file"
msgstr ""
#: ajax/upload.php:172
msgid "Invalid directory."
msgstr ""
#: appinfo/app.php:11
msgid "Files"
msgstr ""
#: js/file-upload.js:228
msgid "Unable to upload {filename} as it is a directory or has 0 bytes"
msgstr ""
#: js/file-upload.js:239
msgid "Not enough space available"
msgstr ""
#: js/file-upload.js:306
msgid "Upload cancelled."
msgstr ""
#: js/file-upload.js:344
msgid "Could not get result from server."
msgstr ""
#: js/file-upload.js:436
msgid ""
"File upload is in progress. Leaving the page now will cancel the upload."
msgstr ""
#: js/file-upload.js:523
msgid "URL cannot be empty"
msgstr ""
#: js/file-upload.js:527 js/filelist.js:377
msgid "In the home folder 'Shared' is a reserved filename"
msgstr ""
#: js/file-upload.js:529 js/filelist.js:379
msgid "{new_name} already exists"
msgstr ""
#: js/file-upload.js:595
msgid "Could not create file"
msgstr ""
#: js/file-upload.js:611
msgid "Could not create folder"
msgstr ""
#: js/file-upload.js:661
msgid "Error fetching URL"
msgstr ""
#: js/fileactions.js:125
msgid "Share"
msgstr ""
#: js/fileactions.js:137
msgid "Delete permanently"
msgstr ""
#: js/fileactions.js:194
msgid "Rename"
msgstr ""
#: js/filelist.js:69 js/filelist.js:72 js/filelist.js:889
msgid "Pending"
msgstr ""
#: js/filelist.js:405
msgid "Could not rename file"
msgstr ""
#: js/filelist.js:539
msgid "replaced {new_name} with {old_name}"
msgstr ""
#: js/filelist.js:539
msgid "undo"
msgstr ""
#: js/filelist.js:591
msgid "Error deleting file."
msgstr ""
#: js/filelist.js:609 js/filelist.js:683 js/files.js:631
msgid "%n folder"
msgid_plural "%n folders"
msgstr[0] ""
msgstr[1] ""
#: js/filelist.js:610 js/filelist.js:684 js/files.js:637
msgid "%n file"
msgid_plural "%n files"
msgstr[0] ""
msgstr[1] ""
#: js/filelist.js:617
msgid "{dirs} and {files}"
msgstr ""
#: js/filelist.js:828 js/filelist.js:866
msgid "Uploading %n file"
msgid_plural "Uploading %n files"
msgstr[0] ""
msgstr[1] ""
#: js/files.js:72
msgid "'.' is an invalid file name."
msgstr ""
#: js/files.js:81
msgid ""
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not "
"allowed."
msgstr ""
#: js/files.js:93
msgid "Your storage is full, files can not be updated or synced anymore!"
msgstr ""
#: js/files.js:97
msgid "Your storage is almost full ({usedSpacePercent}%)"
msgstr ""
#: js/files.js:110
msgid ""
"Encryption App is enabled but your keys are not initialized, please log-out "
"and log-in again"
msgstr ""
#: js/files.js:114
msgid ""
"Invalid private key for Encryption App. Please update your private key "
"password in your personal settings to recover access to your encrypted "
"files."
msgstr ""
#: js/files.js:118
msgid ""
"Encryption was disabled but your files are still encrypted. Please go to "
"your personal settings to decrypt your files."
msgstr ""
#: js/files.js:349
msgid ""
"Your download is being prepared. This might take some time if the files are "
"big."
msgstr ""
#: js/files.js:558 js/files.js:596
msgid "Error moving file"
msgstr ""
#: js/files.js:558 js/files.js:596
msgid "Error"
msgstr ""
#: js/files.js:613 templates/index.php:56
msgid "Name"
msgstr ""
#: js/files.js:614 templates/index.php:68
msgid "Size"
msgstr ""
#: js/files.js:615 templates/index.php:70
msgid "Modified"
msgstr ""
#: lib/app.php:60
msgid "Invalid folder name. Usage of 'Shared' is reserved."
msgstr ""
#: lib/app.php:101
#, php-format
msgid "%s could not be renamed"
msgstr ""
#: lib/helper.php:11 templates/index.php:16
msgid "Upload"
msgstr ""
#: templates/admin.php:5
msgid "File handling"
msgstr ""
#: templates/admin.php:7
msgid "Maximum upload size"
msgstr ""
#: templates/admin.php:10
msgid "max. possible: "
msgstr ""
#: templates/admin.php:15
msgid "Needed for multi-file and folder downloads."
msgstr ""
#: templates/admin.php:17
msgid "Enable ZIP-download"
msgstr ""
#: templates/admin.php:20
msgid "0 is unlimited"
msgstr ""
#: templates/admin.php:22
msgid "Maximum input size for ZIP files"
msgstr ""
#: templates/admin.php:26
msgid "Save"
msgstr ""
#: templates/index.php:5
msgid "New"
msgstr ""
#: templates/index.php:8
msgid "New text file"
msgstr ""
#: templates/index.php:8
msgid "Text file"
msgstr ""
#: templates/index.php:10
msgid "New folder"
msgstr ""
#: templates/index.php:10
msgid "Folder"
msgstr ""
#: templates/index.php:12
msgid "From link"
msgstr ""
#: templates/index.php:29
msgid "Deleted files"
msgstr ""
#: templates/index.php:34
msgid "Cancel upload"
msgstr ""
#: templates/index.php:40
msgid "You dont have permission to upload or create files here"
msgstr ""
#: templates/index.php:45
msgid "Nothing in here. Upload something!"
msgstr ""
#: templates/index.php:62
msgid "Download"
msgstr ""
#: templates/index.php:73 templates/index.php:74
msgid "Delete"
msgstr ""
#: templates/index.php:86
msgid "Upload too large"
msgstr ""
#: templates/index.php:88
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
#: templates/index.php:93
msgid "Files are being scanned, please wait."
msgstr ""
#: templates/index.php:96
msgid "Current scanning"
msgstr ""
#: templates/upgrade.php:2
msgid "Upgrading filesystem cache..."
msgstr ""

201
l10n/ur/files_encryption.po Normal file
View File

@ -0,0 +1,201 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 23:45+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Urdu (http://www.transifex.com/projects/p/owncloud/language/ur/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/adminrecovery.php:29
msgid "Recovery key successfully enabled"
msgstr ""
#: ajax/adminrecovery.php:34
msgid ""
"Could not enable recovery key. Please check your recovery key password!"
msgstr ""
#: ajax/adminrecovery.php:48
msgid "Recovery key successfully disabled"
msgstr ""
#: ajax/adminrecovery.php:53
msgid ""
"Could not disable recovery key. Please check your recovery key password!"
msgstr ""
#: ajax/changeRecoveryPassword.php:49
msgid "Password successfully changed."
msgstr ""
#: ajax/changeRecoveryPassword.php:51
msgid "Could not change the password. Maybe the old password was not correct."
msgstr ""
#: ajax/updatePrivateKeyPassword.php:52
msgid "Private key password successfully updated."
msgstr ""
#: ajax/updatePrivateKeyPassword.php:54
msgid ""
"Could not update the private key password. Maybe the old password was not "
"correct."
msgstr ""
#: files/error.php:12
msgid ""
"Encryption app not initialized! Maybe the encryption app was re-enabled "
"during your session. Please try to log out and log back in to initialize the"
" encryption app."
msgstr ""
#: files/error.php:16
#, php-format
msgid ""
"Your private key is not valid! Likely your password was changed outside of "
"%s (e.g. your corporate directory). You can update your private key password"
" in your personal settings to recover access to your encrypted files."
msgstr ""
#: files/error.php:19
msgid ""
"Can not decrypt this file, probably this is a shared file. Please ask the "
"file owner to reshare the file with you."
msgstr ""
#: files/error.php:22 files/error.php:27
msgid ""
"Unknown error please check your system settings or contact your "
"administrator"
msgstr ""
#: hooks/hooks.php:62
msgid "Missing requirements."
msgstr ""
#: hooks/hooks.php:63
msgid ""
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL "
"together with the PHP extension is enabled and configured properly. For now,"
" the encryption app has been disabled."
msgstr ""
#: hooks/hooks.php:281
msgid "Following users are not set up for encryption:"
msgstr ""
#: js/detect-migration.js:21
msgid "Initial encryption started... This can take some time. Please wait."
msgstr ""
#: js/settings-admin.js:13
msgid "Saving..."
msgstr ""
#: templates/invalid_private_key.php:8
msgid "Go directly to your "
msgstr ""
#: templates/invalid_private_key.php:8
msgid "personal settings"
msgstr ""
#: templates/settings-admin.php:4 templates/settings-personal.php:3
msgid "Encryption"
msgstr ""
#: templates/settings-admin.php:7
msgid ""
"Enable recovery key (allow to recover users files in case of password loss):"
msgstr ""
#: templates/settings-admin.php:11
msgid "Recovery key password"
msgstr ""
#: templates/settings-admin.php:14
msgid "Repeat Recovery key password"
msgstr ""
#: templates/settings-admin.php:21 templates/settings-personal.php:51
msgid "Enabled"
msgstr ""
#: templates/settings-admin.php:29 templates/settings-personal.php:59
msgid "Disabled"
msgstr ""
#: templates/settings-admin.php:34
msgid "Change recovery key password:"
msgstr ""
#: templates/settings-admin.php:40
msgid "Old Recovery key password"
msgstr ""
#: templates/settings-admin.php:47
msgid "New Recovery key password"
msgstr ""
#: templates/settings-admin.php:53
msgid "Repeat New Recovery key password"
msgstr ""
#: templates/settings-admin.php:58
msgid "Change Password"
msgstr ""
#: templates/settings-personal.php:9
msgid "Your private key password no longer match your log-in password:"
msgstr ""
#: templates/settings-personal.php:12
msgid "Set your old private key password to your current log-in password."
msgstr ""
#: templates/settings-personal.php:14
msgid ""
" If you don't remember your old password you can ask your administrator to "
"recover your files."
msgstr ""
#: templates/settings-personal.php:22
msgid "Old log-in password"
msgstr ""
#: templates/settings-personal.php:28
msgid "Current log-in password"
msgstr ""
#: templates/settings-personal.php:33
msgid "Update Private Key Password"
msgstr ""
#: templates/settings-personal.php:42
msgid "Enable password recovery:"
msgstr ""
#: templates/settings-personal.php:44
msgid ""
"Enabling this option will allow you to reobtain access to your encrypted "
"files in case of password loss"
msgstr ""
#: templates/settings-personal.php:60
msgid "File recovery settings updated"
msgstr ""
#: templates/settings-personal.php:61
msgid "Could not update file recovery"
msgstr ""

123
l10n/ur/files_external.po Normal file
View File

@ -0,0 +1,123 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 23:45+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Urdu (http://www.transifex.com/projects/p/owncloud/language/ur/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: js/dropbox.js:7 js/dropbox.js:28 js/google.js:8 js/google.js:39
msgid "Access granted"
msgstr ""
#: js/dropbox.js:30 js/dropbox.js:96 js/dropbox.js:102
msgid "Error configuring Dropbox storage"
msgstr ""
#: js/dropbox.js:65 js/google.js:86
msgid "Grant access"
msgstr ""
#: js/dropbox.js:101
msgid "Please provide a valid Dropbox app key and secret."
msgstr ""
#: js/google.js:42 js/google.js:121
msgid "Error configuring Google Drive storage"
msgstr ""
#: lib/config.php:467
msgid ""
"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares "
"is not possible. Please ask your system administrator to install it."
msgstr ""
#: lib/config.php:471
msgid ""
"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting"
" of FTP shares is not possible. Please ask your system administrator to "
"install it."
msgstr ""
#: lib/config.php:474
msgid ""
"<b>Warning:</b> The Curl support in PHP is not enabled or installed. "
"Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask "
"your system administrator to install it."
msgstr ""
#: templates/settings.php:3
msgid "External Storage"
msgstr ""
#: templates/settings.php:9 templates/settings.php:28
msgid "Folder name"
msgstr ""
#: templates/settings.php:10
msgid "External storage"
msgstr ""
#: templates/settings.php:11
msgid "Configuration"
msgstr ""
#: templates/settings.php:12
msgid "Options"
msgstr ""
#: templates/settings.php:13
msgid "Applicable"
msgstr ""
#: templates/settings.php:33
msgid "Add storage"
msgstr ""
#: templates/settings.php:90
msgid "None set"
msgstr ""
#: templates/settings.php:91
msgid "All Users"
msgstr ""
#: templates/settings.php:92
msgid "Groups"
msgstr ""
#: templates/settings.php:100
msgid "Users"
msgstr ""
#: templates/settings.php:113 templates/settings.php:114
#: templates/settings.php:149 templates/settings.php:150
msgid "Delete"
msgstr ""
#: templates/settings.php:129
msgid "Enable User External Storage"
msgstr ""
#: templates/settings.php:130
msgid "Allow users to mount their own external storage"
msgstr ""
#: templates/settings.php:141
msgid "SSL root certificates"
msgstr ""
#: templates/settings.php:159
msgid "Import Root Certificate"
msgstr ""

84
l10n/ur/files_sharing.po Normal file
View File

@ -0,0 +1,84 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 23:45+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Urdu (http://www.transifex.com/projects/p/owncloud/language/ur/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: templates/authenticate.php:4
msgid "This share is password-protected"
msgstr ""
#: templates/authenticate.php:7
msgid "The password is wrong. Try again."
msgstr ""
#: templates/authenticate.php:10
msgid "Password"
msgstr ""
#: templates/part.404.php:3
msgid "Sorry, this link doesnt seem to work anymore."
msgstr ""
#: templates/part.404.php:4
msgid "Reasons might be:"
msgstr ""
#: templates/part.404.php:6
msgid "the item was removed"
msgstr ""
#: templates/part.404.php:7
msgid "the link expired"
msgstr ""
#: templates/part.404.php:8
msgid "sharing is disabled"
msgstr ""
#: templates/part.404.php:10
msgid "For more info, please ask the person who sent this link."
msgstr ""
#: templates/public.php:18
#, php-format
msgid "%s shared the folder %s with you"
msgstr ""
#: templates/public.php:21
#, php-format
msgid "%s shared the file %s with you"
msgstr ""
#: templates/public.php:29 templates/public.php:95
msgid "Download"
msgstr ""
#: templates/public.php:46 templates/public.php:49
msgid "Upload"
msgstr ""
#: templates/public.php:59
msgid "Cancel upload"
msgstr ""
#: templates/public.php:92
msgid "No preview available for"
msgstr ""
#: templates/public.php:99
msgid "Direct link"
msgstr ""

60
l10n/ur/files_trashbin.po Normal file
View File

@ -0,0 +1,60 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 23:45+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Urdu (http://www.transifex.com/projects/p/owncloud/language/ur/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/delete.php:63
#, php-format
msgid "Couldn't delete %s permanently"
msgstr ""
#: ajax/undelete.php:43
#, php-format
msgid "Couldn't restore %s"
msgstr ""
#: js/trash.js:18 js/trash.js:45 js/trash.js:88 js/trash.js:142
msgid "Error"
msgstr ""
#: lib/trashbin.php:905 lib/trashbin.php:907
msgid "restored"
msgstr ""
#: templates/index.php:7
msgid "Nothing in here. Your trash bin is empty!"
msgstr ""
#: templates/index.php:20
msgid "Name"
msgstr ""
#: templates/index.php:23 templates/index.php:25
msgid "Restore"
msgstr ""
#: templates/index.php:31
msgid "Deleted"
msgstr ""
#: templates/index.php:34 templates/index.php:35
msgid "Delete"
msgstr ""
#: templates/part.breadcrumb.php:8
msgid "Deleted Files"
msgstr ""

43
l10n/ur/files_versions.po Normal file
View File

@ -0,0 +1,43 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 23:45+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Urdu (http://www.transifex.com/projects/p/owncloud/language/ur/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/rollbackVersion.php:13
#, php-format
msgid "Could not revert: %s"
msgstr ""
#: js/versions.js:14
msgid "Versions"
msgstr ""
#: js/versions.js:60
msgid "Failed to revert {file} to revision {timestamp}."
msgstr ""
#: js/versions.js:86
msgid "More versions..."
msgstr ""
#: js/versions.js:123
msgid "No other versions available"
msgstr ""
#: js/versions.js:154
msgid "Restore"
msgstr ""

333
l10n/ur/lib.po Normal file
View File

@ -0,0 +1,333 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 23:45+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Urdu (http://www.transifex.com/projects/p/owncloud/language/ur/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: private/app.php:245
#, php-format
msgid ""
"App \"%s\" can't be installed because it is not compatible with this version"
" of ownCloud."
msgstr ""
#: private/app.php:257
msgid "No app name specified"
msgstr ""
#: private/app.php:362
msgid "Help"
msgstr ""
#: private/app.php:375
msgid "Personal"
msgstr ""
#: private/app.php:386
msgid "Settings"
msgstr ""
#: private/app.php:398
msgid "Users"
msgstr ""
#: private/app.php:411
msgid "Admin"
msgstr ""
#: private/app.php:875
#, php-format
msgid "Failed to upgrade \"%s\"."
msgstr ""
#: private/avatar.php:66
msgid "Unknown filetype"
msgstr ""
#: private/avatar.php:71
msgid "Invalid image"
msgstr ""
#: private/defaults.php:34
msgid "web services under your control"
msgstr ""
#: private/files.php:66 private/files.php:98
#, php-format
msgid "cannot open \"%s\""
msgstr ""
#: private/files.php:231
msgid "ZIP download is turned off."
msgstr ""
#: private/files.php:232
msgid "Files need to be downloaded one by one."
msgstr ""
#: private/files.php:233 private/files.php:261
msgid "Back to Files"
msgstr ""
#: private/files.php:258
msgid "Selected files too large to generate zip file."
msgstr ""
#: private/files.php:259
msgid ""
"Please download the files separately in smaller chunks or kindly ask your "
"administrator."
msgstr ""
#: private/installer.php:63
msgid "No source specified when installing app"
msgstr ""
#: private/installer.php:70
msgid "No href specified when installing app from http"
msgstr ""
#: private/installer.php:75
msgid "No path specified when installing app from local file"
msgstr ""
#: private/installer.php:89
#, php-format
msgid "Archives of type %s are not supported"
msgstr ""
#: private/installer.php:103
msgid "Failed to open archive when installing app"
msgstr ""
#: private/installer.php:125
msgid "App does not provide an info.xml file"
msgstr ""
#: private/installer.php:131
msgid "App can't be installed because of not allowed code in the App"
msgstr ""
#: private/installer.php:140
msgid ""
"App can't be installed because it is not compatible with this version of "
"ownCloud"
msgstr ""
#: private/installer.php:146
msgid ""
"App can't be installed because it contains the <shipped>true</shipped> tag "
"which is not allowed for non shipped apps"
msgstr ""
#: private/installer.php:159
msgid ""
"App can't be installed because the version in info.xml/version is not the "
"same as the version reported from the app store"
msgstr ""
#: private/installer.php:169
msgid "App directory already exists"
msgstr ""
#: private/installer.php:182
#, php-format
msgid "Can't create app folder. Please fix permissions. %s"
msgstr ""
#: private/json.php:28
msgid "Application is not enabled"
msgstr ""
#: private/json.php:39 private/json.php:62 private/json.php:73
msgid "Authentication error"
msgstr ""
#: private/json.php:51
msgid "Token expired. Please reload page."
msgstr ""
#: private/search/provider/file.php:18 private/search/provider/file.php:36
msgid "Files"
msgstr ""
#: private/search/provider/file.php:27 private/search/provider/file.php:34
msgid "Text"
msgstr ""
#: private/search/provider/file.php:30
msgid "Images"
msgstr ""
#: private/setup/abstractdatabase.php:26
#, php-format
msgid "%s enter the database username."
msgstr ""
#: private/setup/abstractdatabase.php:29
#, php-format
msgid "%s enter the database name."
msgstr ""
#: private/setup/abstractdatabase.php:32
#, php-format
msgid "%s you may not use dots in the database name"
msgstr ""
#: private/setup/mssql.php:20
#, php-format
msgid "MS SQL username and/or password not valid: %s"
msgstr ""
#: private/setup/mssql.php:21 private/setup/mysql.php:13
#: private/setup/oci.php:114 private/setup/postgresql.php:24
#: private/setup/postgresql.php:70
msgid "You need to enter either an existing account or the administrator."
msgstr ""
#: private/setup/mysql.php:12
msgid "MySQL username and/or password not valid"
msgstr ""
#: private/setup/mysql.php:67 private/setup/oci.php:54
#: private/setup/oci.php:121 private/setup/oci.php:144
#: private/setup/oci.php:151 private/setup/oci.php:162
#: private/setup/oci.php:169 private/setup/oci.php:178
#: private/setup/oci.php:186 private/setup/oci.php:195
#: private/setup/oci.php:201 private/setup/postgresql.php:89
#: private/setup/postgresql.php:98 private/setup/postgresql.php:115
#: private/setup/postgresql.php:125 private/setup/postgresql.php:134
#, php-format
msgid "DB Error: \"%s\""
msgstr ""
#: private/setup/mysql.php:68 private/setup/oci.php:55
#: private/setup/oci.php:122 private/setup/oci.php:145
#: private/setup/oci.php:152 private/setup/oci.php:163
#: private/setup/oci.php:179 private/setup/oci.php:187
#: private/setup/oci.php:196 private/setup/postgresql.php:90
#: private/setup/postgresql.php:99 private/setup/postgresql.php:116
#: private/setup/postgresql.php:126 private/setup/postgresql.php:135
#, php-format
msgid "Offending command was: \"%s\""
msgstr ""
#: private/setup/mysql.php:85
#, php-format
msgid "MySQL user '%s'@'localhost' exists already."
msgstr ""
#: private/setup/mysql.php:86
msgid "Drop this user from MySQL"
msgstr ""
#: private/setup/mysql.php:91
#, php-format
msgid "MySQL user '%s'@'%%' already exists"
msgstr ""
#: private/setup/mysql.php:92
msgid "Drop this user from MySQL."
msgstr ""
#: private/setup/oci.php:34
msgid "Oracle connection could not be established"
msgstr ""
#: private/setup/oci.php:41 private/setup/oci.php:113
msgid "Oracle username and/or password not valid"
msgstr ""
#: private/setup/oci.php:170 private/setup/oci.php:202
#, php-format
msgid "Offending command was: \"%s\", name: %s, password: %s"
msgstr ""
#: private/setup/postgresql.php:23 private/setup/postgresql.php:69
msgid "PostgreSQL username and/or password not valid"
msgstr ""
#: private/setup.php:28
msgid "Set an admin username."
msgstr ""
#: private/setup.php:31
msgid "Set an admin password."
msgstr ""
#: private/setup.php:195
msgid ""
"Your web server is not yet properly setup to allow files synchronization "
"because the WebDAV interface seems to be broken."
msgstr ""
#: private/setup.php:196
#, php-format
msgid "Please double check the <a href='%s'>installation guides</a>."
msgstr ""
#: private/tags.php:194
#, php-format
msgid "Could not find category \"%s\""
msgstr ""
#: private/template/functions.php:130
msgid "seconds ago"
msgstr ""
#: private/template/functions.php:131
msgid "%n minute ago"
msgid_plural "%n minutes ago"
msgstr[0] ""
msgstr[1] ""
#: private/template/functions.php:132
msgid "%n hour ago"
msgid_plural "%n hours ago"
msgstr[0] ""
msgstr[1] ""
#: private/template/functions.php:133
msgid "today"
msgstr ""
#: private/template/functions.php:134
msgid "yesterday"
msgstr ""
#: private/template/functions.php:136
msgid "%n day go"
msgid_plural "%n days ago"
msgstr[0] ""
msgstr[1] ""
#: private/template/functions.php:138
msgid "last month"
msgstr ""
#: private/template/functions.php:139
msgid "%n month ago"
msgid_plural "%n months ago"
msgstr[0] ""
msgstr[1] ""
#: private/template/functions.php:141
msgid "last year"
msgstr ""
#: private/template/functions.php:142
msgid "years ago"
msgstr ""

668
l10n/ur/settings.po Normal file
View File

@ -0,0 +1,668 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 23:45+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Urdu (http://www.transifex.com/projects/p/owncloud/language/ur/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/apps/ocs.php:20
msgid "Unable to load list from App Store"
msgstr ""
#: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17
#: ajax/togglegroups.php:20 changepassword/controller.php:55
msgid "Authentication error"
msgstr ""
#: ajax/changedisplayname.php:31
msgid "Your full name has been changed."
msgstr ""
#: ajax/changedisplayname.php:34
msgid "Unable to change full name"
msgstr ""
#: ajax/creategroup.php:10
msgid "Group already exists"
msgstr ""
#: ajax/creategroup.php:19
msgid "Unable to add group"
msgstr ""
#: ajax/lostpassword.php:12
msgid "Email saved"
msgstr ""
#: ajax/lostpassword.php:14
msgid "Invalid email"
msgstr ""
#: ajax/removegroup.php:13
msgid "Unable to delete group"
msgstr ""
#: ajax/removeuser.php:25
msgid "Unable to delete user"
msgstr ""
#: ajax/setlanguage.php:15
msgid "Language changed"
msgstr ""
#: ajax/setlanguage.php:17 ajax/setlanguage.php:20
msgid "Invalid request"
msgstr ""
#: ajax/togglegroups.php:12
msgid "Admins can't remove themself from the admin group"
msgstr ""
#: ajax/togglegroups.php:30
#, php-format
msgid "Unable to add user to group %s"
msgstr ""
#: ajax/togglegroups.php:36
#, php-format
msgid "Unable to remove user from group %s"
msgstr ""
#: ajax/updateapp.php:14
msgid "Couldn't update app."
msgstr ""
#: changepassword/controller.php:20
msgid "Wrong password"
msgstr ""
#: changepassword/controller.php:42
msgid "No user supplied"
msgstr ""
#: changepassword/controller.php:74
msgid ""
"Please provide an admin recovery password, otherwise all user data will be "
"lost"
msgstr ""
#: changepassword/controller.php:79
msgid ""
"Wrong admin recovery password. Please check the password and try again."
msgstr ""
#: changepassword/controller.php:87
msgid ""
"Back-end doesn't support password change, but the users encryption key was "
"successfully updated."
msgstr ""
#: changepassword/controller.php:92 changepassword/controller.php:103
msgid "Unable to change password"
msgstr ""
#: js/apps.js:43
msgid "Update to {appversion}"
msgstr ""
#: js/apps.js:49 js/apps.js:82 js/apps.js:110
msgid "Disable"
msgstr ""
#: js/apps.js:49 js/apps.js:90 js/apps.js:103 js/apps.js:119
msgid "Enable"
msgstr ""
#: js/apps.js:71
msgid "Please wait...."
msgstr ""
#: js/apps.js:79 js/apps.js:80 js/apps.js:101
msgid "Error while disabling app"
msgstr ""
#: js/apps.js:100 js/apps.js:114 js/apps.js:115
msgid "Error while enabling app"
msgstr ""
#: js/apps.js:125
msgid "Updating...."
msgstr ""
#: js/apps.js:128
msgid "Error while updating app"
msgstr ""
#: js/apps.js:128
msgid "Error"
msgstr ""
#: js/apps.js:129 templates/apps.php:43
msgid "Update"
msgstr ""
#: js/apps.js:132
msgid "Updated"
msgstr ""
#: js/personal.js:220
msgid "Select a profile picture"
msgstr ""
#: js/personal.js:266
msgid "Decrypting files... Please wait, this can take some time."
msgstr ""
#: js/personal.js:287
msgid "Saving..."
msgstr ""
#: js/users.js:47
msgid "deleted"
msgstr ""
#: js/users.js:47
msgid "undo"
msgstr ""
#: js/users.js:79
msgid "Unable to remove user"
msgstr ""
#: js/users.js:95 templates/users.php:26 templates/users.php:90
#: templates/users.php:118
msgid "Groups"
msgstr ""
#: js/users.js:100 templates/users.php:92 templates/users.php:130
msgid "Group Admin"
msgstr ""
#: js/users.js:123 templates/users.php:170
msgid "Delete"
msgstr ""
#: js/users.js:284
msgid "add group"
msgstr ""
#: js/users.js:454
msgid "A valid username must be provided"
msgstr ""
#: js/users.js:455 js/users.js:461 js/users.js:476
msgid "Error creating user"
msgstr ""
#: js/users.js:460
msgid "A valid password must be provided"
msgstr ""
#: js/users.js:484
msgid "Warning: Home directory for user \"{user}\" already exists"
msgstr ""
#: personal.php:45 personal.php:46
msgid "__language_name__"
msgstr ""
#: templates/admin.php:8
msgid "Everything (fatal issues, errors, warnings, info, debug)"
msgstr ""
#: templates/admin.php:9
msgid "Info, warnings, errors and fatal issues"
msgstr ""
#: templates/admin.php:10
msgid "Warnings, errors and fatal issues"
msgstr ""
#: templates/admin.php:11
msgid "Errors and fatal issues"
msgstr ""
#: templates/admin.php:12
msgid "Fatal issues only"
msgstr ""
#: templates/admin.php:22 templates/admin.php:36
msgid "Security Warning"
msgstr ""
#: templates/admin.php:25
#, php-format
msgid ""
"You are accessing %s via HTTP. We strongly suggest you configure your server"
" to require using HTTPS instead."
msgstr ""
#: templates/admin.php:39
msgid ""
"Your data directory and your files are probably accessible from the "
"internet. The .htaccess file is not working. We strongly suggest that you "
"configure your webserver in a way that the data directory is no longer "
"accessible or you move the data directory outside the webserver document "
"root."
msgstr ""
#: templates/admin.php:50
msgid "Setup Warning"
msgstr ""
#: templates/admin.php:53
msgid ""
"Your web server is not yet properly setup to allow files synchronization "
"because the WebDAV interface seems to be broken."
msgstr ""
#: templates/admin.php:54
#, php-format
msgid "Please double check the <a href=\"%s\">installation guides</a>."
msgstr ""
#: templates/admin.php:65
msgid "Module 'fileinfo' missing"
msgstr ""
#: templates/admin.php:68
msgid ""
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this "
"module to get best results with mime-type detection."
msgstr ""
#: templates/admin.php:79
msgid "Your PHP version is outdated"
msgstr ""
#: templates/admin.php:82
msgid ""
"Your PHP version is outdated. We strongly recommend to update to 5.3.8 or "
"newer because older versions are known to be broken. It is possible that "
"this installation is not working correctly."
msgstr ""
#: templates/admin.php:93
msgid "Locale not working"
msgstr ""
#: templates/admin.php:98
msgid "System locale can not be set to a one which supports UTF-8."
msgstr ""
#: templates/admin.php:102
msgid ""
"This means that there might be problems with certain characters in file "
"names."
msgstr ""
#: templates/admin.php:106
#, php-format
msgid ""
"We strongly suggest to install the required packages on your system to "
"support one of the following locales: %s."
msgstr ""
#: templates/admin.php:118
msgid "Internet connection not working"
msgstr ""
#: templates/admin.php:121
msgid ""
"This server has no working internet connection. This means that some of the "
"features like mounting of external storage, notifications about updates or "
"installation of 3rd party apps don´t work. Accessing files from remote and "
"sending of notification emails might also not work. We suggest to enable "
"internet connection for this server if you want to have all features."
msgstr ""
#: templates/admin.php:135
msgid "Cron"
msgstr ""
#: templates/admin.php:142
msgid "Execute one task with each page loaded"
msgstr ""
#: templates/admin.php:150
msgid ""
"cron.php is registered at a webcron service to call cron.php every 15 "
"minutes over http."
msgstr ""
#: templates/admin.php:158
msgid "Use systems cron service to call the cron.php file every 15 minutes."
msgstr ""
#: templates/admin.php:163
msgid "Sharing"
msgstr ""
#: templates/admin.php:169
msgid "Enable Share API"
msgstr ""
#: templates/admin.php:170
msgid "Allow apps to use the Share API"
msgstr ""
#: templates/admin.php:177
msgid "Allow links"
msgstr ""
#: templates/admin.php:178
msgid "Allow users to share items to the public with links"
msgstr ""
#: templates/admin.php:186
msgid "Allow public uploads"
msgstr ""
#: templates/admin.php:187
msgid ""
"Allow users to enable others to upload into their publicly shared folders"
msgstr ""
#: templates/admin.php:195
msgid "Allow resharing"
msgstr ""
#: templates/admin.php:196
msgid "Allow users to share items shared with them again"
msgstr ""
#: templates/admin.php:203
msgid "Allow users to share with anyone"
msgstr ""
#: templates/admin.php:206
msgid "Allow users to only share with users in their groups"
msgstr ""
#: templates/admin.php:213
msgid "Allow mail notification"
msgstr ""
#: templates/admin.php:214
msgid "Allow user to send mail notification for shared files"
msgstr ""
#: templates/admin.php:221
msgid "Security"
msgstr ""
#: templates/admin.php:234
msgid "Enforce HTTPS"
msgstr ""
#: templates/admin.php:236
#, php-format
msgid "Forces the clients to connect to %s via an encrypted connection."
msgstr ""
#: templates/admin.php:242
#, php-format
msgid ""
"Please connect to your %s via HTTPS to enable or disable the SSL "
"enforcement."
msgstr ""
#: templates/admin.php:254
msgid "Log"
msgstr ""
#: templates/admin.php:255
msgid "Log level"
msgstr ""
#: templates/admin.php:287
msgid "More"
msgstr ""
#: templates/admin.php:288
msgid "Less"
msgstr ""
#: templates/admin.php:294 templates/personal.php:173
msgid "Version"
msgstr ""
#: templates/admin.php:298 templates/personal.php:176
msgid ""
"Developed by the <a href=\"http://ownCloud.org/contact\" "
"target=\"_blank\">ownCloud community</a>, the <a "
"href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is "
"licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" "
"target=\"_blank\"><abbr title=\"Affero General Public "
"License\">AGPL</abbr></a>."
msgstr ""
#: templates/apps.php:13
msgid "Add your App"
msgstr ""
#: templates/apps.php:28
msgid "More Apps"
msgstr ""
#: templates/apps.php:33
msgid "Select an App"
msgstr ""
#: templates/apps.php:39
msgid "See application page at apps.owncloud.com"
msgstr ""
#: templates/apps.php:41
msgid "<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>"
msgstr ""
#: templates/help.php:4
msgid "User Documentation"
msgstr ""
#: templates/help.php:6
msgid "Administrator Documentation"
msgstr ""
#: templates/help.php:9
msgid "Online Documentation"
msgstr ""
#: templates/help.php:11
msgid "Forum"
msgstr ""
#: templates/help.php:14
msgid "Bugtracker"
msgstr ""
#: templates/help.php:17
msgid "Commercial Support"
msgstr ""
#: templates/personal.php:8
msgid "Get the apps to sync your files"
msgstr ""
#: templates/personal.php:19
msgid "Show First Run Wizard again"
msgstr ""
#: templates/personal.php:27
#, php-format
msgid "You have used <strong>%s</strong> of the available <strong>%s</strong>"
msgstr ""
#: templates/personal.php:39 templates/users.php:23 templates/users.php:89
msgid "Password"
msgstr ""
#: templates/personal.php:40
msgid "Your password was changed"
msgstr ""
#: templates/personal.php:41
msgid "Unable to change your password"
msgstr ""
#: templates/personal.php:42
msgid "Current password"
msgstr ""
#: templates/personal.php:44
msgid "New password"
msgstr ""
#: templates/personal.php:46
msgid "Change password"
msgstr ""
#: templates/personal.php:58 templates/users.php:88
msgid "Full Name"
msgstr ""
#: templates/personal.php:73
msgid "Email"
msgstr ""
#: templates/personal.php:75
msgid "Your email address"
msgstr ""
#: templates/personal.php:76
msgid "Fill in an email address to enable password recovery"
msgstr ""
#: templates/personal.php:86
msgid "Profile picture"
msgstr ""
#: templates/personal.php:91
msgid "Upload new"
msgstr ""
#: templates/personal.php:93
msgid "Select new from Files"
msgstr ""
#: templates/personal.php:94
msgid "Remove image"
msgstr ""
#: templates/personal.php:95
msgid "Either png or jpg. Ideally square but you will be able to crop it."
msgstr ""
#: templates/personal.php:97
msgid "Your avatar is provided by your original account."
msgstr ""
#: templates/personal.php:101
msgid "Abort"
msgstr ""
#: templates/personal.php:102
msgid "Choose as profile image"
msgstr ""
#: templates/personal.php:110 templates/personal.php:111
msgid "Language"
msgstr ""
#: templates/personal.php:130
msgid "Help translate"
msgstr ""
#: templates/personal.php:137
msgid "WebDAV"
msgstr ""
#: templates/personal.php:139
#, php-format
msgid ""
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via "
"WebDAV</a>"
msgstr ""
#: templates/personal.php:150
msgid "Encryption"
msgstr ""
#: templates/personal.php:152
msgid "The encryption app is no longer enabled, please decrypt all your files"
msgstr ""
#: templates/personal.php:158
msgid "Log-in password"
msgstr ""
#: templates/personal.php:163
msgid "Decrypt all Files"
msgstr ""
#: templates/users.php:21
msgid "Login Name"
msgstr ""
#: templates/users.php:30
msgid "Create"
msgstr ""
#: templates/users.php:36
msgid "Admin Recovery Password"
msgstr ""
#: templates/users.php:37 templates/users.php:38
msgid ""
"Enter the recovery password in order to recover the users files during "
"password change"
msgstr ""
#: templates/users.php:42
msgid "Default Storage"
msgstr ""
#: templates/users.php:44 templates/users.php:139
msgid "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")"
msgstr ""
#: templates/users.php:48 templates/users.php:148
msgid "Unlimited"
msgstr ""
#: templates/users.php:66 templates/users.php:163
msgid "Other"
msgstr ""
#: templates/users.php:87
msgid "Username"
msgstr ""
#: templates/users.php:94
msgid "Storage"
msgstr ""
#: templates/users.php:108
msgid "change full name"
msgstr ""
#: templates/users.php:112
msgid "set new password"
msgstr ""
#: templates/users.php:143
msgid "Default"
msgstr ""

513
l10n/ur/user_ldap.po Normal file
View File

@ -0,0 +1,513 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 23:45+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Urdu (http://www.transifex.com/projects/p/owncloud/language/ur/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/clearMappings.php:34
msgid "Failed to clear the mappings."
msgstr ""
#: ajax/deleteConfiguration.php:34
msgid "Failed to delete the server configuration"
msgstr ""
#: ajax/testConfiguration.php:39
msgid "The configuration is valid and the connection could be established!"
msgstr ""
#: ajax/testConfiguration.php:42
msgid ""
"The configuration is valid, but the Bind failed. Please check the server "
"settings and credentials."
msgstr ""
#: ajax/testConfiguration.php:46
msgid ""
"The configuration is invalid. Please have a look at the logs for further "
"details."
msgstr ""
#: ajax/wizard.php:32
msgid "No action specified"
msgstr ""
#: ajax/wizard.php:38
msgid "No configuration specified"
msgstr ""
#: ajax/wizard.php:81
msgid "No data specified"
msgstr ""
#: ajax/wizard.php:89
#, php-format
msgid " Could not set configuration %s"
msgstr ""
#: js/settings.js:67
msgid "Deletion failed"
msgstr ""
#: js/settings.js:83
msgid "Take over settings from recent server configuration?"
msgstr ""
#: js/settings.js:84
msgid "Keep settings?"
msgstr ""
#: js/settings.js:99
msgid "Cannot add server configuration"
msgstr ""
#: js/settings.js:127
msgid "mappings cleared"
msgstr ""
#: js/settings.js:128
msgid "Success"
msgstr ""
#: js/settings.js:133
msgid "Error"
msgstr ""
#: js/settings.js:837
msgid "Configuration OK"
msgstr ""
#: js/settings.js:846
msgid "Configuration incorrect"
msgstr ""
#: js/settings.js:855
msgid "Configuration incomplete"
msgstr ""
#: js/settings.js:872 js/settings.js:881
msgid "Select groups"
msgstr ""
#: js/settings.js:875 js/settings.js:884
msgid "Select object classes"
msgstr ""
#: js/settings.js:878
msgid "Select attributes"
msgstr ""
#: js/settings.js:905
msgid "Connection test succeeded"
msgstr ""
#: js/settings.js:912
msgid "Connection test failed"
msgstr ""
#: js/settings.js:921
msgid "Do you really want to delete the current Server Configuration?"
msgstr ""
#: js/settings.js:922
msgid "Confirm Deletion"
msgstr ""
#: lib/wizard.php:79 lib/wizard.php:93
#, php-format
msgid "%s group found"
msgid_plural "%s groups found"
msgstr[0] ""
msgstr[1] ""
#: lib/wizard.php:122
#, php-format
msgid "%s user found"
msgid_plural "%s users found"
msgstr[0] ""
msgstr[1] ""
#: lib/wizard.php:778 lib/wizard.php:790
msgid "Invalid Host"
msgstr ""
#: lib/wizard.php:951
msgid "Could not find the desired feature"
msgstr ""
#: templates/part.settingcontrols.php:2
msgid "Save"
msgstr ""
#: templates/part.settingcontrols.php:4
msgid "Test Configuration"
msgstr ""
#: templates/part.settingcontrols.php:10 templates/part.wizardcontrols.php:14
msgid "Help"
msgstr ""
#: templates/part.wizard-groupfilter.php:4
#, php-format
msgid "Limit the access to %s to groups meeting this criteria:"
msgstr ""
#: templates/part.wizard-groupfilter.php:8
#: templates/part.wizard-userfilter.php:8
msgid "only those object classes:"
msgstr ""
#: templates/part.wizard-groupfilter.php:17
#: templates/part.wizard-userfilter.php:17
msgid "only from those groups:"
msgstr ""
#: templates/part.wizard-groupfilter.php:25
#: templates/part.wizard-loginfilter.php:32
#: templates/part.wizard-userfilter.php:25
msgid "Edit raw filter instead"
msgstr ""
#: templates/part.wizard-groupfilter.php:30
#: templates/part.wizard-loginfilter.php:37
#: templates/part.wizard-userfilter.php:30
msgid "Raw LDAP filter"
msgstr ""
#: templates/part.wizard-groupfilter.php:31
#, php-format
msgid ""
"The filter specifies which LDAP groups shall have access to the %s instance."
msgstr ""
#: templates/part.wizard-groupfilter.php:38
msgid "groups found"
msgstr ""
#: templates/part.wizard-loginfilter.php:4
msgid "What attribute shall be used as login name:"
msgstr ""
#: templates/part.wizard-loginfilter.php:8
msgid "LDAP Username:"
msgstr ""
#: templates/part.wizard-loginfilter.php:16
msgid "LDAP Email Address:"
msgstr ""
#: templates/part.wizard-loginfilter.php:24
msgid "Other Attributes:"
msgstr ""
#: templates/part.wizard-loginfilter.php:38
#, php-format
msgid ""
"Defines the filter to apply, when login is attempted. %%uid replaces the "
"username in the login action. Example: \"uid=%%uid\""
msgstr ""
#: templates/part.wizard-server.php:18
msgid "Add Server Configuration"
msgstr ""
#: templates/part.wizard-server.php:30
msgid "Host"
msgstr ""
#: templates/part.wizard-server.php:31
msgid ""
"You can omit the protocol, except you require SSL. Then start with ldaps://"
msgstr ""
#: templates/part.wizard-server.php:36
msgid "Port"
msgstr ""
#: templates/part.wizard-server.php:44
msgid "User DN"
msgstr ""
#: templates/part.wizard-server.php:45
msgid ""
"The DN of the client user with which the bind shall be done, e.g. "
"uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password "
"empty."
msgstr ""
#: templates/part.wizard-server.php:52
msgid "Password"
msgstr ""
#: templates/part.wizard-server.php:53
msgid "For anonymous access, leave DN and Password empty."
msgstr ""
#: templates/part.wizard-server.php:60
msgid "One Base DN per line"
msgstr ""
#: templates/part.wizard-server.php:61
msgid "You can specify Base DN for users and groups in the Advanced tab"
msgstr ""
#: templates/part.wizard-userfilter.php:4
#, php-format
msgid "Limit the access to %s to users meeting this criteria:"
msgstr ""
#: templates/part.wizard-userfilter.php:31
#, php-format
msgid ""
"The filter specifies which LDAP users shall have access to the %s instance."
msgstr ""
#: templates/part.wizard-userfilter.php:38
msgid "users found"
msgstr ""
#: templates/part.wizardcontrols.php:5
msgid "Back"
msgstr ""
#: templates/part.wizardcontrols.php:8
msgid "Continue"
msgstr ""
#: templates/settings.php:11
msgid ""
"<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."
msgstr ""
#: templates/settings.php:14
msgid ""
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not "
"work. Please ask your system administrator to install it."
msgstr ""
#: templates/settings.php:20
msgid "Connection Settings"
msgstr ""
#: templates/settings.php:22
msgid "Configuration Active"
msgstr ""
#: templates/settings.php:22
msgid "When unchecked, this configuration will be skipped."
msgstr ""
#: templates/settings.php:23
msgid "Backup (Replica) Host"
msgstr ""
#: templates/settings.php:23
msgid ""
"Give an optional backup host. It must be a replica of the main LDAP/AD "
"server."
msgstr ""
#: templates/settings.php:24
msgid "Backup (Replica) Port"
msgstr ""
#: templates/settings.php:25
msgid "Disable Main Server"
msgstr ""
#: templates/settings.php:25
msgid "Only connect to the replica server."
msgstr ""
#: templates/settings.php:26
msgid "Case insensitve LDAP server (Windows)"
msgstr ""
#: templates/settings.php:27
msgid "Turn off SSL certificate validation."
msgstr ""
#: templates/settings.php:27
#, php-format
msgid ""
"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."
msgstr ""
#: templates/settings.php:28
msgid "Cache Time-To-Live"
msgstr ""
#: templates/settings.php:28
msgid "in seconds. A change empties the cache."
msgstr ""
#: templates/settings.php:30
msgid "Directory Settings"
msgstr ""
#: templates/settings.php:32
msgid "User Display Name Field"
msgstr ""
#: templates/settings.php:32
msgid "The LDAP attribute to use to generate the user's display name."
msgstr ""
#: templates/settings.php:33
msgid "Base User Tree"
msgstr ""
#: templates/settings.php:33
msgid "One User Base DN per line"
msgstr ""
#: templates/settings.php:34
msgid "User Search Attributes"
msgstr ""
#: templates/settings.php:34 templates/settings.php:37
msgid "Optional; one attribute per line"
msgstr ""
#: templates/settings.php:35
msgid "Group Display Name Field"
msgstr ""
#: templates/settings.php:35
msgid "The LDAP attribute to use to generate the groups's display name."
msgstr ""
#: templates/settings.php:36
msgid "Base Group Tree"
msgstr ""
#: templates/settings.php:36
msgid "One Group Base DN per line"
msgstr ""
#: templates/settings.php:37
msgid "Group Search Attributes"
msgstr ""
#: templates/settings.php:38
msgid "Group-Member association"
msgstr ""
#: templates/settings.php:40
msgid "Special Attributes"
msgstr ""
#: templates/settings.php:42
msgid "Quota Field"
msgstr ""
#: templates/settings.php:43
msgid "Quota Default"
msgstr ""
#: templates/settings.php:43
msgid "in bytes"
msgstr ""
#: templates/settings.php:44
msgid "Email Field"
msgstr ""
#: templates/settings.php:45
msgid "User Home Folder Naming Rule"
msgstr ""
#: templates/settings.php:45
msgid ""
"Leave empty for user name (default). Otherwise, specify an LDAP/AD "
"attribute."
msgstr ""
#: templates/settings.php:51
msgid "Internal Username"
msgstr ""
#: templates/settings.php:52
msgid ""
"By default the internal username will be created from the UUID attribute. It"
" makes sure that the username is unique and characters do not need to be "
"converted. The internal username has the restriction that only these "
"characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced "
"with their ASCII correspondence or simply omitted. On collisions a number "
"will be added/increased. The internal username is used to identify a user "
"internally. It is also the default name for the user home folder. It is also"
" a part of remote URLs, for instance for all *DAV services. With this "
"setting, the default behavior can be overridden. To achieve a similar "
"behavior as before ownCloud 5 enter the user display name attribute in the "
"following field. Leave it empty for default behavior. Changes will have "
"effect only on newly mapped (added) LDAP users."
msgstr ""
#: templates/settings.php:53
msgid "Internal Username Attribute:"
msgstr ""
#: templates/settings.php:54
msgid "Override UUID detection"
msgstr ""
#: templates/settings.php:55
msgid ""
"By default, the UUID attribute is automatically detected. The UUID attribute"
" is used to doubtlessly identify LDAP users and groups. Also, the internal "
"username will be created based on the UUID, if not specified otherwise "
"above. You can override the setting and pass an attribute of your choice. "
"You must make sure that the attribute of your choice can be fetched for both"
" users and groups and it is unique. Leave it empty for default behavior. "
"Changes will have effect only on newly mapped (added) LDAP users and groups."
msgstr ""
#: templates/settings.php:56
msgid "UUID Attribute for Users:"
msgstr ""
#: templates/settings.php:57
msgid "UUID Attribute for Groups:"
msgstr ""
#: templates/settings.php:58
msgid "Username-LDAP User Mapping"
msgstr ""
#: templates/settings.php:59
msgid ""
"Usernames are used to store and assign (meta) data. In order to precisely "
"identify and recognize users, each LDAP user will have a internal username. "
"This requires a mapping from username to LDAP user. The created username is "
"mapped to the UUID of the LDAP user. Additionally the DN is cached as well "
"to reduce LDAP interaction, but it is not used for identification. If the DN"
" changes, the changes will be found. The internal username is used all over."
" Clearing the mappings will have leftovers everywhere. Clearing the mappings"
" is not configuration sensitive, it affects all LDAP configurations! Never "
"clear the mappings in a production environment, only in a testing or "
"experimental stage."
msgstr ""
#: templates/settings.php:60
msgid "Clear Username-LDAP User Mapping"
msgstr ""
#: templates/settings.php:60
msgid "Clear Groupname-LDAP Group Mapping"
msgstr ""

View File

@ -0,0 +1,33 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-01-07 01:55-0500\n"
"PO-Revision-Date: 2014-01-06 23:45+0000\n"
"Last-Translator: I Robot\n"
"Language-Team: Urdu (http://www.transifex.com/projects/p/owncloud/language/ur/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: templates/settings.php:3
msgid "WebDAV Authentication"
msgstr ""
#: templates/settings.php:4
msgid "Address: "
msgstr ""
#: templates/settings.php:7
msgid ""
"The user credentials will be sent to this address. This plugin checks the "
"response and will interpret the HTTP statuscodes 401 and 403 as invalid "
"credentials, and all other responses as valid credentials."
msgstr ""

View File

@ -410,8 +410,6 @@ class OC {
self::$loader->registerPrefix('Doctrine\\DBAL', 'doctrine/dbal/lib');
self::$loader->registerPrefix('Symfony\\Component\\Routing', 'symfony/routing');
self::$loader->registerPrefix('Symfony\\Component\\Console', 'symfony/console');
self::$loader->registerPrefix('Sabre\\VObject', '3rdparty');
self::$loader->registerPrefix('Sabre_', '3rdparty');
self::$loader->registerPrefix('Patchwork', '3rdparty');
spl_autoload_register(array(self::$loader, 'load'));
@ -479,6 +477,12 @@ class OC {
}
OC_Util::isSetLocaleWorking();
// setup 3rdparty autoloader
$vendorAutoLoad = OC::$THIRDPARTYROOT . '/3rdparty/autoload.php';
if (file_exists($vendorAutoLoad)) {
require_once $vendorAutoLoad;
}
// set debug mode if an xdebug session is active
if (!defined('DEBUG') || !DEBUG) {
if (isset($_COOKIE['XDEBUG_SESSION'])) {

8
lib/l10n/ur.php Normal file
View File

@ -0,0 +1,8 @@
<?php
$TRANSLATIONS = array(
"_%n minute ago_::_%n minutes ago_" => array("",""),
"_%n hour ago_::_%n hours ago_" => array("",""),
"_%n day go_::_%n days ago_" => array("",""),
"_%n month ago_::_%n months ago_" => array("","")
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -64,7 +64,7 @@ class OC_Connector_Sabre_File extends OC_Connector_Sabre_Node implements Sabre_D
}
// mark file as partial while uploading (ignored by the scanner)
$partpath = $this->path . '.part';
$partpath = $this->path . '.ocTransferId' . rand() . '.part';
// if file is located in /Shared we write the part file to the users
// root folder because we can't create new files in /shared

View File

@ -115,12 +115,7 @@ class OC_Files {
}
OC_Util::obEnd();
if ($zip or \OC\Files\Filesystem::isReadable($filename)) {
if ( preg_match( "/MSIE/", $_SERVER["HTTP_USER_AGENT"] ) ) {
header( 'Content-Disposition: attachment; filename="' . rawurlencode($name) . '"' );
} else {
header( 'Content-Disposition: attachment; filename*=UTF-8\'\'' . rawurlencode($name)
. '; filename="' . rawurlencode($name) . '"' );
}
OC_Response::setContentDispositionHeader($name, 'attachment');
header('Content-Transfer-Encoding: binary');
OC_Response::disableCaching();
if ($zip) {

View File

@ -16,7 +16,7 @@ class HomeCache extends Cache {
* @return int
*/
public function calculateFolderSize($path) {
if ($path !== '/' and $path !== '') {
if ($path !== '/' and $path !== '' and $path !== 'files') {
return parent::calculateFolderSize($path);
}

View File

@ -336,6 +336,19 @@ class View {
}
public function unlink($path) {
if ($path === '' || $path === '/') {
// do not allow deleting the root
return false;
}
$postFix = (substr($path, -1, 1) === '/') ? '/' : '';
$absolutePath = Filesystem::normalizePath($this->getAbsolutePath($path));
list($storage, $internalPath) = Filesystem::resolvePath($absolutePath . $postFix);
if (!$internalPath || $internalPath === '' || $internalPath === '/') {
// do not allow deleting the storage's root / the mount point
// because for some storages it might delete the whole contents
// but isn't supposed to work that way
return false;
}
return $this->basicOperation('unlink', $path, array('delete'));
}

View File

@ -858,11 +858,13 @@ class OC_Helper {
if (!function_exists($function_name)) {
return false;
}
$disabled = explode(', ', ini_get('disable_functions'));
$disabled = explode(',', ini_get('disable_functions'));
$disabled = array_map('trim', $disabled);
if (in_array($function_name, $disabled)) {
return false;
}
$disabled = explode(', ', ini_get('suhosin.executor.func.blacklist'));
$disabled = explode(',', ini_get('suhosin.executor.func.blacklist'));
$disabled = array_map('trim', $disabled);
if (in_array($function_name, $disabled)) {
return false;
}

View File

@ -66,6 +66,7 @@ return array(
'xlsx'=>'application/msexcel',
'php'=>'application/x-php',
'exe'=>'application/x-ms-dos-executable',
'msi'=>'application/x-msi',
'pl'=>'application/x-pearl',
'py'=>'application/x-python',
'blend'=>'application/x-blender',
@ -97,8 +98,6 @@ return array(
'ai' => 'application/illustrator',
'epub' => 'application/epub+zip',
'mobi' => 'application/x-mobipocket-ebook',
'exe' => 'application',
'msi' => 'application',
'md' => 'text/markdown',
'markdown' => 'text/markdown',
'mdown' => 'text/markdown',

View File

@ -18,7 +18,7 @@ function findBinaryPath($program) {
// movie preview is currently not supported on Windows
if (!\OC_Util::runningOnWindows()) {
$isExecEnabled = !in_array('exec', explode(', ', ini_get('disable_functions')));
$isExecEnabled = \OC_Helper::is_function_enabled('exec');
$ffmpegBinary = null;
$avconvBinary = null;

View File

@ -7,7 +7,7 @@
*/
//both, libreoffice backend and php fallback, need imagick
if (extension_loaded('imagick')) {
$isShellExecEnabled = !in_array('shell_exec', explode(', ', ini_get('disable_functions')));
$isShellExecEnabled = \OC_Helper::is_function_enabled('shell_exec');
// LibreOffice preview is currently not supported on Windows
if (!\OC_Util::runningOnWindows()) {

View File

@ -7,6 +7,11 @@
*/
class OC_Request {
const USER_AGENT_IE = '/MSIE/';
// Android Chrome user agent: https://developers.google.com/chrome/mobile/docs/user-agent
const USER_AGENT_ANDROID_MOBILE_CHROME = '#Android.*Chrome/[.0-9]*#';
/**
* @brief Check overwrite condition
* @param string $type
@ -210,4 +215,22 @@ class OC_Request {
return false;
}
}
/**
* Checks whether the user agent matches a given regex
* @param string|array $agent agent name or array of agent names
* @return boolean true if at least one of the given agent matches,
* false otherwise
*/
static public function isUserAgent($agent) {
if (!is_array($agent)) {
$agent = array($agent);
}
foreach ($agent as $regex) {
if (preg_match($regex, $_SERVER['HTTP_USER_AGENT'])) {
return true;
}
}
return false;
}
}

View File

@ -147,6 +147,20 @@ class OC_Response {
header('Last-Modified: '.$lastModified);
}
/**
* Sets the content disposition header (with possible workarounds)
* @param string $filename file name
* @param string $type disposition type, either 'attachment' or 'inline'
*/
static public function setContentDispositionHeader( $filename, $type = 'attachment' ) {
if (OC_Request::isUserAgent(array(OC_Request::USER_AGENT_IE, OC_Request::USER_AGENT_ANDROID_MOBILE_CHROME))) {
header( 'Content-Disposition: ' . rawurlencode($type) . '; filename="' . rawurlencode( $filename ) . '"' );
} else {
header( 'Content-Disposition: ' . rawurlencode($type) . '; filename*=UTF-8\'\'' . rawurlencode( $filename )
. '; filename="' . rawurlencode( $filename ) . '"' );
}
}
/**
* @brief Send file as response, checking and setting caching headers
* @param $filepath of file to send

View File

@ -128,7 +128,9 @@ class Server extends SimpleContainer implements IServerContainer {
return new \OC\L10N\Factory();
});
$this->registerService('URLGenerator', function($c) {
return new \OC\URLGenerator();
/** @var $c SimpleContainer */
$config = $c->query('AllConfig');
return new \OC\URLGenerator($config);
});
$this->registerService('AppHelper', function($c) {
return new \OC\AppHelper();
@ -261,7 +263,7 @@ class Server extends SimpleContainer implements IServerContainer {
}
/**
* @return \OC\Config
* @return \OCP\IConfig
*/
function getConfig() {
return $this->query('AllConfig');

View File

@ -159,6 +159,9 @@ class OC_Setup {
$content.= "</IfModule>\n";
$content.= "AddDefaultCharset utf-8\n";
$content.= "Options -Indexes\n";
$content.= "<IfModule pagespeed_module>\n";
$content.= "ModPagespeed Off\n";
$content.= "</IfModule>\n";
@file_put_contents(OC::$SERVERROOT.'/.htaccess', $content); //supress errors in case we don't have permissions for it
self::protectDataDirectory();

View File

@ -22,7 +22,7 @@ class CSSResourceLocator extends ResourceLocator {
$app = substr($style, 0, strpos($style, '/'));
$style = substr($style, strpos($style, '/')+1);
$app_path = \OC_App::getAppPath($app);
$app_url = $this->webroot . '/index.php/apps/' . $app;
$app_url = \OC_App::getAppWebPath($app);
if ($this->appendIfExist($app_path, $style.$this->form_factor.'.css', $app_url)
|| $this->appendIfExist($app_path, $style.'.css', $app_url)
) {

View File

@ -15,6 +15,19 @@ use RuntimeException;
* Class to generate URLs
*/
class URLGenerator implements IURLGenerator {
/**
* @var \OCP\IConfig
*/
private $config;
/**
* @param \OCP\IConfig $config
*/
public function __construct($config) {
$this->config = $config;
}
/**
* @brief Creates an url using a defined route
* @param $route
@ -41,12 +54,18 @@ class URLGenerator implements IURLGenerator {
* Returns a url to the given app and file.
*/
public function linkTo( $app, $file, $args = array() ) {
$frontControllerActive=($this->config->getSystemValue('front_controller_active', 'false') == 'true');
if( $app != '' ) {
$app_path = \OC_App::getAppPath($app);
// Check if the app is in the app folder
if ($app_path && file_exists($app_path . '/' . $file)) {
if (substr($file, -3) == 'php' || substr($file, -3) == 'css') {
$urlLinkTo = \OC::$WEBROOT . '/index.php/apps/' . $app;
if ($frontControllerActive) {
$urlLinkTo = \OC::$WEBROOT . '/apps/' . $app;
}
$urlLinkTo .= ($file != 'index.php') ? '/' . $file : '';
} else {
$urlLinkTo = \OC_App::getAppWebPath($app) . '/' . $file;
@ -58,7 +77,11 @@ class URLGenerator implements IURLGenerator {
if (file_exists(\OC::$SERVERROOT . '/core/' . $file)) {
$urlLinkTo = \OC::$WEBROOT . '/core/' . $file;
} else {
$urlLinkTo = \OC::$WEBROOT . '/' . $file;
if ($frontControllerActive && $file === 'index.php') {
$urlLinkTo = \OC::$WEBROOT;
} else {
$urlLinkTo = \OC::$WEBROOT . '/' . $file;
}
}
}

View File

@ -31,13 +31,15 @@ define('OC_USER_BACKEND_NOT_IMPLEMENTED', -501);
/**
* actions that user backends can define
*/
define('OC_USER_BACKEND_CREATE_USER', 0x0000001);
define('OC_USER_BACKEND_SET_PASSWORD', 0x0000010);
define('OC_USER_BACKEND_CHECK_PASSWORD', 0x0000100);
define('OC_USER_BACKEND_GET_HOME', 0x0001000);
define('OC_USER_BACKEND_GET_DISPLAYNAME', 0x0010000);
define('OC_USER_BACKEND_SET_DISPLAYNAME', 0x0100000);
define('OC_USER_BACKEND_PROVIDE_AVATAR', 0x1000000);
define('OC_USER_BACKEND_CREATE_USER', 0x00000001);
define('OC_USER_BACKEND_SET_PASSWORD', 0x00000010);
define('OC_USER_BACKEND_CHECK_PASSWORD', 0x00000100);
define('OC_USER_BACKEND_GET_HOME', 0x00001000);
define('OC_USER_BACKEND_GET_DISPLAYNAME', 0x00010000);
define('OC_USER_BACKEND_SET_DISPLAYNAME', 0x00100000);
define('OC_USER_BACKEND_PROVIDE_AVATAR', 0x01000000);
define('OC_USER_BACKEND_COUNT_USERS', 0x10000000);
//more actions cannot be defined without breaking 32bit platforms!
/**
* Abstract base class for user management. Provides methods for querying backend
@ -55,6 +57,7 @@ abstract class OC_User_Backend implements OC_User_Interface {
OC_USER_BACKEND_GET_DISPLAYNAME => 'getDisplayName',
OC_USER_BACKEND_SET_DISPLAYNAME => 'setDisplayName',
OC_USER_BACKEND_PROVIDE_AVATAR => 'canChangeAvatar',
OC_USER_BACKEND_COUNT_USERS => 'countUsers',
);
/**

View File

@ -253,4 +253,19 @@ class OC_User_Database extends OC_User_Backend {
return true;
}
/**
* counts the users in the database
*
* @return int | bool
*/
public function countUsers() {
$query = OC_DB::prepare('SELECT COUNT(*) FROM `*PREFIX*users`');
$result = $query->execute();
if (OC_DB::isError($result)) {
OC_Log::write('core', OC_DB::getErrorMessage($result), OC_Log::ERROR);
return false;
}
return $result->fetchOne();
}
}

View File

@ -123,4 +123,13 @@ class OC_User_Dummy extends OC_User_Backend {
public function hasUserListings() {
return true;
}
/**
* counts the users in the database
*
* @return int | bool
*/
public function countUsers() {
return 0;
}
}

View File

@ -270,4 +270,26 @@ class Manager extends PublicEmitter {
}
return false;
}
/**
* returns how many users per backend exist (if supported by backend)
*
* @return array with backend class as key and count number as value
*/
public function countUsers() {
$userCountStatistics = array();
foreach ($this->backends as $backend) {
if ($backend->implementsActions(\OC_USER_BACKEND_COUNT_USERS)) {
$backendusers = $backend->countUsers();
if($backendusers !== false) {
if(isset($userCountStatistics[get_class($backend)])) {
$userCountStatistics[get_class($backend)] += $backendusers;
} else {
$userCountStatistics[get_class($backend)] = $backendusers;
}
}
}
}
return $userCountStatistics;
}
}

View File

@ -54,6 +54,15 @@ class Response {
\OC_Response::setLastModifiedHeader( $lastModified );
}
/**
* Sets the content disposition header (with possible workarounds)
* @param string $filename file name
* @param string $type disposition type, either 'attachment' or 'inline'
*/
static public function setContentDispositionHeader( $filename, $type = 'attachment' ) {
\OC_Response::setContentDispositionHeader( $filename, $type );
}
/**
* Disable browser caching
* @see enableCaching with cache_time = 0

View File

@ -10,6 +10,7 @@ require_once __DIR__.'/../lib/base.php';
OC_App::enable('files_sharing');
OC_App::enable('files_encryption');
OC_App::enable('user_ldap');
OC_App::enable('calendar');
OC_App::enable('contacts');
OC_App::enable('apptemplateadvanced');

View File

@ -62,33 +62,39 @@ class HomeCache extends \PHPUnit_Framework_TestCase {
}
/**
* Tests that the root folder size calculation ignores the subdirs that have an unknown
* size. This makes sure that quota calculation still works as it's based on the root
* folder size.
* Tests that the root and files folder size calculation ignores the subdirs
* that have an unknown size. This makes sure that quota calculation still
* works as it's based on the "files" folder size.
*/
public function testRootFolderSizeIgnoresUnknownUpdate() {
$dir1 = 'knownsize';
$dir2 = 'unknownsize';
$dir1 = 'files/knownsize';
$dir2 = 'files/unknownsize';
$fileData = array();
$fileData[''] = array('size' => -1, 'mtime' => 20, 'mimetype' => 'httpd/unix-directory');
$fileData['files'] = array('size' => -1, 'mtime' => 20, 'mimetype' => 'httpd/unix-directory');
$fileData[$dir1] = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'httpd/unix-directory');
$fileData[$dir2] = array('size' => -1, 'mtime' => 25, 'mimetype' => 'httpd/unix-directory');
$this->cache->put('', $fileData['']);
$this->cache->put('files', $fileData['files']);
$this->cache->put($dir1, $fileData[$dir1]);
$this->cache->put($dir2, $fileData[$dir2]);
$this->assertTrue($this->cache->inCache('files'));
$this->assertTrue($this->cache->inCache($dir1));
$this->assertTrue($this->cache->inCache($dir2));
// check that root size ignored the unknown sizes
// check that files and root size ignored the unknown sizes
$this->assertEquals(1000, $this->cache->calculateFolderSize('files'));
$this->assertEquals(1000, $this->cache->calculateFolderSize(''));
// clean up
$this->cache->remove('');
$this->cache->remove('files');
$this->cache->remove($dir1);
$this->cache->remove($dir2);
$this->assertFalse($this->cache->inCache('files'));
$this->assertFalse($this->cache->inCache($dir1));
$this->assertFalse($this->cache->inCache($dir2));
}

View File

@ -306,6 +306,48 @@ class View extends \PHPUnit_Framework_TestCase {
$this->assertTrue($rootView->file_exists('anotherfolder/bar.txt'));
}
/**
* @medium
*/
function testUnlink() {
$storage1 = $this->getTestStorage();
$storage2 = $this->getTestStorage();
\OC\Files\Filesystem::mount($storage1, array(), '/');
\OC\Files\Filesystem::mount($storage2, array(), '/substorage');
$rootView = new \OC\Files\View('');
$rootView->file_put_contents('/foo.txt', 'asd');
$rootView->file_put_contents('/substorage/bar.txt', 'asd');
$this->assertTrue($rootView->file_exists('foo.txt'));
$this->assertTrue($rootView->file_exists('substorage/bar.txt'));
$this->assertTrue($rootView->unlink('foo.txt'));
$this->assertTrue($rootView->unlink('substorage/bar.txt'));
$this->assertFalse($rootView->file_exists('foo.txt'));
$this->assertFalse($rootView->file_exists('substorage/bar.txt'));
}
/**
* @medium
*/
function testUnlinkRootMustFail() {
$storage1 = $this->getTestStorage();
$storage2 = $this->getTestStorage();
\OC\Files\Filesystem::mount($storage1, array(), '/');
\OC\Files\Filesystem::mount($storage2, array(), '/substorage');
$rootView = new \OC\Files\View('');
$rootView->file_put_contents('/foo.txt', 'asd');
$rootView->file_put_contents('/substorage/bar.txt', 'asd');
$this->assertFalse($rootView->unlink(''));
$this->assertFalse($rootView->unlink('/'));
$this->assertFalse($rootView->unlink('substorage'));
$this->assertFalse($rootView->unlink('/substorage'));
}
/**
* @medium
*/

View File

@ -70,4 +70,54 @@ class Test_Request extends PHPUnit_Framework_TestCase {
array('/oc/core1', '/oc/core/index.php'),
);
}
/**
* @dataProvider userAgentProvider
*/
public function testUserAgent($testAgent, $userAgent, $matches) {
$_SERVER['HTTP_USER_AGENT'] = $testAgent;
$this->assertEquals($matches, OC_Request::isUserAgent($userAgent));
}
function userAgentProvider() {
return array(
array(
'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
OC_Request::USER_AGENT_IE,
true
),
array(
'Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Firefox/24.0',
OC_Request::USER_AGENT_IE,
false
),
array(
'Mozilla/5.0 (Linux; Android 4.4; Nexus 4 Build/KRT16S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36',
OC_Request::USER_AGENT_ANDROID_MOBILE_CHROME,
true
),
array(
'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
OC_Request::USER_AGENT_ANDROID_MOBILE_CHROME,
false
),
// test two values
array(
'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
array(
OC_Request::USER_AGENT_IE,
OC_Request::USER_AGENT_ANDROID_MOBILE_CHROME,
),
true
),
array(
'Mozilla/5.0 (Linux; Android 4.4; Nexus 4 Build/KRT16S) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36',
array(
OC_Request::USER_AGENT_IE,
OC_Request::USER_AGENT_ANDROID_MOBILE_CHROME,
),
true
),
);
}
}

View File

@ -346,4 +346,76 @@ class Manager extends \PHPUnit_Framework_TestCase {
$manager->createUser('foo', 'bar');
}
public function testCountUsersNoBackend() {
$manager = new \OC\User\Manager();
$result = $manager->countUsers();
$this->assertTrue(is_array($result));
$this->assertTrue(empty($result));
}
public function testCountUsersOneBackend() {
/**
* @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
*/
$backend = $this->getMock('\OC_User_Dummy');
$backend->expects($this->once())
->method('countUsers')
->will($this->returnValue(7));
$backend->expects($this->once())
->method('implementsActions')
->with(\OC_USER_BACKEND_COUNT_USERS)
->will($this->returnValue(true));
$manager = new \OC\User\Manager();
$manager->registerBackend($backend);
$result = $manager->countUsers();
$keys = array_keys($result);
$this->assertTrue(strpos($keys[0], 'Mock_OC_User_Dummy') !== false);
$users = array_shift($result);
$this->assertEquals(7, $users);
}
public function testCountUsersTwoBackends() {
/**
* @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
*/
$backend1 = $this->getMock('\OC_User_Dummy');
$backend1->expects($this->once())
->method('countUsers')
->will($this->returnValue(7));
$backend1->expects($this->once())
->method('implementsActions')
->with(\OC_USER_BACKEND_COUNT_USERS)
->will($this->returnValue(true));
$backend2 = $this->getMock('\OC_User_Dummy');
$backend2->expects($this->once())
->method('countUsers')
->will($this->returnValue(16));
$backend2->expects($this->once())
->method('implementsActions')
->with(\OC_USER_BACKEND_COUNT_USERS)
->will($this->returnValue(true));
$manager = new \OC\User\Manager();
$manager->registerBackend($backend1);
$manager->registerBackend($backend2);
$result = $manager->countUsers();
//because the backends have the same class name, only one value expected
$this->assertEquals(1, count($result));
$keys = array_keys($result);
$this->assertTrue(strpos($keys[0], 'Mock_OC_User_Dummy') !== false);
$users = array_shift($result);
//users from backends shall be summed up
$this->assertEquals(7+16, $users);
}
}