external storage: fix merge conflict, indentation

This commit is contained in:
Jan-Christoph Borchardt 2014-03-31 13:12:04 +02:00
commit 2be2a5d2c5
119 changed files with 3046 additions and 2126 deletions

5
.gitignore vendored
View File

@ -86,6 +86,11 @@ nbproject
# Node Modules # Node Modules
/build/node_modules/ /build/node_modules/
# nodejs
/build/lib/
/npm-debug.log
# Tests - auto-generated files # Tests - auto-generated files
/data-autotest /data-autotest
/tests/coverage* /tests/coverage*

2
.gitmodules vendored
View File

@ -1,3 +1,3 @@
[submodule "3rdparty"] [submodule "3rdparty"]
path = 3rdparty path = 3rdparty
url = git://github.com/owncloud/3rdparty.git url = https://github.com/owncloud/3rdparty.git

View File

@ -21,12 +21,6 @@
* *
*/ */
// only need filesystem apps
$RUNTIME_APPTYPES=array('filesystem');
// Init owncloud
// Check if we are a user // Check if we are a user
OCP\User::checkLoggedIn(); OCP\User::checkLoggedIn();
\OC::$session->close(); \OC::$session->close();

View File

@ -1,8 +1,5 @@
<?php <?php
// only need filesystem apps
$RUNTIME_APPTYPES = array('filesystem');
$dir = '/'; $dir = '/';
if (isset($_GET['dir'])) { if (isset($_GET['dir'])) {

View File

@ -1,11 +1,5 @@
<?php <?php
// only need filesystem apps
$RUNTIME_APPTYPES=array('filesystem');
// Init owncloud
OCP\JSON::checkLoggedIn(); OCP\JSON::checkLoggedIn();
\OC::$session->close(); \OC::$session->close();

View File

@ -1,8 +1,5 @@
<?php <?php
// only need filesystem apps
$RUNTIME_APPTYPES = array('filesystem');
OCP\JSON::checkLoggedIn(); OCP\JSON::checkLoggedIn();
\OC::$session->close(); \OC::$session->close();

View File

@ -22,12 +22,6 @@
* License along with this library. If not, see <http://www.gnu.org/licenses/>. * License along with this library. If not, see <http://www.gnu.org/licenses/>.
* *
*/ */
// load needed apps
$RUNTIME_APPTYPES = array('filesystem', 'authentication', 'logging');
OC_App::loadApps($RUNTIME_APPTYPES);
OC_Util::obEnd();
// Backends // Backends
$authBackend = new OC_Connector_Sabre_Auth(); $authBackend = new OC_Connector_Sabre_Auth();

View File

@ -58,7 +58,6 @@ class Scan extends Command {
protected function execute(InputInterface $input, OutputInterface $output) { protected function execute(InputInterface $input, OutputInterface $output) {
if ($input->getOption('all')) { if ($input->getOption('all')) {
\OC_App::loadApps('authentication');
$users = $this->userManager->search(''); $users = $this->userManager->search('');
} else { } else {
$users = $input->getArgument('user_id'); $users = $input->getArgument('user_id');

View File

@ -77,10 +77,10 @@
} }
/* make sure there's enough room for the file actions */ /* make sure there's enough room for the file actions */
#body-user #filestable { #body-user #filestable {
min-width: 750px; min-width: 688px; /* 768 (mobile break) - 80 (nav width) */
} }
#body-user #controls { #body-user #controls {
min-width: 600px; min-width: 688px; /* 768 (mobile break) - 80 (nav width) */
} }
#filestable tbody tr { background-color:#fff; height:40px; } #filestable tbody tr { background-color:#fff; height:40px; }

68
apps/files/css/mobile.css Normal file
View File

@ -0,0 +1,68 @@
@media only screen and (max-width: 768px) {
/* dont require a minimum width for files table */
#body-user #filestable {
min-width: initial !important;
}
/* do not show Deleted Files on mobile, not optimized yet and button too long */
#controls #trash {
display: none;
}
/* hide size and date columns */
table th#headerSize,
table td.filesize,
table th#headerDate,
table td.date {
display: none;
}
/* remove shift for multiselect bar to account for missing navigation */
table.multiselect thead {
padding-left: 0;
}
/* restrict length of displayed filename to prevent overflow */
table td.filename .nametext {
max-width: 75% !important;
}
/* always show actions on mobile, not only on hover */
#fileList a.action {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)" !important;
filter: alpha(opacity=20) !important;
opacity: .2 !important;
display: inline !important;
}
/* do not show Rename or Versions on mobile */
#fileList .action.action-rename,
#fileList .action.action-versions {
display: none !important;
}
/* some padding for better clickability */
#fileList a.action img {
padding: 0 6px 0 12px;
}
/* hide text of the actions on mobile */
#fileList a.action span {
display: none;
}
/* ellipsis on file names */
.nametext {
width: 60%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* proper notification area for multi line messages */
#notification-container {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
}
}

View File

@ -27,6 +27,7 @@ OCP\User::checkLoggedIn();
// Load the files we need // Load the files we need
OCP\Util::addStyle('files', 'files'); OCP\Util::addStyle('files', 'files');
OCP\Util::addStyle('files', 'upload'); OCP\Util::addStyle('files', 'upload');
OCP\Util::addStyle('files', 'mobile');
OCP\Util::addscript('files', 'file-upload'); OCP\Util::addscript('files', 'file-upload');
OCP\Util::addscript('files', 'jquery.iframe-transport'); OCP\Util::addscript('files', 'jquery.iframe-transport');
OCP\Util::addscript('files', 'jquery.fileupload'); OCP\Util::addscript('files', 'jquery.fileupload');

View File

@ -15,21 +15,33 @@ var FileActions = {
defaults: {}, defaults: {},
icons: {}, icons: {},
currentFile: null, currentFile: null,
register: function (mime, name, permissions, icon, action) { register: function (mime, name, permissions, icon, action, displayName) {
if (!FileActions.actions[mime]) { if (!FileActions.actions[mime]) {
FileActions.actions[mime] = {}; FileActions.actions[mime] = {};
} }
if (!FileActions.actions[mime][name]) { if (!FileActions.actions[mime][name]) {
FileActions.actions[mime][name] = {}; FileActions.actions[mime][name] = {};
} }
if (!displayName) {
displayName = t('files', name);
}
FileActions.actions[mime][name]['action'] = action; FileActions.actions[mime][name]['action'] = action;
FileActions.actions[mime][name]['permissions'] = permissions; FileActions.actions[mime][name]['permissions'] = permissions;
FileActions.actions[mime][name]['displayName'] = displayName;
FileActions.icons[name] = icon; FileActions.icons[name] = icon;
}, },
setDefault: function (mime, name) { setDefault: function (mime, name) {
FileActions.defaults[mime] = name; FileActions.defaults[mime] = name;
}, },
get: function (mime, type, permissions) { get: function (mime, type, permissions) {
var actions = this.getActions(mime, type, permissions);
var filteredActions = {};
$.each(actions, function (name, action) {
filteredActions[name] = action.action;
});
return filteredActions;
},
getActions: function (mime, type, permissions) {
var actions = {}; var actions = {};
if (FileActions.actions.all) { if (FileActions.actions.all) {
actions = $.extend(actions, FileActions.actions.all); actions = $.extend(actions, FileActions.actions.all);
@ -51,7 +63,7 @@ var FileActions = {
var filteredActions = {}; var filteredActions = {};
$.each(actions, function (name, action) { $.each(actions, function (name, action) {
if (action.permissions & permissions) { if (action.permissions & permissions) {
filteredActions[name] = action.action; filteredActions[name] = action;
} }
}); });
return filteredActions; return filteredActions;
@ -82,7 +94,7 @@ var FileActions = {
*/ */
display: function (parent, triggerEvent) { display: function (parent, triggerEvent) {
FileActions.currentFile = parent; FileActions.currentFile = parent;
var actions = FileActions.get(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions()); var actions = FileActions.getActions(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions());
var file = FileActions.getCurrentFile(); var file = FileActions.getCurrentFile();
var nameLinks; var nameLinks;
if (FileList.findFileEl(file).data('renaming')) { if (FileList.findFileEl(file).data('renaming')) {
@ -105,15 +117,16 @@ var FileActions = {
event.data.actionFunc(file); event.data.actionFunc(file);
}; };
var addAction = function (name, action) { var addAction = function (name, action, displayName) {
// NOTE: Temporary fix to prevent rename action in root of Shared directory // NOTE: Temporary fix to prevent rename action in root of Shared directory
if (name === 'Rename' && $('#dir').val() === '/Shared') { if (name === 'Rename' && $('#dir').val() === '/Shared') {
return true; return true;
} }
if ((name === 'Download' || action !== defaultAction) && name !== 'Delete') { if ((name === 'Download' || action !== defaultAction) && name !== 'Delete') {
var img = FileActions.icons[name], var img = FileActions.icons[name],
actionText = t('files', name), actionText = displayName,
actionContainer = 'a.name>span.fileactions'; actionContainer = 'a.name>span.fileactions';
if (name === 'Rename') { if (name === 'Rename') {
@ -125,7 +138,7 @@ var FileActions = {
if (img.call) { if (img.call) {
img = img(file); img = img(file);
} }
var html = '<a href="#" class="action" data-action="' + name + '">'; var html = '<a href="#" class="action action-' + name.toLowerCase() + '" data-action="' + name + '">';
if (img) { if (img) {
html += '<img class ="svg" src="' + img + '" />'; html += '<img class ="svg" src="' + img + '" />';
} }
@ -133,8 +146,7 @@ var FileActions = {
var element = $(html); var element = $(html);
element.data('action', name); element.data('action', name);
//alert(element); element.on('click', {a: null, elem: parent, actionFunc: actions[name].action}, actionHandler);
element.on('click', {a: null, elem: parent, actionFunc: actions[name]}, actionHandler);
parent.find(actionContainer).append(element); parent.find(actionContainer).append(element);
} }
@ -142,12 +154,15 @@ var FileActions = {
$.each(actions, function (name, action) { $.each(actions, function (name, action) {
if (name !== 'Share') { if (name !== 'Share') {
addAction(name, action); displayName = action.displayName;
ah = action.action;
addAction(name, ah, displayName);
} }
}); });
if(actions.Share && !($('#dir').val() === '/' && file === 'Shared')){ if(actions.Share && !($('#dir').val() === '/' && file === 'Shared')){
// t('files', 'Share') displayName = t('files', 'Share');
addAction('Share', actions.Share); addAction('Share', actions.Share, displayName);
} }
// remove the existing delete action // remove the existing delete action

View File

@ -71,7 +71,7 @@ window.FileList={
}); });
// filename td // filename td
td = $('<td></td>').attr({ td = $('<td></td>').attr({
"class": "filename", "class": "filename svg",
"style": 'background-image:url('+iconurl+'); background-size: 32px;' "style": 'background-image:url('+iconurl+'); background-size: 32px;'
}); });
var rand = Math.random().toString(16).slice(2); var rand = Math.random().toString(16).slice(2);

View File

@ -196,11 +196,14 @@ var Files = {
if (width !== Files.lastWidth) { if (width !== Files.lastWidth) {
if ((width < Files.lastWidth || firstRun) && width < Files.breadcrumbsWidth) { if ((width < Files.lastWidth || firstRun) && width < Files.breadcrumbsWidth) {
if (Files.hiddenBreadcrumbs === 0) { if (Files.hiddenBreadcrumbs === 0) {
Files.breadcrumbsWidth -= $(Files.breadcrumbs[1]).get(0).offsetWidth; bc = $(Files.breadcrumbs[1]).get(0);
$(Files.breadcrumbs[1]).find('a').hide(); if (typeof bc != 'undefined') {
$(Files.breadcrumbs[1]).append('<span>...</span>'); Files.breadcrumbsWidth -= bc.offsetWidth;
Files.breadcrumbsWidth += $(Files.breadcrumbs[1]).get(0).offsetWidth; $(Files.breadcrumbs[1]).find('a').hide();
Files.hiddenBreadcrumbs = 2; $(Files.breadcrumbs[1]).append('<span>...</span>');
Files.breadcrumbsWidth += bc.offsetWidth;
Files.hiddenBreadcrumbs = 2;
}
} }
var i = Files.hiddenBreadcrumbs; var i = Files.hiddenBreadcrumbs;
while (width < Files.breadcrumbsWidth && i > 1 && i < Files.breadcrumbs.length - 1) { while (width < Files.breadcrumbsWidth && i > 1 && i < Files.breadcrumbs.length - 1) {

View File

@ -3,7 +3,9 @@ $TRANSLATIONS = array(
"Could not move %s - File with this name already exists" => "Невозможно переместить %s - файл с таким именем уже существует", "Could not move %s - File with this name already exists" => "Невозможно переместить %s - файл с таким именем уже существует",
"Could not move %s" => "Невозможно переместить %s", "Could not move %s" => "Невозможно переместить %s",
"File name cannot be empty." => "Имя файла не может быть пустым.", "File name cannot be empty." => "Имя файла не может быть пустым.",
"\"%s\" is an invalid file name." => "\"%s\" это не правильное имя файла.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправильное имя: символы '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' недопустимы.", "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправильное имя: символы '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' недопустимы.",
"The target folder has been moved or deleted." => "Целевой каталог был перемещен или удален.",
"The name %s is already used in the folder %s. Please choose a different name." => "Имя %s уже используется для каталога %s. Пожалуйста, выберите другое имя.", "The name %s is already used in the folder %s. Please choose a different name." => "Имя %s уже используется для каталога %s. Пожалуйста, выберите другое имя.",
"Not a valid source" => "Неправильный источник", "Not a valid source" => "Неправильный источник",
"Server is not allowed to open URLs, please check the server configuration" => "Сервер не позволяет открывать URL-адреса, пожалуйста, проверьте настройки сервера", "Server is not allowed to open URLs, please check the server configuration" => "Сервер не позволяет открывать URL-адреса, пожалуйста, проверьте настройки сервера",
@ -27,6 +29,8 @@ $TRANSLATIONS = array(
"Invalid directory." => "Неверный каталог.", "Invalid directory." => "Неверный каталог.",
"Files" => "Файлы", "Files" => "Файлы",
"Unable to upload {filename} as it is a directory or has 0 bytes" => "Невозможно загрузить {filename}, так как это либо каталог, либо файл нулевого размера", "Unable to upload {filename} as it is a directory or has 0 bytes" => "Невозможно загрузить {filename}, так как это либо каталог, либо файл нулевого размера",
"Total file size {size1} exceeds upload limit {size2}" => "Полный размер файла {size1} превышает лимит по загрузке {size2}",
"Not enough free space, you are uploading {size1} but only {size2} is left" => "Не достаточно свободного места, Вы загружаете {size1} но осталось только {size2}",
"Upload cancelled." => "Загрузка отменена.", "Upload cancelled." => "Загрузка отменена.",
"Could not get result from server." => "Не удалось получить ответ от сервера.", "Could not get result from server." => "Не удалось получить ответ от сервера.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Идёт загрузка файла. Покинув страницу, вы прервёте загрузку.", "File upload is in progress. Leaving the page now will cancel the upload." => "Идёт загрузка файла. Покинув страницу, вы прервёте загрузку.",
@ -48,6 +52,7 @@ $TRANSLATIONS = array(
"_%n file_::_%n files_" => array("%n файл","%n файла","%n файлов"), "_%n file_::_%n files_" => array("%n файл","%n файла","%n файлов"),
"{dirs} and {files}" => "{dirs} и {files}", "{dirs} and {files}" => "{dirs} и {files}",
"_Uploading %n file_::_Uploading %n files_" => array("Закачка %n файла","Закачка %n файлов","Закачка %n файлов"), "_Uploading %n file_::_Uploading %n files_" => array("Закачка %n файла","Закачка %n файлов","Закачка %n файлов"),
"\"{name}\" is an invalid file name." => "\"{name}\" это не правильное имя файла.",
"Your storage is full, files can not be updated or synced anymore!" => "Ваше хранилище заполнено, произведите очистку перед загрузкой новых файлов.", "Your storage is full, files can not be updated or synced anymore!" => "Ваше хранилище заполнено, произведите очистку перед загрузкой новых файлов.",
"Your storage is almost full ({usedSpacePercent}%)" => "Ваше хранилище почти заполнено ({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" => "Ваше хранилище почти заполнено ({usedSpacePercent}%)",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Приложение для шифрования активно, но ваши ключи не инициализированы, пожалуйста, перелогиньтесь", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Приложение для шифрования активно, но ваши ключи не инициализированы, пожалуйста, перелогиньтесь",

View File

@ -5,15 +5,15 @@
<div id="new" class="button"> <div id="new" class="button">
<a><?php p($l->t('New'));?></a> <a><?php p($l->t('New'));?></a>
<ul> <ul>
<li class="icon-filetype-text" <li class="icon-filetype-text svg"
data-type="file" data-newname="<?php p($l->t('New text file')) ?>.txt"> data-type="file" data-newname="<?php p($l->t('New text file')) ?>.txt">
<p><?php p($l->t('Text file'));?></p> <p><?php p($l->t('Text file'));?></p>
</li> </li>
<li class="icon-filetype-folder" <li class="icon-filetype-folder svg"
data-type="folder" data-newname="<?php p($l->t('New folder')) ?>"> data-type="folder" data-newname="<?php p($l->t('New folder')) ?>">
<p><?php p($l->t('Folder'));?></p> <p><?php p($l->t('Folder'));?></p>
</li> </li>
<li class="icon-link" data-type="web"> <li class="icon-link svg" data-type="web">
<p><?php p($l->t('From link'));?></p> <p><?php p($l->t('From link'));?></p>
</li> </li>
</ul> </ul>

View File

@ -1,4 +1,4 @@
<div class="crumb <?php if(!count($_["breadcrumb"])) p('last');?>" data-dir=''> <div class="crumb svg <?php if(!count($_["breadcrumb"])) p('last');?>" data-dir=''>
<a href="<?php print_unescaped($_['baseURL']); ?>"> <a href="<?php print_unescaped($_['baseURL']); ?>">
<?php if(isset($_['rootBreadCrumb'])): <?php if(isset($_['rootBreadCrumb'])):
echo $_['rootBreadCrumb']; echo $_['rootBreadCrumb'];

View File

@ -16,6 +16,7 @@ $TRANSLATIONS = array(
"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." => "Пожалуйста, убедитесь, что версия PHP 5.3.3 или новее, а также, что OpenSSL и соответствующее расширение PHP включены и правильно настроены. На данный момент приложение шифрования отключено.", "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." => "Пожалуйста, убедитесь, что версия PHP 5.3.3 или новее, а также, что OpenSSL и соответствующее расширение PHP включены и правильно настроены. На данный момент приложение шифрования отключено.",
"Following users are not set up for encryption:" => "Для следующих пользователей шифрование не настроено:", "Following users are not set up for encryption:" => "Для следующих пользователей шифрование не настроено:",
"Initial encryption started... This can take some time. Please wait." => "Начато начальное шифрование... Это может занять какое-то время. Пожалуйста, подождите.", "Initial encryption started... This can take some time. Please wait." => "Начато начальное шифрование... Это может занять какое-то время. Пожалуйста, подождите.",
"Initial encryption running... Please try again later." => "Работает первоначальное шифрование... Пожалуйста, повторите попытку позже.",
"Go directly to your " => "Перейти прямо в", "Go directly to your " => "Перейти прямо в",
"personal settings" => "персональные настройки", "personal settings" => "персональные настройки",
"Encryption" => "Шифрование", "Encryption" => "Шифрование",

View File

@ -128,6 +128,8 @@ class Proxy extends \OC_FileProxy {
// re-enable proxy - our work is done // re-enable proxy - our work is done
\OC_FileProxy::$enabled = $proxyStatus; \OC_FileProxy::$enabled = $proxyStatus;
} else {
return false;
} }
} }
} }

View File

@ -181,16 +181,21 @@ $(document).ready(function() {
$.each(configurations, function(backend, parameters) { $.each(configurations, function(backend, parameters) {
if (backend == backendClass) { if (backend == backendClass) {
$.each(parameters['configuration'], function(parameter, placeholder) { $.each(parameters['configuration'], function(parameter, placeholder) {
if (placeholder.indexOf('*') != -1) { var is_optional = false;
td.append('<input type="password" data-parameter="'+parameter+'" placeholder="'+placeholder.substring(1)+'" />'); if (placeholder.indexOf('&') === 0) {
} else if (placeholder.indexOf('!') != -1) { is_optional = true;
placeholder = placeholder.substring(1);
}
if (placeholder.indexOf('*') === 0) {
var class_string = is_optional ? ' class="optional"' : '';
td.append('<input type="password"' + class_string + ' data-parameter="'+parameter+'" placeholder="'+placeholder.substring(1)+'" />');
} else if (placeholder.indexOf('!') === 0) {
td.append('<label><input type="checkbox" data-parameter="'+parameter+'" />'+placeholder.substring(1)+'</label>'); td.append('<label><input type="checkbox" data-parameter="'+parameter+'" />'+placeholder.substring(1)+'</label>');
} else if (placeholder.indexOf('&') != -1) { } else if (placeholder.indexOf('#') === 0) {
td.append('<input type="text" class="optional" data-parameter="'+parameter+'" placeholder="'+placeholder.substring(1)+'" />');
} else if (placeholder.indexOf('#') != -1) {
td.append('<input type="hidden" data-parameter="'+parameter+'" />'); td.append('<input type="hidden" data-parameter="'+parameter+'" />');
} else { } else {
td.append('<input type="text" data-parameter="'+parameter+'" placeholder="'+placeholder+'" />'); var class_string = is_optional ? ' class="optional"' : '';
td.append('<input type="text"' + class_string + ' data-parameter="'+parameter+'" placeholder="'+placeholder+'" />');
} }
}); });
if (parameters['custom'] && $('#externalStorage tbody tr.'+backendClass.replace(/\\/g, '\\\\')).length == 1) { if (parameters['custom'] && $('#externalStorage tbody tr.'+backendClass.replace(/\\/g, '\\\\')).length == 1) {

View File

@ -5,6 +5,7 @@ $TRANSLATIONS = array(
"Grant access" => "Предоставление доступа", "Grant access" => "Предоставление доступа",
"Please provide a valid Dropbox app key and secret." => "Пожалуйста, предоставьте действующий ключ Dropbox и пароль.", "Please provide a valid Dropbox app key and secret." => "Пожалуйста, предоставьте действующий ключ Dropbox и пароль.",
"Error configuring Google Drive storage" => "Ошибка при настройке хранилища Google Drive", "Error configuring Google Drive storage" => "Ошибка при настройке хранилища Google Drive",
"Saved" => "Сохранено",
"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Внимание:</b> \"smbclient\" не установлен. Подключение по CIFS/SMB невозможно. Пожалуйста, обратитесь к системному администратору, чтобы установить его.", "<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Внимание:</b> \"smbclient\" не установлен. Подключение по CIFS/SMB невозможно. Пожалуйста, обратитесь к системному администратору, чтобы установить его.",
"<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." => "<b>Внимание:</b> Поддержка FTP не включена в PHP. Подключение по FTP невозможно. Пожалуйста, обратитесь к системному администратору, чтобы включить.", "<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." => "<b>Внимание:</b> Поддержка FTP не включена в PHP. Подключение по FTP невозможно. Пожалуйста, обратитесь к системному администратору, чтобы включить.",
"<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." => "<b>Внимание:</b> Поддержка Curl в PHP не включена или не установлена. Подключение ownCloud / WebDAV или GoogleDrive невозможно. Попросите вашего системного администратора установить его.", "<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." => "<b>Внимание:</b> Поддержка Curl в PHP не включена или не установлена. Подключение ownCloud / WebDAV или GoogleDrive невозможно. Попросите вашего системного администратора установить его.",
@ -21,6 +22,7 @@ $TRANSLATIONS = array(
"Users" => "Пользователи", "Users" => "Пользователи",
"Delete" => "Удалить", "Delete" => "Удалить",
"Enable User External Storage" => "Включить пользовательские внешние носители", "Enable User External Storage" => "Включить пользовательские внешние носители",
"Allow users to mount the following external storage" => "Разрешить пользователям монтировать следующую внешнюю систему хранения данных",
"SSL root certificates" => "Корневые сертификаты SSL", "SSL root certificates" => "Корневые сертификаты SSL",
"Import Root Certificate" => "Импортировать корневые сертификаты" "Import Root Certificate" => "Импортировать корневые сертификаты"
); );

View File

@ -374,7 +374,7 @@ class Swift extends \OC\Files\Storage\Common {
'X-Object-Meta-Timestamp' => $mtime 'X-Object-Meta-Timestamp' => $mtime
) )
); );
return $object->Update($settings); return $object->UpdateMetadata($settings);
} else { } else {
$object = $this->container->DataObject(); $object = $this->container->DataObject();
if (is_null($mtime)) { if (is_null($mtime)) {

View File

@ -43,29 +43,32 @@
<?php if (isset($mount['options'])): ?> <?php if (isset($mount['options'])): ?>
<?php foreach ($mount['options'] as $parameter => $value): ?> <?php foreach ($mount['options'] as $parameter => $value): ?>
<?php if (isset($_['backends'][$mount['class']]['configuration'][$parameter])): ?> <?php if (isset($_['backends'][$mount['class']]['configuration'][$parameter])): ?>
<?php $placeholder = $_['backends'][$mount['class']]['configuration'][$parameter]; ?> <?php
<?php if (strpos($placeholder, '*') !== false): ?> $placeholder = $_['backends'][$mount['class']]['configuration'][$parameter];
$is_optional = FALSE;
if (strpos($placeholder, '&') === 0) {
$is_optional = TRUE;
$placeholder = substr($placeholder, 1);
}
?>
<?php if (strpos($placeholder, '*') === 0): ?>
<input type="password" <input type="password"
<?php if ($is_optional): ?> class="optional"<?php endif; ?>
data-parameter="<?php p($parameter); ?>" data-parameter="<?php p($parameter); ?>"
value="<?php p($value); ?>" value="<?php p($value); ?>"
placeholder="<?php p(substr($placeholder, 1)); ?>" /> placeholder="<?php p(substr($placeholder, 1)); ?>" />
<?php elseif (strpos($placeholder, '!') !== false): ?> <?php elseif (strpos($placeholder, '!') === 0): ?>
<label><input type="checkbox" <label><input type="checkbox"
data-parameter="<?php p($parameter); ?>" data-parameter="<?php p($parameter); ?>"
<?php if ($value == 'true'): ?> checked="checked"<?php endif; ?> <?php if ($value == 'true'): ?> checked="checked"<?php endif; ?>
/><?php p(substr($placeholder, 1)); ?></label> /><?php p(substr($placeholder, 1)); ?></label>
<?php elseif (strpos($placeholder, '&') !== false): ?> <?php elseif (strpos($placeholder, '#') === 0): ?>
<input type="text"
class="optional"
data-parameter="<?php p($parameter); ?>"
value="<?php p($value); ?>"
placeholder="<?php p(substr($placeholder, 1)); ?>" />
<?php elseif (strpos($placeholder, '#') !== false): ?>
<input type="hidden" <input type="hidden"
data-parameter="<?php p($parameter); ?>" data-parameter="<?php p($parameter); ?>"
value="<?php p($value); ?>" /> value="<?php p($value); ?>" />
<?php else: ?> <?php else: ?>
<input type="text" <input type="text"
<?php if ($is_optional): ?> class="optional"<?php endif; ?>
data-parameter="<?php p($parameter); ?>" data-parameter="<?php p($parameter); ?>"
value="<?php p($value); ?>" value="<?php p($value); ?>"
placeholder="<?php p($placeholder); ?>" /> placeholder="<?php p($placeholder); ?>" />

View File

@ -1,4 +1,4 @@
@media only screen and (max-width: 600px) { @media only screen and (max-width: 768px) {
/* make header scroll up for single shares, more view of content on small screens */ /* make header scroll up for single shares, more view of content on small screens */
#header.share-file { #header.share-file {
@ -45,5 +45,13 @@ table td.filename .nametext {
display: none; display: none;
} }
/* ellipsis on file names */
.nametext {
width: 60%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
} }

View File

@ -886,5 +886,5 @@ class Test_Files_Sharing_Api extends Test_Files_Sharing_Base {
class TestShareApi extends \OCA\Files\Share\Api { class TestShareApi extends \OCA\Files\Share\Api {
public function correctPathTest($path, $folder) { public function correctPathTest($path, $folder) {
return self::correctPath($path, $folder); return self::correctPath($path, $folder);
} }
} }

View File

@ -1,11 +1,5 @@
<?php <?php
// only need filesystem apps
$RUNTIME_APPTYPES=array('filesystem');
// Init owncloud
OCP\JSON::checkLoggedIn(); OCP\JSON::checkLoggedIn();
// Load the files // Load the files

View File

@ -25,6 +25,11 @@ $(document).ready(function() {
enableActions(); enableActions();
} }
Files.updateStorageStatistics = function() {
// no op because the trashbin doesn't have
// storage info like free space / used space
};
if (typeof FileActions !== 'undefined') { if (typeof FileActions !== 'undefined') {
FileActions.register('all', 'Restore', OC.PERMISSION_READ, OC.imagePath('core', 'actions/history'), function(filename) { FileActions.register('all', 'Restore', OC.PERMISSION_READ, OC.imagePath('core', 'actions/history'), function(filename) {
var tr = FileList.findFileEl(filename); var tr = FileList.findFileEl(filename);

View File

@ -11,7 +11,7 @@ $(document).ready(function(){
// Add versions button to 'files/index.php' // Add versions button to 'files/index.php'
FileActions.register( FileActions.register(
'file' 'file'
, t('files_versions', 'Versions') , 'Versions'
, OC.PERMISSION_UPDATE , OC.PERMISSION_UPDATE
, function() { , function() {
// Specify icon for hitory button // Specify icon for hitory button
@ -36,6 +36,7 @@ $(document).ready(function(){
createVersionsDropdown(filename, file); createVersionsDropdown(filename, file);
} }
} }
, t('files_versions', 'Versions')
); );
} }

View File

@ -85,6 +85,7 @@ $TRANSLATIONS = array(
"One Group Base DN per line" => "Eno osnovno ime skupine na vrstico", "One Group Base DN per line" => "Eno osnovno ime skupine na vrstico",
"Group Search Attributes" => "Skupinski atributi iskanja", "Group Search Attributes" => "Skupinski atributi iskanja",
"Group-Member association" => "Povezava član-skupina", "Group-Member association" => "Povezava član-skupina",
"Nested Groups" => "Gnezdene skupine",
"Special Attributes" => "Posebni atributi", "Special Attributes" => "Posebni atributi",
"Quota Field" => "Polje količinske omejitve", "Quota Field" => "Polje količinske omejitve",
"Quota Default" => "Privzeta količinska omejitev", "Quota Default" => "Privzeta količinska omejitev",

View File

@ -14,7 +14,9 @@
"karma": "*", "karma": "*",
"karma-jasmine": "*", "karma-jasmine": "*",
"karma-junit-reporter": "*", "karma-junit-reporter": "*",
"karma-coverage": "*" "karma-coverage": "*",
"karma-phantomjs-launcher": "*",
"phantomjs": "*"
}, },
"engine": "node >= 0.8" "engine": "node >= 0.8"
} }

View File

@ -276,6 +276,15 @@ $CONFIG = array(
/* all css and js files will be served by the web server statically in one js file and ons css file*/ /* all css and js files will be served by the web server statically in one js file and ons css file*/
'asset-pipeline.enabled' => false, 'asset-pipeline.enabled' => false,
/* where mount.json file should be stored, defaults to data/mount.json */ /* where mount.json file should be stored, defaults to data/mount.json */
'mount_file' => '', 'mount_file' => '',
/*
* Location of the cache folder, defaults to "data/$user/cache" where "$user" is the current user.
*
* When specified, the format will change to "$cache_path/$user" where "$cache_path" is the configured
* cache directory and "$user" is the user.
*
*/
'cache_path' => ''
); );

View File

@ -8,7 +8,6 @@
use Symfony\Component\Console\Application; use Symfony\Component\Console\Application;
$RUNTIME_NOAPPS = true;
require_once 'lib/base.php'; require_once 'lib/base.php';
// Don't do anything if ownCloud has not been installed yet // Don't do anything if ownCloud has not been installed yet
@ -22,6 +21,9 @@ if (!OC::$CLI) {
exit(0); exit(0);
} }
// load all apps to get all api routes properly setup
OC_App::loadApps();
$defaults = new OC_Defaults; $defaults = new OC_Defaults;
$application = new Application($defaults->getName(), \OC_Util::getVersionString()); $application = new Application($defaults->getName(), \OC_Util::getVersionString());
require_once 'core/register_command.php'; require_once 'core/register_command.php';

View File

@ -21,7 +21,6 @@
OC_JSON::checkLoggedIn(); OC_JSON::checkLoggedIn();
OCP\JSON::callCheck(); OCP\JSON::callCheck();
OC_App::loadApps();
$defaults = new \OCP\Defaults(); $defaults = new \OCP\Defaults();

View File

@ -1,6 +1,5 @@
<?php <?php
set_time_limit(0); set_time_limit(0);
$RUNTIME_NOAPPS = true;
require_once '../../lib/base.php'; require_once '../../lib/base.php';
if (OC::checkUpgrade(false)) { if (OC::checkUpgrade(false)) {

View File

@ -34,9 +34,6 @@ class Upgrade extends Command {
* @param OutputInterface $output output interface * @param OutputInterface $output output interface
*/ */
protected function execute(InputInterface $input, OutputInterface $output) { protected function execute(InputInterface $input, OutputInterface $output) {
global $RUNTIME_NOAPPS;
$RUNTIME_NOAPPS = true; //no apps, yet
require_once \OC::$SERVERROOT . '/lib/base.php'; require_once \OC::$SERVERROOT . '/lib/base.php';

View File

@ -46,7 +46,6 @@ class Report extends Command {
} }
private function countUsers() { private function countUsers() {
\OC_App::loadApps(array('authentication'));
$userManager = \OC::$server->getUserManager(); $userManager = \OC::$server->getUserManager();
return $userManager->countUsers(); return $userManager->countUsers();
} }
@ -56,4 +55,4 @@ class Report extends Command {
$userDirectories = $dataview->getDirectoryContent('/', 'httpd/unix-directory'); $userDirectories = $dataview->getDirectoryContent('/', 'httpd/unix-directory');
return count($userDirectories); return count($userDirectories);
} }
} }

View File

@ -43,7 +43,7 @@
background-color: #000; background-color: #000;
opacity: .20;filter:Alpha(Opacity=20); opacity: .20;filter:Alpha(Opacity=20);
z-index: 999; z-index: 999;
position: absolute; position: fixed;
top: 0; left: 0; top: 0; left: 0;
width: 100%; height: 100%; width: 100%; height: 100%;
} }

View File

@ -1,4 +1,12 @@
@media only screen and (max-width: 600px) { @media only screen and (max-width: 768px) {
/* show caret indicator next to logo to make clear it is tappable */
#owncloud.menutoggle {
background-image: url('../img/actions/caret.svg');
background-repeat: no-repeat;
background-position: right 26px;
padding-right: 16px !important;
}
/* compress search box on mobile, expand when focused */ /* compress search box on mobile, expand when focused */
.searchbox input[type="search"] { .searchbox input[type="search"] {
@ -18,5 +26,80 @@
display: none; display: none;
} }
/* toggle navigation */
#content-wrapper {
padding-left: 0;
}
#navigation {
top: 45px;
bottom: initial;
width: 255px;
max-height: 90%;
margin-top: 0;
top: 45px;
background-color: rgba(36, 40, 47, .97);
overflow-x: initial;
border-bottom-right-radius: 7px;
border-bottom: 1px #333 solid;
border-right: 1px #333 solid;
box-shadow: 0 0 7px rgba(29,45,68,.97);
display: none;
}
#navigation, #navigation * {
box-sizing:border-box; -moz-box-sizing:border-box;
}
#navigation li {
display: inline-block;
}
#navigation a {
width: 80px;
height: 80px;
display: inline-block;
text-align: center;
padding: 20px 0;
}
#navigation a span {
display: inline-block;
font-size: 13px;
padding-bottom: 0;
padding-left: 0;
width: 80px;
}
#navigation .icon {
margin: 0 auto;
padding: 0;
}
#navigation li:first-child .icon {
padding-top: 0;
}
/* Apps management as sticky footer */
#navigation .wrapper {
min-height: initial;
margin: 0;
}
#apps-management, #navigation .push {
height: initial;
}
/* shift to account for missing navigation */
#body-user #controls,
#body-settings #controls {
padding-left: 0;
}
/* dont require a minimum width for controls bar */
#controls {
min-width: initial !important;
}
/* position share dropdown */
#dropdown {
margin-right: 10% !important;
width: 80% !important;
}
} }

View File

@ -77,6 +77,7 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari
#header .logo { #header .logo {
background-image: url(../img/logo.svg); background-image: url(../img/logo.svg);
background-repeat: no-repeat;
width: 250px; width: 250px;
height: 118px; height: 118px;
margin: 0 auto; margin: 0 auto;
@ -84,6 +85,7 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari
#header .logo-wide { #header .logo-wide {
background-image: url(../img/logo-wide.svg); background-image: url(../img/logo-wide.svg);
background-repeat: no-repeat;
width: 147px; width: 147px;
height: 32px; height: 32px;
} }
@ -246,6 +248,7 @@ input[type="submit"].enabled {
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
box-sizing: border-box; box-sizing: border-box;
position: fixed; position: fixed;
top:45px;
right: 0; right: 0;
left: 0; left: 0;
height: 44px; height: 44px;

View File

@ -482,6 +482,53 @@ var OC={
}).show(); }).show();
}, 'html'); }, 'html');
} }
},
// for menu toggling
registerMenu: function($toggle, $menuEl) {
$menuEl.addClass('menu');
$toggle.addClass('menutoggle');
$toggle.on('click.menu', function(event) {
if ($menuEl.is(OC._currentMenu)) {
$menuEl.hide();
OC._currentMenu = null;
OC._currentMenuToggle = null;
return false;
}
// another menu was open?
else if (OC._currentMenu) {
// close it
OC._currentMenu.hide();
}
$menuEl.show();
OC._currentMenu = $menuEl;
OC._currentMenuToggle = $toggle;
return false
});
},
unregisterMenu: function($toggle, $menuEl) {
// close menu if opened
if ($menuEl.is(OC._currentMenu)) {
$menuEl.hide();
OC._currentMenu = null;
OC._currentMenuToggle = null;
}
$toggle.off('click.menu').removeClass('menutoggle');
$menuEl.removeClass('menu');
},
/**
* Wrapper for matchMedia
*
* This is makes it possible for unit tests to
* stub matchMedia (which doesn't work in PhantomJS)
*/
_matchMedia: function(media) {
if (window.matchMedia) {
return window.matchMedia(media);
}
return false;
} }
}; };
OC.search.customResults={}; OC.search.customResults={};
@ -712,11 +759,11 @@ SVGSupport.checkMimeType=function(){
if(value[0]==='"'){ if(value[0]==='"'){
value=value.substr(1,value.length-2); value=value.substr(1,value.length-2);
} }
headers[parts[0]]=value; headers[parts[0].toLowerCase()]=value;
} }
} }
}); });
if(headers["Content-Type"]!=='image/svg+xml'){ if(headers["content-type"]!=='image/svg+xml'){
replaceSVG(); replaceSVG();
SVGSupport.checkMimeType.correct=false; SVGSupport.checkMimeType.correct=false;
} }
@ -940,6 +987,67 @@ function initCore() {
$('a.action').tipsy({gravity:'s', fade:true, live:true}); $('a.action').tipsy({gravity:'s', fade:true, live:true});
$('td .modified').tipsy({gravity:'s', fade:true, live:true}); $('td .modified').tipsy({gravity:'s', fade:true, live:true});
$('input').tipsy({gravity:'w', fade:true}); $('input').tipsy({gravity:'w', fade:true});
// toggle for menus
$(document).on('mouseup.closemenus', function(event) {
var $el = $(event.target);
if ($el.closest('.menu').length || $el.closest('.menutoggle').length) {
// don't close when clicking on the menu directly or a menu toggle
return false;
}
if (OC._currentMenu) {
OC._currentMenu.hide();
}
OC._currentMenu = null;
OC._currentMenuToggle = null;
});
/**
* Set up the main menu toggle to react to media query changes.
* If the screen is small enough, the main menu becomes a toggle.
* If the screen is bigger, the main menu is not a toggle any more.
*/
function setupMainMenu() {
// toggle the navigation on mobile
if (!OC._matchMedia) {
return;
}
var mq = OC._matchMedia('(max-width: 768px)');
var lastMatch = mq.matches;
var $toggle = $('#header #owncloud');
var $navigation = $('#navigation');
function updateMainMenu() {
// mobile mode ?
if (lastMatch && !$toggle.hasClass('menutoggle')) {
// init the menu
OC.registerMenu($toggle, $navigation);
$toggle.data('oldhref', $toggle.attr('href'));
$toggle.attr('href', '#');
$navigation.hide();
}
else {
OC.unregisterMenu($toggle, $navigation);
$toggle.attr('href', $toggle.data('oldhref'));
$navigation.show();
}
}
updateMainMenu();
// TODO: debounce this
$(window).resize(function() {
if (lastMatch !== mq.matches) {
lastMatch = mq.matches;
updateMainMenu();
}
});
}
if (window.matchMedia) {
setupMainMenu();
}
} }
$(document).ready(initCore); $(document).ready(initCore);

View File

@ -48,7 +48,7 @@ OC.Share={
var action = $(file).find('.fileactions .action[data-action="Share"]'); var action = $(file).find('.fileactions .action[data-action="Share"]');
var img = action.find('img').attr('src', image); var img = action.find('img').attr('src', image);
action.addClass('permanent'); action.addClass('permanent');
action.html(' '+t('core', 'Shared')).prepend(img); action.html(' <span>'+t('core', 'Shared')+'</span>').prepend(img);
} else { } else {
var dir = $('#dir').val(); var dir = $('#dir').val();
if (dir.length > 1) { if (dir.length > 1) {
@ -63,7 +63,7 @@ OC.Share={
if (img.attr('src') != OC.imagePath('core', 'actions/public')) { if (img.attr('src') != OC.imagePath('core', 'actions/public')) {
img.attr('src', image); img.attr('src', image);
$(action).addClass('permanent'); $(action).addClass('permanent');
$(action).html(' '+t('core', 'Shared')).prepend(img); $(action).html(' <span>'+t('core', 'Shared')+'</span>').prepend(img);
} }
}); });
} }
@ -103,10 +103,10 @@ OC.Share={
var img = action.find('img').attr('src', image); var img = action.find('img').attr('src', image);
if (shares) { if (shares) {
action.addClass('permanent'); action.addClass('permanent');
action.html(' '+ escapeHTML(t('core', 'Shared'))).prepend(img); action.html(' <span>'+ escapeHTML(t('core', 'Shared'))+'</span>').prepend(img);
} else { } else {
action.removeClass('permanent'); action.removeClass('permanent');
action.html(' '+ escapeHTML(t('core', 'Share'))).prepend(img); action.html(' <span>'+ escapeHTML(t('core', 'Share'))+'</span>').prepend(img);
} }
} }
} }

View File

@ -279,5 +279,109 @@ describe('Core base tests', function() {
expect(OC.generateUrl('apps/files/download{file}', {file: '/Welcome.txt'})).toEqual(OC.webroot + '/index.php/apps/files/download/Welcome.txt'); expect(OC.generateUrl('apps/files/download{file}', {file: '/Welcome.txt'})).toEqual(OC.webroot + '/index.php/apps/files/download/Welcome.txt');
}); });
}); });
describe('Main menu mobile toggle', function() {
var oldMatchMedia;
var $toggle;
var $navigation;
beforeEach(function() {
oldMatchMedia = OC._matchMedia;
// a separate method was needed because window.matchMedia
// cannot be stubbed due to a bug in PhantomJS:
// https://github.com/ariya/phantomjs/issues/12069
OC._matchMedia = sinon.stub();
$('#testArea').append('<div id="header">' +
'<a id="owncloud" href="#"></a>' +
'</div>' +
'<div id="navigation"></div>');
$toggle = $('#owncloud');
$navigation = $('#navigation');
});
afterEach(function() {
OC._matchMedia = oldMatchMedia;
});
it('Sets up menu toggle in mobile mode', function() {
OC._matchMedia.returns({matches: true});
window.initCore();
expect($toggle.hasClass('menutoggle')).toEqual(true);
expect($navigation.hasClass('menu')).toEqual(true);
});
it('Does not set up menu toggle in desktop mode', function() {
OC._matchMedia.returns({matches: false});
window.initCore();
expect($toggle.hasClass('menutoggle')).toEqual(false);
expect($navigation.hasClass('menu')).toEqual(false);
});
it('Switches on menu toggle when mobile mode changes', function() {
var mq = {matches: false};
OC._matchMedia.returns(mq);
window.initCore();
expect($toggle.hasClass('menutoggle')).toEqual(false);
mq.matches = true;
$(window).trigger('resize');
expect($toggle.hasClass('menutoggle')).toEqual(true);
});
it('Switches off menu toggle when mobile mode changes', function() {
var mq = {matches: true};
OC._matchMedia.returns(mq);
window.initCore();
expect($toggle.hasClass('menutoggle')).toEqual(true);
mq.matches = false;
$(window).trigger('resize');
expect($toggle.hasClass('menutoggle')).toEqual(false);
});
it('Clicking menu toggle toggles navigation in mobile mode', function() {
OC._matchMedia.returns({matches: true});
window.initCore();
$navigation.hide(); // normally done through media query triggered CSS
expect($navigation.is(':visible')).toEqual(false);
$toggle.click();
expect($navigation.is(':visible')).toEqual(true);
$toggle.click();
expect($navigation.is(':visible')).toEqual(false);
});
it('Clicking menu toggle does not toggle navigation in desktop mode', function() {
OC._matchMedia.returns({matches: false});
window.initCore();
expect($navigation.is(':visible')).toEqual(true);
$toggle.click();
expect($navigation.is(':visible')).toEqual(true);
});
it('Switching to mobile mode hides navigation', function() {
var mq = {matches: false};
OC._matchMedia.returns(mq);
window.initCore();
expect($navigation.is(':visible')).toEqual(true);
mq.matches = true;
$(window).trigger('resize');
expect($navigation.is(':visible')).toEqual(false);
});
it('Switching to desktop mode shows navigation', function() {
var mq = {matches: true};
OC._matchMedia.returns(mq);
window.initCore();
expect($navigation.is(':visible')).toEqual(false);
mq.matches = false;
$(window).trigger('resize');
expect($navigation.is(':visible')).toEqual(true);
});
it('Switch to desktop with opened menu then back to mobile resets toggle', function() {
var mq = {matches: true};
OC._matchMedia.returns(mq);
window.initCore();
expect($navigation.is(':visible')).toEqual(false);
$toggle.click();
expect($navigation.is(':visible')).toEqual(true);
mq.matches = false;
$(window).trigger('resize');
expect($navigation.is(':visible')).toEqual(true);
mq.matches = true;
$(window).trigger('resize');
expect($navigation.is(':visible')).toEqual(false);
$toggle.click();
expect($navigation.is(':visible')).toEqual(true);
});
});
}); });

View File

@ -1,6 +1,6 @@
<?php <?php
$TRANSLATIONS = array( $TRANSLATIONS = array(
"Expiration date is in the past." => "La fecha de caducidad está en el pasado.", "Expiration date is in the past." => "Ha pasado la fecha de caducidad",
"Couldn't send mail to following users: %s " => "No se pudo enviar el mensaje a los siguientes usuarios: %s", "Couldn't send mail to following users: %s " => "No se pudo enviar el mensaje a los siguientes usuarios: %s",
"Turned on maintenance mode" => "Modo mantenimiento activado", "Turned on maintenance mode" => "Modo mantenimiento activado",
"Turned off maintenance mode" => "Modo mantenimiento desactivado", "Turned off maintenance mode" => "Modo mantenimiento desactivado",
@ -105,7 +105,7 @@ $TRANSLATIONS = array(
"Edit tags" => "Editar etiquetas", "Edit tags" => "Editar etiquetas",
"Error loading dialog template: {error}" => "Error cargando plantilla de diálogo: {error}", "Error loading dialog template: {error}" => "Error cargando plantilla de diálogo: {error}",
"No tags selected for deletion." => "No hay etiquetas seleccionadas para borrar.", "No tags selected for deletion." => "No hay etiquetas seleccionadas para borrar.",
"Please reload the page." => "Vuelva a cargar la página.", "Please reload the page." => "Recargue/Actualice la página",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "La actualización ha fracasado. Por favor, informe de este problema a la <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">Comunidad de ownCloud</a>.", "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "La actualización ha fracasado. Por favor, informe de este problema a la <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">Comunidad de ownCloud</a>.",
"The update was successful. Redirecting you to ownCloud now." => "La actualización se ha realizado con éxito. Redireccionando a ownCloud ahora.", "The update was successful. Redirecting you to ownCloud now." => "La actualización se ha realizado con éxito. Redireccionando a ownCloud ahora.",
"%s password reset" => "%s restablecer contraseña", "%s password reset" => "%s restablecer contraseña",
@ -179,6 +179,6 @@ $TRANSLATIONS = array(
"Thank you for your patience." => "Gracias por su paciencia.", "Thank you for your patience." => "Gracias por su paciencia.",
"Updating ownCloud to version %s, this may take a while." => "Actualizando ownCloud a la versión %s, esto puede demorar un tiempo.", "Updating ownCloud to version %s, this may take a while." => "Actualizando ownCloud a la versión %s, esto puede demorar un tiempo.",
"This ownCloud instance is currently being updated, which may take a while." => "Esta versión de owncloud se está actualizando, esto puede demorar un tiempo.", "This ownCloud instance is currently being updated, which may take a while." => "Esta versión de owncloud se está actualizando, esto puede demorar un tiempo.",
"Please reload this page after a short time to continue using ownCloud." => "Por favor , recargue esta instancia de onwcloud tras un corto periodo de tiempo y continue usándolo." "Please reload this page after a short time to continue using ownCloud." => "Por favor, recargue la página tras un corto periodo de tiempo para continuar usando ownCloud"
); );
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; $PLURAL_FORMS = "nplurals=2; plural=(n != 1);";

View File

@ -1,5 +1,6 @@
<?php <?php
$TRANSLATIONS = array( $TRANSLATIONS = array(
"Expiration date is in the past." => "Дата истечения срока действия в прошлом.",
"Couldn't send mail to following users: %s " => "Невозможно отправить письмо следующим пользователям: %s", "Couldn't send mail to following users: %s " => "Невозможно отправить письмо следующим пользователям: %s",
"Turned on maintenance mode" => "Режим отладки включён", "Turned on maintenance mode" => "Режим отладки включён",
"Turned off maintenance mode" => "Режим отладки отключён", "Turned off maintenance mode" => "Режим отладки отключён",
@ -56,6 +57,11 @@ $TRANSLATIONS = array(
"(all selected)" => "(выбраны все)", "(all selected)" => "(выбраны все)",
"({count} selected)" => "({count} выбрано)", "({count} selected)" => "({count} выбрано)",
"Error loading file exists template" => "Ошибка при загрузке шаблона существующего файла", "Error loading file exists template" => "Ошибка при загрузке шаблона существующего файла",
"Very weak password" => "Очень слабый пароль",
"Weak password" => "Слабый пароль",
"So-so password" => "Так себе пароль",
"Good password" => "Хороший пароль",
"Strong password" => "Устойчивый к взлому пароль",
"Shared" => "Общие", "Shared" => "Общие",
"Share" => "Открыть доступ", "Share" => "Открыть доступ",
"Error" => "Ошибка", "Error" => "Ошибка",
@ -103,6 +109,7 @@ $TRANSLATIONS = array(
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "При обновлении произошла ошибка. Пожалуйста сообщите об этом в <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud сообщество</a>.", "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "При обновлении произошла ошибка. Пожалуйста сообщите об этом в <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud сообщество</a>.",
"The update was successful. Redirecting you to ownCloud now." => "Обновление прошло успешно. Перенаправляемся в Ваш ownCloud...", "The update was successful. Redirecting you to ownCloud now." => "Обновление прошло успешно. Перенаправляемся в Ваш ownCloud...",
"%s password reset" => "%s сброс пароля", "%s password reset" => "%s сброс пароля",
"A problem has occurred whilst sending the email, please contact your administrator." => "Произошла ошибка при отправке сообщения электронной почты, пожалуйста, свяжитесь с Вашим администратором.",
"Use the following link to reset your password: {link}" => "Используйте следующую ссылку чтобы сбросить пароль: {link}", "Use the following link to reset your password: {link}" => "Используйте следующую ссылку чтобы сбросить пароль: {link}",
"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 ." => "Ссылка для сброса пароля отправлена вам ​​по электронной почте.<br>Если вы не получите письмо в пределах одной-двух минут, проверьте папку Спам. <br>Если письма там нет, обратитесь к своему администратору.", "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 ." => "Ссылка для сброса пароля отправлена вам ​​по электронной почте.<br>Если вы не получите письмо в пределах одной-двух минут, проверьте папку Спам. <br>Если письма там нет, обратитесь к своему администратору.",
"Request failed!<br>Did you make sure your email/username was right?" => "Запрос не удался. Вы уверены, что email или имя пользователя указаны верно?", "Request failed!<br>Did you make sure your email/username was right?" => "Запрос не удался. Вы уверены, что email или имя пользователя указаны верно?",
@ -115,6 +122,8 @@ $TRANSLATIONS = array(
"To login page" => "На страницу авторизации", "To login page" => "На страницу авторизации",
"New password" => "Новый пароль", "New password" => "Новый пароль",
"Reset password" => "Сбросить пароль", "Reset password" => "Сбросить пароль",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " => "Mac OS X не поддерживается и %s не будет работать правильно на этой платформе. Используйте ее на свой страх и риск!",
"For the best results, please consider using a GNU/Linux server instead." => "Для достижения наилучших результатов, пожалуйста, рассмотрите возможность использовать взамен GNU/Linux сервер.",
"Personal" => "Личное", "Personal" => "Личное",
"Users" => "Пользователи", "Users" => "Пользователи",
"Apps" => "Приложения", "Apps" => "Приложения",
@ -140,6 +149,7 @@ $TRANSLATIONS = array(
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Ваша папка с данными и файлы возможно доступны из интернета потому что файл .htaccess не работает.", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Ваша папка с данными и файлы возможно доступны из интернета потому что файл .htaccess не работает.",
"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." => "Для информации, как правильно настроить Ваш сервер, пожалуйста загляните в <a hrev=\"%s\"target=\"blank\">документацию</a>.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." => "Для информации, как правильно настроить Ваш сервер, пожалуйста загляните в <a hrev=\"%s\"target=\"blank\">документацию</a>.",
"Create an <strong>admin account</strong>" => "Создать <strong>учётную запись администратора</strong>", "Create an <strong>admin account</strong>" => "Создать <strong>учётную запись администратора</strong>",
"Storage & database" => "Система хранения данных & база данных",
"Data folder" => "Директория с данными", "Data folder" => "Директория с данными",
"Configure the database" => "Настройка базы данных", "Configure the database" => "Настройка базы данных",
"will be used" => "будет использовано", "will be used" => "будет использовано",
@ -162,6 +172,7 @@ $TRANSLATIONS = array(
"remember" => "запомнить", "remember" => "запомнить",
"Log in" => "Войти", "Log in" => "Войти",
"Alternative Logins" => "Альтернативные имена пользователя", "Alternative Logins" => "Альтернативные имена пользователя",
"Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" => "Здравствуйте,<br><br>просто даём вам знать, что %s открыл доступ к %s для вас.<br><a href=\"%s\">Посмотреть!</a><br><br>",
"This ownCloud instance is currently in single user mode." => "Эта установка ownCloud в настоящее время в однопользовательском режиме.", "This ownCloud instance is currently in single user mode." => "Эта установка ownCloud в настоящее время в однопользовательском режиме.",
"This means only administrators can use the instance." => "Это значит, что только администраторы могут использовать эту установку.", "This means only administrators can use the instance." => "Это значит, что только администраторы могут использовать эту установку.",
"Contact your system administrator if this message persists or appeared unexpectedly." => "Обратитесь к вашему системному администратору если это сообщение не исчезает или появляется неожиданно.", "Contact your system administrator if this message persists or appeared unexpectedly." => "Обратитесь к вашему системному администратору если это сообщение не исчезает или появляется неожиданно.",

View File

@ -122,6 +122,8 @@ $TRANSLATIONS = array(
"To login page" => "Na prijavno stran", "To login page" => "Na prijavno stran",
"New password" => "Novo geslo", "New password" => "Novo geslo",
"Reset password" => "Ponastavi geslo", "Reset password" => "Ponastavi geslo",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " => "Sistem Mac OS X ni podprt, zato %s ne bo deloval zanesljivo v tem okolju. Program uporabljate na lastno odgovornost! ",
"For the best results, please consider using a GNU/Linux server instead." => "Za najbolj še rezultate je priporočljivo uporabljati strežnik GNU/Linux.",
"Personal" => "Osebno", "Personal" => "Osebno",
"Users" => "Uporabniki", "Users" => "Uporabniki",
"Apps" => "Programi", "Apps" => "Programi",

View File

@ -111,7 +111,7 @@ $TRANSLATIONS = array(
"%s password reset" => "%s parola sıfırlama", "%s password reset" => "%s parola sıfırlama",
"A problem has occurred whilst sending the email, please contact your administrator." => "E-posta gönderilirken bir hata oluştu. Lütfen yönetinizle iletişime geçin.", "A problem has occurred whilst sending the email, please contact your administrator." => "E-posta gönderilirken bir hata oluştu. Lütfen yönetinizle iletişime geçin.",
"Use the following link to reset your password: {link}" => "Parolanızı sıfırlamak için bu bağlantıyı kullanın: {link}", "Use the following link to reset your password: {link}" => "Parolanızı sıfırlamak için bu bağlantıyı kullanın: {link}",
"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 ." => "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk dizinini kontrol ediniz.<br> Eğer orada da bulamazsanız sistem yöneticinize sorunuz.", "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 ." => "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk/gereksiz dizinini kontrol ediniz.<br> Eğer yine bulamazsanız sistem yöneticinize sorunuz.",
"Request failed!<br>Did you make sure your email/username was right?" => "İstek başarısız!<br>E-posta ve/veya kullanıcı adınızın doğru olduğundan emin misiniz?", "Request failed!<br>Did you make sure your email/username was right?" => "İstek başarısız!<br>E-posta ve/veya kullanıcı adınızın doğru olduğundan emin misiniz?",
"You will receive a link to reset your password via Email." => "Parolanızı sıfırlamak için bir bağlantıyı e-posta olarak alacaksınız.", "You will receive a link to reset your password via Email." => "Parolanızı sıfırlamak için bir bağlantıyı e-posta olarak alacaksınız.",
"Username" => "Kullanıcı Adı", "Username" => "Kullanıcı Adı",

View File

@ -20,7 +20,7 @@ class Controller {
$errors = array('errors' => $e); $errors = array('errors' => $e);
if(count($e) > 0) { if(count($e) > 0) {
$options = array_merge($post, $opts, $errors); $options = array_merge($opts, $post, $errors);
$this->display($options); $this->display($options);
} }
else { else {
@ -28,7 +28,8 @@ class Controller {
} }
} }
else { else {
$this->display($opts); $options = array_merge($opts, $post);
$this->display($options);
} }
} }
@ -41,6 +42,7 @@ class Controller {
'dbname' => '', 'dbname' => '',
'dbtablespace' => '', 'dbtablespace' => '',
'dbhost' => '', 'dbhost' => '',
'dbtype' => '',
); );
$parameters = array_merge($defaults, $post); $parameters = array_merge($defaults, $post);

View File

@ -36,7 +36,7 @@
<body id="body-login"> <body id="body-login">
<div class="wrapper"><!-- for sticky footer --> <div class="wrapper"><!-- for sticky footer -->
<header><div id="header"> <header><div id="header">
<div class='logo'></div> <div class="logo svg"></div>
<div id="logo-claim" style="display:none;"><?php p($theme->getLogoClaim()); ?></div> <div id="logo-claim" style="display:none;"><?php p($theme->getLogoClaim()); ?></div>
</div></header> </div></header>

View File

@ -15,7 +15,7 @@
</title> </title>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
<meta name="apple-itunes-app" content="app-id=543672169"> <meta name="apple-itunes-app" content="app-id=543672169">
<link rel="shortcut icon" href="<?php print_unescaped(image_path('', 'favicon.png')); ?>" /> <link rel="shortcut icon" href="<?php print_unescaped(image_path('', 'favicon.png')); ?>" />
<link rel="apple-touch-icon-precomposed" href="<?php print_unescaped(image_path('', 'favicon-touch.png')); ?>" /> <link rel="apple-touch-icon-precomposed" href="<?php print_unescaped(image_path('', 'favicon-touch.png')); ?>" />
@ -46,7 +46,7 @@
</div> </div>
<header><div id="header"> <header><div id="header">
<a href="<?php print_unescaped(link_to('', 'index.php')); ?>" title="" id="owncloud"> <a href="<?php print_unescaped(link_to('', 'index.php')); ?>" title="" id="owncloud">
<div class='logo-wide'></div> <div class="logo-wide svg"></div>
</a> </a>
<div id="logo-claim" style="display:none;"><?php p($theme->getLogoClaim()); ?></div> <div id="logo-claim" style="display:none;"><?php p($theme->getLogoClaim()); ?></div>
<div id="settings" class="svg"> <div id="settings" class="svg">

View File

@ -48,6 +48,9 @@ try {
require_once 'lib/base.php'; require_once 'lib/base.php';
// load all apps to get all api routes properly setup
OC_App::loadApps();
\OC::$session->close(); \OC::$session->close();
$logger = \OC_Log::$object; $logger = \OC_Log::$object;

View File

@ -21,8 +21,6 @@
* *
*/ */
$RUNTIME_NOAPPS = true; //no apps, yet
try { try {
require_once 'lib/base.php'; require_once 'lib/base.php';

View File

@ -14,9 +14,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 01:55-0400\n" "POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 05:55+0000\n" "PO-Revision-Date: 2014-03-27 21:10+0000\n"
"Last-Translator: I Robot\n" "Last-Translator: m23 <black23@gmail.com>\n"
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -436,18 +436,18 @@ msgstr "Cron"
#: templates/admin.php:167 #: templates/admin.php:167
#, php-format #, php-format
msgid "Last cron was executed at %s." msgid "Last cron was executed at %s."
msgstr "" msgstr "Poslední cron byl spuštěn v %s."
#: templates/admin.php:170 #: templates/admin.php:170
#, php-format #, php-format
msgid "" msgid ""
"Last cron was executed at %s. This is more than an hour ago, something seems" "Last cron was executed at %s. This is more than an hour ago, something seems"
" wrong." " wrong."
msgstr "" msgstr "Poslední cron byl spuštěn v %s. To se stalo před více než hodinu. Vypadá to, že není něco v pořádku."
#: templates/admin.php:174 #: templates/admin.php:174
msgid "Cron was not executed yet!" msgid "Cron was not executed yet!"
msgstr "" msgstr "Cron ještě nebyl spuštěn!"
#: templates/admin.php:184 #: templates/admin.php:184
msgid "Execute one task with each page loaded" msgid "Execute one task with each page loaded"

View File

@ -21,9 +21,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-23 01:55-0400\n" "POT-Creation-Date: 2014-03-29 01:55-0400\n"
"PO-Revision-Date: 2014-03-22 18:40+0000\n" "PO-Revision-Date: 2014-03-28 06:06+0000\n"
"Last-Translator: Art O. Pal <artopal@fastmail.fm>\n" "Last-Translator: victormce <victormce@gmail.com>\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -31,24 +31,24 @@ msgstr ""
"Language: es\n" "Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/share.php:88 #: ajax/share.php:87
msgid "Expiration date is in the past." msgid "Expiration date is in the past."
msgstr "La fecha de caducidad está en el pasado." msgstr "Ha pasado la fecha de caducidad"
#: ajax/share.php:120 ajax/share.php:162 #: ajax/share.php:119 ajax/share.php:161
#, php-format #, php-format
msgid "Couldn't send mail to following users: %s " msgid "Couldn't send mail to following users: %s "
msgstr "No se pudo enviar el mensaje a los siguientes usuarios: %s" msgstr "No se pudo enviar el mensaje a los siguientes usuarios: %s"
#: ajax/update.php:11 #: ajax/update.php:10
msgid "Turned on maintenance mode" msgid "Turned on maintenance mode"
msgstr "Modo mantenimiento activado" msgstr "Modo mantenimiento activado"
#: ajax/update.php:14 #: ajax/update.php:13
msgid "Turned off maintenance mode" msgid "Turned off maintenance mode"
msgstr "Modo mantenimiento desactivado" msgstr "Modo mantenimiento desactivado"
#: ajax/update.php:17 #: ajax/update.php:16
msgid "Updated database" msgid "Updated database"
msgstr "Base de datos actualizada" msgstr "Base de datos actualizada"
@ -152,59 +152,59 @@ msgstr "Diciembre"
msgid "Settings" msgid "Settings"
msgstr "Ajustes" msgstr "Ajustes"
#: js/js.js:496 #: js/js.js:543
msgid "Saving..." msgid "Saving..."
msgstr "Guardando..." msgstr "Guardando..."
#: js/js.js:995 #: js/js.js:1103
msgid "seconds ago" msgid "seconds ago"
msgstr "segundos antes" msgstr "segundos antes"
#: js/js.js:996 #: js/js.js:1104
msgid "%n minute ago" msgid "%n minute ago"
msgid_plural "%n minutes ago" msgid_plural "%n minutes ago"
msgstr[0] "Hace %n minuto" msgstr[0] "Hace %n minuto"
msgstr[1] "Hace %n minutos" msgstr[1] "Hace %n minutos"
#: js/js.js:997 #: js/js.js:1105
msgid "%n hour ago" msgid "%n hour ago"
msgid_plural "%n hours ago" msgid_plural "%n hours ago"
msgstr[0] "Hace %n hora" msgstr[0] "Hace %n hora"
msgstr[1] "Hace %n horas" msgstr[1] "Hace %n horas"
#: js/js.js:998 #: js/js.js:1106
msgid "today" msgid "today"
msgstr "hoy" msgstr "hoy"
#: js/js.js:999 #: js/js.js:1107
msgid "yesterday" msgid "yesterday"
msgstr "ayer" msgstr "ayer"
#: js/js.js:1000 #: js/js.js:1108
msgid "%n day ago" msgid "%n day ago"
msgid_plural "%n days ago" msgid_plural "%n days ago"
msgstr[0] "Hace %n día" msgstr[0] "Hace %n día"
msgstr[1] "Hace %n días" msgstr[1] "Hace %n días"
#: js/js.js:1001 #: js/js.js:1109
msgid "last month" msgid "last month"
msgstr "el mes pasado" msgstr "el mes pasado"
#: js/js.js:1002 #: js/js.js:1110
msgid "%n month ago" msgid "%n month ago"
msgid_plural "%n months ago" msgid_plural "%n months ago"
msgstr[0] "Hace %n mes" msgstr[0] "Hace %n mes"
msgstr[1] "Hace %n meses" msgstr[1] "Hace %n meses"
#: js/js.js:1003 #: js/js.js:1111
msgid "months ago" msgid "months ago"
msgstr "meses antes" msgstr "meses antes"
#: js/js.js:1004 #: js/js.js:1112
msgid "last year" msgid "last year"
msgstr "el año pasado" msgstr "el año pasado"
#: js/js.js:1005 #: js/js.js:1113
msgid "years ago" msgid "years ago"
msgstr "años antes" msgstr "años antes"
@ -467,7 +467,7 @@ msgstr "No hay etiquetas seleccionadas para borrar."
#: js/update.js:8 #: js/update.js:8
msgid "Please reload the page." msgid "Please reload the page."
msgstr "Vuelva a cargar la página." msgstr "Recargue/Actualice la página"
#: js/update.js:17 #: js/update.js:17
msgid "" msgid ""
@ -547,14 +547,14 @@ msgstr "Nueva contraseña"
msgid "Reset password" msgid "Reset password"
msgstr "Restablecer contraseña" msgstr "Restablecer contraseña"
#: setup/controller.php:138 #: setup/controller.php:140
#, php-format #, php-format
msgid "" msgid ""
"Mac OS X is not supported and %s will not work properly on this platform. " "Mac OS X is not supported and %s will not work properly on this platform. "
"Use it at your own risk! " "Use it at your own risk! "
msgstr "Mac OS X no está soportado y %s no funcionará bien en esta plataforma. ¡Úsela a su propio riesgo! " msgstr "Mac OS X no está soportado y %s no funcionará bien en esta plataforma. ¡Úsela a su propio riesgo! "
#: setup/controller.php:142 #: setup/controller.php:144
msgid "" msgid ""
"For the best results, please consider using a GNU/Linux server instead." "For the best results, please consider using a GNU/Linux server instead."
msgstr "Para óptimos resultados, considere utilizar un servidor GNU/Linux." msgstr "Para óptimos resultados, considere utilizar un servidor GNU/Linux."
@ -812,4 +812,4 @@ msgstr "Esta versión de owncloud se está actualizando, esto puede demorar un t
#: templates/update.user.php:4 #: templates/update.user.php:4
msgid "Please reload this page after a short time to continue using ownCloud." msgid "Please reload this page after a short time to continue using ownCloud."
msgstr "Por favor , recargue esta instancia de onwcloud tras un corto periodo de tiempo y continue usándolo." msgstr "Por favor, recargue la página tras un corto periodo de tiempo para continuar usando ownCloud"

View File

@ -11,9 +11,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-12 01:54-0400\n" "POT-Creation-Date: 2014-03-29 01:55-0400\n"
"PO-Revision-Date: 2014-03-11 15:20+0000\n" "PO-Revision-Date: 2014-03-28 06:16+0000\n"
"Last-Translator: Art O. Pal <artopal@fastmail.fm>\n" "Last-Translator: victormce <victormce@gmail.com>\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"

View File

@ -9,9 +9,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-15 02:13-0400\n" "POT-Creation-Date: 2014-03-29 01:55-0400\n"
"PO-Revision-Date: 2014-03-15 05:40+0000\n" "PO-Revision-Date: 2014-03-28 06:24+0000\n"
"Last-Translator: I Robot\n" "Last-Translator: victormce <victormce@gmail.com>\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -33,11 +33,11 @@ msgstr "No se puede restaurar %s"
msgid "Deleted files" msgid "Deleted files"
msgstr "Archivos eliminados" msgstr "Archivos eliminados"
#: js/trash.js:16 js/trash.js:103 js/trash.js:152 #: js/trash.js:16 js/trash.js:108 js/trash.js:157
msgid "Error" msgid "Error"
msgstr "Error" msgstr "Error"
#: lib/trashbin.php:853 lib/trashbin.php:855 #: lib/trashbin.php:859 lib/trashbin.php:861
msgid "restored" msgid "restored"
msgstr "recuperado" msgstr "recuperado"

View File

@ -9,9 +9,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 01:55-0400\n" "POT-Creation-Date: 2014-03-29 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 05:55+0000\n" "PO-Revision-Date: 2014-03-28 19:40+0000\n"
"Last-Translator: I Robot\n" "Last-Translator: mbouzada <mbouzada@gmail.com>\n"
"Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -66,7 +66,7 @@ msgid "Unable to load list from App Store"
msgstr "Non foi posíbel cargar a lista desde a App Store" msgstr "Non foi posíbel cargar a lista desde a App Store"
#: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17 #: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17
#: ajax/togglegroups.php:20 changepassword/controller.php:55 #: ajax/togglegroups.php:20 changepassword/controller.php:49
msgid "Authentication error" msgid "Authentication error"
msgstr "Produciuse un erro de autenticación" msgstr "Produciuse un erro de autenticación"
@ -128,32 +128,32 @@ msgstr "Non é posíbel eliminar o usuario do grupo %s"
msgid "Couldn't update app." msgid "Couldn't update app."
msgstr "Non foi posíbel actualizar o aplicativo." msgstr "Non foi posíbel actualizar o aplicativo."
#: changepassword/controller.php:20 #: changepassword/controller.php:17
msgid "Wrong password" msgid "Wrong password"
msgstr "Contrasinal incorrecto" msgstr "Contrasinal incorrecto"
#: changepassword/controller.php:42 #: changepassword/controller.php:36
msgid "No user supplied" msgid "No user supplied"
msgstr "Non subministrado polo usuario" msgstr "Non subministrado polo usuario"
#: changepassword/controller.php:74 #: changepassword/controller.php:68
msgid "" msgid ""
"Please provide an admin recovery password, otherwise all user data will be " "Please provide an admin recovery password, otherwise all user data will be "
"lost" "lost"
msgstr "Forneza un contrasinal de recuperación do administrador de recuperación, senón perderanse todos os datos do usuario" msgstr "Forneza un contrasinal de recuperación do administrador de recuperación, senón perderanse todos os datos do usuario"
#: changepassword/controller.php:79 #: changepassword/controller.php:73
msgid "" msgid ""
"Wrong admin recovery password. Please check the password and try again." "Wrong admin recovery password. Please check the password and try again."
msgstr "Contrasinal de recuperación do administrador incorrecto. Comprobe o contrasinal e tenteo de novo." msgstr "Contrasinal de recuperación do administrador incorrecto. Comprobe o contrasinal e tenteo de novo."
#: changepassword/controller.php:87 #: changepassword/controller.php:81
msgid "" msgid ""
"Back-end doesn't support password change, but the users encryption key was " "Back-end doesn't support password change, but the users encryption key was "
"successfully updated." "successfully updated."
msgstr "A infraestrutura non admite o cambio de contrasinal, mais a chave de cifrado dos usuarios foi actualizada correctamente." msgstr "A infraestrutura non admite o cambio de contrasinal, mais a chave de cifrado dos usuarios foi actualizada correctamente."
#: changepassword/controller.php:92 changepassword/controller.php:103 #: changepassword/controller.php:86 changepassword/controller.php:97
msgid "Unable to change password" msgid "Unable to change password"
msgstr "Non é posíbel cambiar o contrasinal" msgstr "Non é posíbel cambiar o contrasinal"
@ -286,7 +286,7 @@ msgstr "Debe fornecer un contrasinal"
msgid "Warning: Home directory for user \"{user}\" already exists" msgid "Warning: Home directory for user \"{user}\" already exists"
msgstr "Aviso: O directorio persoal para o usuario «{user}» xa existe" msgstr "Aviso: O directorio persoal para o usuario «{user}» xa existe"
#: personal.php:49 personal.php:50 #: personal.php:48 personal.php:49
msgid "__language_name__" msgid "__language_name__"
msgstr "Galego" msgstr "Galego"
@ -431,18 +431,18 @@ msgstr "Cron"
#: templates/admin.php:167 #: templates/admin.php:167
#, php-format #, php-format
msgid "Last cron was executed at %s." msgid "Last cron was executed at %s."
msgstr "" msgstr "O último «cron» executouse ás %s."
#: templates/admin.php:170 #: templates/admin.php:170
#, php-format #, php-format
msgid "" msgid ""
"Last cron was executed at %s. This is more than an hour ago, something seems" "Last cron was executed at %s. This is more than an hour ago, something seems"
" wrong." " wrong."
msgstr "" msgstr "O último «cron» executouse ás %s. Isto supón que pasou máis dunha hora. polo que semella que algo vai mal."
#: templates/admin.php:174 #: templates/admin.php:174
msgid "Cron was not executed yet!" msgid "Cron was not executed yet!"
msgstr "" msgstr "«Cron» aínda non foi executado!"
#: templates/admin.php:184 #: templates/admin.php:184
msgid "Execute one task with each page loaded" msgid "Execute one task with each page loaded"

View File

@ -9,9 +9,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 01:55-0400\n" "POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 05:55+0000\n" "PO-Revision-Date: 2014-03-27 19:31+0000\n"
"Last-Translator: I Robot\n" "Last-Translator: Flávio Veras <flaviove@gmail.com>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -431,18 +431,18 @@ msgstr "Cron"
#: templates/admin.php:167 #: templates/admin.php:167
#, php-format #, php-format
msgid "Last cron was executed at %s." msgid "Last cron was executed at %s."
msgstr "" msgstr "Último cron foi executado em %s."
#: templates/admin.php:170 #: templates/admin.php:170
#, php-format #, php-format
msgid "" msgid ""
"Last cron was executed at %s. This is more than an hour ago, something seems" "Last cron was executed at %s. This is more than an hour ago, something seems"
" wrong." " wrong."
msgstr "" msgstr "Última cron foi executado em %s. Isso é, mais do que uma hora atrás, algo parece errado."
#: templates/admin.php:174 #: templates/admin.php:174
msgid "Cron was not executed yet!" msgid "Cron was not executed yet!"
msgstr "" msgstr "Cron não foi executado ainda!"
#: templates/admin.php:184 #: templates/admin.php:184
msgid "Execute one task with each page loaded" msgid "Execute one task with each page loaded"

View File

@ -13,6 +13,7 @@
# stushev, 2013 # stushev, 2013
# eurekafag <rkfg@rkfg.me>, 2013 # eurekafag <rkfg@rkfg.me>, 2013
# sk.avenger <sk.avenger@adygnet.ru>, 2013 # sk.avenger <sk.avenger@adygnet.ru>, 2013
# Swab <swab@i.ua>, 2014
# Victor Bravo <>, 2013 # Victor Bravo <>, 2013
# vsapronov <vladimir.sapronov@gmail.com>, 2013 # vsapronov <vladimir.sapronov@gmail.com>, 2013
# not_your_conscience <hex.void@gmail.com>, 2013 # not_your_conscience <hex.void@gmail.com>, 2013
@ -23,9 +24,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-22 01:55-0400\n" "POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-22 05:55+0000\n" "PO-Revision-Date: 2014-03-27 14:31+0000\n"
"Last-Translator: I Robot\n" "Last-Translator: Swab <swab@i.ua>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -35,7 +36,7 @@ msgstr ""
#: ajax/share.php:88 #: ajax/share.php:88
msgid "Expiration date is in the past." msgid "Expiration date is in the past."
msgstr "" msgstr "Дата истечения срока действия в прошлом."
#: ajax/share.php:120 ajax/share.php:162 #: ajax/share.php:120 ajax/share.php:162
#, php-format #, php-format
@ -281,23 +282,23 @@ msgstr "Ошибка при загрузке шаблона существующ
#: js/setup.js:84 #: js/setup.js:84
msgid "Very weak password" msgid "Very weak password"
msgstr "" msgstr "Очень слабый пароль"
#: js/setup.js:85 #: js/setup.js:85
msgid "Weak password" msgid "Weak password"
msgstr "" msgstr "Слабый пароль"
#: js/setup.js:86 #: js/setup.js:86
msgid "So-so password" msgid "So-so password"
msgstr "" msgstr "Так себе пароль"
#: js/setup.js:87 #: js/setup.js:87
msgid "Good password" msgid "Good password"
msgstr "" msgstr "Хороший пароль"
#: js/setup.js:88 #: js/setup.js:88
msgid "Strong password" msgid "Strong password"
msgstr "" msgstr "Устойчивый к взлому пароль"
#: js/share.js:51 js/share.js:66 js/share.js:106 #: js/share.js:51 js/share.js:66 js/share.js:106
msgid "Shared" msgid "Shared"
@ -496,7 +497,7 @@ msgstr "%s сброс пароля"
msgid "" msgid ""
"A problem has occurred whilst sending the email, please contact your " "A problem has occurred whilst sending the email, please contact your "
"administrator." "administrator."
msgstr "" msgstr "Произошла ошибка при отправке сообщения электронной почты, пожалуйста, свяжитесь с Вашим администратором."
#: lostpassword/templates/email.php:2 #: lostpassword/templates/email.php:2
msgid "Use the following link to reset your password: {link}" msgid "Use the following link to reset your password: {link}"
@ -559,12 +560,12 @@ msgstr "Сбросить пароль"
msgid "" msgid ""
"Mac OS X is not supported and %s will not work properly on this platform. " "Mac OS X is not supported and %s will not work properly on this platform. "
"Use it at your own risk! " "Use it at your own risk! "
msgstr "" msgstr "Mac OS X не поддерживается и %s не будет работать правильно на этой платформе. Используйте ее на свой страх и риск!"
#: setup/controller.php:142 #: setup/controller.php:142
msgid "" msgid ""
"For the best results, please consider using a GNU/Linux server instead." "For the best results, please consider using a GNU/Linux server instead."
msgstr "" msgstr "Для достижения наилучших результатов, пожалуйста, рассмотрите возможность использовать взамен GNU/Linux сервер."
#: strings.php:5 #: strings.php:5
msgid "Personal" msgid "Personal"
@ -686,7 +687,7 @@ msgstr "Создать <strong>учётную запись администра
#: templates/installation.php:70 #: templates/installation.php:70
msgid "Storage & database" msgid "Storage & database"
msgstr "" msgstr "Система хранения данных & база данных"
#: templates/installation.php:77 #: templates/installation.php:77
msgid "Data folder" msgid "Data folder"
@ -787,7 +788,7 @@ msgstr "Альтернативные имена пользователя"
msgid "" msgid ""
"Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> " "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> "
"with you.<br><a href=\"%s\">View it!</a><br><br>" "with you.<br><a href=\"%s\">View it!</a><br><br>"
msgstr "" msgstr "Здравствуйте,<br><br>просто даём вам знать, что %s открыл доступ к %s для вас.<br><a href=\"%s\">Посмотреть!</a><br><br>"
#: templates/singleuser.user.php:3 #: templates/singleuser.user.php:3
msgid "This ownCloud instance is currently in single user mode." msgid "This ownCloud instance is currently in single user mode."

View File

@ -8,6 +8,7 @@
# jekader <jekader@gmail.com>, 2013 # jekader <jekader@gmail.com>, 2013
# mogarych <mogarych@mail.ru>, 2014 # mogarych <mogarych@mail.ru>, 2014
# eurekafag <rkfg@rkfg.me>, 2013 # eurekafag <rkfg@rkfg.me>, 2013
# Swab <swab@i.ua>, 2014
# Victor Bravo <>, 2013 # Victor Bravo <>, 2013
# vsapronov <vladimir.sapronov@gmail.com>, 2013 # vsapronov <vladimir.sapronov@gmail.com>, 2013
# not_your_conscience <hex.void@gmail.com>, 2013 # not_your_conscience <hex.void@gmail.com>, 2013
@ -18,9 +19,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n" "POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 06:01+0000\n" "PO-Revision-Date: 2014-03-27 14:22+0000\n"
"Last-Translator: I Robot\n" "Last-Translator: Swab <swab@i.ua>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -45,7 +46,7 @@ msgstr "Имя файла не может быть пустым."
#: ajax/newfile.php:63 #: ajax/newfile.php:63
#, php-format #, php-format
msgid "\"%s\" is an invalid file name." msgid "\"%s\" is an invalid file name."
msgstr "" msgstr "\"%s\" это не правильное имя файла."
#: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105 #: ajax/newfile.php:69 ajax/newfolder.php:28 js/files.js:105
msgid "" msgid ""
@ -56,7 +57,7 @@ msgstr "Неправильное имя: символы '\\', '/', '<', '>', ':'
#: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141 #: ajax/newfile.php:76 ajax/newfolder.php:35 ajax/upload.php:141
#: lib/app.php:65 #: lib/app.php:65
msgid "The target folder has been moved or deleted." msgid "The target folder has been moved or deleted."
msgstr "" msgstr "Целевой каталог был перемещен или удален."
#: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74 #: ajax/newfile.php:88 ajax/newfolder.php:47 lib/app.php:74
#, php-format #, php-format
@ -160,12 +161,12 @@ msgstr "Невозможно загрузить {filename}, так как это
#: js/file-upload.js:258 #: js/file-upload.js:258
msgid "Total file size {size1} exceeds upload limit {size2}" msgid "Total file size {size1} exceeds upload limit {size2}"
msgstr "" msgstr "Полный размер файла {size1} превышает лимит по загрузке {size2}"
#: js/file-upload.js:268 #: js/file-upload.js:268
msgid "" msgid ""
"Not enough free space, you are uploading {size1} but only {size2} is left" "Not enough free space, you are uploading {size1} but only {size2} is left"
msgstr "" msgstr "Не достаточно свободного места, Вы загружаете {size1} но осталось только {size2}"
#: js/file-upload.js:340 #: js/file-upload.js:340
msgid "Upload cancelled." msgid "Upload cancelled."
@ -263,7 +264,7 @@ msgstr[2] "Закачка %n файлов"
#: js/files.js:96 #: js/files.js:96
msgid "\"{name}\" is an invalid file name." msgid "\"{name}\" is an invalid file name."
msgstr "" msgstr "\"{name}\" это не правильное имя файла."
#: js/files.js:117 #: js/files.js:117
msgid "Your storage is full, files can not be updated or synced anymore!" msgid "Your storage is full, files can not be updated or synced anymore!"

View File

@ -8,15 +8,16 @@
# lord93 <lordakryl@gmail.com>, 2013 # lord93 <lordakryl@gmail.com>, 2013
# jekader <jekader@gmail.com>, 2013 # jekader <jekader@gmail.com>, 2013
# eurekafag <rkfg@rkfg.me>, 2013 # eurekafag <rkfg@rkfg.me>, 2013
# Swab <swab@i.ua>, 2014
# Victor Bravo <>, 2013 # Victor Bravo <>, 2013
# vsapronov <vladimir.sapronov@gmail.com>, 2013 # vsapronov <vladimir.sapronov@gmail.com>, 2013
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-11 01:54-0400\n" "POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-11 05:55+0000\n" "PO-Revision-Date: 2014-03-27 14:31+0000\n"
"Last-Translator: I Robot\n" "Last-Translator: Swab <swab@i.ua>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -108,7 +109,7 @@ msgstr "Начато начальное шифрование... Это може
#: js/detect-migration.js:25 #: js/detect-migration.js:25
msgid "Initial encryption running... Please try again later." msgid "Initial encryption running... Please try again later."
msgstr "" msgstr "Работает первоначальное шифрование... Пожалуйста, повторите попытку позже."
#: templates/invalid_private_key.php:8 #: templates/invalid_private_key.php:8
msgid "Go directly to your " msgid "Go directly to your "

View File

@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# #
# Translators: # Translators:
# Swab <swab@i.ua>, 2014
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-11 01:54-0400\n" "POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-11 05:55+0000\n" "PO-Revision-Date: 2014-03-27 14:41+0000\n"
"Last-Translator: I Robot\n" "Last-Translator: Swab <swab@i.ua>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -39,22 +40,22 @@ msgstr "Ошибка при настройке хранилища Google Drive"
#: js/settings.js:313 js/settings.js:320 #: js/settings.js:313 js/settings.js:320
msgid "Saved" msgid "Saved"
msgstr "" msgstr "Сохранено"
#: lib/config.php:512 #: lib/config.php:654
msgid "" msgid ""
"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares "
"is not possible. Please ask your system administrator to install it." "is not possible. Please ask your system administrator to install it."
msgstr "<b>Внимание:</b> \"smbclient\" не установлен. Подключение по CIFS/SMB невозможно. Пожалуйста, обратитесь к системному администратору, чтобы установить его." msgstr "<b>Внимание:</b> \"smbclient\" не установлен. Подключение по CIFS/SMB невозможно. Пожалуйста, обратитесь к системному администратору, чтобы установить его."
#: lib/config.php:516 #: lib/config.php:658
msgid "" msgid ""
"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting" "<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 " " of FTP shares is not possible. Please ask your system administrator to "
"install it." "install it."
msgstr "<b>Внимание:</b> Поддержка FTP не включена в PHP. Подключение по FTP невозможно. Пожалуйста, обратитесь к системному администратору, чтобы включить." msgstr "<b>Внимание:</b> Поддержка FTP не включена в PHP. Подключение по FTP невозможно. Пожалуйста, обратитесь к системному администратору, чтобы включить."
#: lib/config.php:519 #: lib/config.php:661
msgid "" msgid ""
"<b>Warning:</b> The Curl support in PHP is not enabled or installed. " "<b>Warning:</b> The Curl support in PHP is not enabled or installed. "
"Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask " "Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask "
@ -116,7 +117,7 @@ msgstr "Включить пользовательские внешние нос
#: templates/settings.php:130 #: templates/settings.php:130
msgid "Allow users to mount the following external storage" msgid "Allow users to mount the following external storage"
msgstr "" msgstr "Разрешить пользователям монтировать следующую внешнюю систему хранения данных"
#: templates/settings.php:147 #: templates/settings.php:147
msgid "SSL root certificates" msgid "SSL root certificates"

View File

@ -22,8 +22,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 01:55-0400\n" "POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 05:55+0000\n" "PO-Revision-Date: 2014-03-27 14:41+0000\n"
"Last-Translator: I Robot\n" "Last-Translator: I Robot\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -39,7 +39,7 @@ msgstr ""
#: admin/controller.php:73 #: admin/controller.php:73
msgid "Saved" msgid "Saved"
msgstr "" msgstr "Сохранено"
#: admin/controller.php:90 #: admin/controller.php:90
msgid "test email settings" msgid "test email settings"
@ -232,23 +232,23 @@ msgstr "Выберите картинку профиля"
#: js/personal.js:277 #: js/personal.js:277
msgid "Very weak password" msgid "Very weak password"
msgstr "" msgstr "Очень слабый пароль"
#: js/personal.js:278 #: js/personal.js:278
msgid "Weak password" msgid "Weak password"
msgstr "" msgstr "Слабый пароль"
#: js/personal.js:279 #: js/personal.js:279
msgid "So-so password" msgid "So-so password"
msgstr "" msgstr "Так себе пароль"
#: js/personal.js:280 #: js/personal.js:280
msgid "Good password" msgid "Good password"
msgstr "" msgstr "Хороший пароль"
#: js/personal.js:281 #: js/personal.js:281
msgid "Strong password" msgid "Strong password"
msgstr "" msgstr "Устойчивый к взлому пароль"
#: js/personal.js:316 #: js/personal.js:316
msgid "Decrypting files... Please wait, this can take some time." msgid "Decrypting files... Please wait, this can take some time."

View File

@ -9,9 +9,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-22 01:55-0400\n" "POT-Creation-Date: 2014-03-30 01:55-0400\n"
"PO-Revision-Date: 2014-03-22 05:55+0000\n" "PO-Revision-Date: 2014-03-29 20:30+0000\n"
"Last-Translator: I Robot\n" "Last-Translator: mateju <>\n"
"Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -19,24 +19,24 @@ msgstr ""
"Language: sl\n" "Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#: ajax/share.php:88 #: ajax/share.php:87
msgid "Expiration date is in the past." msgid "Expiration date is in the past."
msgstr "Datum preteka je v preteklosti." msgstr "Datum preteka je v preteklosti."
#: ajax/share.php:120 ajax/share.php:162 #: ajax/share.php:119 ajax/share.php:161
#, php-format #, php-format
msgid "Couldn't send mail to following users: %s " msgid "Couldn't send mail to following users: %s "
msgstr "Ni mogoče poslati sporočila za: %s" msgstr "Ni mogoče poslati sporočila za: %s"
#: ajax/update.php:11 #: ajax/update.php:10
msgid "Turned on maintenance mode" msgid "Turned on maintenance mode"
msgstr "Vzdrževalni način je omogočen" msgstr "Vzdrževalni način je omogočen"
#: ajax/update.php:14 #: ajax/update.php:13
msgid "Turned off maintenance mode" msgid "Turned off maintenance mode"
msgstr "Vzdrževalni način je onemogočen" msgstr "Vzdrževalni način je onemogočen"
#: ajax/update.php:17 #: ajax/update.php:16
msgid "Updated database" msgid "Updated database"
msgstr "Posodobljena podatkovna zbirka" msgstr "Posodobljena podatkovna zbirka"
@ -140,15 +140,15 @@ msgstr "december"
msgid "Settings" msgid "Settings"
msgstr "Nastavitve" msgstr "Nastavitve"
#: js/js.js:496 #: js/js.js:543
msgid "Saving..." msgid "Saving..."
msgstr "Poteka shranjevanje ..." msgstr "Poteka shranjevanje ..."
#: js/js.js:995 #: js/js.js:1103
msgid "seconds ago" msgid "seconds ago"
msgstr "pred nekaj sekundami" msgstr "pred nekaj sekundami"
#: js/js.js:996 #: js/js.js:1104
msgid "%n minute ago" msgid "%n minute ago"
msgid_plural "%n minutes ago" msgid_plural "%n minutes ago"
msgstr[0] "pred %n minuto" msgstr[0] "pred %n minuto"
@ -156,7 +156,7 @@ msgstr[1] "pred %n minutama"
msgstr[2] "pred %n minutami" msgstr[2] "pred %n minutami"
msgstr[3] "pred %n minutami" msgstr[3] "pred %n minutami"
#: js/js.js:997 #: js/js.js:1105
msgid "%n hour ago" msgid "%n hour ago"
msgid_plural "%n hours ago" msgid_plural "%n hours ago"
msgstr[0] "pred %n uro" msgstr[0] "pred %n uro"
@ -164,15 +164,15 @@ msgstr[1] "pred %n urama"
msgstr[2] "pred %n urami" msgstr[2] "pred %n urami"
msgstr[3] "pred %n urami" msgstr[3] "pred %n urami"
#: js/js.js:998 #: js/js.js:1106
msgid "today" msgid "today"
msgstr "danes" msgstr "danes"
#: js/js.js:999 #: js/js.js:1107
msgid "yesterday" msgid "yesterday"
msgstr "včeraj" msgstr "včeraj"
#: js/js.js:1000 #: js/js.js:1108
msgid "%n day ago" msgid "%n day ago"
msgid_plural "%n days ago" msgid_plural "%n days ago"
msgstr[0] "pred %n dnevom" msgstr[0] "pred %n dnevom"
@ -180,11 +180,11 @@ msgstr[1] "pred %n dnevoma"
msgstr[2] "pred %n dnevi" msgstr[2] "pred %n dnevi"
msgstr[3] "pred %n dnevi" msgstr[3] "pred %n dnevi"
#: js/js.js:1001 #: js/js.js:1109
msgid "last month" msgid "last month"
msgstr "zadnji mesec" msgstr "zadnji mesec"
#: js/js.js:1002 #: js/js.js:1110
msgid "%n month ago" msgid "%n month ago"
msgid_plural "%n months ago" msgid_plural "%n months ago"
msgstr[0] "pred %n mesecem" msgstr[0] "pred %n mesecem"
@ -192,15 +192,15 @@ msgstr[1] "pred %n mesecema"
msgstr[2] "pred %n meseci" msgstr[2] "pred %n meseci"
msgstr[3] "pred %n meseci" msgstr[3] "pred %n meseci"
#: js/js.js:1003 #: js/js.js:1111
msgid "months ago" msgid "months ago"
msgstr "mesecev nazaj" msgstr "mesecev nazaj"
#: js/js.js:1004 #: js/js.js:1112
msgid "last year" msgid "last year"
msgstr "lansko leto" msgstr "lansko leto"
#: js/js.js:1005 #: js/js.js:1113
msgid "years ago" msgid "years ago"
msgstr "let nazaj" msgstr "let nazaj"
@ -545,17 +545,17 @@ msgstr "Novo geslo"
msgid "Reset password" msgid "Reset password"
msgstr "Ponastavi geslo" msgstr "Ponastavi geslo"
#: setup/controller.php:138 #: setup/controller.php:140
#, php-format #, php-format
msgid "" msgid ""
"Mac OS X is not supported and %s will not work properly on this platform. " "Mac OS X is not supported and %s will not work properly on this platform. "
"Use it at your own risk! " "Use it at your own risk! "
msgstr "" msgstr "Sistem Mac OS X ni podprt, zato %s ne bo deloval zanesljivo v tem okolju. Program uporabljate na lastno odgovornost! "
#: setup/controller.php:142 #: setup/controller.php:144
msgid "" msgid ""
"For the best results, please consider using a GNU/Linux server instead." "For the best results, please consider using a GNU/Linux server instead."
msgstr "" msgstr "Za najbolj še rezultate je priporočljivo uporabljati strežnik GNU/Linux."
#: strings.php:5 #: strings.php:5
msgid "Personal" msgid "Personal"

View File

@ -9,9 +9,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 01:55-0400\n" "POT-Creation-Date: 2014-03-30 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 05:55+0000\n" "PO-Revision-Date: 2014-03-29 20:50+0000\n"
"Last-Translator: I Robot\n" "Last-Translator: mateju <>\n"
"Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -22,7 +22,7 @@ msgstr ""
#: admin/controller.php:66 #: admin/controller.php:66
#, php-format #, php-format
msgid "Invalid value supplied for %s" msgid "Invalid value supplied for %s"
msgstr "" msgstr "Navedena je napačna vrednost za %s"
#: admin/controller.php:73 #: admin/controller.php:73
msgid "Saved" msgid "Saved"
@ -66,7 +66,7 @@ msgid "Unable to load list from App Store"
msgstr "Ni mogoče naložiti seznama iz programskega središča" msgstr "Ni mogoče naložiti seznama iz programskega središča"
#: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17 #: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17
#: ajax/togglegroups.php:20 changepassword/controller.php:55 #: ajax/togglegroups.php:20 changepassword/controller.php:49
msgid "Authentication error" msgid "Authentication error"
msgstr "Napaka med overjanjem" msgstr "Napaka med overjanjem"
@ -128,32 +128,32 @@ msgstr "Uporabnika ni mogoče odstraniti iz skupine %s"
msgid "Couldn't update app." msgid "Couldn't update app."
msgstr "Programa ni mogoče posodobiti." msgstr "Programa ni mogoče posodobiti."
#: changepassword/controller.php:20 #: changepassword/controller.php:17
msgid "Wrong password" msgid "Wrong password"
msgstr "Napačno geslo" msgstr "Napačno geslo"
#: changepassword/controller.php:42 #: changepassword/controller.php:36
msgid "No user supplied" msgid "No user supplied"
msgstr "Ni navedenega uporabnika" msgstr "Ni navedenega uporabnika"
#: changepassword/controller.php:74 #: changepassword/controller.php:68
msgid "" msgid ""
"Please provide an admin recovery password, otherwise all user data will be " "Please provide an admin recovery password, otherwise all user data will be "
"lost" "lost"
msgstr "Podati je treba skrbniško obnovitveno geslo, sicer bodo vsi uporabniški podatki izgubljeni." msgstr "Podati je treba skrbniško obnovitveno geslo, sicer bodo vsi uporabniški podatki izgubljeni."
#: changepassword/controller.php:79 #: changepassword/controller.php:73
msgid "" msgid ""
"Wrong admin recovery password. Please check the password and try again." "Wrong admin recovery password. Please check the password and try again."
msgstr "Napačno navedeno skrbniško obnovitveno geslo. Preverite geslo in poskusite znova." msgstr "Napačno navedeno skrbniško obnovitveno geslo. Preverite geslo in poskusite znova."
#: changepassword/controller.php:87 #: changepassword/controller.php:81
msgid "" msgid ""
"Back-end doesn't support password change, but the users encryption key was " "Back-end doesn't support password change, but the users encryption key was "
"successfully updated." "successfully updated."
msgstr "Hrbtišče programa ne podpira spreminjanja gesla, je pa uspešno posodobljeno uporabniško šifriranje." msgstr "Hrbtišče programa ne podpira spreminjanja gesla, je pa uspešno posodobljeno uporabniško šifriranje."
#: changepassword/controller.php:92 changepassword/controller.php:103 #: changepassword/controller.php:86 changepassword/controller.php:97
msgid "Unable to change password" msgid "Unable to change password"
msgstr "Ni mogoče spremeniti gesla" msgstr "Ni mogoče spremeniti gesla"
@ -286,7 +286,7 @@ msgstr "Navedeno mora biti veljavno geslo"
msgid "Warning: Home directory for user \"{user}\" already exists" msgid "Warning: Home directory for user \"{user}\" already exists"
msgstr "Opozorilo: osebna mapa uporabnika \"{user}\" že obstaja" msgstr "Opozorilo: osebna mapa uporabnika \"{user}\" že obstaja"
#: personal.php:49 personal.php:50 #: personal.php:48 personal.php:49
msgid "__language_name__" msgid "__language_name__"
msgstr "Slovenščina" msgstr "Slovenščina"

View File

@ -4,14 +4,14 @@
# #
# Translators: # Translators:
# barbarak <barbarak@arnes.si>, 2013 # barbarak <barbarak@arnes.si>, 2013
# mateju <>, 2013 # mateju <>, 2013-2014
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n" "POT-Creation-Date: 2014-03-30 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 06:01+0000\n" "PO-Revision-Date: 2014-03-29 20:50+0000\n"
"Last-Translator: I Robot\n" "Last-Translator: mateju <>\n"
"Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -417,7 +417,7 @@ msgstr "Povezava član-skupina"
#: templates/settings.php:39 #: templates/settings.php:39
msgid "Nested Groups" msgid "Nested Groups"
msgstr "" msgstr "Gnezdene skupine"
#: templates/settings.php:39 #: templates/settings.php:39
msgid "" msgid ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n" "Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n" "POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,24 +18,24 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
#: ajax/share.php:88 #: ajax/share.php:87
msgid "Expiration date is in the past." msgid "Expiration date is in the past."
msgstr "" msgstr ""
#: ajax/share.php:120 ajax/share.php:162 #: ajax/share.php:119 ajax/share.php:161
#, php-format #, php-format
msgid "Couldn't send mail to following users: %s " msgid "Couldn't send mail to following users: %s "
msgstr "" msgstr ""
#: ajax/update.php:11 #: ajax/update.php:10
msgid "Turned on maintenance mode" msgid "Turned on maintenance mode"
msgstr "" msgstr ""
#: ajax/update.php:14 #: ajax/update.php:13
msgid "Turned off maintenance mode" msgid "Turned off maintenance mode"
msgstr "" msgstr ""
#: ajax/update.php:17 #: ajax/update.php:16
msgid "Updated database" msgid "Updated database"
msgstr "" msgstr ""
@ -139,59 +139,59 @@ msgstr ""
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
#: js/js.js:496 #: js/js.js:543
msgid "Saving..." msgid "Saving..."
msgstr "" msgstr ""
#: js/js.js:995 #: js/js.js:1103
msgid "seconds ago" msgid "seconds ago"
msgstr "" msgstr ""
#: js/js.js:996 #: js/js.js:1104
msgid "%n minute ago" msgid "%n minute ago"
msgid_plural "%n minutes ago" msgid_plural "%n minutes ago"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: js/js.js:997 #: js/js.js:1105
msgid "%n hour ago" msgid "%n hour ago"
msgid_plural "%n hours ago" msgid_plural "%n hours ago"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: js/js.js:998 #: js/js.js:1106
msgid "today" msgid "today"
msgstr "" msgstr ""
#: js/js.js:999 #: js/js.js:1107
msgid "yesterday" msgid "yesterday"
msgstr "" msgstr ""
#: js/js.js:1000 #: js/js.js:1108
msgid "%n day ago" msgid "%n day ago"
msgid_plural "%n days ago" msgid_plural "%n days ago"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: js/js.js:1001 #: js/js.js:1109
msgid "last month" msgid "last month"
msgstr "" msgstr ""
#: js/js.js:1002 #: js/js.js:1110
msgid "%n month ago" msgid "%n month ago"
msgid_plural "%n months ago" msgid_plural "%n months ago"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: js/js.js:1003 #: js/js.js:1111
msgid "months ago" msgid "months ago"
msgstr "" msgstr ""
#: js/js.js:1004 #: js/js.js:1112
msgid "last year" msgid "last year"
msgstr "" msgstr ""
#: js/js.js:1005 #: js/js.js:1113
msgid "years ago" msgid "years ago"
msgstr "" msgstr ""
@ -534,14 +534,14 @@ msgstr ""
msgid "Reset password" msgid "Reset password"
msgstr "" msgstr ""
#: setup/controller.php:138 #: setup/controller.php:140
#, php-format #, php-format
msgid "" msgid ""
"Mac OS X is not supported and %s will not work properly on this platform. " "Mac OS X is not supported and %s will not work properly on this platform. "
"Use it at your own risk! " "Use it at your own risk! "
msgstr "" msgstr ""
#: setup/controller.php:142 #: setup/controller.php:144
msgid "For the best results, please consider using a GNU/Linux server instead." msgid "For the best results, please consider using a GNU/Linux server instead."
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n" "Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n" "POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -193,15 +193,15 @@ msgstr ""
msgid "Error fetching URL" msgid "Error fetching URL"
msgstr "" msgstr ""
#: js/fileactions.js:149 #: js/fileactions.js:164
msgid "Share" msgid "Share"
msgstr "" msgstr ""
#: js/fileactions.js:162 #: js/fileactions.js:177
msgid "Delete permanently" msgid "Delete permanently"
msgstr "" msgstr ""
#: js/fileactions.js:223 #: js/fileactions.js:238
msgid "Rename" msgid "Rename"
msgstr "" msgstr ""
@ -225,13 +225,13 @@ msgstr ""
msgid "Error deleting file." msgid "Error deleting file."
msgstr "" msgstr ""
#: js/filelist.js:687 js/filelist.js:761 js/files.js:691 #: js/filelist.js:687 js/filelist.js:761 js/files.js:694
msgid "%n folder" msgid "%n folder"
msgid_plural "%n folders" msgid_plural "%n folders"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: js/filelist.js:688 js/filelist.js:762 js/files.js:697 #: js/filelist.js:688 js/filelist.js:762 js/files.js:700
msgid "%n file" msgid "%n file"
msgid_plural "%n files" msgid_plural "%n files"
msgstr[0] "" msgstr[0] ""
@ -277,29 +277,29 @@ msgid ""
"your personal settings to decrypt your files." "your personal settings to decrypt your files."
msgstr "" msgstr ""
#: js/files.js:379 #: js/files.js:382
msgid "" msgid ""
"Your download is being prepared. This might take some time if the files are " "Your download is being prepared. This might take some time if the files are "
"big." "big."
msgstr "" msgstr ""
#: js/files.js:610 js/files.js:654 #: js/files.js:613 js/files.js:657
msgid "Error moving file" msgid "Error moving file"
msgstr "" msgstr ""
#: js/files.js:610 js/files.js:654 #: js/files.js:613 js/files.js:657
msgid "Error" msgid "Error"
msgstr "" msgstr ""
#: js/files.js:672 templates/index.php:68 #: js/files.js:675 templates/index.php:68
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: js/files.js:673 templates/index.php:80 #: js/files.js:676 templates/index.php:80
msgid "Size" msgid "Size"
msgstr "" msgstr ""
#: js/files.js:674 templates/index.php:82 #: js/files.js:677 templates/index.php:82
msgid "Modified" msgid "Modified"
msgstr "" msgstr ""

View File

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

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n" "Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n" "POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -37,24 +37,24 @@ msgstr ""
msgid "Error configuring Google Drive storage" msgid "Error configuring Google Drive storage"
msgstr "" msgstr ""
#: js/settings.js:313 js/settings.js:320 #: js/settings.js:318 js/settings.js:325
msgid "Saved" msgid "Saved"
msgstr "" msgstr ""
#: lib/config.php:646 #: lib/config.php:654
msgid "" msgid ""
"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares " "<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares "
"is not possible. Please ask your system administrator to install it." "is not possible. Please ask your system administrator to install it."
msgstr "" msgstr ""
#: lib/config.php:650 #: lib/config.php:658
msgid "" msgid ""
"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting " "<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 " "of FTP shares is not possible. Please ask your system administrator to "
"install it." "install it."
msgstr "" msgstr ""
#: lib/config.php:653 #: lib/config.php:661
msgid "" msgid ""
"<b>Warning:</b> The Curl support in PHP is not enabled or installed. " "<b>Warning:</b> The Curl support in PHP is not enabled or installed. "
"Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask " "Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask "
@ -89,39 +89,39 @@ msgstr ""
msgid "Add storage" msgid "Add storage"
msgstr "" msgstr ""
#: templates/settings.php:90 #: templates/settings.php:93
msgid "None set" msgid "None set"
msgstr "" msgstr ""
#: templates/settings.php:91 #: templates/settings.php:94
msgid "All Users" msgid "All Users"
msgstr "" msgstr ""
#: templates/settings.php:92 #: templates/settings.php:95
msgid "Groups" msgid "Groups"
msgstr "" msgstr ""
#: templates/settings.php:100 #: templates/settings.php:103
msgid "Users" msgid "Users"
msgstr "" msgstr ""
#: templates/settings.php:113 templates/settings.php:114 #: templates/settings.php:116 templates/settings.php:117
#: templates/settings.php:155 templates/settings.php:156 #: templates/settings.php:158 templates/settings.php:159
msgid "Delete" msgid "Delete"
msgstr "" msgstr ""
#: templates/settings.php:127 #: templates/settings.php:130
msgid "Enable User External Storage" msgid "Enable User External Storage"
msgstr "" msgstr ""
#: templates/settings.php:130 #: templates/settings.php:133
msgid "Allow users to mount the following external storage" msgid "Allow users to mount the following external storage"
msgstr "" msgstr ""
#: templates/settings.php:147 #: templates/settings.php:150
msgid "SSL root certificates" msgid "SSL root certificates"
msgstr "" msgstr ""
#: templates/settings.php:165 #: templates/settings.php:168
msgid "Import Root Certificate" msgid "Import Root Certificate"
msgstr "" msgstr ""

View File

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

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n" "Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n" "POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -31,7 +31,7 @@ msgstr ""
msgid "Deleted files" msgid "Deleted files"
msgstr "" msgstr ""
#: js/trash.js:16 js/trash.js:103 js/trash.js:152 #: js/trash.js:16 js/trash.js:108 js/trash.js:157
msgid "Error" msgid "Error"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n" "Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n" "POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -22,22 +22,22 @@ msgstr ""
msgid "Could not revert: %s" msgid "Could not revert: %s"
msgstr "" msgstr ""
#: js/versions.js:14 #: js/versions.js:39
msgid "Versions" msgid "Versions"
msgstr "" msgstr ""
#: js/versions.js:60 #: js/versions.js:61
msgid "Failed to revert {file} to revision {timestamp}." msgid "Failed to revert {file} to revision {timestamp}."
msgstr "" msgstr ""
#: js/versions.js:87 #: js/versions.js:88
msgid "More versions..." msgid "More versions..."
msgstr "" msgstr ""
#: js/versions.js:125 #: js/versions.js:126
msgid "No other versions available" msgid "No other versions available"
msgstr "" msgstr ""
#: js/versions.js:155 #: js/versions.js:156
msgid "Restore" msgid "Restore"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n" "Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n" "POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -66,23 +66,23 @@ msgstr ""
msgid "web services under your control" msgid "web services under your control"
msgstr "" msgstr ""
#: private/files.php:231 #: private/files.php:232
msgid "ZIP download is turned off." msgid "ZIP download is turned off."
msgstr "" msgstr ""
#: private/files.php:232 #: private/files.php:233
msgid "Files need to be downloaded one by one." msgid "Files need to be downloaded one by one."
msgstr "" msgstr ""
#: private/files.php:233 private/files.php:261 #: private/files.php:234 private/files.php:262
msgid "Back to Files" msgid "Back to Files"
msgstr "" msgstr ""
#: private/files.php:258 #: private/files.php:259
msgid "Selected files too large to generate zip file." msgid "Selected files too large to generate zip file."
msgstr "" msgstr ""
#: private/files.php:259 #: private/files.php:260
msgid "" msgid ""
"Please download the files separately in smaller chunks or kindly ask your " "Please download the files separately in smaller chunks or kindly ask your "
"administrator." "administrator."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n" "Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n" "POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -66,23 +66,23 @@ msgstr ""
msgid "web services under your control" msgid "web services under your control"
msgstr "" msgstr ""
#: files.php:231 #: files.php:232
msgid "ZIP download is turned off." msgid "ZIP download is turned off."
msgstr "" msgstr ""
#: files.php:232 #: files.php:233
msgid "Files need to be downloaded one by one." msgid "Files need to be downloaded one by one."
msgstr "" msgstr ""
#: files.php:233 files.php:261 #: files.php:234 files.php:262
msgid "Back to Files" msgid "Back to Files"
msgstr "" msgstr ""
#: files.php:258 #: files.php:259
msgid "Selected files too large to generate zip file." msgid "Selected files too large to generate zip file."
msgstr "" msgstr ""
#: files.php:259 #: files.php:260
msgid "" msgid ""
"Please download the files separately in smaller chunks or kindly ask your " "Please download the files separately in smaller chunks or kindly ask your "
"administrator." "administrator."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n" "Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-27 01:55-0400\n" "POT-Creation-Date: 2014-03-31 01:55-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -64,7 +64,7 @@ msgid "Unable to load list from App Store"
msgstr "" msgstr ""
#: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17 #: ajax/changedisplayname.php:25 ajax/removeuser.php:15 ajax/setquota.php:17
#: ajax/togglegroups.php:20 changepassword/controller.php:55 #: ajax/togglegroups.php:20 changepassword/controller.php:49
msgid "Authentication error" msgid "Authentication error"
msgstr "" msgstr ""
@ -126,31 +126,31 @@ msgstr ""
msgid "Couldn't update app." msgid "Couldn't update app."
msgstr "" msgstr ""
#: changepassword/controller.php:20 #: changepassword/controller.php:17
msgid "Wrong password" msgid "Wrong password"
msgstr "" msgstr ""
#: changepassword/controller.php:42 #: changepassword/controller.php:36
msgid "No user supplied" msgid "No user supplied"
msgstr "" msgstr ""
#: changepassword/controller.php:74 #: changepassword/controller.php:68
msgid "" msgid ""
"Please provide an admin recovery password, otherwise all user data will be " "Please provide an admin recovery password, otherwise all user data will be "
"lost" "lost"
msgstr "" msgstr ""
#: changepassword/controller.php:79 #: changepassword/controller.php:73
msgid "Wrong admin recovery password. Please check the password and try again." msgid "Wrong admin recovery password. Please check the password and try again."
msgstr "" msgstr ""
#: changepassword/controller.php:87 #: changepassword/controller.php:81
msgid "" msgid ""
"Back-end doesn't support password change, but the users encryption key was " "Back-end doesn't support password change, but the users encryption key was "
"successfully updated." "successfully updated."
msgstr "" msgstr ""
#: changepassword/controller.php:92 changepassword/controller.php:103 #: changepassword/controller.php:86 changepassword/controller.php:97
msgid "Unable to change password" msgid "Unable to change password"
msgstr "" msgstr ""
@ -283,7 +283,7 @@ msgstr ""
msgid "Warning: Home directory for user \"{user}\" already exists" msgid "Warning: Home directory for user \"{user}\" already exists"
msgstr "" msgstr ""
#: personal.php:49 personal.php:50 #: personal.php:48 personal.php:49
msgid "__language_name__" msgid "__language_name__"
msgstr "" msgstr ""

View File

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

View File

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

View File

@ -11,8 +11,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-24 01:55-0400\n" "POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-23 13:20+0000\n" "PO-Revision-Date: 2014-03-27 19:31+0000\n"
"Last-Translator: volkangezer <volkangezer@gmail.com>\n" "Last-Translator: volkangezer <volkangezer@gmail.com>\n"
"Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -490,7 +490,7 @@ msgid ""
"The link to reset your password has been sent to your email.<br>If you do " "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 " "not receive it within a reasonable amount of time, check your spam/junk "
"folders.<br>If it is not there ask your local administrator ." "folders.<br>If it is not there ask your local administrator ."
msgstr "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk dizinini kontrol ediniz.<br> Eğer orada da bulamazsanız sistem yöneticinize sorunuz." msgstr "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi.<br>Eğer makül bir süre içerisinde mesajı almadıysanız spam/junk/gereksiz dizinini kontrol ediniz.<br> Eğer yine bulamazsanız sistem yöneticinize sorunuz."
#: lostpassword/templates/lostpassword.php:15 #: lostpassword/templates/lostpassword.php:15
msgid "Request failed!<br>Did you make sure your email/username was right?" msgid "Request failed!<br>Did you make sure your email/username was right?"

View File

@ -11,9 +11,9 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ownCloud\n" "Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n" "Report-Msgid-Bugs-To: translations@owncloud.org\n"
"POT-Creation-Date: 2014-03-26 01:55-0400\n" "POT-Creation-Date: 2014-03-28 01:55-0400\n"
"PO-Revision-Date: 2014-03-26 05:55+0000\n" "PO-Revision-Date: 2014-03-27 19:31+0000\n"
"Last-Translator: I Robot\n" "Last-Translator: volkangezer <volkangezer@gmail.com>\n"
"Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -433,18 +433,18 @@ msgstr "Cron"
#: templates/admin.php:167 #: templates/admin.php:167
#, php-format #, php-format
msgid "Last cron was executed at %s." msgid "Last cron was executed at %s."
msgstr "" msgstr "Son cron %s zamanında çalıştırıldı."
#: templates/admin.php:170 #: templates/admin.php:170
#, php-format #, php-format
msgid "" msgid ""
"Last cron was executed at %s. This is more than an hour ago, something seems" "Last cron was executed at %s. This is more than an hour ago, something seems"
" wrong." " wrong."
msgstr "" msgstr "Son cron %s zamanında çalıştırıldı. Bu bir saatten daha uzun bir süre, bir şeyler yanlış gibi görünüyor."
#: templates/admin.php:174 #: templates/admin.php:174
msgid "Cron was not executed yet!" msgid "Cron was not executed yet!"
msgstr "" msgstr "Cron henüz çalıştırılmadı!"
#: templates/admin.php:184 #: templates/admin.php:184
msgid "Execute one task with each page loaded" msgid "Execute one task with each page loaded"

View File

@ -549,16 +549,10 @@ class OC {
OC_User::logout(); OC_User::logout();
} }
// Load Apps // Load minimum set of apps - which is filesystem, authentication and logging
// This includes plugins for users and filesystems as well if (!self::checkUpgrade(false)) {
global $RUNTIME_NOAPPS; OC_App::loadApps(array('authentication'));
global $RUNTIME_APPTYPES; OC_App::loadApps(array('filesystem', 'logging'));
if (!$RUNTIME_NOAPPS && !self::checkUpgrade(false)) {
if ($RUNTIME_APPTYPES) {
OC_App::loadApps($RUNTIME_APPTYPES);
} else {
OC_App::loadApps();
}
} }
//setup extra user backends //setup extra user backends
@ -659,10 +653,10 @@ class OC {
*/ */
public static function registerShareHooks() { public static function registerShareHooks() {
if (\OC_Config::getValue('installed')) { if (\OC_Config::getValue('installed')) {
OC_Hook::connect('OC_User', 'post_deleteUser', 'OCP\Share', 'post_deleteUser'); OC_Hook::connect('OC_User', 'post_deleteUser', 'OC\Share\Hooks', 'post_deleteUser');
OC_Hook::connect('OC_User', 'post_addToGroup', 'OCP\Share', 'post_addToGroup'); OC_Hook::connect('OC_User', 'post_addToGroup', 'OC\Share\Hooks', 'post_addToGroup');
OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OCP\Share', 'post_removeFromGroup'); OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OC\Share\Hooks', 'post_removeFromGroup');
OC_Hook::connect('OC_User', 'post_deleteGroup', 'OCP\Share', 'post_deleteGroup'); OC_Hook::connect('OC_User', 'post_deleteGroup', 'OC\Share\Hooks', 'post_deleteGroup');
} }
} }
@ -851,7 +845,7 @@ class OC {
) { ) {
return false; return false;
} }
OC_App::loadApps(array('authentication'));
if (defined("DEBUG") && DEBUG) { if (defined("DEBUG") && DEBUG) {
OC_Log::write('core', 'Trying to login from cookie', OC_Log::DEBUG); OC_Log::write('core', 'Trying to login from cookie', OC_Log::DEBUG);
} }
@ -923,7 +917,7 @@ class OC {
) { ) {
return false; return false;
} }
OC_App::loadApps(array('authentication'));
if (OC_User::login($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])) { if (OC_User::login($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])) {
//OC_Log::write('core',"Logged in with HTTP Authentication", OC_Log::DEBUG); //OC_Log::write('core',"Logged in with HTTP Authentication", OC_Log::DEBUG);
OC_User::unsetMagicInCookie(); OC_User::unsetMagicInCookie();
@ -934,11 +928,6 @@ class OC {
} }
// define runtime variables - unless this already has been done
if (!isset($RUNTIME_NOAPPS)) {
$RUNTIME_NOAPPS = false;
}
if (!function_exists('get_temp_dir')) { if (!function_exists('get_temp_dir')) {
function get_temp_dir() { function get_temp_dir() {
if ($temp = ini_get('upload_tmp_dir')) return $temp; if ($temp = ini_get('upload_tmp_dir')) return $temp;
@ -957,4 +946,3 @@ if (!function_exists('get_temp_dir')) {
} }
OC::init(); OC::init();

View File

@ -1,6 +1,7 @@
<?php <?php
/** /**
* Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl> * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
* Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or * This file is licensed under the Affero General Public License version 3 or
* later. * later.
* See the COPYING-README file. * See the COPYING-README file.
@ -10,22 +11,22 @@ namespace OC\Cache;
class File { class File {
protected $storage; protected $storage;
/**
* Returns the cache storage for the logged in user
* @return cache storage
*/
protected function getStorage() { protected function getStorage() {
if (isset($this->storage)) { if (isset($this->storage)) {
return $this->storage; return $this->storage;
} }
if(\OC_User::isLoggedIn()) { if(\OC_User::isLoggedIn()) {
\OC\Files\Filesystem::initMountPoints(\OC_User::getUser()); \OC\Files\Filesystem::initMountPoints(\OC_User::getUser());
$subdir = 'cache'; $this->storage = new \OC\Files\View('/' . \OC_User::getUser() . '/cache');
$view = new \OC\Files\View('/' . \OC_User::getUser());
if(!$view->file_exists($subdir)) {
$view->mkdir($subdir);
}
$this->storage = new \OC\Files\View('/' . \OC_User::getUser().'/'.$subdir);
return $this->storage; return $this->storage;
}else{ }else{
\OC_Log::write('core', 'Can\'t get cache storage, user not logged in', \OC_Log::ERROR); \OC_Log::write('core', 'Can\'t get cache storage, user not logged in', \OC_Log::ERROR);
return false; throw new \OC\ForbiddenException('Can\t get cache storage, user not logged in');
} }
} }

View File

@ -8,6 +8,11 @@
/** /**
* small wrapper around \Doctrine\DBAL\Driver\Statement to make it behave, more like an MDB2 Statement * small wrapper around \Doctrine\DBAL\Driver\Statement to make it behave, more like an MDB2 Statement
*
* @method boolean bindValue(mixed $param, mixed $value, integer $type = null);
* @method string errorCode();
* @method array errorInfo();
* @method integer rowCount();
*/ */
class OC_DB_StatementWrapper { class OC_DB_StatementWrapper {
/** /**
@ -161,6 +166,8 @@ class OC_DB_StatementWrapper {
/** /**
* provide an alias for fetch * provide an alias for fetch
*
* @return mixed
*/ */
public function fetchRow() { public function fetchRow() {
return $this->statement->fetch(); return $this->statement->fetch();
@ -168,12 +175,13 @@ class OC_DB_StatementWrapper {
/** /**
* Provide a simple fetchOne. * Provide a simple fetchOne.
*
* fetch single column from the next row * fetch single column from the next row
* @param int $colnum the column number to fetch * @param int $column the column number to fetch
* @return string * @return string
*/ */
public function fetchOne($colnum = 0) { public function fetchOne($column = 0) {
return $this->statement->fetchColumn($colnum); return $this->statement->fetchColumn($column);
} }
/** /**

View File

@ -321,10 +321,35 @@ class Filesystem {
self::mount('\OC\Files\Storage\Local', array('datadir' => $root), $user); self::mount('\OC\Files\Storage\Local', array('datadir' => $root), $user);
} }
self::mountCacheDir($user);
// Chance to mount for other storages // Chance to mount for other storages
\OC_Hook::emit('OC_Filesystem', 'post_initMountPoints', array('user' => $user, 'user_dir' => $root)); \OC_Hook::emit('OC_Filesystem', 'post_initMountPoints', array('user' => $user, 'user_dir' => $root));
} }
/**
* Mounts the cache directory
* @param string $user user name
*/
private static function mountCacheDir($user) {
$cacheBaseDir = \OC_Config::getValue('cache_path', '');
if ($cacheBaseDir === '') {
// use local cache dir relative to the user's home
$subdir = 'cache';
$view = new \OC\Files\View('/' . $user);
if(!$view->file_exists($subdir)) {
$view->mkdir($subdir);
}
} else {
$cacheDir = rtrim($cacheBaseDir, '/') . '/' . $user;
if (!file_exists($cacheDir)) {
mkdir($cacheDir, 0770, true);
}
// mount external cache dir to "/$user/cache" mount point
self::mount('\OC\Files\Storage\Local', array('datadir' => $cacheDir), '/' . $user . '/cache');
}
}
/** /**
* get the default filesystem view * get the default filesystem view
* *

View File

@ -160,8 +160,7 @@ abstract class Common implements \OC\Files\Storage\Storage {
public function hash($type, $path, $raw = false) { public function hash($type, $path, $raw = false) {
$tmpFile = $this->getLocalFile($path); $tmpFile = $this->getLocalFile($path);
$hash = hash($type, $tmpFile, $raw); $hash = hash_file($type, $tmpFile, $raw);
unlink($tmpFile);
return $hash; return $hash;
} }

View File

@ -256,7 +256,7 @@ if (\OC_Util::runningOnWindows()) {
return 0; return 0;
} }
public function hash($path, $type, $raw = false) { public function hash($type, $path, $raw = false) {
return hash_file($type, $this->datadir . $path, $raw); return hash_file($type, $this->datadir . $path, $raw);
} }

View File

@ -276,7 +276,7 @@ class MappedLocal extends \OC\Files\Storage\Common{
return 0; return 0;
} }
public function hash($path, $type, $raw=false) { public function hash($type, $path, $raw=false) {
return hash_file($type, $this->buildPath($path), $raw); return hash_file($type, $this->buildPath($path), $raw);
} }

View File

@ -0,0 +1,16 @@
<?php
/**
* Copyright (c) 2014 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;
/**
* Exception thrown whenever access to a resource has
* been forbidden or whenever a user isn't authenticated.
*/
class ForbiddenException extends \Exception {
}

View File

@ -78,8 +78,7 @@ class OC_Helper {
* Returns a absolute url to the given app and file. * Returns a absolute url to the given app and file.
*/ */
public static function linkToAbsolute($app, $file, $args = array()) { public static function linkToAbsolute($app, $file, $args = array()) {
$urlLinkTo = self::linkTo($app, $file, $args); return self::linkTo($app, $file, $args);
return self::makeURLAbsolute($urlLinkTo);
} }
/** /**

View File

@ -0,0 +1,44 @@
<?php
/**
* ownCloud
*
* @author Bjoern Schiessle
* @copyright 2014 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/>.
*/
namespace OC\Share;
class Constants {
const SHARE_TYPE_USER = 0;
const SHARE_TYPE_GROUP = 1;
const SHARE_TYPE_LINK = 3;
const SHARE_TYPE_EMAIL = 4;
const SHARE_TYPE_CONTACT = 5;
const SHARE_TYPE_REMOTE = 6;
const FORMAT_NONE = -1;
const FORMAT_STATUSES = -2;
const FORMAT_SOURCES = -3;
const TOKEN_LENGTH = 32; // see db_structure.xml
protected static $shareTypeUserAndGroups = -1;
protected static $shareTypeGroupUserUnique = 2;
protected static $backends = array();
protected static $backendTypes = array();
protected static $isResharingAllowed;
}

View File

@ -0,0 +1,202 @@
<?php
/**
* ownCloud
*
* @author Bjoern Schiessle
* @copyright 2014 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/>.
*/
namespace OC\Share;
class Helper extends \OC\Share\Constants {
/**
* Generate a unique target for the item
* @param string Item type
* @param string Item source
* @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK
* @param string User or group the item is being shared with
* @param string User that is the owner of shared item
* @param string The suggested target originating from a reshare (optional)
* @param int The id of the parent group share (optional)
* @return string Item target
*/
public static function generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner,
$suggestedTarget = null, $groupParent = null) {
$backend = \OC\Share\Share::getBackend($itemType);
if ($shareType == self::SHARE_TYPE_LINK) {
if (isset($suggestedTarget)) {
return $suggestedTarget;
}
return $backend->generateTarget($itemSource, false);
} else {
if ($itemType == 'file' || $itemType == 'folder') {
$column = 'file_target';
$columnSource = 'file_source';
} else {
$column = 'item_target';
$columnSource = 'item_source';
}
if ($shareType == self::SHARE_TYPE_USER) {
// Share with is a user, so set share type to user and groups
$shareType = self::$shareTypeUserAndGroups;
$userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith));
} else {
$userAndGroups = false;
}
$exclude = null;
// Backend has 3 opportunities to generate a unique target
for ($i = 0; $i < 2; $i++) {
// Check if suggested target exists first
if ($i == 0 && isset($suggestedTarget)) {
$target = $suggestedTarget;
} else {
if ($shareType == self::SHARE_TYPE_GROUP) {
$target = $backend->generateTarget($itemSource, false, $exclude);
} else {
$target = $backend->generateTarget($itemSource, $shareWith, $exclude);
}
if (is_array($exclude) && in_array($target, $exclude)) {
break;
}
}
// Check if target already exists
$checkTarget = \OC\Share\Share::getItems($itemType, $target, $shareType, $shareWith);
if (!empty($checkTarget)) {
foreach ($checkTarget as $item) {
// Skip item if it is the group parent row
if (isset($groupParent) && $item['id'] == $groupParent) {
if (count($checkTarget) == 1) {
return $target;
} else {
continue;
}
}
if ($item['uid_owner'] == $uidOwner) {
if ($itemType == 'file' || $itemType == 'folder') {
$meta = \OC\Files\Filesystem::getFileInfo($itemSource);
if ($item['file_source'] == $meta['fileid']) {
return $target;
}
} else if ($item['item_source'] == $itemSource) {
return $target;
}
}
}
if (!isset($exclude)) {
$exclude = array();
}
// Find similar targets to improve backend's chances to generate a unqiue target
if ($userAndGroups) {
if ($column == 'file_target') {
$checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`'
.' WHERE `item_type` IN (\'file\', \'folder\')'
.' AND `share_type` IN (?,?,?)'
.' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')');
$result = $checkTargets->execute(array(self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP,
self::$shareTypeGroupUserUnique));
} else {
$checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`'
.' WHERE `item_type` = ? AND `share_type` IN (?,?,?)'
.' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')');
$result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_USER,
self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique));
}
} else {
if ($column == 'file_target') {
$checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`'
.' WHERE `item_type` IN (\'file\', \'folder\')'
.' AND `share_type` = ? AND `share_with` = ?');
$result = $checkTargets->execute(array(self::SHARE_TYPE_GROUP, $shareWith));
} else {
$checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share`'
.' WHERE `item_type` = ? AND `share_type` = ? AND `share_with` = ?');
$result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_GROUP, $shareWith));
}
}
while ($row = $result->fetchRow()) {
$exclude[] = $row[$column];
}
} else {
return $target;
}
}
}
$message = 'Sharing backend registered for '.$itemType.' did not generate a unique target for '.$itemSource;
\OC_Log::write('OCP\Share', $message, \OC_Log::ERROR);
throw new \Exception($message);
}
/**
* Delete all reshares of an item
* @param int Id of item to delete
* @param bool If true, exclude the parent from the delete (optional)
* @param string The user that the parent was shared with (optinal)
*/
public static function delete($parent, $excludeParent = false, $uidOwner = null) {
$ids = array($parent);
$parents = array($parent);
while (!empty($parents)) {
$parents = "'".implode("','", $parents)."'";
// Check the owner on the first search of reshares, useful for
// finding and deleting the reshares by a single user of a group share
if (count($ids) == 1 && isset($uidOwner)) {
$query = \OC_DB::prepare('SELECT `id`, `uid_owner`, `item_type`, `item_target`, `parent`'
.' FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.') AND `uid_owner` = ?');
$result = $query->execute(array($uidOwner));
} else {
$query = \OC_DB::prepare('SELECT `id`, `item_type`, `item_target`, `parent`, `uid_owner`'
.' FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')');
$result = $query->execute();
}
// Reset parents array, only go through loop again if items are found
$parents = array();
while ($item = $result->fetchRow()) {
// Search for a duplicate parent share, this occurs when an
// item is shared to the same user through a group and user or the
// same item is shared by different users
$userAndGroups = array_merge(array($item['uid_owner']), \OC_Group::getUserGroups($item['uid_owner']));
$query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share`'
.' WHERE `item_type` = ?'
.' AND `item_target` = ?'
.' AND `share_type` IN (?,?,?)'
.' AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'
.' AND `uid_owner` != ? AND `id` != ?');
$duplicateParent = $query->execute(array($item['item_type'], $item['item_target'],
self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique,
$item['uid_owner'], $item['parent']))->fetchRow();
if ($duplicateParent) {
// Change the parent to the other item id if share permission is granted
if ($duplicateParent['permissions'] & \OCP\PERMISSION_SHARE) {
$query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `parent` = ? WHERE `id` = ?');
$query->execute(array($duplicateParent['id'], $item['id']));
continue;
}
}
$ids[] = $item['id'];
$parents[] = $item['id'];
}
}
if ($excludeParent) {
unset($ids[0]);
}
if (!empty($ids)) {
$ids = "'".implode("','", $ids)."'";
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `id` IN ('.$ids.')');
$query->execute();
}
}
}

108
lib/private/share/hooks.php Normal file
View File

@ -0,0 +1,108 @@
<?php
/**
* ownCloud
*
* @author Bjoern Schiessle
* @copyright 2014 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/>.
*/
namespace OC\Share;
class Hooks extends \OC\Share\Constants {
/**
* Function that is called after a user is deleted. Cleans up the shares of that user.
* @param array arguments
*/
public static function post_deleteUser($arguments) {
// Delete any items shared with the deleted user
$query = \OC_DB::prepare('DELETE FROM `*PREFIX*share`'
.' WHERE `share_with` = ? AND `share_type` = ? OR `share_type` = ?');
$result = $query->execute(array($arguments['uid'], self::SHARE_TYPE_USER, self::$shareTypeGroupUserUnique));
// Delete any items the deleted user shared
$query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*share` WHERE `uid_owner` = ?');
$result = $query->execute(array($arguments['uid']));
while ($item = $result->fetchRow()) {
Helper::delete($item['id']);
}
}
/**
* Function that is called after a user is added to a group.
* TODO what does it do?
* @param array arguments
*/
public static function post_addToGroup($arguments) {
// Find the group shares and check if the user needs a unique target
$query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?');
$result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid']));
$query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`,'
.' `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`,'
.' `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)');
while ($item = $result->fetchRow()) {
if ($item['item_type'] == 'file' || $item['item_type'] == 'file') {
$itemTarget = null;
} else {
$itemTarget = Helper::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER,
$arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']);
}
if (isset($item['file_source'])) {
$fileTarget = Helper::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER,
$arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']);
} else {
$fileTarget = null;
}
// Insert an extra row for the group share if the item or file target is unique for this user
if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) {
$query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'],
self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'],
$item['stime'], $item['file_source'], $fileTarget));
\OC_DB::insertid('*PREFIX*share');
}
}
}
/**
* Function that is called after a user is removed from a group. Shares are cleaned up.
* @param array arguments
*/
public static function post_removeFromGroup($arguments) {
$sql = 'SELECT `id`, `share_type` FROM `*PREFIX*share`'
.' WHERE (`share_type` = ? AND `share_with` = ?) OR (`share_type` = ? AND `share_with` = ?)';
$result = \OC_DB::executeAudited($sql, array(self::SHARE_TYPE_GROUP, $arguments['gid'],
self::$shareTypeGroupUserUnique, $arguments['uid']));
while ($item = $result->fetchRow()) {
if ($item['share_type'] == self::SHARE_TYPE_GROUP) {
// Delete all reshares by this user of the group share
Helper::delete($item['id'], true, $arguments['uid']);
} else {
Helper::delete($item['id']);
}
}
}
/**
* Function that is called after a group is removed. Cleans up the shares to that group.
* @param array arguments
*/
public static function post_deleteGroup($arguments) {
$sql = 'SELECT `id` FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?';
$result = \OC_DB::executeAudited($sql, array(self::SHARE_TYPE_GROUP, $arguments['gid']));
while ($item = $result->fetchRow()) {
Helper::delete($item['id']);
}
}
}

1619
lib/private/share/share.php Normal file

File diff suppressed because it is too large Load Diff

View File

@ -148,6 +148,7 @@ class URLGenerator implements IURLGenerator {
*/ */
public function getAbsoluteURL($url) { public function getAbsoluteURL($url) {
$separator = $url[0] === '/' ? '' : '/'; $separator = $url[0] === '/' ? '' : '/';
return \OC_Request::serverProtocol() . '://' . \OC_Request::serverHost() . $separator . $url;
return \OC_Request::serverProtocol() . '://' . \OC_Request::serverHost(). \OC::$WEBROOT . $separator . $url;
} }
} }

View File

@ -321,8 +321,6 @@ class OC_User {
*/ */
public static function isLoggedIn() { public static function isLoggedIn() {
if (\OC::$session->get('user_id') && self::$incognitoMode === false) { if (\OC::$session->get('user_id') && self::$incognitoMode === false) {
OC_App::loadApps(array('authentication'));
self::setupBackends();
return self::userExists(\OC::$session->get('user_id')); return self::userExists(\OC::$session->get('user_id'));
} }
return false; return false;

View File

@ -30,9 +30,7 @@ class OC_Util {
} }
// load all filesystem apps before, so no setup-hook gets lost // load all filesystem apps before, so no setup-hook gets lost
if(!isset($RUNTIME_NOAPPS) || !$RUNTIME_NOAPPS) { OC_App::loadApps(array('filesystem'));
OC_App::loadApps(array('filesystem'));
}
// the filesystem will finish when $user is not empty, // the filesystem will finish when $user is not empty,
// mark fs setup here to avoid doing the setup from loading // mark fs setup here to avoid doing the setup from loading
@ -703,17 +701,18 @@ class OC_Util {
* @return void * @return void
*/ */
public static function redirectToDefaultPage() { public static function redirectToDefaultPage() {
$urlGenerator = \OC::$server->getURLGenerator();
if(isset($_REQUEST['redirect_url'])) { if(isset($_REQUEST['redirect_url'])) {
$location = OC_Helper::makeURLAbsolute(urldecode($_REQUEST['redirect_url'])); $location = urldecode($_REQUEST['redirect_url']);
} }
else if (isset(OC::$REQUESTEDAPP) && !empty(OC::$REQUESTEDAPP)) { else if (isset(OC::$REQUESTEDAPP) && !empty(OC::$REQUESTEDAPP)) {
$location = OC_Helper::linkToAbsolute( OC::$REQUESTEDAPP, 'index.php' ); $location = $urlGenerator->getAbsoluteURL('/index.php/apps/'.OC::$REQUESTEDAPP.'/index.php');
} else { } else {
$defaultPage = OC_Appconfig::getValue('core', 'defaultpage'); $defaultPage = OC_Appconfig::getValue('core', 'defaultpage');
if ($defaultPage) { if ($defaultPage) {
$location = OC_Helper::makeURLAbsolute(OC::$WEBROOT.'/'.$defaultPage); $location = $urlGenerator->getAbsoluteURL($defaultPage);
} else { } else {
$location = OC_Helper::linkToAbsolute( 'files', 'index.php' ); $location = $urlGenerator->getAbsoluteURL('/index.php/files/index.php');
} }
} }
OC_Log::write('core', 'redirectToDefaultPage: '.$location, OC_Log::DEBUG); OC_Log::write('core', 'redirectToDefaultPage: '.$location, OC_Log::DEBUG);
@ -1074,13 +1073,13 @@ class OC_Util {
public static function getUrlContent($url) { public static function getUrlContent($url) {
if (function_exists('curl_init')) { if (function_exists('curl_init')) {
$curl = curl_init(); $curl = curl_init();
$max_redirects = 10;
curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_MAXREDIRS, 10);
curl_setopt($curl, CURLOPT_USERAGENT, "ownCloud Server Crawler"); curl_setopt($curl, CURLOPT_USERAGENT, "ownCloud Server Crawler");
if(OC_Config::getValue('proxy', '') != '') { if(OC_Config::getValue('proxy', '') != '') {
@ -1089,9 +1088,50 @@ class OC_Util {
if(OC_Config::getValue('proxyuserpwd', '') != '') { if(OC_Config::getValue('proxyuserpwd', '') != '') {
curl_setopt($curl, CURLOPT_PROXYUSERPWD, OC_Config::getValue('proxyuserpwd')); curl_setopt($curl, CURLOPT_PROXYUSERPWD, OC_Config::getValue('proxyuserpwd'));
} }
$data = curl_exec($curl);
if (ini_get('open_basedir') === '' && ini_get('safe_mode' === 'Off')) {
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_MAXREDIRS, $max_redirects);
$data = curl_exec($curl);
} else {
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false);
$mr = $max_redirects;
if ($mr > 0) {
$newurl = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL);
$rcurl = curl_copy_handle($curl);
curl_setopt($rcurl, CURLOPT_HEADER, true);
curl_setopt($rcurl, CURLOPT_NOBODY, true);
curl_setopt($rcurl, CURLOPT_FORBID_REUSE, false);
curl_setopt($rcurl, CURLOPT_RETURNTRANSFER, true);
do {
curl_setopt($rcurl, CURLOPT_URL, $newurl);
$header = curl_exec($rcurl);
if (curl_errno($rcurl)) {
$code = 0;
} else {
$code = curl_getinfo($rcurl, CURLINFO_HTTP_CODE);
if ($code == 301 || $code == 302) {
preg_match('/Location:(.*?)\n/', $header, $matches);
$newurl = trim(array_pop($matches));
} else {
$code = 0;
}
}
} while ($code && --$mr);
curl_close($rcurl);
if ($mr > 0) {
curl_setopt($curl, CURLOPT_URL, $newurl);
}
}
if($mr == 0 && $max_redirects > 0) {
$data = false;
} else {
$data = curl_exec($curl);
}
}
curl_close($curl); curl_close($curl);
} else { } else {
$contextArray = null; $contextArray = null;

File diff suppressed because it is too large Load Diff

View File

@ -21,11 +21,15 @@
* *
*/ */
require_once('../lib/base.php'); require_once '../lib/base.php';
use Symfony\Component\Routing\Exception\ResourceNotFoundException; use Symfony\Component\Routing\Exception\ResourceNotFoundException;
use Symfony\Component\Routing\Exception\MethodNotAllowedException; use Symfony\Component\Routing\Exception\MethodNotAllowedException;
try { try {
// load all apps to get all api routes properly setup
OC_App::loadApps();
OC::$server->getRouter()->match('/ocs'.OC_Request::getRawPathInfo()); OC::$server->getRouter()->match('/ocs'.OC_Request::getRawPathInfo());
} catch (ResourceNotFoundException $e) { } catch (ResourceNotFoundException $e) {
OC_API::setContentType(); OC_API::setContentType();

View File

@ -1,5 +1,4 @@
<?php <?php
$RUNTIME_NOAPPS = true;
try { try {

View File

@ -1,5 +1,4 @@
<?php <?php
$RUNTIME_NOAPPS = true;
try { try {

View File

@ -23,7 +23,6 @@
// Check if we are a user // Check if we are a user
OC_JSON::checkLoggedIn(); OC_JSON::checkLoggedIn();
OC_App::loadApps();
$query=(isset($_GET['query']))?$_GET['query']:''; $query=(isset($_GET['query']))?$_GET['query']:'';
if($query) { if($query) {

Some files were not shown because too many files have changed in this diff Show More