Merge branch 'master' into rename-lostpassword-controller
Conflicts: core/lostpassword/controller.php
This commit is contained in:
commit
e43e8b0db8
|
@ -68,12 +68,6 @@
|
|||
|
||||
/* FILE TABLE */
|
||||
|
||||
#emptyfolder {
|
||||
position:absolute;
|
||||
margin:10em 0 0 10em;
|
||||
font-size:1.5em; font-weight:bold;
|
||||
color:#888; text-shadow:#fff 0 1px 0;
|
||||
}
|
||||
#filestable { position: relative; top:37px; width:100%; }
|
||||
tbody tr { background-color:#fff; height:2.5em; }
|
||||
tbody tr:hover, tbody tr:active {
|
||||
|
|
|
@ -147,7 +147,7 @@ var FileList={
|
|||
$('tr').filterAttr('data-file',name).remove();
|
||||
FileList.updateFileSummary();
|
||||
if($('tr[data-file]').length==0){
|
||||
$('#emptyfolder').show();
|
||||
$('#emptycontent').show();
|
||||
}
|
||||
},
|
||||
insertElement:function(name,type,element){
|
||||
|
@ -177,7 +177,7 @@ var FileList={
|
|||
}else{
|
||||
$('#fileList').append(element);
|
||||
}
|
||||
$('#emptyfolder').hide();
|
||||
$('#emptycontent').hide();
|
||||
FileList.updateFileSummary();
|
||||
},
|
||||
loadingDone:function(name, id){
|
||||
|
|
|
@ -33,15 +33,17 @@ $TRANSLATIONS = array(
|
|||
"cancel" => "annuler",
|
||||
"replaced {new_name} with {old_name}" => "{new_name} a été remplacé par {old_name}",
|
||||
"undo" => "annuler",
|
||||
"_%n folder_::_%n folders_" => array("",""),
|
||||
"_%n file_::_%n files_" => array("",""),
|
||||
"_Uploading %n file_::_Uploading %n files_" => array("",""),
|
||||
"_%n folder_::_%n folders_" => array("%n dossier","%n dossiers"),
|
||||
"_%n file_::_%n files_" => array("%n fichier","%n fichiers"),
|
||||
"{dirs} and {files}" => "{dir} et {files}",
|
||||
"_Uploading %n file_::_Uploading %n files_" => array("Téléversement de %n fichier","Téléversement de %n fichiers"),
|
||||
"files uploading" => "fichiers en cours d'envoi",
|
||||
"'.' is an invalid file name." => "'.' n'est pas un nom de fichier valide.",
|
||||
"File name cannot be empty." => "Le nom de fichier ne peut être vide.",
|
||||
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nom invalide, les caractères '\\', '/', '<', '>', ':', '\"', '|', '?' et '*' ne sont pas autorisés.",
|
||||
"Your storage is full, files can not be updated or synced anymore!" => "Votre espage de stockage est plein, les fichiers ne peuvent plus être téléversés ou synchronisés !",
|
||||
"Your storage is almost full ({usedSpacePercent}%)" => "Votre espace de stockage est presque plein ({usedSpacePercent}%)",
|
||||
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Le chiffrement était désactivé mais vos fichiers sont toujours chiffrés. Veuillez vous rendre sur vos Paramètres personnels pour déchiffrer vos fichiers.",
|
||||
"Your download is being prepared. This might take some time if the files are big." => "Votre téléchargement est cours de préparation. Ceci peut nécessiter un certain temps si les fichiers sont volumineux.",
|
||||
"Name" => "Nom",
|
||||
"Size" => "Taille",
|
||||
|
|
|
@ -35,6 +35,7 @@ $TRANSLATIONS = array(
|
|||
"undo" => "desfazer",
|
||||
"_%n folder_::_%n folders_" => array("",""),
|
||||
"_%n file_::_%n files_" => array("",""),
|
||||
"{dirs} and {files}" => "{dirs} e {files}",
|
||||
"_Uploading %n file_::_Uploading %n files_" => array("",""),
|
||||
"files uploading" => "enviando arquivos",
|
||||
"'.' is an invalid file name." => "'.' é um nome de arquivo inválido.",
|
||||
|
@ -42,6 +43,7 @@ $TRANSLATIONS = array(
|
|||
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome inválido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos.",
|
||||
"Your storage is full, files can not be updated or synced anymore!" => "Seu armazenamento está cheio, arquivos não podem mais ser atualizados ou sincronizados!",
|
||||
"Your storage is almost full ({usedSpacePercent}%)" => "Seu armazenamento está quase cheio ({usedSpacePercent}%)",
|
||||
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Encriptação foi desabilitada mas seus arquivos continuam encriptados. Por favor vá a suas configurações pessoais para descriptar seus arquivos.",
|
||||
"Your download is being prepared. This might take some time if the files are big." => "Seu download está sendo preparado. Isto pode levar algum tempo se os arquivos forem grandes.",
|
||||
"Name" => "Nome",
|
||||
"Size" => "Tamanho",
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
</div>
|
||||
|
||||
<?php if (isset($_['files']) and $_['isCreatable'] and count($_['files'])==0):?>
|
||||
<div id="emptyfolder"><?php p($l->t('Nothing in here. Upload something!'))?></div>
|
||||
<div id="emptycontent"><?php p($l->t('Nothing in here. Upload something!'))?></div>
|
||||
<?php endif; ?>
|
||||
|
||||
<table id="filestable" data-allow-public-upload="<?php p($_['publicUploadEnabled'])?>" data-preview-x="36" data-preview-y="36">
|
||||
|
@ -104,7 +104,7 @@
|
|||
<?php print_unescaped($_['fileList']); ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<div id="editor"></div>
|
||||
<div id="editor"></div><!-- FIXME Do not use this div in your app! It is deprecated and will be removed in the future! -->
|
||||
<div id="uploadsize-message" title="<?php p($l->t('Upload too large'))?>">
|
||||
<p>
|
||||
<?php p($l->t('The files you are trying to upload exceed the maximum size for file uploads on this server.'));?>
|
||||
|
|
|
@ -36,14 +36,6 @@ class Hooks {
|
|||
*/
|
||||
public static function login($params) {
|
||||
$l = new \OC_L10N('files_encryption');
|
||||
//check if all requirements are met
|
||||
if(!Helper::checkRequirements() || !Helper::checkConfiguration() ) {
|
||||
$error_msg = $l->t("Missing requirements.");
|
||||
$hint = $l->t('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.');
|
||||
\OC_App::disable('files_encryption');
|
||||
\OCP\Util::writeLog('Encryption library', $error_msg . ' ' . $hint, \OCP\Util::ERROR);
|
||||
\OCP\Template::printErrorPage($error_msg, $hint);
|
||||
}
|
||||
|
||||
$view = new \OC_FilesystemView('/');
|
||||
|
||||
|
@ -54,6 +46,15 @@ class Hooks {
|
|||
|
||||
$util = new Util($view, $params['uid']);
|
||||
|
||||
//check if all requirements are met
|
||||
if(!$util->ready() && (!Helper::checkRequirements() || !Helper::checkConfiguration())) {
|
||||
$error_msg = $l->t("Missing requirements.");
|
||||
$hint = $l->t('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.');
|
||||
\OC_App::disable('files_encryption');
|
||||
\OCP\Util::writeLog('Encryption library', $error_msg . ' ' . $hint, \OCP\Util::ERROR);
|
||||
\OCP\Template::printErrorPage($error_msg, $hint);
|
||||
}
|
||||
|
||||
// setup user, if user not ready force relogin
|
||||
if (Helper::setupUser($util, $params['password']) === false) {
|
||||
return false;
|
||||
|
|
|
@ -10,6 +10,8 @@ $TRANSLATIONS = array(
|
|||
"Could not update the private key password. Maybe the old password was not correct." => "Impossible de mettre à jour le mot de passe de la clé privé. Peut-être que l'ancien mot de passe n'était pas correcte.",
|
||||
"Your private key is not valid! Likely your password was changed outside the ownCloud system (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Votre clé de sécurité privée n'est pas valide! Il est probable que votre mot de passe ait été changé sans passer par le système ownCloud (par éxemple: le serveur de votre entreprise). Ain d'avoir à nouveau accès à vos fichiers cryptés, vous pouvez mettre à jour votre clé de sécurité privée dans les paramètres personnels de votre compte.",
|
||||
"Missing requirements." => "Système minimum requis non respecté.",
|
||||
"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." => "Veuillez vous assurer qu'une version de PHP 5.3.3 ou supérieure est installée et qu'OpenSSL et son extension PHP sont activés et configurés correctement. En attendant, l'application de chiffrement été désactivée.",
|
||||
"Following users are not set up for encryption:" => "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :",
|
||||
"Saving..." => "Enregistrement...",
|
||||
"Your private key is not valid! Maybe the your password was changed from outside." => "Votre clef privée est invalide ! Votre mot de passe a peut-être été modifié depuis l'extérieur.",
|
||||
"You can unlock your private key in your " => "Vous pouvez déverrouiller votre clé privée dans votre",
|
||||
|
|
|
@ -1,6 +1,18 @@
|
|||
<?php
|
||||
$TRANSLATIONS = array(
|
||||
"Recovery key successfully disabled" => "Visszaállítási kulcs sikeresen kikapcsolva",
|
||||
"Password successfully changed." => "Jelszó sikeresen megváltoztatva.",
|
||||
"Could not change the password. Maybe the old password was not correct." => "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó.",
|
||||
"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." => "Kérlek győződj meg arról, hogy PHP 5.3.3 vagy annál frissebb van telepítve, valamint a PHP-hez tartozó OpenSSL bővítmény be van-e kapcsolva és az helyesen van-e konfigurálva! Ki lett kapcsolva ideiglenesen a titkosító alkalmazás.",
|
||||
"Saving..." => "Mentés...",
|
||||
"Encryption" => "Titkosítás"
|
||||
"personal settings" => "személyes beállítások",
|
||||
"Encryption" => "Titkosítás",
|
||||
"Enabled" => "Bekapcsolva",
|
||||
"Disabled" => "Kikapcsolva",
|
||||
"Change Password" => "Jelszó megváltoztatása",
|
||||
"Old log-in password" => "Régi bejelentkezési jelszó",
|
||||
"Current log-in password" => "Jelenlegi bejelentkezési jelszó",
|
||||
"Update Private Key Password" => "Privát kulcs jelszó frissítése",
|
||||
"Enable password recovery:" => "Jelszó-visszaállítás bekapcsolása"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
|
||||
|
|
|
@ -52,14 +52,14 @@ class Crypt {
|
|||
|
||||
$return = false;
|
||||
|
||||
$res = openssl_pkey_new(array('private_key_bits' => 4096));
|
||||
$res = Helper::getOpenSSLPkey();
|
||||
|
||||
if ($res === false) {
|
||||
\OCP\Util::writeLog('Encryption library', 'couldn\'t generate users key-pair for ' . \OCP\User::getUser(), \OCP\Util::ERROR);
|
||||
while ($msg = openssl_error_string()) {
|
||||
\OCP\Util::writeLog('Encryption library', 'openssl_pkey_new() fails: ' . $msg, \OCP\Util::ERROR);
|
||||
}
|
||||
} elseif (openssl_pkey_export($res, $privateKey)) {
|
||||
} elseif (openssl_pkey_export($res, $privateKey, null, Helper::getOpenSSLConfig())) {
|
||||
// Get public key
|
||||
$keyDetails = openssl_pkey_get_details($res);
|
||||
$publicKey = $keyDetails['key'];
|
||||
|
@ -70,7 +70,9 @@ class Crypt {
|
|||
);
|
||||
} else {
|
||||
\OCP\Util::writeLog('Encryption library', 'couldn\'t export users private key, please check your servers openSSL configuration.' . \OCP\User::getUser(), \OCP\Util::ERROR);
|
||||
\OCP\Util::writeLog('Encryption library', openssl_error_string(), \OCP\Util::ERROR);
|
||||
while($errMsg = openssl_error_string()) {
|
||||
\OCP\Util::writeLog('Encryption library', $errMsg, \OCP\Util::ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
|
|
|
@ -265,7 +265,7 @@ class Helper {
|
|||
* @return bool true if configuration seems to be OK
|
||||
*/
|
||||
public static function checkConfiguration() {
|
||||
if(openssl_pkey_new(array('private_key_bits' => 4096))) {
|
||||
if(self::getOpenSSLPkey()) {
|
||||
return true;
|
||||
} else {
|
||||
while ($msg = openssl_error_string()) {
|
||||
|
@ -275,6 +275,26 @@ class Helper {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an openssl pkey with config-supplied settings
|
||||
* WARNING: This initializes a new private keypair, which is computationally expensive
|
||||
* @return resource The pkey resource created
|
||||
*/
|
||||
public static function getOpenSSLPkey() {
|
||||
return openssl_pkey_new(self::getOpenSSLConfig());
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an array of OpenSSL config options, default + config
|
||||
* Used for multiple OpenSSL functions
|
||||
* @return array The combined defaults and config settings
|
||||
*/
|
||||
public static function getOpenSSLConfig() {
|
||||
$config = array('private_key_bits' => 4096);
|
||||
$config = array_merge(\OCP\Config::getSystemValue('openssl', array()), $config);
|
||||
return $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief glob uses different pattern than regular expressions, escape glob pattern only
|
||||
* @param unescaped path
|
||||
|
|
|
@ -3,6 +3,12 @@ $TRANSLATIONS = array(
|
|||
"The password is wrong. Try again." => "Le mot de passe est incorrect. Veuillez réessayer.",
|
||||
"Password" => "Mot de passe",
|
||||
"Submit" => "Envoyer",
|
||||
"Sorry, this link doesn’t seem to work anymore." => "Désolé, mais le lien semble ne plus fonctionner.",
|
||||
"Reasons might be:" => "Les raisons peuvent être :",
|
||||
"the item was removed" => "l'item a été supprimé",
|
||||
"the link expired" => "le lien a expiré",
|
||||
"sharing is disabled" => "le partage est désactivé",
|
||||
"For more info, please ask the person who sent this link." => "Pour plus d'informations, veuillez contacter la personne qui a envoyé ce lien.",
|
||||
"%s shared the folder %s with you" => "%s a partagé le répertoire %s avec vous",
|
||||
"%s shared the file %s with you" => "%s a partagé le fichier %s avec vous",
|
||||
"Download" => "Télécharger",
|
||||
|
|
|
@ -8,8 +8,9 @@ $TRANSLATIONS = array(
|
|||
"Delete permanently" => "Supprimer de façon définitive",
|
||||
"Name" => "Nom",
|
||||
"Deleted" => "Effacé",
|
||||
"_%n folder_::_%n folders_" => array("",""),
|
||||
"_%n file_::_%n files_" => array("",""),
|
||||
"_%n folder_::_%n folders_" => array("","%n dossiers"),
|
||||
"_%n file_::_%n files_" => array("","%n fichiers"),
|
||||
"restored" => "restauré",
|
||||
"Nothing in here. Your trash bin is empty!" => "Il n'y a rien ici. Votre corbeille est vide !",
|
||||
"Restore" => "Restaurer",
|
||||
"Delete" => "Supprimer",
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<div id='notification'></div>
|
||||
|
||||
<?php if (isset($_['files']) && count($_['files']) === 0 && $_['dirlisting'] === false):?>
|
||||
<div id="emptyfolder"><?php p($l->t('Nothing in here. Your trash bin is empty!'))?></div>
|
||||
<div id="emptycontent"><?php p($l->t('Nothing in here. Your trash bin is empty!'))?></div>
|
||||
<?php endif; ?>
|
||||
|
||||
<table id="filestable">
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
$TRANSLATIONS = array(
|
||||
"Could not revert: %s" => "Impossible de restaurer %s",
|
||||
"Versions" => "Versions",
|
||||
"Failed to revert {file} to revision {timestamp}." => "Échec du retour du fichier {file} à la révision {timestamp}.",
|
||||
"More versions..." => "Plus de versions...",
|
||||
"No other versions available" => "Aucune autre version disponible",
|
||||
"Restore" => "Restaurer"
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
$TRANSLATIONS = array(
|
||||
"WebDAV Authentication" => "Authentification WebDAV"
|
||||
"WebDAV Authentication" => "Authentification WebDAV",
|
||||
"Address: " => "Adresse :",
|
||||
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Les informations de connexion de l'utilisateur seront envoyées à cette adresse. Ce module analyse le code de la réponse HTTP et considère les codes 401 et 403 comme une authentification invalide et tout autre valeur comme une authentification valide."
|
||||
);
|
||||
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
|
||||
|
|
|
@ -71,9 +71,6 @@ $CONFIG = array(
|
|||
/* Enable the help menu item in the settings */
|
||||
"knowledgebaseenabled" => true,
|
||||
|
||||
/* URL to use for the help page, server should understand OCS */
|
||||
"knowledgebaseurl" => "http://api.apps.owncloud.com/v1",
|
||||
|
||||
/* Enable installing apps from the appstore */
|
||||
"appstoreenabled" => true,
|
||||
|
||||
|
@ -214,4 +211,9 @@ $CONFIG = array(
|
|||
'preview_libreoffice_path' => '/usr/bin/libreoffice',
|
||||
/* cl parameters for libreoffice / openoffice */
|
||||
'preview_office_cl_parameters' => '',
|
||||
|
||||
// Extra SSL options to be used for configuration
|
||||
'openssl' => array(
|
||||
//'config' => '/absolute/location/of/openssl.cnf',
|
||||
),
|
||||
);
|
||||
|
|
|
@ -129,6 +129,7 @@
|
|||
/* counter and actions */
|
||||
#app-navigation .utils {
|
||||
position: absolute;
|
||||
padding: 7px 7px 0 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
|
|
|
@ -44,3 +44,7 @@
|
|||
height: auto !important;
|
||||
}
|
||||
|
||||
/* oc-dialog only uses box shadow which is not supported by ie8 */
|
||||
.ie8 .oc-dialog {
|
||||
border: 1px solid #888888;
|
||||
}
|
||||
|
|
|
@ -150,14 +150,20 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b
|
|||
|
||||
/* CONTENT ------------------------------------------------------------------ */
|
||||
#controls {
|
||||
position:fixed;
|
||||
height:2.8em; width:100%;
|
||||
padding:0 70px 0 0.5em; margin:0;
|
||||
-moz-box-sizing:border-box; box-sizing:border-box;
|
||||
-moz-box-shadow:0 -3px 7px #000; -webkit-box-shadow:0 -3px 7px #000; box-shadow:0 -3px 7px #000;
|
||||
background:#eee; border-bottom:1px solid #e7e7e7; z-index:50;
|
||||
position: fixed;
|
||||
height: 36px;
|
||||
width: 100%;
|
||||
padding: 0 75px 0 6px;
|
||||
margin: 0;
|
||||
background: #eee;
|
||||
border-bottom: 1px solid #e7e7e7;
|
||||
z-index: 50;
|
||||
-moz-box-sizing: border-box; box-sizing: border-box;
|
||||
-moz-box-shadow: 0 -3px 7px #000; -webkit-box-shadow: 0 -3px 7px #000; box-shadow: 0 -3px 7px #000;
|
||||
}
|
||||
#controls .button {
|
||||
display: inline-block;
|
||||
}
|
||||
#controls .button { display:inline-block; }
|
||||
|
||||
#content { position:relative; height:100%; width:100%; }
|
||||
#content .hascontrols { position: relative; top: 2.9em; }
|
||||
|
@ -177,7 +183,14 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b
|
|||
#leftcontent a { height:100%; display:block; margin:0; padding:0 1em 0 0; float:left; }
|
||||
#rightcontent, .rightcontent { position:fixed; top:6.4em; left:24.5em; overflow:auto }
|
||||
|
||||
|
||||
#emptycontent {
|
||||
font-size:1.5em; font-weight:bold;
|
||||
color:#888; text-shadow:#fff 0 1px 0;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
top: 50%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
/* LOG IN & INSTALLATION ------------------------------------------------------------ */
|
||||
|
@ -677,8 +690,21 @@ a.bookmarklet { background-color:#ddd; border:1px solid #ccc; padding:5px;paddin
|
|||
background-color:white;
|
||||
width:100%;
|
||||
}
|
||||
#oc-dialog-filepicker-content .filelist img { margin: 2px 1em 0 4px; }
|
||||
#oc-dialog-filepicker-content .filelist .date { float:right;margin-right:1em; }
|
||||
#oc-dialog-filepicker-content .filelist li {
|
||||
position: relative;
|
||||
}
|
||||
#oc-dialog-filepicker-content .filelist .filename {
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
}
|
||||
#oc-dialog-filepicker-content .filelist img {
|
||||
margin: 2px 1em 0 4px;
|
||||
}
|
||||
#oc-dialog-filepicker-content .filelist .date {
|
||||
float: right;
|
||||
margin-right: 1em;
|
||||
margin-top: 8px;
|
||||
}
|
||||
#oc-dialog-filepicker-content .filepicker_element_selected { background-color:lightblue;}
|
||||
.ui-dialog {position:fixed !important;}
|
||||
span.ui-icon {float: left; margin: 3px 7px 30px 0;}
|
||||
|
|
|
@ -431,9 +431,16 @@ OC.Notification={
|
|||
|
||||
OC.Breadcrumb={
|
||||
container:null,
|
||||
crumbs:[],
|
||||
show:function(dir, leafname, leaflink){
|
||||
OC.Breadcrumb.clear();
|
||||
if(!this.container){//default
|
||||
this.container=$('#controls');
|
||||
}
|
||||
this._show(this.container, dir, leafname, leaflink);
|
||||
},
|
||||
_show:function(container, dir, leafname, leaflink){
|
||||
var self = this;
|
||||
|
||||
this._clear(container);
|
||||
|
||||
// show home + path in subdirectories
|
||||
if (dir && dir !== '/') {
|
||||
|
@ -450,8 +457,7 @@ OC.Breadcrumb={
|
|||
crumbImg.attr('src',OC.imagePath('core','places/home'));
|
||||
crumbLink.append(crumbImg);
|
||||
crumb.append(crumbLink);
|
||||
OC.Breadcrumb.container.prepend(crumb);
|
||||
OC.Breadcrumb.crumbs.push(crumb);
|
||||
container.prepend(crumb);
|
||||
|
||||
//add path parts
|
||||
var segments = dir.split('/');
|
||||
|
@ -460,20 +466,23 @@ OC.Breadcrumb={
|
|||
if (name !== '') {
|
||||
pathurl = pathurl+'/'+name;
|
||||
var link = OC.linkTo('files','index.php')+'?dir='+encodeURIComponent(pathurl);
|
||||
OC.Breadcrumb.push(name, link);
|
||||
self._push(container, name, link);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//add leafname
|
||||
if (leafname && leaflink) {
|
||||
OC.Breadcrumb.push(leafname, leaflink);
|
||||
this._push(container, leafname, leaflink);
|
||||
}
|
||||
},
|
||||
push:function(name, link){
|
||||
if(!OC.Breadcrumb.container){//default
|
||||
OC.Breadcrumb.container=$('#controls');
|
||||
if(!this.container){//default
|
||||
this.container=$('#controls');
|
||||
}
|
||||
return this._push(OC.Breadcrumb.container, name, link);
|
||||
},
|
||||
_push:function(container, name, link){
|
||||
var crumb=$('<div/>');
|
||||
crumb.addClass('crumb').addClass('last');
|
||||
|
||||
|
@ -482,30 +491,30 @@ OC.Breadcrumb={
|
|||
crumbLink.text(name);
|
||||
crumb.append(crumbLink);
|
||||
|
||||
var existing=OC.Breadcrumb.container.find('div.crumb');
|
||||
var existing=container.find('div.crumb');
|
||||
if(existing.length){
|
||||
existing.removeClass('last');
|
||||
existing.last().after(crumb);
|
||||
}else{
|
||||
OC.Breadcrumb.container.prepend(crumb);
|
||||
container.prepend(crumb);
|
||||
}
|
||||
OC.Breadcrumb.crumbs.push(crumb);
|
||||
return crumb;
|
||||
},
|
||||
pop:function(){
|
||||
if(!OC.Breadcrumb.container){//default
|
||||
OC.Breadcrumb.container=$('#controls');
|
||||
if(!this.container){//default
|
||||
this.container=$('#controls');
|
||||
}
|
||||
OC.Breadcrumb.container.find('div.crumb').last().remove();
|
||||
OC.Breadcrumb.container.find('div.crumb').last().addClass('last');
|
||||
OC.Breadcrumb.crumbs.pop();
|
||||
this.container.find('div.crumb').last().remove();
|
||||
this.container.find('div.crumb').last().addClass('last');
|
||||
},
|
||||
clear:function(){
|
||||
if(!OC.Breadcrumb.container){//default
|
||||
OC.Breadcrumb.container=$('#controls');
|
||||
if(!this.container){//default
|
||||
this.container=$('#controls');
|
||||
}
|
||||
OC.Breadcrumb.container.find('div.crumb').remove();
|
||||
OC.Breadcrumb.crumbs=[];
|
||||
this._clear(this.container);
|
||||
},
|
||||
_clear:function(container) {
|
||||
container.find('div.crumb').remove();
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ var OCdialogs = {
|
|||
self.$filePicker = $tmpl.octemplate({
|
||||
dialog_name: dialog_name,
|
||||
title: title
|
||||
}).data('path', '');
|
||||
}).data('path', '').data('multiselect', multiselect).data('mimetype', mimetype_filter);
|
||||
|
||||
if (modal === undefined) {
|
||||
modal = false;
|
||||
|
@ -100,7 +100,7 @@ var OCdialogs = {
|
|||
self._handlePickerClick(event, $(this));
|
||||
});
|
||||
self._fillFilePicker('');
|
||||
}).data('multiselect', multiselect).data('mimetype',mimetype_filter);
|
||||
});
|
||||
|
||||
// build buttons
|
||||
var functionToCall = function() {
|
||||
|
@ -285,7 +285,11 @@ var OCdialogs = {
|
|||
filename: entry.name,
|
||||
date: OC.mtime2date(entry.mtime)
|
||||
});
|
||||
$li.find('img').attr('src', entry.mimetype_icon);
|
||||
if (entry.mimetype === "httpd/unix-directory") {
|
||||
$li.find('img').attr('src', OC.imagePath('core', 'filetypes/folder.png'));
|
||||
} else {
|
||||
$li.find('img').attr('src', OC.Router.generate('core_ajax_preview', {x:32, y:32, file:escapeHTML(dir+'/'+entry.name)}) );
|
||||
}
|
||||
self.$filelist.append($li);
|
||||
});
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
$(document).bind('ajaxSend', function(elm, xhr, s) {
|
||||
$(document).on('ajaxSend',function(elm, xhr, s) {
|
||||
xhr.setRequestHeader('requesttoken', oc_requesttoken);
|
||||
});
|
||||
|
||||
|
|
|
@ -34,23 +34,20 @@
|
|||
*
|
||||
* Which will result in:
|
||||
*
|
||||
* <div id="albumart" style="background-color: rgb(123, 123, 123); ... ">T</div>
|
||||
* <div id="albumart" style="background-color: hsl(123, 90%, 65%); ... ">T</div>
|
||||
*
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
$.fn.placeholder = function(seed) {
|
||||
var hash = md5(seed),
|
||||
maxRange = parseInt('ffffffffff', 16),
|
||||
red = parseInt(hash.substr(0,10), 16) / maxRange * 256,
|
||||
green = parseInt(hash.substr(10,10), 16) / maxRange * 256,
|
||||
blue = parseInt(hash.substr(20,10), 16) / maxRange * 256,
|
||||
rgb = [Math.floor(red), Math.floor(green), Math.floor(blue)],
|
||||
maxRange = parseInt('ffffffffffffffffffffffffffffffff', 16),
|
||||
hue = parseInt(hash, 16) / maxRange * 256,
|
||||
height = this.height();
|
||||
this.css('background-color', 'rgb(' + rgb.join(',') + ')');
|
||||
this.css('background-color', 'hsl(' + hue + ', 90%, 65%)');
|
||||
|
||||
// CSS rules
|
||||
this.css('color', 'rgb(255, 255, 255)');
|
||||
this.css('color', '#fff');
|
||||
this.css('font-weight', 'bold');
|
||||
this.css('text-align', 'center');
|
||||
|
||||
|
|
|
@ -2,6 +2,12 @@
|
|||
$TRANSLATIONS = array(
|
||||
"%s shared »%s« with you" => "%s partagé »%s« avec vous",
|
||||
"group" => "groupe",
|
||||
"Turned on maintenance mode" => "Basculé en mode maintenance",
|
||||
"Turned off maintenance mode" => "Basculé en mode production (non maintenance)",
|
||||
"Updated database" => "Base de données mise à jour",
|
||||
"Updating filecache, this may take really long..." => "En cours de mise à jour de cache de fichiers. Cette opération peut être très longue...",
|
||||
"Updated filecache" => "Cache de fichier mis à jour",
|
||||
"... %d%% done ..." => "... %d%% effectué ...",
|
||||
"Category type not provided." => "Type de catégorie non spécifié.",
|
||||
"No category to add?" => "Pas de catégorie à ajouter ?",
|
||||
"This category already exists: %s" => "Cette catégorie existe déjà : %s",
|
||||
|
@ -31,13 +37,13 @@ $TRANSLATIONS = array(
|
|||
"December" => "décembre",
|
||||
"Settings" => "Paramètres",
|
||||
"seconds ago" => "il y a quelques secondes",
|
||||
"_%n minute ago_::_%n minutes ago_" => array("",""),
|
||||
"_%n hour ago_::_%n hours ago_" => array("",""),
|
||||
"_%n minute ago_::_%n minutes ago_" => array("il y a %n minute","il y a %n minutes"),
|
||||
"_%n hour ago_::_%n hours ago_" => array("Il y a %n heure","Il y a %n heures"),
|
||||
"today" => "aujourd'hui",
|
||||
"yesterday" => "hier",
|
||||
"_%n day ago_::_%n days ago_" => array("",""),
|
||||
"_%n day ago_::_%n days ago_" => array("il y a %n jour","il y a %n jours"),
|
||||
"last month" => "le mois dernier",
|
||||
"_%n month ago_::_%n months ago_" => array("",""),
|
||||
"_%n month ago_::_%n months ago_" => array("Il y a %n mois","Il y a %n mois"),
|
||||
"months ago" => "il y a plusieurs mois",
|
||||
"last year" => "l'année dernière",
|
||||
"years ago" => "il y a plusieurs années",
|
||||
|
@ -84,6 +90,7 @@ $TRANSLATIONS = array(
|
|||
"Email sent" => "Email envoyé",
|
||||
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">ownCloud community</a>." => "La mise à jour a échoué. Veuillez signaler ce problème à la <a href=\"https://github.com/owncloud/core/issues\" target=\"_blank\">communauté ownCloud</a>.",
|
||||
"The update was successful. Redirecting you to ownCloud now." => "La mise à jour a réussi. Vous êtes redirigé maintenant vers ownCloud.",
|
||||
"%s password reset" => "Réinitialisation de votre mot de passe %s",
|
||||
"Use the following link to reset your password: {link}" => "Utilisez le lien suivant pour réinitialiser votre mot de passe : {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 ." => "Le lien permettant de réinitialiser votre mot de passe vous a été transmis.<br>Si vous ne le recevez pas dans un délai raisonnable, vérifier votre boîte de pourriels.<br>Au besoin, contactez votre administrateur local.",
|
||||
"Request failed!<br>Did you make sure your email/username was right?" => "Requête en échec!<br>Avez-vous vérifié vos courriel/nom d'utilisateur?",
|
||||
|
@ -108,9 +115,11 @@ $TRANSLATIONS = array(
|
|||
"Add" => "Ajouter",
|
||||
"Security Warning" => "Avertissement de sécurité",
|
||||
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Votre version de PHP est vulnérable à l'attaque par caractère NULL (CVE-2006-7243)",
|
||||
"Please update your PHP installation to use %s securely." => "Veuillez mettre à jour votre installation PHP pour utiliser %s de façon sécurisée.",
|
||||
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Aucun générateur de nombre aléatoire sécurisé n'est disponible, veuillez activer l'extension PHP OpenSSL",
|
||||
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Sans générateur de nombre aléatoire sécurisé, un attaquant peut être en mesure de prédire les jetons de réinitialisation du mot de passe, et ainsi prendre le contrôle de votre compte utilisateur.",
|
||||
"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Votre répertoire data est certainement accessible depuis l'internet car le fichier .htaccess ne semble pas fonctionner",
|
||||
"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." => "Pour les informations de configuration de votre serveur, veuillez lire la <a href=\"%s\" target=\"_blank\">documentation</a>.",
|
||||
"Create an <strong>admin account</strong>" => "Créer un <strong>compte administrateur</strong>",
|
||||
"Advanced" => "Avancé",
|
||||
"Data folder" => "Répertoire des données",
|
||||
|
|
|
@ -1,5 +1,15 @@
|
|||
<?php
|
||||
$TRANSLATIONS = array(
|
||||
"Category type not provided." => "कैटेगरी प्रकार उपलब्ध नहीं है",
|
||||
"This category already exists: %s" => "यह कैटेगरी पहले से ही मौजूद है: %s",
|
||||
"Object type not provided." => "ऑब्जेक्ट प्रकार नहीं दिया हुआ",
|
||||
"Sunday" => "रविवार",
|
||||
"Monday" => "सोमवार",
|
||||
"Tuesday" => "मंगलवार",
|
||||
"Wednesday" => "बुधवार",
|
||||
"Thursday" => "बृहस्पतिवार",
|
||||
"Friday" => "शुक्रवार",
|
||||
"Saturday" => "शनिवार",
|
||||
"January" => "जनवरी",
|
||||
"February" => "फरवरी",
|
||||
"March" => "मार्च",
|
||||
|
@ -21,6 +31,9 @@ $TRANSLATIONS = array(
|
|||
"Share" => "साझा करें",
|
||||
"Share with" => "के साथ साझा",
|
||||
"Password" => "पासवर्ड",
|
||||
"Send" => "भेजें",
|
||||
"Sending ..." => "भेजा जा रहा है",
|
||||
"Email sent" => "ईमेल भेज दिया गया है ",
|
||||
"Use the following link to reset your password: {link}" => "आगे दिये गये लिंक का उपयोग पासवर्ड बदलने के लिये किजीये: {link}",
|
||||
"You will receive a link to reset your password via Email." => "पासवर्ड बदलने कि लिंक आपको ई-मेल द्वारा भेजी जायेगी|",
|
||||
"Username" => "प्रयोक्ता का नाम",
|
||||
|
@ -31,6 +44,7 @@ $TRANSLATIONS = array(
|
|||
"Apps" => "Apps",
|
||||
"Help" => "सहयोग",
|
||||
"Cloud not found" => "क्लौड नहीं मिला ",
|
||||
"Add" => "डाले",
|
||||
"Create an <strong>admin account</strong>" => "व्यवस्थापक खाता बनाएँ",
|
||||
"Advanced" => "उन्नत",
|
||||
"Data folder" => "डाटा फोल्डर",
|
||||
|
|
|
@ -43,7 +43,7 @@ class Controller {
|
|||
}
|
||||
|
||||
if (\OC_User::userExists($_POST['user']) && $continue) {
|
||||
$token = hash('sha256', \OC_Util::generate_random_bytes(30).\OC_Config::getValue('passwordsalt', ''));
|
||||
$token = hash('sha256', \OC_Util::generateRandomBytes(30).\OC_Config::getValue('passwordsalt', ''));
|
||||
\OC_Preferences::setValue($_POST['user'], 'owncloud', 'lostpassword',
|
||||
hash('sha256', $token)); // Hash the token again to prevent timing attacks
|
||||
$email = \OC_Preferences::getValue($_POST['user'], 'settings', 'email', '');
|
||||
|
|
|
@ -5,11 +5,11 @@ OC_App::loadApps();
|
|||
|
||||
if ($service == 'core.css') {
|
||||
$minimizer = new OC_Minimizer_CSS();
|
||||
$files = OC_TemplateLayout::findStylesheetFiles(OC_Util::$core_styles);
|
||||
$files = OC_TemplateLayout::findStylesheetFiles(OC_Util::$coreStyles);
|
||||
$minimizer->output($files, $service);
|
||||
}
|
||||
else if ($service == 'core.js') {
|
||||
$minimizer = new OC_Minimizer_JS();
|
||||
$files = OC_TemplateLayout::findJavascriptFiles(OC_Util::$core_scripts);
|
||||
$files = OC_TemplateLayout::findJavascriptFiles(OC_Util::$coreScripts);
|
||||
$minimizer->output($files, $service);
|
||||
}
|
||||
|
|
|
@ -33,8 +33,8 @@ $opts = array(
|
|||
'hasOracle' => $hasOracle,
|
||||
'hasMSSQL' => $hasMSSQL,
|
||||
'directory' => $datadir,
|
||||
'secureRNG' => OC_Util::secureRNG_available(),
|
||||
'htaccessWorking' => OC_Util::ishtaccessworking(),
|
||||
'secureRNG' => OC_Util::secureRNGAvailable(),
|
||||
'htaccessWorking' => OC_Util::isHtAccessWorking(),
|
||||
'vulnerableToNullByte' => $vulnerableToNullByte,
|
||||
'errors' => array(),
|
||||
);
|
||||
|
|
|
@ -12,9 +12,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"PO-Revision-Date: 2013-08-30 13:50+0000\n"
|
||||
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:43-0400\n"
|
||||
"PO-Revision-Date: 2013-09-03 09:30+0000\n"
|
||||
"Last-Translator: Christophe Lherieau <skimpax@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -33,28 +33,28 @@ msgstr "groupe"
|
|||
|
||||
#: ajax/update.php:11
|
||||
msgid "Turned on maintenance mode"
|
||||
msgstr ""
|
||||
msgstr "Basculé en mode maintenance"
|
||||
|
||||
#: ajax/update.php:14
|
||||
msgid "Turned off maintenance mode"
|
||||
msgstr ""
|
||||
msgstr "Basculé en mode production (non maintenance)"
|
||||
|
||||
#: ajax/update.php:17
|
||||
msgid "Updated database"
|
||||
msgstr ""
|
||||
msgstr "Base de données mise à jour"
|
||||
|
||||
#: ajax/update.php:20
|
||||
msgid "Updating filecache, this may take really long..."
|
||||
msgstr ""
|
||||
msgstr "En cours de mise à jour de cache de fichiers. Cette opération peut être très longue..."
|
||||
|
||||
#: ajax/update.php:23
|
||||
msgid "Updated filecache"
|
||||
msgstr ""
|
||||
msgstr "Cache de fichier mis à jour"
|
||||
|
||||
#: ajax/update.php:26
|
||||
#, php-format
|
||||
msgid "... %d%% done ..."
|
||||
msgstr ""
|
||||
msgstr "... %d%% effectué ..."
|
||||
|
||||
#: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25
|
||||
msgid "Category type not provided."
|
||||
|
@ -182,14 +182,14 @@ msgstr "il y a quelques secondes"
|
|||
#: js/js.js:813
|
||||
msgid "%n minute ago"
|
||||
msgid_plural "%n minutes ago"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[0] "il y a %n minute"
|
||||
msgstr[1] "il y a %n minutes"
|
||||
|
||||
#: js/js.js:814
|
||||
msgid "%n hour ago"
|
||||
msgid_plural "%n hours ago"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[0] "Il y a %n heure"
|
||||
msgstr[1] "Il y a %n heures"
|
||||
|
||||
#: js/js.js:815
|
||||
msgid "today"
|
||||
|
@ -202,8 +202,8 @@ msgstr "hier"
|
|||
#: js/js.js:817
|
||||
msgid "%n day ago"
|
||||
msgid_plural "%n days ago"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[0] "il y a %n jour"
|
||||
msgstr[1] "il y a %n jours"
|
||||
|
||||
#: js/js.js:818
|
||||
msgid "last month"
|
||||
|
@ -212,8 +212,8 @@ msgstr "le mois dernier"
|
|||
#: js/js.js:819
|
||||
msgid "%n month ago"
|
||||
msgid_plural "%n months ago"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[0] "Il y a %n mois"
|
||||
msgstr[1] "Il y a %n mois"
|
||||
|
||||
#: js/js.js:820
|
||||
msgid "months ago"
|
||||
|
@ -410,7 +410,7 @@ msgstr "La mise à jour a réussi. Vous êtes redirigé maintenant vers ownCloud
|
|||
#: lostpassword/controller.php:61
|
||||
#, php-format
|
||||
msgid "%s password reset"
|
||||
msgstr ""
|
||||
msgstr "Réinitialisation de votre mot de passe %s"
|
||||
|
||||
#: lostpassword/templates/email.php:2
|
||||
msgid "Use the following link to reset your password: {link}"
|
||||
|
@ -527,7 +527,7 @@ msgstr "Votre version de PHP est vulnérable à l'attaque par caractère NULL (C
|
|||
#: templates/installation.php:26
|
||||
#, php-format
|
||||
msgid "Please update your PHP installation to use %s securely."
|
||||
msgstr ""
|
||||
msgstr "Veuillez mettre à jour votre installation PHP pour utiliser %s de façon sécurisée."
|
||||
|
||||
#: templates/installation.php:32
|
||||
msgid ""
|
||||
|
@ -552,7 +552,7 @@ msgstr "Votre répertoire data est certainement accessible depuis l'internet car
|
|||
msgid ""
|
||||
"For information how to properly configure your server, please see the <a "
|
||||
"href=\"%s\" target=\"_blank\">documentation</a>."
|
||||
msgstr ""
|
||||
msgstr "Pour les informations de configuration de votre serveur, veuillez lire la <a href=\"%s\" target=\"_blank\">documentation</a>."
|
||||
|
||||
#: templates/installation.php:47
|
||||
msgid "Create an <strong>admin account</strong>"
|
||||
|
|
|
@ -10,9 +10,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"PO-Revision-Date: 2013-08-30 13:50+0000\n"
|
||||
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:42-0400\n"
|
||||
"PO-Revision-Date: 2013-09-03 09:25+0000\n"
|
||||
"Last-Translator: Christophe Lherieau <skimpax@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -161,24 +161,24 @@ msgstr "annuler"
|
|||
#: js/filelist.js:424 js/filelist.js:490 js/files.js:581
|
||||
msgid "%n folder"
|
||||
msgid_plural "%n folders"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[0] "%n dossier"
|
||||
msgstr[1] "%n dossiers"
|
||||
|
||||
#: js/filelist.js:425 js/filelist.js:491 js/files.js:587
|
||||
msgid "%n file"
|
||||
msgid_plural "%n files"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[0] "%n fichier"
|
||||
msgstr[1] "%n fichiers"
|
||||
|
||||
#: js/filelist.js:432
|
||||
msgid "{dirs} and {files}"
|
||||
msgstr ""
|
||||
msgstr "{dir} et {files}"
|
||||
|
||||
#: js/filelist.js:563
|
||||
msgid "Uploading %n file"
|
||||
msgid_plural "Uploading %n files"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[0] "Téléversement de %n fichier"
|
||||
msgstr[1] "Téléversement de %n fichiers"
|
||||
|
||||
#: js/filelist.js:628
|
||||
msgid "files uploading"
|
||||
|
@ -210,7 +210,7 @@ msgstr "Votre espace de stockage est presque plein ({usedSpacePercent}%)"
|
|||
msgid ""
|
||||
"Encryption was disabled but your files are still encrypted. Please go to "
|
||||
"your personal settings to decrypt your files."
|
||||
msgstr ""
|
||||
msgstr "Le chiffrement était désactivé mais vos fichiers sont toujours chiffrés. Veuillez vous rendre sur vos Paramètres personnels pour déchiffrer vos fichiers."
|
||||
|
||||
#: js/files.js:245
|
||||
msgid ""
|
||||
|
|
|
@ -11,9 +11,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
|
||||
"POT-Creation-Date: 2013-08-21 08:10-0400\n"
|
||||
"PO-Revision-Date: 2013-08-19 19:20+0000\n"
|
||||
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:42-0400\n"
|
||||
"PO-Revision-Date: 2013-09-03 10:00+0000\n"
|
||||
"Last-Translator: Christophe Lherieau <skimpax@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -65,20 +65,20 @@ msgid ""
|
|||
"files."
|
||||
msgstr "Votre clé de sécurité privée n'est pas valide! Il est probable que votre mot de passe ait été changé sans passer par le système ownCloud (par éxemple: le serveur de votre entreprise). Ain d'avoir à nouveau accès à vos fichiers cryptés, vous pouvez mettre à jour votre clé de sécurité privée dans les paramètres personnels de votre compte."
|
||||
|
||||
#: hooks/hooks.php:41
|
||||
#: hooks/hooks.php:51
|
||||
msgid "Missing requirements."
|
||||
msgstr "Système minimum requis non respecté."
|
||||
|
||||
#: hooks/hooks.php:42
|
||||
#: hooks/hooks.php:52
|
||||
msgid ""
|
||||
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL "
|
||||
"together with the PHP extension is enabled and configured properly. For now,"
|
||||
" the encryption app has been disabled."
|
||||
msgstr ""
|
||||
msgstr "Veuillez vous assurer qu'une version de PHP 5.3.3 ou supérieure est installée et qu'OpenSSL et son extension PHP sont activés et configurés correctement. En attendant, l'application de chiffrement été désactivée."
|
||||
|
||||
#: hooks/hooks.php:249
|
||||
#: hooks/hooks.php:250
|
||||
msgid "Following users are not set up for encryption:"
|
||||
msgstr ""
|
||||
msgstr "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :"
|
||||
|
||||
#: js/settings-admin.js:11
|
||||
msgid "Saving..."
|
||||
|
|
|
@ -4,13 +4,14 @@
|
|||
#
|
||||
# Translators:
|
||||
# square <benben390-390@yahoo.fr>, 2013
|
||||
# Christophe Lherieau <skimpax@gmail.com>, 2013
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
|
||||
"POT-Creation-Date: 2013-08-19 15:06-0400\n"
|
||||
"PO-Revision-Date: 2013-08-19 18:23+0000\n"
|
||||
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:43-0400\n"
|
||||
"PO-Revision-Date: 2013-09-03 11:10+0000\n"
|
||||
"Last-Translator: Christophe Lherieau <skimpax@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -32,27 +33,27 @@ msgstr "Envoyer"
|
|||
|
||||
#: templates/part.404.php:3
|
||||
msgid "Sorry, this link doesn’t seem to work anymore."
|
||||
msgstr ""
|
||||
msgstr "Désolé, mais le lien semble ne plus fonctionner."
|
||||
|
||||
#: templates/part.404.php:4
|
||||
msgid "Reasons might be:"
|
||||
msgstr ""
|
||||
msgstr "Les raisons peuvent être :"
|
||||
|
||||
#: templates/part.404.php:6
|
||||
msgid "the item was removed"
|
||||
msgstr ""
|
||||
msgstr "l'item a été supprimé"
|
||||
|
||||
#: templates/part.404.php:7
|
||||
msgid "the link expired"
|
||||
msgstr ""
|
||||
msgstr "le lien a expiré"
|
||||
|
||||
#: templates/part.404.php:8
|
||||
msgid "sharing is disabled"
|
||||
msgstr ""
|
||||
msgstr "le partage est désactivé"
|
||||
|
||||
#: templates/part.404.php:10
|
||||
msgid "For more info, please ask the person who sent this link."
|
||||
msgstr ""
|
||||
msgstr "Pour plus d'informations, veuillez contacter la personne qui a envoyé ce lien."
|
||||
|
||||
#: templates/public.php:15
|
||||
#, php-format
|
||||
|
@ -64,7 +65,7 @@ msgstr "%s a partagé le répertoire %s avec vous"
|
|||
msgid "%s shared the file %s with you"
|
||||
msgstr "%s a partagé le fichier %s avec vous"
|
||||
|
||||
#: templates/public.php:26 templates/public.php:88
|
||||
#: templates/public.php:26 templates/public.php:92
|
||||
msgid "Download"
|
||||
msgstr "Télécharger"
|
||||
|
||||
|
@ -76,6 +77,6 @@ msgstr "Envoyer"
|
|||
msgid "Cancel upload"
|
||||
msgstr "Annuler l'envoi"
|
||||
|
||||
#: templates/public.php:85
|
||||
#: templates/public.php:89
|
||||
msgid "No preview available for"
|
||||
msgstr "Pas d'aperçu disponible pour"
|
||||
|
|
|
@ -3,13 +3,14 @@
|
|||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Christophe Lherieau <skimpax@gmail.com>, 2013
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
|
||||
"POT-Creation-Date: 2013-08-15 04:47-0400\n"
|
||||
"PO-Revision-Date: 2013-08-15 08:48+0000\n"
|
||||
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:43-0400\n"
|
||||
"PO-Revision-Date: 2013-09-03 09:30+0000\n"
|
||||
"Last-Translator: Christophe Lherieau <skimpax@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -27,45 +28,45 @@ msgstr "Impossible d'effacer %s de façon permanente"
|
|||
msgid "Couldn't restore %s"
|
||||
msgstr "Impossible de restaurer %s"
|
||||
|
||||
#: js/trash.js:7 js/trash.js:100
|
||||
#: js/trash.js:7 js/trash.js:102
|
||||
msgid "perform restore operation"
|
||||
msgstr "effectuer l'opération de restauration"
|
||||
|
||||
#: js/trash.js:20 js/trash.js:48 js/trash.js:118 js/trash.js:146
|
||||
#: js/trash.js:20 js/trash.js:49 js/trash.js:120 js/trash.js:148
|
||||
msgid "Error"
|
||||
msgstr "Erreur"
|
||||
|
||||
#: js/trash.js:36
|
||||
#: js/trash.js:37
|
||||
msgid "delete file permanently"
|
||||
msgstr "effacer définitivement le fichier"
|
||||
|
||||
#: js/trash.js:127
|
||||
#: js/trash.js:129
|
||||
msgid "Delete permanently"
|
||||
msgstr "Supprimer de façon définitive"
|
||||
|
||||
#: js/trash.js:182 templates/index.php:17
|
||||
#: js/trash.js:184 templates/index.php:17
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: js/trash.js:183 templates/index.php:27
|
||||
#: js/trash.js:185 templates/index.php:27
|
||||
msgid "Deleted"
|
||||
msgstr "Effacé"
|
||||
|
||||
#: js/trash.js:191
|
||||
#: js/trash.js:193
|
||||
msgid "%n folder"
|
||||
msgid_plural "%n folders"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[1] "%n dossiers"
|
||||
|
||||
#: js/trash.js:197
|
||||
#: js/trash.js:199
|
||||
msgid "%n file"
|
||||
msgid_plural "%n files"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[1] "%n fichiers"
|
||||
|
||||
#: lib/trash.php:819 lib/trash.php:821
|
||||
#: lib/trash.php:814 lib/trash.php:816
|
||||
msgid "restored"
|
||||
msgstr ""
|
||||
msgstr "restauré"
|
||||
|
||||
#: templates/index.php:9
|
||||
msgid "Nothing in here. Your trash bin is empty!"
|
||||
|
|
|
@ -3,13 +3,14 @@
|
|||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Christophe Lherieau <skimpax@gmail.com>, 2013
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
|
||||
"POT-Creation-Date: 2013-07-28 01:56-0400\n"
|
||||
"PO-Revision-Date: 2013-07-27 06:10+0000\n"
|
||||
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:43-0400\n"
|
||||
"PO-Revision-Date: 2013-09-03 11:10+0000\n"
|
||||
"Last-Translator: Christophe Lherieau <skimpax@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -28,16 +29,16 @@ msgstr "Versions"
|
|||
|
||||
#: js/versions.js:53
|
||||
msgid "Failed to revert {file} to revision {timestamp}."
|
||||
msgstr ""
|
||||
msgstr "Échec du retour du fichier {file} à la révision {timestamp}."
|
||||
|
||||
#: js/versions.js:79
|
||||
msgid "More versions..."
|
||||
msgstr ""
|
||||
msgstr "Plus de versions..."
|
||||
|
||||
#: js/versions.js:116
|
||||
msgid "No other versions available"
|
||||
msgstr ""
|
||||
msgstr "Aucune autre version disponible"
|
||||
|
||||
#: js/versions.js:149
|
||||
#: js/versions.js:145
|
||||
msgid "Restore"
|
||||
msgstr "Restaurer"
|
||||
|
|
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
|
||||
"POT-Creation-Date: 2013-08-25 19:18-0400\n"
|
||||
"PO-Revision-Date: 2013-08-25 23:18+0000\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:44-0400\n"
|
||||
"PO-Revision-Date: 2013-09-03 09:30+0000\n"
|
||||
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
|
@ -265,51 +265,51 @@ msgstr "Votre serveur web, n'est pas correctement configuré pour permettre la s
|
|||
msgid "Please double check the <a href='%s'>installation guides</a>."
|
||||
msgstr "Veuillez vous référer au <a href='%s'>guide d'installation</a>."
|
||||
|
||||
#: template/functions.php:80
|
||||
#: template/functions.php:96
|
||||
msgid "seconds ago"
|
||||
msgstr "il y a quelques secondes"
|
||||
|
||||
#: template/functions.php:81
|
||||
#: template/functions.php:97
|
||||
msgid "%n minute ago"
|
||||
msgid_plural "%n minutes ago"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[1] "il y a %n minutes"
|
||||
|
||||
#: template/functions.php:82
|
||||
#: template/functions.php:98
|
||||
msgid "%n hour ago"
|
||||
msgid_plural "%n hours ago"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[1] "Il y a %n heures"
|
||||
|
||||
#: template/functions.php:83
|
||||
#: template/functions.php:99
|
||||
msgid "today"
|
||||
msgstr "aujourd'hui"
|
||||
|
||||
#: template/functions.php:84
|
||||
#: template/functions.php:100
|
||||
msgid "yesterday"
|
||||
msgstr "hier"
|
||||
|
||||
#: template/functions.php:85
|
||||
#: template/functions.php:101
|
||||
msgid "%n day go"
|
||||
msgid_plural "%n days ago"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[1] "il y a %n jours"
|
||||
|
||||
#: template/functions.php:86
|
||||
#: template/functions.php:102
|
||||
msgid "last month"
|
||||
msgstr "le mois dernier"
|
||||
|
||||
#: template/functions.php:87
|
||||
#: template/functions.php:103
|
||||
msgid "%n month ago"
|
||||
msgid_plural "%n months ago"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[1] "Il y a %n mois"
|
||||
|
||||
#: template/functions.php:88
|
||||
#: template/functions.php:104
|
||||
msgid "last year"
|
||||
msgstr "l'année dernière"
|
||||
|
||||
#: template/functions.php:89
|
||||
#: template/functions.php:105
|
||||
msgid "years ago"
|
||||
msgstr "il y a plusieurs années"
|
||||
|
||||
|
|
|
@ -11,9 +11,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
|
||||
"POT-Creation-Date: 2013-08-25 19:18-0400\n"
|
||||
"PO-Revision-Date: 2013-08-25 23:18+0000\n"
|
||||
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:44-0400\n"
|
||||
"PO-Revision-Date: 2013-09-03 09:50+0000\n"
|
||||
"Last-Translator: Christophe Lherieau <skimpax@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -88,53 +88,53 @@ msgstr "Impossible de supprimer l'utilisateur du groupe %s"
|
|||
msgid "Couldn't update app."
|
||||
msgstr "Impossible de mettre à jour l'application"
|
||||
|
||||
#: js/apps.js:35
|
||||
#: js/apps.js:43
|
||||
msgid "Update to {appversion}"
|
||||
msgstr "Mettre à jour vers {appversion}"
|
||||
|
||||
#: js/apps.js:41 js/apps.js:74 js/apps.js:100
|
||||
#: js/apps.js:49 js/apps.js:82 js/apps.js:108
|
||||
msgid "Disable"
|
||||
msgstr "Désactiver"
|
||||
|
||||
#: js/apps.js:41 js/apps.js:81 js/apps.js:94 js/apps.js:109
|
||||
#: js/apps.js:49 js/apps.js:89 js/apps.js:102 js/apps.js:117
|
||||
msgid "Enable"
|
||||
msgstr "Activer"
|
||||
|
||||
#: js/apps.js:63
|
||||
#: js/apps.js:71
|
||||
msgid "Please wait...."
|
||||
msgstr "Veuillez patienter…"
|
||||
|
||||
#: js/apps.js:71 js/apps.js:72 js/apps.js:92
|
||||
#: js/apps.js:79 js/apps.js:80 js/apps.js:100
|
||||
msgid "Error while disabling app"
|
||||
msgstr ""
|
||||
msgstr "Erreur lors de la désactivation de l'application"
|
||||
|
||||
#: js/apps.js:91 js/apps.js:104 js/apps.js:105
|
||||
#: js/apps.js:99 js/apps.js:112 js/apps.js:113
|
||||
msgid "Error while enabling app"
|
||||
msgstr ""
|
||||
msgstr "Erreur lors de l'activation de l'application"
|
||||
|
||||
#: js/apps.js:115
|
||||
#: js/apps.js:123
|
||||
msgid "Updating...."
|
||||
msgstr "Mise à jour..."
|
||||
|
||||
#: js/apps.js:118
|
||||
#: js/apps.js:126
|
||||
msgid "Error while updating app"
|
||||
msgstr "Erreur lors de la mise à jour de l'application"
|
||||
|
||||
#: js/apps.js:118
|
||||
#: js/apps.js:126
|
||||
msgid "Error"
|
||||
msgstr "Erreur"
|
||||
|
||||
#: js/apps.js:119 templates/apps.php:43
|
||||
#: js/apps.js:127 templates/apps.php:43
|
||||
msgid "Update"
|
||||
msgstr "Mettre à jour"
|
||||
|
||||
#: js/apps.js:122
|
||||
#: js/apps.js:130
|
||||
msgid "Updated"
|
||||
msgstr "Mise à jour effectuée avec succès"
|
||||
|
||||
#: js/personal.js:150
|
||||
msgid "Decrypting files... Please wait, this can take some time."
|
||||
msgstr ""
|
||||
msgstr "Déchiffrement en cours... Cela peut prendre un certain temps."
|
||||
|
||||
#: js/personal.js:172
|
||||
msgid "Saving..."
|
||||
|
@ -196,7 +196,7 @@ msgid ""
|
|||
"configure your webserver in a way that the data directory is no longer "
|
||||
"accessible or you move the data directory outside the webserver document "
|
||||
"root."
|
||||
msgstr ""
|
||||
msgstr "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l'extérieur de la racine du serveur web."
|
||||
|
||||
#: templates/admin.php:29
|
||||
msgid "Setup Warning"
|
||||
|
@ -211,7 +211,7 @@ msgstr "Votre serveur web, n'est pas correctement configuré pour permettre la s
|
|||
#: templates/admin.php:33
|
||||
#, php-format
|
||||
msgid "Please double check the <a href=\"%s\">installation guides</a>."
|
||||
msgstr ""
|
||||
msgstr "Veuillez consulter à nouveau les <a href=\"%s\">guides d'installation</a>."
|
||||
|
||||
#: templates/admin.php:44
|
||||
msgid "Module 'fileinfo' missing"
|
||||
|
@ -233,7 +233,7 @@ msgid ""
|
|||
"System locale can't be set to %s. This means that there might be problems "
|
||||
"with certain characters in file names. We strongly suggest to install the "
|
||||
"required packages on your system to support %s."
|
||||
msgstr ""
|
||||
msgstr "Le localisation du système n'a pu être configurée à %s. Cela signifie qu'il pourrait y avoir des problèmes avec certains caractères dans les noms de fichiers. Il est fortement recommandé d'installer les paquets requis pour le support de %s."
|
||||
|
||||
#: templates/admin.php:75
|
||||
msgid "Internet connection not working"
|
||||
|
@ -246,7 +246,7 @@ msgid ""
|
|||
"installation of 3rd party apps don´t work. Accessing files from remote and "
|
||||
"sending of notification emails might also not work. We suggest to enable "
|
||||
"internet connection for this server if you want to have all features."
|
||||
msgstr ""
|
||||
msgstr "Ce serveur ne peut se connecter à internet. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que les notifications par mails ne seront pas fonctionnels également. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes."
|
||||
|
||||
#: templates/admin.php:92
|
||||
msgid "Cron"
|
||||
|
@ -260,11 +260,11 @@ msgstr "Exécute une tâche à chaque chargement de page"
|
|||
msgid ""
|
||||
"cron.php is registered at a webcron service to call cron.php once a minute "
|
||||
"over http."
|
||||
msgstr ""
|
||||
msgstr "cron.php est enregistré en tant que service webcron pour appeler cron.php une fois par minute via http."
|
||||
|
||||
#: templates/admin.php:115
|
||||
msgid "Use systems cron service to call the cron.php file once a minute."
|
||||
msgstr ""
|
||||
msgstr "Utilise le service cron du système pour appeler cron.php une fois par minute."
|
||||
|
||||
#: templates/admin.php:120
|
||||
msgid "Sharing"
|
||||
|
@ -288,12 +288,12 @@ msgstr "Autoriser les utilisateurs à partager des éléments publiquement à l'
|
|||
|
||||
#: templates/admin.php:143
|
||||
msgid "Allow public uploads"
|
||||
msgstr ""
|
||||
msgstr "Autoriser les téléversements publics"
|
||||
|
||||
#: templates/admin.php:144
|
||||
msgid ""
|
||||
"Allow users to enable others to upload into their publicly shared folders"
|
||||
msgstr ""
|
||||
msgstr "Permet d'autoriser les autres utilisateurs à téléverser dans le dossier partagé public de l'utilisateur"
|
||||
|
||||
#: templates/admin.php:152
|
||||
msgid "Allow resharing"
|
||||
|
@ -322,14 +322,14 @@ msgstr "Forcer HTTPS"
|
|||
#: templates/admin.php:185
|
||||
#, php-format
|
||||
msgid "Forces the clients to connect to %s via an encrypted connection."
|
||||
msgstr ""
|
||||
msgstr "Forcer les clients à se connecter à %s via une connexion chiffrée."
|
||||
|
||||
#: templates/admin.php:191
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Please connect to your %s via HTTPS to enable or disable the SSL "
|
||||
"enforcement."
|
||||
msgstr ""
|
||||
msgstr "Veuillez vous connecter à cette instance %s via HTTPS pour activer ou désactiver SSL."
|
||||
|
||||
#: templates/admin.php:203
|
||||
msgid "Log"
|
||||
|
@ -483,15 +483,15 @@ msgstr "Chiffrement"
|
|||
|
||||
#: templates/personal.php:119
|
||||
msgid "The encryption app is no longer enabled, decrypt all your file"
|
||||
msgstr ""
|
||||
msgstr "L'application de chiffrement n'est plus activée, déchiffrez tous vos fichiers"
|
||||
|
||||
#: templates/personal.php:125
|
||||
msgid "Log-in password"
|
||||
msgstr ""
|
||||
msgstr "Mot de passe de connexion"
|
||||
|
||||
#: templates/personal.php:130
|
||||
msgid "Decrypt all Files"
|
||||
msgstr ""
|
||||
msgstr "Déchiffrer tous les fichiers"
|
||||
|
||||
#: templates/users.php:21
|
||||
msgid "Login Name"
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
# Translators:
|
||||
# Adalberto Rodrigues <rodrigues_adalberto@yahoo.fr>, 2013
|
||||
# Christophe Lherieau <skimpax@gmail.com>, 2013
|
||||
# mishka <mishka.lazzlo@gmail.com>, 2013
|
||||
# mishka, 2013
|
||||
# ouafnico <nicolas@shivaserv.fr>, 2012
|
||||
# Robert Di Rosa <>, 2012
|
||||
# Romain DEP. <rom1dep@gmail.com>, 2012-2013
|
||||
|
@ -13,9 +13,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
|
||||
"POT-Creation-Date: 2013-07-27 01:56-0400\n"
|
||||
"PO-Revision-Date: 2013-07-27 05:57+0000\n"
|
||||
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:43-0400\n"
|
||||
"PO-Revision-Date: 2013-09-03 10:00+0000\n"
|
||||
"Last-Translator: Christophe Lherieau <skimpax@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -29,11 +29,11 @@ msgstr "Authentification WebDAV"
|
|||
|
||||
#: templates/settings.php:4
|
||||
msgid "Address: "
|
||||
msgstr ""
|
||||
msgstr "Adresse :"
|
||||
|
||||
#: templates/settings.php:7
|
||||
msgid ""
|
||||
"The user credentials will be sent to this address. This plugin checks the "
|
||||
"response and will interpret the HTTP statuscodes 401 and 403 as invalid "
|
||||
"credentials, and all other responses as valid credentials."
|
||||
msgstr ""
|
||||
msgstr "Les informations de connexion de l'utilisateur seront envoyées à cette adresse. Ce module analyse le code de la réponse HTTP et considère les codes 401 et 403 comme une authentification invalide et tout autre valeur comme une authentification valide."
|
||||
|
|
|
@ -3,14 +3,15 @@
|
|||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Debanjum <debanjum@gmail.com>, 2013
|
||||
# rktaiwala <rktaiwala@gmail.com>, 2013
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
|
||||
"POT-Creation-Date: 2013-08-30 09:32-0400\n"
|
||||
"PO-Revision-Date: 2013-08-30 13:33+0000\n"
|
||||
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:43-0400\n"
|
||||
"PO-Revision-Date: 2013-09-03 11:00+0000\n"
|
||||
"Last-Translator: Debanjum <debanjum@gmail.com>\n"
|
||||
"Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -54,7 +55,7 @@ msgstr ""
|
|||
|
||||
#: ajax/vcategories/add.php:26 ajax/vcategories/edit.php:25
|
||||
msgid "Category type not provided."
|
||||
msgstr ""
|
||||
msgstr "कैटेगरी प्रकार उपलब्ध नहीं है"
|
||||
|
||||
#: ajax/vcategories/add.php:30
|
||||
msgid "No category to add?"
|
||||
|
@ -63,13 +64,13 @@ msgstr ""
|
|||
#: ajax/vcategories/add.php:37
|
||||
#, php-format
|
||||
msgid "This category already exists: %s"
|
||||
msgstr ""
|
||||
msgstr "यह कैटेगरी पहले से ही मौजूद है: %s"
|
||||
|
||||
#: ajax/vcategories/addToFavorites.php:26 ajax/vcategories/delete.php:27
|
||||
#: ajax/vcategories/favorites.php:24
|
||||
#: ajax/vcategories/removeFromFavorites.php:26
|
||||
msgid "Object type not provided."
|
||||
msgstr ""
|
||||
msgstr "ऑब्जेक्ट प्रकार नहीं दिया हुआ"
|
||||
|
||||
#: ajax/vcategories/addToFavorites.php:30
|
||||
#: ajax/vcategories/removeFromFavorites.php:30
|
||||
|
@ -93,31 +94,31 @@ msgstr ""
|
|||
|
||||
#: js/config.php:32
|
||||
msgid "Sunday"
|
||||
msgstr ""
|
||||
msgstr "रविवार"
|
||||
|
||||
#: js/config.php:33
|
||||
msgid "Monday"
|
||||
msgstr ""
|
||||
msgstr "सोमवार"
|
||||
|
||||
#: js/config.php:34
|
||||
msgid "Tuesday"
|
||||
msgstr ""
|
||||
msgstr "मंगलवार"
|
||||
|
||||
#: js/config.php:35
|
||||
msgid "Wednesday"
|
||||
msgstr ""
|
||||
msgstr "बुधवार"
|
||||
|
||||
#: js/config.php:36
|
||||
msgid "Thursday"
|
||||
msgstr ""
|
||||
msgstr "बृहस्पतिवार"
|
||||
|
||||
#: js/config.php:37
|
||||
msgid "Friday"
|
||||
msgstr ""
|
||||
msgstr "शुक्रवार"
|
||||
|
||||
#: js/config.php:38
|
||||
msgid "Saturday"
|
||||
msgstr ""
|
||||
msgstr "शनिवार"
|
||||
|
||||
#: js/config.php:43
|
||||
msgid "January"
|
||||
|
@ -318,7 +319,7 @@ msgstr ""
|
|||
|
||||
#: js/share.js:203
|
||||
msgid "Send"
|
||||
msgstr ""
|
||||
msgstr "भेजें"
|
||||
|
||||
#: js/share.js:208
|
||||
msgid "Set expiration date"
|
||||
|
@ -386,11 +387,11 @@ msgstr ""
|
|||
|
||||
#: js/share.js:670
|
||||
msgid "Sending ..."
|
||||
msgstr ""
|
||||
msgstr "भेजा जा रहा है"
|
||||
|
||||
#: js/share.js:681
|
||||
msgid "Email sent"
|
||||
msgstr ""
|
||||
msgstr "ईमेल भेज दिया गया है "
|
||||
|
||||
#: js/update.js:17
|
||||
msgid ""
|
||||
|
@ -509,7 +510,7 @@ msgstr ""
|
|||
|
||||
#: templates/edit_categories_dialog.php:16
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
msgstr "डाले"
|
||||
|
||||
#: templates/installation.php:24 templates/installation.php:31
|
||||
#: templates/installation.php:38
|
||||
|
|
|
@ -3,13 +3,14 @@
|
|||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# blackc0de <complic@vipmail.hu>, 2013
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
|
||||
"POT-Creation-Date: 2013-08-21 08:10-0400\n"
|
||||
"PO-Revision-Date: 2013-08-19 19:20+0000\n"
|
||||
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:42-0400\n"
|
||||
"PO-Revision-Date: 2013-09-01 19:30+0000\n"
|
||||
"Last-Translator: blackc0de <complic@vipmail.hu>\n"
|
||||
"Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -28,7 +29,7 @@ msgstr ""
|
|||
|
||||
#: ajax/adminrecovery.php:48
|
||||
msgid "Recovery key successfully disabled"
|
||||
msgstr ""
|
||||
msgstr "Visszaállítási kulcs sikeresen kikapcsolva"
|
||||
|
||||
#: ajax/adminrecovery.php:53
|
||||
msgid ""
|
||||
|
@ -37,11 +38,11 @@ msgstr ""
|
|||
|
||||
#: ajax/changeRecoveryPassword.php:49
|
||||
msgid "Password successfully changed."
|
||||
msgstr ""
|
||||
msgstr "Jelszó sikeresen megváltoztatva."
|
||||
|
||||
#: ajax/changeRecoveryPassword.php:51
|
||||
msgid "Could not change the password. Maybe the old password was not correct."
|
||||
msgstr ""
|
||||
msgstr "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó."
|
||||
|
||||
#: ajax/updatePrivateKeyPassword.php:51
|
||||
msgid "Private key password successfully updated."
|
||||
|
@ -61,18 +62,18 @@ msgid ""
|
|||
"files."
|
||||
msgstr ""
|
||||
|
||||
#: hooks/hooks.php:41
|
||||
#: hooks/hooks.php:51
|
||||
msgid "Missing requirements."
|
||||
msgstr ""
|
||||
|
||||
#: hooks/hooks.php:42
|
||||
#: hooks/hooks.php:52
|
||||
msgid ""
|
||||
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL "
|
||||
"together with the PHP extension is enabled and configured properly. For now,"
|
||||
" the encryption app has been disabled."
|
||||
msgstr ""
|
||||
msgstr "Kérlek győződj meg arról, hogy PHP 5.3.3 vagy annál frissebb van telepítve, valamint a PHP-hez tartozó OpenSSL bővítmény be van-e kapcsolva és az helyesen van-e konfigurálva! Ki lett kapcsolva ideiglenesen a titkosító alkalmazás."
|
||||
|
||||
#: hooks/hooks.php:249
|
||||
#: hooks/hooks.php:250
|
||||
msgid "Following users are not set up for encryption:"
|
||||
msgstr ""
|
||||
|
||||
|
@ -92,7 +93,7 @@ msgstr ""
|
|||
|
||||
#: templates/invalid_private_key.php:7
|
||||
msgid "personal settings"
|
||||
msgstr ""
|
||||
msgstr "személyes beállítások"
|
||||
|
||||
#: templates/settings-admin.php:5 templates/settings-personal.php:4
|
||||
msgid "Encryption"
|
||||
|
@ -109,11 +110,11 @@ msgstr ""
|
|||
|
||||
#: templates/settings-admin.php:21 templates/settings-personal.php:54
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
msgstr "Bekapcsolva"
|
||||
|
||||
#: templates/settings-admin.php:29 templates/settings-personal.php:62
|
||||
msgid "Disabled"
|
||||
msgstr ""
|
||||
msgstr "Kikapcsolva"
|
||||
|
||||
#: templates/settings-admin.php:34
|
||||
msgid "Change recovery key password:"
|
||||
|
@ -129,7 +130,7 @@ msgstr ""
|
|||
|
||||
#: templates/settings-admin.php:53
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
msgstr "Jelszó megváltoztatása"
|
||||
|
||||
#: templates/settings-personal.php:11
|
||||
msgid "Your private key password no longer match your log-in password:"
|
||||
|
@ -147,19 +148,19 @@ msgstr ""
|
|||
|
||||
#: templates/settings-personal.php:24
|
||||
msgid "Old log-in password"
|
||||
msgstr ""
|
||||
msgstr "Régi bejelentkezési jelszó"
|
||||
|
||||
#: templates/settings-personal.php:30
|
||||
msgid "Current log-in password"
|
||||
msgstr ""
|
||||
msgstr "Jelenlegi bejelentkezési jelszó"
|
||||
|
||||
#: templates/settings-personal.php:35
|
||||
msgid "Update Private Key Password"
|
||||
msgstr ""
|
||||
msgstr "Privát kulcs jelszó frissítése"
|
||||
|
||||
#: templates/settings-personal.php:45
|
||||
msgid "Enable password recovery:"
|
||||
msgstr ""
|
||||
msgstr "Jelszó-visszaállítás bekapcsolása"
|
||||
|
||||
#: templates/settings-personal.php:47
|
||||
msgid ""
|
||||
|
|
|
@ -10,9 +10,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"PO-Revision-Date: 2013-08-30 13:50+0000\n"
|
||||
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:42-0400\n"
|
||||
"PO-Revision-Date: 2013-09-02 15:40+0000\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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -172,7 +172,7 @@ msgstr[1] ""
|
|||
|
||||
#: js/filelist.js:432
|
||||
msgid "{dirs} and {files}"
|
||||
msgstr ""
|
||||
msgstr "{dirs} e {files}"
|
||||
|
||||
#: js/filelist.js:563
|
||||
msgid "Uploading %n file"
|
||||
|
@ -210,7 +210,7 @@ msgstr "Seu armazenamento está quase cheio ({usedSpacePercent}%)"
|
|||
msgid ""
|
||||
"Encryption was disabled but your files are still encrypted. Please go to "
|
||||
"your personal settings to decrypt your files."
|
||||
msgstr ""
|
||||
msgstr "Encriptação foi desabilitada mas seus arquivos continuam encriptados. Por favor vá a suas configurações pessoais para descriptar seus arquivos."
|
||||
|
||||
#: js/files.js:245
|
||||
msgid ""
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud Core 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:43-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud Core 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:42-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud Core 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:42-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -60,18 +60,18 @@ msgid ""
|
|||
"files."
|
||||
msgstr ""
|
||||
|
||||
#: hooks/hooks.php:41
|
||||
#: hooks/hooks.php:51
|
||||
msgid "Missing requirements."
|
||||
msgstr ""
|
||||
|
||||
#: hooks/hooks.php:42
|
||||
#: hooks/hooks.php:52
|
||||
msgid ""
|
||||
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL "
|
||||
"together with the PHP extension is enabled and configured properly. For now, "
|
||||
"the encryption app has been disabled."
|
||||
msgstr ""
|
||||
|
||||
#: hooks/hooks.php:249
|
||||
#: hooks/hooks.php:250
|
||||
msgid "Following users are not set up for encryption:"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud Core 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:43-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud Core 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:43-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud Core 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:43-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud Core 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:43-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud Core 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud Core 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:44-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud Core 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:43-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: ownCloud Core 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
|
||||
"POT-Creation-Date: 2013-09-01 13:27-0400\n"
|
||||
"POT-Creation-Date: 2013-09-03 07:43-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -73,11 +73,11 @@ class OC_App{
|
|||
|
||||
if (!defined('DEBUG') || !DEBUG) {
|
||||
if (is_null($types)
|
||||
&& empty(OC_Util::$core_scripts)
|
||||
&& empty(OC_Util::$core_styles)) {
|
||||
OC_Util::$core_scripts = OC_Util::$scripts;
|
||||
&& empty(OC_Util::$coreScripts)
|
||||
&& empty(OC_Util::$coreStyles)) {
|
||||
OC_Util::$coreScripts = OC_Util::$scripts;
|
||||
OC_Util::$scripts = array();
|
||||
OC_Util::$core_styles = OC_Util::$styles;
|
||||
OC_Util::$coreStyles = OC_Util::$styles;
|
||||
OC_Util::$styles = array();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -417,7 +417,7 @@ class OC {
|
|||
}
|
||||
|
||||
self::initPaths();
|
||||
OC_Util::issetlocaleworking();
|
||||
OC_Util::isSetLocaleWorking();
|
||||
|
||||
// set debug mode if an xdebug session is active
|
||||
if (!defined('DEBUG') || !DEBUG) {
|
||||
|
@ -529,7 +529,7 @@ class OC {
|
|||
}
|
||||
|
||||
// write error into log if locale can't be set
|
||||
if (OC_Util::issetlocaleworking() == false) {
|
||||
if (OC_Util::isSetLocaleWorking() == false) {
|
||||
OC_Log::write('core',
|
||||
'setting locale to en_US.UTF-8/en_US.UTF8 failed. Support is probably not installed on your system',
|
||||
OC_Log::ERROR);
|
||||
|
@ -768,7 +768,7 @@ class OC {
|
|||
if (in_array($_COOKIE['oc_token'], $tokens, true)) {
|
||||
// replace successfully used token with a new one
|
||||
OC_Preferences::deleteKey($_COOKIE['oc_username'], 'login_token', $_COOKIE['oc_token']);
|
||||
$token = OC_Util::generate_random_bytes(32);
|
||||
$token = OC_Util::generateRandomBytes(32);
|
||||
OC_Preferences::setValue($_COOKIE['oc_username'], 'login_token', $token, time());
|
||||
OC_User::setMagicInCookie($_COOKIE['oc_username'], $token);
|
||||
// login
|
||||
|
@ -808,7 +808,7 @@ class OC {
|
|||
if (defined("DEBUG") && DEBUG) {
|
||||
OC_Log::write('core', 'Setting remember login to cookie', OC_Log::DEBUG);
|
||||
}
|
||||
$token = OC_Util::generate_random_bytes(32);
|
||||
$token = OC_Util::generateRandomBytes(32);
|
||||
OC_Preferences::setValue($userid, 'login_token', $token, time());
|
||||
OC_User::setMagicInCookie($userid, $token);
|
||||
} else {
|
||||
|
|
|
@ -37,13 +37,13 @@ $TRANSLATIONS = array(
|
|||
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Votre serveur web, n'est pas correctement configuré pour permettre la synchronisation des fichiers, car l'interface WebDav ne fonctionne pas comme il faut.",
|
||||
"Please double check the <a href='%s'>installation guides</a>." => "Veuillez vous référer au <a href='%s'>guide d'installation</a>.",
|
||||
"seconds ago" => "il y a quelques secondes",
|
||||
"_%n minute ago_::_%n minutes ago_" => array("",""),
|
||||
"_%n hour ago_::_%n hours ago_" => array("",""),
|
||||
"_%n minute ago_::_%n minutes ago_" => array("","il y a %n minutes"),
|
||||
"_%n hour ago_::_%n hours ago_" => array("","Il y a %n heures"),
|
||||
"today" => "aujourd'hui",
|
||||
"yesterday" => "hier",
|
||||
"_%n day go_::_%n days ago_" => array("",""),
|
||||
"_%n day go_::_%n days ago_" => array("","il y a %n jours"),
|
||||
"last month" => "le mois dernier",
|
||||
"_%n month ago_::_%n months ago_" => array("",""),
|
||||
"_%n month ago_::_%n months ago_" => array("","Il y a %n mois"),
|
||||
"last year" => "l'année dernière",
|
||||
"years ago" => "il y a plusieurs années",
|
||||
"Could not find category \"%s\"" => "Impossible de trouver la catégorie \"%s\""
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* ownCloud
|
||||
*
|
||||
* @author Frank Karlitschek
|
||||
* @copyright 2012 Frank Karlitschek frank@owncloud.org
|
||||
*
|
||||
* 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/>.
|
||||
*
|
||||
*/
|
||||
|
||||
class OC_OCS_Activity {
|
||||
|
||||
public static function activityGet($parameters){
|
||||
// TODO
|
||||
}
|
||||
}
|
|
@ -40,16 +40,6 @@ class OC_OCSClient{
|
|||
return($url);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the url of the OCS KB server.
|
||||
* @returns string of the KB server
|
||||
* This function returns the url of the OCS knowledge base server. It´s
|
||||
* possible to set it in the config file or it will fallback to the default
|
||||
*/
|
||||
private static function getKBURL() {
|
||||
$url = OC_Config::getValue('knowledgebaseurl', 'http://api.apps.owncloud.com/v1');
|
||||
return($url);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the content of an OCS url call.
|
||||
|
@ -214,44 +204,5 @@ class OC_OCSClient{
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Get all the knowledgebase entries from the OCS server
|
||||
* @returns array with q and a data
|
||||
*
|
||||
* This function returns a list of all the knowledgebase entries from the OCS server
|
||||
*/
|
||||
public static function getKnownledgebaseEntries($page, $pagesize, $search='') {
|
||||
$kbe = array('totalitems' => 0);
|
||||
if(OC_Config::getValue('knowledgebaseenabled', true)) {
|
||||
$p = (int) $page;
|
||||
$s = (int) $pagesize;
|
||||
$searchcmd = '';
|
||||
if ($search) {
|
||||
$searchcmd = '&search='.urlencode($search);
|
||||
}
|
||||
$url = OC_OCSClient::getKBURL().'/knowledgebase/data?type=150&page='. $p .'&pagesize='. $s . $searchcmd;
|
||||
$xml = OC_OCSClient::getOCSresponse($url);
|
||||
$data = @simplexml_load_string($xml);
|
||||
if($data===false) {
|
||||
OC_Log::write('core', 'Unable to parse knowledgebase content', OC_Log::FATAL);
|
||||
return null;
|
||||
}
|
||||
$tmp = $data->data->content;
|
||||
for($i = 0; $i < count($tmp); $i++) {
|
||||
$kbe[] = array(
|
||||
'id' => $tmp[$i]->id,
|
||||
'name' => $tmp[$i]->name,
|
||||
'description' => $tmp[$i]->description,
|
||||
'answer' => $tmp[$i]->answer,
|
||||
'preview1' => $tmp[$i]->smallpreviewpic1,
|
||||
'detailpage' => $tmp[$i]->detailpage
|
||||
);
|
||||
}
|
||||
$kbe['totalitems'] = $data->meta->totalitems;
|
||||
}
|
||||
return $kbe;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -463,7 +463,7 @@ class Share {
|
|||
if (isset($oldToken)) {
|
||||
$token = $oldToken;
|
||||
} else {
|
||||
$token = \OC_Util::generate_random_bytes(self::TOKEN_LENGTH);
|
||||
$token = \OC_Util::generateRandomBytes(self::TOKEN_LENGTH);
|
||||
}
|
||||
$result = self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions,
|
||||
null, $token);
|
||||
|
|
|
@ -61,7 +61,7 @@ class OC_Setup {
|
|||
}
|
||||
|
||||
//generate a random salt that is used to salt the local user passwords
|
||||
$salt = OC_Util::generate_random_bytes(30);
|
||||
$salt = OC_Util::generateRandomBytes(30);
|
||||
OC_Config::setValue('passwordsalt', $salt);
|
||||
|
||||
//write the config file
|
||||
|
|
|
@ -23,7 +23,7 @@ class MySQL extends AbstractDatabase {
|
|||
$this->dbuser=substr('oc_'.$username, 0, 16);
|
||||
if($this->dbuser!=$oldUser) {
|
||||
//hash the password so we don't need to store the admin config in the config file
|
||||
$this->dbpassword=\OC_Util::generate_random_bytes(30);
|
||||
$this->dbpassword=\OC_Util::generateRandomBytes(30);
|
||||
|
||||
$this->createDBUser($connection);
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ class OCI extends AbstractDatabase {
|
|||
//add prefix to the oracle user name to prevent collisions
|
||||
$this->dbuser='oc_'.$username;
|
||||
//create a new password so we don't need to store the admin config in the config file
|
||||
$this->dbpassword=\OC_Util::generate_random_bytes(30);
|
||||
$this->dbpassword=\OC_Util::generateRandomBytes(30);
|
||||
|
||||
//oracle passwords are treated as identifiers:
|
||||
// must start with aphanumeric char
|
||||
|
|
|
@ -33,7 +33,7 @@ class PostgreSQL extends AbstractDatabase {
|
|||
//add prefix to the postgresql user name to prevent collisions
|
||||
$this->dbuser='oc_'.$username;
|
||||
//create a new password so we don't need to store the admin config in the config file
|
||||
$this->dbpassword=\OC_Util::generate_random_bytes(30);
|
||||
$this->dbpassword=\OC_Util::generateRandomBytes(30);
|
||||
|
||||
$this->createDBUser($connection);
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ class OC_TemplateLayout extends OC_Template {
|
|||
if (OC_Config::getValue('installed', false) && $renderas!='error') {
|
||||
$this->append( 'jsfiles', OC_Helper::linkToRoute('js_config') . $versionParameter);
|
||||
}
|
||||
if (!empty(OC_Util::$core_scripts)) {
|
||||
if (!empty(OC_Util::$coreScripts)) {
|
||||
$this->append( 'jsfiles', OC_Helper::linkToRemoteBase('core.js', false) . $versionParameter);
|
||||
}
|
||||
foreach($jsfiles as $info) {
|
||||
|
@ -71,7 +71,7 @@ class OC_TemplateLayout extends OC_Template {
|
|||
// Add the css files
|
||||
$cssfiles = self::findStylesheetFiles(OC_Util::$styles);
|
||||
$this->assign('cssfiles', array());
|
||||
if (!empty(OC_Util::$core_styles)) {
|
||||
if (!empty(OC_Util::$coreStyles)) {
|
||||
$this->append( 'cssfiles', OC_Helper::linkToRemoteBase('core.css', false) . $versionParameter);
|
||||
}
|
||||
foreach($cssfiles as $info) {
|
||||
|
|
|
@ -353,7 +353,7 @@ class OC_User {
|
|||
* generates a password
|
||||
*/
|
||||
public static function generatePassword() {
|
||||
return OC_Util::generate_random_bytes(30);
|
||||
return OC_Util::generateRandomBytes(30);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
506
lib/util.php
506
lib/util.php
|
@ -11,12 +11,18 @@ class OC_Util {
|
|||
public static $headers=array();
|
||||
private static $rootMounted=false;
|
||||
private static $fsSetup=false;
|
||||
public static $core_styles=array();
|
||||
public static $core_scripts=array();
|
||||
public static $coreStyles=array();
|
||||
public static $coreScripts=array();
|
||||
|
||||
// Can be set up
|
||||
public static function setupFS( $user = '' ) {// configure the initial filesystem based on the configuration
|
||||
if(self::$fsSetup) {//setting up the filesystem twice can only lead to trouble
|
||||
/**
|
||||
* @brief Can be set up
|
||||
* @param string $user
|
||||
* @return boolean
|
||||
* @description configure the initial filesystem based on the configuration
|
||||
*/
|
||||
public static function setupFS( $user = '' ) {
|
||||
//setting up the filesystem twice can only lead to trouble
|
||||
if(self::$fsSetup) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -37,15 +43,16 @@ class OC_Util {
|
|||
self::$fsSetup=true;
|
||||
}
|
||||
|
||||
$CONFIG_DATADIRECTORY = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" );
|
||||
$configDataDirectory = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" );
|
||||
//first set up the local "root" storage
|
||||
\OC\Files\Filesystem::initMounts();
|
||||
if(!self::$rootMounted) {
|
||||
\OC\Files\Filesystem::mount('\OC\Files\Storage\Local', array('datadir'=>$CONFIG_DATADIRECTORY), '/');
|
||||
self::$rootMounted=true;
|
||||
\OC\Files\Filesystem::mount('\OC\Files\Storage\Local', array('datadir'=>$configDataDirectory), '/');
|
||||
self::$rootMounted = true;
|
||||
}
|
||||
|
||||
if( $user != "" ) { //if we aren't logged in, there is no use to set up the filesystem
|
||||
//if we aren't logged in, there is no use to set up the filesystem
|
||||
if( $user != "" ) {
|
||||
$quota = self::getUserQuota($user);
|
||||
if ($quota !== \OC\Files\SPACE_UNLIMITED) {
|
||||
\OC\Files\Filesystem::addStorageWrapper(function($mountPoint, $storage) use ($quota, $user) {
|
||||
|
@ -56,19 +63,19 @@ class OC_Util {
|
|||
}
|
||||
});
|
||||
}
|
||||
$user_dir = '/'.$user.'/files';
|
||||
$user_root = OC_User::getHome($user);
|
||||
$userdirectory = $user_root . '/files';
|
||||
if( !is_dir( $userdirectory )) {
|
||||
mkdir( $userdirectory, 0755, true );
|
||||
$userDir = '/'.$user.'/files';
|
||||
$userRoot = OC_User::getHome($user);
|
||||
$userDirectory = $userRoot . '/files';
|
||||
if( !is_dir( $userDirectory )) {
|
||||
mkdir( $userDirectory, 0755, true );
|
||||
}
|
||||
//jail the user into his "home" directory
|
||||
\OC\Files\Filesystem::init($user, $user_dir);
|
||||
\OC\Files\Filesystem::init($user, $userDir);
|
||||
|
||||
$fileOperationProxy = new OC_FileProxy_FileOperations();
|
||||
OC_FileProxy::register($fileOperationProxy);
|
||||
|
||||
OC_Hook::emit('OC_Filesystem', 'setup', array('user' => $user, 'user_dir' => $user_dir));
|
||||
OC_Hook::emit('OC_Filesystem', 'setup', array('user' => $user, 'user_dir' => $userDir));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -85,14 +92,17 @@ class OC_Util {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function tearDownFS() {
|
||||
\OC\Files\Filesystem::tearDown();
|
||||
self::$fsSetup=false;
|
||||
self::$rootMounted=false;
|
||||
self::$rootMounted=false;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the current installed version of ownCloud
|
||||
* @brief get the current installed version of ownCloud
|
||||
* @return array
|
||||
*/
|
||||
public static function getVersion() {
|
||||
|
@ -102,7 +112,7 @@ class OC_Util {
|
|||
}
|
||||
|
||||
/**
|
||||
* get the current installed version string of ownCloud
|
||||
* @brief get the current installed version string of ownCloud
|
||||
* @return string
|
||||
*/
|
||||
public static function getVersionString() {
|
||||
|
@ -110,7 +120,7 @@ class OC_Util {
|
|||
}
|
||||
|
||||
/**
|
||||
* get the current installed edition of ownCloud. There is the community
|
||||
* @description get the current installed edition of ownCloud. There is the community
|
||||
* edition that just returns an empty string and the enterprise edition
|
||||
* that returns "Enterprise".
|
||||
* @return string
|
||||
|
@ -120,103 +130,117 @@ class OC_Util {
|
|||
}
|
||||
|
||||
/**
|
||||
* add a javascript file
|
||||
* @brief add a javascript file
|
||||
*
|
||||
* @param appid $application
|
||||
* @param filename $file
|
||||
* @param string $application
|
||||
* @param filename $file
|
||||
* @return void
|
||||
*/
|
||||
public static function addScript( $application, $file = null ) {
|
||||
if( is_null( $file )) {
|
||||
if ( is_null( $file )) {
|
||||
$file = $application;
|
||||
$application = "";
|
||||
}
|
||||
if( !empty( $application )) {
|
||||
if ( !empty( $application )) {
|
||||
self::$scripts[] = "$application/js/$file";
|
||||
}else{
|
||||
} else {
|
||||
self::$scripts[] = "js/$file";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* add a css file
|
||||
* @brief add a css file
|
||||
*
|
||||
* @param appid $application
|
||||
* @param filename $file
|
||||
* @param string $application
|
||||
* @param filename $file
|
||||
* @return void
|
||||
*/
|
||||
public static function addStyle( $application, $file = null ) {
|
||||
if( is_null( $file )) {
|
||||
if ( is_null( $file )) {
|
||||
$file = $application;
|
||||
$application = "";
|
||||
}
|
||||
if( !empty( $application )) {
|
||||
if ( !empty( $application )) {
|
||||
self::$styles[] = "$application/css/$file";
|
||||
}else{
|
||||
} else {
|
||||
self::$styles[] = "css/$file";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Add a custom element to the header
|
||||
* @param string tag tag name of the element
|
||||
* @param string $tag tag name of the element
|
||||
* @param array $attributes array of attributes for the element
|
||||
* @param string $text the text content for the element
|
||||
* @return void
|
||||
*/
|
||||
public static function addHeader( $tag, $attributes, $text='') {
|
||||
self::$headers[] = array('tag'=>$tag, 'attributes'=>$attributes, 'text'=>$text);
|
||||
self::$headers[] = array(
|
||||
'tag'=>$tag,
|
||||
'attributes'=>$attributes,
|
||||
'text'=>$text
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* formats a timestamp in the "right" way
|
||||
* @brief formats a timestamp in the "right" way
|
||||
*
|
||||
* @param int timestamp $timestamp
|
||||
* @param bool dateOnly option to omit time from the result
|
||||
* @param int $timestamp
|
||||
* @param bool $dateOnly option to omit time from the result
|
||||
* @return string timestamp
|
||||
* @description adjust to clients timezone if we know it
|
||||
*/
|
||||
public static function formatDate( $timestamp, $dateOnly=false) {
|
||||
if(\OC::$session->exists('timezone')) {//adjust to clients timezone if we know it
|
||||
if(\OC::$session->exists('timezone')) {
|
||||
$systemTimeZone = intval(date('O'));
|
||||
$systemTimeZone=(round($systemTimeZone/100, 0)*60)+($systemTimeZone%100);
|
||||
$clientTimeZone=\OC::$session->get('timezone')*60;
|
||||
$offset=$clientTimeZone-$systemTimeZone;
|
||||
$timestamp=$timestamp+$offset*60;
|
||||
$systemTimeZone = (round($systemTimeZone/100, 0)*60) + ($systemTimeZone%100);
|
||||
$clientTimeZone = \OC::$session->get('timezone')*60;
|
||||
$offset = $clientTimeZone - $systemTimeZone;
|
||||
$timestamp = $timestamp + $offset*60;
|
||||
}
|
||||
$l=OC_L10N::get('lib');
|
||||
$l = OC_L10N::get('lib');
|
||||
return $l->l($dateOnly ? 'date' : 'datetime', $timestamp);
|
||||
}
|
||||
|
||||
/**
|
||||
* check if the current server configuration is suitable for ownCloud
|
||||
* @brief check if the current server configuration is suitable for ownCloud
|
||||
* @return array arrays with error messages and hints
|
||||
*/
|
||||
public static function checkServer() {
|
||||
// Assume that if checkServer() succeeded before in this session, then all is fine.
|
||||
if(\OC::$session->exists('checkServer_suceeded') && \OC::$session->get('checkServer_suceeded'))
|
||||
if(\OC::$session->exists('checkServer_suceeded') && \OC::$session->get('checkServer_suceeded')) {
|
||||
return array();
|
||||
}
|
||||
|
||||
$errors=array();
|
||||
$errors = array();
|
||||
|
||||
$defaults = new \OC_Defaults();
|
||||
|
||||
$web_server_restart= false;
|
||||
$webServerRestart = false;
|
||||
//check for database drivers
|
||||
if(!(is_callable('sqlite_open') or class_exists('SQLite3'))
|
||||
and !is_callable('mysql_connect')
|
||||
and !is_callable('pg_connect')
|
||||
and !is_callable('oci_connect')) {
|
||||
$errors[]=array('error'=>'No database drivers (sqlite, mysql, or postgresql) installed.',
|
||||
'hint'=>'');//TODO: sane hint
|
||||
$web_server_restart= true;
|
||||
$errors[] = array(
|
||||
'error'=>'No database drivers (sqlite, mysql, or postgresql) installed.',
|
||||
'hint'=>'' //TODO: sane hint
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
|
||||
//common hint for all file permissons error messages
|
||||
//common hint for all file permissions error messages
|
||||
$permissionsHint = 'Permissions can usually be fixed by '
|
||||
.'<a href="' . $defaults->getDocBaseUrl() . '/server/5.0/admin_manual/installation/installation_source.html#set-the-directory-permissions" target="_blank">giving the webserver write access to the root directory</a>.';
|
||||
.'<a href="' . $defaults->getDocBaseUrl() . '/server/5.0/admin_manual/installation/installation_source.html'
|
||||
.'#set-the-directory-permissions" target="_blank">giving the webserver write access to the root directory</a>.';
|
||||
|
||||
// Check if config folder is writable.
|
||||
if(!is_writable(OC::$SERVERROOT."/config/") or !is_readable(OC::$SERVERROOT."/config/")) {
|
||||
$errors[] = array(
|
||||
'error' => "Can't write into config directory",
|
||||
'hint' => 'This can usually be fixed by '
|
||||
.'<a href="' . $defaults->getDocBaseUrl() . '/server/5.0/admin_manual/installation/installation_source.html#set-the-directory-permissions" target="_blank">giving the webserver write access to the config directory</a>.'
|
||||
.'<a href="' . $defaults->getDocBaseUrl() . '/server/5.0/admin_manual/installation/installation_source.html'
|
||||
.'#set-the-directory-permissions" target="_blank">giving the webserver write access to the config directory</a>.'
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -228,7 +252,8 @@ class OC_Util {
|
|||
$errors[] = array(
|
||||
'error' => "Can't write into apps directory",
|
||||
'hint' => 'This can usually be fixed by '
|
||||
.'<a href="' . $defaults->getDocBaseUrl() . '/server/5.0/admin_manual/installation/installation_source.html#set-the-directory-permissions" target="_blank">giving the webserver write access to the apps directory</a> '
|
||||
.'<a href="' . $defaults->getDocBaseUrl() . '/server/5.0/admin_manual/installation/installation_source.html'
|
||||
.'#set-the-directory-permissions" target="_blank">giving the webserver write access to the apps directory</a> '
|
||||
.'or disabling the appstore in the config file.'
|
||||
);
|
||||
}
|
||||
|
@ -243,94 +268,131 @@ class OC_Util {
|
|||
$errors[] = array(
|
||||
'error' => "Can't create data directory (".$CONFIG_DATADIRECTORY.")",
|
||||
'hint' => 'This can usually be fixed by '
|
||||
.'<a href="' . $defaults->getDocBaseUrl() . '/server/5.0/admin_manual/installation/installation_source.html#set-the-directory-permissions" target="_blank">giving the webserver write access to the root directory</a>.'
|
||||
.'<a href="' . $defaults->getDocBaseUrl() . '/server/5.0/admin_manual/installation/installation_source.html'
|
||||
.'#set-the-directory-permissions" target="_blank">giving the webserver write access to the root directory</a>.'
|
||||
);
|
||||
}
|
||||
} else if(!is_writable($CONFIG_DATADIRECTORY) or !is_readable($CONFIG_DATADIRECTORY)) {
|
||||
$errors[]=array('error'=>'Data directory ('.$CONFIG_DATADIRECTORY.') not writable by ownCloud',
|
||||
'hint'=>$permissionsHint);
|
||||
$errors[] = array(
|
||||
'error'=>'Data directory ('.$CONFIG_DATADIRECTORY.') not writable by ownCloud',
|
||||
'hint'=>$permissionsHint
|
||||
);
|
||||
} else {
|
||||
$errors = array_merge($errors, self::checkDataDirectoryPermissions($CONFIG_DATADIRECTORY));
|
||||
}
|
||||
|
||||
$moduleHint = "Please ask your server administrator to install the module.";
|
||||
// check if all required php modules are present
|
||||
if(!class_exists('ZipArchive')) {
|
||||
$errors[]=array('error'=>'PHP module zip not installed.',
|
||||
'hint'=>'Please ask your server administrator to install the module.');
|
||||
$web_server_restart=true;
|
||||
$errors[] = array(
|
||||
'error'=>'PHP module zip not installed.',
|
||||
'hint'=>$moduleHint
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
if(!class_exists('DOMDocument')) {
|
||||
$errors[] = array('error' => 'PHP module dom not installed.',
|
||||
'hint' => 'Please ask your server administrator to install the module.');
|
||||
$web_server_restart =true;
|
||||
$errors[] = array(
|
||||
'error' => 'PHP module dom not installed.',
|
||||
'hint' => $moduleHint
|
||||
);
|
||||
$webServerRestart =true;
|
||||
}
|
||||
if(!function_exists('xml_parser_create')) {
|
||||
$errors[] = array('error' => 'PHP module libxml not installed.',
|
||||
'hint' => 'Please ask your server administrator to install the module.');
|
||||
$web_server_restart =true;
|
||||
$errors[] = array(
|
||||
'error' => 'PHP module libxml not installed.',
|
||||
'hint' => $moduleHint
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
if(!function_exists('mb_detect_encoding')) {
|
||||
$errors[]=array('error'=>'PHP module mb multibyte not installed.',
|
||||
'hint'=>'Please ask your server administrator to install the module.');
|
||||
$web_server_restart=true;
|
||||
$errors[] = array(
|
||||
'error'=>'PHP module mb multibyte not installed.',
|
||||
'hint'=>$moduleHint
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
if(!function_exists('ctype_digit')) {
|
||||
$errors[]=array('error'=>'PHP module ctype is not installed.',
|
||||
'hint'=>'Please ask your server administrator to install the module.');
|
||||
$web_server_restart=true;
|
||||
$errors[] = array(
|
||||
'error'=>'PHP module ctype is not installed.',
|
||||
'hint'=>$moduleHint
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
if(!function_exists('json_encode')) {
|
||||
$errors[]=array('error'=>'PHP module JSON is not installed.',
|
||||
'hint'=>'Please ask your server administrator to install the module.');
|
||||
$web_server_restart=true;
|
||||
$errors[] = array(
|
||||
'error'=>'PHP module JSON is not installed.',
|
||||
'hint'=>$moduleHint
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
if(!extension_loaded('gd') || !function_exists('gd_info')) {
|
||||
$errors[]=array('error'=>'PHP module GD is not installed.',
|
||||
'hint'=>'Please ask your server administrator to install the module.');
|
||||
$web_server_restart=true;
|
||||
$errors[] = array(
|
||||
'error'=>'PHP module GD is not installed.',
|
||||
'hint'=>$moduleHint
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
if(!function_exists('gzencode')) {
|
||||
$errors[]=array('error'=>'PHP module zlib is not installed.',
|
||||
'hint'=>'Please ask your server administrator to install the module.');
|
||||
$web_server_restart=true;
|
||||
$errors[] = array(
|
||||
'error'=>'PHP module zlib is not installed.',
|
||||
'hint'=>$moduleHint
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
if(!function_exists('iconv')) {
|
||||
$errors[]=array('error'=>'PHP module iconv is not installed.',
|
||||
'hint'=>'Please ask your server administrator to install the module.');
|
||||
$web_server_restart=true;
|
||||
$errors[] = array(
|
||||
'error'=>'PHP module iconv is not installed.',
|
||||
'hint'=>$moduleHint
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
if(!function_exists('simplexml_load_string')) {
|
||||
$errors[]=array('error'=>'PHP module SimpleXML is not installed.',
|
||||
'hint'=>'Please ask your server administrator to install the module.');
|
||||
$web_server_restart=true;
|
||||
$errors[] = array(
|
||||
'error'=>'PHP module SimpleXML is not installed.',
|
||||
'hint'=>$moduleHint
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
if(floatval(phpversion())<5.3) {
|
||||
$errors[]=array('error'=>'PHP 5.3 is required.',
|
||||
if(floatval(phpversion()) < 5.3) {
|
||||
$errors[] = array(
|
||||
'error'=>'PHP 5.3 is required.',
|
||||
'hint'=>'Please ask your server administrator to update PHP to version 5.3 or higher.'
|
||||
.' PHP 5.2 is no longer supported by ownCloud and the PHP community.');
|
||||
$web_server_restart=true;
|
||||
.' PHP 5.2 is no longer supported by ownCloud and the PHP community.'
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
if(!defined('PDO::ATTR_DRIVER_NAME')) {
|
||||
$errors[]=array('error'=>'PHP PDO module is not installed.',
|
||||
'hint'=>'Please ask your server administrator to install the module.');
|
||||
$web_server_restart=true;
|
||||
$errors[] = array(
|
||||
'error'=>'PHP PDO module is not installed.',
|
||||
'hint'=>$moduleHint
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
if (((strtolower(@ini_get('safe_mode')) == 'on')
|
||||
|| (strtolower(@ini_get('safe_mode')) == 'yes')
|
||||
|| (strtolower(@ini_get('safe_mode')) == 'true')
|
||||
|| (ini_get("safe_mode") == 1 ))) {
|
||||
$errors[]=array('error'=>'PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly.',
|
||||
'hint'=>'PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.');
|
||||
$web_server_restart=true;
|
||||
$errors[] = array(
|
||||
'error'=>'PHP Safe Mode is enabled. ownCloud requires that it is disabled to work properly.',
|
||||
'hint'=>'PHP Safe Mode is a deprecated and mostly useless setting that should be disabled. '
|
||||
.'Please ask your server administrator to disable it in php.ini or in your webserver config.'
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
if (get_magic_quotes_gpc() == 1 ) {
|
||||
$errors[]=array('error'=>'Magic Quotes is enabled. ownCloud requires that it is disabled to work properly.',
|
||||
'hint'=>'Magic Quotes is a deprecated and mostly useless setting that should be disabled. Please ask your server administrator to disable it in php.ini or in your webserver config.');
|
||||
$web_server_restart=true;
|
||||
$errors[] = array(
|
||||
'error'=>'Magic Quotes is enabled. ownCloud requires that it is disabled to work properly.',
|
||||
'hint'=>'Magic Quotes is a deprecated and mostly useless setting that should be disabled. '
|
||||
.'Please ask your server administrator to disable it in php.ini or in your webserver config.'
|
||||
);
|
||||
$webServerRestart = true;
|
||||
}
|
||||
|
||||
if($web_server_restart) {
|
||||
$errors[]=array('error'=>'PHP modules have been installed, but they are still listed as missing?',
|
||||
'hint'=>'Please ask your server administrator to restart the web server.');
|
||||
if($webServerRestart) {
|
||||
$errors[] = array(
|
||||
'error'=>'PHP modules have been installed, but they are still listed as missing?',
|
||||
'hint'=>'Please ask your server administrator to restart the web server.'
|
||||
);
|
||||
}
|
||||
|
||||
// Cache the result of this function
|
||||
|
@ -357,30 +419,36 @@ class OC_Util {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check for correct file permissions of data directory
|
||||
* @return array arrays with error messages and hints
|
||||
*/
|
||||
* @brief Check for correct file permissions of data directory
|
||||
* @paran string $dataDirectory
|
||||
* @return array arrays with error messages and hints
|
||||
*/
|
||||
public static function checkDataDirectoryPermissions($dataDirectory) {
|
||||
$errors = array();
|
||||
if (stristr(PHP_OS, 'WIN')) {
|
||||
if (self::runningOnWindows()) {
|
||||
//TODO: permissions checks for windows hosts
|
||||
} else {
|
||||
$permissionsModHint = 'Please change the permissions to 0770 so that the directory'
|
||||
.' cannot be listed by other users.';
|
||||
$prems = substr(decoct(@fileperms($dataDirectory)), -3);
|
||||
if (substr($prems, -1) != '0') {
|
||||
$perms = substr(decoct(@fileperms($dataDirectory)), -3);
|
||||
if (substr($perms, -1) != '0') {
|
||||
OC_Helper::chmodr($dataDirectory, 0770);
|
||||
clearstatcache();
|
||||
$prems = substr(decoct(@fileperms($dataDirectory)), -3);
|
||||
if (substr($prems, 2, 1) != '0') {
|
||||
$errors[] = array('error' => 'Data directory ('.$dataDirectory.') is readable for other users',
|
||||
'hint' => $permissionsModHint);
|
||||
$perms = substr(decoct(@fileperms($dataDirectory)), -3);
|
||||
if (substr($perms, 2, 1) != '0') {
|
||||
$errors[] = array(
|
||||
'error' => 'Data directory ('.$dataDirectory.') is readable for other users',
|
||||
'hint' => $permissionsModHint
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $errors;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public static function displayLoginPage($errors = array()) {
|
||||
$parameters = array();
|
||||
foreach( $errors as $key => $value ) {
|
||||
|
@ -394,8 +462,8 @@ class OC_Util {
|
|||
$parameters['user_autofocus'] = true;
|
||||
}
|
||||
if (isset($_REQUEST['redirect_url'])) {
|
||||
$redirect_url = $_REQUEST['redirect_url'];
|
||||
$parameters['redirect_url'] = urlencode($redirect_url);
|
||||
$redirectUrl = $_REQUEST['redirect_url'];
|
||||
$parameters['redirect_url'] = urlencode($redirectUrl);
|
||||
}
|
||||
|
||||
$parameters['alt_login'] = OC_App::getAlternativeLogIns();
|
||||
|
@ -404,7 +472,8 @@ class OC_Util {
|
|||
|
||||
|
||||
/**
|
||||
* Check if the app is enabled, redirects to home if not
|
||||
* @brief Check if the app is enabled, redirects to home if not
|
||||
* @return void
|
||||
*/
|
||||
public static function checkAppEnabled($app) {
|
||||
if( !OC_App::isEnabled($app)) {
|
||||
|
@ -416,18 +485,21 @@ class OC_Util {
|
|||
/**
|
||||
* Check if the user is logged in, redirects to home if not. With
|
||||
* redirect URL parameter to the request URI.
|
||||
* @return void
|
||||
*/
|
||||
public static function checkLoggedIn() {
|
||||
// Check if we are a user
|
||||
if( !OC_User::isLoggedIn()) {
|
||||
header( 'Location: '.OC_Helper::linkToAbsolute( '', 'index.php',
|
||||
array('redirect_url' => OC_Request::requestUri())));
|
||||
array('redirectUrl' => OC_Request::requestUri())
|
||||
));
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the user is a admin, redirects to home if not
|
||||
* @brief Check if the user is a admin, redirects to home if not
|
||||
* @return void
|
||||
*/
|
||||
public static function checkAdminUser() {
|
||||
if( !OC_User::isAdminUser(OC_User::getUser())) {
|
||||
|
@ -437,7 +509,7 @@ class OC_Util {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check if the user is a subadmin, redirects to home if not
|
||||
* @brief Check if the user is a subadmin, redirects to home if not
|
||||
* @return array $groups where the current user is subadmin
|
||||
*/
|
||||
public static function checkSubAdminUser() {
|
||||
|
@ -449,7 +521,8 @@ class OC_Util {
|
|||
}
|
||||
|
||||
/**
|
||||
* Redirect to the user default page
|
||||
* @brief Redirect to the user default page
|
||||
* @return void
|
||||
*/
|
||||
public static function redirectToDefaultPage() {
|
||||
if(isset($_REQUEST['redirect_url'])) {
|
||||
|
@ -457,13 +530,11 @@ class OC_Util {
|
|||
}
|
||||
else if (isset(OC::$REQUESTEDAPP) && !empty(OC::$REQUESTEDAPP)) {
|
||||
$location = OC_Helper::linkToAbsolute( OC::$REQUESTEDAPP, 'index.php' );
|
||||
}
|
||||
else {
|
||||
$defaultpage = OC_Appconfig::getValue('core', 'defaultpage');
|
||||
if ($defaultpage) {
|
||||
$location = OC_Helper::makeURLAbsolute(OC::$WEBROOT.'/'.$defaultpage);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$defaultPage = OC_Appconfig::getValue('core', 'defaultpage');
|
||||
if ($defaultPage) {
|
||||
$location = OC_Helper::makeURLAbsolute(OC::$WEBROOT.'/'.$defaultPage);
|
||||
} else {
|
||||
$location = OC_Helper::linkToAbsolute( 'files', 'index.php' );
|
||||
}
|
||||
}
|
||||
|
@ -472,28 +543,28 @@ class OC_Util {
|
|||
exit();
|
||||
}
|
||||
|
||||
/**
|
||||
* get an id unique for this instance
|
||||
* @return string
|
||||
*/
|
||||
public static function getInstanceId() {
|
||||
$id = OC_Config::getValue('instanceid', null);
|
||||
if(is_null($id)) {
|
||||
// We need to guarantee at least one letter in instanceid so it can be used as the session_name
|
||||
$id = 'oc' . OC_Util::generate_random_bytes(10);
|
||||
OC_Config::setValue('instanceid', $id);
|
||||
}
|
||||
return $id;
|
||||
}
|
||||
/**
|
||||
* @brief get an id unique for this instance
|
||||
* @return string
|
||||
*/
|
||||
public static function getInstanceId() {
|
||||
$id = OC_Config::getValue('instanceid', null);
|
||||
if(is_null($id)) {
|
||||
// We need to guarantee at least one letter in instanceid so it can be used as the session_name
|
||||
$id = 'oc' . self::generateRandomBytes(10);
|
||||
OC_Config::setValue('instanceid', $id);
|
||||
}
|
||||
return $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Static lifespan (in seconds) when a request token expires.
|
||||
* @see OC_Util::callRegister()
|
||||
* @see OC_Util::isCallRegistered()
|
||||
* @description
|
||||
* Also required for the client side to compute the piont in time when to
|
||||
* Also required for the client side to compute the point in time when to
|
||||
* request a fresh token. The client will do so when nearly 97% of the
|
||||
* timespan coded here has expired.
|
||||
* time span coded here has expired.
|
||||
*/
|
||||
public static $callLifespan = 3600; // 3600 secs = 1 hour
|
||||
|
||||
|
@ -513,7 +584,7 @@ class OC_Util {
|
|||
// Check if a token exists
|
||||
if(!\OC::$session->exists('requesttoken')) {
|
||||
// No valid token found, generate a new one.
|
||||
$requestToken = self::generate_random_bytes(20);
|
||||
$requestToken = self::generateRandomBytes(20);
|
||||
\OC::$session->set('requesttoken', $requestToken);
|
||||
} else {
|
||||
// Valid token already exists, send it
|
||||
|
@ -534,11 +605,11 @@ class OC_Util {
|
|||
}
|
||||
|
||||
if(isset($_GET['requesttoken'])) {
|
||||
$token=$_GET['requesttoken'];
|
||||
$token = $_GET['requesttoken'];
|
||||
} elseif(isset($_POST['requesttoken'])) {
|
||||
$token=$_POST['requesttoken'];
|
||||
$token = $_POST['requesttoken'];
|
||||
} elseif(isset($_SERVER['HTTP_REQUESTTOKEN'])) {
|
||||
$token=$_SERVER['HTTP_REQUESTTOKEN'];
|
||||
$token = $_SERVER['HTTP_REQUESTTOKEN'];
|
||||
} else {
|
||||
//no token found.
|
||||
return false;
|
||||
|
@ -556,11 +627,12 @@ class OC_Util {
|
|||
|
||||
/**
|
||||
* @brief Check an ajax get/post call if the request token is valid. exit if not.
|
||||
* Todo: Write howto
|
||||
* @todo Write howto
|
||||
* @return void
|
||||
*/
|
||||
public static function callCheck() {
|
||||
if(!OC_Util::isCallRegistered()) {
|
||||
exit;
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -570,14 +642,15 @@ class OC_Util {
|
|||
* This function is used to sanitize HTML and should be applied on any
|
||||
* string or array of strings before displaying it on a web page.
|
||||
*
|
||||
* @param string or array of strings
|
||||
* @param string|array of strings
|
||||
* @return array with sanitized strings or a single sanitized string, depends on the input parameter.
|
||||
*/
|
||||
public static function sanitizeHTML( &$value ) {
|
||||
if (is_array($value)) {
|
||||
array_walk_recursive($value, 'OC_Util::sanitizeHTML');
|
||||
} else {
|
||||
$value = htmlentities((string)$value, ENT_QUOTES, 'UTF-8'); //Specify encoding for PHP<5.4
|
||||
//Specify encoding for PHP<5.4
|
||||
$value = htmlentities((string)$value, ENT_QUOTES, 'UTF-8');
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
@ -599,17 +672,20 @@ class OC_Util {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check if the htaccess file is working by creating a test file in the data directory and trying to access via http
|
||||
* @brief Check if the htaccess file is working
|
||||
* @return bool
|
||||
* @description Check if the htaccess file is working by creating a test
|
||||
* file in the data directory and trying to access via http
|
||||
*/
|
||||
public static function ishtaccessworking() {
|
||||
public static function isHtAccessWorking() {
|
||||
// testdata
|
||||
$filename='/htaccesstest.txt';
|
||||
$testcontent='testcontent';
|
||||
$fileName = '/htaccesstest.txt';
|
||||
$testContent = 'testcontent';
|
||||
|
||||
// creating a test file
|
||||
$testfile = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ).'/'.$filename;
|
||||
$testFile = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ).'/'.$fileName;
|
||||
|
||||
if(file_exists($testfile)) {// already running this test, possible recursive call
|
||||
if(file_exists($testFile)) {// already running this test, possible recursive call
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -618,7 +694,7 @@ class OC_Util {
|
|||
@fclose($fp);
|
||||
|
||||
// accessing the file via http
|
||||
$url = OC_Helper::makeURLAbsolute(OC::$WEBROOT.'/data'.$filename);
|
||||
$url = OC_Helper::makeURLAbsolute(OC::$WEBROOT.'/data'.$fileName);
|
||||
$fp = @fopen($url, 'r');
|
||||
$content=@fread($fp, 2048);
|
||||
@fclose($fp);
|
||||
|
@ -627,20 +703,21 @@ class OC_Util {
|
|||
@unlink($testfile);
|
||||
|
||||
// does it work ?
|
||||
if($content==$testcontent) {
|
||||
return(false);
|
||||
}else{
|
||||
return(true);
|
||||
if($content==$testContent) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* we test if webDAV is working properly
|
||||
*
|
||||
* @brief test if webDAV is working properly
|
||||
* @return bool
|
||||
* @description
|
||||
* The basic assumption is that if the server returns 401/Not Authenticated for an unauthenticated PROPFIND
|
||||
* the web server it self is setup properly.
|
||||
*
|
||||
* Why not an authenticated PROFIND and other verbs?
|
||||
* Why not an authenticated PROPFIND and other verbs?
|
||||
* - We don't have the password available
|
||||
* - We have no idea about other auth methods implemented (e.g. OAuth with Bearer header)
|
||||
*
|
||||
|
@ -654,7 +731,7 @@ class OC_Util {
|
|||
);
|
||||
|
||||
// save the old timeout so that we can restore it later
|
||||
$old_timeout=ini_get("default_socket_timeout");
|
||||
$oldTimeout = ini_get("default_socket_timeout");
|
||||
|
||||
// use a 5 sec timeout for the check. Should be enough for local requests.
|
||||
ini_set("default_socket_timeout", 5);
|
||||
|
@ -668,24 +745,25 @@ class OC_Util {
|
|||
try {
|
||||
// test PROPFIND
|
||||
$client->propfind('', array('{DAV:}resourcetype'));
|
||||
} catch(\Sabre_DAV_Exception_NotAuthenticated $e) {
|
||||
} catch (\Sabre_DAV_Exception_NotAuthenticated $e) {
|
||||
$return = true;
|
||||
} catch(\Exception $e) {
|
||||
} catch (\Exception $e) {
|
||||
OC_Log::write('core', 'isWebDAVWorking: NO - Reason: '.$e->getMessage(). ' ('.get_class($e).')', OC_Log::WARN);
|
||||
$return = false;
|
||||
}
|
||||
|
||||
// restore the original timeout
|
||||
ini_set("default_socket_timeout", $old_timeout);
|
||||
ini_set("default_socket_timeout", $oldTimeout);
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the setlocal call doesn't work. This can happen if the right
|
||||
* Check if the setlocal call does not work. This can happen if the right
|
||||
* local packages are not available on the server.
|
||||
* @return bool
|
||||
*/
|
||||
public static function issetlocaleworking() {
|
||||
public static function isSetLocaleWorking() {
|
||||
// setlocale test is pointless on Windows
|
||||
if (OC_Util::runningOnWindows() ) {
|
||||
return true;
|
||||
|
@ -699,7 +777,7 @@ class OC_Util {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check if the PHP module fileinfo is loaded.
|
||||
* @brief Check if the PHP module fileinfo is loaded.
|
||||
* @return bool
|
||||
*/
|
||||
public static function fileInfoLoaded() {
|
||||
|
@ -707,7 +785,8 @@ class OC_Util {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check if the ownCloud server can connect to the internet
|
||||
* @brief Check if the ownCloud server can connect to the internet
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInternetConnectionWorking() {
|
||||
// in case there is no internet connection on purpose return false
|
||||
|
@ -720,30 +799,29 @@ class OC_Util {
|
|||
if ($connected) {
|
||||
fclose($connected);
|
||||
return true;
|
||||
}else{
|
||||
|
||||
} else {
|
||||
// second try in case one server is down
|
||||
$connected = @fsockopen("apps.owncloud.com", 80);
|
||||
if ($connected) {
|
||||
fclose($connected);
|
||||
return true;
|
||||
}else{
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the connection to the internet is disabled on purpose
|
||||
* @brief Check if the connection to the internet is disabled on purpose
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInternetConnectionEnabled(){
|
||||
return \OC_Config::getValue("has_internet_connection", true);
|
||||
}
|
||||
|
||||
/**
|
||||
* clear all levels of output buffering
|
||||
* @brief clear all levels of output buffering
|
||||
* @return void
|
||||
*/
|
||||
public static function obEnd(){
|
||||
while (ob_get_level()) {
|
||||
|
@ -753,47 +831,47 @@ class OC_Util {
|
|||
|
||||
|
||||
/**
|
||||
* @brief Generates a cryptographical secure pseudorandom string
|
||||
* @param Int with the length of the random string
|
||||
* @brief Generates a cryptographic secure pseudo-random string
|
||||
* @param Int $length of the random string
|
||||
* @return String
|
||||
* Please also update secureRNG_available if you change something here
|
||||
* Please also update secureRNGAvailable if you change something here
|
||||
*/
|
||||
public static function generate_random_bytes($length = 30) {
|
||||
|
||||
public static function generateRandomBytes($length = 30) {
|
||||
// Try to use openssl_random_pseudo_bytes
|
||||
if(function_exists('openssl_random_pseudo_bytes')) {
|
||||
$pseudo_byte = bin2hex(openssl_random_pseudo_bytes($length, $strong));
|
||||
if (function_exists('openssl_random_pseudo_bytes')) {
|
||||
$pseudoByte = bin2hex(openssl_random_pseudo_bytes($length, $strong));
|
||||
if($strong == true) {
|
||||
return substr($pseudo_byte, 0, $length); // Truncate it to match the length
|
||||
return substr($pseudoByte, 0, $length); // Truncate it to match the length
|
||||
}
|
||||
}
|
||||
|
||||
// Try to use /dev/urandom
|
||||
$fp = @file_get_contents('/dev/urandom', false, null, 0, $length);
|
||||
if ($fp !== false) {
|
||||
$string = substr(bin2hex($fp), 0, $length);
|
||||
return $string;
|
||||
if (!self::runningOnWindows()) {
|
||||
$fp = @file_get_contents('/dev/urandom', false, null, 0, $length);
|
||||
if ($fp !== false) {
|
||||
$string = substr(bin2hex($fp), 0, $length);
|
||||
return $string;
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback to mt_rand()
|
||||
$characters = '0123456789';
|
||||
$characters .= 'abcdefghijklmnopqrstuvwxyz';
|
||||
$charactersLength = strlen($characters)-1;
|
||||
$pseudo_byte = "";
|
||||
$pseudoByte = "";
|
||||
|
||||
// Select some random characters
|
||||
for ($i = 0; $i < $length; $i++) {
|
||||
$pseudo_byte .= $characters[mt_rand(0, $charactersLength)];
|
||||
$pseudoByte .= $characters[mt_rand(0, $charactersLength)];
|
||||
}
|
||||
return $pseudo_byte;
|
||||
return $pseudoByte;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Checks if a secure random number generator is available
|
||||
* @return bool
|
||||
*/
|
||||
public static function secureRNG_available() {
|
||||
|
||||
public static function secureRNGAvailable() {
|
||||
// Check openssl_random_pseudo_bytes
|
||||
if(function_exists('openssl_random_pseudo_bytes')) {
|
||||
openssl_random_pseudo_bytes(1, $strong);
|
||||
|
@ -803,9 +881,11 @@ class OC_Util {
|
|||
}
|
||||
|
||||
// Check /dev/urandom
|
||||
$fp = @file_get_contents('/dev/urandom', false, null, 0, 1);
|
||||
if ($fp !== false) {
|
||||
return true;
|
||||
if (!self::runningOnWindows()) {
|
||||
$fp = @file_get_contents('/dev/urandom', false, null, 0, 1);
|
||||
if ($fp !== false) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -818,11 +898,8 @@ class OC_Util {
|
|||
* This function get the content of a page via curl, if curl is enabled.
|
||||
* If not, file_get_element is used.
|
||||
*/
|
||||
|
||||
public static function getUrlContent($url){
|
||||
|
||||
if (function_exists('curl_init')) {
|
||||
|
||||
if (function_exists('curl_init')) {
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt($curl, CURLOPT_HEADER, 0);
|
||||
|
@ -833,10 +910,10 @@ class OC_Util {
|
|||
curl_setopt($curl, CURLOPT_MAXREDIRS, 10);
|
||||
|
||||
curl_setopt($curl, CURLOPT_USERAGENT, "ownCloud Server Crawler");
|
||||
if(OC_Config::getValue('proxy', '')<>'') {
|
||||
if(OC_Config::getValue('proxy', '') != '') {
|
||||
curl_setopt($curl, CURLOPT_PROXY, OC_Config::getValue('proxy'));
|
||||
}
|
||||
if(OC_Config::getValue('proxyuserpwd', '')<>'') {
|
||||
if(OC_Config::getValue('proxyuserpwd', '') != '') {
|
||||
curl_setopt($curl, CURLOPT_PROXYUSERPWD, OC_Config::getValue('proxyuserpwd'));
|
||||
}
|
||||
$data = curl_exec($curl);
|
||||
|
@ -845,7 +922,7 @@ class OC_Util {
|
|||
} else {
|
||||
$contextArray = null;
|
||||
|
||||
if(OC_Config::getValue('proxy', '')<>'') {
|
||||
if(OC_Config::getValue('proxy', '') != '') {
|
||||
$contextArray = array(
|
||||
'http' => array(
|
||||
'timeout' => 10,
|
||||
|
@ -860,11 +937,10 @@ class OC_Util {
|
|||
);
|
||||
}
|
||||
|
||||
|
||||
$ctx = stream_context_create(
|
||||
$contextArray
|
||||
);
|
||||
$data=@file_get_contents($url, 0, $ctx);
|
||||
$data = @file_get_contents($url, 0, $ctx);
|
||||
|
||||
}
|
||||
return $data;
|
||||
|
@ -877,7 +953,6 @@ class OC_Util {
|
|||
return (substr(PHP_OS, 0, 3) === "WIN");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Handles the case that there may not be a theme, then check if a "default"
|
||||
* theme exists and take that one
|
||||
|
@ -887,20 +962,19 @@ class OC_Util {
|
|||
$theme = OC_Config::getValue("theme", '');
|
||||
|
||||
if($theme === '') {
|
||||
|
||||
if(is_dir(OC::$SERVERROOT . '/themes/default')) {
|
||||
$theme = 'default';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $theme;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear the opcode cache if one exists
|
||||
* @brief Clear the opcode cache if one exists
|
||||
* This is necessary for writing to the config file
|
||||
* in case the opcode cache doesn't revalidate files
|
||||
* in case the opcode cache does not re-validate files
|
||||
* @return void
|
||||
*/
|
||||
public static function clearOpcodeCache() {
|
||||
// APC
|
||||
|
@ -939,8 +1013,10 @@ class OC_Util {
|
|||
return $value;
|
||||
}
|
||||
|
||||
public static function basename($file)
|
||||
{
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public static function basename($file) {
|
||||
$file = rtrim($file, '/');
|
||||
$t = explode('/', $file);
|
||||
return array_pop($t);
|
||||
|
|
|
@ -21,14 +21,6 @@ OC_API::register(
|
|||
'core',
|
||||
OC_API::GUEST_AUTH
|
||||
);
|
||||
// Activity
|
||||
OC_API::register(
|
||||
'get',
|
||||
'/activity',
|
||||
array('OC_OCS_Activity', 'activityGet'),
|
||||
'core',
|
||||
OC_API::USER_AUTH
|
||||
);
|
||||
// Privatedata
|
||||
OC_API::register(
|
||||
'get',
|
||||
|
|
|
@ -15,7 +15,7 @@ OC_App::setActiveNavigationEntry( "admin" );
|
|||
|
||||
$tmpl = new OC_Template( 'settings', 'admin', 'user');
|
||||
$forms=OC_App::getForms('admin');
|
||||
$htaccessworking=OC_Util::ishtaccessworking();
|
||||
$htaccessworking=OC_Util::isHtAccessWorking();
|
||||
|
||||
$entries=OC_Log_Owncloud::getEntries(3);
|
||||
$entriesremain = count(OC_Log_Owncloud::getEntries(4)) > 3;
|
||||
|
@ -25,7 +25,7 @@ $tmpl->assign('entries', $entries);
|
|||
$tmpl->assign('entriesremain', $entriesremain);
|
||||
$tmpl->assign('htaccessworking', $htaccessworking);
|
||||
$tmpl->assign('internetconnectionworking', OC_Util::isInternetConnectionEnabled() ? OC_Util::isInternetConnectionWorking() : false);
|
||||
$tmpl->assign('islocaleworking', OC_Util::issetlocaleworking());
|
||||
$tmpl->assign('islocaleworking', OC_Util::isSetLocaleWorking());
|
||||
$tmpl->assign('isWebDavWorking', OC_Util::isWebDAVWorking());
|
||||
$tmpl->assign('has_fileinfo', OC_Util::fileInfoLoaded());
|
||||
$tmpl->assign('backgroundjobs_mode', OC_Appconfig::getValue('core', 'backgroundjobs_mode', 'ajax'));
|
||||
|
|
|
@ -169,7 +169,7 @@ OC.Settings.Apps = OC.Settings.Apps || {
|
|||
var navEntries=response.nav_entries;
|
||||
for(var i=0; i< navEntries.length; i++){
|
||||
var entry = navEntries[i];
|
||||
var container = $('#apps');
|
||||
var container = $('#apps .wrapper');
|
||||
|
||||
if(container.children('li[data-id="'+entry.id+'"]').length === 0){
|
||||
var li=$('<li></li>');
|
||||
|
@ -181,10 +181,10 @@ OC.Settings.Apps = OC.Settings.Apps || {
|
|||
a.prepend(filename);
|
||||
a.prepend(img);
|
||||
li.append(a);
|
||||
// prepend the new app before the 'More apps' function
|
||||
$('#apps-management').before(li);
|
||||
// append the new app as last item in the list (.push is from sticky footer)
|
||||
$('#apps .wrapper .push').before(li);
|
||||
// scroll the app navigation down so the newly added app is seen
|
||||
$('#navigation').animate({ scrollTop: $('#apps').height() }, 'slow');
|
||||
$('#navigation').animate({ scrollTop: $('#navigation').height() }, 'slow');
|
||||
// draw attention to the newly added app entry by flashing it twice
|
||||
container.children('li[data-id="'+entry.id+'"]').animate({opacity:.3}).animate({opacity:1}).animate({opacity:.3}).animate({opacity:1});
|
||||
|
||||
|
|
|
@ -20,11 +20,14 @@ $TRANSLATIONS = array(
|
|||
"Disable" => "Désactiver",
|
||||
"Enable" => "Activer",
|
||||
"Please wait...." => "Veuillez patienter…",
|
||||
"Error while disabling app" => "Erreur lors de la désactivation de l'application",
|
||||
"Error while enabling app" => "Erreur lors de l'activation de l'application",
|
||||
"Updating...." => "Mise à jour...",
|
||||
"Error while updating app" => "Erreur lors de la mise à jour de l'application",
|
||||
"Error" => "Erreur",
|
||||
"Update" => "Mettre à jour",
|
||||
"Updated" => "Mise à jour effectuée avec succès",
|
||||
"Decrypting files... Please wait, this can take some time." => "Déchiffrement en cours... Cela peut prendre un certain temps.",
|
||||
"Saving..." => "Enregistrement...",
|
||||
"deleted" => "supprimé",
|
||||
"undo" => "annuler",
|
||||
|
@ -38,25 +41,35 @@ $TRANSLATIONS = array(
|
|||
"A valid password must be provided" => "Un mot de passe valide doit être saisi",
|
||||
"__language_name__" => "Français",
|
||||
"Security Warning" => "Avertissement de sécurité",
|
||||
"Your data directory and your files are probably accessible from the internet. The .htaccess file is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l'extérieur de la racine du serveur web.",
|
||||
"Setup Warning" => "Avertissement, problème de configuration",
|
||||
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Votre serveur web, n'est pas correctement configuré pour permettre la synchronisation des fichiers, car l'interface WebDav ne fonctionne pas comme il faut.",
|
||||
"Please double check the <a href=\"%s\">installation guides</a>." => "Veuillez consulter à nouveau les <a href=\"%s\">guides d'installation</a>.",
|
||||
"Module 'fileinfo' missing" => "Module 'fileinfo' manquant",
|
||||
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." => "Le module PHP 'fileinfo' est manquant. Il est vivement recommandé de l'activer afin d'obtenir de meilleurs résultats pour la détection des types de fichiers.",
|
||||
"Locale not working" => "Localisation non fonctionnelle",
|
||||
"System locale can't be set to %s. This means that there might be problems with certain characters in file names. We strongly suggest to install the required packages on your system to support %s." => "Le localisation du système n'a pu être configurée à %s. Cela signifie qu'il pourrait y avoir des problèmes avec certains caractères dans les noms de fichiers. Il est fortement recommandé d'installer les paquets requis pour le support de %s.",
|
||||
"Internet connection not working" => "La connexion internet ne fonctionne pas",
|
||||
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Ce serveur ne peut se connecter à internet. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que les notifications par mails ne seront pas fonctionnels également. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.",
|
||||
"Cron" => "Cron",
|
||||
"Execute one task with each page loaded" => "Exécute une tâche à chaque chargement de page",
|
||||
"cron.php is registered at a webcron service to call cron.php once a minute over http." => "cron.php est enregistré en tant que service webcron pour appeler cron.php une fois par minute via http.",
|
||||
"Use systems cron service to call the cron.php file once a minute." => "Utilise le service cron du système pour appeler cron.php une fois par minute.",
|
||||
"Sharing" => "Partage",
|
||||
"Enable Share API" => "Activer l'API de partage",
|
||||
"Allow apps to use the Share API" => "Autoriser les applications à utiliser l'API de partage",
|
||||
"Allow links" => "Autoriser les liens",
|
||||
"Allow users to share items to the public with links" => "Autoriser les utilisateurs à partager des éléments publiquement à l'aide de liens",
|
||||
"Allow public uploads" => "Autoriser les téléversements publics",
|
||||
"Allow users to enable others to upload into their publicly shared folders" => "Permet d'autoriser les autres utilisateurs à téléverser dans le dossier partagé public de l'utilisateur",
|
||||
"Allow resharing" => "Autoriser le repartage",
|
||||
"Allow users to share items shared with them again" => "Autoriser les utilisateurs à partager des éléments qui ont été partagés avec eux",
|
||||
"Allow users to share with anyone" => "Autoriser les utilisateurs à partager avec tout le monde",
|
||||
"Allow users to only share with users in their groups" => "Autoriser les utilisateurs à partager avec des utilisateurs de leur groupe uniquement",
|
||||
"Security" => "Sécurité",
|
||||
"Enforce HTTPS" => "Forcer HTTPS",
|
||||
"Forces the clients to connect to %s via an encrypted connection." => "Forcer les clients à se connecter à %s via une connexion chiffrée.",
|
||||
"Please connect to your %s via HTTPS to enable or disable the SSL enforcement." => "Veuillez vous connecter à cette instance %s via HTTPS pour activer ou désactiver SSL.",
|
||||
"Log" => "Log",
|
||||
"Log level" => "Niveau de log",
|
||||
"More" => "Plus",
|
||||
|
@ -92,6 +105,9 @@ $TRANSLATIONS = array(
|
|||
"WebDAV" => "WebDAV",
|
||||
"Use this address to <a href=\"%s/server/5.0/user_manual/files/files.html\" target=\"_blank\">access your Files via WebDAV</a>" => "Utilisez cette adresse pour <a href=\"%s/server/5.0/user_manual/files/files.html\" target=\"_blank\">accéder à vos fichiers via WebDAV</a>",
|
||||
"Encryption" => "Chiffrement",
|
||||
"The encryption app is no longer enabled, decrypt all your file" => "L'application de chiffrement n'est plus activée, déchiffrez tous vos fichiers",
|
||||
"Log-in password" => "Mot de passe de connexion",
|
||||
"Decrypt all Files" => "Déchiffrer tous les fichiers",
|
||||
"Login Name" => "Nom de la connexion",
|
||||
"Create" => "Créer",
|
||||
"Admin Recovery Password" => "Récupération du mot de passe administrateur",
|
||||
|
|
|
@ -15,7 +15,7 @@ class Test_DB extends PHPUnit_Framework_TestCase {
|
|||
public function setUp() {
|
||||
$dbfile = OC::$SERVERROOT.'/tests/data/db_structure.xml';
|
||||
|
||||
$r = '_'.OC_Util::generate_random_bytes('4').'_';
|
||||
$r = '_'.OC_Util::generateRandomBytes('4').'_';
|
||||
$content = file_get_contents( $dbfile );
|
||||
$content = str_replace( '*dbprefix*', '*dbprefix*'.$r, $content );
|
||||
file_put_contents( self::$schema_file, $content );
|
||||
|
|
|
@ -16,7 +16,7 @@ class Test_DBSchema extends PHPUnit_Framework_TestCase {
|
|||
$dbfile = OC::$SERVERROOT.'/tests/data/db_structure.xml';
|
||||
$dbfile2 = OC::$SERVERROOT.'/tests/data/db_structure2.xml';
|
||||
|
||||
$r = '_'.OC_Util::generate_random_bytes('4').'_';
|
||||
$r = '_'.OC_Util::generateRandomBytes('4').'_';
|
||||
$content = file_get_contents( $dbfile );
|
||||
$content = str_replace( '*dbprefix*', '*dbprefix*'.$r, $content );
|
||||
file_put_contents( $this->schema_file, $content );
|
||||
|
|
|
@ -71,8 +71,8 @@ class Test_Util extends PHPUnit_Framework_TestCase {
|
|||
$this->assertTrue(\OC_Util::isInternetConnectionEnabled());
|
||||
}
|
||||
|
||||
function testGenerate_random_bytes() {
|
||||
$result = strlen(OC_Util::generate_random_bytes(59));
|
||||
function testGenerateRandomBytes() {
|
||||
$result = strlen(OC_Util::generateRandomBytes(59));
|
||||
$this->assertEquals(59, $result);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue