diff --git a/config/config.sample.php b/config/config.sample.php index d7f9b2170617e..3779c336883b5 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -1,1708 +1,1716 @@ - 'd3c944a9a', - */ -'instanceid' => '', - - /** - * The salt used to hash all passwords, auto-generated by the Nextcloud - * installer. (There are also per-user salts.) If you lose this salt you lose - * all your passwords. This example is for documentation only, and you should - * never use it. - * - * @deprecated This salt is deprecated and only used for legacy-compatibility, - * developers should *NOT* use this value for anything nowadays. - * - * 'passwordsalt' => 'd3c944a9af095aa08f', - */ -'passwordsalt' => '', - -/** - * Your list of trusted domains that users can log into. Specifying trusted - * domains prevents host header poisoning. Do not remove this, as it performs - * necessary security checks. - * You can specify: - * - * - the exact hostname of your host or virtual host, e.g. demo.example.org. - * - the exact hostname with permitted port, e.g. demo.example.org:443. - * This disallows all other ports on this host - * - use * as a wildcard, e.g. ubos-raspberry-pi*.local will allow - * ubos-raspberry-pi.local and ubos-raspberry-pi-2.local - */ -'trusted_domains' => - array ( - 'demo.example.org', - 'otherdomain.example.org', - ), - - -/** - * Where user files are stored. The SQLite database is also stored here, when - * you use SQLite. - * - * Default to ``data/`` in the Nextcloud directory. - */ -'datadirectory' => '/var/www/nextcloud/data', - -/** - * The current version number of your Nextcloud installation. This is set up - * during installation and update, so you shouldn't need to change it. - */ -'version' => '', - -/** - * Identifies the database used with this installation. See also config option - * ``supportedDatabases`` - * - * Available: - * - sqlite3 (SQLite3) - * - mysql (MySQL/MariaDB) - * - pgsql (PostgreSQL) - * - * Defaults to ``sqlite3`` - */ -'dbtype' => 'sqlite3', - -/** - * Your host server name, for example ``localhost``, ``hostname``, - * ``hostname.example.com``, or the IP address. To specify a port use - * ``hostname:####``; to specify a Unix socket use - * ``localhost:/path/to/socket``. - */ -'dbhost' => '', - -/** - * The name of the Nextcloud database, which is set during installation. You - * should not need to change this. - */ -'dbname' => 'nextcloud', - -/** - * The user that Nextcloud uses to write to the database. This must be unique - * across Nextcloud instances using the same SQL database. This is set up during - * installation, so you shouldn't need to change it. - */ -'dbuser' => '', - -/** - * The password for the database user. This is set up during installation, so - * you shouldn't need to change it. - */ -'dbpassword' => '', - -/** - * Prefix for the Nextcloud tables in the database. - * - * Default to ``oc_`` - */ -'dbtableprefix' => '', - - -/** - * Indicates whether the Nextcloud instance was installed successfully; ``true`` - * indicates a successful installation, and ``false`` indicates an unsuccessful - * installation. - * - * Defaults to ``false`` - */ -'installed' => false, - - -/** - * User Experience - * - * These optional parameters control some aspects of the user interface. Default - * values, where present, are shown. - */ - -/** - * This sets the default language on your Nextcloud server, using ISO_639-1 - * language codes such as ``en`` for English, ``de`` for German, and ``fr`` for - * French. It overrides automatic language detection on public pages like login - * or shared items. User's language preferences configured under "personal -> - * language" override this setting after they have logged in. Nextcloud has two - * distinguished language codes for German, 'de' and 'de_DE'. 'de' is used for - * informal German and 'de_DE' for formal German. By setting this value to 'de_DE' - * you can enforce the formal version of German unless the user has chosen - * something different explicitly. - * - * Defaults to ``en`` - */ -'default_language' => 'en', - -/** - * With this setting a language can be forced for all users. If a language is - * forced, the users are also unable to change their language in the personal - * settings. If users shall be unable to change their language, but users have - * different languages, this value can be set to ``true`` instead of a language - * code. - * - * Defaults to ``false`` - */ -'force_language' => 'en', - -/** - * This sets the default locale on your Nextcloud server, using ISO_639 - * language codes such as ``en`` for English, ``de`` for German, and ``fr`` for - * French, and ISO-3166 country codes such as ``GB``, ``US``, ``CA``, as defined - * in RFC 5646. It overrides automatic locale detection on public pages like - * login or shared items. User's locale preferences configured under "personal - * -> locale" override this setting after they have logged in. - * - * Defaults to ``en`` - */ -'default_locale' => 'en_US', - -/** - * With this setting a locale can be forced for all users. If a locale is - * forced, the users are also unable to change their locale in the personal - * settings. If users shall be unable to change their locale, but users have - * different languages, this value can be set to ``true`` instead of a locale - * code. - * - * Defaults to ``false`` - */ -'force_locale' => 'en_US', - -/** - * Set the default app to open on login. Use the app names as they appear in the - * URL after clicking them in the Apps menu, such as documents, calendar, and - * gallery. You can use a comma-separated list of app names, so if the first - * app is not enabled for a user then Nextcloud will try the second one, and so - * on. If no enabled apps are found it defaults to the Files app. - * - * Defaults to ``files`` - */ -'defaultapp' => 'files', - -/** - * ``true`` enables the Help menu item in the user menu (top right of the - * Nextcloud Web interface). ``false`` removes the Help item. - */ -'knowledgebaseenabled' => true, - -/** - * ``true`` allows users to change their display names (on their Personal - * pages), and ``false`` prevents them from changing their display names. - */ -'allow_user_to_change_display_name' => true, - -/** - * Lifetime of the remember login cookie. This should be larger than the - * session_lifetime. If it is set to 0 remember me is disabled. - * - * Defaults to ``60*60*24*15`` seconds (15 days) - */ -'remember_login_cookie_lifetime' => 60*60*24*15, - -/** - * The lifetime of a session after inactivity. - * - * Defaults to ``60*60*24`` seconds (24 hours) - */ -'session_lifetime' => 60 * 60 * 24, - -/** - * Enable or disable session keep-alive when a user is logged in to the Web UI. - * Enabling this sends a "heartbeat" to the server to keep it from timing out. - * - * Defaults to ``true`` - */ -'session_keepalive' => true, - -/** - * Enforce token authentication for clients, which blocks requests using the user - * password for enhanced security. Users need to generate tokens in personal settings - * which can be used as passwords on their clients. - * - * Defaults to ``false`` - */ -'token_auth_enforced' => false, - -/** - * Whether the bruteforce protection shipped with Nextcloud should be enabled or not. - * - * Disabling this is discouraged for security reasons. - * - * Defaults to ``true`` - */ -'auth.bruteforce.protection.enabled' => true, - -/** - * The directory where the skeleton files are located. These files will be - * copied to the data directory of new users. Leave empty to not copy any - * skeleton files. - * ``{lang}`` can be used as a placeholder for the language of the user. - * If the directory does not exist, it falls back to non dialect (from ``de_DE`` - * to ``de``). If that does not exist either, it falls back to ``default`` - * - * Defaults to ``core/skeleton`` in the Nextcloud directory. - */ -'skeletondirectory' => '/path/to/nextcloud/core/skeleton', - -/** - * If your user backend does not allow password resets (e.g. when it's a - * read-only user backend like LDAP), you can specify a custom link, where the - * user is redirected to, when clicking the "reset password" link after a failed - * login-attempt. - * In case you do not want to provide any link, replace the url with 'disabled' - */ -'lost_password_link' => 'https://example.org/link/to/password/reset', - -/** - * Mail Parameters - * - * These configure the email settings for Nextcloud notifications and password - * resets. - */ - -/** - * The return address that you want to appear on emails sent by the Nextcloud - * server, for example ``nc-admin@example.com``, substituting your own domain, - * of course. - */ -'mail_domain' => 'example.com', - -/** - * FROM address that overrides the built-in ``sharing-noreply`` and - * ``lostpassword-noreply`` FROM addresses. - * - * Defaults to different from addresses depending on the feature. - */ -'mail_from_address' => 'nextcloud', - -/** - * Enable SMTP class debugging. - * - * Defaults to ``false`` - */ -'mail_smtpdebug' => false, - -/** - * Which mode to use for sending mail: ``sendmail``, ``smtp`` or ``qmail``. - * - * If you are using local or remote SMTP, set this to ``smtp``. - * - * For the ``sendmail`` option you need an installed and working email system on - * the server, with ``/usr/sbin/sendmail`` installed on your Unix system. - * - * For ``qmail`` the binary is /var/qmail/bin/sendmail, and it must be installed - * on your Unix system. - * - * Defaults to ``smtp`` - */ -'mail_smtpmode' => 'smtp', - -/** - * This depends on ``mail_smtpmode``. Specify the IP address of your mail - * server host. This may contain multiple hosts separated by a semi-colon. If - * you need to specify the port number append it to the IP address separated by - * a colon, like this: ``127.0.0.1:24``. - * - * Defaults to ``127.0.0.1`` - */ -'mail_smtphost' => '127.0.0.1', - -/** - * This depends on ``mail_smtpmode``. Specify the port for sending mail. - * - * Defaults to ``25`` - */ -'mail_smtpport' => 25, - -/** - * This depends on ``mail_smtpmode``. This sets the SMTP server timeout, in - * seconds. You may need to increase this if you are running an anti-malware or - * spam scanner. - * - * Defaults to ``10`` seconds - */ -'mail_smtptimeout' => 10, - -/** - * This depends on ``mail_smtpmode``. Specify when you are using ``ssl`` or - * ``tls``, or leave empty for no encryption. - * - * Defaults to ``''`` (empty string) - */ -'mail_smtpsecure' => '', - -/** - * This depends on ``mail_smtpmode``. Change this to ``true`` if your mail - * server requires authentication. - * - * Defaults to ``false`` - */ -'mail_smtpauth' => false, - -/** - * This depends on ``mail_smtpmode``. If SMTP authentication is required, choose - * the authentication type as ``LOGIN`` or ``PLAIN``. - * - * Defaults to ``LOGIN`` - */ -'mail_smtpauthtype' => 'LOGIN', - -/** - * This depends on ``mail_smtpauth``. Specify the username for authenticating to - * the SMTP server. - * - * Defaults to ``''`` (empty string) - */ -'mail_smtpname' => '', - -/** - * This depends on ``mail_smtpauth``. Specify the password for authenticating to - * the SMTP server. - * - * Default to ``''`` (empty string) - */ -'mail_smtppassword' => '', - -/** - * Replaces the default mail template layout. This can be utilized if the - * options to modify the mail texts with the theming app is not enough. - * The class must extend ``\OC\Mail\EMailTemplate`` - */ -'mail_template_class' => '\OC\Mail\EMailTemplate', - -/** - * Email will be send by default with an HTML and a plain text body. This option - * allows to only send plain text emails. - */ -'mail_send_plaintext_only' => false, - -/** - * This depends on ``mail_smtpmode``. Array of additional streams options that - * will be passed to underlying Swift mailer implementation. - * Defaults to an empty array. - */ -'mail_smtpstreamoptions' => array(), - -/** - * Which mode is used for sendmail/qmail: ``smtp`` or ``pipe``. - * - * For ``smtp`` the sendmail binary is started with the parameter ``-bs``: - * - Use the SMTP protocol on standard input and output. - * - * For ``pipe`` the binary is started with the parameters ``-t``: - * - Read message from STDIN and extract recipients. - * - * Defaults to ``smtp`` - */ -'mail_sendmailmode' => 'smtp', - -/** - * Proxy Configurations - */ - -/** - * The automatic hostname detection of Nextcloud can fail in certain reverse - * proxy and CLI/cron situations. This option allows you to manually override - * the automatic detection; for example ``www.example.com``, or specify the port - * ``www.example.com:8080``. - */ -'overwritehost' => '', - -/** - * When generating URLs, Nextcloud attempts to detect whether the server is - * accessed via ``https`` or ``http``. However, if Nextcloud is behind a proxy - * and the proxy handles the ``https`` calls, Nextcloud would not know that - * ``ssl`` is in use, which would result in incorrect URLs being generated. - * Valid values are ``http`` and ``https``. - */ -'overwriteprotocol' => '', - -/** - * Nextcloud attempts to detect the webroot for generating URLs automatically. - * For example, if ``www.example.com/nextcloud`` is the URL pointing to the - * Nextcloud instance, the webroot is ``/nextcloud``. When proxies are in use, - * it may be difficult for Nextcloud to detect this parameter, resulting in - * invalid URLs. - */ -'overwritewebroot' => '', - -/** - * This option allows you to define a manual override condition as a regular - * expression for the remote IP address. For example, defining a range of IP - * addresses starting with ``10.0.0.`` and ending with 1 to 3: - * ``^10\.0\.0\.[1-3]$`` - * - * Defaults to ``''`` (empty string) - */ -'overwritecondaddr' => '', - -/** - * Use this configuration parameter to specify the base URL for any URLs which - * are generated within Nextcloud using any kind of command line tools (cron or - * occ). The value should contain the full base URL: - * ``https://www.example.com/nextcloud`` - * - * Defaults to ``''`` (empty string) - */ -'overwrite.cli.url' => '', - -/** - * To have clean URLs without `/index.php` this parameter needs to be configured. - * - * This parameter will be written as "RewriteBase" on update and installation of - * Nextcloud to your `.htaccess` file. While this value is often simply the URL - * path of the Nextcloud installation it cannot be set automatically properly in - * every scenario and needs thus some manual configuration. - * - * In a standard Apache setup this usually equals the folder that Nextcloud is - * accessible at. So if Nextcloud is accessible via "https://mycloud.org/nextcloud" - * the correct value would most likely be "/nextcloud". If Nextcloud is running - * under "https://mycloud.org/" then it would be "/". - * - * Note that the above rule is not valid in every case, as there are some rare setup - * cases where this may not apply. However, to avoid any update problems this - * configuration value is explicitly opt-in. - * - * After setting this value run `occ maintenance:update:htaccess`. Now, when the - * following conditions are met Nextcloud URLs won't contain `index.php`: - * - * - `mod_rewrite` is installed - * - `mod_env` is installed - * - * Defaults to ``''`` (empty string) - */ -'htaccess.RewriteBase' => '/', - -/** - * For server setups, that don't have `mod_env` enabled or restricted (e.g. suEXEC) - * this parameter has to be set to true and will assume mod_rewrite. - * - * Please check, if `mod_rewrite` is active and functional before setting this - * parameter and you updated your .htaccess with `occ maintenance:update:htaccess`. - * Otherwise your nextcloud installation might not be reachable anymore. - * For example, try accessing resources by leaving out `index.php` in the URL. - */ -'htaccess.IgnoreFrontController' => false, - -/** - * The URL of your proxy server, for example ``proxy.example.com:8081``. - * - * Defaults to ``''`` (empty string) - */ -'proxy' => '', - -/** - * The optional authentication for the proxy to use to connect to the internet. - * The format is: ``username:password``. - * - * Defaults to ``''`` (empty string) - */ -'proxyuserpwd' => '', - - -/** - * Deleted Items (trash bin) - * - * These parameters control the Deleted files app. - */ - -/** - * If the trash bin app is enabled (default), this setting defines the policy - * for when files and folders in the trash bin will be permanently deleted. - * The app allows for two settings, a minimum time for trash bin retention, - * and a maximum time for trash bin retention. - * Minimum time is the number of days a file will be kept, after which it - * may be deleted. Maximum time is the number of days at which it is guaranteed - * to be deleted. - * Both minimum and maximum times can be set together to explicitly define - * file and folder deletion. For migration purposes, this setting is installed - * initially set to "auto", which is equivalent to the default setting in - * Nextcloud. - * - * Available values: - * - * * ``auto`` - * default setting. keeps files and folders in the trash bin for 30 days - * and automatically deletes anytime after that if space is needed (note: - * files may not be deleted if space is not needed). - * * ``D, auto`` - * keeps files and folders in the trash bin for D+ days, delete anytime if - * space needed (note: files may not be deleted if space is not needed) - * * ``auto, D`` - * delete all files in the trash bin that are older than D days - * automatically, delete other files anytime if space needed - * * ``D1, D2`` - * keep files and folders in the trash bin for at least D1 days and - * delete when exceeds D2 days - * * ``disabled`` - * trash bin auto clean disabled, files and folders will be kept forever - * - * Defaults to ``auto`` - */ -'trashbin_retention_obligation' => 'auto', - - -/** - * File versions - * - * These parameters control the Versions app. - */ - -/** - * If the versions app is enabled (default), this setting defines the policy - * for when versions will be permanently deleted. - * The app allows for two settings, a minimum time for version retention, - * and a maximum time for version retention. - * Minimum time is the number of days a version will be kept, after which it - * may be deleted. Maximum time is the number of days at which it is guaranteed - * to be deleted. - * Both minimum and maximum times can be set together to explicitly define - * version deletion. For migration purposes, this setting is installed - * initially set to "auto", which is equivalent to the default setting in - * Nextcloud. - * - * Available values: - * - * * ``auto`` - * default setting. Automatically expire versions according to expire - * rules. Please refer to :doc:`../configuration_files/file_versioning` for - * more information. - * * ``D, auto`` - * keep versions at least for D days, apply expire rules to all versions - * that are older than D days - * * ``auto, D`` - * delete all versions that are older than D days automatically, delete - * other versions according to expire rules - * * ``D1, D2`` - * keep versions for at least D1 days and delete when exceeds D2 days - * * ``disabled`` - * versions auto clean disabled, versions will be kept forever - * - * Defaults to ``auto`` - */ -'versions_retention_obligation' => 'auto', - -/** - * Nextcloud Verifications - * - * Nextcloud performs several verification checks. There are two options, - * ``true`` and ``false``. - */ - -/** - * Checks an app before install whether it uses private APIs instead of the - * proper public APIs. If this is set to true it will only allow to install or - * enable apps that pass this check. - * - * Defaults to ``false`` - */ -'appcodechecker' => true, - -/** - * Check if Nextcloud is up-to-date and shows a notification if a new version is - * available. - * - * Defaults to ``true`` - */ -'updatechecker' => true, - -/** - * URL that Nextcloud should use to look for updates - * - * Defaults to ``https://updates.nextcloud.com/updater_server/`` - */ -'updater.server.url' => 'https://updates.nextcloud.com/updater_server/', - -/** - * The channel that Nextcloud should use to look for updates - * - * Supported values: - * - ``daily`` - * - ``beta`` - * - ``stable`` - * - ``production`` - */ -'updater.release.channel' => 'stable', - -/** - * Is Nextcloud connected to the Internet or running in a closed network? - * - * Defaults to ``true`` - */ -'has_internet_connection' => true, - -/** - * Which domains to request to determine the availability of an Internet - * connection. If none of these hosts are reachable, the administration panel - * will show a warning. Set to an empty list to not do any such checks (warning - * will still be shown). - * - * Defaults to the following domains: - * - * - www.nextcloud.com - * - www.startpage.com - * - www.eff.org - * - www.edri.org - */ -'connectivity_check_domains' => array( - 'www.nextcloud.com', - 'www.startpage.com', - 'www.eff.org', - 'www.edri.org' -), - -/** - * Allows Nextcloud to verify a working .well-known URL redirects. This is done - * by attempting to make a request from JS to - * https://your-domain.com/.well-known/caldav/ - * - * Defaults to ``true`` - */ -'check_for_working_wellknown_setup' => true, - -/** - * This is a crucial security check on Apache servers that should always be set - * to ``true``. This verifies that the ``.htaccess`` file is writable and works. - * If it is not, then any options controlled by ``.htaccess``, such as large - * file uploads, will not work. It also runs checks on the ``data/`` directory, - * which verifies that it can't be accessed directly through the Web server. - * - * Defaults to ``true`` - */ -'check_for_working_htaccess' => true, - -/** - * In rare setups (e.g. on Openshift or docker on windows) the permissions check - * might block the installation while the underlying system offers no means to - * "correct" the permissions. In this case, set the value to false. - * - * In regular cases, if issues with permissions are encountered they should be - * adjusted accordingly. Changing the flag is discouraged. - * - * Defaults to ``true`` - */ -'check_data_directory_permissions' => true, - -/** - * In certain environments it is desired to have a read-only configuration file. - * When this switch is set to ``true`` Nextcloud will not verify whether the - * configuration is writable. However, it will not be possible to configure - * all options via the Web interface. Furthermore, when updating Nextcloud - * it is required to make the configuration file writable again for the update - * process. - * - * Defaults to ``false`` - */ -'config_is_read_only' => false, - -/** - * Logging - */ - -/** - * This parameter determines where the Nextcloud logs are sent. - * ``file``: the logs are written to file ``nextcloud.log`` in the default - * Nextcloud data directory. The log file can be changed with parameter - * ``logfile``. - * ``syslog``: the logs are sent to the system log. This requires a syslog daemon - * to be active. - * ``errorlog``: the logs are sent to the PHP ``error_log`` function. - * ``systemd``: the logs are sent to the Systemd journal. This requires a system - * that runs Systemd and the Systemd journal. The PHP extension ``systemd`` - * must be installed and active. - * - * Defaults to ``file`` - */ -'log_type' => 'file', - -/** - * Name of the file to which the Nextcloud logs are written if parameter - * ``log_type`` is set to ``file``. - * - * Defaults to ``[datadirectory]/nextcloud.log`` - */ -'logfile' => '/var/log/nextcloud.log', - -/** - * Log file mode for the Nextcloud loggin type in octal notation. - * - * Defaults to 0640 (writeable by user, readable by group). - */ -'logfilemode' => 0640, - -/** - * Loglevel to start logging at. Valid values are: 0 = Debug, 1 = Info, 2 = - * Warning, 3 = Error, and 4 = Fatal. The default value is Warning. - * - * Defaults to ``2`` - */ -'loglevel' => 2, - -/** - * If you maintain different instances and aggregate the logs, you may want - * to distinguish between them. ``syslog_tag`` can be set per instance - * with a unique id. Only available if ``log_type`` is set to ``syslog`` or - * ``systemd``. - * - * The default value is ``Nextcloud``. - */ -'syslog_tag' => 'Nextcloud', - -/** - * Log condition for log level increase based on conditions. Once one of these - * conditions is met, the required log level is set to debug. This allows to - * debug specific requests, users or apps - * - * Supported conditions: - * - ``shared_secret``: if a request parameter with the name `log_secret` is set to - * this value the condition is met - * - ``users``: if the current request is done by one of the specified users, - * this condition is met - * - ``apps``: if the log message is invoked by one of the specified apps, - * this condition is met - * - * Defaults to an empty array. - */ -'log.condition' => [ - 'shared_secret' => '57b58edb6637fe3059b3595cf9c41b9', - 'users' => ['sample-user'], - 'apps' => ['files'], -], - -/** - * This uses PHP.date formatting; see http://php.net/manual/en/function.date.php - * - * Defaults to ISO 8601 ``2005-08-15T15:52:01+00:00`` - see \DateTime::ATOM - * (https://secure.php.net/manual/en/class.datetime.php#datetime.constants.atom) - */ -'logdateformat' => 'F d, Y H:i:s', - -/** - * The timezone for logfiles. You may change this; see - * http://php.net/manual/en/timezones.php - * - * Defaults to ``UTC`` - */ -'logtimezone' => 'Europe/Berlin', - -/** - * Append all database queries and parameters to the log file. Use this only for - * debugging, as your logfile will become huge. - */ -'log_query' => false, - -/** - * Enables log rotation and limits the total size of logfiles. The default is 0, - * or no rotation. Specify a size in bytes, for example 104857600 (100 megabytes - * = 100 * 1024 * 1024 bytes). A new logfile is created with a new name when the - * old logfile reaches your limit. If a rotated log file is already present, it - * will be overwritten. - * - * Defaults to 100 MB - */ -'log_rotate_size' => 100 * 1024 * 1024, - - -/** - * Alternate Code Locations - * - * Some of the Nextcloud code may be stored in alternate locations. - */ - -/** - * This section is for configuring the download links for Nextcloud clients, as - * seen in the first-run wizard and on Personal pages. - * - * Defaults to: - * - Desktop client: ``https://nextcloud.com/install/#install-clients`` - * - Android client: ``https://play.google.com/store/apps/details?id=com.nextcloud.client`` - * - iOS client: ``https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8`` - * - iOS client app id: ``1125420102`` - */ -'customclient_desktop' => - 'https://nextcloud.com/install/#install-clients', -'customclient_android' => - 'https://play.google.com/store/apps/details?id=com.nextcloud.client', -'customclient_ios' => - 'https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8', -'customclient_ios_appid' => - '1125420102', -/** - * Apps - * - * Options for the Apps folder, Apps store, and App code checker. - */ - -/** - * When enabled, admins may install apps from the Nextcloud app store. - * - * Defaults to ``true`` - */ -'appstoreenabled' => true, - -/** - * Use the ``apps_paths`` parameter to set the location of the Apps directory, - * which should be scanned for available apps, and where user-specific apps - * should be installed from the Apps store. The ``path`` defines the absolute - * file system path to the app folder. The key ``url`` defines the HTTP Web path - * to that folder, starting from the Nextcloud webroot. The key ``writable`` - * indicates if a Web server can write files to that folder. - */ -'apps_paths' => array( - array( - 'path'=> '/var/www/nextcloud/apps', - 'url' => '/apps', - 'writable' => true, - ), -), - -/** - * @see appcodechecker - */ - -/** - * Previews - * - * Nextcloud supports previews of image files, the covers of MP3 files, and text - * files. These options control enabling and disabling previews, and thumbnail - * size. - */ - -/** - * By default, Nextcloud can generate previews for the following filetypes: - * - * - Image files - * - Covers of MP3 files - * - Text documents - * - * Valid values are ``true``, to enable previews, or - * ``false``, to disable previews - * - * Defaults to ``true`` - */ -'enable_previews' => true, -/** - * The maximum width, in pixels, of a preview. A value of ``null`` means there - * is no limit. - * - * Defaults to ``4096`` - */ -'preview_max_x' => 4096, -/** - * The maximum height, in pixels, of a preview. A value of ``null`` means there - * is no limit. - * - * Defaults to ``4096`` - */ -'preview_max_y' => 4096, - -/** - * max file size for generating image previews with imagegd (default behavior) - * If the image is bigger, it'll try other preview generators, but will most - * likely show the default mimetype icon. Set to -1 for no limit. - * - * Defaults to ``50`` megabytes - */ -'preview_max_filesize_image' => 50, - -/** - * custom path for LibreOffice/OpenOffice binary - * - * - * Defaults to ``''`` (empty string) - */ -'preview_libreoffice_path' => '/usr/bin/libreoffice', -/** - * Use this if LibreOffice/OpenOffice requires additional arguments. - * - * Defaults to ``''`` (empty string) - */ -'preview_office_cl_parameters' => - ' --headless --nologo --nofirststartwizard --invisible --norestore '. - '--convert-to png --outdir ', - -/** - * Only register providers that have been explicitly enabled - * - * The following providers are disabled by default due to performance or privacy - * concerns: - * - * - OC\Preview\Illustrator - * - OC\Preview\Movie - * - OC\Preview\MSOffice2003 - * - OC\Preview\MSOffice2007 - * - OC\Preview\MSOfficeDoc - * - OC\Preview\OpenDocument - * - OC\Preview\PDF - * - OC\Preview\Photoshop - * - OC\Preview\Postscript - * - OC\Preview\StarOffice - * - OC\Preview\SVG - * - OC\Preview\TIFF - * - OC\Preview\Font - * - * The following providers are not available in Microsoft Windows: - * - * - OC\Preview\Movie - * - OC\Preview\MSOfficeDoc - * - OC\Preview\MSOffice2003 - * - OC\Preview\MSOffice2007 - * - OC\Preview\OpenDocument - * - OC\Preview\StarOffice - * - * Defaults to the following providers: - * - * - OC\Preview\BMP - * - OC\Preview\GIF - * - OC\Preview\HEIC - * - OC\Preview\JPEG - * - OC\Preview\MarkDown - * - OC\Preview\MP3 - * - OC\Preview\PNG - * - OC\Preview\TXT - * - OC\Preview\XBitmap - */ -'enabledPreviewProviders' => array( - 'OC\Preview\PNG', - 'OC\Preview\JPEG', - 'OC\Preview\GIF', - 'OC\Preview\HEIC', - 'OC\Preview\BMP', - 'OC\Preview\XBitmap', - 'OC\Preview\MP3', - 'OC\Preview\TXT', - 'OC\Preview\MarkDown' -), - -/** - * LDAP - * - * Global settings used by LDAP User and Group Backend - */ - -/** - * defines the interval in minutes for the background job that checks user - * existence and marks them as ready to be cleaned up. The number is always - * minutes. Setting it to 0 disables the feature. - * See command line (occ) methods ``ldap:show-remnants`` and ``user:delete`` - * - * Defaults to ``51`` minutes - */ -'ldapUserCleanupInterval' => 51, - -/** - * Sort groups in the user settings by name instead of the user count - * - * By enabling this the user count beside the group name is disabled as well. - */ -'sort_groups_by_name' => false, - -/** - * Comments - * - * Global settings for the Comments infrastructure - */ - -/** - * Replaces the default Comments Manager Factory. This can be utilized if an - * own or 3rdParty CommentsManager should be used that – for instance – uses the - * filesystem instead of the database to keep the comments. - * - * Defaults to ``\OC\Comments\ManagerFactory`` - */ -'comments.managerFactory' => '\OC\Comments\ManagerFactory', - -/** - * Replaces the default System Tags Manager Factory. This can be utilized if an - * own or 3rdParty SystemTagsManager should be used that – for instance – uses the - * filesystem instead of the database to keep the tags. - * - * Defaults to ``\OC\SystemTag\ManagerFactory`` - */ -'systemtags.managerFactory' => '\OC\SystemTag\ManagerFactory', - -/** - * Maintenance - * - * These options are for halting user activity when you are performing server - * maintenance. - */ - -/** - * Enable maintenance mode to disable Nextcloud - * - * If you want to prevent users from logging in to Nextcloud before you start - * doing some maintenance work, you need to set the value of the maintenance - * parameter to true. Please keep in mind that users who are already logged-in - * are kicked out of Nextcloud instantly. - * - * Defaults to ``false`` - */ -'maintenance' => false, - - -/** - * SSL - */ - -/** - * Extra SSL options to be used for configuration. - * - * Defaults to an empty array. - */ -'openssl' => array( - 'config' => '/absolute/location/of/openssl.cnf', -), - -/** - * Memory caching backend configuration - * - * Available cache backends: - * - * * ``\OC\Memcache\APCu`` APC user backend - * * ``\OC\Memcache\ArrayCache`` In-memory array-based backend (not recommended) - * * ``\OC\Memcache\Memcached`` Memcached backend - * * ``\OC\Memcache\Redis`` Redis backend - * - * Advice on choosing between the various backends: - * - * * APCu should be easiest to install. Almost all distributions have packages. - * Use this for single user environment for all caches. - * * Use Redis or Memcached for distributed environments. - * For the local cache (you can configure two) take APCu. - */ - -/** - * Memory caching backend for locally stored data - * - * * Used for host-specific data, e.g. file paths - * - * Defaults to ``none`` - */ -'memcache.local' => '\OC\Memcache\APCu', - -/** - * Memory caching backend for distributed data - * - * * Used for installation-specific data, e.g. database caching - * * If unset, defaults to the value of memcache.local - * - * Defaults to ``none`` - */ -'memcache.distributed' => '\OC\Memcache\Memcached', - -/** - * Connection details for redis to use for memory caching in a single server configuration. - * - * For enhanced security it is recommended to configure Redis - * to require a password. See http://redis.io/topics/security - * for more information. - */ -'redis' => [ - 'host' => 'localhost', // can also be a unix domain socket: '/tmp/redis.sock' - 'port' => 6379, - 'timeout' => 0.0, - 'password' => '', // Optional, if not defined no password will be used. - 'dbindex' => 0, // Optional, if undefined SELECT will not run and will use Redis Server's default DB Index. -], - -/** - * Connection details for a Redis Cluster - * - * Only for use with Redis Clustering, for Sentinel-based setups use the single - * server configuration above, and perform HA on the hostname. - * - * Redis Cluster support requires the php module phpredis in version 3.0.0 or - * higher. - * - * Available failover modes: - * - \RedisCluster::FAILOVER_NONE - only send commands to master nodes (default) - * - \RedisCluster::FAILOVER_ERROR - failover to slaves for read commands if master is unavailable (recommended) - * - \RedisCluster::FAILOVER_DISTRIBUTE - randomly distribute read commands across master and slaves - * - * WARNING: FAILOVER_DISTRIBUTE is a not recommended setting and we strongly - * suggest to not use it if you use Redis for file locking. Due to the way Redis - * is synchronized it could happen, that the read for an existing lock is - * scheduled to a slave that is not fully synchronized with the connected master - * which then causes a FileLocked exception. - * - * See https://redis.io/topics/cluster-spec for details about the Redis cluster - * - * Authentication works with phpredis version 4.2.1+. See - * https://github.com/phpredis/phpredis/commit/c5994f2a42b8a348af92d3acb4edff1328ad8ce1 - */ -'redis.cluster' => [ - 'seeds' => [ // provide some/all of the cluster servers to bootstrap discovery, port required - 'localhost:7000', - 'localhost:7001', - ], - 'timeout' => 0.0, - 'read_timeout' => 0.0, - 'failover_mode' => \RedisCluster::FAILOVER_ERROR, - 'password' => '', // Optional, if not defined no password will be used. -], - - -/** - * Server details for one or more memcached servers to use for memory caching. - */ -'memcached_servers' => array( - // hostname, port and optional weight. Also see: - // http://www.php.net/manual/en/memcached.addservers.php - // http://www.php.net/manual/en/memcached.addserver.php - array('localhost', 11211), - //array('other.host.local', 11211), -), - -/** - * Connection options for memcached, see http://apprize.info/php/scaling/15.html - */ -'memcached_options' => array( - // Set timeouts to 50ms - \Memcached::OPT_CONNECT_TIMEOUT => 50, - \Memcached::OPT_RETRY_TIMEOUT => 50, - \Memcached::OPT_SEND_TIMEOUT => 50, - \Memcached::OPT_RECV_TIMEOUT => 50, - \Memcached::OPT_POLL_TIMEOUT => 50, - - // Enable compression - \Memcached::OPT_COMPRESSION => true, - - // Turn on consistent hashing - \Memcached::OPT_LIBKETAMA_COMPATIBLE => true, - - // Enable Binary Protocol - \Memcached::OPT_BINARY_PROTOCOL => true, - - // Binary serializer vill be enabled if the igbinary PECL module is available - //\Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_IGBINARY, -), - - -/** - * Location of the cache folder, defaults to ``data/$user/cache`` where - * ``$user`` is the current user. When specified, the format will change to - * ``$cache_path/$user`` where ``$cache_path`` is the configured cache directory - * and ``$user`` is the user. - * - * Defaults to ``''`` (empty string) - */ -'cache_path' => '', - -/** - * TTL of chunks located in the cache folder before they're removed by - * garbage collection (in seconds). Increase this value if users have - * issues uploading very large files via the Nextcloud Client as upload isn't - * completed within one day. - * - * Defaults to ``60*60*24`` (1 day) - */ -'cache_chunk_gc_ttl' => 60*60*24, - -/** - * Using Object Store with Nextcloud - */ - -/** - * This example shows how to configure Nextcloud to store all files in a - * swift object storage. - * - * It is important to note that Nextcloud in object store mode will expect - * exclusive access to the object store container because it only stores the - * binary data for each file. The metadata is currently kept in the local - * database for performance reasons. - * - * WARNING: The current implementation is incompatible with any app that uses - * direct file IO and circumvents our virtual filesystem. That includes - * Encryption and Gallery. Gallery will store thumbnails directly in the - * filesystem and encryption will cause severe overhead because key files need - * to be fetched in addition to any requested file. - * - * One way to test is applying for a trystack account at http://trystack.org/ - */ -'objectstore' => [ - 'class' => 'OC\\Files\\ObjectStore\\Swift', - 'arguments' => [ - // trystack will use your facebook id as the user name - 'username' => 'facebook100000123456789', - // in the trystack dashboard go to user -> settings -> API Password to - // generate a password - 'password' => 'Secr3tPaSSWoRdt7', - // must already exist in the objectstore, name can be different - 'container' => 'nextcloud', - // prefix to prepend to the fileid, default is 'oid:urn:' - 'objectPrefix' => 'oid:urn:', - // create the container if it does not exist. default is false - 'autocreate' => true, - // required, dev-/trystack defaults to 'RegionOne' - 'region' => 'RegionOne', - // The Identity / Keystone endpoint - 'url' => 'http://8.21.28.222:5000/v2.0', - // required on dev-/trystack - 'tenantName' => 'facebook100000123456789', - // dev-/trystack uses swift by default, the lib defaults to 'cloudFiles' - // if omitted - 'serviceName' => 'swift', - // The Interface / url Type, optional - 'urlType' => 'internal' - ], -], - -/** - * To use swift V3 - */ -'objectstore' => [ - 'class' => 'OC\\Files\\ObjectStore\\Swift', - 'arguments' => [ - 'autocreate' => true, - 'user' => [ - 'name' => 'swift', - 'password' => 'swift', - 'domain' => [ - 'name' => 'default', - ], - ], - 'scope' => [ - 'project' => [ - 'name' => 'service', - 'domain' => [ - 'name' => 'default', - ], - ], - ], - 'tenantName' => 'service', - 'serviceName' => 'swift', - 'region' => 'regionOne', - 'url' => 'http://yourswifthost:5000/v3', - 'bucket' => 'nextcloud', - ], -], - - -/** - * Sharing - * - * Global settings for Sharing - */ - -/** - * Replaces the default Share Provider Factory. This can be utilized if - * own or 3rdParty Share Providers are used that – for instance – use the - * filesystem instead of the database to keep the share information. - * - * Defaults to ``\OC\Share20\ProviderFactory`` - */ -'sharing.managerFactory' => '\OC\Share20\ProviderFactory', - -/** - * Define max number of results returned by the user search for auto-completion - * Default is unlimited (value set to 0). - */ -'sharing.maxAutocompleteResults' => 0, - -/** - * Define the minimum length of the search string before we start auto-completion - * Default is no limit (value set to 0) - */ -'sharing.minSearchStringLength' => 0, - -/** - * All other configuration options - */ - -/** - * Additional driver options for the database connection, eg. to enable SSL - * encryption in MySQL or specify a custom wait timeout on a cheap hoster. - */ -'dbdriveroptions' => array( - PDO::MYSQL_ATTR_SSL_CA => '/file/path/to/ca_cert.pem', - PDO::MYSQL_ATTR_INIT_COMMAND => 'SET wait_timeout = 28800' -), - -/** - * sqlite3 journal mode can be specified using this configuration parameter - - * can be 'WAL' or 'DELETE' see for more details https://www.sqlite.org/wal.html - */ -'sqlite.journal_mode' => 'DELETE', - -/** - * During setup, if requirements are met (see below), this setting is set to true - * and MySQL can handle 4 byte characters instead of 3 byte characters. - * - * If you want to convert an existing 3-byte setup into a 4-byte setup please - * set the parameters in MySQL as mentioned below and run the migration command: - * ./occ db:convert-mysql-charset - * The config setting will be set automatically after a successful run. - * - * Consult the documentation for more details. - * - * MySQL requires a special setup for longer indexes (> 767 bytes) which are - * needed: - * - * [mysqld] - * innodb_large_prefix=ON - * innodb_file_format=Barracuda - * innodb_file_per_table=ON - * - * Tables will be created with - * * character set: utf8mb4 - * * collation: utf8mb4_bin - * * row_format: compressed - * - * See: - * https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-utf8mb4.html - * https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_large_prefix - * https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system-variables/#innodb_large_prefix - * http://www.tocker.ca/2013/10/31/benchmarking-innodb-page-compression-performance.html - * http://mechanics.flite.com/blog/2014/07/29/using-innodb-large-prefix-to-avoid-error-1071/ - */ -'mysql.utf8mb4' => false, - -/** - * Database types that are supported for installation. - * - * Available: - * - sqlite (SQLite3) - * - mysql (MySQL) - * - pgsql (PostgreSQL) - * - oci (Oracle) - * - * Defaults to the following databases: - * - sqlite (SQLite3) - * - mysql (MySQL) - * - pgsql (PostgreSQL) - */ -'supportedDatabases' => array( - 'sqlite', - 'mysql', - 'pgsql', - 'oci', -), - -/** - * Override where Nextcloud stores temporary files. Useful in situations where - * the system temporary directory is on a limited space ramdisk or is otherwise - * restricted, or if external storages which do not support streaming are in - * use. - * - * The Web server user must have write access to this directory. - */ -'tempdirectory' => '/tmp/nextcloudtemp', - -/** - * The hashing cost used by hashes generated by Nextcloud - * Using a higher value requires more time and CPU power to calculate the hashes - */ -'hashingCost' => 10, - -/** - * Blacklist a specific file or files and disallow the upload of files - * with this name. ``.htaccess`` is blocked by default. - * WARNING: USE THIS ONLY IF YOU KNOW WHAT YOU ARE DOING. - * - * Defaults to ``array('.htaccess')`` - */ -'blacklisted_files' => array('.htaccess'), - -/** - * Define a default folder for shared files and folders other than root. - * - * Defaults to ``/`` - */ -'share_folder' => '/', - -/** - * If you are applying a theme to Nextcloud, enter the name of the theme here. - * The default location for themes is ``nextcloud/themes/``. - * - * Defaults to the theming app which is shipped since Nextcloud 9 - */ -'theme' => '', - -/** - * The default cipher for encrypting files. Currently AES-128-CFB and - * AES-256-CFB are supported. - */ -'cipher' => 'AES-256-CFB', - -/** - * The minimum Nextcloud desktop client version that will be allowed to sync with - * this server instance. All connections made from earlier clients will be denied - * by the server. Defaults to the minimum officially supported Nextcloud desktop - * clientversion at the time of release of this server version. - * - * When changing this, note that older unsupported versions of the Nextcloud desktop - * client may not function as expected, and could lead to permanent data loss for - * clients or other unexpected results. - * - * Defaults to ``2.0.0`` - */ -'minimum.supported.desktop.version' => '2.0.0', - -/** - * EXPERIMENTAL: option whether to include external storage in quota - * calculation, defaults to false. - * - * Defaults to ``false`` - */ -'quota_include_external_storage' => false, - -/** - * Specifies how often the local filesystem (the Nextcloud data/ directory, and - * NFS mounts in data/) is checked for changes made outside Nextcloud. This - * does not apply to external storages. - * - * 0 -> Never check the filesystem for outside changes, provides a performance - * increase when it's certain that no changes are made directly to the - * filesystem - * - * 1 -> Check each file or folder at most once per request, recommended for - * general use if outside changes might happen. - * - * Defaults to ``0`` - */ -'filesystem_check_changes' => 0, - -/** - * By default Nextcloud will store the part files created during upload in the - * same storage as the upload target. Setting this to false will store the part - * files in the root of the users folder which might be required to work with certain - * external storage setups that have limited rename capabilities. - * - * Defaults to ``true`` - */ -'part_file_in_storage' => true, - -/** - * Where ``mount.json`` file should be stored, defaults to ``data/mount.json`` - * in the Nextcloud directory. - * - * Defaults to ``data/mount.json`` in the Nextcloud directory. - */ -'mount_file' => '/var/www/nextcloud/data/mount.json', - -/** - * When ``true``, prevent Nextcloud from changing the cache due to changes in - * the filesystem for all storage. - * - * Defaults to ``false`` - */ -'filesystem_cache_readonly' => false, - -/** - * Secret used by Nextcloud for various purposes, e.g. to encrypt data. If you - * lose this string there will be data corruption. - */ -'secret' => '', - -/** - * List of trusted proxy servers - * - * You may set this to an array containing a combination of - * - IPv4 addresses, e.g. `192.168.2.123` - * - IPv4 ranges in CIDR notation, e.g. `192.168.2.0/24` - * - IPv6 addresses, e.g. `fd9e:21a7:a92c:2323::1` - * - * _(CIDR notation for IPv6 is currently work in progress and thus not - * available as of yet)_ - * - * When an incoming request's `REMOTE_ADDR` matches any of the IP addresses - * specified here, it is assumed to be a proxy instead of a client. Thus, the - * client IP will be read from the HTTP header specified in - * `forwarded_for_headers` instead of from `REMOTE_ADDR`. - * - * So if you configure `trusted_proxies`, also consider setting - * `forwarded_for_headers` which otherwise defaults to `HTTP_X_FORWARDED_FOR` - * (the `X-Forwarded-For` header). - * - * Defaults to an empty array. - */ -'trusted_proxies' => array('203.0.113.45', '198.51.100.128', '192.168.2.0/24'), - -/** - * Headers that should be trusted as client IP address in combination with - * `trusted_proxies`. If the HTTP header looks like 'X-Forwarded-For', then use - * 'HTTP_X_FORWARDED_FOR' here. - * - * If set incorrectly, a client can spoof their IP address as visible to - * Nextcloud, bypassing access controls and making logs useless! - * - * Defaults to ``'HTTP_X_FORWARDED_FOR'`` - */ -'forwarded_for_headers' => array('HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR'), - -/** - * max file size for animating gifs on public-sharing-site. - * If the gif is bigger, it'll show a static preview - * - * Value represents the maximum filesize in megabytes. Set to ``-1`` for - * no limit. - * - * Defaults to ``10`` megabytes - */ -'max_filesize_animated_gifs_public_sharing' => 10, - - -/** - * Enables transactional file locking. - * This is enabled by default. - * - * Prevents concurrent processes from accessing the same files - * at the same time. Can help prevent side effects that would - * be caused by concurrent operations. Mainly relevant for - * very large installations with many users working with - * shared files. - * - * Defaults to ``true`` - */ -'filelocking.enabled' => true, - -/** - * Set the lock's time-to-live in seconds. - * - * Any lock older than this will be automatically cleaned up. - * - * Defaults to ``60*60`` seconds (1 hour) or the php - * max_execution_time, whichever is higher. - */ -'filelocking.ttl' => 60*60, - -/** - * Memory caching backend for file locking - * - * Because most memcache backends can clean values without warning using redis - * is highly recommended to *avoid data loss*. - * - * Defaults to ``none`` - */ -'memcache.locking' => '\\OC\\Memcache\\Redis', - -/** - * Enable locking debug logging - * - * Note that this can lead to a very large volume of log items being written which can lead - * to performance degradation and large log files on busy instance. - * - * Thus enabling this in production for longer periods of time is not recommended - * or should be used together with the ``log.condition`` setting. - */ -'filelocking.debug' => false, - -/** - * Disable the web based updater - */ -'upgrade.disable-web' => false, - -/** - * Set this Nextcloud instance to debugging mode - * - * Only enable this for local development and not in production environments - * This will disable the minifier and outputs some additional debug information - * - * Defaults to ``false`` - */ -'debug' => false, - -/** - * Sets the data-fingerprint of the current data served - * - * This is a property used by the clients to find out if a backup has been - * restored on the server. Once a backup is restored run - * ./occ maintenance:data-fingerprint - * To set this to a new value. - * - * Updating/Deleting this value can make connected clients stall until - * the user has resolved conflicts. - * - * Defaults to ``''`` (empty string) - */ -'data-fingerprint' => '', - -/** - * This entry is just here to show a warning in case somebody copied the sample - * configuration. DO NOT ADD THIS SWITCH TO YOUR CONFIGURATION! - * - * If you, brave person, have read until here be aware that you should not - * modify *ANY* settings in this file without reading the documentation. - */ -'copied_sample_config' => true, - -/** - * use a custom lookup server to publish user data - */ -'lookup_server' => 'https://lookup.nextcloud.com', - -/** - * set to true if the server is used in a setup based on Nextcloud's Global Scale architecture - */ -'gs.enabled' => false, - -/** - * by default federation is only used internally in a Global Scale setup - * If you want to allow federation outside of your environment set it to 'global' - */ -'gs.federation' => 'internal', - -/** - * List of incompatible user agents opted out from Same Site Cookie Protection. - * Some user agents are notorious and don't really properly follow HTTP - * specifications. For those, have an opt-out. - * - * WARNING: only use this if you know what you are doing - */ -'csrf.optout' => array( - '/^WebDAVFS/', // OS X Finder - '/^Microsoft-WebDAV-MiniRedir/', // Windows webdav drive -), - -/** - * By default there is on public pages a link shown that allows users to - * learn about the "simple sign up" - see https://nextcloud.com/signup/ - * - * If this is set to "false" it will not show the link. - */ -'simpleSignUpLink.shown' => true, - -/** - * By default autocompletion is enabled for the login form on Nextcloud's login page. - * While this is enabled, browsers are allowed to "remember" login names and such. - * Some companies require it to be disabled to comply with their security policy. - * - * Simply set this property to "false", if you want to turn this feature off. - */ - -'login_form_autocomplete' => true, -); + 'd3c944a9a', + */ +'instanceid' => '', + + /** + * The salt used to hash all passwords, auto-generated by the Nextcloud + * installer. (There are also per-user salts.) If you lose this salt you lose + * all your passwords. This example is for documentation only, and you should + * never use it. + * + * @deprecated This salt is deprecated and only used for legacy-compatibility, + * developers should *NOT* use this value for anything nowadays. + * + * 'passwordsalt' => 'd3c944a9af095aa08f', + */ +'passwordsalt' => '', + +/** + * The adminitsrator email provides a place to personalize a support email to + * display in all messages errors + * + * 'administrator_email' => 'support@nextcloud.com', + */ +'administrator_email' => 'your administrator email', + +/** + * Your list of trusted domains that users can log into. Specifying trusted + * domains prevents host header poisoning. Do not remove this, as it performs + * necessary security checks. + * You can specify: + * + * - the exact hostname of your host or virtual host, e.g. demo.example.org. + * - the exact hostname with permitted port, e.g. demo.example.org:443. + * This disallows all other ports on this host + * - use * as a wildcard, e.g. ubos-raspberry-pi*.local will allow + * ubos-raspberry-pi.local and ubos-raspberry-pi-2.local + */ +'trusted_domains' => + array ( + 'demo.example.org', + 'otherdomain.example.org', + ), + + +/** + * Where user files are stored. The SQLite database is also stored here, when + * you use SQLite. + * + * Default to ``data/`` in the Nextcloud directory. + */ +'datadirectory' => '/var/www/nextcloud/data', + +/** + * The current version number of your Nextcloud installation. This is set up + * during installation and update, so you shouldn't need to change it. + */ +'version' => '', + +/** + * Identifies the database used with this installation. See also config option + * ``supportedDatabases`` + * + * Available: + * - sqlite3 (SQLite3) + * - mysql (MySQL/MariaDB) + * - pgsql (PostgreSQL) + * + * Defaults to ``sqlite3`` + */ +'dbtype' => 'sqlite3', + +/** + * Your host server name, for example ``localhost``, ``hostname``, + * ``hostname.example.com``, or the IP address. To specify a port use + * ``hostname:####``; to specify a Unix socket use + * ``localhost:/path/to/socket``. + */ +'dbhost' => '', + +/** + * The name of the Nextcloud database, which is set during installation. You + * should not need to change this. + */ +'dbname' => 'nextcloud', + +/** + * The user that Nextcloud uses to write to the database. This must be unique + * across Nextcloud instances using the same SQL database. This is set up during + * installation, so you shouldn't need to change it. + */ +'dbuser' => '', + +/** + * The password for the database user. This is set up during installation, so + * you shouldn't need to change it. + */ +'dbpassword' => '', + +/** + * Prefix for the Nextcloud tables in the database. + * + * Default to ``oc_`` + */ +'dbtableprefix' => '', + + +/** + * Indicates whether the Nextcloud instance was installed successfully; ``true`` + * indicates a successful installation, and ``false`` indicates an unsuccessful + * installation. + * + * Defaults to ``false`` + */ +'installed' => false, + + +/** + * User Experience + * + * These optional parameters control some aspects of the user interface. Default + * values, where present, are shown. + */ + +/** + * This sets the default language on your Nextcloud server, using ISO_639-1 + * language codes such as ``en`` for English, ``de`` for German, and ``fr`` for + * French. It overrides automatic language detection on public pages like login + * or shared items. User's language preferences configured under "personal -> + * language" override this setting after they have logged in. Nextcloud has two + * distinguished language codes for German, 'de' and 'de_DE'. 'de' is used for + * informal German and 'de_DE' for formal German. By setting this value to 'de_DE' + * you can enforce the formal version of German unless the user has chosen + * something different explicitly. + * + * Defaults to ``en`` + */ +'default_language' => 'en', + +/** + * With this setting a language can be forced for all users. If a language is + * forced, the users are also unable to change their language in the personal + * settings. If users shall be unable to change their language, but users have + * different languages, this value can be set to ``true`` instead of a language + * code. + * + * Defaults to ``false`` + */ +'force_language' => 'en', + +/** + * This sets the default locale on your Nextcloud server, using ISO_639 + * language codes such as ``en`` for English, ``de`` for German, and ``fr`` for + * French, and ISO-3166 country codes such as ``GB``, ``US``, ``CA``, as defined + * in RFC 5646. It overrides automatic locale detection on public pages like + * login or shared items. User's locale preferences configured under "personal + * -> locale" override this setting after they have logged in. + * + * Defaults to ``en`` + */ +'default_locale' => 'en_US', + +/** + * With this setting a locale can be forced for all users. If a locale is + * forced, the users are also unable to change their locale in the personal + * settings. If users shall be unable to change their locale, but users have + * different languages, this value can be set to ``true`` instead of a locale + * code. + * + * Defaults to ``false`` + */ +'force_locale' => 'en_US', + +/** + * Set the default app to open on login. Use the app names as they appear in the + * URL after clicking them in the Apps menu, such as documents, calendar, and + * gallery. You can use a comma-separated list of app names, so if the first + * app is not enabled for a user then Nextcloud will try the second one, and so + * on. If no enabled apps are found it defaults to the Files app. + * + * Defaults to ``files`` + */ +'defaultapp' => 'files', + +/** + * ``true`` enables the Help menu item in the user menu (top right of the + * Nextcloud Web interface). ``false`` removes the Help item. + */ +'knowledgebaseenabled' => true, + +/** + * ``true`` allows users to change their display names (on their Personal + * pages), and ``false`` prevents them from changing their display names. + */ +'allow_user_to_change_display_name' => true, + +/** + * Lifetime of the remember login cookie. This should be larger than the + * session_lifetime. If it is set to 0 remember me is disabled. + * + * Defaults to ``60*60*24*15`` seconds (15 days) + */ +'remember_login_cookie_lifetime' => 60*60*24*15, + +/** + * The lifetime of a session after inactivity. + * + * Defaults to ``60*60*24`` seconds (24 hours) + */ +'session_lifetime' => 60 * 60 * 24, + +/** + * Enable or disable session keep-alive when a user is logged in to the Web UI. + * Enabling this sends a "heartbeat" to the server to keep it from timing out. + * + * Defaults to ``true`` + */ +'session_keepalive' => true, + +/** + * Enforce token authentication for clients, which blocks requests using the user + * password for enhanced security. Users need to generate tokens in personal settings + * which can be used as passwords on their clients. + * + * Defaults to ``false`` + */ +'token_auth_enforced' => false, + +/** + * Whether the bruteforce protection shipped with Nextcloud should be enabled or not. + * + * Disabling this is discouraged for security reasons. + * + * Defaults to ``true`` + */ +'auth.bruteforce.protection.enabled' => true, + +/** + * The directory where the skeleton files are located. These files will be + * copied to the data directory of new users. Leave empty to not copy any + * skeleton files. + * ``{lang}`` can be used as a placeholder for the language of the user. + * If the directory does not exist, it falls back to non dialect (from ``de_DE`` + * to ``de``). If that does not exist either, it falls back to ``default`` + * + * Defaults to ``core/skeleton`` in the Nextcloud directory. + */ +'skeletondirectory' => '/path/to/nextcloud/core/skeleton', + +/** + * If your user backend does not allow password resets (e.g. when it's a + * read-only user backend like LDAP), you can specify a custom link, where the + * user is redirected to, when clicking the "reset password" link after a failed + * login-attempt. + * In case you do not want to provide any link, replace the url with 'disabled' + */ +'lost_password_link' => 'https://example.org/link/to/password/reset', + +/** + * Mail Parameters + * + * These configure the email settings for Nextcloud notifications and password + * resets. + */ + +/** + * The return address that you want to appear on emails sent by the Nextcloud + * server, for example ``nc-admin@example.com``, substituting your own domain, + * of course. + */ +'mail_domain' => 'example.com', + +/** + * FROM address that overrides the built-in ``sharing-noreply`` and + * ``lostpassword-noreply`` FROM addresses. + * + * Defaults to different from addresses depending on the feature. + */ +'mail_from_address' => 'nextcloud', + +/** + * Enable SMTP class debugging. + * + * Defaults to ``false`` + */ +'mail_smtpdebug' => false, + +/** + * Which mode to use for sending mail: ``sendmail``, ``smtp`` or ``qmail``. + * + * If you are using local or remote SMTP, set this to ``smtp``. + * + * For the ``sendmail`` option you need an installed and working email system on + * the server, with ``/usr/sbin/sendmail`` installed on your Unix system. + * + * For ``qmail`` the binary is /var/qmail/bin/sendmail, and it must be installed + * on your Unix system. + * + * Defaults to ``smtp`` + */ +'mail_smtpmode' => 'smtp', + +/** + * This depends on ``mail_smtpmode``. Specify the IP address of your mail + * server host. This may contain multiple hosts separated by a semi-colon. If + * you need to specify the port number append it to the IP address separated by + * a colon, like this: ``127.0.0.1:24``. + * + * Defaults to ``127.0.0.1`` + */ +'mail_smtphost' => '127.0.0.1', + +/** + * This depends on ``mail_smtpmode``. Specify the port for sending mail. + * + * Defaults to ``25`` + */ +'mail_smtpport' => 25, + +/** + * This depends on ``mail_smtpmode``. This sets the SMTP server timeout, in + * seconds. You may need to increase this if you are running an anti-malware or + * spam scanner. + * + * Defaults to ``10`` seconds + */ +'mail_smtptimeout' => 10, + +/** + * This depends on ``mail_smtpmode``. Specify when you are using ``ssl`` or + * ``tls``, or leave empty for no encryption. + * + * Defaults to ``''`` (empty string) + */ +'mail_smtpsecure' => '', + +/** + * This depends on ``mail_smtpmode``. Change this to ``true`` if your mail + * server requires authentication. + * + * Defaults to ``false`` + */ +'mail_smtpauth' => false, + +/** + * This depends on ``mail_smtpmode``. If SMTP authentication is required, choose + * the authentication type as ``LOGIN`` or ``PLAIN``. + * + * Defaults to ``LOGIN`` + */ +'mail_smtpauthtype' => 'LOGIN', + +/** + * This depends on ``mail_smtpauth``. Specify the username for authenticating to + * the SMTP server. + * + * Defaults to ``''`` (empty string) + */ +'mail_smtpname' => '', + +/** + * This depends on ``mail_smtpauth``. Specify the password for authenticating to + * the SMTP server. + * + * Default to ``''`` (empty string) + */ +'mail_smtppassword' => '', + +/** + * Replaces the default mail template layout. This can be utilized if the + * options to modify the mail texts with the theming app is not enough. + * The class must extend ``\OC\Mail\EMailTemplate`` + */ +'mail_template_class' => '\OC\Mail\EMailTemplate', + +/** + * Email will be send by default with an HTML and a plain text body. This option + * allows to only send plain text emails. + */ +'mail_send_plaintext_only' => false, + +/** + * This depends on ``mail_smtpmode``. Array of additional streams options that + * will be passed to underlying Swift mailer implementation. + * Defaults to an empty array. + */ +'mail_smtpstreamoptions' => array(), + +/** + * Which mode is used for sendmail/qmail: ``smtp`` or ``pipe``. + * + * For ``smtp`` the sendmail binary is started with the parameter ``-bs``: + * - Use the SMTP protocol on standard input and output. + * + * For ``pipe`` the binary is started with the parameters ``-t``: + * - Read message from STDIN and extract recipients. + * + * Defaults to ``smtp`` + */ +'mail_sendmailmode' => 'smtp', + +/** + * Proxy Configurations + */ + +/** + * The automatic hostname detection of Nextcloud can fail in certain reverse + * proxy and CLI/cron situations. This option allows you to manually override + * the automatic detection; for example ``www.example.com``, or specify the port + * ``www.example.com:8080``. + */ +'overwritehost' => '', + +/** + * When generating URLs, Nextcloud attempts to detect whether the server is + * accessed via ``https`` or ``http``. However, if Nextcloud is behind a proxy + * and the proxy handles the ``https`` calls, Nextcloud would not know that + * ``ssl`` is in use, which would result in incorrect URLs being generated. + * Valid values are ``http`` and ``https``. + */ +'overwriteprotocol' => '', + +/** + * Nextcloud attempts to detect the webroot for generating URLs automatically. + * For example, if ``www.example.com/nextcloud`` is the URL pointing to the + * Nextcloud instance, the webroot is ``/nextcloud``. When proxies are in use, + * it may be difficult for Nextcloud to detect this parameter, resulting in + * invalid URLs. + */ +'overwritewebroot' => '', + +/** + * This option allows you to define a manual override condition as a regular + * expression for the remote IP address. For example, defining a range of IP + * addresses starting with ``10.0.0.`` and ending with 1 to 3: + * ``^10\.0\.0\.[1-3]$`` + * + * Defaults to ``''`` (empty string) + */ +'overwritecondaddr' => '', + +/** + * Use this configuration parameter to specify the base URL for any URLs which + * are generated within Nextcloud using any kind of command line tools (cron or + * occ). The value should contain the full base URL: + * ``https://www.example.com/nextcloud`` + * + * Defaults to ``''`` (empty string) + */ +'overwrite.cli.url' => '', + +/** + * To have clean URLs without `/index.php` this parameter needs to be configured. + * + * This parameter will be written as "RewriteBase" on update and installation of + * Nextcloud to your `.htaccess` file. While this value is often simply the URL + * path of the Nextcloud installation it cannot be set automatically properly in + * every scenario and needs thus some manual configuration. + * + * In a standard Apache setup this usually equals the folder that Nextcloud is + * accessible at. So if Nextcloud is accessible via "https://mycloud.org/nextcloud" + * the correct value would most likely be "/nextcloud". If Nextcloud is running + * under "https://mycloud.org/" then it would be "/". + * + * Note that the above rule is not valid in every case, as there are some rare setup + * cases where this may not apply. However, to avoid any update problems this + * configuration value is explicitly opt-in. + * + * After setting this value run `occ maintenance:update:htaccess`. Now, when the + * following conditions are met Nextcloud URLs won't contain `index.php`: + * + * - `mod_rewrite` is installed + * - `mod_env` is installed + * + * Defaults to ``''`` (empty string) + */ +'htaccess.RewriteBase' => '/', + +/** + * For server setups, that don't have `mod_env` enabled or restricted (e.g. suEXEC) + * this parameter has to be set to true and will assume mod_rewrite. + * + * Please check, if `mod_rewrite` is active and functional before setting this + * parameter and you updated your .htaccess with `occ maintenance:update:htaccess`. + * Otherwise your nextcloud installation might not be reachable anymore. + * For example, try accessing resources by leaving out `index.php` in the URL. + */ +'htaccess.IgnoreFrontController' => false, + +/** + * The URL of your proxy server, for example ``proxy.example.com:8081``. + * + * Defaults to ``''`` (empty string) + */ +'proxy' => '', + +/** + * The optional authentication for the proxy to use to connect to the internet. + * The format is: ``username:password``. + * + * Defaults to ``''`` (empty string) + */ +'proxyuserpwd' => '', + + +/** + * Deleted Items (trash bin) + * + * These parameters control the Deleted files app. + */ + +/** + * If the trash bin app is enabled (default), this setting defines the policy + * for when files and folders in the trash bin will be permanently deleted. + * The app allows for two settings, a minimum time for trash bin retention, + * and a maximum time for trash bin retention. + * Minimum time is the number of days a file will be kept, after which it + * may be deleted. Maximum time is the number of days at which it is guaranteed + * to be deleted. + * Both minimum and maximum times can be set together to explicitly define + * file and folder deletion. For migration purposes, this setting is installed + * initially set to "auto", which is equivalent to the default setting in + * Nextcloud. + * + * Available values: + * + * * ``auto`` + * default setting. keeps files and folders in the trash bin for 30 days + * and automatically deletes anytime after that if space is needed (note: + * files may not be deleted if space is not needed). + * * ``D, auto`` + * keeps files and folders in the trash bin for D+ days, delete anytime if + * space needed (note: files may not be deleted if space is not needed) + * * ``auto, D`` + * delete all files in the trash bin that are older than D days + * automatically, delete other files anytime if space needed + * * ``D1, D2`` + * keep files and folders in the trash bin for at least D1 days and + * delete when exceeds D2 days + * * ``disabled`` + * trash bin auto clean disabled, files and folders will be kept forever + * + * Defaults to ``auto`` + */ +'trashbin_retention_obligation' => 'auto', + + +/** + * File versions + * + * These parameters control the Versions app. + */ + +/** + * If the versions app is enabled (default), this setting defines the policy + * for when versions will be permanently deleted. + * The app allows for two settings, a minimum time for version retention, + * and a maximum time for version retention. + * Minimum time is the number of days a version will be kept, after which it + * may be deleted. Maximum time is the number of days at which it is guaranteed + * to be deleted. + * Both minimum and maximum times can be set together to explicitly define + * version deletion. For migration purposes, this setting is installed + * initially set to "auto", which is equivalent to the default setting in + * Nextcloud. + * + * Available values: + * + * * ``auto`` + * default setting. Automatically expire versions according to expire + * rules. Please refer to :doc:`../configuration_files/file_versioning` for + * more information. + * * ``D, auto`` + * keep versions at least for D days, apply expire rules to all versions + * that are older than D days + * * ``auto, D`` + * delete all versions that are older than D days automatically, delete + * other versions according to expire rules + * * ``D1, D2`` + * keep versions for at least D1 days and delete when exceeds D2 days + * * ``disabled`` + * versions auto clean disabled, versions will be kept forever + * + * Defaults to ``auto`` + */ +'versions_retention_obligation' => 'auto', + +/** + * Nextcloud Verifications + * + * Nextcloud performs several verification checks. There are two options, + * ``true`` and ``false``. + */ + +/** + * Checks an app before install whether it uses private APIs instead of the + * proper public APIs. If this is set to true it will only allow to install or + * enable apps that pass this check. + * + * Defaults to ``false`` + */ +'appcodechecker' => true, + +/** + * Check if Nextcloud is up-to-date and shows a notification if a new version is + * available. + * + * Defaults to ``true`` + */ +'updatechecker' => true, + +/** + * URL that Nextcloud should use to look for updates + * + * Defaults to ``https://updates.nextcloud.com/updater_server/`` + */ +'updater.server.url' => 'https://updates.nextcloud.com/updater_server/', + +/** + * The channel that Nextcloud should use to look for updates + * + * Supported values: + * - ``daily`` + * - ``beta`` + * - ``stable`` + * - ``production`` + */ +'updater.release.channel' => 'stable', + +/** + * Is Nextcloud connected to the Internet or running in a closed network? + * + * Defaults to ``true`` + */ +'has_internet_connection' => true, + +/** + * Which domains to request to determine the availability of an Internet + * connection. If none of these hosts are reachable, the administration panel + * will show a warning. Set to an empty list to not do any such checks (warning + * will still be shown). + * + * Defaults to the following domains: + * + * - www.nextcloud.com + * - www.startpage.com + * - www.eff.org + * - www.edri.org + */ +'connectivity_check_domains' => array( + 'www.nextcloud.com', + 'www.startpage.com', + 'www.eff.org', + 'www.edri.org' +), + +/** + * Allows Nextcloud to verify a working .well-known URL redirects. This is done + * by attempting to make a request from JS to + * https://your-domain.com/.well-known/caldav/ + * + * Defaults to ``true`` + */ +'check_for_working_wellknown_setup' => true, + +/** + * This is a crucial security check on Apache servers that should always be set + * to ``true``. This verifies that the ``.htaccess`` file is writable and works. + * If it is not, then any options controlled by ``.htaccess``, such as large + * file uploads, will not work. It also runs checks on the ``data/`` directory, + * which verifies that it can't be accessed directly through the Web server. + * + * Defaults to ``true`` + */ +'check_for_working_htaccess' => true, + +/** + * In rare setups (e.g. on Openshift or docker on windows) the permissions check + * might block the installation while the underlying system offers no means to + * "correct" the permissions. In this case, set the value to false. + * + * In regular cases, if issues with permissions are encountered they should be + * adjusted accordingly. Changing the flag is discouraged. + * + * Defaults to ``true`` + */ +'check_data_directory_permissions' => true, + +/** + * In certain environments it is desired to have a read-only configuration file. + * When this switch is set to ``true`` Nextcloud will not verify whether the + * configuration is writable. However, it will not be possible to configure + * all options via the Web interface. Furthermore, when updating Nextcloud + * it is required to make the configuration file writable again for the update + * process. + * + * Defaults to ``false`` + */ +'config_is_read_only' => false, + +/** + * Logging + */ + +/** + * This parameter determines where the Nextcloud logs are sent. + * ``file``: the logs are written to file ``nextcloud.log`` in the default + * Nextcloud data directory. The log file can be changed with parameter + * ``logfile``. + * ``syslog``: the logs are sent to the system log. This requires a syslog daemon + * to be active. + * ``errorlog``: the logs are sent to the PHP ``error_log`` function. + * ``systemd``: the logs are sent to the Systemd journal. This requires a system + * that runs Systemd and the Systemd journal. The PHP extension ``systemd`` + * must be installed and active. + * + * Defaults to ``file`` + */ +'log_type' => 'file', + +/** + * Name of the file to which the Nextcloud logs are written if parameter + * ``log_type`` is set to ``file``. + * + * Defaults to ``[datadirectory]/nextcloud.log`` + */ +'logfile' => '/var/log/nextcloud.log', + +/** + * Log file mode for the Nextcloud loggin type in octal notation. + * + * Defaults to 0640 (writeable by user, readable by group). + */ +'logfilemode' => 0640, + +/** + * Loglevel to start logging at. Valid values are: 0 = Debug, 1 = Info, 2 = + * Warning, 3 = Error, and 4 = Fatal. The default value is Warning. + * + * Defaults to ``2`` + */ +'loglevel' => 2, + +/** + * If you maintain different instances and aggregate the logs, you may want + * to distinguish between them. ``syslog_tag`` can be set per instance + * with a unique id. Only available if ``log_type`` is set to ``syslog`` or + * ``systemd``. + * + * The default value is ``Nextcloud``. + */ +'syslog_tag' => 'Nextcloud', + +/** + * Log condition for log level increase based on conditions. Once one of these + * conditions is met, the required log level is set to debug. This allows to + * debug specific requests, users or apps + * + * Supported conditions: + * - ``shared_secret``: if a request parameter with the name `log_secret` is set to + * this value the condition is met + * - ``users``: if the current request is done by one of the specified users, + * this condition is met + * - ``apps``: if the log message is invoked by one of the specified apps, + * this condition is met + * + * Defaults to an empty array. + */ +'log.condition' => [ + 'shared_secret' => '57b58edb6637fe3059b3595cf9c41b9', + 'users' => ['sample-user'], + 'apps' => ['files'], +], + +/** + * This uses PHP.date formatting; see http://php.net/manual/en/function.date.php + * + * Defaults to ISO 8601 ``2005-08-15T15:52:01+00:00`` - see \DateTime::ATOM + * (https://secure.php.net/manual/en/class.datetime.php#datetime.constants.atom) + */ +'logdateformat' => 'F d, Y H:i:s', + +/** + * The timezone for logfiles. You may change this; see + * http://php.net/manual/en/timezones.php + * + * Defaults to ``UTC`` + */ +'logtimezone' => 'Europe/Berlin', + +/** + * Append all database queries and parameters to the log file. Use this only for + * debugging, as your logfile will become huge. + */ +'log_query' => false, + +/** + * Enables log rotation and limits the total size of logfiles. The default is 0, + * or no rotation. Specify a size in bytes, for example 104857600 (100 megabytes + * = 100 * 1024 * 1024 bytes). A new logfile is created with a new name when the + * old logfile reaches your limit. If a rotated log file is already present, it + * will be overwritten. + * + * Defaults to 100 MB + */ +'log_rotate_size' => 100 * 1024 * 1024, + + +/** + * Alternate Code Locations + * + * Some of the Nextcloud code may be stored in alternate locations. + */ + +/** + * This section is for configuring the download links for Nextcloud clients, as + * seen in the first-run wizard and on Personal pages. + * + * Defaults to: + * - Desktop client: ``https://nextcloud.com/install/#install-clients`` + * - Android client: ``https://play.google.com/store/apps/details?id=com.nextcloud.client`` + * - iOS client: ``https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8`` + * - iOS client app id: ``1125420102`` + */ +'customclient_desktop' => + 'https://nextcloud.com/install/#install-clients', +'customclient_android' => + 'https://play.google.com/store/apps/details?id=com.nextcloud.client', +'customclient_ios' => + 'https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8', +'customclient_ios_appid' => + '1125420102', +/** + * Apps + * + * Options for the Apps folder, Apps store, and App code checker. + */ + +/** + * When enabled, admins may install apps from the Nextcloud app store. + * + * Defaults to ``true`` + */ +'appstoreenabled' => true, + +/** + * Use the ``apps_paths`` parameter to set the location of the Apps directory, + * which should be scanned for available apps, and where user-specific apps + * should be installed from the Apps store. The ``path`` defines the absolute + * file system path to the app folder. The key ``url`` defines the HTTP Web path + * to that folder, starting from the Nextcloud webroot. The key ``writable`` + * indicates if a Web server can write files to that folder. + */ +'apps_paths' => array( + array( + 'path'=> '/var/www/nextcloud/apps', + 'url' => '/apps', + 'writable' => true, + ), +), + +/** + * @see appcodechecker + */ + +/** + * Previews + * + * Nextcloud supports previews of image files, the covers of MP3 files, and text + * files. These options control enabling and disabling previews, and thumbnail + * size. + */ + +/** + * By default, Nextcloud can generate previews for the following filetypes: + * + * - Image files + * - Covers of MP3 files + * - Text documents + * + * Valid values are ``true``, to enable previews, or + * ``false``, to disable previews + * + * Defaults to ``true`` + */ +'enable_previews' => true, +/** + * The maximum width, in pixels, of a preview. A value of ``null`` means there + * is no limit. + * + * Defaults to ``4096`` + */ +'preview_max_x' => 4096, +/** + * The maximum height, in pixels, of a preview. A value of ``null`` means there + * is no limit. + * + * Defaults to ``4096`` + */ +'preview_max_y' => 4096, + +/** + * max file size for generating image previews with imagegd (default behavior) + * If the image is bigger, it'll try other preview generators, but will most + * likely show the default mimetype icon. Set to -1 for no limit. + * + * Defaults to ``50`` megabytes + */ +'preview_max_filesize_image' => 50, + +/** + * custom path for LibreOffice/OpenOffice binary + * + * + * Defaults to ``''`` (empty string) + */ +'preview_libreoffice_path' => '/usr/bin/libreoffice', +/** + * Use this if LibreOffice/OpenOffice requires additional arguments. + * + * Defaults to ``''`` (empty string) + */ +'preview_office_cl_parameters' => + ' --headless --nologo --nofirststartwizard --invisible --norestore '. + '--convert-to png --outdir ', + +/** + * Only register providers that have been explicitly enabled + * + * The following providers are disabled by default due to performance or privacy + * concerns: + * + * - OC\Preview\Illustrator + * - OC\Preview\Movie + * - OC\Preview\MSOffice2003 + * - OC\Preview\MSOffice2007 + * - OC\Preview\MSOfficeDoc + * - OC\Preview\OpenDocument + * - OC\Preview\PDF + * - OC\Preview\Photoshop + * - OC\Preview\Postscript + * - OC\Preview\StarOffice + * - OC\Preview\SVG + * - OC\Preview\TIFF + * - OC\Preview\Font + * + * The following providers are not available in Microsoft Windows: + * + * - OC\Preview\Movie + * - OC\Preview\MSOfficeDoc + * - OC\Preview\MSOffice2003 + * - OC\Preview\MSOffice2007 + * - OC\Preview\OpenDocument + * - OC\Preview\StarOffice + * + * Defaults to the following providers: + * + * - OC\Preview\BMP + * - OC\Preview\GIF + * - OC\Preview\HEIC + * - OC\Preview\JPEG + * - OC\Preview\MarkDown + * - OC\Preview\MP3 + * - OC\Preview\PNG + * - OC\Preview\TXT + * - OC\Preview\XBitmap + */ +'enabledPreviewProviders' => array( + 'OC\Preview\PNG', + 'OC\Preview\JPEG', + 'OC\Preview\GIF', + 'OC\Preview\HEIC', + 'OC\Preview\BMP', + 'OC\Preview\XBitmap', + 'OC\Preview\MP3', + 'OC\Preview\TXT', + 'OC\Preview\MarkDown' +), + +/** + * LDAP + * + * Global settings used by LDAP User and Group Backend + */ + +/** + * defines the interval in minutes for the background job that checks user + * existence and marks them as ready to be cleaned up. The number is always + * minutes. Setting it to 0 disables the feature. + * See command line (occ) methods ``ldap:show-remnants`` and ``user:delete`` + * + * Defaults to ``51`` minutes + */ +'ldapUserCleanupInterval' => 51, + +/** + * Sort groups in the user settings by name instead of the user count + * + * By enabling this the user count beside the group name is disabled as well. + */ +'sort_groups_by_name' => false, + +/** + * Comments + * + * Global settings for the Comments infrastructure + */ + +/** + * Replaces the default Comments Manager Factory. This can be utilized if an + * own or 3rdParty CommentsManager should be used that – for instance – uses the + * filesystem instead of the database to keep the comments. + * + * Defaults to ``\OC\Comments\ManagerFactory`` + */ +'comments.managerFactory' => '\OC\Comments\ManagerFactory', + +/** + * Replaces the default System Tags Manager Factory. This can be utilized if an + * own or 3rdParty SystemTagsManager should be used that – for instance – uses the + * filesystem instead of the database to keep the tags. + * + * Defaults to ``\OC\SystemTag\ManagerFactory`` + */ +'systemtags.managerFactory' => '\OC\SystemTag\ManagerFactory', + +/** + * Maintenance + * + * These options are for halting user activity when you are performing server + * maintenance. + */ + +/** + * Enable maintenance mode to disable Nextcloud + * + * If you want to prevent users from logging in to Nextcloud before you start + * doing some maintenance work, you need to set the value of the maintenance + * parameter to true. Please keep in mind that users who are already logged-in + * are kicked out of Nextcloud instantly. + * + * Defaults to ``false`` + */ +'maintenance' => false, + + +/** + * SSL + */ + +/** + * Extra SSL options to be used for configuration. + * + * Defaults to an empty array. + */ +'openssl' => array( + 'config' => '/absolute/location/of/openssl.cnf', +), + +/** + * Memory caching backend configuration + * + * Available cache backends: + * + * * ``\OC\Memcache\APCu`` APC user backend + * * ``\OC\Memcache\ArrayCache`` In-memory array-based backend (not recommended) + * * ``\OC\Memcache\Memcached`` Memcached backend + * * ``\OC\Memcache\Redis`` Redis backend + * + * Advice on choosing between the various backends: + * + * * APCu should be easiest to install. Almost all distributions have packages. + * Use this for single user environment for all caches. + * * Use Redis or Memcached for distributed environments. + * For the local cache (you can configure two) take APCu. + */ + +/** + * Memory caching backend for locally stored data + * + * * Used for host-specific data, e.g. file paths + * + * Defaults to ``none`` + */ +'memcache.local' => '\OC\Memcache\APCu', + +/** + * Memory caching backend for distributed data + * + * * Used for installation-specific data, e.g. database caching + * * If unset, defaults to the value of memcache.local + * + * Defaults to ``none`` + */ +'memcache.distributed' => '\OC\Memcache\Memcached', + +/** + * Connection details for redis to use for memory caching in a single server configuration. + * + * For enhanced security it is recommended to configure Redis + * to require a password. See http://redis.io/topics/security + * for more information. + */ +'redis' => [ + 'host' => 'localhost', // can also be a unix domain socket: '/tmp/redis.sock' + 'port' => 6379, + 'timeout' => 0.0, + 'password' => '', // Optional, if not defined no password will be used. + 'dbindex' => 0, // Optional, if undefined SELECT will not run and will use Redis Server's default DB Index. +], + +/** + * Connection details for a Redis Cluster + * + * Only for use with Redis Clustering, for Sentinel-based setups use the single + * server configuration above, and perform HA on the hostname. + * + * Redis Cluster support requires the php module phpredis in version 3.0.0 or + * higher. + * + * Available failover modes: + * - \RedisCluster::FAILOVER_NONE - only send commands to master nodes (default) + * - \RedisCluster::FAILOVER_ERROR - failover to slaves for read commands if master is unavailable (recommended) + * - \RedisCluster::FAILOVER_DISTRIBUTE - randomly distribute read commands across master and slaves + * + * WARNING: FAILOVER_DISTRIBUTE is a not recommended setting and we strongly + * suggest to not use it if you use Redis for file locking. Due to the way Redis + * is synchronized it could happen, that the read for an existing lock is + * scheduled to a slave that is not fully synchronized with the connected master + * which then causes a FileLocked exception. + * + * See https://redis.io/topics/cluster-spec for details about the Redis cluster + * + * Authentication works with phpredis version 4.2.1+. See + * https://github.com/phpredis/phpredis/commit/c5994f2a42b8a348af92d3acb4edff1328ad8ce1 + */ +'redis.cluster' => [ + 'seeds' => [ // provide some/all of the cluster servers to bootstrap discovery, port required + 'localhost:7000', + 'localhost:7001', + ], + 'timeout' => 0.0, + 'read_timeout' => 0.0, + 'failover_mode' => \RedisCluster::FAILOVER_ERROR, + 'password' => '', // Optional, if not defined no password will be used. +], + + +/** + * Server details for one or more memcached servers to use for memory caching. + */ +'memcached_servers' => array( + // hostname, port and optional weight. Also see: + // http://www.php.net/manual/en/memcached.addservers.php + // http://www.php.net/manual/en/memcached.addserver.php + array('localhost', 11211), + //array('other.host.local', 11211), +), + +/** + * Connection options for memcached, see http://apprize.info/php/scaling/15.html + */ +'memcached_options' => array( + // Set timeouts to 50ms + \Memcached::OPT_CONNECT_TIMEOUT => 50, + \Memcached::OPT_RETRY_TIMEOUT => 50, + \Memcached::OPT_SEND_TIMEOUT => 50, + \Memcached::OPT_RECV_TIMEOUT => 50, + \Memcached::OPT_POLL_TIMEOUT => 50, + + // Enable compression + \Memcached::OPT_COMPRESSION => true, + + // Turn on consistent hashing + \Memcached::OPT_LIBKETAMA_COMPATIBLE => true, + + // Enable Binary Protocol + \Memcached::OPT_BINARY_PROTOCOL => true, + + // Binary serializer vill be enabled if the igbinary PECL module is available + //\Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_IGBINARY, +), + + +/** + * Location of the cache folder, defaults to ``data/$user/cache`` where + * ``$user`` is the current user. When specified, the format will change to + * ``$cache_path/$user`` where ``$cache_path`` is the configured cache directory + * and ``$user`` is the user. + * + * Defaults to ``''`` (empty string) + */ +'cache_path' => '', + +/** + * TTL of chunks located in the cache folder before they're removed by + * garbage collection (in seconds). Increase this value if users have + * issues uploading very large files via the Nextcloud Client as upload isn't + * completed within one day. + * + * Defaults to ``60*60*24`` (1 day) + */ +'cache_chunk_gc_ttl' => 60*60*24, + +/** + * Using Object Store with Nextcloud + */ + +/** + * This example shows how to configure Nextcloud to store all files in a + * swift object storage. + * + * It is important to note that Nextcloud in object store mode will expect + * exclusive access to the object store container because it only stores the + * binary data for each file. The metadata is currently kept in the local + * database for performance reasons. + * + * WARNING: The current implementation is incompatible with any app that uses + * direct file IO and circumvents our virtual filesystem. That includes + * Encryption and Gallery. Gallery will store thumbnails directly in the + * filesystem and encryption will cause severe overhead because key files need + * to be fetched in addition to any requested file. + * + * One way to test is applying for a trystack account at http://trystack.org/ + */ +'objectstore' => [ + 'class' => 'OC\\Files\\ObjectStore\\Swift', + 'arguments' => [ + // trystack will use your facebook id as the user name + 'username' => 'facebook100000123456789', + // in the trystack dashboard go to user -> settings -> API Password to + // generate a password + 'password' => 'Secr3tPaSSWoRdt7', + // must already exist in the objectstore, name can be different + 'container' => 'nextcloud', + // prefix to prepend to the fileid, default is 'oid:urn:' + 'objectPrefix' => 'oid:urn:', + // create the container if it does not exist. default is false + 'autocreate' => true, + // required, dev-/trystack defaults to 'RegionOne' + 'region' => 'RegionOne', + // The Identity / Keystone endpoint + 'url' => 'http://8.21.28.222:5000/v2.0', + // required on dev-/trystack + 'tenantName' => 'facebook100000123456789', + // dev-/trystack uses swift by default, the lib defaults to 'cloudFiles' + // if omitted + 'serviceName' => 'swift', + // The Interface / url Type, optional + 'urlType' => 'internal' + ], +], + +/** + * To use swift V3 + */ +'objectstore' => [ + 'class' => 'OC\\Files\\ObjectStore\\Swift', + 'arguments' => [ + 'autocreate' => true, + 'user' => [ + 'name' => 'swift', + 'password' => 'swift', + 'domain' => [ + 'name' => 'default', + ], + ], + 'scope' => [ + 'project' => [ + 'name' => 'service', + 'domain' => [ + 'name' => 'default', + ], + ], + ], + 'tenantName' => 'service', + 'serviceName' => 'swift', + 'region' => 'regionOne', + 'url' => 'http://yourswifthost:5000/v3', + 'bucket' => 'nextcloud', + ], +], + + +/** + * Sharing + * + * Global settings for Sharing + */ + +/** + * Replaces the default Share Provider Factory. This can be utilized if + * own or 3rdParty Share Providers are used that – for instance – use the + * filesystem instead of the database to keep the share information. + * + * Defaults to ``\OC\Share20\ProviderFactory`` + */ +'sharing.managerFactory' => '\OC\Share20\ProviderFactory', + +/** + * Define max number of results returned by the user search for auto-completion + * Default is unlimited (value set to 0). + */ +'sharing.maxAutocompleteResults' => 0, + +/** + * Define the minimum length of the search string before we start auto-completion + * Default is no limit (value set to 0) + */ +'sharing.minSearchStringLength' => 0, + +/** + * All other configuration options + */ + +/** + * Additional driver options for the database connection, eg. to enable SSL + * encryption in MySQL or specify a custom wait timeout on a cheap hoster. + */ +'dbdriveroptions' => array( + PDO::MYSQL_ATTR_SSL_CA => '/file/path/to/ca_cert.pem', + PDO::MYSQL_ATTR_INIT_COMMAND => 'SET wait_timeout = 28800' +), + +/** + * sqlite3 journal mode can be specified using this configuration parameter - + * can be 'WAL' or 'DELETE' see for more details https://www.sqlite.org/wal.html + */ +'sqlite.journal_mode' => 'DELETE', + +/** + * During setup, if requirements are met (see below), this setting is set to true + * and MySQL can handle 4 byte characters instead of 3 byte characters. + * + * If you want to convert an existing 3-byte setup into a 4-byte setup please + * set the parameters in MySQL as mentioned below and run the migration command: + * ./occ db:convert-mysql-charset + * The config setting will be set automatically after a successful run. + * + * Consult the documentation for more details. + * + * MySQL requires a special setup for longer indexes (> 767 bytes) which are + * needed: + * + * [mysqld] + * innodb_large_prefix=ON + * innodb_file_format=Barracuda + * innodb_file_per_table=ON + * + * Tables will be created with + * * character set: utf8mb4 + * * collation: utf8mb4_bin + * * row_format: compressed + * + * See: + * https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-utf8mb4.html + * https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_large_prefix + * https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system-variables/#innodb_large_prefix + * http://www.tocker.ca/2013/10/31/benchmarking-innodb-page-compression-performance.html + * http://mechanics.flite.com/blog/2014/07/29/using-innodb-large-prefix-to-avoid-error-1071/ + */ +'mysql.utf8mb4' => false, + +/** + * Database types that are supported for installation. + * + * Available: + * - sqlite (SQLite3) + * - mysql (MySQL) + * - pgsql (PostgreSQL) + * - oci (Oracle) + * + * Defaults to the following databases: + * - sqlite (SQLite3) + * - mysql (MySQL) + * - pgsql (PostgreSQL) + */ +'supportedDatabases' => array( + 'sqlite', + 'mysql', + 'pgsql', + 'oci', +), + +/** + * Override where Nextcloud stores temporary files. Useful in situations where + * the system temporary directory is on a limited space ramdisk or is otherwise + * restricted, or if external storages which do not support streaming are in + * use. + * + * The Web server user must have write access to this directory. + */ +'tempdirectory' => '/tmp/nextcloudtemp', + +/** + * The hashing cost used by hashes generated by Nextcloud + * Using a higher value requires more time and CPU power to calculate the hashes + */ +'hashingCost' => 10, + +/** + * Blacklist a specific file or files and disallow the upload of files + * with this name. ``.htaccess`` is blocked by default. + * WARNING: USE THIS ONLY IF YOU KNOW WHAT YOU ARE DOING. + * + * Defaults to ``array('.htaccess')`` + */ +'blacklisted_files' => array('.htaccess'), + +/** + * Define a default folder for shared files and folders other than root. + * + * Defaults to ``/`` + */ +'share_folder' => '/', + +/** + * If you are applying a theme to Nextcloud, enter the name of the theme here. + * The default location for themes is ``nextcloud/themes/``. + * + * Defaults to the theming app which is shipped since Nextcloud 9 + */ +'theme' => '', + +/** + * The default cipher for encrypting files. Currently AES-128-CFB and + * AES-256-CFB are supported. + */ +'cipher' => 'AES-256-CFB', + +/** + * The minimum Nextcloud desktop client version that will be allowed to sync with + * this server instance. All connections made from earlier clients will be denied + * by the server. Defaults to the minimum officially supported Nextcloud desktop + * clientversion at the time of release of this server version. + * + * When changing this, note that older unsupported versions of the Nextcloud desktop + * client may not function as expected, and could lead to permanent data loss for + * clients or other unexpected results. + * + * Defaults to ``2.0.0`` + */ +'minimum.supported.desktop.version' => '2.0.0', + +/** + * EXPERIMENTAL: option whether to include external storage in quota + * calculation, defaults to false. + * + * Defaults to ``false`` + */ +'quota_include_external_storage' => false, + +/** + * Specifies how often the local filesystem (the Nextcloud data/ directory, and + * NFS mounts in data/) is checked for changes made outside Nextcloud. This + * does not apply to external storages. + * + * 0 -> Never check the filesystem for outside changes, provides a performance + * increase when it's certain that no changes are made directly to the + * filesystem + * + * 1 -> Check each file or folder at most once per request, recommended for + * general use if outside changes might happen. + * + * Defaults to ``0`` + */ +'filesystem_check_changes' => 0, + +/** + * By default Nextcloud will store the part files created during upload in the + * same storage as the upload target. Setting this to false will store the part + * files in the root of the users folder which might be required to work with certain + * external storage setups that have limited rename capabilities. + * + * Defaults to ``true`` + */ +'part_file_in_storage' => true, + +/** + * Where ``mount.json`` file should be stored, defaults to ``data/mount.json`` + * in the Nextcloud directory. + * + * Defaults to ``data/mount.json`` in the Nextcloud directory. + */ +'mount_file' => '/var/www/nextcloud/data/mount.json', + +/** + * When ``true``, prevent Nextcloud from changing the cache due to changes in + * the filesystem for all storage. + * + * Defaults to ``false`` + */ +'filesystem_cache_readonly' => false, + +/** + * Secret used by Nextcloud for various purposes, e.g. to encrypt data. If you + * lose this string there will be data corruption. + */ +'secret' => '', + +/** + * List of trusted proxy servers + * + * You may set this to an array containing a combination of + * - IPv4 addresses, e.g. `192.168.2.123` + * - IPv4 ranges in CIDR notation, e.g. `192.168.2.0/24` + * - IPv6 addresses, e.g. `fd9e:21a7:a92c:2323::1` + * + * _(CIDR notation for IPv6 is currently work in progress and thus not + * available as of yet)_ + * + * When an incoming request's `REMOTE_ADDR` matches any of the IP addresses + * specified here, it is assumed to be a proxy instead of a client. Thus, the + * client IP will be read from the HTTP header specified in + * `forwarded_for_headers` instead of from `REMOTE_ADDR`. + * + * So if you configure `trusted_proxies`, also consider setting + * `forwarded_for_headers` which otherwise defaults to `HTTP_X_FORWARDED_FOR` + * (the `X-Forwarded-For` header). + * + * Defaults to an empty array. + */ +'trusted_proxies' => array('203.0.113.45', '198.51.100.128', '192.168.2.0/24'), + +/** + * Headers that should be trusted as client IP address in combination with + * `trusted_proxies`. If the HTTP header looks like 'X-Forwarded-For', then use + * 'HTTP_X_FORWARDED_FOR' here. + * + * If set incorrectly, a client can spoof their IP address as visible to + * Nextcloud, bypassing access controls and making logs useless! + * + * Defaults to ``'HTTP_X_FORWARDED_FOR'`` + */ +'forwarded_for_headers' => array('HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR'), + +/** + * max file size for animating gifs on public-sharing-site. + * If the gif is bigger, it'll show a static preview + * + * Value represents the maximum filesize in megabytes. Set to ``-1`` for + * no limit. + * + * Defaults to ``10`` megabytes + */ +'max_filesize_animated_gifs_public_sharing' => 10, + + +/** + * Enables transactional file locking. + * This is enabled by default. + * + * Prevents concurrent processes from accessing the same files + * at the same time. Can help prevent side effects that would + * be caused by concurrent operations. Mainly relevant for + * very large installations with many users working with + * shared files. + * + * Defaults to ``true`` + */ +'filelocking.enabled' => true, + +/** + * Set the lock's time-to-live in seconds. + * + * Any lock older than this will be automatically cleaned up. + * + * Defaults to ``60*60`` seconds (1 hour) or the php + * max_execution_time, whichever is higher. + */ +'filelocking.ttl' => 60*60, + +/** + * Memory caching backend for file locking + * + * Because most memcache backends can clean values without warning using redis + * is highly recommended to *avoid data loss*. + * + * Defaults to ``none`` + */ +'memcache.locking' => '\\OC\\Memcache\\Redis', + +/** + * Enable locking debug logging + * + * Note that this can lead to a very large volume of log items being written which can lead + * to performance degradation and large log files on busy instance. + * + * Thus enabling this in production for longer periods of time is not recommended + * or should be used together with the ``log.condition`` setting. + */ +'filelocking.debug' => false, + +/** + * Disable the web based updater + */ +'upgrade.disable-web' => false, + +/** + * Set this Nextcloud instance to debugging mode + * + * Only enable this for local development and not in production environments + * This will disable the minifier and outputs some additional debug information + * + * Defaults to ``false`` + */ +'debug' => false, + +/** + * Sets the data-fingerprint of the current data served + * + * This is a property used by the clients to find out if a backup has been + * restored on the server. Once a backup is restored run + * ./occ maintenance:data-fingerprint + * To set this to a new value. + * + * Updating/Deleting this value can make connected clients stall until + * the user has resolved conflicts. + * + * Defaults to ``''`` (empty string) + */ +'data-fingerprint' => '', + +/** + * This entry is just here to show a warning in case somebody copied the sample + * configuration. DO NOT ADD THIS SWITCH TO YOUR CONFIGURATION! + * + * If you, brave person, have read until here be aware that you should not + * modify *ANY* settings in this file without reading the documentation. + */ +'copied_sample_config' => true, + +/** + * use a custom lookup server to publish user data + */ +'lookup_server' => 'https://lookup.nextcloud.com', + +/** + * set to true if the server is used in a setup based on Nextcloud's Global Scale architecture + */ +'gs.enabled' => false, + +/** + * by default federation is only used internally in a Global Scale setup + * If you want to allow federation outside of your environment set it to 'global' + */ +'gs.federation' => 'internal', + +/** + * List of incompatible user agents opted out from Same Site Cookie Protection. + * Some user agents are notorious and don't really properly follow HTTP + * specifications. For those, have an opt-out. + * + * WARNING: only use this if you know what you are doing + */ +'csrf.optout' => array( + '/^WebDAVFS/', // OS X Finder + '/^Microsoft-WebDAV-MiniRedir/', // Windows webdav drive +), + +/** + * By default there is on public pages a link shown that allows users to + * learn about the "simple sign up" - see https://nextcloud.com/signup/ + * + * If this is set to "false" it will not show the link. + */ +'simpleSignUpLink.shown' => true, + +/** + * By default autocompletion is enabled for the login form on Nextcloud's login page. + * While this is enabled, browsers are allowed to "remember" login names and such. + * Some companies require it to be disabled to comply with their security policy. + * + * Simply set this property to "false", if you want to turn this feature off. + */ + +'login_form_autocomplete' => true, +); diff --git a/core/Controller/LostController.php b/core/Controller/LostController.php index 96018555ec3c4..ea117a528bc38 100644 --- a/core/Controller/LostController.php +++ b/core/Controller/LostController.php @@ -1,402 +1,557 @@ - - * @author Bjoern Schiessle - * @author Björn Schießle - * @author Joas Schilling - * @author Julius Haertl - * @author Lukas Reschke - * @author Morris Jobke - * @author Roeland Jago Douma - * @author Thomas Müller - * @author Victor Dubiniuk - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program 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, version 3, - * along with this program. If not, see - * - */ - -namespace OC\Core\Controller; - -use OC\Authentication\TwoFactorAuth\Manager; -use OC\HintException; -use \OCP\AppFramework\Controller; -use OCP\AppFramework\Http\JSONResponse; -use \OCP\AppFramework\Http\TemplateResponse; -use OCP\AppFramework\Utility\ITimeFactory; -use OCP\Defaults; -use OCP\Encryption\IEncryptionModule; -use OCP\Encryption\IManager; -use OCP\ILogger; -use \OCP\IURLGenerator; -use \OCP\IRequest; -use \OCP\IL10N; -use \OCP\IConfig; -use OCP\IUser; -use OCP\IUserManager; -use OCP\Mail\IMailer; -use OCP\Security\ICrypto; -use OCP\Security\ISecureRandom; - -/** - * Class LostController - * - * Successfully changing a password will emit the post_passwordReset hook. - * - * @package OC\Core\Controller - */ -class LostController extends Controller { - /** @var IURLGenerator */ - protected $urlGenerator; - /** @var IUserManager */ - protected $userManager; - /** @var Defaults */ - protected $defaults; - /** @var IL10N */ - protected $l10n; - /** @var string */ - protected $from; - /** @var IManager */ - protected $encryptionManager; - /** @var IConfig */ - protected $config; - /** @var ISecureRandom */ - protected $secureRandom; - /** @var IMailer */ - protected $mailer; - /** @var ITimeFactory */ - protected $timeFactory; - /** @var ICrypto */ - protected $crypto; - /** @var ILogger */ - private $logger; - /** @var Manager */ - private $twoFactorManager; - - /** - * @param string $appName - * @param IRequest $request - * @param IURLGenerator $urlGenerator - * @param IUserManager $userManager - * @param Defaults $defaults - * @param IL10N $l10n - * @param IConfig $config - * @param ISecureRandom $secureRandom - * @param string $defaultMailAddress - * @param IManager $encryptionManager - * @param IMailer $mailer - * @param ITimeFactory $timeFactory - * @param ICrypto $crypto - */ - public function __construct($appName, - IRequest $request, - IURLGenerator $urlGenerator, - IUserManager $userManager, - Defaults $defaults, - IL10N $l10n, - IConfig $config, - ISecureRandom $secureRandom, - $defaultMailAddress, - IManager $encryptionManager, - IMailer $mailer, - ITimeFactory $timeFactory, - ICrypto $crypto, - ILogger $logger, - Manager $twoFactorManager) { - parent::__construct($appName, $request); - $this->urlGenerator = $urlGenerator; - $this->userManager = $userManager; - $this->defaults = $defaults; - $this->l10n = $l10n; - $this->secureRandom = $secureRandom; - $this->from = $defaultMailAddress; - $this->encryptionManager = $encryptionManager; - $this->config = $config; - $this->mailer = $mailer; - $this->timeFactory = $timeFactory; - $this->crypto = $crypto; - $this->logger = $logger; - $this->twoFactorManager = $twoFactorManager; - } - - /** - * Someone wants to reset their password: - * - * @PublicPage - * @NoCSRFRequired - * - * @param string $token - * @param string $userId - * @return TemplateResponse - */ - public function resetform($token, $userId) { - if ($this->config->getSystemValue('lost_password_link', '') !== '') { - return new TemplateResponse('core', 'error', [ - 'errors' => [['error' => $this->l10n->t('Password reset is disabled')]] - ], - 'guest' - ); - } - - try { - $this->checkPasswordResetToken($token, $userId); - } catch (\Exception $e) { - return new TemplateResponse( - 'core', 'error', [ - "errors" => array(array("error" => $e->getMessage())) - ], - 'guest' - ); - } - - return new TemplateResponse( - 'core', - 'lostpassword/resetpassword', - array( - 'link' => $this->urlGenerator->linkToRouteAbsolute('core.lost.setPassword', array('userId' => $userId, 'token' => $token)), - ), - 'guest' - ); - } - - /** - * @param string $token - * @param string $userId - * @throws \Exception - */ - protected function checkPasswordResetToken($token, $userId) { - $user = $this->userManager->get($userId); - if($user === null || !$user->isEnabled()) { - throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is invalid')); - } - - try { - $encryptedToken = $this->config->getUserValue($userId, 'core', 'lostpassword', null); - $mailAddress = !is_null($user->getEMailAddress()) ? $user->getEMailAddress() : ''; - $decryptedToken = $this->crypto->decrypt($encryptedToken, $mailAddress.$this->config->getSystemValue('secret')); - } catch (\Exception $e) { - throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is invalid')); - } - - $splittedToken = explode(':', $decryptedToken); - if(count($splittedToken) !== 2) { - throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is invalid')); - } - - if ($splittedToken[0] < ($this->timeFactory->getTime() - 60*60*24*7) || - $user->getLastLogin() > $splittedToken[0]) { - throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is expired')); - } - - if (!hash_equals($splittedToken[1], $token)) { - throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is invalid')); - } - } - - /** - * @param $message - * @param array $additional - * @return array - */ - private function error($message, array $additional=array()) { - return array_merge(array('status' => 'error', 'msg' => $message), $additional); - } - - /** - * @param array $data - * @return array - */ - private function success($data = []) { - return array_merge($data, ['status'=>'success']); - } - - /** - * @PublicPage - * @BruteForceProtection(action=passwordResetEmail) - * @AnonRateThrottle(limit=10, period=300) - * - * @param string $user - * @return JSONResponse - */ - public function email($user){ - if ($this->config->getSystemValue('lost_password_link', '') !== '') { - return new JSONResponse($this->error($this->l10n->t('Password reset is disabled'))); - } - - \OCP\Util::emitHook( - '\OCA\Files_Sharing\API\Server2Server', - 'preLoginNameUsedAsUserName', - ['uid' => &$user] - ); - - // FIXME: use HTTP error codes - try { - $this->sendEmail($user); - } catch (\Exception $e) { - // Ignore the error since we do not want to leak this info - $this->logger->logException($e, [ - 'level' => ILogger::WARN - ]); - } - - $response = new JSONResponse($this->success()); - $response->throttle(); - return $response; - } - - /** - * @PublicPage - * @param string $token - * @param string $userId - * @param string $password - * @param boolean $proceed - * @return array - */ - public function setPassword($token, $userId, $password, $proceed) { - if ($this->config->getSystemValue('lost_password_link', '') !== '') { - return $this->error($this->l10n->t('Password reset is disabled')); - } - - if ($this->encryptionManager->isEnabled() && !$proceed) { - $encryptionModules = $this->encryptionManager->getEncryptionModules(); - foreach ($encryptionModules as $module) { - /** @var IEncryptionModule $instance */ - $instance = call_user_func($module['callback']); - // this way we can find out whether per-user keys are used or a system wide encryption key - if ($instance->needDetailedAccessList()) { - return $this->error('', array('encryption' => true)); - } - } - } - - try { - $this->checkPasswordResetToken($token, $userId); - $user = $this->userManager->get($userId); - - \OC_Hook::emit('\OC\Core\LostPassword\Controller\LostController', 'pre_passwordReset', array('uid' => $userId, 'password' => $password)); - - if (!$user->setPassword($password)) { - throw new \Exception(); - } - - \OC_Hook::emit('\OC\Core\LostPassword\Controller\LostController', 'post_passwordReset', array('uid' => $userId, 'password' => $password)); - - $this->twoFactorManager->clearTwoFactorPending($userId); - - $this->config->deleteUserValue($userId, 'core', 'lostpassword'); - @\OC::$server->getUserSession()->unsetMagicInCookie(); - } catch (HintException $e){ - return $this->error($e->getHint()); - } catch (\Exception $e){ - return $this->error($e->getMessage()); - } - - return $this->success(['user' => $userId]); - } - - /** - * @param string $input - * @throws \Exception - */ - protected function sendEmail($input) { - $user = $this->findUserByIdOrMail($input); - $email = $user->getEMailAddress(); - - if (empty($email)) { - throw new \Exception( - $this->l10n->t('Could not send reset email because there is no email address for this username. Please contact your administrator.') - ); - } - - // Generate the token. It is stored encrypted in the database with the - // secret being the users' email address appended with the system secret. - // This makes the token automatically invalidate once the user changes - // their email address. - $token = $this->secureRandom->generate( - 21, - ISecureRandom::CHAR_DIGITS. - ISecureRandom::CHAR_LOWER. - ISecureRandom::CHAR_UPPER - ); - $tokenValue = $this->timeFactory->getTime() .':'. $token; - $encryptedValue = $this->crypto->encrypt($tokenValue, $email . $this->config->getSystemValue('secret')); - $this->config->setUserValue($user->getUID(), 'core', 'lostpassword', $encryptedValue); - - $link = $this->urlGenerator->linkToRouteAbsolute('core.lost.resetform', array('userId' => $user->getUID(), 'token' => $token)); - - $emailTemplate = $this->mailer->createEMailTemplate('core.ResetPassword', [ - 'link' => $link, - ]); - - $emailTemplate->setSubject($this->l10n->t('%s password reset', [$this->defaults->getName()])); - $emailTemplate->addHeader(); - $emailTemplate->addHeading($this->l10n->t('Password reset')); - - $emailTemplate->addBodyText( - htmlspecialchars($this->l10n->t('Click the following button to reset your password. If you have not requested the password reset, then ignore this email.')), - $this->l10n->t('Click the following link to reset your password. If you have not requested the password reset, then ignore this email.') - ); - - $emailTemplate->addBodyButton( - htmlspecialchars($this->l10n->t('Reset your password')), - $link, - false - ); - $emailTemplate->addFooter(); - - try { - $message = $this->mailer->createMessage(); - $message->setTo([$email => $user->getUID()]); - $message->setFrom([$this->from => $this->defaults->getName()]); - $message->useTemplate($emailTemplate); - $this->mailer->send($message); - } catch (\Exception $e) { - throw new \Exception($this->l10n->t( - 'Couldn\'t send reset email. Please contact your administrator.' - )); - } - } - - /** - * @param string $input - * @return IUser - * @throws \InvalidArgumentException - */ - protected function findUserByIdOrMail($input) { - $userNotFound = new \InvalidArgumentException( - $this->l10n->t('Couldn\'t send reset email. Please make sure your username is correct.') - ); - - $user = $this->userManager->get($input); - if ($user instanceof IUser) { - if (!$user->isEnabled()) { - throw $userNotFound; - } - - return $user; - } - - $users = \array_filter($this->userManager->getByEmail($input), function (IUser $user) { - return $user->isEnabled(); - }); - - if (\count($users) === 1) { - return $users[0]; - } - - throw $userNotFound; - } -} + + * @author Bjoern Schiessle + * @author Björn Schießle + * @author Joas Schilling + * @author Julius Haertl + * @author Lukas Reschke + * @author Morris Jobke + * @author Roeland Jago Douma + * @author Thomas Müller + * @author Victor Dubiniuk + * + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program 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, version 3, + * along with this program. If not, see + * + */ + +namespace OC\Core\Controller; + +use OC\Authentication\TwoFactorAuth\Manager; +use OC\Security\Bruteforce\Throttler; +use OC\HintException; +use \OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\JSONResponse; +use \OCP\AppFramework\Http\TemplateResponse; +use OCP\AppFramework\Utility\ITimeFactory; +use OCP\Defaults; +use OCP\Encryption\IEncryptionModule; +use OCP\Encryption\IManager; +use OCP\ILogger; +use \OCP\IURLGenerator; +use \OCP\IRequest; +use \OCP\IL10N; +use \OCP\IConfig; +use OCP\IUser; +use OCP\IUserManager; +use OCP\ISession; +use OCP\Util; +use OCP\Mail\IMailer; +use OCP\Security\ICrypto; +use OCP\Security\ISecureRandom; + +/** + * Class LostController + * + * Successfully changing a password will emit the post_passwordReset hook. + * + * @package OC\Core\Controller + */ +class LostController extends Controller { + /** @var IURLGenerator */ + protected $urlGenerator; + /** @var IUserManager */ + protected $userManager; + /** @var Defaults */ + protected $defaults; + /** @var IL10N */ + protected $l10n; + /** @var string */ + protected $from; + /** @var IManager */ + protected $encryptionManager; + /** @var IConfig */ + protected $config; + /** @var ISession */ + protected $session; + /** @var ISecureRandom */ + protected $secureRandom; + /** @var IMailer */ + protected $mailer; + /** @var ITimeFactory */ + protected $timeFactory; + /** @var ICrypto */ + protected $crypto; + /** @var ILogger */ + private $logger; + /** @var Manager */ + private $twoFactorManager; + /** @var Throttler */ + private $throttler; + + + /** + * @param string $appName + * @param IRequest $request + * @param IURLGenerator $urlGenerator + * @param IUserManager $userManager + * @param Defaults $defaults + * @param IL10N $l10n + * @param IConfig $config + * @param ISession $session + * @param ISecureRandom $secureRandom + * @param string $defaultMailAddress + * @param IManager $encryptionManager + * @param IMailer $mailer + * @param ITimeFactory $timeFactory + * @param ICrypto $crypto + */ + public function __construct($appName, + IRequest $request, + IURLGenerator $urlGenerator, + IUserManager $userManager, + Defaults $defaults, + IL10N $l10n, + IConfig $config, + ISession $session, + ISecureRandom $secureRandom, + $defaultMailAddress, + IManager $encryptionManager, + IMailer $mailer, + ITimeFactory $timeFactory, + ICrypto $crypto, + ILogger $logger, + Manager $twoFactorManager, + Throttler $throttler) { + parent::__construct($appName, $request); + $this->urlGenerator = $urlGenerator; + $this->userManager = $userManager; + $this->defaults = $defaults; + $this->l10n = $l10n; + $this->secureRandom = $secureRandom; + $this->from = $defaultMailAddress; + $this->encryptionManager = $encryptionManager; + $this->config = $config; + $this->session = $session; + $this->mailer = $mailer; + $this->timeFactory = $timeFactory; + $this->crypto = $crypto; + $this->logger = $logger; + $this->twoFactorManager = $twoFactorManager; + $this->throttler = $throttler; + } + + /** + * Someone wants to reset their password: + * + * @PublicPage + * @NoCSRFRequired + * + * @param string $token + * @param string $userId + * @return TemplateResponse + */ + public function resetform($token, $userId) { + if ($this->config->getSystemValue('lost_password_link', '') !== '') { + return new TemplateResponse('core', 'error', [ + 'errors' => [['error' => $this->l10n->t('Password reset is disabled')]] + ], + 'guest' + ); + } + + try { + $this->checkPasswordResetToken($token, $userId); + } catch (\Exception $e) { + return new TemplateResponse( + 'core', 'error', [ + "errors" => array(array("error" => $e->getMessage())) + ], + 'guest' + ); + } + + return new TemplateResponse( + 'core', + 'lostpassword/resetpassword', + array( + 'link' => $this->urlGenerator->linkToRouteAbsolute('core.lost.setPassword', array('userId' => $userId, 'token' => $token)), + ), + 'guest' + ); + } + /** + * @PublicPage + * @NoCSRFRequired + * @BruteForceProtection(action=passwordResetEmail) + * @AnonRateThrottle(limit=10, period=300) + * @UseSession + * + * @param string $userId + * + * @return TemplateResponse + */ + public function showPasswordEmailForm($userId) : Http\Response { + return $this->showNewPasswordForm($userId); + } + /** + * @PublicPage + * @NoCSRFRequired + * @BruteForceProtection(action=passwordResetEmail) + * @AnonRateThrottle(limit=10, period=300) + * @UseSession + * + * @param string $user + * + * @return TemplateResponse + */ + public function showNewPasswordForm($user = null) : Http\Response { + + $parameters = []; + $renewPasswordMessages = $this->session->get('loginMessages'); + $errors = []; + $messages = []; + + if (is_array($renewPasswordMessages)) { + list($errors, $messages) = $renewPasswordMessages; + } + $this->session->remove('loginMessages'); + foreach ($errors as $value) { + $parameters[$value] = true; + } + $parameters['messages'] = $messages; + + $parameters['resetPasswordLink'] = $this->config + ->getSystemValue('lost_password_link', ''); + + // disable the form if setting 'password reset' is disabled + if ($parameters['resetPasswordLink'] !== '') { + return new TemplateResponse('core', 'error', [ + 'errors' => [['error' => $this->l10n->t('Password reset is disabled')]] + ], + 'guest' + ); + } + + $userObj = null; + if ($user !== null && $user !== '') { + try { + $userObj = $this->findUserByIdOrMail($user); + $parameters['displayName'] = $userObj->getDisplayName(); + $parameters['loginName'] = $userObj->getEMailAddress(); + //the timestamp of the user's last login or 0 if the user did never + $parameters['last_login'] = $userObj->getLastLogin(); + $parameters['user_autofocus'] = false; + } catch(\InvalidArgumentException $exception){ + // $user parameter is unknown or desactivated + $parameters['messages'][] = $user . ' :' . $this->l10n->t('unknown text'); + $parameters['loginName'] = null; + $parameters['displayName'] = null; + $parameters['last_login'] = null; + $parameters['user_autofocus'] = true; + } + } + + $parameters = $this->setPasswordResetParameters($userObj, $parameters); + $parameters['administrator_email'] = $this->config->getSystemValue('administrator_email'); + $parameters['login_form_autocomplete'] = 'on'; + $parameters['throttle_delay'] = $this->throttler->getDelay($this->request->getRemoteAddress()); + + // OpenGraph Support: http://ogp.me/ + Util::addHeader('meta', ['property' => 'og:title', 'content' => Util::sanitizeHTML($this->defaults->getName())]); + Util::addHeader('meta', ['property' => 'og:description', 'content' => Util::sanitizeHTML($this->defaults->getSlogan())]); + Util::addHeader('meta', ['property' => 'og:site_name', 'content' => Util::sanitizeHTML($this->defaults->getName())]); + Util::addHeader('meta', ['property' => 'og:url', 'content' => $this->urlGenerator->getAbsoluteURL('/')]); + Util::addHeader('meta', ['property' => 'og:type', 'content' => 'website']); + Util::addHeader('meta', ['property' => 'og:image', 'content' => $this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'favicon-touch.png'))]); + + return new TemplateResponse( + $this->appName, 'lostpassword/newpassword', $parameters, 'guest' + ); + } + + /** + * @param string $token + * @param string $userId + * @throws \Exception + */ + protected function checkPasswordResetToken($token, $userId) { + $user = $this->userManager->get($userId); + if($user === null || !$user->isEnabled()) { + throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is invalid')); + } + + try { + $encryptedToken = $this->config->getUserValue($userId, 'core', 'lostpassword', null); + $mailAddress = !is_null($user->getEMailAddress()) ? $user->getEMailAddress() : ''; + $decryptedToken = $this->crypto->decrypt($encryptedToken, $mailAddress.$this->config->getSystemValue('secret')); + } catch (\Exception $e) { + throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is invalid')); + } + + $splittedToken = explode(':', $decryptedToken); + if(count($splittedToken) !== 2) { + throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is invalid')); + } + + if ($splittedToken[0] < ($this->timeFactory->getTime() - 60*60*24*7) || + $user->getLastLogin() > $splittedToken[0]) { + throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is expired')); + } + + if (!hash_equals($splittedToken[1], $token)) { + throw new \Exception($this->l10n->t('Couldn\'t reset password because the token is invalid')); + } + } + + /** + * @param $message + * @param array $additional + * @return array + */ + private function error($message, array $additional=array()) { + return array_merge(array('status' => 'error', 'msg' => $message), $additional); + } + + /** + * @param array $data + * @return array + */ + private function success($data = []) { + return array_merge($data, ['status'=>'success']); + } + + /** + * @PublicPage + * @BruteForceProtection(action=passwordResetEmail) + * @AnonRateThrottle(limit=10, period=300) + * + * @param string $user + * @param string $action optional + * @return JSONResponse + */ + public function email($user,$action=null){ + if ($this->config->getSystemValue('lost_password_link', '') !== '') { + return new JSONResponse($this->error($this->l10n->t('Password reset is disabled'))); + } + + \OCP\Util::emitHook( + '\OCA\Files_Sharing\API\Server2Server', + 'preLoginNameUsedAsUserName', + ['uid' => &$user] + ); + + // FIXME: use HTTP error codes + try { + $this->sendEmail($user,$action); + } catch (\Exception $e) { + // Ignore the error since we do not want to leak this info + $this->logger->logException($e, [ + 'level' => ILogger::WARN + ]); + } + + $response = new JSONResponse($this->success()); + $response->throttle(); + return $response; + } + + /** + * @PublicPage + * @param string $token + * @param string $userId + * @param string $password + * @param boolean $proceed + * @return array + */ + public function setPassword($token, $userId, $password, $proceed) { + if ($this->config->getSystemValue('lost_password_link', '') !== '') { + return $this->error($this->l10n->t('Password reset is disabled')); + } + + if ($this->encryptionManager->isEnabled() && !$proceed) { + $encryptionModules = $this->encryptionManager->getEncryptionModules(); + foreach ($encryptionModules as $module) { + /** @var IEncryptionModule $instance */ + $instance = call_user_func($module['callback']); + // this way we can find out whether per-user keys are used or a system wide encryption key + if ($instance->needDetailedAccessList()) { + return $this->error('', array('encryption' => true)); + } + } + } + + try { + $this->checkPasswordResetToken($token, $userId); + $user = $this->userManager->get($userId); + + \OC_Hook::emit('\OC\Core\LostPassword\Controller\LostController', 'pre_passwordReset', array('uid' => $userId, 'password' => $password)); + + if (!$user->setPassword($password)) { + throw new \Exception(); + } + + \OC_Hook::emit('\OC\Core\LostPassword\Controller\LostController', 'post_passwordReset', array('uid' => $userId, 'password' => $password)); + + $this->twoFactorManager->clearTwoFactorPending($userId); + + $this->config->deleteUserValue($userId, 'core', 'lostpassword'); + @\OC::$server->getUserSession()->unsetMagicInCookie(); + } catch (HintException $e){ + return $this->error($e->getHint()); + } catch (\Exception $e){ + return $this->error($e->getMessage()); + } + + return $this->success(['user' => $userId]); + } + + /** + * @param string $input + * @param string $action + * @throws \Exception + */ + protected function sendEmail($input,$action=null) { + $user = $this->findUserByIdOrMail($input); + $email = $user->getEMailAddress(); + + if (empty($email)) { + throw new \Exception( + $this->l10n->t('Could not send reset email because there is no email address for this username. Please contact your administrator.') + ); + } + + // Generate the token. It is stored encrypted in the database with the + // secret being the users' email address appended with the system secret. + // This makes the token automatically invalidate once the user changes + // their email address. + $token = $this->secureRandom->generate( + 21, + ISecureRandom::CHAR_DIGITS. + ISecureRandom::CHAR_LOWER. + ISecureRandom::CHAR_UPPER + ); + $tokenValue = $this->timeFactory->getTime() .':'. $token; + $encryptedValue = $this->crypto->encrypt($tokenValue, $email . $this->config->getSystemValue('secret')); + $this->config->setUserValue($user->getUID(), 'core', 'lostpassword', $encryptedValue); + + $link = $this->urlGenerator->linkToRouteAbsolute('core.lost.resetform', array('userId' => $user->getUID(), 'token' => $token)); + + $emailTemplate = $this->mailer->createEMailTemplate('core.ResetPassword', [ + 'link' => $link, + ]); + + if((empty($action)) || ($action == 'RESET')) { + $emailTemplate->setSubject($this->l10n->t('%s password reset', [$this->defaults->getName()])); + $emailTemplate->addHeader(); + $emailTemplate->addHeading($this->l10n->t('Password reset')); + + $emailTemplate->addBodyText( + htmlspecialchars($this->l10n->t('Click the following button to reset your password. If you have not requested the password reset, then ignore this email.')), + $this->l10n->t('Click the following link to reset your password. If you have not requested the password reset, then ignore this email.') + ); + + $emailTemplate->addBodyButton( + htmlspecialchars($this->l10n->t('Reset your password')), + $link, + false + ); + } else if($action == 'NEW'){ + $emailTemplate->setSubject($this->l10n->t('%s activate and choose a password', [$this->defaults->getName()])); + $emailTemplate->addHeader(); + $emailTemplate->addHeading($this->l10n->t('Activate and choose a password')); + + $emailTemplate->addBodyText( + htmlspecialchars($this->l10n->t('Click the following button to activate and choose a new password. If you have not requested the new password, then ignore this email.')), + $this->l10n->t('Click the following link to activate and choose a new password. If you have not requested the new password, then ignore this email.') + ); + + $emailTemplate->addBodyButton( + htmlspecialchars($this->l10n->t('Activate and choose your new password')), + $link, + false + ); + + } else { + throw new \Exception($this->l10n->t( + 'Couldn\'t send reset email. Please contact your administrator.' + )); + } + + $emailTemplate->addFooter(); + try { + $message = $this->mailer->createMessage(); + $message->setTo([$email => $user->getUID()]); + $message->setFrom([$this->from => $this->defaults->getName()]); + $message->useTemplate($emailTemplate); + $this->mailer->send($message); + } catch (\Exception $e) { + throw new \Exception($this->l10n->t( + 'Couldn\'t send reset email. Please contact your administrator.' + )); + } + } + + /** + * @param string $input + * @return IUser + * @throws \InvalidArgumentException + */ + protected function findUserByIdOrMail($input) { + $userNotFound = new \InvalidArgumentException( + $this->l10n->t('Couldn\'t send reset email. Please make sure your username is correct.') + ); + + $user = $this->userManager->get($input); + if ($user instanceof IUser) { + if (!$user->isEnabled()) { + throw $userNotFound; + } + + return $user; + } + + $users = \array_filter($this->userManager->getByEmail($input), function (IUser $user) { + return $user->isEnabled(); + }); + + if (\count($users) === 1) { + return $users[1]; + } + + throw $userNotFound; + } + + /** + * Sets the password reset params. + * + * Users may not change their passwords if: + * - The account is disabled + * - The backend doesn't support password resets + * - The password reset function is disabled + * + * @param IUser $userObj + * @param array $parameters + * @return array + */ + protected function setPasswordResetParameters( + $userObj = null, array $parameters): array { + + if ($parameters['resetPasswordLink'] === 'disabled') { + $parameters['canResetPassword'] = false; + } else if (!$parameters['resetPasswordLink'] && $userObj !== null) { + $parameters['canResetPassword'] = $userObj->canChangePassword(); + } else if ($userObj !== null && $userObj->isEnabled() === false) { + $parameters['canResetPassword'] = false; + } else { + $parameters['canResetPassword'] = true; + } + + return $parameters; + } +} diff --git a/core/js/lostpassword/newpassword.js b/core/js/lostpassword/newpassword.js new file mode 100644 index 0000000000000..3c8f2a0716314 --- /dev/null +++ b/core/js/lostpassword/newpassword.js @@ -0,0 +1,136 @@ +/** + * Copyright (c) 2019 + * Guillaume Compagnon gcompagnon@outlook.com + * This file is licensed under the Affero General Public License version 3 or later. + * See the COPYING-README file. + */ +OC.Newpassword = { + + sendErrorMsg : t('core', 'Couldn\'t send reset email. Please contact your administrator.'), + + sendSuccessResetPasswordMsg : t('core', 'We have send a password reset e-mail to the e-mail address known to us for this account. If you do not receive it within a reasonable amount of time, check your spam/junk folders.
If it is not there ask your local administrator.'), + + sendSuccessNewPasswordMsg : t('core', 'We have send a password create e-mail to the e-mail address known to us for this account. If you do not receive it within a reasonable amount of time, check your spam/junk folders.
If it is not there ask your local administrator.'), + + resetErrorMsg : t('core', 'Password can not be changed. Please contact your administrator.'), + + init : function() { + $('form[name=email]').submit(OC.Newpassword.onSendLink); + $('#new-password-close').click(OC.Newpassword.closeWindows); + $('#new-password-submit').click(OC.Newpassword.resetPassword); + OC.Newpassword.resetButtons(); + }, + + resetButtons : function() { + $('#submit-wrapper .submit-icon') + .addClass('icon-confirm-white') + .removeClass('icon-loading-small-dark'); + if( $('#action').val() == 'NEW') { + $('#new-password-submit') + .attr('value', t('core', 'First connection')) + .prop('disabled', false); + $('#user').prop('disabled', true); + } else if( $('#action').val() == 'RESET') { + $('#new-password-submit') + .attr('value', t('core', 'Reset password')) + .prop('disabled', false); + $('#user').prop('disabled', false); + } + $('.login-additional').fadeIn(); + //$('.new-password-wrapper').fadeIn(); + $('form[name=email]').attr('action', 'lostpassword/email'); + }, + + onSendLink: function (event) { + // Only if password reset form is active + if($('form[name=email][action]').length === 1) { + if (event) { + event.preventDefault(); + } + $('#submit-wrapper .submit-icon') + .removeClass('icon-confirm-white') + .addClass('icon-loading-small-dark'); + $('#new-password-submit') + .attr('value', t('core', 'Sending email …')) + .prop('disabled', true); + $('#user').prop('disabled', true); + + $('.login-additional').fadeOut(); + $('.new-password-wrapper').slideDown().fadeOut(); + + $.post( + OC.generateUrl('/lostpassword/email'), + { + user : $('#user').val(), + action : $('#action').val() + }, + OC.Newpassword.sendLinkDone + ).fail(function() { + OC.Newpassword.sendLinkError(OC.Newpassword.sendErrorMsg); + }); + } + }, + + sendLinkDone : function(result){ + var sendErrorMsg; + if (result && result.status === 'success'){ + OC.Newpassword.sendLinkSuccess(); + } else { + if (result && result.msg){ + sendErrorMsg = result.msg; + } else { + sendErrorMsg = OC.Newpassword.sendErrorMsg; + } + OC.Newpassword.sendLinkError(sendErrorMsg); + } + }, + + sendLinkSuccess : function(msg){ + var node = OC.Newpassword.getSendStatusNode(); + // update is the better success message styling + node.addClass('update').css({width:'auto'}); + if( $('#action').val() == 'NEW') { + node.html(OC.Newpassword.sendSuccessNewPasswordMsg); + $('#action').val('RESET'); + } else if ( $('#action').val() == 'RESET') { + node.html(OC.Newpassword.sendSuccessResetPasswordMsg); + } + $('#new-password-close').slideDown().fadeIn(); + OC.Newpassword.resetButtons(); + }, + + sendLinkError : function(msg){ + var node = OC.Newpassword.getSendStatusNode(); + node.addClass('warning'); + node.html(msg); + $('#new-password-close').slideDown().fadeIn(); + $('#new-password-admin').slideDown().fadeIn(); + OC.Newpassword.resetButtons(); + }, + + getSendStatusNode : function(){ + if (!$('#new-password').length){ + $('

').insertBefore($('#new-password-close')); + } else { + $('#new-password').replaceWith($('

')); + } + return $('#new-password'); + }, + + resetPassword : function(event){ + + $('#submit-wrapper .submit-icon') + .removeClass('icon-confirm-white') + .addClass(OCA.Theming && OCA.Theming.inverted + ? 'icon-loading-small' + : 'icon-loading-small-dark'); + }, + + closeWindows : function(event){ + window.close(); + }, + + +}; + +$(document).ready(OC.Newpassword.init); diff --git a/core/l10n/fr.js b/core/l10n/fr.js index e18f1df74261c..e760028faf572 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -1,423 +1,436 @@ -OC.L10N.register( - "core", - { - "Please select a file." : "Veuillez sélectionner un fichier.", - "File is too big" : "Le fichier est trop volumineux", - "The selected file is not an image." : "Le fichier sélectionné n'est pas une image.", - "The selected file cannot be read." : "Le fichier sélectionné ne peut pas être lu.", - "Invalid file provided" : "Fichier non valide", - "No image or file provided" : "Pas d'image ou fichier fourni", - "Unknown filetype" : "Type de fichier inconnu", - "Invalid image" : "Image non valable", - "An error occurred. Please contact your admin." : "Une erreur est survenue. Veuillez contacter votre administrateur.", - "No temporary profile picture available, try again" : "Aucune image de profil temporaire disponible, essayez à nouveau", - "No crop data provided" : "Aucune donnée de recadrage fournie", - "No valid crop data provided" : "Aucune donnée valide de recadrage fournie", - "Crop is not square" : "Le recadrage n'est pas carré", - "State token does not match" : "Les jetons de statut ne correspondent pas", - "Could not complete login" : "Impossible de terminer la connexion", - "Your login token is invalid or has expired" : "Votre jeton de connexion est invalide ou expiré", - "Password reset is disabled" : "La réinitialisation du mot de passe est désactivée", - "Couldn't reset password because the token is invalid" : "Impossible de réinitialiser le mot de passe car le jeton n'est pas valable", - "Couldn't reset password because the token is expired" : "Impossible de réinitialiser le mot de passe car le jeton a expiré", - "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation car il n'y a aucune adresse de courriel pour cet utilisateur. Veuillez contacter votre administrateur.", - "%s password reset" : "Réinitialisation de votre mot de passe %s", - "Password reset" : "Réinitialiser le mot de passe", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Cliquez sur le bouton suivant pour réinitialiser votre mot de passe. Si vous n'avez pas demandé cette réinitialisation de mot de passe, vous pouvez ignorer ce courriel.", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Cliquer sur le lien suivant pour réinitialiser votre mot de passe. Si vous n'avez pas demandé cette réinitialisation de mot de passe, alors ignorez ce courriel.", - "Reset your password" : "Réinitialiser votre mot de passe", - "Couldn't send reset email. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez contacter votre administrateur.", - "Couldn't send reset email. Please make sure your username is correct." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez vérifier que votre nom d'utilisateur est correct.", - "Some of your link shares have been removed" : "Certains de vos liens partagés ont été supprimés.", - "Due to a security bug we had to remove some of your link shares. Please see the link for more information." : "En raison d'une faille de sécurité, nous avons supprimé certains de vos liens partagés. Consultez le lien ci-dessus pour plus d'information.", - "Preparing update" : "Préparation de la mise à jour", - "[%d / %d]: %s" : "[%d / %d] : %s", - "Repair step:" : "Étape de réparation :", - "Repair info:" : "Informations de réparation :", - "Repair warning:" : "Avertissement de réparation :", - "Repair error:" : "Erreur de réparation :", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Veuillez utiliser la mise à jour en ligne de commande, la mise à jour automatique est désactivée dans config.php.", - "[%d / %d]: Checking table %s" : "[%d / %d] : Vérification de la table %s", - "Turned on maintenance mode" : "Mode de maintenance activé", - "Turned off maintenance mode" : "Mode de maintenance désactivé", - "Maintenance mode is kept active" : "Le mode de maintenance est laissé actif", - "Updating database schema" : "Mise à jour du schéma de la base de données", - "Updated database" : "Base de données mise à jour", - "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Vérification de la possibilité de mettre à jour le schéma de la base de données (cela peut prendre un certain temps selon la taille de la base de données)", - "Checked database schema update" : "Mise à jour du schéma de la base de données vérifiée", - "Checking updates of apps" : "Recherche de mises à jour d'applications", - "Checking for update of app \"%s\" in appstore" : "Vérification de la présence d'une mise à jour pour l'application \"%s\" dans l'appstore", - "Update app \"%s\" from appstore" : "Mise à jour de l'application \"%s\" depuis l'appstore", - "Checked for update of app \"%s\" in appstore" : "Présence de mise à jour vérifiée pour l'application \"%s\" dans l'appstore", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Vérification de la possibilité de mettre à jour le schéma de la base de données pour %s (cela peut prendre un certain temps selon la taille de la base de données)", - "Checked database schema update for apps" : "Mise à jour du schéma de la base de données pour les applications vérifiée", - "Updated \"%1$s\" to %2$s" : "Mise à jour de \"%1$s\" vers %2$s", - "Set log level to debug" : "Réglage du niveau de journalisation à \"déboguage\"", - "Reset log level" : "Réinitialisation du niveau de journalisation", - "Starting code integrity check" : "Lancement de la vérification d'intégrité du code", - "Finished code integrity check" : "Fin de la vérification d’intégrité du code", - "%s (incompatible)" : "%s (incompatible)", - "Following apps have been disabled: %s" : "Les applications suivantes ont été désactivées : %s", - "Already up to date" : "Déjà à jour", - ": " : " : ", - "Dismiss" : "Ignorer", - "Connection to server lost" : "Connexion au serveur perdu", - "No" : "Non", - "Yes" : "Oui", - "No files in here" : "Aucun fichier", - "New folder" : "Nouveau dossier", - "No more subfolders in here" : "Plus aucun sous-dossier ici", - "Name" : "Nom", - "Size" : "Taille", - "Modified" : "Modifié", - "{newName} already exists" : "{newName} existe déjà", - "Choose" : "Choisir", - "Copy" : "Copier", - "Move" : "Déplacer", - "Error loading file picker template: {error}" : "Erreur lors du chargement du modèle du sélecteur de fichiers : {error}", - "OK" : "OK", - "Error loading message template: {error}" : "Erreur lors du chargement du modèle de message : {error}", - "read-only" : "Lecture seule", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} fichier en conflit","{count} fichiers en conflit"], - "One file conflict" : "Un conflit de fichier", - "New Files" : "Nouveaux fichiers", - "Already existing files" : "Fichiers déjà existants", - "Which files do you want to keep?" : "Quels fichiers désirez-vous conserver ?", - "If you select both versions, the copied file will have a number added to its name." : "Si vous sélectionnez les deux versions, un nombre sera ajouté au nom du fichier copié.", - "Cancel" : "Annuler", - "Continue" : "Continuer", - "(all selected)" : "(tous sélectionnés)", - "({count} selected)" : "({count} sélectionné(s))", - "Error loading file exists template" : "Erreur lors du chargement du modèle de fichier existant", - "Pending" : "En attente", - "Copy to {folder}" : "Copier vers {folder}", - "Move to {folder}" : "Déplacer vers {folder}", - "Saving..." : "Enregistrement…", - "seconds ago" : "Il y a quelques secondes", - "Settings" : "Paramètres", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problème de chargement de la page, actualisation dans %n seconde","Problème de chargement de la page, actualisation dans %n secondes"], - "Authentication required" : "Authentification requise", - "This action requires you to confirm your password" : "Cette action nécessite que vous confirmiez votre mot de passe", - "Confirm" : "Confirmer", - "Password" : "Mot de passe", - "Failed to authenticate, try again" : "Échec d'authentification, essayez à nouveau", - "Could not load your contacts" : "Impossible de charger vos contacts", - "Search contacts …" : "Rechercher un contact...", - "No contacts found" : "Aucun contact trouvé", - "Show all contacts …" : "Montrer tous les contacts...", - "Loading your contacts …" : "Chargement de vos contacts...", - "Looking for {term} …" : "Recherche de {term} ...", - "We have send a password reset e-mail to the e-mail address known to us for this account. If you do not receive it within a reasonable amount of time, check your spam/junk folders.
If it is not there ask your local administrator." : "Nous avons envoyé un e-mail de réinitialisation de mot de passe à l'adresse e-mail que nous connaissons pour ce compte. Si vous ne le recevez pas dans un délai raisonnable, vérifiez vos dossiers de courrier indésirable/pourriel/spam.
S'il n'est pas présent, demandez à votre administrateur local.", - "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Vos fichiers sont chiffrés. Il n'y aura aucun moyen de récupérer vos données une fois le mot de passe réinitialisé.
Si vous n'êtes pas sûr de ce que vous faites, veuillez contacter votre administrateur avant de continuer.
Voulez-vous vraiment continuer ?", - "I know what I'm doing" : "Je sais ce que je fais", - "Password can not be changed. Please contact your administrator." : "Le mot de passe ne peut être modifié. Veuillez contacter votre administrateur.", - "Reset password" : "Réinitialiser le mot de passe", - "Sending email …" : "Envoi du mail en cours...", - "Logging in …" : "Connexion…", - "New in" : "Nouveau dans", - "View changelog" : "Voir le journal des modifications", - "No action available" : "Aucune action disponible", - "Error fetching contact actions" : "Erreur lors de la recherche d'actions de contact", - "Error" : "Erreur", - "Error while sharing" : "Erreur lors de la mise en partage", - "Error removing share" : "Erreur lors de l'arrêt du partage", - "Shared with you and the group {group} by {owner}" : "Partagé avec vous et le groupe {group} par {owner}", - "Shared with you and {circle} by {owner}" : "Partagé avec vous et {circle} par {owner}", - "Shared with you and the conversation {conversation} by {owner}" : "Partagé avec vous et la conversation {conversation} par {owner}", - "Shared with you in a conversation by {owner}" : "Partagé avec vous dans une conversation par {owner}", - "Shared with you by {owner}" : "Partagé avec vous par {owner}", - "Choose a password for the public link" : "Choisissez un mot de passe pour le lien public", - "Choose a password for the public link or press the \"Enter\" key" : "Choisissez un mot de passe pour le lien public ou appuyer sur \"Entrée\"", - "Copied!" : "Copié !", - "Copy link" : "Copier le lien", - "Not supported!" : "Non supporté!", - "Press ⌘-C to copy." : "Appuyez sur ⌘-C pour copier.", - "Press Ctrl-C to copy." : "Appuyez sur Ctrl-C pour copier.", - "Unable to create a link share" : "Impossible de créer un lien de partage", - "Unable to toggle this option" : "Impossible de basculer cette option", - "Resharing is not allowed" : "Le repartage n'est pas autorisé", - "Link" : "Lien", - "Hide download" : "Masquer le téléchargement", - "Password protection enforced" : "Protection par mot de passe forcée", - "Password protect" : "Protéger par un mot de passe", - "Allow editing" : "Permettre la modification", - "Email link to person" : "Envoyer le lien par courriel", - "Send" : "Envoyer", - "Allow upload and editing" : "Autoriser l'envoi et l'édition", - "Read only" : "Lecture seule", - "File drop (upload only)" : "Dépôt de fichier (téléversement uniquement)", - "Expiration date enforced" : "Date d'expiration forcée", - "Set expiration date" : "Spécifier une date d'expiration", - "Expiration" : "Expiration", - "Expiration date" : "Date d'expiration", - "Note to recipient" : "Note au destinataire", - "Unshare" : "Ne plus partager", - "Delete share link" : "Supprimer le lien de partage", - "Add another link" : "Ajouter un autre lien", - "Password protection for links is mandatory" : "Il est obligatoire de protéger les liens par mot de passe", - "Share to {name}" : "Partager avec {name}", - "Share link" : "Partager un lien", - "New share link" : "Nouveau lien de partage", - "Created on {time}" : "Créé le {time}", - "Password protect by Talk" : "Mot de passe protégé par Talk", - "Could not unshare" : "Impossible d'arrêter de partager", - "Choose a password for the mail share" : "Choisissez un mot de passe pour le partage par email", - "group" : "groupe", - "remote" : "distant", - "remote group" : "groupe distant", - "email" : "Adresse de courriel", - "conversation" : "conversation", - "shared by {sharer}" : "partagé par {sharer}", - "Can reshare" : "Peut repartager", - "Can edit" : "Peut éditer", - "Can create" : "Peut créer", - "Can change" : "Peut modifier", - "Can delete" : "Peut supprimer", - "Access control" : "Contrôle d'accès", - "{shareInitiatorDisplayName} shared via link" : "{shareInitiatorDisplayName} a partagé via un lien", - "Share details could not be loaded for this item." : "Les informations de partage n'ont pu être chargées pour cet élément.", - "Search globally" : "Rechercher partout", - "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Au moins {count} caractère est nécessaire pour l'autocomplétion","Au moins {count} caractères sont nécessaires pour l'autocomplétion"], - "This list is maybe truncated - please refine your search term to see more results." : "Des résultats peuvent avoir été omis. Affinez votre recherche pour en voir plus.", - "No users or groups found for {search}" : "Pas d'utilisateur ou de groupe trouvé pour {search}", - "No users found for {search}" : "Aucun utilisateur trouvé pour {search}", - "An error occurred (\"{message}\"). Please try again" : "Une erreur est survenue (\"{message}\"). Veuillez réessayer", - "An error occurred. Please try again" : "Une erreur est survenue. Merci de réessayer", - "Home" : "Accueil", - "Work" : "Travail", - "Other" : "Divers", - "{sharee} (remote group)" : "{sharee} (groupe distant)", - "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", - "Share" : "Partager", - "Name or email address..." : "Nom ou adresse mail...", - "Name or federated cloud ID..." : "Nom ou ID du cloud fédéré...", - "Name, federated cloud ID or email address..." : "Nom, ID du cloud fédéré ou adresse mail...", - "Name..." : "Nom...", - "Shared" : "Partagé", - "Shared with" : "Partagé avec", - "Shared by" : "Partagé par", - "Non-existing tag #{tag}" : "Étiquette #{tag} inexistante", - "restricted" : "Restreint", - "invisible" : "invisible", - "({scope})" : "({scope})", - "Delete" : "Supprimer", - "Rename" : "Renommer", - "Collaborative tags" : "Étiquettes collaboratives ", - "No tags found" : "Aucune étiquette n'a été trouvée", - "Very weak password" : "Mot de passe très faible", - "Weak password" : "Mot de passe faible", - "So-so password" : "Mot de passe tout juste acceptable", - "Good password" : "Mot de passe de sécurité suffisante", - "Strong password" : "Mot de passe fort", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas encore correctement configuré pour la synchronisation de fichiers parce que l'interface WebDAV semble ne pas fonctionner.", - "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "La configuration du serveur web ne permet pas d'atteindre \"{url}\". Vous trouverez plus d'informations dans la documentation.", - "Your web server is not properly set up to resolve \"{url}\". This is most likely related to a web server configuration that was not updated to deliver this folder directly. Please compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx at it's documentation page. On Nginx those are typically the lines starting with \"location ~\" that need an update." : "Votre serveur web n'est pas proprement configuré pour résoudre \"{url}\". Ceci est probablement lié à une configuration du serveur web qui n'a pas été mise à jour pour délivrer directement ce dossier. Veuillez comparer votre configuration avec les règles ré-écrites dans \".htaccess\" pour Apache ou celles contenues dans la documentation de Nginx. Pour Nginx les lignes nécessitant une mise à jour sont typiquement celles débutant par \"location ~\".", - "Your web server is not properly set up to deliver .woff2 files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustement to also deliver .woff2 files. Compare your Nginx configuration to the recommended configuration in our documentation." : "Votre serveur web n'est pas correctement configuré pour distribuer des fichiers .woff2. C'est une erreur fréquente de configuration Nginx. Pour Nextcloud 15, il est nécessaire de la régler pour les fichiers .woff2.\nComparer votre configuration Nginx avec la configuration recommandée dans notre documentation.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP ne semble pas être configuré de manière à récupérer les valeurs des variables d’environnement. Le test de la commande getenv(\"PATH\") retourne seulement une réponse vide. ", - "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Veuillez consulter la documentation d'installation ↗pour savoir comment configurer PHP sur votre serveur, en particulier en cas d'utilisation de php-fpm.", - "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuration est en mode lecture seule. Ceci empêche la modification de certaines configurations via l'interface web. De plus, le fichier doit être passé manuellement en lecture-écriture avant chaque mise à jour.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Votre base de données ne fonctionne pas avec le niveau d'isolation de transaction \"READ COMMITED\". Ceci peut causer des problèmes quand plusieurs actions sont exécutées en parallèle.", - "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Le module PHP 'fileinfo' est manquant. Il est vivement recommandé de l'activer afin d'obtenir les meilleurs résultats de détection du type MIME.", - "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems. See the documentation ↗ for more information." : "Le verrouillage transactionnel de fichiers est désactivé. Cela peut causer des conflits en cas d'accès concurrent. Configurez 'filelocking.enabled' dans config.php pour éviter ces problèmes. Consultez la documentation ↗ pour plus d'informations.", - "If your installation is not installed at the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (suggestion: \"{suggestedOverwriteCliURL}\")" : "Si votre installation n'a pas été effectuée à la racine du domaine et qu'elle utilise le Cron du système, il peut y avoir des problèmes avec la génération d'URL. Pour les éviter, veuillez configurer l'option \"overwrite.cli.url\" dans votre fichier config.php avec le chemin de la racine de votre installation (suggestion : \"{suggestedOverwriteCliURL}\")", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "La tâche cron n'a pu s'exécuter via CLI. Ces erreurs techniques sont apparues :", - "Last background job execution ran {relativeTime}. Something seems wrong." : "Dernière tâche de fond a fonctionné il y a {relativeTime}. Quelque chose s'est mal passé.", - "Check the background job settings" : "Vérifier les paramètres des tâches de fond", - "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Ce serveur ne peut se connecter à Internet : plusieurs point finaux ne peuvent être atteints. 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 l'envoi de notifications par mail peuvent aussi être indisponibles. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.", - "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Aucun cache mémoire n'est configuré. Si possible, configurez un \"memcache\" pour améliorer les performances. Pour plus d'informations consultez la documentation.", - "No suitable source for randomness found by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "Aucune source appropriée pour les aléas trouvée par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", - "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Vous utilisez actuellement PHP {version}. Mettez à jour votre version de PHP afin de tirer avantage des améliorations liées à la performance et la sécurité fournies par le PHP Group dès que votre distribution le supportera.", - "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Vous utiliser actuellement PHP 5.6. La version majeure actuelle de Nextcloud est la dernière qui est supportée sous PHP 5.6. Il est recommandé de mettre à niveau PHP vers la version 7.0+ pour pouvoir passer à Nextcloud 14.", - "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuration des entêtes du proxy inverse est incorrecte, ou vous accédez à Nextcloud depuis un proxy de confiance. Si vous n'êtes pas en train d’accéder à Nextcloud depuis un proxy de confiance, il y a un problème de sécurité qui peut permettre à un attaquant d'usurper l'adresse IP affichée à Nextcloud. Vous trouverez plus d'informations dans notre documentation.", - "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the memcached wiki about both modules." : "\"memcached\" est configuré comme cache distribué, mais le mauvais module PHP \"memcache\" est installé. \\OC\\Memcache\\Memcached ne prend en charge que \"memcached\" et non \"memcache\". Consulter le wiki de memcached à propos de ces deux modules.", - "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Des fichiers n'ont pas passé la vérification d’intégrité. Vous trouverez plus d'information sur comment résoudre ce problème dans notre documentation. (Liste des fichiers invalides… / Rescanner…)", - "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "Le module PHP OPcache n'est pas disponible. Pour de meilleures performances, il est recommandé de l'activer dans votre installation de PHP.", - "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "Le PHP OPcache n'est pas correctement configuré. Pour de meilleure performance nous recommandons d'utiliser les paramètres suivant dans le php.ini :", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La fonction PHP \"set_time_limit\" n'est pas disponible. Cela pourrait entraîner l'arrêt des scripts à mi-exécution en bloquant votre installation. Nous vous recommandons vivement d'activer cette fonction.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Votre PHP ne prend pas en charge FreeType, provoquant la casse des images de profil et de l'interface des paramètres.", - "Missing index \"{indexName}\" in table \"{tableName}\"." : "Index \"{indexName}\" manquant dans la table \"{tableName}\".", - "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "La base de données a quelques index manquant. L'ajout d'index dans de grandes tables peut prendre un certain temps. Elles ne sont donc pas ajoutées automatiquement. En exécutant \"occ db:add-missing-indices\", ces index manquants pourront être ajoutés manuellement pendant que l'instance continue de tourner. Une fois les index ajoutés, les requêtes sur ces tables sont généralement beaucoup plus rapides.", - "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Cette instance ne dispose pas de plusieurs modules PHP recommandés. Il est recommandé de les installer pour améliorer les performances, et la compatibilité.", - "Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running 'occ db:convert-filecache-bigint' those pending changes could be applied manually. This operation needs to be made while the instance is offline. For further details read the documentation page about this." : "Certaines colonnes de la base de données n'ont pas été converties en big int. Changer le type de colonne dans de grandes tables peu prendre beaucoup de temps, elles n'ont donc pas été converties automatiquement. En exécutant 'occ db:convert-filecache-bigint' ces changements en suspens peuvent être déclenchés manuellement. Cette opération doit être exécutée pendant que l'instance est hors ligne. Pour plus d'information, consulter la page de la documentation.", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite est actuellement utilisé comme système de gestion de base de données. Pour des installations plus volumineuses, nous vous recommandons de migrer vers un autre système de gestion de base de données.", - "This is particularly recommended when using the desktop client for file synchronisation." : "C'est particulièrement recommandé lorsque l'on utilise un client bureau pour la synchronisation des fichiers.", - "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Pour migrer vers un autre type de base de données, utilisez la ligne de commande : 'occ db:convert-type' ou consultez la documentation ↗.", - "Use of the the built in php mailer is no longer supported. Please update your email server settings ↗." : "L'utilisation de la fonctionnalité d'envoi d'e-mails native de PHP n'est plus supportée. Merci de mettre à jour les paramètres d'envoi d'e-mails de votre serveur ↗ ", - "The PHP memory limit is below the recommended value of 512MB." : "La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo.", - "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Certains répertoires d'applications appartiennent à un utilisateur différent de celui du serveur web. Cela peut être le cas si les applications ont été installées manuellement. Vérifiez les permissions des répertoires d'applications suivants :", - "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read the documentation page about this." : "MySQL est utilisée comme base de données mais ne supporte pas les caractères codés sur 4 octets. Pour pouvoir manipuler les caractères sur 4 octets (comme les émoticônes) sans problème dans les noms de fichiers ou les commentaires par exemple, il est recommandé d'activer le support 4 octets dans MySQL. Pour plus de détails, lisez la page de documentation à ce sujet", - "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Cette instance utilise un stockage primaire basé sur un objet de stockage issu de S3. \nLes fichiers téléversés sont temporairement stockés sur le serveur et il est donc recommandé de disposer d'un espace libre de 50 GB dans le répertoire temporaire de PHP. Vérifiez les journaux pour plus de détails sur les chemins concernés et l'espace disponible. Pour améliorer la situation, vous pouvez augmenter l'espace disponible dans le dossier temporaire actuel ou changer l'emplacement du dossier temporaire en indiquant un nouveau chemin dans php.ini.", - "Error occurred while checking server setup" : "Une erreur s'est produite lors de la vérification de la configuration du serveur", - "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server 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 de le déplacer hors de la racine du serveur web.", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Ceci constitue un risque potentiel relatif à la sécurité et à la vie privée étant donné qu'il est recommandé d'ajuster ce paramètre.", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Certaines fonctionnalités peuvent ne pas fonctionner correctement étant donné qu'il est recommandé d'ajuster ce paramètre.", - "The \"{header}\" HTTP header doesn't contain \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" ne contient pas \"{expected}\". Ceci est un risque potentiel pour la sécurité ou la vie privée, et il est recommandé d'ajuster ce paramètre en conséquence.", - "The \"{header}\" HTTP header is not set to \"{val1}\", \"{val2}\", \"{val3}\", \"{val4}\" or \"{val5}\". This can leak referer information. See the W3C Recommendation ↗." : "L'en-tête HTTP \"{header}\" n'est pas défini sur \"{val1}\", \"{val2}\", \"{val3}\", \"{val4}\" ou \"{val5}\". Cela peut entraîner une fuite d'informations. Veuillez voir les recommandations du W3C ↗.", - "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips ↗." : "L'en-tête HTTP \"Strict-Transport-Security\" n'est pas configurée à au moins \"{seconds}\" secondes. Pour renforcer la sécurité, nous recommandons d'activer HSTS comme décrit dans nos conseils de sécurisation ↗.", - "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips ↗." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS, comme expliqué dans nos conseils de sécurisation ↗.", - "unknown text" : "texte inconnu", - "Hello world!" : "Hello world!", - "sunny" : "ensoleillé", - "Hello {name}, the weather is {weather}" : "Bonjour {name}, le temps est {weather}", - "Hello {name}" : "Bonjour {name}", - "These are your search results" : "Voici les résultats de votre recherche", - "new" : "nouveau ", - "_download %n file_::_download %n files_" : ["télécharger %n fichier","télécharger %n fichiers"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "La mise à jour est en cours, quitter la page peut interrompre le processus dans de nombreux environnements.", - "Update to {version}" : "Mise à jour vers {version}", - "An error occurred." : "Une erreur est survenue.", - "Please reload the page." : "Veuillez recharger la page.", - "The update was unsuccessful. For more information check our forum post covering this issue." : "La mise à jour a échoué. Pour plus d'informations consultez notre publication sur le forum à propos de ce problème.", - "The update was unsuccessful. Please report this issue to the Nextcloud community." : "La mise à jour a échoué. Veuillez reporter le problème à la communauté Nextcloud.", - "Continue to Nextcloud" : "Continuer sur Nextcloud", - "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["La mise à jour est terminée. Vous allez être redirigé vers Nextcloud dans %n seconde.","La mise à jour est terminée. Vous allez être redirigé vers Nextcloud dans %n secondes."], - "Searching other places" : "Recherche en cours dans d'autres emplacements", - "No search results in other folders for {tag}{filter}{endtag}" : "Aucun résultat dans d'autres dossiers n'a été trouvé pour  {tag}{filter}{endtag}", - "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} résultat dans un autre dossier","{count} résultats dans d'autres dossiers"], - "Personal" : "Personnel", - "Users" : "Utilisateurs", - "Apps" : "Applications", - "Admin" : "Administration", - "Help" : "Aide", - "Access forbidden" : "Accès interdit", - "File not found" : "Fichier non trouvé", - "The document could not be found on the server. Maybe the share was deleted or has expired?" : "Le document n'a pas pu être trouvé sur le serveur. Peut-être que le partage a été supprimé ou est expiré ?", - "Back to %s" : "Retour à %s", - "Internal Server Error" : "Erreur interne du serveur", - "The server was unable to complete your request." : "Le serveur est incapable d'exécuter votre requête.", - "If this happens again, please send the technical details below to the server administrator." : "Si cela se reproduit, veuillez envoyer les détails techniques ci-dessous à l'administrateur du serveur.", - "More details can be found in the server log." : "Le fichier journal du serveur peut fournir plus de renseignements.", - "Technical details" : "Renseignements techniques", - "Remote Address: %s" : "Adresse distante : %s", - "Request ID: %s" : "ID de la demande : %s", - "Type: %s" : "Type : %s", - "Code: %s" : "Code : %s", - "Message: %s" : "Message : %s", - "File: %s" : "Fichier : %s", - "Line: %s" : "Ligne : %s", - "Trace" : "Trace", - "Security warning" : "Avertissement de sécurité", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Votre répertoire de données est certainement accessible depuis internet car le fichier .htaccess ne fonctionne pas.", - "For information how to properly configure your server, please see the documentation." : "Pour les informations de configuration de votre serveur, veuillez lire la documentation.", - "Create an admin account" : "Créer un compte administrateur", - "Username" : "Nom d'utilisateur", - "Storage & database" : "Stockage & base de données", - "Data folder" : "Répertoire des données", - "Configure the database" : "Configurer la base de données", - "Only %s is available." : "Seul(e) %s est disponible.", - "Install and activate additional PHP modules to choose other database types." : "Installez et activez les modules PHP additionnels adéquats pour choisir d'autres types de base de données.", - "For more details check out the documentation." : "Consultez la documentation pour plus de détails.", - "Database user" : "Utilisateur de la base de données", - "Database password" : "Mot de passe de la base de données", - "Database name" : "Nom de la base de données", - "Database tablespace" : "Espace de stockage de la base de données", - "Database host" : "Hôte de la base de données", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Veuillez spécifier le numéro du port avec le nom de l'hôte (ex: localhost:5432).", - "Performance warning" : "Avertissement à propos des performances", - "You chose SQLite as database." : "Vous avez choisi SQLite comme base de données. ", - "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite ne devrait être utilisée que pour des instances minimales ou de développement. Pour une instance de production, nous recommandons une infrastructure de base de données différente. ", - "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Si vous utilisez des clients de synchronisation de fichiers, l'utilisation de SQLite est fortement découragée. ", - "Finish setup" : "Terminer l'installation", - "Finishing …" : "Finalisation …", - "Need help?" : "Besoin d'aide ?", - "See the documentation" : "Lire la documentation", - "It looks like you are trying to reinstall your Nextcloud. However the file CAN_INSTALL is missing from your config directory. Please create the file CAN_INSTALL in your config folder to continue." : "On dirait que vous essayez de réinstaller votre Nextcloud. Toutefois, le fichier CAN_INSTALL est absent de votre répertoire de configuration. Veuillez créer le fichier CAN_INSTALL dans votre dossier de configuration pour continuer.", - "Could not remove CAN_INSTALL from the config folder. Please remove this file manually." : "Impossible de supprimer CAN_INSTALL du dossier de configuration. Veuillez supprimer ce fichier manuellement.", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Cette application requiert JavaScript pour fonctionner correctement. Veuillez {linkstart}activer JavaScript{linkend} et recharger la page.", - "Get your own free account" : "Obtenez votre compte personnel gratuit", - "Skip to main content" : "Passer au contenu principal", - "Skip to navigation of app" : "Passer à la navigation d'application", - "More apps" : "Plus d'applications", - "More" : "Plus", - "More apps menu" : "Menu des autres applications", - "Search" : "Rechercher", - "Reset search" : "Réinitialiser la recherche", - "Contacts" : "Contacts", - "Contacts menu" : "Menu des contacts", - "Settings menu" : "Menu des paramètres  ", - "Confirm your password" : "Confirmer votre mot de passe", - "Server side authentication failed!" : "L'authentification sur le serveur a échoué !", - "Please contact your administrator." : "Veuillez contacter votre administrateur.", - "An internal error occurred." : "Une erreur interne est survenue.", - "Please try again or contact your administrator." : "Veuillez réessayer ou contactez votre administrateur.", - "Username or email" : "Utilisateur ou email", - "Log in" : "Se connecter", - "Wrong username or password." : "Utilisateur ou mot de passe incorrect.", - "User disabled" : "Utilisateur désactivé", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Nous avons détecté plusieurs tentatives de connexion invalides depuis votre adresse IP. C'est pourquoi votre prochaine connexion sera retardée de 30 secondes.", - "Forgot password?" : "Mot de passe oublié ?", - "Back to login" : "Retour à la page de connexion", - "Connect to your account" : "Connectez vous à votre compte", - "Please log in before granting %1$s access to your %2$s account." : "Veuillez vous connecter avant d'autoriser %1$s à accéder à votre compte %2$s.", - "App token" : "Jeton d'application", - "Grant access" : "Autoriser l'accès", - "Alternative log in using app token" : "Authentification alternative en utilisant un jeton d'application", - "Account access" : "Accès au compte", - "You are about to grant %1$s access to your %2$s account." : "Vous êtes sur le point d'accorder à \"%1$s\" l'accès à votre compte \"%2$s\".", - "Account connected" : "Compte connecté", - "Your client should now be connected! You can close this window." : "Votre client devrait maintenant être connecté ! Vous pouvez fermer cette fenêtre.", - "New password" : "Nouveau mot de passe", - "New Password" : "Nouveau mot de passe", - "This share is password-protected" : "Ce partage est protégé par mot de passe", - "The password is wrong. Try again." : "Le mot de passe est incorrect. Veuillez réessayer.", - "Two-factor authentication" : "Second facteur d'authentification", - "Enhanced security is enabled for your account. Choose a second factor for authentication:" : "La sécurité renforcée est activée pour votre compte. Choisissez un second facteur pour l'authentification :", - "Could not load at least one of your enabled two-factor auth methods. Please contact your admin." : "Impossible de charger au moins l'une de vos méthodes activées d'authentification à deux facteurs . Veuillez contacter votre administrateur.", - "Two-factor authentication is enforced but has not been configured on your account. Contact your admin for assistance." : "L'authentification en deux étapes a été imposée mais n'est pas configurée sur votre compte. Contactez votre administrateur pour avoir de l'aide.", - "Two-factor authentication is enforced but has not been configured on your account. Please continue to setup two-factor authentication." : "L'authentification à deux facteurs est appliquée mais n'a pas été configurée sur votre compte. Veuillez continuer à configurer l'authentification à deux facteurs.", - "Set up two-factor authentication" : "Paramétrer l'authentification à double facteur", - "Two-factor authentication is enforced but has not been configured on your account. Use one of your backup codes to log in or contact your admin for assistance." : "L'authentification en deux étapes a été imposée mais n'est pas configurée sur votre compte. Utilisez un de vos codes de secours pour vous connecter ou contactez votre administrateur pour avoir de l'aide.", - "Use backup code" : "Utiliser un code de récupération", - "Cancel log in" : "Annuler l'authentification", - "Setup two-factor authentication" : "Paramétrer l'authentification à double facteur", - "Enhanced security is enforced for your account. Choose wich provider to set up:" : "Une sécurité renforcée est appliquée à votre compte. Choisissez le fournisseur à configurer :", - "Error while validating your second factor" : "Erreur lors de la validation de votre second facteur", - "Access through untrusted domain" : "Accès à partir d'un domaine non approuvé", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Veuillez contacter votre administrateur. Si vous êtes un administrateur, éditez la variable \"trusted_domains\" dans le fichier config/config.php comme l'exemple dans le fichier config/config.sample.php.", - "Further information how to configure this can be found in the %1$sdocumentation%2$s." : "Vous trouverez d'autres informations sur la configuration dans la %1$sdocumentation %2$s.", - "App update required" : "Mise à jour de l'application nécessaire", - "%1$s will be updated to version %2$s" : "%1$s sera mis à jour vers la version %2$s", - "These apps will be updated:" : "Les applications suivantes seront mises à jour :", - "These incompatible apps will be disabled:" : "Ces applications incompatibles ont été désactivées :", - "The theme %s has been disabled." : "Le thème %s a été désactivé.", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Veuillez vous assurer qu'une copie de sauvegarde de la base de données, du dossier de configuration (config) et du dossier de données (data) a été réalisée avant de commencer.", - "Start update" : "Démarrer la mise à jour", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Afin d'éviter les timeouts avec les installations de volume conséquent, vous pouvez exécuter la commande suivante depuis le répertoire d'installation :", - "Detailed logs" : "Journaux détaillés", - "Update needed" : "Mise à jour nécessaire", - "Please use the command line updater because you have a big instance with more than 50 users." : "Veuillez utiliser la mise à jour en ligne de commande car votre instance est volumineuse avec plus de 50 utilisateurs.", - "For help, see the documentation." : "Pour obtenir de l'aide, lisez la documentation.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Je sais que si je continue à faire la mise à jour via le navigateur web, il existe le risque que la requête se heurte à un délai d'expiration et peut causer une perte de données, mais j'ai une copie de sauvegarde et je sais comment restaurer mon instance en cas d'échec.", - "Upgrade via web on my own risk" : "Mettre à jour via le navigateur web à mes propres risques", - "Maintenance mode" : "Mode maintenance", - "This %s instance is currently in maintenance mode, which may take a while." : "Cette instance de %s est en cours de maintenance, cela peut prendre du temps.", - "This page will refresh itself when the instance is available again." : "Cette page se rafraîchira d'elle-même lorsque le serveur sera de nouveau disponible.", - "Contact your system administrator if this message persists or appeared unexpectedly." : "Veuillez contacter votre administrateur système si ce message persiste ou apparaît de façon inattendue.", - "Updated \"%s\" to %s" : "Mise à jour de « %s » vers %s", - "There were problems with the code integrity check. More information…" : "Il y a eu des problèmes à la vérification de l’intégrité du code. Plus d'infos...", - "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.
If it is not there ask your local administrator." : "Un lien permettant de réinitialiser votre mot de passe vient de vous être envoyé par courriel.
Si vous ne le recevez pas dans un délai raisonnable, contactez votre administrateur.
N'oubliez pas de vérifier dans votre dossier pourriel / spam!", - "{name} below version {version} is installed, for stability and performance reasons it is recommended to update to a newer {name} version." : "{name} est installée sous la version {version}. Pour des raisons de stabilité et de performances, il est recommandé de mettre à jour {name} vers une version plus récente.", - "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom n'est pas lisible par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", - "Copy URL" : "Copier l'adresse URL", - "Enable" : "Activer", - "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} a partagé via un lien", - "{sharee} (group)" : "{sharee} (groupe)", - "{sharee} (remote)" : "{sharee} (distant)", - "{sharee} (email)" : "{sharee} (email)", - "{sharee} (conversation)" : "{sharee} (discussion)", - "The specified document has not been found on the server." : "Impossible de trouver le document spécifié sur le serveur.", - "You can click here to return to %s." : "Vous pouvez cliquer ici pour retourner à %s.", - "SQLite will be used as database." : "SQLite sera utilisé comme gestionnaire de base de données.", - "For larger installations we recommend to choose a different database backend." : "Pour des installations plus volumineuses, nous vous conseillons d'utiliser un autre gestionnaire de base de données.", - "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "En particulier si vous utilisez le client de bureau pour synchroniser vos données, l'utilisation de SQLite est déconseillée.", - "Wrong password." : "Mot de passe incorrect.", - "Please log in before granting %s access to your %s account." : "Veuillez vous connecter avant d'autoriser %s à accéder à votre compte %s.", - "You are about to grant %s access to your %s account." : "Vous êtes sur le point d'accorder à \"%s\" l'accès à votre compte \"%s\".", - "Redirecting …" : "Redirection en cours...", - "Enhanced security is enabled for your account. Please authenticate using a second factor." : "La sécurité renforcée est activée pour votre compte. Veuillez vous authentifier en utilisant un second facteur.", - "Further information how to configure this can be found in the %sdocumentation%s." : "Vous trouverez d'autres informations sur la configuration dans la %sdocumentation %s.", - "%s will be updated to version %s" : "%s sera mis à jour vers la version %s", - "This page will refresh itself when the %s instance is available again." : "Cette page se rafraîchira d'elle-même lorsque l'instance %s sera à nouveau disponible.", - "Thank you for your patience." : "Merci de votre patience." -}, -"nplurals=2; plural=(n > 1);"); +OC.L10N.register( + "core", + { + "Please select a file." : "Veuillez sélectionner un fichier.", + "File is too big" : "Le fichier est trop volumineux", + "The selected file is not an image." : "Le fichier sélectionné n'est pas une image.", + "The selected file cannot be read." : "Le fichier sélectionné ne peut pas être lu.", + "Invalid file provided" : "Fichier non valide", + "No image or file provided" : "Pas d'image ou fichier fourni", + "Unknown filetype" : "Type de fichier inconnu", + "Invalid image" : "Image non valable", + "An error occurred. Please contact your admin." : "Une erreur est survenue. Veuillez contacter votre administrateur.", + "No temporary profile picture available, try again" : "Aucune image de profil temporaire disponible, essayez à nouveau", + "No crop data provided" : "Aucune donnée de recadrage fournie", + "No valid crop data provided" : "Aucune donnée valide de recadrage fournie", + "Crop is not square" : "Le recadrage n'est pas carré", + "State token does not match" : "Les jetons de statut ne correspondent pas", + "Could not complete login" : "Impossible de terminer la connexion", + "Your login token is invalid or has expired" : "Votre jeton de connexion est invalide ou expiré", + "Password reset is disabled" : "La réinitialisation du mot de passe est désactivée", + "Couldn't reset password because the token is invalid" : "Impossible de réinitialiser le mot de passe car le jeton n'est pas valable", + "Couldn't reset password because the token is expired" : "Impossible de réinitialiser le mot de passe car le jeton a expiré", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation car il n'y a aucune adresse de courriel pour cet utilisateur. Veuillez contacter votre administrateur.", + "Could not send reset email because there is no email address for this username. Please contact %s." : "Impossible d'envoyer le courriel de réinitialisation car il n'y a aucune adresse de courriel pour cet utilisateur. Veuillez contacter %s.", + "%s password reset" : "Réinitialisation de votre mot de passe %s", + "Password reset" : "Réinitialiser le mot de passe", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Cliquez sur le bouton suivant pour réinitialiser votre mot de passe. Si vous n'avez pas demandé cette réinitialisation de mot de passe, vous pouvez ignorer ce courriel.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Cliquer sur le lien suivant pour réinitialiser votre mot de passe. Si vous n'avez pas demandé cette réinitialisation de mot de passe, alors ignorez ce courriel.", + "Reset your password" : "Réinitialiser votre mot de passe", + "%s activate and choose a password" : "Activer et choisir votre mot de passe %s", + "Activate and choose a password" : "Activer et choisir un mot de passe", + "Click the following button to activate and choose a new password. If you have not requested the new password, then ignore this email." : "Cliquez sur le bouton suivant pour activer et choisir votre nouveau mot de passe. Si vous n'avez pas demandé cette activation, vous pouvez ignorer ce courriel.", + "Click the following link to activate and choose a new password. If you have not requested the new password, then ignore this email." : "Cliquer sur le lien suivant pour activer et choisir votre nouveau mot de passe. Si vous n'avez pas demandé cette activation, alors ignorez ce courriel.", + "Activate and choose your new password" : "Activer et choisir votre nouveau mot de passe", + "Couldn't send reset email. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez contacter votre administrateur.", + "Couldn't send reset email. Please make sure your username is correct." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez vérifier que votre nom d'utilisateur est correct.", + "Some of your link shares have been removed" : "Certains de vos liens partagés ont été supprimés.", + "Due to a security bug we had to remove some of your link shares. Please see the link for more information." : "En raison d'une faille de sécurité, nous avons supprimé certains de vos liens partagés. Consultez le lien ci-dessus pour plus d'information.", + "Preparing update" : "Préparation de la mise à jour", + "[%d / %d]: %s" : "[%d / %d] : %s", + "Repair step:" : "Étape de réparation :", + "Repair info:" : "Informations de réparation :", + "Repair warning:" : "Avertissement de réparation :", + "Repair error:" : "Erreur de réparation :", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Veuillez utiliser la mise à jour en ligne de commande, la mise à jour automatique est désactivée dans config.php.", + "[%d / %d]: Checking table %s" : "[%d / %d] : Vérification de la table %s", + "Turned on maintenance mode" : "Mode de maintenance activé", + "Turned off maintenance mode" : "Mode de maintenance désactivé", + "Maintenance mode is kept active" : "Le mode de maintenance est laissé actif", + "Updating database schema" : "Mise à jour du schéma de la base de données", + "Updated database" : "Base de données mise à jour", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Vérification de la possibilité de mettre à jour le schéma de la base de données (cela peut prendre un certain temps selon la taille de la base de données)", + "Checked database schema update" : "Mise à jour du schéma de la base de données vérifiée", + "Checking updates of apps" : "Recherche de mises à jour d'applications", + "Checking for update of app \"%s\" in appstore" : "Vérification de la présence d'une mise à jour pour l'application \"%s\" dans l'appstore", + "Update app \"%s\" from appstore" : "Mise à jour de l'application \"%s\" depuis l'appstore", + "Checked for update of app \"%s\" in appstore" : "Présence de mise à jour vérifiée pour l'application \"%s\" dans l'appstore", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Vérification de la possibilité de mettre à jour le schéma de la base de données pour %s (cela peut prendre un certain temps selon la taille de la base de données)", + "Checked database schema update for apps" : "Mise à jour du schéma de la base de données pour les applications vérifiée", + "Updated \"%1$s\" to %2$s" : "Mise à jour de \"%1$s\" vers %2$s", + "Set log level to debug" : "Réglage du niveau de journalisation à \"déboguage\"", + "Reset log level" : "Réinitialisation du niveau de journalisation", + "Starting code integrity check" : "Lancement de la vérification d'intégrité du code", + "Finished code integrity check" : "Fin de la vérification d’intégrité du code", + "%s (incompatible)" : "%s (incompatible)", + "Following apps have been disabled: %s" : "Les applications suivantes ont été désactivées : %s", + "Already up to date" : "Déjà à jour", + ": " : " : ", + "Dismiss" : "Ignorer", + "Connection to server lost" : "Connexion au serveur perdu", + "No" : "Non", + "Yes" : "Oui", + "No files in here" : "Aucun fichier", + "New folder" : "Nouveau dossier", + "No more subfolders in here" : "Plus aucun sous-dossier ici", + "Name" : "Nom", + "Size" : "Taille", + "Modified" : "Modifié", + "{newName} already exists" : "{newName} existe déjà", + "Choose" : "Choisir", + "Copy" : "Copier", + "Move" : "Déplacer", + "Error loading file picker template: {error}" : "Erreur lors du chargement du modèle du sélecteur de fichiers : {error}", + "OK" : "OK", + "Error loading message template: {error}" : "Erreur lors du chargement du modèle de message : {error}", + "read-only" : "Lecture seule", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} fichier en conflit","{count} fichiers en conflit"], + "One file conflict" : "Un conflit de fichier", + "New Files" : "Nouveaux fichiers", + "Already existing files" : "Fichiers déjà existants", + "Which files do you want to keep?" : "Quels fichiers désirez-vous conserver ?", + "If you select both versions, the copied file will have a number added to its name." : "Si vous sélectionnez les deux versions, un nombre sera ajouté au nom du fichier copié.", + "Cancel" : "Annuler", + "Continue" : "Continuer", + "(all selected)" : "(tous sélectionnés)", + "({count} selected)" : "({count} sélectionné(s))", + "Error loading file exists template" : "Erreur lors du chargement du modèle de fichier existant", + "Pending" : "En attente", + "Copy to {folder}" : "Copier vers {folder}", + "Move to {folder}" : "Déplacer vers {folder}", + "Saving..." : "Enregistrement…", + "seconds ago" : "Il y a quelques secondes", + "Settings" : "Paramètres", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problème de chargement de la page, actualisation dans %n seconde","Problème de chargement de la page, actualisation dans %n secondes"], + "Authentication required" : "Authentification requise", + "This action requires you to confirm your password" : "Cette action nécessite que vous confirmiez votre mot de passe", + "Confirm" : "Confirmer", + "Password" : "Mot de passe", + "Failed to authenticate, try again" : "Échec d'authentification, essayez à nouveau", + "Could not load your contacts" : "Impossible de charger vos contacts", + "Search contacts …" : "Rechercher un contact...", + "No contacts found" : "Aucun contact trouvé", + "Show all contacts …" : "Montrer tous les contacts...", + "Loading your contacts …" : "Chargement de vos contacts...", + "Looking for {term} …" : "Recherche de {term} ...", + "We have send a password reset e-mail to the e-mail address known to us for this account. If you do not receive it within a reasonable amount of time, check your spam/junk folders.
If it is not there ask your local administrator." : "Nous avons envoyé un e-mail de réinitialisation de mot de passe à l'adresse e-mail connue pour ce compte. Si vous ne le recevez pas dans un délai raisonnable, vérifiez vos dossiers de courrier indésirable/pourriel/spam.
S'il n'est pas présent, demandez à votre administrateur local.", + "We have send a password create e-mail to the e-mail address known to us for this account. If you do not receive it within a reasonable amount of time, check your spam/junk folders.
If it is not there ask your local administrator." : "Nous avons envoyé un e-mail afin d'activer le compte et de choisir votre mot de passe à l'adresse e-mail connue pour ce compte. Si vous ne le recevez pas dans un délai raisonnable, vérifiez vos dossiers de courrier indésirable/pourriel/spam.
S'il n'est pas présent, demandez à votre administrateur local.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Vos fichiers sont chiffrés. Il n'y aura aucun moyen de récupérer vos données une fois le mot de passe réinitialisé.
Si vous n'êtes pas sûr de ce que vous faites, veuillez contacter votre administrateur avant de continuer.
Voulez-vous vraiment continuer ?", + "I know what I'm doing" : "Je sais ce que je fais", + "Password can not be changed. Please contact your administrator." : "Le mot de passe ne peut être modifié. Veuillez contacter votre administrateur.", + "Reset password" : "Réinitialisez le mot de passe", + "Sending email …" : "Envoi du mail en cours...", + "Logging in …" : "Connexion…", + "New in" : "Nouveau dans", + "View changelog" : "Voir le journal des modifications", + "No action available" : "Aucune action disponible", + "Error fetching contact actions" : "Erreur lors de la recherche d'actions de contact", + "Error" : "Erreur", + "Error while sharing" : "Erreur lors de la mise en partage", + "Error removing share" : "Erreur lors de l'arrêt du partage", + "Shared with you and the group {group} by {owner}" : "Partagé avec vous et le groupe {group} par {owner}", + "Shared with you and {circle} by {owner}" : "Partagé avec vous et {circle} par {owner}", + "Shared with you and the conversation {conversation} by {owner}" : "Partagé avec vous et la conversation {conversation} par {owner}", + "Shared with you in a conversation by {owner}" : "Partagé avec vous dans une conversation par {owner}", + "Shared with you by {owner}" : "Partagé avec vous par {owner}", + "Choose a password for the public link" : "Choisissez un mot de passe pour le lien public", + "Choose a password for the public link or press the \"Enter\" key" : "Choisissez un mot de passe pour le lien public ou appuyer sur \"Entrée\"", + "Copied!" : "Copié !", + "Copy link" : "Copier le lien", + "Not supported!" : "Non supporté!", + "Press ⌘-C to copy." : "Appuyez sur ⌘-C pour copier.", + "Press Ctrl-C to copy." : "Appuyez sur Ctrl-C pour copier.", + "Unable to create a link share" : "Impossible de créer un lien de partage", + "Unable to toggle this option" : "Impossible de basculer cette option", + "Resharing is not allowed" : "Le repartage n'est pas autorisé", + "Link" : "Lien", + "Hide download" : "Masquer le téléchargement", + "Password protection enforced" : "Protection par mot de passe forcée", + "Password protect" : "Protéger par un mot de passe", + "Allow editing" : "Permettre la modification", + "Email link to person" : "Envoyer le lien par courriel", + "Send" : "Envoyer", + "Allow upload and editing" : "Autoriser l'envoi et l'édition", + "Read only" : "Lecture seule", + "File drop (upload only)" : "Dépôt de fichier (téléversement uniquement)", + "Expiration date enforced" : "Date d'expiration forcée", + "Set expiration date" : "Spécifier une date d'expiration", + "Expiration" : "Expiration", + "Expiration date" : "Date d'expiration", + "Note to recipient" : "Note au destinataire", + "Unshare" : "Ne plus partager", + "Delete share link" : "Supprimer le lien de partage", + "Add another link" : "Ajouter un autre lien", + "Password protection for links is mandatory" : "Il est obligatoire de protéger les liens par mot de passe", + "Share to {name}" : "Partager avec {name}", + "Share link" : "Partager un lien", + "New share link" : "Nouveau lien de partage", + "Created on {time}" : "Créé le {time}", + "Password protect by Talk" : "Mot de passe protégé par Talk", + "Could not unshare" : "Impossible d'arrêter de partager", + "Choose a password for the mail share" : "Choisissez un mot de passe pour le partage par email", + "group" : "groupe", + "remote" : "distant", + "remote group" : "groupe distant", + "email" : "Adresse de courriel", + "conversation" : "conversation", + "shared by {sharer}" : "partagé par {sharer}", + "Can reshare" : "Peut repartager", + "Can edit" : "Peut éditer", + "Can create" : "Peut créer", + "Can change" : "Peut modifier", + "Can delete" : "Peut supprimer", + "Access control" : "Contrôle d'accès", + "{shareInitiatorDisplayName} shared via link" : "{shareInitiatorDisplayName} a partagé via un lien", + "Share details could not be loaded for this item." : "Les informations de partage n'ont pu être chargées pour cet élément.", + "Search globally" : "Rechercher partout", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Au moins {count} caractère est nécessaire pour l'autocomplétion","Au moins {count} caractères sont nécessaires pour l'autocomplétion"], + "This list is maybe truncated - please refine your search term to see more results." : "Des résultats peuvent avoir été omis. Affinez votre recherche pour en voir plus.", + "No users or groups found for {search}" : "Pas d'utilisateur ou de groupe trouvé pour {search}", + "No users found for {search}" : "Aucun utilisateur trouvé pour {search}", + "An error occurred (\"{message}\"). Please try again" : "Une erreur est survenue (\"{message}\"). Veuillez réessayer", + "An error occurred. Please try again" : "Une erreur est survenue. Merci de réessayer", + "Home" : "Accueil", + "Work" : "Travail", + "Other" : "Divers", + "{sharee} (remote group)" : "{sharee} (groupe distant)", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", + "Share" : "Partager", + "Name or email address..." : "Nom ou adresse mail...", + "Name or federated cloud ID..." : "Nom ou ID du cloud fédéré...", + "Name, federated cloud ID or email address..." : "Nom, ID du cloud fédéré ou adresse mail...", + "Name..." : "Nom...", + "Shared" : "Partagé", + "Shared with" : "Partagé avec", + "Shared by" : "Partagé par", + "Non-existing tag #{tag}" : "Étiquette #{tag} inexistante", + "restricted" : "Restreint", + "invisible" : "invisible", + "({scope})" : "({scope})", + "Delete" : "Supprimer", + "Rename" : "Renommer", + "Collaborative tags" : "Étiquettes collaboratives ", + "No tags found" : "Aucune étiquette n'a été trouvée", + "Very weak password" : "Mot de passe très faible", + "Weak password" : "Mot de passe faible", + "So-so password" : "Mot de passe tout juste acceptable", + "Good password" : "Mot de passe de sécurité suffisante", + "Strong password" : "Mot de passe fort", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas encore correctement configuré pour la synchronisation de fichiers parce que l'interface WebDAV semble ne pas fonctionner.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "La configuration du serveur web ne permet pas d'atteindre \"{url}\". Vous trouverez plus d'informations dans la documentation.", + "Your web server is not properly set up to resolve \"{url}\". This is most likely related to a web server configuration that was not updated to deliver this folder directly. Please compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx at it's documentation page. On Nginx those are typically the lines starting with \"location ~\" that need an update." : "Votre serveur web n'est pas proprement configuré pour résoudre \"{url}\". Ceci est probablement lié à une configuration du serveur web qui n'a pas été mise à jour pour délivrer directement ce dossier. Veuillez comparer votre configuration avec les règles ré-écrites dans \".htaccess\" pour Apache ou celles contenues dans la documentation de Nginx. Pour Nginx les lignes nécessitant une mise à jour sont typiquement celles débutant par \"location ~\".", + "Your web server is not properly set up to deliver .woff2 files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustement to also deliver .woff2 files. Compare your Nginx configuration to the recommended configuration in our documentation." : "Votre serveur web n'est pas correctement configuré pour distribuer des fichiers .woff2. C'est une erreur fréquente de configuration Nginx. Pour Nextcloud 15, il est nécessaire de la régler pour les fichiers .woff2.\nComparer votre configuration Nginx avec la configuration recommandée dans notre documentation.", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP ne semble pas être configuré de manière à récupérer les valeurs des variables d’environnement. Le test de la commande getenv(\"PATH\") retourne seulement une réponse vide. ", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Veuillez consulter la documentation d'installation ↗pour savoir comment configurer PHP sur votre serveur, en particulier en cas d'utilisation de php-fpm.", + "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuration est en mode lecture seule. Ceci empêche la modification de certaines configurations via l'interface web. De plus, le fichier doit être passé manuellement en lecture-écriture avant chaque mise à jour.", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Votre base de données ne fonctionne pas avec le niveau d'isolation de transaction \"READ COMMITED\". Ceci peut causer des problèmes quand plusieurs actions sont exécutées en parallèle.", + "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Le module PHP 'fileinfo' est manquant. Il est vivement recommandé de l'activer afin d'obtenir les meilleurs résultats de détection du type MIME.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems. See the documentation ↗ for more information." : "Le verrouillage transactionnel de fichiers est désactivé. Cela peut causer des conflits en cas d'accès concurrent. Configurez 'filelocking.enabled' dans config.php pour éviter ces problèmes. Consultez la documentation ↗ pour plus d'informations.", + "If your installation is not installed at the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (suggestion: \"{suggestedOverwriteCliURL}\")" : "Si votre installation n'a pas été effectuée à la racine du domaine et qu'elle utilise le Cron du système, il peut y avoir des problèmes avec la génération d'URL. Pour les éviter, veuillez configurer l'option \"overwrite.cli.url\" dans votre fichier config.php avec le chemin de la racine de votre installation (suggestion : \"{suggestedOverwriteCliURL}\")", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "La tâche cron n'a pu s'exécuter via CLI. Ces erreurs techniques sont apparues :", + "Last background job execution ran {relativeTime}. Something seems wrong." : "Dernière tâche de fond a fonctionné il y a {relativeTime}. Quelque chose s'est mal passé.", + "Check the background job settings" : "Vérifier les paramètres des tâches de fond", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Ce serveur ne peut se connecter à Internet : plusieurs point finaux ne peuvent être atteints. 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 l'envoi de notifications par mail peuvent aussi être indisponibles. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Aucun cache mémoire n'est configuré. Si possible, configurez un \"memcache\" pour améliorer les performances. Pour plus d'informations consultez la documentation.", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "Aucune source appropriée pour les aléas trouvée par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Vous utilisez actuellement PHP {version}. Mettez à jour votre version de PHP afin de tirer avantage des améliorations liées à la performance et la sécurité fournies par le PHP Group dès que votre distribution le supportera.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Vous utiliser actuellement PHP 5.6. La version majeure actuelle de Nextcloud est la dernière qui est supportée sous PHP 5.6. Il est recommandé de mettre à niveau PHP vers la version 7.0+ pour pouvoir passer à Nextcloud 14.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuration des entêtes du proxy inverse est incorrecte, ou vous accédez à Nextcloud depuis un proxy de confiance. Si vous n'êtes pas en train d’accéder à Nextcloud depuis un proxy de confiance, il y a un problème de sécurité qui peut permettre à un attaquant d'usurper l'adresse IP affichée à Nextcloud. Vous trouverez plus d'informations dans notre documentation.", + "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the memcached wiki about both modules." : "\"memcached\" est configuré comme cache distribué, mais le mauvais module PHP \"memcache\" est installé. \\OC\\Memcache\\Memcached ne prend en charge que \"memcached\" et non \"memcache\". Consulter le wiki de memcached à propos de ces deux modules.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Des fichiers n'ont pas passé la vérification d’intégrité. Vous trouverez plus d'information sur comment résoudre ce problème dans notre documentation. (Liste des fichiers invalides… / Rescanner…)", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "Le module PHP OPcache n'est pas disponible. Pour de meilleures performances, il est recommandé de l'activer dans votre installation de PHP.", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "Le PHP OPcache n'est pas correctement configuré. Pour de meilleure performance nous recommandons d'utiliser les paramètres suivant dans le php.ini :", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La fonction PHP \"set_time_limit\" n'est pas disponible. Cela pourrait entraîner l'arrêt des scripts à mi-exécution en bloquant votre installation. Nous vous recommandons vivement d'activer cette fonction.", + "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Votre PHP ne prend pas en charge FreeType, provoquant la casse des images de profil et de l'interface des paramètres.", + "Missing index \"{indexName}\" in table \"{tableName}\"." : "Index \"{indexName}\" manquant dans la table \"{tableName}\".", + "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "La base de données a quelques index manquant. L'ajout d'index dans de grandes tables peut prendre un certain temps. Elles ne sont donc pas ajoutées automatiquement. En exécutant \"occ db:add-missing-indices\", ces index manquants pourront être ajoutés manuellement pendant que l'instance continue de tourner. Une fois les index ajoutés, les requêtes sur ces tables sont généralement beaucoup plus rapides.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Cette instance ne dispose pas de plusieurs modules PHP recommandés. Il est recommandé de les installer pour améliorer les performances, et la compatibilité.", + "Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running 'occ db:convert-filecache-bigint' those pending changes could be applied manually. This operation needs to be made while the instance is offline. For further details read the documentation page about this." : "Certaines colonnes de la base de données n'ont pas été converties en big int. Changer le type de colonne dans de grandes tables peu prendre beaucoup de temps, elles n'ont donc pas été converties automatiquement. En exécutant 'occ db:convert-filecache-bigint' ces changements en suspens peuvent être déclenchés manuellement. Cette opération doit être exécutée pendant que l'instance est hors ligne. Pour plus d'information, consulter la page de la documentation.", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite est actuellement utilisé comme système de gestion de base de données. Pour des installations plus volumineuses, nous vous recommandons de migrer vers un autre système de gestion de base de données.", + "This is particularly recommended when using the desktop client for file synchronisation." : "C'est particulièrement recommandé lorsque l'on utilise un client bureau pour la synchronisation des fichiers.", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Pour migrer vers un autre type de base de données, utilisez la ligne de commande : 'occ db:convert-type' ou consultez la documentation ↗.", + "Use of the the built in php mailer is no longer supported. Please update your email server settings ↗." : "L'utilisation de la fonctionnalité d'envoi d'e-mails native de PHP n'est plus supportée. Merci de mettre à jour les paramètres d'envoi d'e-mails de votre serveur ↗ ", + "The PHP memory limit is below the recommended value of 512MB." : "La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo.", + "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Certains répertoires d'applications appartiennent à un utilisateur différent de celui du serveur web. Cela peut être le cas si les applications ont été installées manuellement. Vérifiez les permissions des répertoires d'applications suivants :", + "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read the documentation page about this." : "MySQL est utilisée comme base de données mais ne supporte pas les caractères codés sur 4 octets. Pour pouvoir manipuler les caractères sur 4 octets (comme les émoticônes) sans problème dans les noms de fichiers ou les commentaires par exemple, il est recommandé d'activer le support 4 octets dans MySQL. Pour plus de détails, lisez la page de documentation à ce sujet", + "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Cette instance utilise un stockage primaire basé sur un objet de stockage issu de S3. \nLes fichiers téléversés sont temporairement stockés sur le serveur et il est donc recommandé de disposer d'un espace libre de 50 GB dans le répertoire temporaire de PHP. Vérifiez les journaux pour plus de détails sur les chemins concernés et l'espace disponible. Pour améliorer la situation, vous pouvez augmenter l'espace disponible dans le dossier temporaire actuel ou changer l'emplacement du dossier temporaire en indiquant un nouveau chemin dans php.ini.", + "Error occurred while checking server setup" : "Une erreur s'est produite lors de la vérification de la configuration du serveur", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server 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 de le déplacer hors de la racine du serveur web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Ceci constitue un risque potentiel relatif à la sécurité et à la vie privée étant donné qu'il est recommandé d'ajuster ce paramètre.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Certaines fonctionnalités peuvent ne pas fonctionner correctement étant donné qu'il est recommandé d'ajuster ce paramètre.", + "The \"{header}\" HTTP header doesn't contain \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" ne contient pas \"{expected}\". Ceci est un risque potentiel pour la sécurité ou la vie privée, et il est recommandé d'ajuster ce paramètre en conséquence.", + "The \"{header}\" HTTP header is not set to \"{val1}\", \"{val2}\", \"{val3}\", \"{val4}\" or \"{val5}\". This can leak referer information. See the W3C Recommendation ↗." : "L'en-tête HTTP \"{header}\" n'est pas défini sur \"{val1}\", \"{val2}\", \"{val3}\", \"{val4}\" ou \"{val5}\". Cela peut entraîner une fuite d'informations. Veuillez voir les recommandations du W3C ↗.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips ↗." : "L'en-tête HTTP \"Strict-Transport-Security\" n'est pas configurée à au moins \"{seconds}\" secondes. Pour renforcer la sécurité, nous recommandons d'activer HSTS comme décrit dans nos conseils de sécurisation ↗.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips ↗." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS, comme expliqué dans nos conseils de sécurisation ↗.", + "unknown text" : "texte inconnu", + "Hello world!" : "Hello world!", + "sunny" : "ensoleillé", + "Hello {name}, the weather is {weather}" : "Bonjour {name}, le temps est {weather}", + "Hello {name}" : "Bonjour {name}", + "These are your search results" : "Voici les résultats de votre recherche", + "new" : "nouveau ", + "_download %n file_::_download %n files_" : ["télécharger %n fichier","télécharger %n fichiers"], + "The update is in progress, leaving this page might interrupt the process in some environments." : "La mise à jour est en cours, quitter la page peut interrompre le processus dans de nombreux environnements.", + "Update to {version}" : "Mise à jour vers {version}", + "An error occurred." : "Une erreur est survenue.", + "Please reload the page." : "Veuillez recharger la page.", + "The update was unsuccessful. For more information check our forum post covering this issue." : "La mise à jour a échoué. Pour plus d'informations consultez notre publication sur le forum à propos de ce problème.", + "The update was unsuccessful. Please report this issue to the Nextcloud community." : "La mise à jour a échoué. Veuillez reporter le problème à la communauté Nextcloud.", + "Continue to Nextcloud" : "Continuer sur Nextcloud", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["La mise à jour est terminée. Vous allez être redirigé vers Nextcloud dans %n seconde.","La mise à jour est terminée. Vous allez être redirigé vers Nextcloud dans %n secondes."], + "Searching other places" : "Recherche en cours dans d'autres emplacements", + "No search results in other folders for {tag}{filter}{endtag}" : "Aucun résultat dans d'autres dossiers n'a été trouvé pour  {tag}{filter}{endtag}", + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} résultat dans un autre dossier","{count} résultats dans d'autres dossiers"], + "Personal" : "Personnel", + "Users" : "Utilisateurs", + "Apps" : "Applications", + "Admin" : "Administration", + "Help" : "Aide", + "Access forbidden" : "Accès interdit", + "File not found" : "Fichier non trouvé", + "The document could not be found on the server. Maybe the share was deleted or has expired?" : "Le document n'a pas pu être trouvé sur le serveur. Peut-être que le partage a été supprimé ou est expiré ?", + "Back to %s" : "Retour à %s", + "Internal Server Error" : "Erreur interne du serveur", + "The server was unable to complete your request." : "Le serveur est incapable d'exécuter votre requête.", + "If this happens again, please send the technical details below to the server administrator." : "Si cela se reproduit, veuillez envoyer les détails techniques ci-dessous à l'administrateur du serveur.", + "More details can be found in the server log." : "Le fichier journal du serveur peut fournir plus de renseignements.", + "Technical details" : "Renseignements techniques", + "Remote Address: %s" : "Adresse distante : %s", + "Request ID: %s" : "ID de la demande : %s", + "Type: %s" : "Type : %s", + "Code: %s" : "Code : %s", + "Message: %s" : "Message : %s", + "File: %s" : "Fichier : %s", + "Line: %s" : "Ligne : %s", + "Trace" : "Trace", + "Security warning" : "Avertissement de sécurité", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Votre répertoire de données est certainement accessible depuis internet car le fichier .htaccess ne fonctionne pas.", + "For information how to properly configure your server, please see the documentation." : "Pour les informations de configuration de votre serveur, veuillez lire la documentation.", + "Create an admin account" : "Créer un compte administrateur", + "Username" : "Nom d'utilisateur", + "Storage & database" : "Stockage & base de données", + "Data folder" : "Répertoire des données", + "Configure the database" : "Configurer la base de données", + "Only %s is available." : "Seul(e) %s est disponible.", + "Install and activate additional PHP modules to choose other database types." : "Installez et activez les modules PHP additionnels adéquats pour choisir d'autres types de base de données.", + "For more details check out the documentation." : "Consultez la documentation pour plus de détails.", + "Database user" : "Utilisateur de la base de données", + "Database password" : "Mot de passe de la base de données", + "Database name" : "Nom de la base de données", + "Database tablespace" : "Espace de stockage de la base de données", + "Database host" : "Hôte de la base de données", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "Veuillez spécifier le numéro du port avec le nom de l'hôte (ex: localhost:5432).", + "Performance warning" : "Avertissement à propos des performances", + "You chose SQLite as database." : "Vous avez choisi SQLite comme base de données. ", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite ne devrait être utilisée que pour des instances minimales ou de développement. Pour une instance de production, nous recommandons une infrastructure de base de données différente. ", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Si vous utilisez des clients de synchronisation de fichiers, l'utilisation de SQLite est fortement découragée. ", + "Finish setup" : "Terminer l'installation", + "Finishing …" : "Finalisation …", + "Need help?" : "Besoin d'aide ?", + "See the documentation" : "Lire la documentation", + "It looks like you are trying to reinstall your Nextcloud. However the file CAN_INSTALL is missing from your config directory. Please create the file CAN_INSTALL in your config folder to continue." : "On dirait que vous essayez de réinstaller votre Nextcloud. Toutefois, le fichier CAN_INSTALL est absent de votre répertoire de configuration. Veuillez créer le fichier CAN_INSTALL dans votre dossier de configuration pour continuer.", + "Could not remove CAN_INSTALL from the config folder. Please remove this file manually." : "Impossible de supprimer CAN_INSTALL du dossier de configuration. Veuillez supprimer ce fichier manuellement.", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Cette application requiert JavaScript pour fonctionner correctement. Veuillez {linkstart}activer JavaScript{linkend} et recharger la page.", + "Get your own free account" : "Obtenez votre compte personnel gratuit", + "Skip to main content" : "Passer au contenu principal", + "Skip to navigation of app" : "Passer à la navigation d'application", + "More apps" : "Plus d'applications", + "More" : "Plus", + "More apps menu" : "Menu des autres applications", + "Search" : "Rechercher", + "Reset search" : "Réinitialiser la recherche", + "Contacts" : "Contacts", + "Contacts menu" : "Menu des contacts", + "Settings menu" : "Menu des paramètres  ", + "Confirm your password" : "Confirmer votre mot de passe", + "Server side authentication failed!" : "L'authentification sur le serveur a échoué !", + "Please contact your administrator." : "Veuillez contacter votre administrateur.", + "An internal error occurred." : "Une erreur interne est survenue.", + "Please try again or contact your administrator." : "Veuillez réessayer ou contactez votre administrateur.", + "Please try again or contact %s." : "Veuillez réessayer ou contactez %s.", + "Username or email" : "Utilisateur ou email", + "Log in" : "Se connecter", + "Wrong username or password." : "Utilisateur ou mot de passe incorrect.", + "User disabled" : "Utilisateur désactivé", + "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Nous avons détecté plusieurs tentatives de connexion invalides depuis votre adresse IP. C'est pourquoi votre prochaine connexion sera retardée de 30 secondes.", + "Forgot password?" : "Mot de passe oublié ?", + "Back to login" : "Retour à la page de connexion", + "Connect to your account" : "Connectez vous à votre compte", + "Please log in before granting %1$s access to your %2$s account." : "Veuillez vous connecter avant d'autoriser %1$s à accéder à votre compte %2$s.", + "App token" : "Jeton d'application", + "Grant access" : "Autoriser l'accès", + "Alternative log in using app token" : "Authentification alternative en utilisant un jeton d'application", + "Account access" : "Accès au compte", + "You are about to grant %1$s access to your %2$s account." : "Vous êtes sur le point d'accorder à \"%1$s\" l'accès à votre compte \"%2$s\".", + "Account connected" : "Compte connecté", + "Your client should now be connected! You can close this window." : "Votre client devrait maintenant être connecté ! Vous pouvez fermer cette fenêtre.", + "New password" : "Nouveau mot de passe", + "New Password" : "Nouveau mot de passe", + "First connection" : "Activez votre compte", + "Welcome %s" : "Bienvenue %s", + "Close this window" : "Fermez cette fenêtre", + "Click on 'First connection' to receive an email for choosing your first password" : "Cliquer sur 'Activez votre compte' afin de recevoir un email permettant de choisir votre mot de passe", + "Click on 'Reset password' to receive an email for setting up a new password" : "Cliquer sur 'Rénitialisez le mot de passe' afin de recevoir un email permettant de réinitialiser votre mot de passe", + "This share is password-protected" : "Ce partage est protégé par mot de passe", + "The password is wrong. Try again." : "Le mot de passe est incorrect. Veuillez réessayer.", + "Two-factor authentication" : "Second facteur d'authentification", + "Enhanced security is enabled for your account. Choose a second factor for authentication:" : "La sécurité renforcée est activée pour votre compte. Choisissez un second facteur pour l'authentification :", + "Could not load at least one of your enabled two-factor auth methods. Please contact your admin." : "Impossible de charger au moins l'une de vos méthodes activées d'authentification à deux facteurs . Veuillez contacter votre administrateur.", + "Two-factor authentication is enforced but has not been configured on your account. Contact your admin for assistance." : "L'authentification en deux étapes a été imposée mais n'est pas configurée sur votre compte. Contactez votre administrateur pour avoir de l'aide.", + "Two-factor authentication is enforced but has not been configured on your account. Please continue to setup two-factor authentication." : "L'authentification à deux facteurs est appliquée mais n'a pas été configurée sur votre compte. Veuillez continuer à configurer l'authentification à deux facteurs.", + "Set up two-factor authentication" : "Paramétrer l'authentification à double facteur", + "Two-factor authentication is enforced but has not been configured on your account. Use one of your backup codes to log in or contact your admin for assistance." : "L'authentification en deux étapes a été imposée mais n'est pas configurée sur votre compte. Utilisez un de vos codes de secours pour vous connecter ou contactez votre administrateur pour avoir de l'aide.", + "Use backup code" : "Utiliser un code de récupération", + "Cancel log in" : "Annuler l'authentification", + "Setup two-factor authentication" : "Paramétrer l'authentification à double facteur", + "Enhanced security is enforced for your account. Choose wich provider to set up:" : "Une sécurité renforcée est appliquée à votre compte. Choisissez le fournisseur à configurer :", + "Error while validating your second factor" : "Erreur lors de la validation de votre second facteur", + "Access through untrusted domain" : "Accès à partir d'un domaine non approuvé", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Veuillez contacter votre administrateur. Si vous êtes un administrateur, éditez la variable \"trusted_domains\" dans le fichier config/config.php comme l'exemple dans le fichier config/config.sample.php.", + "Further information how to configure this can be found in the %1$sdocumentation%2$s." : "Vous trouverez d'autres informations sur la configuration dans la %1$sdocumentation %2$s.", + "App update required" : "Mise à jour de l'application nécessaire", + "%1$s will be updated to version %2$s" : "%1$s sera mis à jour vers la version %2$s", + "These apps will be updated:" : "Les applications suivantes seront mises à jour :", + "These incompatible apps will be disabled:" : "Ces applications incompatibles ont été désactivées :", + "The theme %s has been disabled." : "Le thème %s a été désactivé.", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Veuillez vous assurer qu'une copie de sauvegarde de la base de données, du dossier de configuration (config) et du dossier de données (data) a été réalisée avant de commencer.", + "Start update" : "Démarrer la mise à jour", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Afin d'éviter les timeouts avec les installations de volume conséquent, vous pouvez exécuter la commande suivante depuis le répertoire d'installation :", + "Detailed logs" : "Journaux détaillés", + "Update needed" : "Mise à jour nécessaire", + "Please use the command line updater because you have a big instance with more than 50 users." : "Veuillez utiliser la mise à jour en ligne de commande car votre instance est volumineuse avec plus de 50 utilisateurs.", + "For help, see the documentation." : "Pour obtenir de l'aide, lisez la documentation.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Je sais que si je continue à faire la mise à jour via le navigateur web, il existe le risque que la requête se heurte à un délai d'expiration et peut causer une perte de données, mais j'ai une copie de sauvegarde et je sais comment restaurer mon instance en cas d'échec.", + "Upgrade via web on my own risk" : "Mettre à jour via le navigateur web à mes propres risques", + "Maintenance mode" : "Mode maintenance", + "This %s instance is currently in maintenance mode, which may take a while." : "Cette instance de %s est en cours de maintenance, cela peut prendre du temps.", + "This page will refresh itself when the instance is available again." : "Cette page se rafraîchira d'elle-même lorsque le serveur sera de nouveau disponible.", + "Contact your system administrator if this message persists or appeared unexpectedly." : "Veuillez contacter votre administrateur système si ce message persiste ou apparaît de façon inattendue.", + "Updated \"%s\" to %s" : "Mise à jour de « %s » vers %s", + "There were problems with the code integrity check. More information…" : "Il y a eu des problèmes à la vérification de l’intégrité du code. Plus d'infos...", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.
If it is not there ask your local administrator." : "Un lien permettant de réinitialiser votre mot de passe vient de vous être envoyé par courriel.
Si vous ne le recevez pas dans un délai raisonnable, contactez votre administrateur.
N'oubliez pas de vérifier dans votre dossier pourriel / spam!", + "{name} below version {version} is installed, for stability and performance reasons it is recommended to update to a newer {name} version." : "{name} est installée sous la version {version}. Pour des raisons de stabilité et de performances, il est recommandé de mettre à jour {name} vers une version plus récente.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom n'est pas lisible par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", + "Copy URL" : "Copier l'adresse URL", + "Enable" : "Activer", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} a partagé via un lien", + "{sharee} (group)" : "{sharee} (groupe)", + "{sharee} (remote)" : "{sharee} (distant)", + "{sharee} (email)" : "{sharee} (email)", + "{sharee} (conversation)" : "{sharee} (discussion)", + "The specified document has not been found on the server." : "Impossible de trouver le document spécifié sur le serveur.", + "You can click here to return to %s." : "Vous pouvez cliquer ici pour retourner à %s.", + "SQLite will be used as database." : "SQLite sera utilisé comme gestionnaire de base de données.", + "For larger installations we recommend to choose a different database backend." : "Pour des installations plus volumineuses, nous vous conseillons d'utiliser un autre gestionnaire de base de données.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "En particulier si vous utilisez le client de bureau pour synchroniser vos données, l'utilisation de SQLite est déconseillée.", + "Wrong password." : "Mot de passe incorrect.", + "Please log in before granting %s access to your %s account." : "Veuillez vous connecter avant d'autoriser %s à accéder à votre compte %s.", + "You are about to grant %s access to your %s account." : "Vous êtes sur le point d'accorder à \"%s\" l'accès à votre compte \"%s\".", + "Redirecting …" : "Redirection en cours...", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "La sécurité renforcée est activée pour votre compte. Veuillez vous authentifier en utilisant un second facteur.", + "Further information how to configure this can be found in the %sdocumentation%s." : "Vous trouverez d'autres informations sur la configuration dans la %sdocumentation %s.", + "%s will be updated to version %s" : "%s sera mis à jour vers la version %s", + "This page will refresh itself when the %s instance is available again." : "Cette page se rafraîchira d'elle-même lorsque l'instance %s sera à nouveau disponible.", + "Thank you for your patience." : "Merci de votre patience." +}, +"nplurals=2; plural=(n > 1);"); diff --git a/core/l10n/fr.json b/core/l10n/fr.json index 94afcdeba3b82..9f26f7e54d183 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -1,421 +1,434 @@ -{ "translations": { - "Please select a file." : "Veuillez sélectionner un fichier.", - "File is too big" : "Le fichier est trop volumineux", - "The selected file is not an image." : "Le fichier sélectionné n'est pas une image.", - "The selected file cannot be read." : "Le fichier sélectionné ne peut pas être lu.", - "Invalid file provided" : "Fichier non valide", - "No image or file provided" : "Pas d'image ou fichier fourni", - "Unknown filetype" : "Type de fichier inconnu", - "Invalid image" : "Image non valable", - "An error occurred. Please contact your admin." : "Une erreur est survenue. Veuillez contacter votre administrateur.", - "No temporary profile picture available, try again" : "Aucune image de profil temporaire disponible, essayez à nouveau", - "No crop data provided" : "Aucune donnée de recadrage fournie", - "No valid crop data provided" : "Aucune donnée valide de recadrage fournie", - "Crop is not square" : "Le recadrage n'est pas carré", - "State token does not match" : "Les jetons de statut ne correspondent pas", - "Could not complete login" : "Impossible de terminer la connexion", - "Your login token is invalid or has expired" : "Votre jeton de connexion est invalide ou expiré", - "Password reset is disabled" : "La réinitialisation du mot de passe est désactivée", - "Couldn't reset password because the token is invalid" : "Impossible de réinitialiser le mot de passe car le jeton n'est pas valable", - "Couldn't reset password because the token is expired" : "Impossible de réinitialiser le mot de passe car le jeton a expiré", - "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation car il n'y a aucune adresse de courriel pour cet utilisateur. Veuillez contacter votre administrateur.", - "%s password reset" : "Réinitialisation de votre mot de passe %s", - "Password reset" : "Réinitialiser le mot de passe", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Cliquez sur le bouton suivant pour réinitialiser votre mot de passe. Si vous n'avez pas demandé cette réinitialisation de mot de passe, vous pouvez ignorer ce courriel.", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Cliquer sur le lien suivant pour réinitialiser votre mot de passe. Si vous n'avez pas demandé cette réinitialisation de mot de passe, alors ignorez ce courriel.", - "Reset your password" : "Réinitialiser votre mot de passe", - "Couldn't send reset email. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez contacter votre administrateur.", - "Couldn't send reset email. Please make sure your username is correct." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez vérifier que votre nom d'utilisateur est correct.", - "Some of your link shares have been removed" : "Certains de vos liens partagés ont été supprimés.", - "Due to a security bug we had to remove some of your link shares. Please see the link for more information." : "En raison d'une faille de sécurité, nous avons supprimé certains de vos liens partagés. Consultez le lien ci-dessus pour plus d'information.", - "Preparing update" : "Préparation de la mise à jour", - "[%d / %d]: %s" : "[%d / %d] : %s", - "Repair step:" : "Étape de réparation :", - "Repair info:" : "Informations de réparation :", - "Repair warning:" : "Avertissement de réparation :", - "Repair error:" : "Erreur de réparation :", - "Please use the command line updater because automatic updating is disabled in the config.php." : "Veuillez utiliser la mise à jour en ligne de commande, la mise à jour automatique est désactivée dans config.php.", - "[%d / %d]: Checking table %s" : "[%d / %d] : Vérification de la table %s", - "Turned on maintenance mode" : "Mode de maintenance activé", - "Turned off maintenance mode" : "Mode de maintenance désactivé", - "Maintenance mode is kept active" : "Le mode de maintenance est laissé actif", - "Updating database schema" : "Mise à jour du schéma de la base de données", - "Updated database" : "Base de données mise à jour", - "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Vérification de la possibilité de mettre à jour le schéma de la base de données (cela peut prendre un certain temps selon la taille de la base de données)", - "Checked database schema update" : "Mise à jour du schéma de la base de données vérifiée", - "Checking updates of apps" : "Recherche de mises à jour d'applications", - "Checking for update of app \"%s\" in appstore" : "Vérification de la présence d'une mise à jour pour l'application \"%s\" dans l'appstore", - "Update app \"%s\" from appstore" : "Mise à jour de l'application \"%s\" depuis l'appstore", - "Checked for update of app \"%s\" in appstore" : "Présence de mise à jour vérifiée pour l'application \"%s\" dans l'appstore", - "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Vérification de la possibilité de mettre à jour le schéma de la base de données pour %s (cela peut prendre un certain temps selon la taille de la base de données)", - "Checked database schema update for apps" : "Mise à jour du schéma de la base de données pour les applications vérifiée", - "Updated \"%1$s\" to %2$s" : "Mise à jour de \"%1$s\" vers %2$s", - "Set log level to debug" : "Réglage du niveau de journalisation à \"déboguage\"", - "Reset log level" : "Réinitialisation du niveau de journalisation", - "Starting code integrity check" : "Lancement de la vérification d'intégrité du code", - "Finished code integrity check" : "Fin de la vérification d’intégrité du code", - "%s (incompatible)" : "%s (incompatible)", - "Following apps have been disabled: %s" : "Les applications suivantes ont été désactivées : %s", - "Already up to date" : "Déjà à jour", - ": " : " : ", - "Dismiss" : "Ignorer", - "Connection to server lost" : "Connexion au serveur perdu", - "No" : "Non", - "Yes" : "Oui", - "No files in here" : "Aucun fichier", - "New folder" : "Nouveau dossier", - "No more subfolders in here" : "Plus aucun sous-dossier ici", - "Name" : "Nom", - "Size" : "Taille", - "Modified" : "Modifié", - "{newName} already exists" : "{newName} existe déjà", - "Choose" : "Choisir", - "Copy" : "Copier", - "Move" : "Déplacer", - "Error loading file picker template: {error}" : "Erreur lors du chargement du modèle du sélecteur de fichiers : {error}", - "OK" : "OK", - "Error loading message template: {error}" : "Erreur lors du chargement du modèle de message : {error}", - "read-only" : "Lecture seule", - "_{count} file conflict_::_{count} file conflicts_" : ["{count} fichier en conflit","{count} fichiers en conflit"], - "One file conflict" : "Un conflit de fichier", - "New Files" : "Nouveaux fichiers", - "Already existing files" : "Fichiers déjà existants", - "Which files do you want to keep?" : "Quels fichiers désirez-vous conserver ?", - "If you select both versions, the copied file will have a number added to its name." : "Si vous sélectionnez les deux versions, un nombre sera ajouté au nom du fichier copié.", - "Cancel" : "Annuler", - "Continue" : "Continuer", - "(all selected)" : "(tous sélectionnés)", - "({count} selected)" : "({count} sélectionné(s))", - "Error loading file exists template" : "Erreur lors du chargement du modèle de fichier existant", - "Pending" : "En attente", - "Copy to {folder}" : "Copier vers {folder}", - "Move to {folder}" : "Déplacer vers {folder}", - "Saving..." : "Enregistrement…", - "seconds ago" : "Il y a quelques secondes", - "Settings" : "Paramètres", - "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problème de chargement de la page, actualisation dans %n seconde","Problème de chargement de la page, actualisation dans %n secondes"], - "Authentication required" : "Authentification requise", - "This action requires you to confirm your password" : "Cette action nécessite que vous confirmiez votre mot de passe", - "Confirm" : "Confirmer", - "Password" : "Mot de passe", - "Failed to authenticate, try again" : "Échec d'authentification, essayez à nouveau", - "Could not load your contacts" : "Impossible de charger vos contacts", - "Search contacts …" : "Rechercher un contact...", - "No contacts found" : "Aucun contact trouvé", - "Show all contacts …" : "Montrer tous les contacts...", - "Loading your contacts …" : "Chargement de vos contacts...", - "Looking for {term} …" : "Recherche de {term} ...", - "We have send a password reset e-mail to the e-mail address known to us for this account. If you do not receive it within a reasonable amount of time, check your spam/junk folders.
If it is not there ask your local administrator." : "Nous avons envoyé un e-mail de réinitialisation de mot de passe à l'adresse e-mail que nous connaissons pour ce compte. Si vous ne le recevez pas dans un délai raisonnable, vérifiez vos dossiers de courrier indésirable/pourriel/spam.
S'il n'est pas présent, demandez à votre administrateur local.", - "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Vos fichiers sont chiffrés. Il n'y aura aucun moyen de récupérer vos données une fois le mot de passe réinitialisé.
Si vous n'êtes pas sûr de ce que vous faites, veuillez contacter votre administrateur avant de continuer.
Voulez-vous vraiment continuer ?", - "I know what I'm doing" : "Je sais ce que je fais", - "Password can not be changed. Please contact your administrator." : "Le mot de passe ne peut être modifié. Veuillez contacter votre administrateur.", - "Reset password" : "Réinitialiser le mot de passe", - "Sending email …" : "Envoi du mail en cours...", - "Logging in …" : "Connexion…", - "New in" : "Nouveau dans", - "View changelog" : "Voir le journal des modifications", - "No action available" : "Aucune action disponible", - "Error fetching contact actions" : "Erreur lors de la recherche d'actions de contact", - "Error" : "Erreur", - "Error while sharing" : "Erreur lors de la mise en partage", - "Error removing share" : "Erreur lors de l'arrêt du partage", - "Shared with you and the group {group} by {owner}" : "Partagé avec vous et le groupe {group} par {owner}", - "Shared with you and {circle} by {owner}" : "Partagé avec vous et {circle} par {owner}", - "Shared with you and the conversation {conversation} by {owner}" : "Partagé avec vous et la conversation {conversation} par {owner}", - "Shared with you in a conversation by {owner}" : "Partagé avec vous dans une conversation par {owner}", - "Shared with you by {owner}" : "Partagé avec vous par {owner}", - "Choose a password for the public link" : "Choisissez un mot de passe pour le lien public", - "Choose a password for the public link or press the \"Enter\" key" : "Choisissez un mot de passe pour le lien public ou appuyer sur \"Entrée\"", - "Copied!" : "Copié !", - "Copy link" : "Copier le lien", - "Not supported!" : "Non supporté!", - "Press ⌘-C to copy." : "Appuyez sur ⌘-C pour copier.", - "Press Ctrl-C to copy." : "Appuyez sur Ctrl-C pour copier.", - "Unable to create a link share" : "Impossible de créer un lien de partage", - "Unable to toggle this option" : "Impossible de basculer cette option", - "Resharing is not allowed" : "Le repartage n'est pas autorisé", - "Link" : "Lien", - "Hide download" : "Masquer le téléchargement", - "Password protection enforced" : "Protection par mot de passe forcée", - "Password protect" : "Protéger par un mot de passe", - "Allow editing" : "Permettre la modification", - "Email link to person" : "Envoyer le lien par courriel", - "Send" : "Envoyer", - "Allow upload and editing" : "Autoriser l'envoi et l'édition", - "Read only" : "Lecture seule", - "File drop (upload only)" : "Dépôt de fichier (téléversement uniquement)", - "Expiration date enforced" : "Date d'expiration forcée", - "Set expiration date" : "Spécifier une date d'expiration", - "Expiration" : "Expiration", - "Expiration date" : "Date d'expiration", - "Note to recipient" : "Note au destinataire", - "Unshare" : "Ne plus partager", - "Delete share link" : "Supprimer le lien de partage", - "Add another link" : "Ajouter un autre lien", - "Password protection for links is mandatory" : "Il est obligatoire de protéger les liens par mot de passe", - "Share to {name}" : "Partager avec {name}", - "Share link" : "Partager un lien", - "New share link" : "Nouveau lien de partage", - "Created on {time}" : "Créé le {time}", - "Password protect by Talk" : "Mot de passe protégé par Talk", - "Could not unshare" : "Impossible d'arrêter de partager", - "Choose a password for the mail share" : "Choisissez un mot de passe pour le partage par email", - "group" : "groupe", - "remote" : "distant", - "remote group" : "groupe distant", - "email" : "Adresse de courriel", - "conversation" : "conversation", - "shared by {sharer}" : "partagé par {sharer}", - "Can reshare" : "Peut repartager", - "Can edit" : "Peut éditer", - "Can create" : "Peut créer", - "Can change" : "Peut modifier", - "Can delete" : "Peut supprimer", - "Access control" : "Contrôle d'accès", - "{shareInitiatorDisplayName} shared via link" : "{shareInitiatorDisplayName} a partagé via un lien", - "Share details could not be loaded for this item." : "Les informations de partage n'ont pu être chargées pour cet élément.", - "Search globally" : "Rechercher partout", - "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Au moins {count} caractère est nécessaire pour l'autocomplétion","Au moins {count} caractères sont nécessaires pour l'autocomplétion"], - "This list is maybe truncated - please refine your search term to see more results." : "Des résultats peuvent avoir été omis. Affinez votre recherche pour en voir plus.", - "No users or groups found for {search}" : "Pas d'utilisateur ou de groupe trouvé pour {search}", - "No users found for {search}" : "Aucun utilisateur trouvé pour {search}", - "An error occurred (\"{message}\"). Please try again" : "Une erreur est survenue (\"{message}\"). Veuillez réessayer", - "An error occurred. Please try again" : "Une erreur est survenue. Merci de réessayer", - "Home" : "Accueil", - "Work" : "Travail", - "Other" : "Divers", - "{sharee} (remote group)" : "{sharee} (groupe distant)", - "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", - "Share" : "Partager", - "Name or email address..." : "Nom ou adresse mail...", - "Name or federated cloud ID..." : "Nom ou ID du cloud fédéré...", - "Name, federated cloud ID or email address..." : "Nom, ID du cloud fédéré ou adresse mail...", - "Name..." : "Nom...", - "Shared" : "Partagé", - "Shared with" : "Partagé avec", - "Shared by" : "Partagé par", - "Non-existing tag #{tag}" : "Étiquette #{tag} inexistante", - "restricted" : "Restreint", - "invisible" : "invisible", - "({scope})" : "({scope})", - "Delete" : "Supprimer", - "Rename" : "Renommer", - "Collaborative tags" : "Étiquettes collaboratives ", - "No tags found" : "Aucune étiquette n'a été trouvée", - "Very weak password" : "Mot de passe très faible", - "Weak password" : "Mot de passe faible", - "So-so password" : "Mot de passe tout juste acceptable", - "Good password" : "Mot de passe de sécurité suffisante", - "Strong password" : "Mot de passe fort", - "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas encore correctement configuré pour la synchronisation de fichiers parce que l'interface WebDAV semble ne pas fonctionner.", - "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "La configuration du serveur web ne permet pas d'atteindre \"{url}\". Vous trouverez plus d'informations dans la documentation.", - "Your web server is not properly set up to resolve \"{url}\". This is most likely related to a web server configuration that was not updated to deliver this folder directly. Please compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx at it's documentation page. On Nginx those are typically the lines starting with \"location ~\" that need an update." : "Votre serveur web n'est pas proprement configuré pour résoudre \"{url}\". Ceci est probablement lié à une configuration du serveur web qui n'a pas été mise à jour pour délivrer directement ce dossier. Veuillez comparer votre configuration avec les règles ré-écrites dans \".htaccess\" pour Apache ou celles contenues dans la documentation de Nginx. Pour Nginx les lignes nécessitant une mise à jour sont typiquement celles débutant par \"location ~\".", - "Your web server is not properly set up to deliver .woff2 files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustement to also deliver .woff2 files. Compare your Nginx configuration to the recommended configuration in our documentation." : "Votre serveur web n'est pas correctement configuré pour distribuer des fichiers .woff2. C'est une erreur fréquente de configuration Nginx. Pour Nextcloud 15, il est nécessaire de la régler pour les fichiers .woff2.\nComparer votre configuration Nginx avec la configuration recommandée dans notre documentation.", - "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP ne semble pas être configuré de manière à récupérer les valeurs des variables d’environnement. Le test de la commande getenv(\"PATH\") retourne seulement une réponse vide. ", - "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Veuillez consulter la documentation d'installation ↗pour savoir comment configurer PHP sur votre serveur, en particulier en cas d'utilisation de php-fpm.", - "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuration est en mode lecture seule. Ceci empêche la modification de certaines configurations via l'interface web. De plus, le fichier doit être passé manuellement en lecture-écriture avant chaque mise à jour.", - "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Votre base de données ne fonctionne pas avec le niveau d'isolation de transaction \"READ COMMITED\". Ceci peut causer des problèmes quand plusieurs actions sont exécutées en parallèle.", - "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Le module PHP 'fileinfo' est manquant. Il est vivement recommandé de l'activer afin d'obtenir les meilleurs résultats de détection du type MIME.", - "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems. See the documentation ↗ for more information." : "Le verrouillage transactionnel de fichiers est désactivé. Cela peut causer des conflits en cas d'accès concurrent. Configurez 'filelocking.enabled' dans config.php pour éviter ces problèmes. Consultez la documentation ↗ pour plus d'informations.", - "If your installation is not installed at the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (suggestion: \"{suggestedOverwriteCliURL}\")" : "Si votre installation n'a pas été effectuée à la racine du domaine et qu'elle utilise le Cron du système, il peut y avoir des problèmes avec la génération d'URL. Pour les éviter, veuillez configurer l'option \"overwrite.cli.url\" dans votre fichier config.php avec le chemin de la racine de votre installation (suggestion : \"{suggestedOverwriteCliURL}\")", - "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "La tâche cron n'a pu s'exécuter via CLI. Ces erreurs techniques sont apparues :", - "Last background job execution ran {relativeTime}. Something seems wrong." : "Dernière tâche de fond a fonctionné il y a {relativeTime}. Quelque chose s'est mal passé.", - "Check the background job settings" : "Vérifier les paramètres des tâches de fond", - "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Ce serveur ne peut se connecter à Internet : plusieurs point finaux ne peuvent être atteints. 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 l'envoi de notifications par mail peuvent aussi être indisponibles. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.", - "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Aucun cache mémoire n'est configuré. Si possible, configurez un \"memcache\" pour améliorer les performances. Pour plus d'informations consultez la documentation.", - "No suitable source for randomness found by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "Aucune source appropriée pour les aléas trouvée par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", - "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Vous utilisez actuellement PHP {version}. Mettez à jour votre version de PHP afin de tirer avantage des améliorations liées à la performance et la sécurité fournies par le PHP Group dès que votre distribution le supportera.", - "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Vous utiliser actuellement PHP 5.6. La version majeure actuelle de Nextcloud est la dernière qui est supportée sous PHP 5.6. Il est recommandé de mettre à niveau PHP vers la version 7.0+ pour pouvoir passer à Nextcloud 14.", - "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuration des entêtes du proxy inverse est incorrecte, ou vous accédez à Nextcloud depuis un proxy de confiance. Si vous n'êtes pas en train d’accéder à Nextcloud depuis un proxy de confiance, il y a un problème de sécurité qui peut permettre à un attaquant d'usurper l'adresse IP affichée à Nextcloud. Vous trouverez plus d'informations dans notre documentation.", - "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the memcached wiki about both modules." : "\"memcached\" est configuré comme cache distribué, mais le mauvais module PHP \"memcache\" est installé. \\OC\\Memcache\\Memcached ne prend en charge que \"memcached\" et non \"memcache\". Consulter le wiki de memcached à propos de ces deux modules.", - "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Des fichiers n'ont pas passé la vérification d’intégrité. Vous trouverez plus d'information sur comment résoudre ce problème dans notre documentation. (Liste des fichiers invalides… / Rescanner…)", - "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "Le module PHP OPcache n'est pas disponible. Pour de meilleures performances, il est recommandé de l'activer dans votre installation de PHP.", - "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "Le PHP OPcache n'est pas correctement configuré. Pour de meilleure performance nous recommandons d'utiliser les paramètres suivant dans le php.ini :", - "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La fonction PHP \"set_time_limit\" n'est pas disponible. Cela pourrait entraîner l'arrêt des scripts à mi-exécution en bloquant votre installation. Nous vous recommandons vivement d'activer cette fonction.", - "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Votre PHP ne prend pas en charge FreeType, provoquant la casse des images de profil et de l'interface des paramètres.", - "Missing index \"{indexName}\" in table \"{tableName}\"." : "Index \"{indexName}\" manquant dans la table \"{tableName}\".", - "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "La base de données a quelques index manquant. L'ajout d'index dans de grandes tables peut prendre un certain temps. Elles ne sont donc pas ajoutées automatiquement. En exécutant \"occ db:add-missing-indices\", ces index manquants pourront être ajoutés manuellement pendant que l'instance continue de tourner. Une fois les index ajoutés, les requêtes sur ces tables sont généralement beaucoup plus rapides.", - "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Cette instance ne dispose pas de plusieurs modules PHP recommandés. Il est recommandé de les installer pour améliorer les performances, et la compatibilité.", - "Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running 'occ db:convert-filecache-bigint' those pending changes could be applied manually. This operation needs to be made while the instance is offline. For further details read the documentation page about this." : "Certaines colonnes de la base de données n'ont pas été converties en big int. Changer le type de colonne dans de grandes tables peu prendre beaucoup de temps, elles n'ont donc pas été converties automatiquement. En exécutant 'occ db:convert-filecache-bigint' ces changements en suspens peuvent être déclenchés manuellement. Cette opération doit être exécutée pendant que l'instance est hors ligne. Pour plus d'information, consulter la page de la documentation.", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite est actuellement utilisé comme système de gestion de base de données. Pour des installations plus volumineuses, nous vous recommandons de migrer vers un autre système de gestion de base de données.", - "This is particularly recommended when using the desktop client for file synchronisation." : "C'est particulièrement recommandé lorsque l'on utilise un client bureau pour la synchronisation des fichiers.", - "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Pour migrer vers un autre type de base de données, utilisez la ligne de commande : 'occ db:convert-type' ou consultez la documentation ↗.", - "Use of the the built in php mailer is no longer supported. Please update your email server settings ↗." : "L'utilisation de la fonctionnalité d'envoi d'e-mails native de PHP n'est plus supportée. Merci de mettre à jour les paramètres d'envoi d'e-mails de votre serveur ↗ ", - "The PHP memory limit is below the recommended value of 512MB." : "La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo.", - "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Certains répertoires d'applications appartiennent à un utilisateur différent de celui du serveur web. Cela peut être le cas si les applications ont été installées manuellement. Vérifiez les permissions des répertoires d'applications suivants :", - "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read the documentation page about this." : "MySQL est utilisée comme base de données mais ne supporte pas les caractères codés sur 4 octets. Pour pouvoir manipuler les caractères sur 4 octets (comme les émoticônes) sans problème dans les noms de fichiers ou les commentaires par exemple, il est recommandé d'activer le support 4 octets dans MySQL. Pour plus de détails, lisez la page de documentation à ce sujet", - "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Cette instance utilise un stockage primaire basé sur un objet de stockage issu de S3. \nLes fichiers téléversés sont temporairement stockés sur le serveur et il est donc recommandé de disposer d'un espace libre de 50 GB dans le répertoire temporaire de PHP. Vérifiez les journaux pour plus de détails sur les chemins concernés et l'espace disponible. Pour améliorer la situation, vous pouvez augmenter l'espace disponible dans le dossier temporaire actuel ou changer l'emplacement du dossier temporaire en indiquant un nouveau chemin dans php.ini.", - "Error occurred while checking server setup" : "Une erreur s'est produite lors de la vérification de la configuration du serveur", - "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server 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 de le déplacer hors de la racine du serveur web.", - "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Ceci constitue un risque potentiel relatif à la sécurité et à la vie privée étant donné qu'il est recommandé d'ajuster ce paramètre.", - "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Certaines fonctionnalités peuvent ne pas fonctionner correctement étant donné qu'il est recommandé d'ajuster ce paramètre.", - "The \"{header}\" HTTP header doesn't contain \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" ne contient pas \"{expected}\". Ceci est un risque potentiel pour la sécurité ou la vie privée, et il est recommandé d'ajuster ce paramètre en conséquence.", - "The \"{header}\" HTTP header is not set to \"{val1}\", \"{val2}\", \"{val3}\", \"{val4}\" or \"{val5}\". This can leak referer information. See the W3C Recommendation ↗." : "L'en-tête HTTP \"{header}\" n'est pas défini sur \"{val1}\", \"{val2}\", \"{val3}\", \"{val4}\" ou \"{val5}\". Cela peut entraîner une fuite d'informations. Veuillez voir les recommandations du W3C ↗.", - "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips ↗." : "L'en-tête HTTP \"Strict-Transport-Security\" n'est pas configurée à au moins \"{seconds}\" secondes. Pour renforcer la sécurité, nous recommandons d'activer HSTS comme décrit dans nos conseils de sécurisation ↗.", - "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips ↗." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS, comme expliqué dans nos conseils de sécurisation ↗.", - "unknown text" : "texte inconnu", - "Hello world!" : "Hello world!", - "sunny" : "ensoleillé", - "Hello {name}, the weather is {weather}" : "Bonjour {name}, le temps est {weather}", - "Hello {name}" : "Bonjour {name}", - "These are your search results" : "Voici les résultats de votre recherche", - "new" : "nouveau ", - "_download %n file_::_download %n files_" : ["télécharger %n fichier","télécharger %n fichiers"], - "The update is in progress, leaving this page might interrupt the process in some environments." : "La mise à jour est en cours, quitter la page peut interrompre le processus dans de nombreux environnements.", - "Update to {version}" : "Mise à jour vers {version}", - "An error occurred." : "Une erreur est survenue.", - "Please reload the page." : "Veuillez recharger la page.", - "The update was unsuccessful. For more information check our forum post covering this issue." : "La mise à jour a échoué. Pour plus d'informations consultez notre publication sur le forum à propos de ce problème.", - "The update was unsuccessful. Please report this issue to the Nextcloud community." : "La mise à jour a échoué. Veuillez reporter le problème à la communauté Nextcloud.", - "Continue to Nextcloud" : "Continuer sur Nextcloud", - "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["La mise à jour est terminée. Vous allez être redirigé vers Nextcloud dans %n seconde.","La mise à jour est terminée. Vous allez être redirigé vers Nextcloud dans %n secondes."], - "Searching other places" : "Recherche en cours dans d'autres emplacements", - "No search results in other folders for {tag}{filter}{endtag}" : "Aucun résultat dans d'autres dossiers n'a été trouvé pour  {tag}{filter}{endtag}", - "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} résultat dans un autre dossier","{count} résultats dans d'autres dossiers"], - "Personal" : "Personnel", - "Users" : "Utilisateurs", - "Apps" : "Applications", - "Admin" : "Administration", - "Help" : "Aide", - "Access forbidden" : "Accès interdit", - "File not found" : "Fichier non trouvé", - "The document could not be found on the server. Maybe the share was deleted or has expired?" : "Le document n'a pas pu être trouvé sur le serveur. Peut-être que le partage a été supprimé ou est expiré ?", - "Back to %s" : "Retour à %s", - "Internal Server Error" : "Erreur interne du serveur", - "The server was unable to complete your request." : "Le serveur est incapable d'exécuter votre requête.", - "If this happens again, please send the technical details below to the server administrator." : "Si cela se reproduit, veuillez envoyer les détails techniques ci-dessous à l'administrateur du serveur.", - "More details can be found in the server log." : "Le fichier journal du serveur peut fournir plus de renseignements.", - "Technical details" : "Renseignements techniques", - "Remote Address: %s" : "Adresse distante : %s", - "Request ID: %s" : "ID de la demande : %s", - "Type: %s" : "Type : %s", - "Code: %s" : "Code : %s", - "Message: %s" : "Message : %s", - "File: %s" : "Fichier : %s", - "Line: %s" : "Ligne : %s", - "Trace" : "Trace", - "Security warning" : "Avertissement de sécurité", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Votre répertoire de données est certainement accessible depuis internet car le fichier .htaccess ne fonctionne pas.", - "For information how to properly configure your server, please see the documentation." : "Pour les informations de configuration de votre serveur, veuillez lire la documentation.", - "Create an admin account" : "Créer un compte administrateur", - "Username" : "Nom d'utilisateur", - "Storage & database" : "Stockage & base de données", - "Data folder" : "Répertoire des données", - "Configure the database" : "Configurer la base de données", - "Only %s is available." : "Seul(e) %s est disponible.", - "Install and activate additional PHP modules to choose other database types." : "Installez et activez les modules PHP additionnels adéquats pour choisir d'autres types de base de données.", - "For more details check out the documentation." : "Consultez la documentation pour plus de détails.", - "Database user" : "Utilisateur de la base de données", - "Database password" : "Mot de passe de la base de données", - "Database name" : "Nom de la base de données", - "Database tablespace" : "Espace de stockage de la base de données", - "Database host" : "Hôte de la base de données", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Veuillez spécifier le numéro du port avec le nom de l'hôte (ex: localhost:5432).", - "Performance warning" : "Avertissement à propos des performances", - "You chose SQLite as database." : "Vous avez choisi SQLite comme base de données. ", - "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite ne devrait être utilisée que pour des instances minimales ou de développement. Pour une instance de production, nous recommandons une infrastructure de base de données différente. ", - "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Si vous utilisez des clients de synchronisation de fichiers, l'utilisation de SQLite est fortement découragée. ", - "Finish setup" : "Terminer l'installation", - "Finishing …" : "Finalisation …", - "Need help?" : "Besoin d'aide ?", - "See the documentation" : "Lire la documentation", - "It looks like you are trying to reinstall your Nextcloud. However the file CAN_INSTALL is missing from your config directory. Please create the file CAN_INSTALL in your config folder to continue." : "On dirait que vous essayez de réinstaller votre Nextcloud. Toutefois, le fichier CAN_INSTALL est absent de votre répertoire de configuration. Veuillez créer le fichier CAN_INSTALL dans votre dossier de configuration pour continuer.", - "Could not remove CAN_INSTALL from the config folder. Please remove this file manually." : "Impossible de supprimer CAN_INSTALL du dossier de configuration. Veuillez supprimer ce fichier manuellement.", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Cette application requiert JavaScript pour fonctionner correctement. Veuillez {linkstart}activer JavaScript{linkend} et recharger la page.", - "Get your own free account" : "Obtenez votre compte personnel gratuit", - "Skip to main content" : "Passer au contenu principal", - "Skip to navigation of app" : "Passer à la navigation d'application", - "More apps" : "Plus d'applications", - "More" : "Plus", - "More apps menu" : "Menu des autres applications", - "Search" : "Rechercher", - "Reset search" : "Réinitialiser la recherche", - "Contacts" : "Contacts", - "Contacts menu" : "Menu des contacts", - "Settings menu" : "Menu des paramètres  ", - "Confirm your password" : "Confirmer votre mot de passe", - "Server side authentication failed!" : "L'authentification sur le serveur a échoué !", - "Please contact your administrator." : "Veuillez contacter votre administrateur.", - "An internal error occurred." : "Une erreur interne est survenue.", - "Please try again or contact your administrator." : "Veuillez réessayer ou contactez votre administrateur.", - "Username or email" : "Utilisateur ou email", - "Log in" : "Se connecter", - "Wrong username or password." : "Utilisateur ou mot de passe incorrect.", - "User disabled" : "Utilisateur désactivé", - "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Nous avons détecté plusieurs tentatives de connexion invalides depuis votre adresse IP. C'est pourquoi votre prochaine connexion sera retardée de 30 secondes.", - "Forgot password?" : "Mot de passe oublié ?", - "Back to login" : "Retour à la page de connexion", - "Connect to your account" : "Connectez vous à votre compte", - "Please log in before granting %1$s access to your %2$s account." : "Veuillez vous connecter avant d'autoriser %1$s à accéder à votre compte %2$s.", - "App token" : "Jeton d'application", - "Grant access" : "Autoriser l'accès", - "Alternative log in using app token" : "Authentification alternative en utilisant un jeton d'application", - "Account access" : "Accès au compte", - "You are about to grant %1$s access to your %2$s account." : "Vous êtes sur le point d'accorder à \"%1$s\" l'accès à votre compte \"%2$s\".", - "Account connected" : "Compte connecté", - "Your client should now be connected! You can close this window." : "Votre client devrait maintenant être connecté ! Vous pouvez fermer cette fenêtre.", - "New password" : "Nouveau mot de passe", - "New Password" : "Nouveau mot de passe", - "This share is password-protected" : "Ce partage est protégé par mot de passe", - "The password is wrong. Try again." : "Le mot de passe est incorrect. Veuillez réessayer.", - "Two-factor authentication" : "Second facteur d'authentification", - "Enhanced security is enabled for your account. Choose a second factor for authentication:" : "La sécurité renforcée est activée pour votre compte. Choisissez un second facteur pour l'authentification :", - "Could not load at least one of your enabled two-factor auth methods. Please contact your admin." : "Impossible de charger au moins l'une de vos méthodes activées d'authentification à deux facteurs . Veuillez contacter votre administrateur.", - "Two-factor authentication is enforced but has not been configured on your account. Contact your admin for assistance." : "L'authentification en deux étapes a été imposée mais n'est pas configurée sur votre compte. Contactez votre administrateur pour avoir de l'aide.", - "Two-factor authentication is enforced but has not been configured on your account. Please continue to setup two-factor authentication." : "L'authentification à deux facteurs est appliquée mais n'a pas été configurée sur votre compte. Veuillez continuer à configurer l'authentification à deux facteurs.", - "Set up two-factor authentication" : "Paramétrer l'authentification à double facteur", - "Two-factor authentication is enforced but has not been configured on your account. Use one of your backup codes to log in or contact your admin for assistance." : "L'authentification en deux étapes a été imposée mais n'est pas configurée sur votre compte. Utilisez un de vos codes de secours pour vous connecter ou contactez votre administrateur pour avoir de l'aide.", - "Use backup code" : "Utiliser un code de récupération", - "Cancel log in" : "Annuler l'authentification", - "Setup two-factor authentication" : "Paramétrer l'authentification à double facteur", - "Enhanced security is enforced for your account. Choose wich provider to set up:" : "Une sécurité renforcée est appliquée à votre compte. Choisissez le fournisseur à configurer :", - "Error while validating your second factor" : "Erreur lors de la validation de votre second facteur", - "Access through untrusted domain" : "Accès à partir d'un domaine non approuvé", - "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Veuillez contacter votre administrateur. Si vous êtes un administrateur, éditez la variable \"trusted_domains\" dans le fichier config/config.php comme l'exemple dans le fichier config/config.sample.php.", - "Further information how to configure this can be found in the %1$sdocumentation%2$s." : "Vous trouverez d'autres informations sur la configuration dans la %1$sdocumentation %2$s.", - "App update required" : "Mise à jour de l'application nécessaire", - "%1$s will be updated to version %2$s" : "%1$s sera mis à jour vers la version %2$s", - "These apps will be updated:" : "Les applications suivantes seront mises à jour :", - "These incompatible apps will be disabled:" : "Ces applications incompatibles ont été désactivées :", - "The theme %s has been disabled." : "Le thème %s a été désactivé.", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Veuillez vous assurer qu'une copie de sauvegarde de la base de données, du dossier de configuration (config) et du dossier de données (data) a été réalisée avant de commencer.", - "Start update" : "Démarrer la mise à jour", - "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Afin d'éviter les timeouts avec les installations de volume conséquent, vous pouvez exécuter la commande suivante depuis le répertoire d'installation :", - "Detailed logs" : "Journaux détaillés", - "Update needed" : "Mise à jour nécessaire", - "Please use the command line updater because you have a big instance with more than 50 users." : "Veuillez utiliser la mise à jour en ligne de commande car votre instance est volumineuse avec plus de 50 utilisateurs.", - "For help, see the documentation." : "Pour obtenir de l'aide, lisez la documentation.", - "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Je sais que si je continue à faire la mise à jour via le navigateur web, il existe le risque que la requête se heurte à un délai d'expiration et peut causer une perte de données, mais j'ai une copie de sauvegarde et je sais comment restaurer mon instance en cas d'échec.", - "Upgrade via web on my own risk" : "Mettre à jour via le navigateur web à mes propres risques", - "Maintenance mode" : "Mode maintenance", - "This %s instance is currently in maintenance mode, which may take a while." : "Cette instance de %s est en cours de maintenance, cela peut prendre du temps.", - "This page will refresh itself when the instance is available again." : "Cette page se rafraîchira d'elle-même lorsque le serveur sera de nouveau disponible.", - "Contact your system administrator if this message persists or appeared unexpectedly." : "Veuillez contacter votre administrateur système si ce message persiste ou apparaît de façon inattendue.", - "Updated \"%s\" to %s" : "Mise à jour de « %s » vers %s", - "There were problems with the code integrity check. More information…" : "Il y a eu des problèmes à la vérification de l’intégrité du code. Plus d'infos...", - "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.
If it is not there ask your local administrator." : "Un lien permettant de réinitialiser votre mot de passe vient de vous être envoyé par courriel.
Si vous ne le recevez pas dans un délai raisonnable, contactez votre administrateur.
N'oubliez pas de vérifier dans votre dossier pourriel / spam!", - "{name} below version {version} is installed, for stability and performance reasons it is recommended to update to a newer {name} version." : "{name} est installée sous la version {version}. Pour des raisons de stabilité et de performances, il est recommandé de mettre à jour {name} vers une version plus récente.", - "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom n'est pas lisible par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", - "Copy URL" : "Copier l'adresse URL", - "Enable" : "Activer", - "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} a partagé via un lien", - "{sharee} (group)" : "{sharee} (groupe)", - "{sharee} (remote)" : "{sharee} (distant)", - "{sharee} (email)" : "{sharee} (email)", - "{sharee} (conversation)" : "{sharee} (discussion)", - "The specified document has not been found on the server." : "Impossible de trouver le document spécifié sur le serveur.", - "You can click here to return to %s." : "Vous pouvez cliquer ici pour retourner à %s.", - "SQLite will be used as database." : "SQLite sera utilisé comme gestionnaire de base de données.", - "For larger installations we recommend to choose a different database backend." : "Pour des installations plus volumineuses, nous vous conseillons d'utiliser un autre gestionnaire de base de données.", - "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "En particulier si vous utilisez le client de bureau pour synchroniser vos données, l'utilisation de SQLite est déconseillée.", - "Wrong password." : "Mot de passe incorrect.", - "Please log in before granting %s access to your %s account." : "Veuillez vous connecter avant d'autoriser %s à accéder à votre compte %s.", - "You are about to grant %s access to your %s account." : "Vous êtes sur le point d'accorder à \"%s\" l'accès à votre compte \"%s\".", - "Redirecting …" : "Redirection en cours...", - "Enhanced security is enabled for your account. Please authenticate using a second factor." : "La sécurité renforcée est activée pour votre compte. Veuillez vous authentifier en utilisant un second facteur.", - "Further information how to configure this can be found in the %sdocumentation%s." : "Vous trouverez d'autres informations sur la configuration dans la %sdocumentation %s.", - "%s will be updated to version %s" : "%s sera mis à jour vers la version %s", - "This page will refresh itself when the %s instance is available again." : "Cette page se rafraîchira d'elle-même lorsque l'instance %s sera à nouveau disponible.", - "Thank you for your patience." : "Merci de votre patience." -},"pluralForm" :"nplurals=2; plural=(n > 1);" +{ "translations": { + "Please select a file." : "Veuillez sélectionner un fichier.", + "File is too big" : "Le fichier est trop volumineux", + "The selected file is not an image." : "Le fichier sélectionné n'est pas une image.", + "The selected file cannot be read." : "Le fichier sélectionné ne peut pas être lu.", + "Invalid file provided" : "Fichier non valide", + "No image or file provided" : "Pas d'image ou fichier fourni", + "Unknown filetype" : "Type de fichier inconnu", + "Invalid image" : "Image non valable", + "An error occurred. Please contact your admin." : "Une erreur est survenue. Veuillez contacter votre administrateur.", + "No temporary profile picture available, try again" : "Aucune image de profil temporaire disponible, essayez à nouveau", + "No crop data provided" : "Aucune donnée de recadrage fournie", + "No valid crop data provided" : "Aucune donnée valide de recadrage fournie", + "Crop is not square" : "Le recadrage n'est pas carré", + "State token does not match" : "Les jetons de statut ne correspondent pas", + "Could not complete login" : "Impossible de terminer la connexion", + "Your login token is invalid or has expired" : "Votre jeton de connexion est invalide ou expiré", + "Password reset is disabled" : "La réinitialisation du mot de passe est désactivée", + "Couldn't reset password because the token is invalid" : "Impossible de réinitialiser le mot de passe car le jeton n'est pas valable", + "Couldn't reset password because the token is expired" : "Impossible de réinitialiser le mot de passe car le jeton a expiré", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation car il n'y a aucune adresse de courriel pour cet utilisateur. Veuillez contacter votre administrateur.", + "Could not send reset email because there is no email address for this username. Please contact %s." : "Impossible d'envoyer le courriel de réinitialisation car il n'y a aucune adresse de courriel pour cet utilisateur. Veuillez contacter %s.", + "%s password reset" : "Réinitialisation de votre mot de passe %s", + "Password reset" : "Réinitialiser le mot de passe", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Cliquez sur le bouton suivant pour réinitialiser votre mot de passe. Si vous n'avez pas demandé cette réinitialisation de mot de passe, vous pouvez ignorer ce courriel.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Cliquer sur le lien suivant pour réinitialiser votre mot de passe. Si vous n'avez pas demandé cette réinitialisation de mot de passe, alors ignorez ce courriel.", + "Reset your password" : "Réinitialiser votre mot de passe", + "%s activate and choose a password" : "Activer et choisir votre mot de passe %s", + "Activate and choose a password" : "Activer et choisir un mot de passe", + "Click the following button to activate and choose a new password. If you have not requested the new password, then ignore this email." : "Cliquez sur le bouton suivant pour activer et choisir votre nouveau mot de passe. Si vous n'avez pas demandé cette activation, vous pouvez ignorer ce courriel.", + "Click the following link to activate and choose a new password. If you have not requested the new password, then ignore this email." : "Cliquer sur le lien suivant pour activer et choisir votre nouveau mot de passe. Si vous n'avez pas demandé cette activation, alors ignorez ce courriel.", + "Activate and choose your new password" : "Activer et choisir votre nouveau mot de passe", + "Couldn't send reset email. Please contact your administrator." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez contacter votre administrateur.", + "Couldn't send reset email. Please make sure your username is correct." : "Impossible d'envoyer le courriel de réinitialisation. Veuillez vérifier que votre nom d'utilisateur est correct.", + "Some of your link shares have been removed" : "Certains de vos liens partagés ont été supprimés.", + "Due to a security bug we had to remove some of your link shares. Please see the link for more information." : "En raison d'une faille de sécurité, nous avons supprimé certains de vos liens partagés. Consultez le lien ci-dessus pour plus d'information.", + "Preparing update" : "Préparation de la mise à jour", + "[%d / %d]: %s" : "[%d / %d] : %s", + "Repair step:" : "Étape de réparation :", + "Repair info:" : "Informations de réparation :", + "Repair warning:" : "Avertissement de réparation :", + "Repair error:" : "Erreur de réparation :", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Veuillez utiliser la mise à jour en ligne de commande, la mise à jour automatique est désactivée dans config.php.", + "[%d / %d]: Checking table %s" : "[%d / %d] : Vérification de la table %s", + "Turned on maintenance mode" : "Mode de maintenance activé", + "Turned off maintenance mode" : "Mode de maintenance désactivé", + "Maintenance mode is kept active" : "Le mode de maintenance est laissé actif", + "Updating database schema" : "Mise à jour du schéma de la base de données", + "Updated database" : "Base de données mise à jour", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Vérification de la possibilité de mettre à jour le schéma de la base de données (cela peut prendre un certain temps selon la taille de la base de données)", + "Checked database schema update" : "Mise à jour du schéma de la base de données vérifiée", + "Checking updates of apps" : "Recherche de mises à jour d'applications", + "Checking for update of app \"%s\" in appstore" : "Vérification de la présence d'une mise à jour pour l'application \"%s\" dans l'appstore", + "Update app \"%s\" from appstore" : "Mise à jour de l'application \"%s\" depuis l'appstore", + "Checked for update of app \"%s\" in appstore" : "Présence de mise à jour vérifiée pour l'application \"%s\" dans l'appstore", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Vérification de la possibilité de mettre à jour le schéma de la base de données pour %s (cela peut prendre un certain temps selon la taille de la base de données)", + "Checked database schema update for apps" : "Mise à jour du schéma de la base de données pour les applications vérifiée", + "Updated \"%1$s\" to %2$s" : "Mise à jour de \"%1$s\" vers %2$s", + "Set log level to debug" : "Réglage du niveau de journalisation à \"déboguage\"", + "Reset log level" : "Réinitialisation du niveau de journalisation", + "Starting code integrity check" : "Lancement de la vérification d'intégrité du code", + "Finished code integrity check" : "Fin de la vérification d’intégrité du code", + "%s (incompatible)" : "%s (incompatible)", + "Following apps have been disabled: %s" : "Les applications suivantes ont été désactivées : %s", + "Already up to date" : "Déjà à jour", + ": " : " : ", + "Dismiss" : "Ignorer", + "Connection to server lost" : "Connexion au serveur perdu", + "No" : "Non", + "Yes" : "Oui", + "No files in here" : "Aucun fichier", + "New folder" : "Nouveau dossier", + "No more subfolders in here" : "Plus aucun sous-dossier ici", + "Name" : "Nom", + "Size" : "Taille", + "Modified" : "Modifié", + "{newName} already exists" : "{newName} existe déjà", + "Choose" : "Choisir", + "Copy" : "Copier", + "Move" : "Déplacer", + "Error loading file picker template: {error}" : "Erreur lors du chargement du modèle du sélecteur de fichiers : {error}", + "OK" : "OK", + "Error loading message template: {error}" : "Erreur lors du chargement du modèle de message : {error}", + "read-only" : "Lecture seule", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} fichier en conflit","{count} fichiers en conflit"], + "One file conflict" : "Un conflit de fichier", + "New Files" : "Nouveaux fichiers", + "Already existing files" : "Fichiers déjà existants", + "Which files do you want to keep?" : "Quels fichiers désirez-vous conserver ?", + "If you select both versions, the copied file will have a number added to its name." : "Si vous sélectionnez les deux versions, un nombre sera ajouté au nom du fichier copié.", + "Cancel" : "Annuler", + "Continue" : "Continuer", + "(all selected)" : "(tous sélectionnés)", + "({count} selected)" : "({count} sélectionné(s))", + "Error loading file exists template" : "Erreur lors du chargement du modèle de fichier existant", + "Pending" : "En attente", + "Copy to {folder}" : "Copier vers {folder}", + "Move to {folder}" : "Déplacer vers {folder}", + "Saving..." : "Enregistrement…", + "seconds ago" : "Il y a quelques secondes", + "Settings" : "Paramètres", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problème de chargement de la page, actualisation dans %n seconde","Problème de chargement de la page, actualisation dans %n secondes"], + "Authentication required" : "Authentification requise", + "This action requires you to confirm your password" : "Cette action nécessite que vous confirmiez votre mot de passe", + "Confirm" : "Confirmer", + "Password" : "Mot de passe", + "Failed to authenticate, try again" : "Échec d'authentification, essayez à nouveau", + "Could not load your contacts" : "Impossible de charger vos contacts", + "Search contacts …" : "Rechercher un contact...", + "No contacts found" : "Aucun contact trouvé", + "Show all contacts …" : "Montrer tous les contacts...", + "Loading your contacts …" : "Chargement de vos contacts...", + "Looking for {term} …" : "Recherche de {term} ...", + "We have send a password reset e-mail to the e-mail address known to us for this account. If you do not receive it within a reasonable amount of time, check your spam/junk folders.
If it is not there ask your local administrator." : "Nous avons envoyé un e-mail de réinitialisation de mot de passe à l'adresse e-mail connue pour ce compte. Si vous ne le recevez pas dans un délai raisonnable, vérifiez vos dossiers de courrier indésirable/pourriel/spam.
S'il n'est pas présent, demandez à votre administrateur local.", + "We have send a password create e-mail to the e-mail address known to us for this account. If you do not receive it within a reasonable amount of time, check your spam/junk folders.
If it is not there ask your local administrator." : "Nous avons envoyé un e-mail afin d'activer le compte et de choisir votre mot de passe à l'adresse e-mail connue pour ce compte. Si vous ne le recevez pas dans un délai raisonnable, vérifiez vos dossiers de courrier indésirable/pourriel/spam.
S'il n'est pas présent, demandez à votre administrateur local.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Vos fichiers sont chiffrés. Il n'y aura aucun moyen de récupérer vos données une fois le mot de passe réinitialisé.
Si vous n'êtes pas sûr de ce que vous faites, veuillez contacter votre administrateur avant de continuer.
Voulez-vous vraiment continuer ?", + "I know what I'm doing" : "Je sais ce que je fais", + "Password can not be changed. Please contact your administrator." : "Le mot de passe ne peut être modifié. Veuillez contacter votre administrateur.", + "Reset password" : "Réinitialisez le mot de passe", + "Sending email …" : "Envoi du mail en cours...", + "Logging in …" : "Connexion…", + "New in" : "Nouveau dans", + "View changelog" : "Voir le journal des modifications", + "No action available" : "Aucune action disponible", + "Error fetching contact actions" : "Erreur lors de la recherche d'actions de contact", + "Error" : "Erreur", + "Error while sharing" : "Erreur lors de la mise en partage", + "Error removing share" : "Erreur lors de l'arrêt du partage", + "Shared with you and the group {group} by {owner}" : "Partagé avec vous et le groupe {group} par {owner}", + "Shared with you and {circle} by {owner}" : "Partagé avec vous et {circle} par {owner}", + "Shared with you and the conversation {conversation} by {owner}" : "Partagé avec vous et la conversation {conversation} par {owner}", + "Shared with you in a conversation by {owner}" : "Partagé avec vous dans une conversation par {owner}", + "Shared with you by {owner}" : "Partagé avec vous par {owner}", + "Choose a password for the public link" : "Choisissez un mot de passe pour le lien public", + "Choose a password for the public link or press the \"Enter\" key" : "Choisissez un mot de passe pour le lien public ou appuyer sur \"Entrée\"", + "Copied!" : "Copié !", + "Copy link" : "Copier le lien", + "Not supported!" : "Non supporté!", + "Press ⌘-C to copy." : "Appuyez sur ⌘-C pour copier.", + "Press Ctrl-C to copy." : "Appuyez sur Ctrl-C pour copier.", + "Unable to create a link share" : "Impossible de créer un lien de partage", + "Unable to toggle this option" : "Impossible de basculer cette option", + "Resharing is not allowed" : "Le repartage n'est pas autorisé", + "Link" : "Lien", + "Hide download" : "Masquer le téléchargement", + "Password protection enforced" : "Protection par mot de passe forcée", + "Password protect" : "Protéger par un mot de passe", + "Allow editing" : "Permettre la modification", + "Email link to person" : "Envoyer le lien par courriel", + "Send" : "Envoyer", + "Allow upload and editing" : "Autoriser l'envoi et l'édition", + "Read only" : "Lecture seule", + "File drop (upload only)" : "Dépôt de fichier (téléversement uniquement)", + "Expiration date enforced" : "Date d'expiration forcée", + "Set expiration date" : "Spécifier une date d'expiration", + "Expiration" : "Expiration", + "Expiration date" : "Date d'expiration", + "Note to recipient" : "Note au destinataire", + "Unshare" : "Ne plus partager", + "Delete share link" : "Supprimer le lien de partage", + "Add another link" : "Ajouter un autre lien", + "Password protection for links is mandatory" : "Il est obligatoire de protéger les liens par mot de passe", + "Share to {name}" : "Partager avec {name}", + "Share link" : "Partager un lien", + "New share link" : "Nouveau lien de partage", + "Created on {time}" : "Créé le {time}", + "Password protect by Talk" : "Mot de passe protégé par Talk", + "Could not unshare" : "Impossible d'arrêter de partager", + "Choose a password for the mail share" : "Choisissez un mot de passe pour le partage par email", + "group" : "groupe", + "remote" : "distant", + "remote group" : "groupe distant", + "email" : "Adresse de courriel", + "conversation" : "conversation", + "shared by {sharer}" : "partagé par {sharer}", + "Can reshare" : "Peut repartager", + "Can edit" : "Peut éditer", + "Can create" : "Peut créer", + "Can change" : "Peut modifier", + "Can delete" : "Peut supprimer", + "Access control" : "Contrôle d'accès", + "{shareInitiatorDisplayName} shared via link" : "{shareInitiatorDisplayName} a partagé via un lien", + "Share details could not be loaded for this item." : "Les informations de partage n'ont pu être chargées pour cet élément.", + "Search globally" : "Rechercher partout", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Au moins {count} caractère est nécessaire pour l'autocomplétion","Au moins {count} caractères sont nécessaires pour l'autocomplétion"], + "This list is maybe truncated - please refine your search term to see more results." : "Des résultats peuvent avoir été omis. Affinez votre recherche pour en voir plus.", + "No users or groups found for {search}" : "Pas d'utilisateur ou de groupe trouvé pour {search}", + "No users found for {search}" : "Aucun utilisateur trouvé pour {search}", + "An error occurred (\"{message}\"). Please try again" : "Une erreur est survenue (\"{message}\"). Veuillez réessayer", + "An error occurred. Please try again" : "Une erreur est survenue. Merci de réessayer", + "Home" : "Accueil", + "Work" : "Travail", + "Other" : "Divers", + "{sharee} (remote group)" : "{sharee} (groupe distant)", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", + "Share" : "Partager", + "Name or email address..." : "Nom ou adresse mail...", + "Name or federated cloud ID..." : "Nom ou ID du cloud fédéré...", + "Name, federated cloud ID or email address..." : "Nom, ID du cloud fédéré ou adresse mail...", + "Name..." : "Nom...", + "Shared" : "Partagé", + "Shared with" : "Partagé avec", + "Shared by" : "Partagé par", + "Non-existing tag #{tag}" : "Étiquette #{tag} inexistante", + "restricted" : "Restreint", + "invisible" : "invisible", + "({scope})" : "({scope})", + "Delete" : "Supprimer", + "Rename" : "Renommer", + "Collaborative tags" : "Étiquettes collaboratives ", + "No tags found" : "Aucune étiquette n'a été trouvée", + "Very weak password" : "Mot de passe très faible", + "Weak password" : "Mot de passe faible", + "So-so password" : "Mot de passe tout juste acceptable", + "Good password" : "Mot de passe de sécurité suffisante", + "Strong password" : "Mot de passe fort", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas encore correctement configuré pour la synchronisation de fichiers parce que l'interface WebDAV semble ne pas fonctionner.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "La configuration du serveur web ne permet pas d'atteindre \"{url}\". Vous trouverez plus d'informations dans la documentation.", + "Your web server is not properly set up to resolve \"{url}\". This is most likely related to a web server configuration that was not updated to deliver this folder directly. Please compare your configuration against the shipped rewrite rules in \".htaccess\" for Apache or the provided one in the documentation for Nginx at it's documentation page. On Nginx those are typically the lines starting with \"location ~\" that need an update." : "Votre serveur web n'est pas proprement configuré pour résoudre \"{url}\". Ceci est probablement lié à une configuration du serveur web qui n'a pas été mise à jour pour délivrer directement ce dossier. Veuillez comparer votre configuration avec les règles ré-écrites dans \".htaccess\" pour Apache ou celles contenues dans la documentation de Nginx. Pour Nginx les lignes nécessitant une mise à jour sont typiquement celles débutant par \"location ~\".", + "Your web server is not properly set up to deliver .woff2 files. This is typically an issue with the Nginx configuration. For Nextcloud 15 it needs an adjustement to also deliver .woff2 files. Compare your Nginx configuration to the recommended configuration in our documentation." : "Votre serveur web n'est pas correctement configuré pour distribuer des fichiers .woff2. C'est une erreur fréquente de configuration Nginx. Pour Nextcloud 15, il est nécessaire de la régler pour les fichiers .woff2.\nComparer votre configuration Nginx avec la configuration recommandée dans notre documentation.", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP ne semble pas être configuré de manière à récupérer les valeurs des variables d’environnement. Le test de la commande getenv(\"PATH\") retourne seulement une réponse vide. ", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Veuillez consulter la documentation d'installation ↗pour savoir comment configurer PHP sur votre serveur, en particulier en cas d'utilisation de php-fpm.", + "The read-only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuration est en mode lecture seule. Ceci empêche la modification de certaines configurations via l'interface web. De plus, le fichier doit être passé manuellement en lecture-écriture avant chaque mise à jour.", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Votre base de données ne fonctionne pas avec le niveau d'isolation de transaction \"READ COMMITED\". Ceci peut causer des problèmes quand plusieurs actions sont exécutées en parallèle.", + "The PHP module \"fileinfo\" is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Le module PHP 'fileinfo' est manquant. Il est vivement recommandé de l'activer afin d'obtenir les meilleurs résultats de détection du type MIME.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable \"filelocking.enabled\" in config.php to avoid these problems. See the documentation ↗ for more information." : "Le verrouillage transactionnel de fichiers est désactivé. Cela peut causer des conflits en cas d'accès concurrent. Configurez 'filelocking.enabled' dans config.php pour éviter ces problèmes. Consultez la documentation ↗ pour plus d'informations.", + "If your installation is not installed at the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (suggestion: \"{suggestedOverwriteCliURL}\")" : "Si votre installation n'a pas été effectuée à la racine du domaine et qu'elle utilise le Cron du système, il peut y avoir des problèmes avec la génération d'URL. Pour les éviter, veuillez configurer l'option \"overwrite.cli.url\" dans votre fichier config.php avec le chemin de la racine de votre installation (suggestion : \"{suggestedOverwriteCliURL}\")", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "La tâche cron n'a pu s'exécuter via CLI. Ces erreurs techniques sont apparues :", + "Last background job execution ran {relativeTime}. Something seems wrong." : "Dernière tâche de fond a fonctionné il y a {relativeTime}. Quelque chose s'est mal passé.", + "Check the background job settings" : "Vérifier les paramètres des tâches de fond", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Ce serveur ne peut se connecter à Internet : plusieurs point finaux ne peuvent être atteints. 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 l'envoi de notifications par mail peuvent aussi être indisponibles. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Aucun cache mémoire n'est configuré. Si possible, configurez un \"memcache\" pour améliorer les performances. Pour plus d'informations consultez la documentation.", + "No suitable source for randomness found by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "Aucune source appropriée pour les aléas trouvée par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Vous utilisez actuellement PHP {version}. Mettez à jour votre version de PHP afin de tirer avantage des améliorations liées à la performance et la sécurité fournies par le PHP Group dès que votre distribution le supportera.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Vous utiliser actuellement PHP 5.6. La version majeure actuelle de Nextcloud est la dernière qui est supportée sous PHP 5.6. Il est recommandé de mettre à niveau PHP vers la version 7.0+ pour pouvoir passer à Nextcloud 14.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuration des entêtes du proxy inverse est incorrecte, ou vous accédez à Nextcloud depuis un proxy de confiance. Si vous n'êtes pas en train d’accéder à Nextcloud depuis un proxy de confiance, il y a un problème de sécurité qui peut permettre à un attaquant d'usurper l'adresse IP affichée à Nextcloud. Vous trouverez plus d'informations dans notre documentation.", + "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the memcached wiki about both modules." : "\"memcached\" est configuré comme cache distribué, mais le mauvais module PHP \"memcache\" est installé. \\OC\\Memcache\\Memcached ne prend en charge que \"memcached\" et non \"memcache\". Consulter le wiki de memcached à propos de ces deux modules.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Des fichiers n'ont pas passé la vérification d’intégrité. Vous trouverez plus d'information sur comment résoudre ce problème dans notre documentation. (Liste des fichiers invalides… / Rescanner…)", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "Le module PHP OPcache n'est pas disponible. Pour de meilleures performances, il est recommandé de l'activer dans votre installation de PHP.", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "Le PHP OPcache n'est pas correctement configuré. Pour de meilleure performance nous recommandons d'utiliser les paramètres suivant dans le php.ini :", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La fonction PHP \"set_time_limit\" n'est pas disponible. Cela pourrait entraîner l'arrêt des scripts à mi-exécution en bloquant votre installation. Nous vous recommandons vivement d'activer cette fonction.", + "Your PHP does not have FreeType support, resulting in breakage of profile pictures and the settings interface." : "Votre PHP ne prend pas en charge FreeType, provoquant la casse des images de profil et de l'interface des paramètres.", + "Missing index \"{indexName}\" in table \"{tableName}\"." : "Index \"{indexName}\" manquant dans la table \"{tableName}\".", + "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running \"occ db:add-missing-indices\" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster." : "La base de données a quelques index manquant. L'ajout d'index dans de grandes tables peut prendre un certain temps. Elles ne sont donc pas ajoutées automatiquement. En exécutant \"occ db:add-missing-indices\", ces index manquants pourront être ajoutés manuellement pendant que l'instance continue de tourner. Une fois les index ajoutés, les requêtes sur ces tables sont généralement beaucoup plus rapides.", + "This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them." : "Cette instance ne dispose pas de plusieurs modules PHP recommandés. Il est recommandé de les installer pour améliorer les performances, et la compatibilité.", + "Some columns in the database are missing a conversion to big int. Due to the fact that changing column types on big tables could take some time they were not changed automatically. By running 'occ db:convert-filecache-bigint' those pending changes could be applied manually. This operation needs to be made while the instance is offline. For further details read the documentation page about this." : "Certaines colonnes de la base de données n'ont pas été converties en big int. Changer le type de colonne dans de grandes tables peu prendre beaucoup de temps, elles n'ont donc pas été converties automatiquement. En exécutant 'occ db:convert-filecache-bigint' ces changements en suspens peuvent être déclenchés manuellement. Cette opération doit être exécutée pendant que l'instance est hors ligne. Pour plus d'information, consulter la page de la documentation.", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite est actuellement utilisé comme système de gestion de base de données. Pour des installations plus volumineuses, nous vous recommandons de migrer vers un autre système de gestion de base de données.", + "This is particularly recommended when using the desktop client for file synchronisation." : "C'est particulièrement recommandé lorsque l'on utilise un client bureau pour la synchronisation des fichiers.", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Pour migrer vers un autre type de base de données, utilisez la ligne de commande : 'occ db:convert-type' ou consultez la documentation ↗.", + "Use of the the built in php mailer is no longer supported. Please update your email server settings ↗." : "L'utilisation de la fonctionnalité d'envoi d'e-mails native de PHP n'est plus supportée. Merci de mettre à jour les paramètres d'envoi d'e-mails de votre serveur ↗ ", + "The PHP memory limit is below the recommended value of 512MB." : "La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo.", + "Some app directories are owned by a different user than the web server one. This may be the case if apps have been installed manually. Check the permissions of the following app directories:" : "Certains répertoires d'applications appartiennent à un utilisateur différent de celui du serveur web. Cela peut être le cas si les applications ont été installées manuellement. Vérifiez les permissions des répertoires d'applications suivants :", + "MySQL is used as database but does not support 4-byte characters. To be able to handle 4-byte characters (like emojis) without issues in filenames or comments for example it is recommended to enable the 4-byte support in MySQL. For further details read the documentation page about this." : "MySQL est utilisée comme base de données mais ne supporte pas les caractères codés sur 4 octets. Pour pouvoir manipuler les caractères sur 4 octets (comme les émoticônes) sans problème dans les noms de fichiers ou les commentaires par exemple, il est recommandé d'activer le support 4 octets dans MySQL. Pour plus de détails, lisez la page de documentation à ce sujet", + "This instance uses an S3 based object store as primary storage. The uploaded files are stored temporarily on the server and thus it is recommended to have 50 GB of free space available in the temp directory of PHP. Check the logs for full details about the path and the available space. To improve this please change the temporary directory in the php.ini or make more space available in that path." : "Cette instance utilise un stockage primaire basé sur un objet de stockage issu de S3. \nLes fichiers téléversés sont temporairement stockés sur le serveur et il est donc recommandé de disposer d'un espace libre de 50 GB dans le répertoire temporaire de PHP. Vérifiez les journaux pour plus de détails sur les chemins concernés et l'espace disponible. Pour améliorer la situation, vous pouvez augmenter l'espace disponible dans le dossier temporaire actuel ou changer l'emplacement du dossier temporaire en indiquant un nouveau chemin dans php.ini.", + "Error occurred while checking server setup" : "Une erreur s'est produite lors de la vérification de la configuration du serveur", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server 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 de le déplacer hors de la racine du serveur web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Ceci constitue un risque potentiel relatif à la sécurité et à la vie privée étant donné qu'il est recommandé d'ajuster ce paramètre.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Certaines fonctionnalités peuvent ne pas fonctionner correctement étant donné qu'il est recommandé d'ajuster ce paramètre.", + "The \"{header}\" HTTP header doesn't contain \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" ne contient pas \"{expected}\". Ceci est un risque potentiel pour la sécurité ou la vie privée, et il est recommandé d'ajuster ce paramètre en conséquence.", + "The \"{header}\" HTTP header is not set to \"{val1}\", \"{val2}\", \"{val3}\", \"{val4}\" or \"{val5}\". This can leak referer information. See the W3C Recommendation ↗." : "L'en-tête HTTP \"{header}\" n'est pas défini sur \"{val1}\", \"{val2}\", \"{val3}\", \"{val4}\" ou \"{val5}\". Cela peut entraîner une fuite d'informations. Veuillez voir les recommandations du W3C ↗.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips ↗." : "L'en-tête HTTP \"Strict-Transport-Security\" n'est pas configurée à au moins \"{seconds}\" secondes. Pour renforcer la sécurité, nous recommandons d'activer HSTS comme décrit dans nos conseils de sécurisation ↗.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips ↗." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS, comme expliqué dans nos conseils de sécurisation ↗.", + "unknown text" : "texte inconnu", + "Hello world!" : "Hello world!", + "sunny" : "ensoleillé", + "Hello {name}, the weather is {weather}" : "Bonjour {name}, le temps est {weather}", + "Hello {name}" : "Bonjour {name}", + "These are your search results" : "Voici les résultats de votre recherche", + "new" : "nouveau ", + "_download %n file_::_download %n files_" : ["télécharger %n fichier","télécharger %n fichiers"], + "The update is in progress, leaving this page might interrupt the process in some environments." : "La mise à jour est en cours, quitter la page peut interrompre le processus dans de nombreux environnements.", + "Update to {version}" : "Mise à jour vers {version}", + "An error occurred." : "Une erreur est survenue.", + "Please reload the page." : "Veuillez recharger la page.", + "The update was unsuccessful. For more information check our forum post covering this issue." : "La mise à jour a échoué. Pour plus d'informations consultez notre publication sur le forum à propos de ce problème.", + "The update was unsuccessful. Please report this issue to the Nextcloud community." : "La mise à jour a échoué. Veuillez reporter le problème à la communauté Nextcloud.", + "Continue to Nextcloud" : "Continuer sur Nextcloud", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["La mise à jour est terminée. Vous allez être redirigé vers Nextcloud dans %n seconde.","La mise à jour est terminée. Vous allez être redirigé vers Nextcloud dans %n secondes."], + "Searching other places" : "Recherche en cours dans d'autres emplacements", + "No search results in other folders for {tag}{filter}{endtag}" : "Aucun résultat dans d'autres dossiers n'a été trouvé pour  {tag}{filter}{endtag}", + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} résultat dans un autre dossier","{count} résultats dans d'autres dossiers"], + "Personal" : "Personnel", + "Users" : "Utilisateurs", + "Apps" : "Applications", + "Admin" : "Administration", + "Help" : "Aide", + "Access forbidden" : "Accès interdit", + "File not found" : "Fichier non trouvé", + "The document could not be found on the server. Maybe the share was deleted or has expired?" : "Le document n'a pas pu être trouvé sur le serveur. Peut-être que le partage a été supprimé ou est expiré ?", + "Back to %s" : "Retour à %s", + "Internal Server Error" : "Erreur interne du serveur", + "The server was unable to complete your request." : "Le serveur est incapable d'exécuter votre requête.", + "If this happens again, please send the technical details below to the server administrator." : "Si cela se reproduit, veuillez envoyer les détails techniques ci-dessous à l'administrateur du serveur.", + "More details can be found in the server log." : "Le fichier journal du serveur peut fournir plus de renseignements.", + "Technical details" : "Renseignements techniques", + "Remote Address: %s" : "Adresse distante : %s", + "Request ID: %s" : "ID de la demande : %s", + "Type: %s" : "Type : %s", + "Code: %s" : "Code : %s", + "Message: %s" : "Message : %s", + "File: %s" : "Fichier : %s", + "Line: %s" : "Ligne : %s", + "Trace" : "Trace", + "Security warning" : "Avertissement de sécurité", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Votre répertoire de données est certainement accessible depuis internet car le fichier .htaccess ne fonctionne pas.", + "For information how to properly configure your server, please see the documentation." : "Pour les informations de configuration de votre serveur, veuillez lire la documentation.", + "Create an admin account" : "Créer un compte administrateur", + "Username" : "Nom d'utilisateur", + "Storage & database" : "Stockage & base de données", + "Data folder" : "Répertoire des données", + "Configure the database" : "Configurer la base de données", + "Only %s is available." : "Seul(e) %s est disponible.", + "Install and activate additional PHP modules to choose other database types." : "Installez et activez les modules PHP additionnels adéquats pour choisir d'autres types de base de données.", + "For more details check out the documentation." : "Consultez la documentation pour plus de détails.", + "Database user" : "Utilisateur de la base de données", + "Database password" : "Mot de passe de la base de données", + "Database name" : "Nom de la base de données", + "Database tablespace" : "Espace de stockage de la base de données", + "Database host" : "Hôte de la base de données", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "Veuillez spécifier le numéro du port avec le nom de l'hôte (ex: localhost:5432).", + "Performance warning" : "Avertissement à propos des performances", + "You chose SQLite as database." : "Vous avez choisi SQLite comme base de données. ", + "SQLite should only be used for minimal and development instances. For production we recommend a different database backend." : "SQLite ne devrait être utilisée que pour des instances minimales ou de développement. Pour une instance de production, nous recommandons une infrastructure de base de données différente. ", + "If you use clients for file syncing, the use of SQLite is highly discouraged." : "Si vous utilisez des clients de synchronisation de fichiers, l'utilisation de SQLite est fortement découragée. ", + "Finish setup" : "Terminer l'installation", + "Finishing …" : "Finalisation …", + "Need help?" : "Besoin d'aide ?", + "See the documentation" : "Lire la documentation", + "It looks like you are trying to reinstall your Nextcloud. However the file CAN_INSTALL is missing from your config directory. Please create the file CAN_INSTALL in your config folder to continue." : "On dirait que vous essayez de réinstaller votre Nextcloud. Toutefois, le fichier CAN_INSTALL est absent de votre répertoire de configuration. Veuillez créer le fichier CAN_INSTALL dans votre dossier de configuration pour continuer.", + "Could not remove CAN_INSTALL from the config folder. Please remove this file manually." : "Impossible de supprimer CAN_INSTALL du dossier de configuration. Veuillez supprimer ce fichier manuellement.", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Cette application requiert JavaScript pour fonctionner correctement. Veuillez {linkstart}activer JavaScript{linkend} et recharger la page.", + "Get your own free account" : "Obtenez votre compte personnel gratuit", + "Skip to main content" : "Passer au contenu principal", + "Skip to navigation of app" : "Passer à la navigation d'application", + "More apps" : "Plus d'applications", + "More" : "Plus", + "More apps menu" : "Menu des autres applications", + "Search" : "Rechercher", + "Reset search" : "Réinitialiser la recherche", + "Contacts" : "Contacts", + "Contacts menu" : "Menu des contacts", + "Settings menu" : "Menu des paramètres  ", + "Confirm your password" : "Confirmer votre mot de passe", + "Server side authentication failed!" : "L'authentification sur le serveur a échoué !", + "Please contact your administrator." : "Veuillez contacter votre administrateur.", + "An internal error occurred." : "Une erreur interne est survenue.", + "Please try again or contact your administrator." : "Veuillez réessayer ou contactez votre administrateur.", + "Please try again or contact %s." : "Veuillez réessayer ou contactez %s.", + "Username or email" : "Utilisateur ou email", + "Log in" : "Se connecter", + "Wrong username or password." : "Utilisateur ou mot de passe incorrect.", + "User disabled" : "Utilisateur désactivé", + "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Nous avons détecté plusieurs tentatives de connexion invalides depuis votre adresse IP. C'est pourquoi votre prochaine connexion sera retardée de 30 secondes.", + "Forgot password?" : "Mot de passe oublié ?", + "Back to login" : "Retour à la page de connexion", + "Connect to your account" : "Connectez vous à votre compte", + "Please log in before granting %1$s access to your %2$s account." : "Veuillez vous connecter avant d'autoriser %1$s à accéder à votre compte %2$s.", + "App token" : "Jeton d'application", + "Grant access" : "Autoriser l'accès", + "Alternative log in using app token" : "Authentification alternative en utilisant un jeton d'application", + "Account access" : "Accès au compte", + "You are about to grant %1$s access to your %2$s account." : "Vous êtes sur le point d'accorder à \"%1$s\" l'accès à votre compte \"%2$s\".", + "Account connected" : "Compte connecté", + "Your client should now be connected! You can close this window." : "Votre client devrait maintenant être connecté ! Vous pouvez fermer cette fenêtre.", + "New password" : "Nouveau mot de passe", + "New Password" : "Nouveau mot de passe", + "First connection" : "Activez votre compte", + "Welcome %s" : "Bienvenue %s", + "Close this window" : "Fermez cette fenêtre", + "Click on 'First connection' to receive an email for choosing your first password" : "Cliquer sur 'Activez votre compte' afin de recevoir un email permettant de choisir votre mot de passe", + "Click on 'Reset password' to receive an email for setting up a new password" : "Cliquer sur 'Rénitialisez le mot de passe' afin de recevoir un email permettant de réinitialiser votre mot de passe", + "This share is password-protected" : "Ce partage est protégé par mot de passe", + "The password is wrong. Try again." : "Le mot de passe est incorrect. Veuillez réessayer.", + "Two-factor authentication" : "Second facteur d'authentification", + "Enhanced security is enabled for your account. Choose a second factor for authentication:" : "La sécurité renforcée est activée pour votre compte. Choisissez un second facteur pour l'authentification :", + "Could not load at least one of your enabled two-factor auth methods. Please contact your admin." : "Impossible de charger au moins l'une de vos méthodes activées d'authentification à deux facteurs . Veuillez contacter votre administrateur.", + "Two-factor authentication is enforced but has not been configured on your account. Contact your admin for assistance." : "L'authentification en deux étapes a été imposée mais n'est pas configurée sur votre compte. Contactez votre administrateur pour avoir de l'aide.", + "Two-factor authentication is enforced but has not been configured on your account. Please continue to setup two-factor authentication." : "L'authentification à deux facteurs est appliquée mais n'a pas été configurée sur votre compte. Veuillez continuer à configurer l'authentification à deux facteurs.", + "Set up two-factor authentication" : "Paramétrer l'authentification à double facteur", + "Two-factor authentication is enforced but has not been configured on your account. Use one of your backup codes to log in or contact your admin for assistance." : "L'authentification en deux étapes a été imposée mais n'est pas configurée sur votre compte. Utilisez un de vos codes de secours pour vous connecter ou contactez votre administrateur pour avoir de l'aide.", + "Use backup code" : "Utiliser un code de récupération", + "Cancel log in" : "Annuler l'authentification", + "Setup two-factor authentication" : "Paramétrer l'authentification à double facteur", + "Enhanced security is enforced for your account. Choose wich provider to set up:" : "Une sécurité renforcée est appliquée à votre compte. Choisissez le fournisseur à configurer :", + "Error while validating your second factor" : "Erreur lors de la validation de votre second facteur", + "Access through untrusted domain" : "Accès à partir d'un domaine non approuvé", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Veuillez contacter votre administrateur. Si vous êtes un administrateur, éditez la variable \"trusted_domains\" dans le fichier config/config.php comme l'exemple dans le fichier config/config.sample.php.", + "Further information how to configure this can be found in the %1$sdocumentation%2$s." : "Vous trouverez d'autres informations sur la configuration dans la %1$sdocumentation %2$s.", + "App update required" : "Mise à jour de l'application nécessaire", + "%1$s will be updated to version %2$s" : "%1$s sera mis à jour vers la version %2$s", + "These apps will be updated:" : "Les applications suivantes seront mises à jour :", + "These incompatible apps will be disabled:" : "Ces applications incompatibles ont été désactivées :", + "The theme %s has been disabled." : "Le thème %s a été désactivé.", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Veuillez vous assurer qu'une copie de sauvegarde de la base de données, du dossier de configuration (config) et du dossier de données (data) a été réalisée avant de commencer.", + "Start update" : "Démarrer la mise à jour", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Afin d'éviter les timeouts avec les installations de volume conséquent, vous pouvez exécuter la commande suivante depuis le répertoire d'installation :", + "Detailed logs" : "Journaux détaillés", + "Update needed" : "Mise à jour nécessaire", + "Please use the command line updater because you have a big instance with more than 50 users." : "Veuillez utiliser la mise à jour en ligne de commande car votre instance est volumineuse avec plus de 50 utilisateurs.", + "For help, see the documentation." : "Pour obtenir de l'aide, lisez la documentation.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Je sais que si je continue à faire la mise à jour via le navigateur web, il existe le risque que la requête se heurte à un délai d'expiration et peut causer une perte de données, mais j'ai une copie de sauvegarde et je sais comment restaurer mon instance en cas d'échec.", + "Upgrade via web on my own risk" : "Mettre à jour via le navigateur web à mes propres risques", + "Maintenance mode" : "Mode maintenance", + "This %s instance is currently in maintenance mode, which may take a while." : "Cette instance de %s est en cours de maintenance, cela peut prendre du temps.", + "This page will refresh itself when the instance is available again." : "Cette page se rafraîchira d'elle-même lorsque le serveur sera de nouveau disponible.", + "Contact your system administrator if this message persists or appeared unexpectedly." : "Veuillez contacter votre administrateur système si ce message persiste ou apparaît de façon inattendue.", + "Updated \"%s\" to %s" : "Mise à jour de « %s » vers %s", + "There were problems with the code integrity check. More information…" : "Il y a eu des problèmes à la vérification de l’intégrité du code. Plus d'infos...", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.
If it is not there ask your local administrator." : "Un lien permettant de réinitialiser votre mot de passe vient de vous être envoyé par courriel.
Si vous ne le recevez pas dans un délai raisonnable, contactez votre administrateur.
N'oubliez pas de vérifier dans votre dossier pourriel / spam!", + "{name} below version {version} is installed, for stability and performance reasons it is recommended to update to a newer {name} version." : "{name} est installée sous la version {version}. Pour des raisons de stabilité et de performances, il est recommandé de mettre à jour {name} vers une version plus récente.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom n'est pas lisible par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", + "Copy URL" : "Copier l'adresse URL", + "Enable" : "Activer", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} a partagé via un lien", + "{sharee} (group)" : "{sharee} (groupe)", + "{sharee} (remote)" : "{sharee} (distant)", + "{sharee} (email)" : "{sharee} (email)", + "{sharee} (conversation)" : "{sharee} (discussion)", + "The specified document has not been found on the server." : "Impossible de trouver le document spécifié sur le serveur.", + "You can click here to return to %s." : "Vous pouvez cliquer ici pour retourner à %s.", + "SQLite will be used as database." : "SQLite sera utilisé comme gestionnaire de base de données.", + "For larger installations we recommend to choose a different database backend." : "Pour des installations plus volumineuses, nous vous conseillons d'utiliser un autre gestionnaire de base de données.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "En particulier si vous utilisez le client de bureau pour synchroniser vos données, l'utilisation de SQLite est déconseillée.", + "Wrong password." : "Mot de passe incorrect.", + "Please log in before granting %s access to your %s account." : "Veuillez vous connecter avant d'autoriser %s à accéder à votre compte %s.", + "You are about to grant %s access to your %s account." : "Vous êtes sur le point d'accorder à \"%s\" l'accès à votre compte \"%s\".", + "Redirecting …" : "Redirection en cours...", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "La sécurité renforcée est activée pour votre compte. Veuillez vous authentifier en utilisant un second facteur.", + "Further information how to configure this can be found in the %sdocumentation%s." : "Vous trouverez d'autres informations sur la configuration dans la %sdocumentation %s.", + "%s will be updated to version %s" : "%s sera mis à jour vers la version %s", + "This page will refresh itself when the %s instance is available again." : "Cette page se rafraîchira d'elle-même lorsque l'instance %s sera à nouveau disponible.", + "Thank you for your patience." : "Merci de votre patience." +},"pluralForm" :"nplurals=2; plural=(n > 1);" } \ No newline at end of file diff --git a/core/routes.php b/core/routes.php index ec8f995304d09..702042fd341b9 100644 --- a/core/routes.php +++ b/core/routes.php @@ -1,129 +1,131 @@ - - * @author Bernhard Posselt - * @author Christoph Wurst - * @author Christopher Schäpers - * @author Georg Ehrke - * @author Joas Schilling - * @author John Molakvoæ (skjnldsv) - * @author Lukas Reschke - * @author Morris Jobke - * @author Roeland Jago Douma - * @author Thomas Müller - * @author Victor Dubiniuk - * @author Vincent Petry - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program 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, version 3, - * along with this program. If not, see - * - */ - -use OC\Core\Application; - -$application = new Application(); -$application->registerRoutes($this, [ - 'routes' => [ - ['name' => 'lost#email', 'url' => '/lostpassword/email', 'verb' => 'POST'], - ['name' => 'lost#resetform', 'url' => '/lostpassword/reset/form/{token}/{userId}', 'verb' => 'GET'], - ['name' => 'lost#setPassword', 'url' => '/lostpassword/set/{token}/{userId}', 'verb' => 'POST'], - ['name' => 'user#getDisplayNames', 'url' => '/displaynames', 'verb' => 'POST'], - ['name' => 'avatar#getAvatar', 'url' => '/avatar/{userId}/{size}', 'verb' => 'GET'], - ['name' => 'avatar#deleteAvatar', 'url' => '/avatar/', 'verb' => 'DELETE'], - ['name' => 'avatar#postCroppedAvatar', 'url' => '/avatar/cropped', 'verb' => 'POST'], - ['name' => 'avatar#getTmpAvatar', 'url' => '/avatar/tmp', 'verb' => 'GET'], - ['name' => 'avatar#postAvatar', 'url' => '/avatar/', 'verb' => 'POST'], - ['name' => 'GuestAvatar#getAvatar', 'url' => '/avatar/guest/{guestName}/{size}', 'verb' => 'GET'], - ['name' => 'CSRFToken#index', 'url' => '/csrftoken', 'verb' => 'GET'], - ['name' => 'login#tryLogin', 'url' => '/login', 'verb' => 'POST'], - ['name' => 'login#confirmPassword', 'url' => '/login/confirm', 'verb' => 'POST'], - ['name' => 'login#showLoginForm', 'url' => '/login', 'verb' => 'GET'], - ['name' => 'login#logout', 'url' => '/logout', 'verb' => 'GET'], - // Original login flow used by all clients - ['name' => 'ClientFlowLogin#showAuthPickerPage', 'url' => '/login/flow', 'verb' => 'GET'], - ['name' => 'ClientFlowLogin#generateAppPassword', 'url' => '/login/flow', 'verb' => 'POST'], - ['name' => 'ClientFlowLogin#grantPage', 'url' => '/login/flow/grant', 'verb' => 'GET'], - ['name' => 'ClientFlowLogin#apptokenRedirect', 'url' => '/login/flow/apptoken', 'verb' => 'POST'], - // NG login flow used by desktop client in case of Kerberos/fancy 2fa (smart cards for example) - ['name' => 'ClientFlowLoginV2#poll', 'url' => '/login/v2/poll', 'verb' => 'POST'], - ['name' => 'ClientFlowLoginV2#showAuthPickerPage', 'url' => '/login/v2/flow', 'verb' => 'GET'], - ['name' => 'ClientFlowLoginV2#landing', 'url' => '/login/v2/flow/{token}', 'verb' => 'GET'], - ['name' => 'ClientFlowLoginV2#grantPage', 'url' => '/login/v2/grant', 'verb' => 'GET'], - ['name' => 'ClientFlowLoginV2#generateAppPassword', 'url' => '/login/v2/grant', 'verb' => 'POST'], - ['name' => 'ClientFlowLoginV2#init', 'url' => '/login/v2', 'verb' => 'POST'], - ['name' => 'TwoFactorChallenge#selectChallenge', 'url' => '/login/selectchallenge', 'verb' => 'GET'], - ['name' => 'TwoFactorChallenge#showChallenge', 'url' => '/login/challenge/{challengeProviderId}', 'verb' => 'GET'], - ['name' => 'TwoFactorChallenge#solveChallenge', 'url' => '/login/challenge/{challengeProviderId}', 'verb' => 'POST'], - ['name' => 'TwoFactorChallenge#setupProviders', 'url' => 'login/setupchallenge', 'verb' => 'GET'], - ['name' => 'TwoFactorChallenge#setupProvider', 'url' => 'login/setupchallenge/{providerId}', 'verb' => 'GET'], - ['name' => 'TwoFactorChallenge#confirmProviderSetup', 'url' => 'login/setupchallenge/{providerId}', 'verb' => 'POST'], - ['name' => 'OCJS#getConfig', 'url' => '/core/js/oc.js', 'verb' => 'GET'], - ['name' => 'Preview#getPreviewByFileId', 'url' => '/core/preview', 'verb' => 'GET'], - ['name' => 'Preview#getPreview', 'url' => '/core/preview.png', 'verb' => 'GET'], - ['name' => 'Svg#getSvgFromCore', 'url' => '/svg/core/{folder}/{fileName}', 'verb' => 'GET'], - ['name' => 'Svg#getSvgFromApp', 'url' => '/svg/{app}/{fileName}', 'verb' => 'GET'], - ['name' => 'Css#getCss', 'url' => '/css/{appName}/{fileName}', 'verb' => 'GET'], - ['name' => 'Js#getJs', 'url' => '/js/{appName}/{fileName}', 'verb' => 'GET'], - ['name' => 'contactsMenu#index', 'url' => '/contactsmenu/contacts', 'verb' => 'POST'], - ['name' => 'contactsMenu#findOne', 'url' => '/contactsmenu/findOne', 'verb' => 'POST'], - ['name' => 'WalledGarden#get', 'url' => '/204', 'verb' => 'GET'], - ['name' => 'Search#search', 'url' => '/core/search', 'verb' => 'GET'], - ['name' => 'Wipe#checkWipe', 'url' => '/core/wipe/check', 'verb' => 'POST'], - ['name' => 'Wipe#wipeDone', 'url' => '/core/wipe/success', 'verb' => 'POST'], - - // Legacy routes that need to be globally available while they are handled by an app - ['name' => 'viewcontroller#showFile', 'url' => '/f/{fileid}', 'verb' => 'GET', 'app' => 'files'], - ['name' => 'sharecontroller#showShare', 'url' => '/s/{token}', 'verb' => 'GET', 'app' => 'files_sharing'], - ['name' => 'sharecontroller#showAuthenticate', 'url' => '/s/{token}/authenticate/{redirect}', 'verb' => 'GET', 'app' => 'files_sharing'], - ['name' => 'sharecontroller#authenticate', 'url' => '/s/{token}/authenticate/{redirect}', 'verb' => 'POST', 'app' => 'files_sharing'], - ['name' => 'sharecontroller#downloadShare', 'url' => '/s/{token}/download', 'verb' => 'GET', 'app' => 'files_sharing'], - ['name' => 'publicpreview#directLink', 'url' => '/s/{token}/preview', 'verb' => 'GET', 'app' => 'files_sharing'], - ['name' => 'requesthandlercontroller#addShare', 'url' => '/ocm/shares', 'verb' => 'POST', 'app' => 'cloud_federation_api'], - ['name' => 'requesthandlercontroller#receiveNotification', 'url' => '/ocm/notifications', 'verb' => 'POST', 'app' => 'cloud_federation_api'], - ['name' => 'pagecontroller#showCall', 'url' => '/call/{token}', 'verb' => 'GET', 'app' => 'spreed'], - ['name' => 'pagecontroller#authenticatePassword', 'url' => '/call/{token}', 'verb' => 'POST', 'app' => 'spreed'], - ], - 'ocs' => [ - ['root' => '/cloud', 'name' => 'OCS#getCapabilities', 'url' => '/capabilities', 'verb' => 'GET'], - ['root' => '', 'name' => 'OCS#getConfig', 'url' => '/config', 'verb' => 'GET'], - ['root' => '/person', 'name' => 'OCS#personCheck', 'url' => '/check', 'verb' => 'POST'], - ['root' => '/identityproof', 'name' => 'OCS#getIdentityProof', 'url' => '/key/{cloudId}', 'verb' => 'GET'], - ['root' => '/core', 'name' => 'Navigation#getAppsNavigation', 'url' => '/navigation/apps', 'verb' => 'GET'], - ['root' => '/core', 'name' => 'Navigation#getSettingsNavigation', 'url' => '/navigation/settings', 'verb' => 'GET'], - ['root' => '/core', 'name' => 'AutoComplete#get', 'url' => '/autocomplete/get', 'verb' => 'GET'], - ['root' => '/core', 'name' => 'WhatsNew#get', 'url' => '/whatsnew', 'verb' => 'GET'], - ['root' => '/core', 'name' => 'WhatsNew#dismiss', 'url' => '/whatsnew', 'verb' => 'POST'], - ['root' => '/core', 'name' => 'AppPassword#getAppPassword', 'url' => '/getapppassword', 'verb' => 'GET'], - ['root' => '/core', 'name' => 'AppPassword#deleteAppPassword', 'url' => '/apppassword', 'verb' => 'DELETE'], - - ['root' => '/collaboration', 'name' => 'CollaborationResources#searchCollections', 'url' => '/resources/collections/search/{filter}', 'verb' => 'GET'], - ['root' => '/collaboration', 'name' => 'CollaborationResources#listCollection', 'url' => '/resources/collections/{collectionId}', 'verb' => 'GET'], - ['root' => '/collaboration', 'name' => 'CollaborationResources#renameCollection', 'url' => '/resources/collections/{collectionId}', 'verb' => 'PUT'], - ['root' => '/collaboration', 'name' => 'CollaborationResources#addResource', 'url' => '/resources/collections/{collectionId}', 'verb' => 'POST'], - - ['root' => '/collaboration', 'name' => 'CollaborationResources#removeResource', 'url' => '/resources/collections/{collectionId}', 'verb' => 'DELETE'], - ['root' => '/collaboration', 'name' => 'CollaborationResources#getCollectionsByResource', 'url' => '/resources/{resourceType}/{resourceId}', 'verb' => 'GET'], - ['root' => '/collaboration', 'name' => 'CollaborationResources#createCollectionOnResource', 'url' => '/resources/{baseResourceType}/{baseResourceId}', 'verb' => 'POST'], - ], -]); - -// Post installation check - -/** @var $this OCP\Route\IRouter */ -// Core ajax actions -// Routing -$this->create('core_ajax_update', '/core/ajax/update.php') - ->actionInclude('core/ajax/update.php'); + + * @author Bernhard Posselt + * @author Christoph Wurst + * @author Christopher Schäpers + * @author Georg Ehrke + * @author Joas Schilling + * @author John Molakvoæ (skjnldsv) + * @author Lukas Reschke + * @author Morris Jobke + * @author Roeland Jago Douma + * @author Thomas Müller + * @author Victor Dubiniuk + * @author Vincent Petry + * + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program 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, version 3, + * along with this program. If not, see + * + */ + +use OC\Core\Application; + +$application = new Application(); +$application->registerRoutes($this, [ + 'routes' => [ + ['name' => 'lost#email', 'url' => '/lostpassword/email', 'verb' => 'POST'], + ['name' => 'lost#resetform', 'url' => '/lostpassword/reset/form/{token}/{userId}', 'verb' => 'GET'], + ['name' => 'lost#setPassword', 'url' => '/lostpassword/set/{token}/{userId}', 'verb' => 'POST'], + ['name' => 'lost#showPasswordEmailForm', 'url' => '/newpassword/{userId}', 'verb' => 'GET'], + ['name' => 'lost#showNewPasswordForm', 'url' => '/newpassword', 'verb' => 'GET'], + ['name' => 'user#getDisplayNames', 'url' => '/displaynames', 'verb' => 'POST'], + ['name' => 'avatar#getAvatar', 'url' => '/avatar/{userId}/{size}', 'verb' => 'GET'], + ['name' => 'avatar#deleteAvatar', 'url' => '/avatar/', 'verb' => 'DELETE'], + ['name' => 'avatar#postCroppedAvatar', 'url' => '/avatar/cropped', 'verb' => 'POST'], + ['name' => 'avatar#getTmpAvatar', 'url' => '/avatar/tmp', 'verb' => 'GET'], + ['name' => 'avatar#postAvatar', 'url' => '/avatar/', 'verb' => 'POST'], + ['name' => 'GuestAvatar#getAvatar', 'url' => '/avatar/guest/{guestName}/{size}', 'verb' => 'GET'], + ['name' => 'CSRFToken#index', 'url' => '/csrftoken', 'verb' => 'GET'], + ['name' => 'login#tryLogin', 'url' => '/login', 'verb' => 'POST'], + ['name' => 'login#confirmPassword', 'url' => '/login/confirm', 'verb' => 'POST'], + ['name' => 'login#showLoginForm', 'url' => '/login', 'verb' => 'GET'], + ['name' => 'login#logout', 'url' => '/logout', 'verb' => 'GET'], + // Original login flow used by all clients + ['name' => 'ClientFlowLogin#showAuthPickerPage', 'url' => '/login/flow', 'verb' => 'GET'], + ['name' => 'ClientFlowLogin#generateAppPassword', 'url' => '/login/flow', 'verb' => 'POST'], + ['name' => 'ClientFlowLogin#grantPage', 'url' => '/login/flow/grant', 'verb' => 'GET'], + ['name' => 'ClientFlowLogin#apptokenRedirect', 'url' => '/login/flow/apptoken', 'verb' => 'POST'], + // NG login flow used by desktop client in case of Kerberos/fancy 2fa (smart cards for example) + ['name' => 'ClientFlowLoginV2#poll', 'url' => '/login/v2/poll', 'verb' => 'POST'], + ['name' => 'ClientFlowLoginV2#showAuthPickerPage', 'url' => '/login/v2/flow', 'verb' => 'GET'], + ['name' => 'ClientFlowLoginV2#landing', 'url' => '/login/v2/flow/{token}', 'verb' => 'GET'], + ['name' => 'ClientFlowLoginV2#grantPage', 'url' => '/login/v2/grant', 'verb' => 'GET'], + ['name' => 'ClientFlowLoginV2#generateAppPassword', 'url' => '/login/v2/grant', 'verb' => 'POST'], + ['name' => 'ClientFlowLoginV2#init', 'url' => '/login/v2', 'verb' => 'POST'], + ['name' => 'TwoFactorChallenge#selectChallenge', 'url' => '/login/selectchallenge', 'verb' => 'GET'], + ['name' => 'TwoFactorChallenge#showChallenge', 'url' => '/login/challenge/{challengeProviderId}', 'verb' => 'GET'], + ['name' => 'TwoFactorChallenge#solveChallenge', 'url' => '/login/challenge/{challengeProviderId}', 'verb' => 'POST'], + ['name' => 'TwoFactorChallenge#setupProviders', 'url' => 'login/setupchallenge', 'verb' => 'GET'], + ['name' => 'TwoFactorChallenge#setupProvider', 'url' => 'login/setupchallenge/{providerId}', 'verb' => 'GET'], + ['name' => 'TwoFactorChallenge#confirmProviderSetup', 'url' => 'login/setupchallenge/{providerId}', 'verb' => 'POST'], + ['name' => 'OCJS#getConfig', 'url' => '/core/js/oc.js', 'verb' => 'GET'], + ['name' => 'Preview#getPreviewByFileId', 'url' => '/core/preview', 'verb' => 'GET'], + ['name' => 'Preview#getPreview', 'url' => '/core/preview.png', 'verb' => 'GET'], + ['name' => 'Svg#getSvgFromCore', 'url' => '/svg/core/{folder}/{fileName}', 'verb' => 'GET'], + ['name' => 'Svg#getSvgFromApp', 'url' => '/svg/{app}/{fileName}', 'verb' => 'GET'], + ['name' => 'Css#getCss', 'url' => '/css/{appName}/{fileName}', 'verb' => 'GET'], + ['name' => 'Js#getJs', 'url' => '/js/{appName}/{fileName}', 'verb' => 'GET'], + ['name' => 'contactsMenu#index', 'url' => '/contactsmenu/contacts', 'verb' => 'POST'], + ['name' => 'contactsMenu#findOne', 'url' => '/contactsmenu/findOne', 'verb' => 'POST'], + ['name' => 'WalledGarden#get', 'url' => '/204', 'verb' => 'GET'], + ['name' => 'Search#search', 'url' => '/core/search', 'verb' => 'GET'], + ['name' => 'Wipe#checkWipe', 'url' => '/core/wipe/check', 'verb' => 'POST'], + ['name' => 'Wipe#wipeDone', 'url' => '/core/wipe/success', 'verb' => 'POST'], + + // Legacy routes that need to be globally available while they are handled by an app + ['name' => 'viewcontroller#showFile', 'url' => '/f/{fileid}', 'verb' => 'GET', 'app' => 'files'], + ['name' => 'sharecontroller#showShare', 'url' => '/s/{token}', 'verb' => 'GET', 'app' => 'files_sharing'], + ['name' => 'sharecontroller#showAuthenticate', 'url' => '/s/{token}/authenticate/{redirect}', 'verb' => 'GET', 'app' => 'files_sharing'], + ['name' => 'sharecontroller#authenticate', 'url' => '/s/{token}/authenticate/{redirect}', 'verb' => 'POST', 'app' => 'files_sharing'], + ['name' => 'sharecontroller#downloadShare', 'url' => '/s/{token}/download', 'verb' => 'GET', 'app' => 'files_sharing'], + ['name' => 'publicpreview#directLink', 'url' => '/s/{token}/preview', 'verb' => 'GET', 'app' => 'files_sharing'], + ['name' => 'requesthandlercontroller#addShare', 'url' => '/ocm/shares', 'verb' => 'POST', 'app' => 'cloud_federation_api'], + ['name' => 'requesthandlercontroller#receiveNotification', 'url' => '/ocm/notifications', 'verb' => 'POST', 'app' => 'cloud_federation_api'], + ['name' => 'pagecontroller#showCall', 'url' => '/call/{token}', 'verb' => 'GET', 'app' => 'spreed'], + ['name' => 'pagecontroller#authenticatePassword', 'url' => '/call/{token}', 'verb' => 'POST', 'app' => 'spreed'], + ], + 'ocs' => [ + ['root' => '/cloud', 'name' => 'OCS#getCapabilities', 'url' => '/capabilities', 'verb' => 'GET'], + ['root' => '', 'name' => 'OCS#getConfig', 'url' => '/config', 'verb' => 'GET'], + ['root' => '/person', 'name' => 'OCS#personCheck', 'url' => '/check', 'verb' => 'POST'], + ['root' => '/identityproof', 'name' => 'OCS#getIdentityProof', 'url' => '/key/{cloudId}', 'verb' => 'GET'], + ['root' => '/core', 'name' => 'Navigation#getAppsNavigation', 'url' => '/navigation/apps', 'verb' => 'GET'], + ['root' => '/core', 'name' => 'Navigation#getSettingsNavigation', 'url' => '/navigation/settings', 'verb' => 'GET'], + ['root' => '/core', 'name' => 'AutoComplete#get', 'url' => '/autocomplete/get', 'verb' => 'GET'], + ['root' => '/core', 'name' => 'WhatsNew#get', 'url' => '/whatsnew', 'verb' => 'GET'], + ['root' => '/core', 'name' => 'WhatsNew#dismiss', 'url' => '/whatsnew', 'verb' => 'POST'], + ['root' => '/core', 'name' => 'AppPassword#getAppPassword', 'url' => '/getapppassword', 'verb' => 'GET'], + ['root' => '/core', 'name' => 'AppPassword#deleteAppPassword', 'url' => '/apppassword', 'verb' => 'DELETE'], + + ['root' => '/collaboration', 'name' => 'CollaborationResources#searchCollections', 'url' => '/resources/collections/search/{filter}', 'verb' => 'GET'], + ['root' => '/collaboration', 'name' => 'CollaborationResources#listCollection', 'url' => '/resources/collections/{collectionId}', 'verb' => 'GET'], + ['root' => '/collaboration', 'name' => 'CollaborationResources#renameCollection', 'url' => '/resources/collections/{collectionId}', 'verb' => 'PUT'], + ['root' => '/collaboration', 'name' => 'CollaborationResources#addResource', 'url' => '/resources/collections/{collectionId}', 'verb' => 'POST'], + + ['root' => '/collaboration', 'name' => 'CollaborationResources#removeResource', 'url' => '/resources/collections/{collectionId}', 'verb' => 'DELETE'], + ['root' => '/collaboration', 'name' => 'CollaborationResources#getCollectionsByResource', 'url' => '/resources/{resourceType}/{resourceId}', 'verb' => 'GET'], + ['root' => '/collaboration', 'name' => 'CollaborationResources#createCollectionOnResource', 'url' => '/resources/{baseResourceType}/{baseResourceId}', 'verb' => 'POST'], + ], +]); + +// Post installation check + +/** @var $this OCP\Route\IRouter */ +// Core ajax actions +// Routing +$this->create('core_ajax_update', '/core/ajax/update.php') + ->actionInclude('core/ajax/update.php'); diff --git a/core/templates/lostpassword/newpassword.php b/core/templates/lostpassword/newpassword.php new file mode 100644 index 0000000000000..493a1569e8f28 --- /dev/null +++ b/core/templates/lostpassword/newpassword.php @@ -0,0 +1,130 @@ + + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see . + * + */ +style('core', 'lostpassword/resetpassword'); + +script('core', 'visitortimezone'); +script('core', 'lostpassword/newpassword'); +use OC\Core\Controller\LostController; +?> + + +
+
+ '); + } ?> + +
+
+
+ + +
+ t('An internal error occurred.')); ?>
+ t('Please try again or contact your administrator.')); ?> + + t('email')); ?> : + + + + +
+ + + + +
+ +
+ + +

+ + + autocomplete="" autocapitalize="none" autocorrect="off" required /> + +

+ + +
+ +
+
+ +
+ + + + + + + + + + + + +

+ t("Please try again or contact %s.",$_['administrator_email'])); ?> +

+ +
+ + + + 5000) { ?> +

+ t('We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds.')); ?> +

+ + + + + + +
+
\ No newline at end of file diff --git a/lib/private/SystemConfig.php b/lib/private/SystemConfig.php index 444e5842437a4..9994654876e9d 100644 --- a/lib/private/SystemConfig.php +++ b/lib/private/SystemConfig.php @@ -1,170 +1,171 @@ - - * @author Johannes Schlichenmaier - * @author Lukas Reschke - * @author Morris Jobke - * @author Roeland Jago Douma - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program 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, version 3, - * along with this program. If not, see - * - */ - -namespace OC; - - -use OCP\IConfig; - -/** - * Class which provides access to the system config values stored in config.php - * Internal class for bootstrap only. - * fixes cyclic DI: AllConfig needs AppConfig needs Database needs AllConfig - */ -class SystemConfig { - - /** @var array */ - protected $sensitiveValues = [ - 'instanceid' => true, - 'datadirectory' => true, - 'dbname' => true, - 'dbhost' => true, - 'dbpassword' => true, - 'dbuser' => true, - 'mail_from_address' => true, - 'mail_domain' => true, - 'mail_smtphost' => true, - 'mail_smtpname' => true, - 'mail_smtppassword' => true, - 'passwordsalt' => true, - 'secret' => true, - 'updater.secret' => true, - 'trusted_proxies' => true, - 'proxyuserpwd' => true, - 'log.condition' => [ - 'shared_secret' => true, - ], - 'license-key' => true, - 'redis' => [ - 'host' => true, - 'password' => true, - ], - 'objectstore' => [ - 'arguments' => [ - 'password' => true, - 'options' => [ - 'credentials' => [ - 'key' => true, - 'secret' => true, - ] - ] - ], - ], - ]; - - /** @var Config */ - private $config; - - public function __construct(Config $config) { - $this->config = $config; - } - - /** - * Lists all available config keys - * @return array an array of key names - */ - public function getKeys() { - return $this->config->getKeys(); - } - - /** - * Sets a new system wide value - * - * @param string $key the key of the value, under which will be saved - * @param mixed $value the value that should be stored - */ - public function setValue($key, $value) { - $this->config->setValue($key, $value); - } - - /** - * Sets and deletes values and writes the config.php - * - * @param array $configs Associative array with `key => value` pairs - * If value is null, the config key will be deleted - */ - public function setValues(array $configs) { - $this->config->setValues($configs); - } - - /** - * Looks up a system wide defined value - * - * @param string $key the key of the value, under which it was saved - * @param mixed $default the default value to be returned if the value isn't set - * @return mixed the value or $default - */ - public function getValue($key, $default = '') { - return $this->config->getValue($key, $default); - } - - /** - * Looks up a system wide defined value and filters out sensitive data - * - * @param string $key the key of the value, under which it was saved - * @param mixed $default the default value to be returned if the value isn't set - * @return mixed the value or $default - */ - public function getFilteredValue($key, $default = '') { - $value = $this->getValue($key, $default); - - if (isset($this->sensitiveValues[$key])) { - $value = $this->removeSensitiveValue($this->sensitiveValues[$key], $value); - } - - return $value; - } - - /** - * Delete a system wide defined value - * - * @param string $key the key of the value, under which it was saved - */ - public function deleteValue($key) { - $this->config->deleteKey($key); - } - - /** - * @param bool|array $keysToRemove - * @param mixed $value - * @return mixed - */ - protected function removeSensitiveValue($keysToRemove, $value) { - if ($keysToRemove === true) { - return IConfig::SENSITIVE_VALUE; - } - - if (is_array($value)) { - foreach ($keysToRemove as $keyToRemove => $valueToRemove) { - if (isset($value[$keyToRemove])) { - $value[$keyToRemove] = $this->removeSensitiveValue($valueToRemove, $value[$keyToRemove]); - } - } - } - - return $value; - } -} + + * @author Johannes Schlichenmaier + * @author Lukas Reschke + * @author Morris Jobke + * @author Roeland Jago Douma + * + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program 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, version 3, + * along with this program. If not, see + * + */ + +namespace OC; + + +use OCP\IConfig; + +/** + * Class which provides access to the system config values stored in config.php + * Internal class for bootstrap only. + * fixes cyclic DI: AllConfig needs AppConfig needs Database needs AllConfig + */ +class SystemConfig { + + /** @var array */ + protected $sensitiveValues = [ + 'instanceid' => true, + 'datadirectory' => true, + 'dbname' => true, + 'dbhost' => true, + 'dbpassword' => true, + 'dbuser' => true, + 'administrator_email' => true, + 'mail_from_address' => true, + 'mail_domain' => true, + 'mail_smtphost' => true, + 'mail_smtpname' => true, + 'mail_smtppassword' => true, + 'passwordsalt' => true, + 'secret' => true, + 'updater.secret' => true, + 'trusted_proxies' => true, + 'proxyuserpwd' => true, + 'log.condition' => [ + 'shared_secret' => true, + ], + 'license-key' => true, + 'redis' => [ + 'host' => true, + 'password' => true, + ], + 'objectstore' => [ + 'arguments' => [ + 'password' => true, + 'options' => [ + 'credentials' => [ + 'key' => true, + 'secret' => true, + ] + ] + ], + ], + ]; + + /** @var Config */ + private $config; + + public function __construct(Config $config) { + $this->config = $config; + } + + /** + * Lists all available config keys + * @return array an array of key names + */ + public function getKeys() { + return $this->config->getKeys(); + } + + /** + * Sets a new system wide value + * + * @param string $key the key of the value, under which will be saved + * @param mixed $value the value that should be stored + */ + public function setValue($key, $value) { + $this->config->setValue($key, $value); + } + + /** + * Sets and deletes values and writes the config.php + * + * @param array $configs Associative array with `key => value` pairs + * If value is null, the config key will be deleted + */ + public function setValues(array $configs) { + $this->config->setValues($configs); + } + + /** + * Looks up a system wide defined value + * + * @param string $key the key of the value, under which it was saved + * @param mixed $default the default value to be returned if the value isn't set + * @return mixed the value or $default + */ + public function getValue($key, $default = '') { + return $this->config->getValue($key, $default); + } + + /** + * Looks up a system wide defined value and filters out sensitive data + * + * @param string $key the key of the value, under which it was saved + * @param mixed $default the default value to be returned if the value isn't set + * @return mixed the value or $default + */ + public function getFilteredValue($key, $default = '') { + $value = $this->getValue($key, $default); + + if (isset($this->sensitiveValues[$key])) { + $value = $this->removeSensitiveValue($this->sensitiveValues[$key], $value); + } + + return $value; + } + + /** + * Delete a system wide defined value + * + * @param string $key the key of the value, under which it was saved + */ + public function deleteValue($key) { + $this->config->deleteKey($key); + } + + /** + * @param bool|array $keysToRemove + * @param mixed $value + * @return mixed + */ + protected function removeSensitiveValue($keysToRemove, $value) { + if ($keysToRemove === true) { + return IConfig::SENSITIVE_VALUE; + } + + if (is_array($value)) { + foreach ($keysToRemove as $keyToRemove => $valueToRemove) { + if (isset($value[$keyToRemove])) { + $value[$keyToRemove] = $this->removeSensitiveValue($valueToRemove, $value[$keyToRemove]); + } + } + } + + return $value; + } +}