diff --git a/debian/changelog b/debian/changelog index 5550e42a4..d7ed0ca33 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,37 @@ +freedombox (25.9) unstable; urgency=medium + + [ klu2300030052 ] + * Translated using Weblate (Telugu) + + [ klu2300090005 ] + * Translated using Weblate (Hindi) + + [ John Doe ] + * Translated using Weblate (French) + + [ Bekkam B S M G Babi ] + * Translated using Weblate (Telugu) + + [ Thulasi Edhala ] + * Translated using Weblate (Telugu) + * Translated using Weblate (Hindi) + + [ swaroop02-cse ] + * Translated using Weblate (Telugu) + + [ Torra-Merin ] + * Added translation using Weblate (Catalan) + * Translated using Weblate (Catalan) + + [ Sunil Mohan Adapa ] + * minetest: Work with new luanti binary in Trixie + * minetest: Create the configuration directory if necessary for Trixie + + [ James Valleroy ] + * doc: Fetch latest manual + + -- James Valleroy Mon, 05 May 2025 20:29:19 -0400 + freedombox (25.8~bpo12+1) bookworm-backports; urgency=medium * Rebuild for bookworm-backports. diff --git a/doc/manual/en/Nextcloud.raw.wiki b/doc/manual/en/Nextcloud.raw.wiki index c8b0ad2b0..946122daf 100644 --- a/doc/manual/en/Nextcloud.raw.wiki +++ b/doc/manual/en/Nextcloud.raw.wiki @@ -13,8 +13,6 @@ '''Available since''': !FreedomBox 24.8 -Nextcloud is considered experimental in !FreedomBox having to do with the integration of the Nextcloud container in the !FreedomBox system. - === What is Nextcloud? === This page is new and needs a Nexcloud user to help with the content. This could be you! @@ -41,6 +39,7 @@ If you are a Nextcloud user share how this is done. * Upstream Project: https://nextcloud.com/ * Upstream documentation: https://nextcloud.com/support/ * Upstream support forum: https://help.nextcloud.com/ + * The source code for the container image used by !FreedomBox: https://github.com/nextcloud/docker * Debian Nextcloud wiki: https://wiki.debian.org/Nextcloud {{{#!wiki comment diff --git a/doc/manual/en/ReleaseNotes.raw.wiki b/doc/manual/en/ReleaseNotes.raw.wiki index 545c76ee2..fdef425b2 100644 --- a/doc/manual/en/ReleaseNotes.raw.wiki +++ b/doc/manual/en/ReleaseNotes.raw.wiki @@ -8,6 +8,13 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f The following are the release notes for each !FreedomBox version. +== FreedomBox 25.9 (2025-05-05) == + + * locale: Add translation for Catalan + * locale: Update translations for French, Hindi, Telugu + * minetest: Create the configuration directory if necessary for Trixie + * minetest: Work with new luanti binary in Trixie + == FreedomBox 25.8 (2025-04-21) == === Highlights === diff --git a/doc/manual/es/ReleaseNotes.raw.wiki b/doc/manual/es/ReleaseNotes.raw.wiki index 545c76ee2..fdef425b2 100644 --- a/doc/manual/es/ReleaseNotes.raw.wiki +++ b/doc/manual/es/ReleaseNotes.raw.wiki @@ -8,6 +8,13 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f The following are the release notes for each !FreedomBox version. +== FreedomBox 25.9 (2025-05-05) == + + * locale: Add translation for Catalan + * locale: Update translations for French, Hindi, Telugu + * minetest: Create the configuration directory if necessary for Trixie + * minetest: Work with new luanti binary in Trixie + == FreedomBox 25.8 (2025-04-21) == === Highlights === diff --git a/plinth/__init__.py b/plinth/__init__.py index daa4e46f5..382d1029f 100644 --- a/plinth/__init__.py +++ b/plinth/__init__.py @@ -3,4 +3,4 @@ Package init file. """ -__version__ = '25.8' +__version__ = '25.9' diff --git a/plinth/locale/ca/LC_MESSAGES/django.po b/plinth/locale/ca/LC_MESSAGES/django.po new file mode 100644 index 000000000..e45fcf186 --- /dev/null +++ b/plinth/locale/ca/LC_MESSAGES/django.po @@ -0,0 +1,9325 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-04-21 20:08-0400\n" +"PO-Revision-Date: 2025-05-02 22:04+0000\n" +"Last-Translator: Torra-Merin \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.12-dev\n" + +#: config.py:103 +#, python-brace-format +msgid "Static configuration {etc_path} is setup properly" +msgstr "La configuració estàtica {etc_path} s'ha establert correctament" + +#: context_processors.py:21 views.py:168 +msgid "FreedomBox" +msgstr "FreedomBox" + +#: daemon.py:124 +#, python-brace-format +msgid "Service {service_name} is running" +msgstr "El servei {service_name} està en marxa" + +#: daemon.py:222 +#, python-brace-format +msgid "Listening on {kind} port {listen_address}:{port}" +msgstr "Escoltant a {kind} port {listen_address}:{port}" + +#: daemon.py:225 +#, python-brace-format +msgid "Listening on {kind} port {port}" +msgstr "Escoltant a {kind} port {port}" + +#: daemon.py:296 +#, python-brace-format +msgid "Connect to {host}:{port}" +msgstr "Connecta't a {host}:{port}" + +#: daemon.py:304 +#, python-brace-format +msgid "Cannot connect to {host}:{port}" +msgstr "No s'ha pogut connectar a {host}:{port}" + +#: forms.py:36 +msgid "Backup app before uninstall" +msgstr "Fes una còpia de seguretat de l'aplicació abans de desinstal·lar-la" + +#: forms.py:37 +msgid "Restoring from the backup will restore app data." +msgstr "" +"La recuperació d'una còpia de seguretat restaurarà les dades de l'aplicació." + +#: forms.py:39 +msgid "Repository to backup to" +msgstr "Repositori des d'on recuperar" + +#: forms.py:64 +msgid "Select a domain name to be used with this application" +msgstr "Selecciona un nom de domini per utilitzar-lo amb aquesta aplicació" + +#: forms.py:66 +msgid "" +"Warning! The application may not work properly if domain name is changed " +"later." +msgstr "" +"Compte! L'aplicació podria no funcionar correctament si el nom del domini es " +"canvia més tard." + +#: forms.py:80 modules/coturn/forms.py:31 modules/mumble/forms.py:21 +msgid "TLS domain" +msgstr "Domini TLS" + +#: forms.py:82 modules/coturn/forms.py:33 modules/mumble/forms.py:23 +msgid "" +"Select a domain to use TLS with. If the list is empty, please configure at " +"least one domain with certificates." +msgstr "" +"Selecciona un domini amb el que utilitzar TLS. Si la llista és buida, " +"configura com a mínim un domini amb certificats si us plau." + +#: forms.py:92 +msgid "Language" +msgstr "Llengua" + +#: forms.py:93 +msgid "Language to use for presenting this web interface" +msgstr "Llengua que s'utilitzarà per presentar aquesta interfície web" + +#: forms.py:100 +msgid "Use the language preference set in the browser" +msgstr "Utilitza la configuració de llengua del navegador" + +#: menu.py:116 templates/base.html:120 +msgid "Home" +msgstr "Inici" + +#: menu.py:117 templates/base.html:129 +msgid "Apps" +msgstr "Aplicacions" + +#: menu.py:119 menu.py:126 templates/base.html:138 +msgid "System" +msgstr "Sistema" + +#: menu.py:122 +msgid "Visibility" +msgstr "Visibilitat" + +#: menu.py:124 +msgid "Data" +msgstr "Dades" + +#: menu.py:128 modules/networks/templates/connection_show.html:274 +#: modules/security/__init__.py:35 modules/upgrades/manifest.py:10 +msgid "Security" +msgstr "Seguretat" + +#: menu.py:130 +msgid "Administration" +msgstr "Administració" + +#: middleware.py:134 +msgid "System is possibly under heavy load. Please retry later." +msgstr "" +"Segurament el sistema es troba sota molta càrrega. Si us plau, intenta-ho " +"més tard." + +#: middleware.py:147 +#, python-brace-format +msgid "Page not found: {url}" +msgstr "Pàgina no trobada: {url}" + +#: middleware.py:150 +msgid "Error running operation." +msgstr "Error al intentar la operació." + +#: middleware.py:152 +msgid "Error loading page." +msgstr "Error al carregar la pàgina." + +#: modules/apache/__init__.py:32 +msgid "Apache HTTP Server" +msgstr "Servidor HTTP d'Apache" + +#: modules/apache/__init__.py:46 +msgid "Web Server" +msgstr "Servidor Web" + +#: modules/apache/__init__.py:52 +#, python-brace-format +msgid "{box_name} Web Interface (Plinth)" +msgstr "{box_name} Interfície Web (Plinth)" + +#: modules/apache/components.py:162 +#, python-brace-format +msgid "Access URL {url} on tcp{kind}" +msgstr "Accedeix a l'URL {url} a tcp{kind}" + +#: modules/apache/components.py:165 +#, python-brace-format +msgid "Access URL {url}" +msgstr "Accedeix a l'URL {url}" + +#: modules/avahi/__init__.py:24 +#, python-brace-format +msgid "" +"Service discovery allows other devices on the network to discover your " +"{box_name} and services running on it. It also allows {box_name} to " +"discover other devices and services running on your local network. Service " +"discovery is not essential and works only on internal networks. It may be " +"disabled to improve security especially when connecting to a hostile local " +"network." +msgstr "" +"La descoberta de serveis permet a altres dispositius de la xarxa que " +"descobreixin la teva {box_name} i els serveis que té. També permet a la teva " +"{box_name} descobrir altres serveis que funcionen a la teva xarxa local. La " +"descoberta de serveis no és essencial i només funciona amb xarxes internes. " +"Pot ser deshabilitada per augmentar la seguretat, especialment si et " +"connectes a una xarxa local hostil." + +#: modules/avahi/__init__.py:47 +msgid "Service Discovery" +msgstr "Descoberta de Serveis" + +#: modules/avahi/__init__.py:62 +msgid "Local Network Domain" +msgstr "Domini de la Xarxa Local" + +#: modules/avahi/manifest.py:14 +msgid "Auto-discovery" +msgstr "Descobriment Automàtic" + +#: modules/avahi/manifest.py:14 modules/backups/manifest.py:17 +msgid "Local" +msgstr "Local" + +#: modules/avahi/manifest.py:14 +msgid "mDNS" +msgstr "mDNS" + +#: modules/backups/__init__.py:24 +msgid "Backups allows creating and managing backup archives." +msgstr "" +"Còpies de Seguretat permet crear i gestionar arxius de còpia de seguretat." + +#: modules/backups/__init__.py:44 modules/backups/__init__.py:174 +#: modules/backups/__init__.py:219 +msgid "Backups" +msgstr "Còpies de Seguretat" + +#: modules/backups/__init__.py:171 +msgid "" +"Enable an automatic backup schedule for data safety. Prefer an encrypted " +"remote backup location or an extra attached disk." +msgstr "" +"Activa una programació automàtica de còpies de seguretat per garantir la " +"seguretat de les dades. Prefereix una ubicació de còpia de seguretat remota " +"xifrada o un disc addicional connectat." + +#: modules/backups/__init__.py:177 +msgid "Enable a Backup Schedule" +msgstr "Activa una programació de Còpies de Seguretat" + +#: modules/backups/__init__.py:181 modules/backups/__init__.py:228 +#: modules/privacy/__init__.py:84 modules/storage/__init__.py:326 +#: modules/upgrades/__init__.py:152 +#, python-brace-format +msgid "Go to {app_name}" +msgstr "Ves a {app_name}" + +#: modules/backups/__init__.py:216 +#, python-brace-format +msgid "" +"A scheduled backup failed. Past {error_count} attempts for backup did not " +"succeed. The latest error is: {error_message}" +msgstr "" +"Ha fallat una còpia de seguretat programada. Els darrers {error_count} " +"intents de còpia de seguretat no han tingut èxit. L’últim error és: " +"{error_message}" + +#: modules/backups/__init__.py:224 +msgid "Error During Backup" +msgstr "Error al fer la Còpia de Seguretat" + +#: modules/backups/forms.py:34 +#, python-brace-format +msgid "{app} (No data to backup)" +msgstr "{app} (No hi ha dades per fer una còpia de seguretat)" + +#: modules/backups/forms.py:54 +msgid "Enable scheduled backups" +msgstr "Habilita les còpies de seguretat programades" + +#: modules/backups/forms.py:55 +msgid "" +"If enabled, a backup is taken every day, every week and every month. Older " +"backups are removed." +msgstr "" +"Si està activat, es fa una còpia de seguretat cada dia, cada setmana i cada " +"mes. Les còpies de seguretat antigues s’eliminen." + +#: modules/backups/forms.py:59 +msgid "Number of daily backups to keep" +msgstr "Número de còpies de seguretat diàries a mantenir" + +#: modules/backups/forms.py:60 +msgid "" +"This many latest backups are kept and the rest are removed. A value of \"0\" " +"disables backups of this type. Triggered at specified hour every day." +msgstr "" +"Es conserven aquest nombre de còpies de seguretat més recents i la resta s’" +"eliminen. Un valor de «0» desactiva les còpies de seguretat d’aquest tipus. " +"Es duen a terme cada dia a l’hora especificada." + +#: modules/backups/forms.py:65 +msgid "Number of weekly backups to keep" +msgstr "Número de còpies de seguretat setmanals a mantenir" + +#: modules/backups/forms.py:67 +msgid "" +"This many latest backups are kept and the rest are removed. A value of \"0\" " +"disables backups of this type. Triggered at specified hour every Sunday." +msgstr "" +"Es conserven aquest nombre de còpies de seguretat més recents i la resta s’" +"eliminen. Un valor de «0» desactiva les còpies de seguretat d’aquest tipus. " +"S’executa a l’hora especificada cada diumenge." + +#: modules/backups/forms.py:72 +msgid "Number of monthly backups to keep" +msgstr "Número de còpies de seguretat mensuals a mantenir" + +#: modules/backups/forms.py:74 +msgid "" +"This many latest backups are kept and the rest are removed. A value of \"0\" " +"disables backups of this type. Triggered at specified hour first day of " +"every month." +msgstr "" +"Es conserven aquest nombre de còpies de seguretat més recents i la resta s’" +"eliminen. Un valor de «0» desactiva les còpies de seguretat d’aquest tipus. " +"S’executa a l’hora especificada el primer dia de cada mes." + +#: modules/backups/forms.py:79 +msgid "Hour of the day to trigger backup operation" +msgstr "Hora del dia per activar l'operació de còpia de seguretat" + +#: modules/backups/forms.py:81 +msgid "" +"In 24 hour format. Services may become temporarily unavailable while running " +"backup operation at this time of the day." +msgstr "" +"En format de 24 hores. Els serveis poden quedar temporalment inaccessibles " +"mentre s'executa l'operació de còpia de seguretat a aquesta hora del dia." + +#: modules/backups/forms.py:85 modules/backups/forms.py:107 +msgid "Included apps" +msgstr "Aplicacions incloses" + +#: modules/backups/forms.py:85 modules/backups/forms.py:107 +msgid "Apps to include in the backup" +msgstr "Aplicacions que s'inclouran a la còpia de seguretat" + +#: modules/backups/forms.py:101 +msgid "Repository" +msgstr "Repositori" + +#: modules/backups/forms.py:103 +#: modules/backups/templates/backups_delete.html:17 modules/ikiwiki/forms.py:15 +#: modules/networks/templates/connection_show.html:75 +#: modules/samba/templates/samba.html:66 +#: modules/sharing/templates/sharing.html:32 +msgid "Name" +msgstr "Nom" + +#: modules/backups/forms.py:104 +msgid "(Optional) Set a name for this backup archive" +msgstr "(Opcional) Tria un nom per aquest arxiu de còpia de seguretat" + +#: modules/backups/forms.py:125 +msgid "Select the apps you want to restore" +msgstr "Selecciona les aplicacions que vols restaurar" + +#: modules/backups/forms.py:141 modules/kiwix/forms.py:21 +msgid "Upload File" +msgstr "Penja un Fitxer" + +#: modules/backups/forms.py:143 +msgid "Backup files have to be in .tar.gz format" +msgstr "Els arxius de còpia de seguretat han d'estar en un format .tar.gz" + +#: modules/backups/forms.py:145 +#, python-brace-format +msgid "" +"Select the backup file to upload from the local computer. This must be a " +"file previously downloaded from the result of a successful backup on a " +"{box_name}. It must have a .tar.gz extension." +msgstr "" +"Selecciona el fitxer de còpia de seguretat per pujar des de l'ordinador " +"local. Aquest ha de ser un fitxer prèviament descarregat dels resultats " +"d'una còpia de seguretat exitosa en un {box_name}. Ha de tenir l'extensió " +".tar.gz." + +#: modules/backups/forms.py:154 +msgid "Repository path format incorrect." +msgstr "Camí del repositori en format incorrecte." + +#: modules/backups/forms.py:161 +#, python-brace-format +msgid "Invalid username: {username}" +msgstr "Nom d'usuari incorrecte: {username}" + +#: modules/backups/forms.py:171 +#, python-brace-format +msgid "Invalid hostname: {hostname}" +msgstr "Nom d'amfitrió no vàlid: {hostname}" + +#: modules/backups/forms.py:175 +#, python-brace-format +msgid "Invalid directory path: {dir_path}" +msgstr "Ruta de directori no vàlida: {dir_path}" + +#: modules/backups/forms.py:181 modules/letsencrypt/manifest.py:11 +msgid "Encryption" +msgstr "Encriptació" + +#: modules/backups/forms.py:182 +msgid "" +"\"Key in Repository\" means that a password-protected key is stored with the " +"backup." +msgstr "" +"\"Clau al repositori\" significa que una clau protegida per contrasenya està " +"emmagatzemada amb la còpia de seguretat." + +#: modules/backups/forms.py:184 +msgid "Key in Repository" +msgstr "Clau al Repositori" + +#: modules/backups/forms.py:184 +#: modules/matrixsynapse/templates/matrix-synapse.html:67 +#: modules/searx/forms.py:14 +msgid "None" +msgstr "Cap" + +#: modules/backups/forms.py:186 modules/networks/forms.py:340 +msgid "Passphrase" +msgstr "Contrasenya" + +#: modules/backups/forms.py:187 +msgid "Passphrase; Only needed when using encryption." +msgstr "Contrasenya; Només es necessita si s'utilitza encriptació." + +#: modules/backups/forms.py:190 +msgid "Confirm Passphrase" +msgstr "Confirma la Contrasenya" + +#: modules/backups/forms.py:190 +msgid "Repeat the passphrase." +msgstr "Repeteix la Contrasenya." + +#: modules/backups/forms.py:201 +msgid "The entered encryption passphrases do not match" +msgstr "Les contrasenyes d'encriptació que s'han introduït no coincideixen" + +#: modules/backups/forms.py:205 +msgid "Passphrase is needed for encryption." +msgstr "La contrasenya és necessària per a poder encriptar." + +#: modules/backups/forms.py:240 +msgid "Select Disk or Partition" +msgstr "Selecciona un Disc o Partició" + +#: modules/backups/forms.py:241 +msgid "Backups will be stored in the directory FreedomBoxBackups" +msgstr "Les còpies de seguretat es desaran al directori FreedomBoxBackups" + +#: modules/backups/forms.py:250 +msgid "SSH Repository Path" +msgstr "Camí del Repositori SSH" + +#: modules/backups/forms.py:251 +msgid "" +"Path of a new or existing repository. Example: user@host:~/path/to/repo/" +msgstr "" +"Ruta d'un repositori nou o existent. Exemple: user@host:~/path/to/repo/" +"" + +#: modules/backups/forms.py:255 +msgid "SSH server password" +msgstr "Contrasenya del Servidor SSH" + +#: modules/backups/forms.py:256 +msgid "" +"Password of the SSH Server.
SSH key-based authentication is not yet " +"possible." +msgstr "" +"Contrasenya del servidor SSH.
L'autenticació mitjançant clau SSH encara " +"no és possible." + +#: modules/backups/forms.py:275 +msgid "Remote backup repository already exists." +msgstr "El repositori de còpies de seguretat remot ja existeix." + +#: modules/backups/forms.py:281 +msgid "Select verified SSH public key" +msgstr "Selecciona la clau pública SSH verificada" + +#: modules/backups/manifest.py:14 +#: modules/backups/templates/backups_repository.html:92 +#: modules/backups/templates/backups_restore.html:27 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 +#: templates/toolbar.html:44 templates/toolbar.html:45 +msgid "Restore" +msgstr "Restaurar" + +#: modules/backups/manifest.py:15 +msgid "Encrypted" +msgstr "Encriptat" + +#: modules/backups/manifest.py:16 +msgid "Schedules" +msgstr "Programat" + +#: modules/backups/manifest.py:18 +msgid "Remote" +msgstr "Remot" + +#: modules/backups/manifest.py:19 +msgid "App data" +msgstr "Dades d'aplicació" + +#: modules/backups/manifest.py:20 +#: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15 +#: modules/miniflux/templates/miniflux.html:12 +#: modules/snapshot/templates/snapshot.html:13 templates/app.html:52 +msgid "Configuration" +msgstr "Configuració" + +#: modules/backups/manifest.py:21 +msgid "Borg" +msgstr "Borg" + +#: modules/backups/privileged.py:34 +msgid "" +"Connection refused - make sure you provided correct credentials and the " +"server is running." +msgstr "" +"Connexió refusada: assegura't d'haver proporcionat les credencials correctes " +"i que el servidor està en funcionament." + +#: modules/backups/privileged.py:41 +msgid "Connection refused" +msgstr "Connexió rebutjada" + +#: modules/backups/privileged.py:48 +msgid "Repository not found" +msgstr "Repositori no trobat" + +#: modules/backups/privileged.py:53 +msgid "Incorrect encryption passphrase" +msgstr "Contrasenya d'encriptació incorrecta" + +#: modules/backups/privileged.py:58 +msgid "SSH access denied" +msgstr "Accés SSH denegat" + +#: modules/backups/privileged.py:64 +msgid "Repository path is neither empty nor is an existing backups repository." +msgstr "" +"La ruta del repositori no està buida ni és un repositori de còpies de " +"seguretat existent." + +#: modules/backups/privileged.py:77 +msgid "An archive with given name already exists in the repository." +msgstr "Ja existeix un arxiu amb aquest nom al repositori." + +#: modules/backups/privileged.py:84 +msgid "Archive with given name was not found in the repository." +msgstr "No s'ha trobat cap arxiu amb aquest nom al repositori." + +#: modules/backups/privileged.py:90 +msgid "Backup system is busy with another operation." +msgstr "El sistema de còpies de seguretat està ocupat amb una altra operació." + +#: modules/backups/privileged.py:95 +msgid "Not enough space left on the disk or remote location." +msgstr "No hi ha prou espai disponible al disc o a la ubicació remota." + +#: modules/backups/repository.py:94 +msgid "Existing repository is not encrypted." +msgstr "El repositori existent no està xifrat." + +#: modules/backups/repository.py:289 +#, python-brace-format +msgid "{box_name} storage" +msgstr "Emmagatzematge de {box_name}" + +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 +msgid "Create a new backup" +msgstr "Crea una còpia de seguretat nova" + +#: modules/backups/templates/backups.html:21 +msgid "Create Backup" +msgstr "Crea una còpia de seguretat" + +#: modules/backups/templates/backups.html:24 +msgid "Upload and restore a backup archive" +msgstr "Penja i restaura un arxiu de còpia de seguretat" + +#: modules/backups/templates/backups.html:28 +msgid "Upload and Restore" +msgstr "Penja i restaura" + +#: modules/backups/templates/backups.html:31 +msgid "Add a backup location" +msgstr "Afegeix una ubicació de còpia de seguretat" + +#: modules/backups/templates/backups.html:35 +msgid "Add Backup Location" +msgstr "Afegeix ubicació de còpia de seguretat" + +#: modules/backups/templates/backups.html:38 +msgid "Add a remote backup location" +msgstr "Afegeix una ubicació de còpia de seguretat remota" + +#: modules/backups/templates/backups.html:42 +msgid "Add Remote Backup Location" +msgstr "Afegeix ubicació de còpia de seguretat remota" + +#: modules/backups/templates/backups.html:46 +msgid "Existing Backups" +msgstr "Còpies de seguretat existents" + +#: modules/backups/templates/backups_add_remote_repository.html:21 +#: modules/backups/templates/backups_upload.html:28 +#: modules/backups/templates/verify_ssh_hostkey.html:27 +#: modules/diagnostics/templates/diagnostics_full.html:60 +#: modules/help/templates/help_about.html:22 +#: modules/help/templates/statuslog.html:24 +#: modules/kiwix/templates/kiwix-add-package.html:26 +#: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 +#: modules/names/templates/names.html:159 +#: modules/networks/templates/connection_show.html:24 +#: modules/pagekite/templates/pagekite_custom_services.html:16 +#: modules/power/templates/power_busy_warning.html:11 +#: modules/snapshot/templates/snapshot_not_supported.html:13 +#: modules/upgrades/templates/backports-firstboot.html:35 +#: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:17 +#: modules/upgrades/templates/upgrades-dist-upgrade.html:45 +#: modules/upgrades/templates/upgrades_configure.html:84 +#: modules/users/templates/users_firstboot.html:34 templates/app.html:31 +#: templates/messages.html:17 templates/setup.html:43 templates/setup.html:58 +msgid "Caution:" +msgstr "Precaució:" + +#: modules/backups/templates/backups_add_remote_repository.html:24 +#, python-format +msgid "" +"The credentials for this repository are stored on your %(box_name)s.
" +"To restore a backup on a new %(box_name)s you need the SSH credentials and, " +"if chosen, the encryption passphrase." +msgstr "" +"Les credencials per a aquest repositori estan emmagatzemades al teu " +"%(box_name)s.
Per restaurar una còpia de seguretat en un nou %(box_name)" +"s necessites les credencials SSH i, si s'ha escollit, la frase de pas de " +"xifratge." + +#: modules/backups/templates/backups_add_remote_repository.html:34 +msgid "Create Location" +msgstr "Crea una ubicació" + +#: modules/backups/templates/backups_add_repository.html:19 +#: modules/gitweb/views.py:51 +msgid "Create Repository" +msgstr "Crea un repositori" + +#: modules/backups/templates/backups_delete.html:12 +msgid "Delete this archive permanently?" +msgstr "Vols eliminar aquest arxiu permanentment?" + +#: modules/backups/templates/backups_delete.html:18 +msgid "Time" +msgstr "Temps" + +#: modules/backups/templates/backups_delete.html:34 +#, python-format +msgid "Delete Archive %(name)s" +msgstr "Elimina l'arxiu %(name)s" + +#: modules/backups/templates/backups_repository.html:22 +msgid "This repository is encrypted" +msgstr "Aquest repositori està encriptat" + +#: modules/backups/templates/backups_repository.html:33 +msgid "Schedule" +msgstr "Programa" + +#: modules/backups/templates/backups_repository.html:44 +msgid "Unmount Location" +msgstr "Desmuntar la ubicació" + +#: modules/backups/templates/backups_repository.html:55 +msgid "Mount Location" +msgstr "Muntar la ubicació" + +#: modules/backups/templates/backups_repository.html:66 +msgid "Remove Backup Location. This will not delete the remote backup." +msgstr "" +"Elimina ubicació de còpia de seguretat. Això no suprimirà la còpia de " +"seguretat remota." + +#: modules/backups/templates/backups_repository.html:88 +msgid "Download" +msgstr "Descarrega" + +#: modules/backups/templates/backups_repository.html:114 +msgid "No archives currently exist." +msgstr "Actualment no existeixen arxius." + +#: modules/backups/templates/backups_repository_remove.html:13 +msgid "Are you sure that you want to remove this repository?" +msgstr "Estàs segur que vols eliminar aquest repositori?" + +#: modules/backups/templates/backups_repository_remove.html:19 +msgid "" +"The remote repository will not be deleted. This just removes the repository " +"from the listing on the backup page, you can add it again later on." +msgstr "" +"El repositori remot no serà eliminat. Això només elimina el repositori de la " +"llista de la pàgina de còpies de seguretat; podràs afegir-lo de nou més " +"endavant." + +#: modules/backups/templates/backups_repository_remove.html:31 +msgid "Remove Location" +msgstr "Eliminar ubicació" + +#: modules/backups/templates/backups_restore.html:15 +msgid "Restore data from" +msgstr "Restaura dades des de" + +#: modules/backups/templates/backups_upload.html:17 +#, python-format +msgid "" +"\n" +" Upload a backup file downloaded from another %(box_name)s to restore " +"its\n" +" contents. You can choose the apps you wish to restore after uploading " +"a\n" +" backup file.\n" +" " +msgstr "" +"\n" +" Carrega un fitxer de còpia de seguretat descarregat d'un altre " +"%(box_name)s per restaurar-ne \n" +"\t\tel contingut. Després de carregar el fitxer de còpia de seguretat, " +"podràs triar les aplicacions \n" +"\t\tque desitges restaurar.\n" +" " + +#: modules/backups/templates/backups_upload.html:31 +#, python-format +msgid "" +"You have %(max_filesize)s available to restore a backup. Exceeding this " +"limit can leave your %(box_name)s unusable." +msgstr "" +"Tens %(max_filesize)s disponibles per restaurar una còpia de seguretat. " +"Superar aquest límit pot deixar el teu %(box_name)s inutilitzable." + +#: modules/backups/templates/backups_upload.html:45 +msgid "Upload file" +msgstr "Penja un fitxer" + +#: modules/backups/templates/verify_ssh_hostkey.html:18 +#, python-format +msgid "" +"Could not reach SSH host %(hostname)s. Please verify that the host is up and " +"accepting connections." +msgstr "" +"No s'ha pogut arribar a l'amfitrió SSH %(hostname)s. Si us plau, verifica " +"que l'amfitrió estigui en funcionament i acceptant connexions." + +#: modules/backups/templates/verify_ssh_hostkey.html:34 +#, python-format +msgid "" +"The authenticity of SSH host %(hostname)s could not be established. The host " +"advertises the following SSH public keys. Please verify any one of them." +msgstr "" +"No s'ha pogut establir l'autenticitat de l'amfitrió SSH %(hostname)s. " +"L'amfitrió anuncia les següents claus públiques SSH. Si us plau, verifica'n " +"alguna." + +#: modules/backups/templates/verify_ssh_hostkey.html:46 +msgid "How to verify?" +msgstr "Com verificar?" + +#: modules/backups/templates/verify_ssh_hostkey.html:51 +msgid "" +"Run the following command on the SSH host machine. The output should match " +"one of the provided options. You can also use DSA, ECDSA, Ed25519 etc. " +"instead of RSA, by choosing the corresponding file." +msgstr "" +"Executa la següent ordre a la màquina amfitriona SSH. La sortida hauria de " +"coincidir amb una de les opcions proporcionades. També pots utilitzar DSA, " +"ECDSA, Ed25519, etc., en lloc de RSA, seleccionant el fitxer corresponent." + +#: modules/backups/templates/verify_ssh_hostkey.html:66 +msgid "Verify Host" +msgstr "Verifica l'amfitrió" + +#: modules/backups/views.py:68 +msgid "Backup schedule updated." +msgstr "Programació de còpies de seguretat actualitzada." + +#: modules/backups/views.py:87 +msgid "Schedule Backups" +msgstr "Programació de còpies de seguretat" + +#: modules/backups/views.py:148 +msgid "Archive created." +msgstr "Arxiu creat." + +#: modules/backups/views.py:160 +msgid "Delete Archive" +msgstr "Elimina l'arxiu" + +#: modules/backups/views.py:173 +msgid "Archive deleted." +msgstr "Arxiu eliminat" + +#: modules/backups/views.py:187 +msgid "Upload and restore a backup" +msgstr "Penja i restaura una còpia de seguretat" + +#: modules/backups/views.py:216 +msgid "Upload successful." +msgstr "S'ha penjat correctament." + +#: modules/backups/views.py:254 +msgid "No backup file found." +msgstr "No s'ha trobat cap arxiu de còpia de seguretat." + +#: modules/backups/views.py:262 +msgid "Restore from uploaded file" +msgstr "Restaura des de l'arxiu penjat" + +#: modules/backups/views.py:276 modules/backups/views.py:297 +msgid "Restored files from backup." +msgstr "Arxius restaurats des de la còpia de seguretat." + +#: modules/backups/views.py:327 +msgid "No additional disks available to add a repository." +msgstr "No hi ha discs addicionals disponibles per afegir un repositori." + +#: modules/backups/views.py:335 +msgid "Create backup repository" +msgstr "Crea repositori de còpia de seguretat" + +#: modules/backups/views.py:350 +msgid "Added new repository." +msgstr "S'ha afegit un nou repositori." + +#: modules/backups/views.py:364 +msgid "Create remote backup repository" +msgstr "Crea un repositori de còpia de seguretat remot" + +#: modules/backups/views.py:386 +msgid "Added new remote SSH repository." +msgstr "S'ha afegit un nou repositori remot SSH." + +#: modules/backups/views.py:408 +msgid "Verify SSH hostkey" +msgstr "Verifica la clau d'amfitrió SSH" + +#: modules/backups/views.py:434 +msgid "SSH host already verified." +msgstr "L'amfitrió SSH ja ha estat verificat." + +#: modules/backups/views.py:445 +msgid "SSH host verified." +msgstr "Amfitrió SSH verificat." + +#: modules/backups/views.py:461 +msgid "SSH host public key could not be verified." +msgstr "No s'ha pogut verificar la clau pública de l'amfitrió SSH." + +#: modules/backups/views.py:463 +msgid "Authentication to remote server failed." +msgstr "Ha fallat l'autenticació amb el servidor remot." + +#: modules/backups/views.py:465 +msgid "Error establishing connection to server: {}" +msgstr "Error en establir la connexió amb el servidor: {}" + +#: modules/backups/views.py:476 +msgid "Repository removed." +msgstr "Repositori eliminat." + +#: modules/backups/views.py:490 +msgid "Remove Repository" +msgstr "Elimina el repositori" + +#: modules/backups/views.py:500 +msgid "Repository removed. Backups were not deleted." +msgstr "Repositori eliminat. Les còpies de seguretat no han estat suprimides." + +#: modules/backups/views.py:511 +msgid "Unmounting failed!" +msgstr "Ha fallat el desmuntatge!" + +#: modules/backups/views.py:527 modules/backups/views.py:531 +msgid "Mounting failed" +msgstr "Ha fallat el muntatge" + +#: modules/bepasty/__init__.py:17 +msgid "" +"bepasty is a web application that allows large files to be uploaded and " +"shared. Text and code snippets can also be pasted and shared. Text, image, " +"audio, video and PDF documents can be previewed in the browser. Shared files " +"can be set to expire after a time period." +msgstr "" +"bepasty és una aplicació web que permet pujar i compartir fitxers grans. " +"També s'hi poden enganxar i compartir fragments de text i codi. Els textos, " +"imatges, àudios, vídeos i documents PDF es poden previsualitzar al " +"navegador. Els fitxers compartits poden configurar-se perquè caduquin " +"després d’un període de temps." + +#: modules/bepasty/__init__.py:21 +msgid "" +"bepasty does not use usernames for login. It only uses passwords. For each " +"password, a set of permissions can be selected. Once you have created a " +"password, you can share it with the users who should have the associated " +"permissions." +msgstr "" +"Bepasty és una aplicació web que permet pujar i compartir fitxers grans. " +"També es poden enganxar i compartir fragments de text i codi. Els textos, " +"imatges, àudio, vídeos i documents PDF es poden previsualitzar al navegador. " +"Els fitxers compartits es poden configurar perquè expirinin després d'un " +"cert període de temps." + +#: modules/bepasty/__init__.py:25 +msgid "" +"You can also create multiple passwords with the same set of privileges, and " +"distribute them to different people or groups. This will allow you to later " +"revoke access for a single person or group, by removing their password from " +"the list." +msgstr "" +"També pots crear diverses contrasenyes amb el mateix conjunt de privilegis i " +"distribuir-les a diferents persones o grups. Això et permetrà, més endavant, " +"revocar l'accés a una persona o grup específic, eliminant la seva " +"contrasenya de la llista." + +#: modules/bepasty/__init__.py:32 modules/bepasty/__init__.py:41 +msgid "Read a file, if a web link to the file is available" +msgstr "Llegeix un fitxer, si hi ha un enllaç web disponible per al fitxer" + +#: modules/bepasty/__init__.py:33 +msgid "Create or upload files" +msgstr "Crea o penja fitxers" + +#: modules/bepasty/__init__.py:34 +msgid "List all files and their web links" +msgstr "Llista tots els fitxers i els seus enllaços web" + +#: modules/bepasty/__init__.py:35 +msgid "Delete files" +msgstr "Elimina fitxers" + +#: modules/bepasty/__init__.py:36 +msgid "Administer files: lock/unlock files" +msgstr "Administrar fitxers: bloquejar/desbloquejar fitxers" + +#: modules/bepasty/__init__.py:40 +msgid "None, password is always required" +msgstr "Cap, sempre es requereix contrasenya" + +#: modules/bepasty/__init__.py:42 +msgid "List and read all files" +msgstr "Llistar i llegir tots els fitxers" + +#: modules/bepasty/__init__.py:57 modules/bepasty/manifest.py:6 +msgid "bepasty" +msgstr "bepasty" + +#: modules/bepasty/forms.py:17 +msgid "Public Access (default permissions)" +msgstr "" + +#: modules/bepasty/forms.py:18 +msgid "Permissions for anonymous users, who have not provided a password." +msgstr "" + +#: modules/bepasty/forms.py:27 modules/bepasty/templates/bepasty.html:30 +#: modules/users/forms.py:104 +msgid "Permissions" +msgstr "" + +#: modules/bepasty/forms.py:29 +msgid "" +"Users that log in with this password will have the selected permissions." +msgstr "" + +#: modules/bepasty/forms.py:33 modules/bepasty/templates/bepasty.html:31 +msgid "Comment" +msgstr "" + +#: modules/bepasty/forms.py:34 +msgid "Any comment to help you remember the purpose of this password." +msgstr "" + +#: modules/bepasty/manifest.py:23 modules/deluge/manifest.py:21 +#: modules/samba/manifest.py:89 modules/sharing/manifest.py:19 +#: modules/syncthing/manifest.py:58 modules/transmission/manifest.py:39 +msgid "File sharing" +msgstr "" + +#: modules/bepasty/manifest.py:23 +msgid "Pastebin" +msgstr "" + +#: modules/bepasty/templates/bepasty.html:12 +msgid "Manage Passwords" +msgstr "" + +#: modules/bepasty/templates/bepasty.html:16 +#: modules/bepasty/templates/bepasty.html:18 +msgid "Add password" +msgstr "" + +#: modules/bepasty/templates/bepasty.html:23 +msgid "No passwords currently configured." +msgstr "" + +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:85 +#: modules/miniflux/forms.py:14 modules/networks/forms.py:282 +#: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 +msgid "Password" +msgstr "" + +#: modules/bepasty/views.py:19 +msgid "admin" +msgstr "" + +#: modules/bepasty/views.py:20 +msgid "editor" +msgstr "" + +#: modules/bepasty/views.py:21 +msgid "viewer" +msgstr "" + +#: modules/bepasty/views.py:47 +msgid "Read" +msgstr "" + +#: modules/bepasty/views.py:48 +msgid "Create" +msgstr "" + +#: modules/bepasty/views.py:49 +msgid "List" +msgstr "" + +#: modules/bepasty/views.py:50 +#: modules/dynamicdns/templates/dynamicdns-domain-delete.html:22 +#: modules/email/templates/email-aliases.html:24 +#: modules/featherwiki/templates/featherwiki_delete.html:34 +#: modules/letsencrypt/templates/letsencrypt.html:86 +#: modules/names/templates/names-domain-delete.html:22 +#: modules/names/templates/names.html:48 +#: modules/networks/templates/connection_show.html:60 +#: modules/samba/templates/samba.html:154 +#: modules/tiddlywiki/templates/tiddlywiki_delete.html:34 +#: modules/wireguard/templates/wireguard_delete_client.html:24 +#: modules/wireguard/templates/wireguard_delete_server.html:35 +#: modules/wireguard/templates/wireguard_show_client.html:77 +#: modules/wireguard/templates/wireguard_show_server.html:78 +msgid "Delete" +msgstr "" + +#: modules/bepasty/views.py:51 +msgid "Admin" +msgstr "" + +#: modules/bepasty/views.py:88 modules/diagnostics/views.py:66 +#: modules/nextcloud/views.py:62 modules/searx/views.py:35 +#: modules/searx/views.py:46 modules/security/views.py:56 +#: modules/snapshot/views.py:158 modules/tor/views.py:73 +#: modules/torproxy/views.py:71 modules/upgrades/views.py:82 +#: modules/zoph/views.py:74 +msgid "Configuration updated." +msgstr "" + +#: modules/bepasty/views.py:91 modules/email/views.py:48 +#: modules/gitweb/views.py:117 modules/searx/views.py:38 +#: modules/searx/views.py:49 modules/zoph/views.py:77 +msgid "An error occurred during configuration." +msgstr "" + +#: modules/bepasty/views.py:103 +msgid "Password added." +msgstr "" + +#: modules/bepasty/views.py:108 +msgid "Add Password" +msgstr "" + +#: modules/bepasty/views.py:122 +msgid "Password deleted." +msgstr "" + +#: modules/bind/__init__.py:17 +msgid "" +"BIND enables you to publish your Domain Name System (DNS) information on the " +"Internet, and to resolve DNS queries for your user devices on your network." +msgstr "" + +#: modules/bind/__init__.py:21 +#, python-brace-format +msgid "" +"Currently, on {box_name}, BIND is only used to resolve DNS queries for other " +"machines on local network. It is also incompatible with sharing Internet " +"connection from {box_name}." +msgstr "" + +#: modules/bind/__init__.py:40 +msgid "BIND" +msgstr "" + +#: modules/bind/forms.py:19 +msgid "Forwarders" +msgstr "" + +#: modules/bind/forms.py:20 +msgid "" +"A list DNS servers, separated by space, to which requests will be forwarded" +msgstr "" + +#: modules/bind/manifest.py:16 +msgid "DNS" +msgstr "" + +#: modules/bind/manifest.py:17 modules/mumble/manifest.py:67 +#: modules/radicale/manifest.py:91 modules/shadowsocks/forms.py:24 +msgid "Server" +msgstr "" + +#: modules/bind/manifest.py:18 +msgid "Resolver" +msgstr "" + +#: modules/bind/templates/bind.html:11 +msgid "Serving Domains" +msgstr "" + +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 +#: modules/networks/templates/connection_show.html:95 +#: modules/samba/templates/samba.html:65 +#: modules/storage/templates/storage.html:26 +msgid "Type" +msgstr "" + +#: modules/bind/templates/bind.html:18 +msgid "Domain Names" +msgstr "" + +#: modules/bind/templates/bind.html:19 +msgid "Serving" +msgstr "" + +#: modules/bind/templates/bind.html:20 +msgid "IP addresses" +msgstr "" + +#: modules/bind/templates/bind.html:37 modules/bind/templates/bind.html:39 +msgid "Refresh IP address and domains" +msgstr "" + +#: modules/bind/views.py:61 modules/config/views.py:67 +#: modules/coturn/views.py:40 modules/deluge/views.py:35 +#: modules/dynamicdns/views.py:100 modules/ejabberd/views.py:95 +#: modules/email/views.py:45 modules/matrixsynapse/views.py:149 +#: modules/minetest/views.py:55 modules/mumble/views.py:37 +#: modules/names/views.py:68 modules/names/views.py:97 +#: modules/names/views.py:123 modules/pagekite/forms.py:74 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 +#: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 +#: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 +#: modules/sogo/views.py:32 modules/ssh/views.py:62 +#: modules/transmission/views.py:43 modules/ttrss/views.py:31 +#: modules/wordpress/views.py:31 +msgid "Configuration updated" +msgstr "" + +#: modules/calibre/__init__.py:24 +#, python-brace-format +msgid "" +"calibre server provides online access to your e-book collection. You can " +"store your e-books on your {box_name}, read them online or from any of your " +"devices." +msgstr "" + +#: modules/calibre/__init__.py:27 +msgid "" +"You can organize your e-books, extract and edit their metadata, and perform " +"advanced search. calibre can import, export, or convert across a wide range " +"of formats to make e-books ready for reading on any device. It also provides " +"an online web reader. It remembers your last read location, bookmarks, and " +"highlighted text. Content distribution using OPDS is currently not supported." +msgstr "" + +#: modules/calibre/__init__.py:33 +msgid "" +"Only users belonging to calibre group will be able to access the " +"app. All users with access can use all the libraries." +msgstr "" + +#: modules/calibre/__init__.py:53 +msgid "Use calibre e-book libraries" +msgstr "" + +#: modules/calibre/__init__.py:56 modules/calibre/manifest.py:6 +msgid "calibre" +msgstr "" + +#: modules/calibre/forms.py:16 +msgid "Name of the new library" +msgstr "" + +#: modules/calibre/forms.py:17 +msgid "" +"Only letters of the English alphabet, numbers and the characters _ . and - " +"without spaces or special characters. Example: My_Library_2000" +msgstr "" + +#: modules/calibre/forms.py:28 +msgid "A library with this name already exists." +msgstr "" + +#: modules/calibre/manifest.py:21 +msgid "Ebook" +msgstr "" + +#: modules/calibre/manifest.py:21 +msgid "Library" +msgstr "" + +#: modules/calibre/manifest.py:21 +msgid "Ebook reader" +msgstr "" + +#: modules/calibre/templates/calibre-delete-library.html:11 +#, python-format +msgid "Delete calibre Library %(name)s" +msgstr "" + +#: modules/calibre/templates/calibre-delete-library.html:17 +msgid "" +"Delete this library permanently? All stored e-books and saved data will be " +"lost." +msgstr "" + +#: modules/calibre/templates/calibre-delete-library.html:27 +#: modules/gitweb/templates/gitweb_delete.html:27 +#: modules/ikiwiki/templates/ikiwiki_delete.html:29 +#: modules/kiwix/templates/kiwix-delete-package.html:27 +#: modules/networks/templates/connections_delete.html:23 +#, python-format +msgid "Delete %(name)s" +msgstr "" + +#: modules/calibre/templates/calibre.html:11 +msgid "Manage Libraries" +msgstr "" + +#: modules/calibre/templates/calibre.html:15 +#: modules/calibre/templates/calibre.html:17 +msgid "Create Library" +msgstr "" + +#: modules/calibre/templates/calibre.html:24 +msgid "No libraries available." +msgstr "" + +#: modules/calibre/templates/calibre.html:31 +#, python-format +msgid "Go to library %(library)s" +msgstr "" + +#: modules/calibre/templates/calibre.html:37 +#, python-format +msgid "Delete library %(library)s" +msgstr "" + +#: modules/calibre/views.py:39 +msgid "Library created." +msgstr "" + +#: modules/calibre/views.py:49 +msgid "An error occurred while creating the library." +msgstr "" + +#: modules/calibre/views.py:63 modules/featherwiki/views.py:135 +#: modules/gitweb/views.py:139 modules/kiwix/views.py:97 +#: modules/tiddlywiki/views.py:136 +#, python-brace-format +msgid "{name} deleted." +msgstr "" + +#: modules/calibre/views.py:67 modules/gitweb/views.py:143 +#: modules/kiwix/views.py:101 +#, python-brace-format +msgid "Could not delete {name}: {error}" +msgstr "" + +#: modules/cockpit/__init__.py:23 +#, python-brace-format +msgid "" +"Cockpit is a server manager that makes it easy to administer GNU/Linux " +"servers via a web browser. On a {box_name}, controls are available for many " +"advanced functions that are not usually required. A web based terminal for " +"console operations is also available." +msgstr "" + +#: modules/cockpit/__init__.py:29 +msgid "" +"Cockpit can be used to perform advanced storage operations such as disk " +"partitioning and RAID management. It can also be used for opening custom " +"firewall ports and advanced networking such as bonding, bridging and VLAN " +"management." +msgstr "" + +#: modules/cockpit/__init__.py:34 +#, python-brace-format +msgid "" +"It can be accessed by any user on {box_name} " +"belonging to the admin group." +msgstr "" + +#: modules/cockpit/__init__.py:53 modules/cockpit/manifest.py:9 +#: modules/performance/manifest.py:9 +msgid "Cockpit" +msgstr "" + +#: modules/cockpit/manifest.py:23 +msgid "Advanced administration" +msgstr "" + +#: modules/cockpit/manifest.py:24 +msgid "Web terminal" +msgstr "" + +#: modules/cockpit/manifest.py:25 modules/storage/__init__.py:47 +#: modules/storage/__init__.py:319 modules/storage/__init__.py:350 +#: modules/storage/__init__.py:396 +msgid "Storage" +msgstr "" + +#: modules/cockpit/manifest.py:26 +msgid "Networking" +msgstr "" + +#: modules/cockpit/manifest.py:27 modules/names/templates/names.html:20 +msgid "Services" +msgstr "" + +#: modules/cockpit/manifest.py:28 +msgid "Logs" +msgstr "" + +#: modules/cockpit/manifest.py:29 modules/performance/__init__.py:16 +#: modules/performance/__init__.py:40 +msgid "Performance" +msgstr "" + +#: modules/config/__init__.py:18 +msgid "" +"Here you can set some general configuration options like webserver home page " +"etc." +msgstr "" + +#: modules/config/__init__.py:40 +msgid "General Configuration" +msgstr "" + +#: modules/config/__init__.py:45 modules/names/templates/names.html:35 +#: modules/names/templates/names.html:71 modules/snapshot/views.py:32 +#: templates/index.html:38 +msgid "Configure" +msgstr "" + +#: modules/config/forms.py:24 +#, python-brace-format +msgid "{user}'s website" +msgstr "" + +#: modules/config/forms.py:26 +msgid "Apache Default" +msgstr "" + +#: modules/config/forms.py:27 +msgid "FreedomBox Service (Plinth)" +msgstr "" + +#: modules/config/forms.py:35 +msgid "Webserver Home Page" +msgstr "" + +#: modules/config/forms.py:37 +#, python-brace-format +msgid "" +"Choose the default page that must be served when someone visits your " +"{box_name} on the web. A typical use case is to set your blog or wiki as the " +"home page when someone visits the domain name. Note that once the home page " +"is set to something other than {box_name} Service (Plinth), your users must " +"explicitly type /plinth or /freedombox to reach {box_name} Service (Plinth)." +msgstr "" + +#: modules/config/forms.py:48 +msgid "Show advanced apps and features" +msgstr "" + +#: modules/config/forms.py:50 +msgid "Show apps and features that require more technical knowledge." +msgstr "" + +#: modules/config/forms.py:54 +msgid "System-wide logging" +msgstr "" + +#: modules/config/forms.py:55 +msgid "Disable logging, for privacy" +msgstr "" + +#: modules/config/forms.py:57 +msgid "Keep some in memory until a restart, for performance" +msgstr "" + +#: modules/config/forms.py:60 +msgid "Write to disk, useful for debugging" +msgstr "" + +#: modules/config/forms.py:62 +msgid "" +"Logs contain information about who accessed the system and debug information " +"from various services" +msgstr "" + +#: modules/config/manifest.py:8 modules/help/templates/help_about.html:100 +msgid "Homepage" +msgstr "" + +#: modules/config/manifest.py:8 +msgid "Logging" +msgstr "" + +#: modules/config/manifest.py:8 +msgid "Advanced apps" +msgstr "" + +#: modules/config/views.py:41 +#, python-brace-format +msgid "Error setting webserver home page: {exception}" +msgstr "" + +#: modules/config/views.py:44 +msgid "Webserver home page set" +msgstr "" + +#: modules/config/views.py:52 +#, python-brace-format +msgid "Error changing advanced mode: {exception}" +msgstr "" + +#: modules/config/views.py:57 +msgid "Showing advanced apps and features" +msgstr "" + +#: modules/config/views.py:60 +msgid "Hiding advanced apps and features" +msgstr "" + +#: modules/coturn/__init__.py:26 +msgid "" +"Coturn is a server to facilitate audio/video calls and conferences by " +"providing an implementation of TURN and STUN protocols. WebRTC, SIP and " +"other communication servers can use it to establish a call between parties " +"who are otherwise unable connect to each other." +msgstr "" + +#: modules/coturn/__init__.py:31 +#, python-brace-format +msgid "" +"It is not meant to be used directly by users. Servers such as Matrix Synapse or ejabberd " +"need to be configured with the details provided here." +msgstr "" + +#: modules/coturn/__init__.py:53 +msgid "Coturn" +msgstr "" + +#: modules/coturn/forms.py:23 +msgid "Invalid list of STUN/TURN Server URIs" +msgstr "" + +#: modules/coturn/manifest.py:7 modules/janus/manifest.py:16 +msgid "Video conference" +msgstr "" + +#: modules/coturn/manifest.py:7 +msgid "STUN" +msgstr "" + +#: modules/coturn/manifest.py:7 +msgid "TURN" +msgstr "" + +#: modules/coturn/templates/coturn.html:15 +msgid "Use the following URLs to configure your communication server:" +msgstr "" + +#: modules/coturn/templates/coturn.html:24 +msgid "Use the following shared authentication secret:" +msgstr "" + +#: modules/datetime/__init__.py:21 +msgid "" +"Network time server is a program that maintains the system time in " +"synchronization with servers on the Internet." +msgstr "" + +#: modules/datetime/__init__.py:68 +msgid "Date & Time" +msgstr "" + +#: modules/datetime/__init__.py:123 +msgid "Time synchronized to NTP server" +msgstr "" + +#: modules/datetime/forms.py:18 +msgid "Time Zone" +msgstr "" + +#: modules/datetime/forms.py:19 +msgid "" +"Set your time zone to get accurate timestamps. This will set the system-wide " +"time zone." +msgstr "" + +#: modules/datetime/forms.py:30 +msgid "-- no time zone set --" +msgstr "" + +#: modules/datetime/manifest.py:15 +msgid "Network time" +msgstr "" + +#: modules/datetime/manifest.py:15 +msgid "Timezone" +msgstr "" + +#: modules/datetime/views.py:53 +#, python-brace-format +msgid "Error setting time zone: {exception}" +msgstr "" + +#: modules/datetime/views.py:56 +msgid "Time zone set" +msgstr "" + +#: modules/deluge/__init__.py:22 +msgid "Deluge is a BitTorrent client that features a Web UI." +msgstr "" + +#: modules/deluge/__init__.py:23 +msgid "" +"The default password is 'deluge', but you should log in and change it " +"immediately after enabling this service." +msgstr "" + +#: modules/deluge/__init__.py:56 modules/transmission/__init__.py:70 +msgid "Download files using BitTorrent applications" +msgstr "" + +#: modules/deluge/__init__.py:60 modules/deluge/manifest.py:6 +msgid "Deluge" +msgstr "" + +#: modules/deluge/forms.py:20 modules/transmission/forms.py:20 +msgid "Download directory" +msgstr "" + +#: modules/deluge/manifest.py:7 +msgid "Bittorrent client written in Python/PyGTK" +msgstr "" + +#: modules/deluge/manifest.py:21 modules/transmission/manifest.py:39 +msgid "BitTorrent" +msgstr "" + +#: modules/deluge/manifest.py:21 modules/roundcube/manifest.py:23 +#: modules/transmission/manifest.py:39 +msgid "Web client" +msgstr "" + +#: modules/deluge/manifest.py:21 modules/syncthing/manifest.py:58 +#: modules/transmission/manifest.py:39 +msgid "P2P" +msgstr "" + +#: modules/diagnostics/__init__.py:29 +msgid "" +"The system diagnostic test will run a number of checks on your system to " +"confirm that applications and services are working as expected." +msgstr "" + +#: modules/diagnostics/__init__.py:53 modules/diagnostics/__init__.py:239 +msgid "Diagnostics" +msgstr "" + +#: modules/diagnostics/__init__.py:99 +msgid "skipped" +msgstr "" + +#: modules/diagnostics/__init__.py:100 +msgid "passed" +msgstr "" + +#: modules/diagnostics/__init__.py:101 modules/networks/views.py:51 +msgid "failed" +msgstr "" + +#: modules/diagnostics/__init__.py:102 +msgid "error" +msgstr "" + +#: modules/diagnostics/__init__.py:103 +msgid "warning" +msgstr "" + +#. Translators: This is the unit of computer storage Mebibyte similar to +#. Megabyte. +#: modules/diagnostics/__init__.py:205 +msgid "MiB" +msgstr "" + +#. Translators: This is the unit of computer storage Gibibyte similar to +#. Gigabyte. +#: modules/diagnostics/__init__.py:210 +msgid "GiB" +msgstr "" + +#: modules/diagnostics/__init__.py:217 +msgid "You should disable some apps to reduce memory usage." +msgstr "" + +#: modules/diagnostics/__init__.py:222 +msgid "You should not install any new apps on this system." +msgstr "" + +#: modules/diagnostics/__init__.py:234 +#, no-python-format, python-brace-format +msgid "" +"System is low on memory: {percent_used}% used, {memory_available} " +"{memory_available_unit} free. {advice_message}" +msgstr "" + +#: modules/diagnostics/__init__.py:236 +msgid "Low Memory" +msgstr "" + +#: modules/diagnostics/__init__.py:267 +msgid "Running diagnostics" +msgstr "" + +#: modules/diagnostics/__init__.py:312 +#, no-python-format, python-brace-format +msgid "Found {issue_count} issues during routine tests." +msgstr "" + +#: modules/diagnostics/__init__.py:313 +msgid "Diagnostics results" +msgstr "" + +#: modules/diagnostics/__init__.py:318 +msgid "Go to diagnostics results" +msgstr "" + +#: modules/diagnostics/forms.py:11 +msgid "Enable daily run" +msgstr "" + +#: modules/diagnostics/forms.py:12 +msgid "When enabled, diagnostic checks will run once a day." +msgstr "" + +#: modules/diagnostics/forms.py:15 +msgid "Enable automatic repair" +msgstr "" + +#: modules/diagnostics/forms.py:16 +msgid "If issues are found, try to repair them automatically." +msgstr "" + +#: modules/diagnostics/manifest.py:10 +msgid "Detect problems" +msgstr "" + +#: modules/diagnostics/manifest.py:10 +msgid "Repair" +msgstr "" + +#: modules/diagnostics/manifest.py:10 +msgid "Daily" +msgstr "" + +#: modules/diagnostics/templates/diagnostics.html:11 +msgid "Diagnostics Run" +msgstr "" + +#: modules/diagnostics/templates/diagnostics.html:17 +msgid "Run Diagnostics Now" +msgstr "" + +#: modules/diagnostics/templates/diagnostics.html:22 +msgid "View Results" +msgstr "" + +#: modules/diagnostics/templates/diagnostics_app.html:10 +msgid "Diagnostic Results" +msgstr "" + +#: modules/diagnostics/templates/diagnostics_app.html:14 +#: modules/diagnostics/templates/diagnostics_full.html:39 +#, python-format +msgid "App: %(app_name)s" +msgstr "" + +#: modules/diagnostics/templates/diagnostics_app.html:21 +#: modules/diagnostics/templates/diagnostics_full.html:49 +msgid "Try to repair" +msgstr "" + +#: modules/diagnostics/templates/diagnostics_app.html:29 +msgid "This app does not support diagnostics" +msgstr "" + +#: modules/diagnostics/templates/diagnostics_button.html:11 +msgid "Run Diagnostics" +msgstr "" + +#: modules/diagnostics/templates/diagnostics_full.html:17 +msgid "Re-run Diagnostics" +msgstr "" + +#: modules/diagnostics/templates/diagnostics_full.html:21 +msgid "Diagnostics test is currently running" +msgstr "" + +#: modules/diagnostics/templates/diagnostics_full.html:34 +msgid "Results" +msgstr "" + +#: modules/diagnostics/templates/diagnostics_results.html:11 +msgid "Test" +msgstr "" + +#: modules/diagnostics/templates/diagnostics_results.html:12 +#: modules/dynamicdns/templates/dynamicdns.html:27 +msgid "Result" +msgstr "" + +#: modules/diagnostics/views.py:117 +msgid "Diagnostic Test" +msgstr "" + +#: modules/diagnostics/views.py:146 +#, python-brace-format +msgid "App {app_id} is not installed, cannot repair" +msgstr "" + +#: modules/dynamicdns/__init__.py:29 +#, python-brace-format +msgid "" +"If your Internet provider changes your IP address periodically (i.e. every " +"24h), it may be hard for others to find you on the Internet. This will " +"prevent others from finding services which are provided by this {box_name}." +msgstr "" + +#: modules/dynamicdns/__init__.py:33 +msgid "" +"The solution is to assign a DNS name to your IP address and update the DNS " +"name every time your IP is changed by your Internet provider. Dynamic DNS " +"allows you to push your current public IP address to a GnuDIP server. Afterwards, " +"the server will assign your DNS name to the new IP, and if someone from the " +"Internet asks for your DNS name, they will get a response with your current " +"IP address." +msgstr "" + +#: modules/dynamicdns/__init__.py:41 +msgid "" +"If you are looking for a free dynamic DNS account, you may find a free " +"GnuDIP service at ddns." +"freedombox.org or you may find free update URL based services at freedns.afraid.org." +msgstr "" + +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 +msgid "Dynamic DNS Client" +msgstr "" + +#: modules/dynamicdns/__init__.py:77 +msgid "Dynamic Domain" +msgstr "" + +#: modules/dynamicdns/forms.py:20 +msgid "" +"The Variables <User>, <Pass>, <Ip>, <Domain> may be " +"used within the URL. For details see the update URL templates of the example " +"providers." +msgstr "" + +#: modules/dynamicdns/forms.py:24 +msgid "" +"Please choose an update protocol according to your provider. If your " +"provider does not support the GnuDIP protocol or your provider is not listed " +"you may use the update URL of your provider." +msgstr "" + +#: modules/dynamicdns/forms.py:29 +msgid "" +"Please do not enter a URL here (like \"https://example.com/\") but only the " +"hostname of the GnuDIP server (like \"example.com\")." +msgstr "" + +#: modules/dynamicdns/forms.py:33 +#, python-brace-format +msgid "The public domain name you want to use to reach your {box_name}." +msgstr "" + +#: modules/dynamicdns/forms.py:36 +msgid "Use this option if your provider uses self signed certificates." +msgstr "" + +#: modules/dynamicdns/forms.py:39 +msgid "" +"If this option is selected, your username and password will be used for HTTP " +"basic authentication." +msgstr "" + +#: modules/dynamicdns/forms.py:42 +msgid "Leave this field empty if you want to keep your current password." +msgstr "" + +#: modules/dynamicdns/forms.py:45 +msgid "The username that was used when the account was created." +msgstr "" + +#: modules/dynamicdns/forms.py:48 +msgid "GnuDIP" +msgstr "" + +#: modules/dynamicdns/forms.py:51 +msgid "Other update URL" +msgstr "" + +#: modules/dynamicdns/forms.py:53 +msgid "Service Type" +msgstr "" + +#: modules/dynamicdns/forms.py:58 +msgid "GnuDIP Server Address" +msgstr "" + +#: modules/dynamicdns/forms.py:61 +msgid "Invalid server name" +msgstr "" + +#: modules/dynamicdns/forms.py:64 +msgid "Update URL" +msgstr "" + +#: modules/dynamicdns/forms.py:68 +msgid "Accept all SSL certificates" +msgstr "" + +#: modules/dynamicdns/forms.py:72 +msgid "Use HTTP basic authentication" +msgstr "" + +#: modules/dynamicdns/forms.py:76 modules/names/forms.py:107 +#: modules/names/templates/names.html:19 +msgid "Domain Name" +msgstr "" + +#: modules/dynamicdns/forms.py:79 modules/names/forms.py:100 +#: modules/names/forms.py:118 +msgid "Invalid domain name" +msgstr "" + +#: modules/dynamicdns/forms.py:82 modules/miniflux/forms.py:11 +#: modules/networks/forms.py:281 modules/users/forms.py:130 +msgid "Username" +msgstr "" + +#: modules/dynamicdns/forms.py:89 modules/networks/forms.py:284 +msgid "Show password" +msgstr "" + +#: modules/dynamicdns/forms.py:93 +msgid "Use IPv6 instead of IPv4" +msgstr "" + +#: modules/dynamicdns/forms.py:108 +msgid "This field is required." +msgstr "" + +#: modules/dynamicdns/forms.py:138 modules/names/forms.py:125 +msgid "Domain already exists." +msgstr "" + +#: modules/dynamicdns/manifest.py:17 +#: modules/dynamicdns/templates/dynamicdns.html:25 +#: modules/email/templates/email-dns.html:22 +#: modules/letsencrypt/templates/letsencrypt.html:24 +#: modules/mediawiki/forms.py:64 modules/sogo/forms.py:18 +msgid "Domain" +msgstr "" + +#: modules/dynamicdns/manifest.py:17 +msgid "Free" +msgstr "" + +#: modules/dynamicdns/manifest.py:17 +msgid "Needs public IP" +msgstr "" + +#: modules/dynamicdns/templates/dynamicdns-domain-delete.html:13 +#: modules/names/templates/names-domain-delete.html:13 +msgid "App configurations will be updated." +msgstr "" + +#: modules/dynamicdns/templates/dynamicdns.html:10 +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "" + +#: modules/dynamicdns/templates/dynamicdns.html:14 +#: modules/dynamicdns/templates/dynamicdns.html:16 +msgid "Add Domain" +msgstr "" + +#: modules/dynamicdns/templates/dynamicdns.html:26 +msgid "Last update" +msgstr "" + +#: modules/dynamicdns/templates/dynamicdns.html:28 +msgid "IP Address" +msgstr "" + +#: modules/dynamicdns/templates/dynamicdns.html:29 +#: modules/letsencrypt/templates/letsencrypt.html:27 +#: modules/storage/templates/storage.html:28 +msgid "Actions" +msgstr "" + +#: modules/dynamicdns/templates/dynamicdns.html:37 +#: modules/dynamicdns/templates/dynamicdns.html:72 +#, python-format +msgid "Edit domain %(domain)s" +msgstr "" + +#: modules/dynamicdns/templates/dynamicdns.html:47 +msgid "Not yet" +msgstr "" + +#: modules/dynamicdns/templates/dynamicdns.html:53 +msgid "Success" +msgstr "" + +#: modules/dynamicdns/templates/dynamicdns.html:59 +msgid "Failed" +msgstr "" + +#: modules/dynamicdns/templates/dynamicdns.html:79 +#, python-format +msgid "Delete domain %(domain)s" +msgstr "" + +#: modules/dynamicdns/templates/dynamicdns.html:91 +msgid "No domains configured." +msgstr "" + +#: modules/dynamicdns/views.py:26 modules/dynamicdns/views.py:28 +msgid "Connection timed out" +msgstr "" + +#: modules/dynamicdns/views.py:27 +msgid "Could not find server" +msgstr "" + +#: modules/dynamicdns/views.py:29 +msgid "Server refused connection" +msgstr "" + +#: modules/dynamicdns/views.py:30 +msgid "Already up-to-date" +msgstr "" + +#: modules/dynamicdns/views.py:70 +msgid "Add Dynamic Domain" +msgstr "" + +#: modules/dynamicdns/views.py:72 +msgid "Edit Dynamic Domain" +msgstr "" + +#: modules/dynamicdns/views.py:138 modules/names/views.py:137 +#, python-brace-format +msgid "Delete Domain {domain}?" +msgstr "" + +#: modules/dynamicdns/views.py:145 modules/names/views.py:143 +msgid "Domain deleted." +msgstr "" + +#: modules/ejabberd/__init__.py:29 +msgid "" +"XMPP is an open and standardized communication protocol. Here you can run " +"and configure your XMPP server, called ejabberd." +msgstr "" + +#: modules/ejabberd/__init__.py:32 +#, python-brace-format +msgid "" +"To actually communicate, you can use the web client or any other XMPP client. When enabled, ejabberd can be accessed by " +"any user with a {box_name} login." +msgstr "" + +#: modules/ejabberd/__init__.py:40 +#, python-brace-format +msgid "" +"ejabberd needs a STUN/TURN server for audio/video calls. Install the Coturn app or configure an external server." +msgstr "" + +#: modules/ejabberd/__init__.py:60 +msgid "ejabberd" +msgstr "" + +#: modules/ejabberd/forms.py:20 +msgid "Domain names" +msgstr "" + +#: modules/ejabberd/forms.py:22 +msgid "" +"Domains to be used by ejabberd. Note that user accounts are unique for each " +"domain, and migrating users to a new domain name is not yet implemented." +msgstr "" + +#: modules/ejabberd/forms.py:27 +msgid "Enable Message Archive Management" +msgstr "" + +#: modules/ejabberd/forms.py:29 +#, python-brace-format +msgid "" +"If enabled, your {box_name} will store chat message histories. This allows " +"synchronization of conversations between multiple clients, and reading the " +"history of a multi-user chat room. It depends on the client settings whether " +"the histories are stored as plain text or encrypted." +msgstr "" + +#: modules/ejabberd/forms.py:36 modules/matrixsynapse/forms.py:38 +msgid "Automatically manage audio/video call setup" +msgstr "" + +#: modules/ejabberd/forms.py:38 +#, python-brace-format +msgid "" +"Configures the local coturn app as the STUN/TURN " +"server for ejabberd. Disable this if you want to use a different STUN/TURN " +"server." +msgstr "" + +#: modules/ejabberd/forms.py:45 modules/matrixsynapse/forms.py:47 +msgid "STUN/TURN Server URIs" +msgstr "" + +#: modules/ejabberd/forms.py:47 modules/matrixsynapse/forms.py:49 +msgid "List of public URIs of the STUN/TURN server, one on each line." +msgstr "" + +#: modules/ejabberd/forms.py:51 modules/matrixsynapse/forms.py:53 +msgid "Shared Authentication Secret" +msgstr "" + +#: modules/ejabberd/forms.py:52 modules/matrixsynapse/forms.py:54 +msgid "Shared secret used to compute passwords for the TURN server." +msgstr "" + +#: modules/ejabberd/manifest.py:10 +msgid "Conversations" +msgstr "" + +#: modules/ejabberd/manifest.py:24 +msgid "Xabber" +msgstr "" + +#: modules/ejabberd/manifest.py:26 +msgid "" +"Open source Jabber (XMPP) client with multi-account support and clean and " +"simple interface. " +msgstr "" + +#: modules/ejabberd/manifest.py:41 +msgid "Yaxim" +msgstr "" + +#: modules/ejabberd/manifest.py:55 +msgid "Monal - XMPP Chat" +msgstr "" + +#: modules/ejabberd/manifest.py:64 +msgid "Siskin IM" +msgstr "" + +#: modules/ejabberd/manifest.py:73 +msgid "Dino" +msgstr "" + +#: modules/ejabberd/manifest.py:85 +msgid "Gajim" +msgstr "" + +#: modules/ejabberd/manifest.py:124 modules/matrixsynapse/manifest.py:102 +msgid "Encrypted messaging" +msgstr "" + +#: modules/ejabberd/manifest.py:125 modules/matrixsynapse/manifest.py:103 +#: modules/mumble/manifest.py:67 +msgid "Audio chat" +msgstr "" + +#: modules/ejabberd/manifest.py:126 modules/matrixsynapse/manifest.py:104 +msgid "Video chat" +msgstr "" + +#: modules/ejabberd/manifest.py:127 modules/jsxc/manifest.py:16 +msgid "XMPP" +msgstr "" + +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 +#: modules/firewall/templates/firewall.html:16 +#: modules/firewall/templates/firewall.html:22 +#: modules/letsencrypt/templates/letsencrypt.html:17 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 +#: modules/networks/templates/connection_show.html:258 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 +#: modules/upgrades/templates/upgrades_configure.html:19 +#: modules/wireguard/templates/wireguard_show_client.html:48 +#: modules/wireguard/templates/wireguard_show_server.html:47 +msgid "Status" +msgstr "" + +#: modules/ejabberd/templates/ejabberd.html:23 +#, python-format +msgid "" +"Your XMPP server domain is set to %(domain_name)s. User IDs will look " +"like username@%(domain_name)s. You can setup your domain on the " +"system Name Services page." +msgstr "" + +#: modules/ejabberd/templates/ejabberd.html:30 +#, python-format +msgid "" +"Your XMPP server domain is not set. You can setup your domain on the system " +"Name Services page." +msgstr "" + +#: modules/email/__init__.py:26 +msgid "" +"This is a complete email server solution using Postfix, Dovecot, and Rspamd. " +"Postfix sends and receives emails. Dovecot allows email clients to access " +"your mailbox using IMAP and POP3. Rspamd deals with spam." +msgstr "" + +#: modules/email/__init__.py:30 +msgid "" +"Email server currently does not work with many free domain services " +"including those provided by the FreedomBox Foundation. Many ISPs also " +"restrict outgoing email. Some lift the restriction after an explicit " +"request. See manual page for more information." +msgstr "" + +#: modules/email/__init__.py:35 +#, python-brace-format +msgid "" +"Each user on {box_name} gets an email address like user@mydomain.example. " +"They will also receive mail from all addresses that look like " +"user+foo@mydomain.example. Further, they can add aliases to their email " +"address. Necessary aliases such as \"postmaster\" are automatically created " +"pointing to the first admin user." +msgstr "" + +#: modules/email/__init__.py:41 +msgid "" +"Roundcube app provides web interface " +"for users to access email." +msgstr "" + +#: modules/email/__init__.py:43 +msgid "" +"During installation, any other email servers in the system will be " +"uninstalled." +msgstr "" + +#: modules/email/__init__.py:62 +msgid "Postfix/Dovecot" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 +msgid "My Email Aliases" +msgstr "" + +#: modules/email/forms.py:24 +msgid "Primary domain" +msgstr "" + +#: modules/email/forms.py:26 modules/sogo/forms.py:20 +msgid "" +"Mails are received for all domains configured in the system. Among these, " +"select the most important one." +msgstr "" + +#: modules/email/forms.py:34 +msgid "New alias (without @domain)" +msgstr "" + +#: modules/email/forms.py:41 +msgid "Contains illegal characters" +msgstr "" + +#: modules/email/forms.py:44 +msgid "Must start and end with a-z or 0-9" +msgstr "" + +#: modules/email/forms.py:48 +msgid "Cannot be a number" +msgstr "" + +#: modules/email/forms.py:58 +msgid "Aliases" +msgstr "" + +#: modules/email/manifest.py:12 modules/roundcube/__init__.py:50 +#: modules/roundcube/manifest.py:7 +msgid "Roundcube" +msgstr "" + +#: modules/email/manifest.py:20 modules/radicale/manifest.py:36 +msgid "Thunderbird" +msgstr "" + +#: modules/email/manifest.py:37 +msgid "Thunderbird Mobile" +msgstr "" + +#: modules/email/manifest.py:52 +msgid "FairEmail" +msgstr "" + +#: modules/email/manifest.py:82 +msgid "Email server" +msgstr "" + +#: modules/email/manifest.py:82 +msgid "IMAP" +msgstr "" + +#: modules/email/manifest.py:82 +msgid "Spam control" +msgstr "" + +#: modules/email/templates/email-aliases.html:13 +#: modules/email/templates/email.html:15 +msgid "Manage Aliases" +msgstr "" + +#: modules/email/templates/email-aliases.html:16 +msgid "You have no email aliases." +msgstr "" + +#: modules/email/templates/email-aliases.html:28 +msgid "Create a new email alias" +msgstr "" + +#: modules/email/templates/email-aliases.html:34 +#: modules/names/templates/names.html:78 +msgid "Add" +msgstr "" + +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" +msgstr "" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +msgid "Host" +msgstr "" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + +#: modules/featherwiki/__init__.py:25 +#, python-brace-format +msgid "" +"Feather Wiki is a tool to create simple self-contained wikis, each stored in " +"a single HTML file on your {box_name}. You can use it as a personal wiki, as " +"a web notebook, or for project documentation." +msgstr "" + +#: modules/featherwiki/__init__.py:29 +msgid "" +"Each wiki is a small file. Create as many wikis as you like, such as one " +"wiki per topic. Customize each wiki to your liking with extensions and other " +"customization options." +msgstr "" + +#: modules/featherwiki/__init__.py:33 +#, python-brace-format +msgid "" +"Feather Wiki is downloaded from {box_name} website and not from Debian. " +"Wikis need to be upgraded to newer version manually." +msgstr "" + +#: modules/featherwiki/__init__.py:37 modules/tiddlywiki/__init__.py:41 +#, python-brace-format +msgid "" +"Wikis are not public by default, but they can be downloaded for sharing or " +"publishing. They can be edited by any user on " +"{box_name} belonging to the wiki group. Simultaneous editing is not " +"supported." +msgstr "" + +#: modules/featherwiki/__init__.py:56 modules/ikiwiki/__init__.py:79 +#: modules/tiddlywiki/__init__.py:61 +msgid "View and edit wiki applications" +msgstr "" + +#: modules/featherwiki/__init__.py:59 modules/featherwiki/manifest.py:9 +msgid "Feather Wiki" +msgstr "" + +#: modules/featherwiki/forms.py:13 modules/tiddlywiki/forms.py:13 +msgid "Name of the wiki file, with file extension \".html\"" +msgstr "" + +#: modules/featherwiki/forms.py:15 modules/tiddlywiki/forms.py:15 +msgid "" +"Wiki title and description can be set from within the wiki. This file name " +"is independent of the wiki title." +msgstr "" + +#: modules/featherwiki/forms.py:23 modules/tiddlywiki/forms.py:23 +msgid "New name for the wiki file, with file extension \".html\"" +msgstr "" + +#: modules/featherwiki/forms.py:25 modules/tiddlywiki/forms.py:25 +msgid "Renaming the file has no effect on the title of the wiki." +msgstr "" + +#: modules/featherwiki/forms.py:32 +msgid "A Feather Wiki file with .html file extension" +msgstr "" + +#: modules/featherwiki/forms.py:35 +msgid "Feather Wiki files must be in HTML format" +msgstr "" + +#: modules/featherwiki/forms.py:37 +msgid "Upload an existing Feather Wiki file from this computer." +msgstr "" + +#: modules/featherwiki/manifest.py:18 +#: modules/help/templates/help_about.html:108 modules/ikiwiki/manifest.py:15 +#: modules/mediawiki/manifest.py:25 modules/tiddlywiki/manifest.py:19 +msgid "Wiki" +msgstr "" + +#: modules/featherwiki/manifest.py:18 modules/infinoted/manifest.py:46 +#: modules/tiddlywiki/manifest.py:20 +msgid "Note taking" +msgstr "" + +#: modules/featherwiki/manifest.py:18 modules/ikiwiki/manifest.py:15 +#: modules/mediawiki/manifest.py:25 modules/tiddlywiki/manifest.py:21 +#: modules/wordpress/manifest.py:26 +msgid "Website" +msgstr "" + +#: modules/featherwiki/manifest.py:18 modules/tiddlywiki/manifest.py:25 +msgid "Quine" +msgstr "" + +#: modules/featherwiki/manifest.py:18 modules/nextcloud/manifest.py:56 +#: modules/tiddlywiki/manifest.py:26 +msgid "Non-Debian" +msgstr "" + +#: modules/featherwiki/templates/featherwiki_configure.html:12 +#: modules/tiddlywiki/templates/tiddlywiki_configure.html:12 +msgid "Manage Wikis" +msgstr "" + +#: modules/featherwiki/templates/featherwiki_configure.html:16 +#: modules/featherwiki/templates/featherwiki_configure.html:18 +#: modules/featherwiki/views.py:47 +#: modules/tiddlywiki/templates/tiddlywiki_configure.html:16 +#: modules/tiddlywiki/templates/tiddlywiki_configure.html:18 +#: modules/tiddlywiki/views.py:47 +msgid "Create Wiki" +msgstr "" + +#: modules/featherwiki/templates/featherwiki_configure.html:21 +#: modules/featherwiki/templates/featherwiki_configure.html:23 +#: modules/tiddlywiki/templates/tiddlywiki_configure.html:21 +#: modules/tiddlywiki/templates/tiddlywiki_configure.html:23 +msgid "Upload Wiki" +msgstr "" + +#: modules/featherwiki/templates/featherwiki_configure.html:30 +#: modules/tiddlywiki/templates/tiddlywiki_configure.html:30 +msgid "No wikis available." +msgstr "" + +#: modules/featherwiki/templates/featherwiki_configure.html:36 +#: modules/tiddlywiki/templates/tiddlywiki_configure.html:36 +#, python-format +msgid "Go to wiki %(wiki)s" +msgstr "" + +#: modules/featherwiki/templates/featherwiki_configure.html:43 +#: modules/tiddlywiki/templates/tiddlywiki_configure.html:43 +#, python-format +msgid "Rename wiki %(wiki)s" +msgstr "" + +#: modules/featherwiki/templates/featherwiki_configure.html:50 +#: modules/tiddlywiki/templates/tiddlywiki_configure.html:50 +#, python-format +msgid "Delete wiki %(wiki)s" +msgstr "" + +#: modules/featherwiki/templates/featherwiki_delete.html:12 +#: modules/tiddlywiki/templates/tiddlywiki_delete.html:12 +#, python-format +msgid "Delete wiki %(name)s" +msgstr "" + +#: modules/featherwiki/templates/featherwiki_delete.html:18 +msgid "" +"Hint: You can download a copy of this wiki from within " +"Feather Wiki before deleting it." +msgstr "" + +#: modules/featherwiki/templates/featherwiki_delete.html:25 +#: modules/tiddlywiki/templates/tiddlywiki_delete.html:25 +msgid "Delete this wiki file permanently?" +msgstr "" + +#: modules/featherwiki/templates/featherwiki_upload_file.html:20 +#: modules/tiddlywiki/templates/tiddlywiki_upload_file.html:20 +msgid "Upload" +msgstr "" + +#: modules/featherwiki/views.py:20 modules/tiddlywiki/views.py:20 +msgid "A wiki file with the given name already exists." +msgstr "" + +#: modules/featherwiki/views.py:54 modules/tiddlywiki/views.py:54 +msgid "Wiki created." +msgstr "" + +#: modules/featherwiki/views.py:59 modules/tiddlywiki/views.py:59 +msgid "An error occurred while creating the wiki." +msgstr "" + +#: modules/featherwiki/views.py:76 modules/tiddlywiki/views.py:76 +msgid "Rename Wiki" +msgstr "" + +#: modules/featherwiki/views.py:84 modules/tiddlywiki/views.py:84 +msgid "Wiki renamed." +msgstr "" + +#: modules/featherwiki/views.py:89 modules/tiddlywiki/views.py:89 +msgid "An error occurred while renaming the wiki." +msgstr "" + +#: modules/featherwiki/views.py:106 modules/tiddlywiki/views.py:106 +msgid "Upload Wiki File" +msgstr "" + +#: modules/featherwiki/views.py:115 modules/tiddlywiki/views.py:116 +msgid "Wiki file added." +msgstr "" + +#: modules/featherwiki/views.py:119 modules/tiddlywiki/views.py:120 +msgid "Failed to add wiki file." +msgstr "" + +#: modules/featherwiki/views.py:138 modules/tiddlywiki/views.py:139 +#, python-brace-format +msgid "Could not delete {name}" +msgstr "" + +#: modules/firewall/__init__.py:25 +#, python-brace-format +msgid "" +"Firewall is a security system that controls the incoming and outgoing " +"network traffic on your {box_name}. Keeping a firewall enabled and properly " +"configured reduces risk of security threat from the Internet." +msgstr "" + +#: modules/firewall/__init__.py:61 +msgid "Firewall" +msgstr "" + +#: modules/firewall/__init__.py:262 +msgid "Default zone is external" +msgstr "" + +#: modules/firewall/__init__.py:272 +msgid "Firewall backend is nftables" +msgstr "" + +#: modules/firewall/__init__.py:286 +msgid "Direct passthrough rules exist" +msgstr "" + +#: modules/firewall/components.py:139 +#, python-brace-format +msgid "Port {name} ({details}) available for internal networks" +msgstr "" + +#: modules/firewall/components.py:154 +#, python-brace-format +msgid "Port {name} ({details}) available for external networks" +msgstr "" + +#: modules/firewall/components.py:160 +#, python-brace-format +msgid "Port {name} ({details}) unavailable for external networks" +msgstr "" + +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 +msgid "Ports" +msgstr "" + +#: modules/firewall/manifest.py:10 +msgid "Blocking" +msgstr "" + +#: modules/firewall/manifest.py:10 modules/networks/forms.py:319 +#: modules/upgrades/manifest.py:10 +msgid "Automatic" +msgstr "" + +#: modules/firewall/templates/firewall.html:21 +msgid "Service/Port" +msgstr "" + +#: modules/firewall/templates/firewall.html:40 +#: modules/letsencrypt/templates/letsencrypt.html:69 +#: modules/snapshot/forms.py:23 modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: modules/firewall/templates/firewall.html:43 +#: modules/letsencrypt/templates/letsencrypt.html:71 +#: modules/snapshot/forms.py:23 modules/snapshot/forms.py:29 +#: templates/cards.html:38 +msgid "Disabled" +msgstr "" + +#: modules/firewall/templates/firewall.html:58 +msgid "Permitted" +msgstr "" + +#: modules/firewall/templates/firewall.html:61 +msgid "Permitted (internal only)" +msgstr "" + +#: modules/firewall/templates/firewall.html:64 +msgid "Permitted (external only)" +msgstr "" + +#: modules/firewall/templates/firewall.html:67 +msgid "Blocked" +msgstr "" + +#: modules/firewall/templates/firewall.html:80 +msgid "" +"The operation of the firewall is automatic. When you enable a service it is " +"also permitted in the firewall and when you disable a service it is also " +"disabled in the firewall." +msgstr "" + +#: modules/firewall/templates/firewall.html:88 +#: modules/networks/templates/networks_configuration.html:22 +#: modules/storage/templates/storage.html:93 +msgid "Advanced" +msgstr "" + +#: modules/firewall/templates/firewall.html:90 +msgid "" +"Advanced firewall operations such as opening custom ports are provided by " +"the Cockpit app." +msgstr "" + +#: modules/first_boot/__init__.py:61 +msgid "Setup complete! Next steps:" +msgstr "" + +#: modules/first_boot/__init__.py:63 +#, python-brace-format +msgid "" +"Initial setup has been completed. Perform the next steps to make your " +"{box_name} operational." +msgstr "" + +#: modules/first_boot/__init__.py:66 +msgid "Next steps" +msgstr "" + +#: modules/first_boot/__init__.py:73 +msgid "See next steps" +msgstr "" + +#: modules/first_boot/forms.py:14 +#, python-brace-format +msgid "" +"Enter the secret generated during FreedomBox installation. This secret can " +"also be obtained by running the command \"sudo cat /var/lib/plinth/firstboot-" +"wizard-secret\" on your {box_name}" +msgstr "" + +#: modules/first_boot/forms.py:19 +msgid "Firstboot Wizard Secret" +msgstr "" + +#: modules/first_boot/templates/firstboot_complete.html:14 +msgid "Setup Complete! Next Steps:" +msgstr "" + +#: modules/first_boot/templates/firstboot_complete.html:21 +#, python-format +msgid "" +"Automatic software update " +"runs daily by default. For the first time, manually run it now." +msgstr "" + +#: modules/first_boot/templates/firstboot_complete.html:30 +#: modules/upgrades/templates/upgrades_configure.html:119 +msgid "Update now" +msgstr "" + +#: modules/first_boot/templates/firstboot_complete.html:39 +#, python-format +msgid "" +"Review privacy options." +msgstr "" + +#: modules/first_boot/templates/firstboot_complete.html:49 +#, python-format +msgid "" +"Review and setup network " +"connections. Change the default Wi-Fi password, if applicable." +msgstr "" + +#: modules/first_boot/templates/firstboot_complete.html:60 +#, python-format +msgid "" +"Configure a domain name." +msgstr "" + +#: modules/first_boot/templates/firstboot_complete.html:70 +#, python-format +msgid "" +"Configure and schedule remote backups." +msgstr "" + +#: modules/first_boot/templates/firstboot_complete.html:81 +#, python-format +msgid "" +"Put %(box_name)s to use by installing apps." +msgstr "" + +#: modules/first_boot/templates/firstboot_welcome.html:29 +msgid "Start Setup" +msgstr "" + +#: modules/first_boot/views.py:41 +msgid "Setup Complete" +msgstr "" + +#: modules/gitweb/__init__.py:22 +msgid "" +"Git is a distributed version-control system for tracking changes in source " +"code during software development. Gitweb provides a web interface to Git " +"repositories. You can browse history and content of source code, use search " +"to find relevant commits and code. You can also clone repositories and " +"upload code changes with a command-line Git client or with multiple " +"available graphical clients. And you can share your code with people around " +"the world." +msgstr "" + +#: modules/gitweb/__init__.py:29 +msgid "" +"To learn more on how to use Git visit Git tutorial." +msgstr "" + +#: modules/gitweb/__init__.py:45 +msgid "Read-write access to Git repositories" +msgstr "" + +#: modules/gitweb/__init__.py:48 modules/gitweb/manifest.py:10 +msgid "Gitweb" +msgstr "" + +#: modules/gitweb/forms.py:59 +msgid "Invalid repository URL." +msgstr "" + +#: modules/gitweb/forms.py:69 +msgid "Invalid repository name." +msgstr "" + +#: modules/gitweb/forms.py:77 +msgid "Name of a new repository or URL to import an existing repository." +msgstr "" + +#: modules/gitweb/forms.py:83 +msgid "Description of the repository" +msgstr "" + +#: modules/gitweb/forms.py:84 modules/gitweb/forms.py:88 +msgid "Optional, for displaying on Gitweb." +msgstr "" + +#: modules/gitweb/forms.py:86 +msgid "Repository's owner name" +msgstr "" + +#: modules/gitweb/forms.py:91 +msgid "Private repository" +msgstr "" + +#: modules/gitweb/forms.py:92 +msgid "Allow only authorized users to access this repository." +msgstr "" + +#: modules/gitweb/forms.py:113 modules/gitweb/forms.py:155 +msgid "A repository with this name already exists." +msgstr "" + +#: modules/gitweb/forms.py:126 +msgid "Name of the repository" +msgstr "" + +#: modules/gitweb/forms.py:130 +msgid "An alpha-numeric string that uniquely identifies a repository." +msgstr "" + +#: modules/gitweb/forms.py:134 +msgid "Default branch" +msgstr "" + +#: modules/gitweb/forms.py:135 +msgid "Gitweb displays this as a default branch." +msgstr "" + +#: modules/gitweb/manifest.py:18 +msgid "Git" +msgstr "" + +#: modules/gitweb/manifest.py:37 +msgid "Git hosting" +msgstr "" + +#: modules/gitweb/manifest.py:37 +msgid "Version control" +msgstr "" + +#: modules/gitweb/manifest.py:37 +msgid "Developer tool" +msgstr "" + +#: modules/gitweb/templates/gitweb_configure.html:13 +msgid "Manage Repositories" +msgstr "" + +#: modules/gitweb/templates/gitweb_configure.html:17 +#: modules/gitweb/templates/gitweb_configure.html:19 +msgid "Create repository" +msgstr "" + +#: modules/gitweb/templates/gitweb_configure.html:26 +msgid "No repositories available." +msgstr "" + +#: modules/gitweb/templates/gitweb_configure.html:35 +#, python-format +msgid "Go to repository %(repo.name)s" +msgstr "" + +#: modules/gitweb/templates/gitweb_configure.html:42 +msgid "Cloning…" +msgstr "" + +#: modules/gitweb/templates/gitweb_configure.html:59 +#, python-format +msgid "Delete repository %(repo.name)s" +msgstr "" + +#: modules/gitweb/templates/gitweb_delete.html:12 +#, python-format +msgid "Delete Git Repository %(name)s" +msgstr "" + +#: modules/gitweb/templates/gitweb_delete.html:18 +msgid "Delete this repository permanently?" +msgstr "" + +#: modules/gitweb/views.py:46 +msgid "Repository created." +msgstr "" + +#: modules/gitweb/views.py:69 +msgid "An error occurred while creating the repository." +msgstr "" + +#: modules/gitweb/views.py:84 +msgid "Repository edited." +msgstr "" + +#: modules/gitweb/views.py:89 +msgid "Edit repository" +msgstr "" + +#: modules/gnome/__init__.py:18 +msgid "" +"GNOME is a desktop environment that focuses on simplicity and ease of use." +msgstr "" + +#: modules/gnome/__init__.py:21 +#, python-brace-format +msgid "" +"This app turns your {box_name} into a desktop computer if you physically " +"connect a monitor, a keyboard, and a mouse to it. A browser, an office " +"suite, and other basic utilities are available. You may install further " +"graphical applications using the software center provided within." +msgstr "" + +#: modules/gnome/__init__.py:26 +msgid "" +"This app is not suitable for low-end hardware. It requires at least 4GiB of " +"RAM, 4GiB of disk space and a GPU capable of basic 3D acceleration." +msgstr "" + +#: modules/gnome/__init__.py:30 +#, python-brace-format +msgid "" +"After installing, enabling, disabling, or uninstalling the app, you will " +"need to restart the machine for changes to take " +"effect." +msgstr "" + +#: modules/gnome/__init__.py:48 +msgid "GNOME" +msgstr "" + +#: modules/gnome/manifest.py:9 templates/clients.html:42 +msgid "Desktop" +msgstr "" + +#: modules/gnome/manifest.py:10 +msgid "Browser" +msgstr "" + +#: modules/gnome/manifest.py:11 +msgid "Office suite" +msgstr "" + +#: modules/gnome/manifest.py:12 +msgid "Software store" +msgstr "" + +#: modules/gnome/manifest.py:13 +msgid "GUI" +msgstr "" + +#: modules/gnome/manifest.py:14 +msgid "Graphical apps" +msgstr "" + +#: modules/help/__init__.py:33 modules/help/templates/help_index.html:14 +#: templates/help-menu.html:8 templates/help-menu.html:14 +msgid "Help" +msgstr "" + +#: modules/help/__init__.py:37 modules/help/templates/help_about.html:104 +#: templates/help-menu.html:20 templates/help-menu.html:21 +msgctxt "User guide" +msgid "Manual" +msgstr "" + +#: modules/help/__init__.py:41 modules/help/templates/help_support.html:9 +#: modules/help/views.py:93 templates/help-menu.html:27 +#: templates/help-menu.html:28 +msgid "Get Support" +msgstr "" + +#: modules/help/__init__.py:45 modules/help/templates/help_feedback.html:9 +#: modules/help/views.py:87 templates/help-menu.html:33 +#: templates/help-menu.html:34 +msgid "Submit Feedback" +msgstr "" + +#: modules/help/__init__.py:49 modules/help/templates/help_about.html:113 +#: modules/help/templates/help_contribute.html:9 modules/help/views.py:76 +#: templates/help-menu.html:39 templates/help-menu.html:40 +msgid "Contribute" +msgstr "" + +#: modules/help/__init__.py:53 templates/base.html:216 templates/base.html:219 +#: templates/help-menu.html:46 templates/help-menu.html:47 +#: templates/index.html:96 +msgid "About" +msgstr "" + +#: modules/help/templates/help_about.html:25 templates/messages.html:23 +msgid "Success:" +msgstr "" + +#: modules/help/templates/help_about.html:29 +#: modules/upgrades/templates/upgrades_configure.html:31 +#, python-format +msgid "You are running %(os_release)s and %(box_name)s version %(version)s." +msgstr "" + +#: modules/help/templates/help_about.html:35 +#, python-format +msgid "" +"There is a new %(box_name)s version available." +msgstr "" + +#: modules/help/templates/help_about.html:40 +#: modules/upgrades/templates/upgrades_configure.html:42 +#, python-format +msgid "%(box_name)s is up to date." +msgstr "" + +#: modules/help/templates/help_about.html:49 +#, python-format +msgid "" +"%(box_name)s is a community project to develop, design and promote personal " +"servers running free software for private, personal communications. It is a " +"networking appliance designed to allow interfacing with the rest of the " +"Internet under conditions of protected privacy and data security. It hosts " +"applications such as blog, wiki, website, social network, email, web proxy " +"and a Tor relay, on a device that can replace your Wi-Fi router, so that " +"your data stays with you." +msgstr "" + +#: modules/help/templates/help_about.html:62 +msgid "" +"We live in a world where our use of the network is mediated by those who " +"often do not have our best interests at heart. By building software that " +"does not rely on a central service, we can regain control and privacy. By " +"keeping our data in our homes, we gain useful legal protections over it. By " +"giving back power to the users over their networks and machines, we are " +"returning the Internet to its intended peer-to-peer architecture." +msgstr "" + +#: modules/help/templates/help_about.html:75 +#, python-format +msgid "" +"There are a number of projects working to realize a future of distributed " +"services; %(box_name)s aims to bring them all together in a convenient " +"package." +msgstr "" + +#: modules/help/templates/help_about.html:83 +#, python-format +msgid "" +"%(box_name)s is free software, licensed under the GNU Affero General Public " +"License. The source code is available online at the %(box_name)s repository. In " +"addition, the source code of any Debian package can be obtained from the Debian Sources site, or by running " +"\"apt source package_name\" in a terminal (using Cockpit or SSH)." +msgstr "" + +#: modules/help/templates/help_about.html:97 +msgid "Learn" +msgstr "" + +#: modules/help/templates/help_about.html:116 templates/toolbar.html:19 +msgid "Donate" +msgstr "" + +#: modules/help/templates/help_about.html:119 +msgid "Join project" +msgstr "" + +#: modules/help/templates/help_about.html:123 +msgid "Translate" +msgstr "" + +#: modules/help/templates/help_about.html:129 +msgid "Support" +msgstr "" + +#: modules/help/templates/help_about.html:133 +msgid "Forum" +msgstr "" + +#: modules/help/templates/help_about.html:138 +msgid "IRC Chatroom" +msgstr "" + +#: modules/help/templates/help_about.html:143 +msgid "Mailing list" +msgstr "" + +#: modules/help/templates/help_base.html:21 +#: modules/help/templates/help_index.html:63 +#, python-format +msgid "%(box_name)s Setup" +msgstr "" + +#: modules/help/templates/help_contribute.html:12 +msgid "The FreedomBox project welcomes contributions of all kinds." +msgstr "" + +#: modules/help/templates/help_contribute.html:18 +msgid "" +"You can contribute by writing code, testing and reporting bugs, discussing " +"new use cases and applications, designing logos and artwork, providing " +"support to your fellow users, translating FreedomBox and its applications " +"into your language, hosting hackathons or install fests, and by spreading " +"the word." +msgstr "" + +#: modules/help/templates/help_contribute.html:28 +msgid "" +"You can also help the project financially by donating to the non-profit FreedomBox " +"Foundation. Founded in 2011, the FreedomBox Foundation is a non-profit " +"organization with 501(c)(3) status based in New York City that exists to " +"support FreedomBox. It provides technical infrastructure and legal services " +"for the project, pursues partnerships, and advocates for FreedomBox " +"throughout the world. The FreedomBox Foundation would not exist without its " +"supporters." +msgstr "" + +#: modules/help/templates/help_contribute.html:42 +#: modules/power/templates/power_restart.html:27 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 +msgid "Learn more..." +msgstr "" + +#: modules/help/templates/help_contribute.html:46 +msgid "How can I help?" +msgstr "" + +#: modules/help/templates/help_contribute.html:48 +msgid "" +"Below is a list of opportunities for contributing to Debian. It has been " +"filtered to only show packages that are installed on this system." +msgstr "" + +#: modules/help/templates/help_contribute.html:59 +msgid "Show issues" +msgstr "" + +#: modules/help/templates/help_contribute.html:63 +msgid "Packages that will be removed from Debian testing" +msgstr "" + +#: modules/help/templates/help_contribute.html:69 +#: modules/help/templates/help_contribute.html:85 +msgid "source package:" +msgstr "" + +#: modules/help/templates/help_contribute.html:80 +msgid "Packages that are not in Debian testing" +msgstr "" + +#: modules/help/templates/help_contribute.html:92 +msgid "Good first issues for beginners" +msgstr "" + +#: modules/help/templates/help_contribute.html:104 +msgid "Issues for which the package maintainer has requested help" +msgstr "" + +#: modules/help/templates/help_feedback.html:12 +#, python-format +msgid "Your feedback will help us improve %(box_name)s!" +msgstr "" + +#: modules/help/templates/help_feedback.html:18 +msgid "" +"Let us know about missing features, your favourite apps and how we can " +"improve them on our discussion forum." +msgstr "" + +#: modules/help/templates/help_feedback.html:26 +msgid "" +"If you find any bugs or issues, please use the issue " +"tracker to let our developers know. To report, first check if the issue " +"is already reported and then use the \"New issue\" button." +msgstr "" + +#: modules/help/templates/help_feedback.html:36 +msgid "Thank you!" +msgstr "" + +#: modules/help/templates/help_index.html:18 +#, python-format +msgid "" +"The %(box_name)s Manual is the best place to " +"start for information regarding %(box_name)s." +msgstr "" + +#: modules/help/templates/help_index.html:25 +#, python-format +msgid "" +" " +"%(box_name)s project wiki contains further information." +msgstr "" + +#: modules/help/templates/help_index.html:32 +#, python-format +msgid "" +"To seek help from %(box_name)s community, queries may be posted on the mailing list. The list archives also contain information " +"about problems faced by other users and possible solutions." +msgstr "" + +#: modules/help/templates/help_index.html:42 +#, python-format +msgid "" +"Many %(box_name)s contributors and users are also available on the irc.oftc." +"net IRC network. Join and request help on the #freedombox " +"channel using the IRC web interface." +msgstr "" + +#: modules/help/templates/help_manual.html:18 +msgid "Download as PDF" +msgstr "" + +#: modules/help/templates/help_support.html:12 +#, python-format +msgid "" +"If you need help in getting something done or if you are facing problems " +"using %(box_name)s, you can ask for help from our community of users and " +"contributors." +msgstr "" + +#: modules/help/templates/help_support.html:20 +msgid "" +"Search for past discussions or post a new query on our discussion forum." +msgstr "" + +#: modules/help/templates/help_support.html:27 +msgid "" +"You can also chat with us on our IRC and Matrix channels (bridged):
    " +"
  • #freedombox on irc.oftc.net
  • #freedombox:matrix.org
" +"Or send an email to our mailing list." +msgstr "" + +#: modules/help/templates/statuslog.html:10 +msgid "Status Log" +msgstr "" + +#: modules/help/templates/statuslog.html:13 +#, python-format +msgid "" +"These are the last %(num_lines)s lines of the status log for this web " +"interface. If you want to report a bug, please use the bug tracker and " +"attach this status log to the bug report." +msgstr "" + +#: modules/help/templates/statuslog.html:27 +msgid "" +"Please remove any personal information from the log before submitting the " +"bug report." +msgstr "" + +#: modules/help/views.py:29 +msgid "Documentation and FAQ" +msgstr "" + +#: modules/help/views.py:98 +#, python-brace-format +msgid "About {box_name}" +msgstr "" + +#: modules/help/views.py:135 +#, python-brace-format +msgid "{box_name} Manual" +msgstr "" + +#: modules/ikiwiki/__init__.py:20 +msgid "" +"ikiwiki is a simple wiki and blog application. It supports several " +"lightweight markup languages, including Markdown, and common blogging " +"functionality such as comments and RSS feeds." +msgstr "" + +#: modules/ikiwiki/__init__.py:24 +#, python-brace-format +msgid "" +"Only {box_name} users in the admin group can create and " +"manage blogs and wikis, but any user in the wiki group can " +"edit existing ones. In the User " +"Configuration you can change these permissions or add new users." +msgstr "" + +#: modules/ikiwiki/__init__.py:45 modules/ikiwiki/manifest.py:6 +msgid "ikiwiki" +msgstr "" + +#: modules/ikiwiki/forms.py:17 +msgid "Admin Account Name" +msgstr "" + +#: modules/ikiwiki/forms.py:19 +msgid "Admin Account Password" +msgstr "" + +#: modules/ikiwiki/manifest.py:15 modules/wordpress/manifest.py:26 +msgid "Blog" +msgstr "" + +#: modules/ikiwiki/templates/ikiwiki_configure.html:12 +msgid "Manage Wikis and Blogs" +msgstr "" + +#: modules/ikiwiki/templates/ikiwiki_configure.html:16 +#: modules/ikiwiki/templates/ikiwiki_configure.html:18 +#: modules/ikiwiki/templates/ikiwiki_create.html:10 +msgid "Create Wiki or Blog" +msgstr "" + +#: modules/ikiwiki/templates/ikiwiki_configure.html:25 +msgid "No wikis or blogs available." +msgstr "" + +#: modules/ikiwiki/templates/ikiwiki_configure.html:31 +#, python-format +msgid "Go to site %(site)s" +msgstr "" + +#: modules/ikiwiki/templates/ikiwiki_configure.html:38 +#, python-format +msgid "Delete site %(site)s" +msgstr "" + +#: modules/ikiwiki/templates/ikiwiki_create.html:18 +#: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:54 +#: modules/snapshot/templates/snapshot.html:16 templates/app.html:60 +msgid "Update setup" +msgstr "" + +#: modules/ikiwiki/templates/ikiwiki_delete.html:12 +#, python-format +msgid "Delete Wiki or Blog %(name)s" +msgstr "" + +#: modules/ikiwiki/templates/ikiwiki_delete.html:18 +msgid "" +"This action will remove all the posts, pages and comments including revision " +"history. Delete this wiki or blog permanently?" +msgstr "" + +#: modules/ikiwiki/views.py:69 +#, python-brace-format +msgid "Created wiki {name}." +msgstr "" + +#: modules/ikiwiki/views.py:72 +#, python-brace-format +msgid "Could not create wiki: {error}" +msgstr "" + +#: modules/ikiwiki/views.py:79 +#, python-brace-format +msgid "Created blog {name}." +msgstr "" + +#: modules/ikiwiki/views.py:82 +#, python-brace-format +msgid "Could not create blog: {error}" +msgstr "" + +#: modules/ikiwiki/views.py:98 +#, python-brace-format +msgid "{title} deleted." +msgstr "" + +#: modules/ikiwiki/views.py:102 +#, python-brace-format +msgid "Could not delete {title}: {error}" +msgstr "" + +#: modules/infinoted/__init__.py:20 +msgid "infinoted is a server for Gobby, a collaborative text editor." +msgstr "" + +#: modules/infinoted/__init__.py:22 +#, python-brace-format +msgid "" +"To use it, download Gobby, desktop " +"client and install it. Then start Gobby and select \"Connect to Server\" and " +"enter your {box_name}'s domain name." +msgstr "" + +#: modules/infinoted/__init__.py:41 +msgid "infinoted" +msgstr "" + +#: modules/infinoted/manifest.py:10 modules/infinoted/manifest.py:46 +msgid "Gobby" +msgstr "" + +#: modules/infinoted/manifest.py:12 +msgid "Gobby is a collaborative text editor" +msgstr "" + +#: modules/infinoted/manifest.py:15 +#, python-brace-format +msgid "" +"Start Gobby and select \"Connect to Server\" and enter your {box_name}'s " +"domain name." +msgstr "" + +#: modules/infinoted/manifest.py:46 +msgid "Collaborative editing" +msgstr "" + +#: modules/janus/__init__.py:23 +msgid "Janus is a lightweight WebRTC server." +msgstr "" + +#: modules/janus/__init__.py:24 +msgid "A simple video conference room is included." +msgstr "" + +#: modules/janus/__init__.py:26 +#, python-brace-format +msgid "Coturn is required to use Janus." +msgstr "" + +#: modules/janus/__init__.py:42 +msgid "Janus" +msgstr "" + +#: modules/janus/manifest.py:7 +msgid "Janus Video Room" +msgstr "" + +#: modules/janus/manifest.py:16 +msgid "WebRTC" +msgstr "" + +#: modules/janus/manifest.py:16 +msgid "Web conference" +msgstr "" + +#: modules/janus/templates/janus_video_room.html:205 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:272 +msgid "JavaScript license information" +msgstr "" + +#: modules/jsxc/__init__.py:19 +msgid "" +"JSXC is a web client for XMPP. Typically it is used with an XMPP server " +"running locally." +msgstr "" + +#: modules/jsxc/__init__.py:38 modules/jsxc/manifest.py:7 +msgid "JSXC" +msgstr "" + +#: modules/jsxc/manifest.py:16 +msgid "Web chat" +msgstr "" + +#: modules/jsxc/manifest.py:16 modules/quassel/manifest.py:54 +msgid "Client" +msgstr "" + +#: modules/kiwix/__init__.py:21 +msgid "" +"Kiwix is an offline reader for web content. It is software intended to make " +"Wikipedia available without using the internet, but it is potentially " +"suitable for all HTML content. Kiwix packages are in the ZIM file format." +msgstr "" + +#: modules/kiwix/__init__.py:25 +msgid "" +"Kiwix can host various kinds of content:\n" +"
    \n" +"
  • Offline versions of websites: Wikimedia projects, Stack Exchange\n" +"
  • Video content: Khan Academy, TED Talks, Crash Course
  • \n" +"
  • Educational materials: PHET, TED Ed, Vikidia
  • \n" +"
  • eBooks: Project Gutenberg
  • \n" +"
  • Magazines: Low-tech Magazine
  • \n" +"
" +msgstr "" + +#: modules/kiwix/__init__.py:33 +#: modules/kiwix/templates/kiwix-add-package.html:14 +msgid "" +"You can download content packages from the Kiwix " +"project or create your own." +msgstr "" + +#: modules/kiwix/__init__.py:53 +msgid "Manage Kiwix content server" +msgstr "" + +#: modules/kiwix/__init__.py:56 modules/kiwix/manifest.py:8 +msgid "Kiwix" +msgstr "" + +#: modules/kiwix/forms.py:23 +msgid "Content packages have to be in .zim format" +msgstr "" + +#: modules/kiwix/forms.py:25 +#, python-brace-format +msgid "" +"Uploaded ZIM files will be stored under {kiwix_home}/content on your " +"{box_name}. If Kiwix fails to add the file, it will be deleted immediately " +"to save disk space." +msgstr "" + +#: modules/kiwix/manifest.py:24 +msgid "Offline reader" +msgstr "" + +#: modules/kiwix/manifest.py:25 +msgid "Archival" +msgstr "" + +#: modules/kiwix/manifest.py:26 modules/shadowsocks/manifest.py:19 +#: modules/shadowsocksserver/manifest.py:18 modules/tor/manifest.py:60 +#: modules/torproxy/manifest.py:57 +msgid "Censorship resistance" +msgstr "" + +#: modules/kiwix/manifest.py:27 +msgid "Wikipedia" +msgstr "" + +#: modules/kiwix/templates/kiwix-add-package.html:29 +#, python-format +msgid "You have %(max_filesize)s of free disk space available." +msgstr "" + +#: modules/kiwix/templates/kiwix-add-package.html:42 +msgid "Upload ZIM file" +msgstr "" + +#: modules/kiwix/templates/kiwix-delete-package.html:11 +#, python-format +msgid "Delete content package %(name)s" +msgstr "" + +#: modules/kiwix/templates/kiwix-delete-package.html:17 +msgid "" +"Delete this package permanently? You may add it back later if you have a " +"copy of the ZIM file." +msgstr "" + +#: modules/kiwix/templates/kiwix.html:11 +msgid "Manage Content Packages" +msgstr "" + +#: modules/kiwix/templates/kiwix.html:15 +msgid "Add a content package" +msgstr "" + +#: modules/kiwix/templates/kiwix.html:17 +msgid "Add Package" +msgstr "" + +#: modules/kiwix/templates/kiwix.html:24 +msgid "No content packages available." +msgstr "" + +#: modules/kiwix/templates/kiwix.html:37 +#, python-format +msgid "Delete package %(title)s" +msgstr "" + +#: modules/kiwix/views.py:49 +msgid "Content package added." +msgstr "" + +#: modules/kiwix/views.py:54 +msgid "Add a new content package" +msgstr "" + +#: modules/kiwix/views.py:76 +msgid "Content package already exists." +msgstr "" + +#: modules/kiwix/views.py:79 +msgid "Failed to add content package." +msgstr "" + +#: modules/letsencrypt/__init__.py:27 +#, python-brace-format +msgid "" +"A digital certificate allows users of a web service to verify the identity " +"of the service and to securely communicate with it. {box_name} can " +"automatically obtain and setup digital certificates for each available " +"domain. It does so by proving itself to be the owner of a domain to Let's " +"Encrypt, a certificate authority (CA)." +msgstr "" + +#: modules/letsencrypt/__init__.py:33 +msgid "" +"Let's Encrypt is a free, automated, and open certificate authority, run for " +"the public's benefit by the Internet Security Research Group (ISRG). Please " +"read and agree with the Let's Encrypt Subscriber Agreement before using this service." +msgstr "" + +#: modules/letsencrypt/__init__.py:60 +msgid "Let's Encrypt" +msgstr "" + +#: modules/letsencrypt/manifest.py:11 +msgid "Certificates" +msgstr "" + +#: modules/letsencrypt/manifest.py:11 +msgid "HTTPS" +msgstr "" + +#: modules/letsencrypt/manifest.py:11 +msgid "Web security" +msgstr "" + +#: modules/letsencrypt/templates/letsencrypt.html:25 +msgid "Certificate Status" +msgstr "" + +#: modules/letsencrypt/templates/letsencrypt.html:26 +msgid "Website Security" +msgstr "" + +#: modules/letsencrypt/templates/letsencrypt.html:37 +#, python-format +msgid "Valid, expires on %(expiry_date)s" +msgstr "" + +#: modules/letsencrypt/templates/letsencrypt.html:44 +msgid "Revoked" +msgstr "" + +#: modules/letsencrypt/templates/letsencrypt.html:48 +#, python-format +msgid "Expired on %(expiry_date)s" +msgstr "" + +#: modules/letsencrypt/templates/letsencrypt.html:52 +msgid "Invalid test certificate" +msgstr "" + +#: modules/letsencrypt/templates/letsencrypt.html:56 +#, python-format +msgid "Invalid (%(reason)s)" +msgstr "" + +#: modules/letsencrypt/templates/letsencrypt.html:63 +msgid "No certificate" +msgstr "" + +#: modules/letsencrypt/templates/letsencrypt.html:80 +msgid "Re-obtain" +msgstr "" + +#: modules/letsencrypt/templates/letsencrypt.html:93 +msgid "Revoke" +msgstr "" + +#: modules/letsencrypt/templates/letsencrypt.html:101 +msgid "Obtain" +msgstr "" + +#: modules/letsencrypt/templates/letsencrypt.html:112 +#, python-format +msgid "" +"No domains have been configured. Configure " +"domains to be able to obtain certificates for them." +msgstr "" + +#: modules/letsencrypt/views.py:40 +#, python-brace-format +msgid "" +"Certificate successfully revoked for domain {domain}.This may take a few " +"moments to take effect." +msgstr "" + +#: modules/letsencrypt/views.py:46 +#, python-brace-format +msgid "Failed to revoke certificate for domain {domain}" +msgstr "" + +#: modules/letsencrypt/views.py:59 modules/letsencrypt/views.py:77 +#, python-brace-format +msgid "Certificate successfully obtained for domain {domain}" +msgstr "" + +#: modules/letsencrypt/views.py:64 modules/letsencrypt/views.py:82 +#, python-brace-format +msgid "Failed to obtain certificate for domain {domain}" +msgstr "" + +#: modules/letsencrypt/views.py:95 +#, python-brace-format +msgid "Certificate successfully deleted for domain {domain}" +msgstr "" + +#: modules/letsencrypt/views.py:100 +#, python-brace-format +msgid "Failed to delete certificate for domain {domain}" +msgstr "" + +#: modules/matrixsynapse/__init__.py:26 +msgid "" +"Matrix is an new " +"ecosystem for open, federated instant messaging and VoIP. Synapse is a " +"server implementing the Matrix protocol. It provides chat groups, audio/" +"video calls, end-to-end encryption, multiple device synchronization and does " +"not require phone numbers to work. Users on a given Matrix server can " +"converse with users on all other Matrix servers via federation." +msgstr "" + +#: modules/matrixsynapse/__init__.py:34 +#, python-brace-format +msgid "" +"Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " +"Coturn app or configure an external server." +msgstr "" + +#: modules/matrixsynapse/__init__.py:54 +msgid "Matrix Synapse" +msgstr "" + +#: modules/matrixsynapse/forms.py:15 +msgid "" +"Disabled. This could lead to adversaries registering many spam accounts on " +"your server with automated scripts." +msgstr "" + +#: modules/matrixsynapse/forms.py:18 +msgid "" +"Require users creating a new account to use a registration token. A token " +"will be created automatically. Pass this token to your potential new users. " +"They will be asked for the token during registration. (recommended)" +msgstr "" + +#: modules/matrixsynapse/forms.py:27 +msgid "Enable Public Registration" +msgstr "" + +#: modules/matrixsynapse/forms.py:28 +msgid "" +"Enabling public registration means that anyone on the Internet can register " +"a new account on your Matrix server. Disable this if you only want existing " +"users to be able to use it." +msgstr "" + +#: modules/matrixsynapse/forms.py:33 +msgid "Verification method for registration" +msgstr "" + +#: modules/matrixsynapse/forms.py:40 +#, python-brace-format +msgid "" +"Configures the local coturn app as the STUN/TURN " +"server for Matrix Synapse. Disable this if you want to use a different STUN/" +"TURN server." +msgstr "" + +#: modules/matrixsynapse/manifest.py:14 +msgid "Element" +msgstr "" + +#: modules/matrixsynapse/manifest.py:48 +msgid "FluffyChat" +msgstr "" + +#: modules/matrixsynapse/manifest.py:101 modules/quassel/manifest.py:54 +msgid "Chat room" +msgstr "" + +#: modules/matrixsynapse/manifest.py:105 +msgid "Matrix server" +msgstr "" + +#: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:18 +msgid "" +"Matrix service needs to be configured for a domain. Users on other Matrix " +"servers will be able to reach users on this server using this domain name. " +"Matrix user IDs will look like @username:domainname." +msgstr "" + +#: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:31 +msgid "" +"Warning! Changing the domain name after this step will " +"require uninstalling and reinstalling the app which will wipe app's data." +msgstr "" + +#: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:42 +#, python-format +msgid "" +"No domain(s) are available. Configure at " +"least one domain to be able to use Matrix Synapse." +msgstr "" + +#: modules/matrixsynapse/templates/matrix-synapse.html:20 +#, python-format +msgid "" +"The Matrix server domain is set to %(domain_name)s. User IDs will " +"look like @username:%(domain_name)s. Changing the domain name after " +"the initial setup is currently not supported." +msgstr "" + +#: modules/matrixsynapse/templates/matrix-synapse.html:27 +msgid "" +"New users can be registered from any client if public registration is " +"enabled." +msgstr "" + +#: modules/matrixsynapse/templates/matrix-synapse.html:34 +msgid "" +"New users must use one of the following tokens for verification during " +"account registration:" +msgstr "" + +#: modules/matrixsynapse/templates/matrix-synapse.html:43 +msgid "Registration Token" +msgstr "" + +#: modules/matrixsynapse/templates/matrix-synapse.html:44 +msgid "Uses Allowed" +msgstr "" + +#: modules/matrixsynapse/templates/matrix-synapse.html:45 +msgid "Pending Registrations" +msgstr "" + +#: modules/matrixsynapse/templates/matrix-synapse.html:46 +msgid "Completed Registrations" +msgstr "" + +#: modules/matrixsynapse/templates/matrix-synapse.html:47 +msgid "Expiry Time" +msgstr "" + +#: modules/matrixsynapse/templates/matrix-synapse.html:56 +msgid "Unlimited" +msgstr "" + +#: modules/matrixsynapse/templates/matrix-synapse.html:85 +#, python-format +msgid "" +"The configured domain name is using a self-signed certificate. Federation " +"with other Matrix Synapse instances requires a valid TLS certificate. Please " +"go to Let's Encrypt to obtain one." +msgstr "" + +#: modules/matrixsynapse/views.py:140 +msgid "Registration configuration cannot be updated when app is disabled." +msgstr "" + +#: modules/mediawiki/__init__.py:21 +msgid "" +"MediaWiki is the wiki engine that powers Wikipedia and other WikiMedia " +"projects. A wiki engine is a program for creating a collaboratively edited " +"website. You can use MediaWiki to host a wiki-like website, take notes or " +"collaborate with friends on projects." +msgstr "" + +#: modules/mediawiki/__init__.py:25 +msgid "" +"This MediaWiki instance comes with a randomly generated administrator " +"password. You can set a new password in the \"Configuration\" section and " +"log in using the \"admin\" account. You can then create more user accounts " +"from MediaWiki itself by going to the Special:CreateAccount page." +msgstr "" + +#: modules/mediawiki/__init__.py:31 +msgid "" +"Anyone with a link to this wiki can read it. Only users that are logged in " +"can make changes to the content." +msgstr "" + +#: modules/mediawiki/__init__.py:51 modules/mediawiki/manifest.py:6 +msgid "MediaWiki" +msgstr "" + +#: modules/mediawiki/forms.py:56 +msgid "Administrator Password" +msgstr "" + +#: modules/mediawiki/forms.py:57 +msgid "" +"Set a new password for MediaWiki's administrator account (admin). The " +"password cannot be a common one and the minimum required length is " +"10 characters. Leave this field blank to keep the current " +"password." +msgstr "" + +#: modules/mediawiki/forms.py:65 +msgid "" +"Used by MediaWiki to generate URLs that point to the wiki such as in footer, " +"feeds and emails. Examples: \"myfreedombox.example.org\" or \"example." +"onion\"." +msgstr "" + +#: modules/mediawiki/forms.py:71 +msgid "Site Name" +msgstr "" + +#: modules/mediawiki/forms.py:72 +msgid "Name of the site as displayed throughout the wiki." +msgstr "" + +#: modules/mediawiki/forms.py:76 +msgid "Enable public registrations" +msgstr "" + +#: modules/mediawiki/forms.py:77 +msgid "" +"If enabled, anyone on the internet will be able to create an account on your " +"MediaWiki instance." +msgstr "" + +#: modules/mediawiki/forms.py:81 +msgid "Enable private mode" +msgstr "" + +#: modules/mediawiki/forms.py:82 +msgid "" +"If enabled, access will be restricted. Only people who have accounts can " +"read/write to the wiki. Public registrations will also be disabled." +msgstr "" + +#: modules/mediawiki/forms.py:87 +msgid "Default Skin" +msgstr "" + +#: modules/mediawiki/forms.py:88 +msgid "" +"Choose a default skin for your MediaWiki installation. Users have the option " +"to select their preferred skin." +msgstr "" + +#: modules/mediawiki/forms.py:93 +msgid "Default Language" +msgstr "" + +#: modules/mediawiki/forms.py:94 +msgid "" +"Choose a default language for your MediaWiki installation. Users have the " +"option to select their preferred language." +msgstr "" + +#: modules/mediawiki/views.py:43 +msgid "Password updated" +msgstr "" + +#: modules/mediawiki/views.py:48 +msgid "Password update failed. Please choose a stronger password" +msgstr "" + +#: modules/mediawiki/views.py:57 +msgid "Public registrations enabled" +msgstr "" + +#: modules/mediawiki/views.py:65 +msgid "Public registrations disabled" +msgstr "" + +#: modules/mediawiki/views.py:70 +msgid "Private mode enabled" +msgstr "" + +#: modules/mediawiki/views.py:76 +msgid "Private mode disabled" +msgstr "" + +#: modules/mediawiki/views.py:84 +msgid "Default skin changed" +msgstr "" + +#: modules/mediawiki/views.py:88 +msgid "Domain name updated" +msgstr "" + +#: modules/mediawiki/views.py:92 +msgid "Site name updated" +msgstr "" + +#: modules/mediawiki/views.py:96 +msgid "Default language changed" +msgstr "" + +#: modules/minetest/__init__.py:33 +#, python-brace-format +msgid "" +"Minetest is a multiplayer infinite-world block sandbox. This module enables " +"the Minetest server to be run on this {box_name}, on the default port " +"(30000). To connect to the server, a Minetest client is needed." +msgstr "" + +#: modules/minetest/__init__.py:56 modules/minetest/manifest.py:9 +msgid "Minetest" +msgstr "" + +#: modules/minetest/forms.py:13 +msgid "Maximum number of players" +msgstr "" + +#: modules/minetest/forms.py:15 +msgid "" +"You can change the maximum number of players playing minetest at a single " +"instance of time." +msgstr "" + +#: modules/minetest/forms.py:19 +msgid "Enable creative mode" +msgstr "" + +#: modules/minetest/forms.py:20 +msgid "" +"Creative mode changes the rules of the game to make it more suitable for " +"creative gameplay, rather than challenging \"survival\" gameplay." +msgstr "" + +#: modules/minetest/forms.py:25 +msgid "Enable PVP" +msgstr "" + +#: modules/minetest/forms.py:26 +msgid "Enabling Player Vs Player will allow players to damage other players." +msgstr "" + +#: modules/minetest/forms.py:30 +msgid "Enable damage" +msgstr "" + +#: modules/minetest/forms.py:31 +msgid "When disabled, players cannot die or receive damage of any kind." +msgstr "" + +#: modules/minetest/manifest.py:49 +msgid "Game server" +msgstr "" + +#: modules/minetest/manifest.py:49 +msgid "Block sandbox" +msgstr "" + +#: modules/minetest/manifest.py:49 +msgid "Platform" +msgstr "" + +#: modules/minetest/templates/minetest.html:17 modules/networks/forms.py:105 +#: modules/networks/forms.py:145 +msgid "Address" +msgstr "" + +#: modules/minidlna/__init__.py:20 +msgid "" +"MiniDLNA is a simple media server software, with the aim of being fully " +"compliant with DLNA/UPnP-AV clients. The MiniDLNA daemon serves media files " +"(music, pictures, and video) to clients on a network. DLNA/UPnP is zero " +"configuration protocol and is compliant with any device passing the DLNA " +"Certification like portable media players, Smartphones, Televisions, and " +"gaming systems (such as PS3 and Xbox 360) or applications such as totem and " +"Kodi." +msgstr "" + +#: modules/minidlna/__init__.py:45 +msgid "MiniDLNA" +msgstr "" + +#: modules/minidlna/forms.py:20 +msgid "Media Files Directory" +msgstr "" + +#: modules/minidlna/forms.py:21 +msgid "" +"Directory that MiniDLNA Server will read for content. All sub-directories of " +"this will be also scanned for media files." +msgstr "" + +#: modules/minidlna/manifest.py:10 +msgid "vlc" +msgstr "" + +#: modules/minidlna/manifest.py:48 +msgid "kodi" +msgstr "" + +#: modules/minidlna/manifest.py:81 +msgid "yaacc" +msgstr "" + +#: modules/minidlna/manifest.py:91 +msgid "totem" +msgstr "" + +#: modules/minidlna/manifest.py:116 +msgid "Media server" +msgstr "" + +#: modules/minidlna/manifest.py:116 +msgid "Television" +msgstr "" + +#: modules/minidlna/manifest.py:116 +msgid "UPnP" +msgstr "" + +#: modules/minidlna/manifest.py:116 +msgid "DLNA" +msgstr "" + +#: modules/minidlna/views.py:33 +msgid "Updated media directory" +msgstr "" + +#: modules/miniflux/__init__.py:18 +msgid "" +"Miniflux is a web-based tool that aggregates news and blog updates from " +"various websites into one centralized, easy-to-read format. It has a simple " +"interface and focuses on a distraction-free reading experience. You can can " +"subscribe to your favorite sites and access full article contents within the " +"reader itself." +msgstr "" + +#: modules/miniflux/__init__.py:23 +msgid "" +"Key features include keyboard shortcuts for quick navigation, full-text " +"search, filtering articles, categories and favorites. Miniflux preserves " +"user privacy by removing trackers. The primary interface is web-based. There " +"are several third-party clients as well." +msgstr "" + +#: modules/miniflux/__init__.py:42 modules/miniflux/manifest.py:10 +msgid "Miniflux" +msgstr "" + +#: modules/miniflux/forms.py:12 +msgid "Enter a username for the user." +msgstr "" + +#: modules/miniflux/forms.py:16 +msgid "Enter a strong password with a minimum of 6 characters." +msgstr "" + +#: modules/miniflux/forms.py:18 +msgid "Password confirmation" +msgstr "" + +#: modules/miniflux/forms.py:20 +msgid "Enter the same password for confirmation." +msgstr "" + +#: modules/miniflux/forms.py:31 +msgid "Passwords do not match." +msgstr "" + +#: modules/miniflux/manifest.py:18 +msgid "Fluent Reader Lite" +msgstr "" + +#: modules/miniflux/manifest.py:33 +msgid "Fluent Reader" +msgstr "" + +#: modules/miniflux/manifest.py:46 +msgid "FluxNews" +msgstr "" + +#: modules/miniflux/manifest.py:61 +msgid "MiniFlutt" +msgstr "" + +#: modules/miniflux/manifest.py:71 +msgid "NetNewsWire" +msgstr "" + +#: modules/miniflux/manifest.py:86 +msgid "Newsflash" +msgstr "" + +#: modules/miniflux/manifest.py:96 +msgid "Read You" +msgstr "" + +#: modules/miniflux/manifest.py:106 +msgid "RSS Guard" +msgstr "" + +#: modules/miniflux/manifest.py:138 modules/ttrss/manifest.py:55 +msgid "Feed reader" +msgstr "" + +#: modules/miniflux/manifest.py:138 modules/ttrss/manifest.py:55 +msgid "News aggregation" +msgstr "" + +#: modules/miniflux/manifest.py:138 modules/rssbridge/manifest.py:16 +#: modules/ttrss/manifest.py:55 +msgid "RSS" +msgstr "" + +#: modules/miniflux/manifest.py:138 modules/rssbridge/manifest.py:16 +#: modules/ttrss/manifest.py:55 +msgid "ATOM" +msgstr "" + +#: modules/miniflux/templates/miniflux.html:14 +msgid "" +"Create an admin user to get started. Other users can be created from within " +"Miniflux." +msgstr "" + +#: modules/miniflux/templates/miniflux.html:22 +#: modules/miniflux/templates/miniflux.html:24 +msgid "Create admin user" +msgstr "" + +#: modules/miniflux/templates/miniflux.html:27 +#: modules/miniflux/templates/miniflux.html:29 +msgid "Reset user password" +msgstr "" + +#: modules/miniflux/views.py:38 +msgid "Create Admin User" +msgstr "" + +#: modules/miniflux/views.py:48 +#, python-brace-format +msgid "Created admin user: {username}" +msgstr "" + +#: modules/miniflux/views.py:53 +#, python-brace-format +msgid "An error occurred while creating the user: {error}." +msgstr "" + +#: modules/miniflux/views.py:70 +msgid "Reset User Password" +msgstr "" + +#: modules/miniflux/views.py:80 +#, python-brace-format +msgid "Password reset for user: {username}" +msgstr "" + +#: modules/miniflux/views.py:85 +#, python-brace-format +msgid "An error occurred during password reset: {error}." +msgstr "" + +#: modules/mumble/__init__.py:26 +msgid "" +"Mumble is an open source, low-latency, encrypted, high quality voice chat " +"software." +msgstr "" + +#: modules/mumble/__init__.py:28 +msgid "" +"You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " +"desktop and mobile devices are available." +msgstr "" + +#: modules/mumble/__init__.py:46 modules/mumble/manifest.py:9 +msgid "Mumble" +msgstr "" + +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + +#: modules/mumble/forms.py:30 +msgid "Set SuperUser Password" +msgstr "" + +#: modules/mumble/forms.py:33 +msgid "" +"Optional. Leave this field blank to keep the current password. SuperUser " +"password can be used to manage permissions in Mumble." +msgstr "" + +#: modules/mumble/forms.py:40 +msgid "Set a password to join the server" +msgstr "" + +#: modules/mumble/forms.py:42 +msgid "" +"Set a password that is required to join the server. Leave empty to use the " +"current password." +msgstr "" + +#: modules/mumble/forms.py:48 +msgid "Set the name for the root channel" +msgstr "" + +#: modules/mumble/forms.py:52 +msgid "" +"Set the name of the main channel of your mumble server. If the name was " +"never changed, the channel is named Root." +msgstr "" + +#: modules/mumble/manifest.py:34 +msgid "Mumblefly" +msgstr "" + +#: modules/mumble/manifest.py:43 +msgid "Mumla" +msgstr "" + +#: modules/mumble/manifest.py:67 +msgid "Group conference" +msgstr "" + +#: modules/mumble/views.py:43 +msgid "SuperUser password successfully updated." +msgstr "" + +#: modules/mumble/views.py:48 +msgid "Join password changed" +msgstr "" + +#: modules/mumble/views.py:53 +msgid "Root channel name changed." +msgstr "" + +#: modules/names/__init__.py:34 +#, python-brace-format +msgid "" +"Name Services provides an overview of the ways {box_name} can be reached " +"from the public Internet: domain name, Tor onion service, and Pagekite. For " +"each type of name, it is shown whether the HTTP, HTTPS, and SSH services are " +"enabled or disabled for incoming connections through the given name." +msgstr "" + +#: modules/names/__init__.py:55 +msgid "Name Services" +msgstr "" + +#: modules/names/__init__.py:69 +msgid "Domain (regular)" +msgstr "" + +#: modules/names/__init__.py:178 +msgid "Package systemd-resolved is installed" +msgstr "" + +#: modules/names/__init__.py:232 +#, python-brace-format +msgid "Resolve domain name: {domain}" +msgstr "" + +#: modules/names/components.py:14 +msgid "All" +msgstr "" + +#: modules/names/components.py:18 modules/names/components.py:22 +msgid "All web apps" +msgstr "" + +#: modules/names/components.py:26 +msgid "Secure Shell" +msgstr "" + +#: modules/names/forms.py:22 +msgid "Use DNS-over-TLS for resolving domains (global preference)" +msgstr "" + +#: modules/names/forms.py:50 +msgid "Use DNSSEC when resolving domains (global preference)" +msgstr "" + +#: modules/names/forms.py:85 modules/names/manifest.py:12 +msgid "Hostname" +msgstr "" + +#: modules/names/forms.py:86 +#, python-brace-format +msgid "" +"Hostname is the local name by which other devices on the local network can " +"reach your {box_name}. It must start and end with an alphabet or a digit " +"and have as interior characters only alphabets, digits and hyphens. Total " +"length must be 63 characters or less." +msgstr "" + +#: modules/names/forms.py:92 +msgid "Invalid hostname" +msgstr "" + +#: modules/names/forms.py:108 +#, python-brace-format +msgid "" +"Domain name is the global name by which other devices on the Internet can " +"reach your {box_name}. It must consist of labels separated by dots. Each " +"label must start and end with an alphabet or a digit and have as interior " +"characters only alphabets, digits and hyphens. Length of each label must be " +"63 characters or less. Total length of domain name must be 253 characters " +"or less." +msgstr "" + +#: modules/names/manifest.py:13 +msgid "DNS Resolution" +msgstr "" + +#: modules/names/resolved.py:91 modules/names/resolved.py:101 +#: modules/networks/forms.py:28 +#: modules/networks/templates/connection_show.html:70 +#: modules/networks/templates/connection_show.html:212 +#: modules/networks/templates/connection_show.html:253 +#: modules/networks/views.py:125 +msgid "yes" +msgstr "" + +#: modules/names/resolved.py:92 modules/networks/forms.py:29 +#: modules/networks/views.py:124 +msgid "opportunistic" +msgstr "" + +#: modules/names/resolved.py:93 modules/names/resolved.py:103 +#: modules/networks/forms.py:30 modules/networks/views.py:123 +msgid "no" +msgstr "" + +#: modules/names/resolved.py:102 +msgid "allow-downgrade" +msgstr "" + +#: modules/names/resolved.py:110 +msgid "supported" +msgstr "" + +#: modules/names/resolved.py:110 +msgid "unsupported" +msgstr "" + +#: modules/names/templates/names.html:41 +#: modules/networks/templates/connection_show.html:40 +#: modules/wireguard/templates/wireguard_show_client.html:72 +#: modules/wireguard/templates/wireguard_show_server.html:73 +#: templates/base.html:166 templates/base.html:167 +msgid "Edit" +msgstr "" + +#: modules/names/templates/names.html:59 +msgid "Add Domains" +msgstr "" + +#: modules/names/templates/names.html:87 +msgid "Resolver Status" +msgstr "" + +#: modules/names/templates/names.html:97 +msgid "Global" +msgstr "" + +#: modules/names/templates/names.html:99 +msgid "Link" +msgstr "" + +#: modules/names/templates/names.html:104 +#: modules/networks/templates/connection_show.html:268 +msgid "DNS-over-TLS" +msgstr "" + +#: modules/names/templates/names.html:108 +msgid "DNSSEC" +msgstr "" + +#: modules/names/templates/names.html:113 +msgid "Current DNS Server" +msgstr "" + +#: modules/names/templates/names.html:119 +msgid "DNS Servers" +msgstr "" + +#: modules/names/templates/names.html:129 +msgid "Fallback DNS Servers" +msgstr "" + +#: modules/names/templates/names.html:143 +msgid "" +"systemd-resolved package is not installed. Install it for additional " +"functionality." +msgstr "" + +#: modules/names/templates/names.html:152 templates/setup.html:78 +msgid "Install" +msgstr "" + +#: modules/names/templates/names.html:162 +msgid "Error retrieving status:" +msgstr "" + +#: modules/names/views.py:83 +msgid "Set Hostname" +msgstr "" + +#: modules/names/views.py:101 +#, python-brace-format +msgid "Error setting hostname: {exception}" +msgstr "" + +#: modules/names/views.py:117 +msgid "Add Domain Name" +msgstr "" + +#: modules/networks/__init__.py:19 +msgid "" +"Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or " +"PPPoE. Share that connection with other devices on the network." +msgstr "" + +#: modules/networks/__init__.py:21 +msgid "" +"Devices administered through other methods may not be available for " +"configuration here." +msgstr "" + +#: modules/networks/__init__.py:42 +msgid "Networks" +msgstr "" + +#: modules/networks/forms.py:19 modules/networks/forms.py:25 +#: modules/networks/views.py:39 modules/networks/views.py:100 +#: modules/networks/views.py:111 +msgid "unknown" +msgstr "" + +#: modules/networks/forms.py:38 +msgid "Connection Type" +msgstr "" + +#: modules/networks/forms.py:45 +msgid "Connection Name" +msgstr "" + +#: modules/networks/forms.py:47 +msgid "Network Interface" +msgstr "" + +#: modules/networks/forms.py:48 +msgid "The network device that this connection should be bound to." +msgstr "" + +#: modules/networks/forms.py:51 +msgid "Firewall Zone" +msgstr "" + +#: modules/networks/forms.py:52 +msgid "" +"The firewall zone will control which services are available over this " +"interfaces. Select Internal only for trusted networks." +msgstr "" + +#: modules/networks/forms.py:56 +msgid "Use DNS-over-TLS" +msgstr "" + +#: modules/networks/forms.py:90 +msgid "IPv4 Addressing Method" +msgstr "" + +#: modules/networks/forms.py:92 +msgid "" +"Automatic (DHCP): Configure automatically, use Internet connection from this " +"network" +msgstr "" + +#: modules/networks/forms.py:95 +msgid "" +"Shared: Act as a router, provide Internet connection to other devices on " +"this network" +msgstr "" + +#: modules/networks/forms.py:98 modules/networks/forms.py:139 +msgid "" +"Manual: Use manually specified parameters, use Internet connection from this " +"network" +msgstr "" + +#: modules/networks/forms.py:101 +msgid "Disabled: Do not configure this addressing method" +msgstr "" + +#: modules/networks/forms.py:108 +msgid "Netmask" +msgstr "" + +#: modules/networks/forms.py:109 +msgid "" +"Optional value. If left blank, a default netmask based on the address will " +"be used." +msgstr "" + +#: modules/networks/forms.py:113 modules/networks/forms.py:152 +#: modules/networks/templates/connection_show.html:197 +#: modules/networks/templates/connection_show.html:238 +msgid "Gateway" +msgstr "" + +#: modules/networks/forms.py:113 modules/networks/forms.py:152 +msgid "Optional value." +msgstr "" + +#: modules/networks/forms.py:116 modules/networks/forms.py:155 +msgid "DNS Server" +msgstr "" + +#: modules/networks/forms.py:117 +msgid "" +"Optional value. If this value is given and IPv4 addressing method is " +"\"Automatic\", the DNS Servers provided by a DHCP server will be ignored." +msgstr "" + +#: modules/networks/forms.py:122 modules/networks/forms.py:161 +msgid "Second DNS Server" +msgstr "" + +#: modules/networks/forms.py:123 +msgid "" +"Optional value. If this value is given and IPv4 Addressing Method is " +"\"Automatic\", the DNS Servers provided by a DHCP server will be ignored." +msgstr "" + +#: modules/networks/forms.py:128 +msgid "IPv6 Addressing Method" +msgstr "" + +#: modules/networks/forms.py:130 +msgid "" +"Automatic: Configure automatically, use Internet connection from this network" +msgstr "" + +#: modules/networks/forms.py:133 +msgid "" +"Automatic (DHCP only): Configure automatically, use Internet connection from " +"this network" +msgstr "" + +#: modules/networks/forms.py:136 +msgid "" +"Link-local: Configure automatically to use an address that is only relevant " +"to this network." +msgstr "" + +#: modules/networks/forms.py:141 +msgid "Ignore: Ignore this addressing method" +msgstr "" + +#: modules/networks/forms.py:142 +msgid "Disabled: Disable IPv6 for this connection" +msgstr "" + +#: modules/networks/forms.py:147 +msgid "Prefix" +msgstr "" + +#: modules/networks/forms.py:148 +msgid "Value between 1 and 128." +msgstr "" + +#: modules/networks/forms.py:156 +msgid "" +"Optional value. If this value is given and IPv6 addressing method is " +"\"Automatic\", the DNS Servers provided by a DHCP server will be ignored." +msgstr "" + +#: modules/networks/forms.py:162 +msgid "" +"Optional value. If this value is given and IPv6 Addressing Method is " +"\"Automatic\", the DNS Servers provided by a DHCP server will be ignored." +msgstr "" + +#: modules/networks/forms.py:183 +msgid "-- select --" +msgstr "" + +#: modules/networks/forms.py:312 +#: modules/networks/templates/connection_show.html:139 +msgid "SSID" +msgstr "" + +#: modules/networks/forms.py:313 +msgid "The visible name of the network." +msgstr "" + +#: modules/networks/forms.py:315 +#: modules/networks/templates/connection_show.html:152 +msgid "Mode" +msgstr "" + +#: modules/networks/forms.py:315 +msgid "Infrastructure" +msgstr "" + +#: modules/networks/forms.py:316 +msgid "Access Point" +msgstr "" + +#: modules/networks/forms.py:317 +msgid "Ad-hoc" +msgstr "" + +#: modules/networks/forms.py:319 +msgid "Frequency Band" +msgstr "" + +#: modules/networks/forms.py:320 +msgid "A (5 GHz)" +msgstr "" + +#: modules/networks/forms.py:321 +msgid "B/G (2.4 GHz)" +msgstr "" + +#: modules/networks/forms.py:323 +#: modules/networks/templates/connection_show.html:166 +msgid "Channel" +msgstr "" + +#: modules/networks/forms.py:324 +msgid "" +"Optional value. Wireless channel in the selected frequency band to restrict " +"to. Blank or 0 value means automatic selection." +msgstr "" + +#: modules/networks/forms.py:329 +msgid "BSSID" +msgstr "" + +#: modules/networks/forms.py:330 +msgid "" +"Optional value. Unique identifier for the access point. When connecting to " +"an access point, connect only if the BSSID of the access point matches the " +"one provided. Example: 00:11:22:aa:bb:cc." +msgstr "" + +#: modules/networks/forms.py:336 +msgid "Authentication Mode" +msgstr "" + +#: modules/networks/forms.py:337 +msgid "" +"Select WPA if the wireless network is secured and requires clients to have " +"the password to connect." +msgstr "" + +#: modules/networks/forms.py:339 +msgid "WPA" +msgstr "" + +#: modules/networks/forms.py:339 +msgid "Open" +msgstr "" + +#: modules/networks/forms.py:375 +#, python-brace-format +msgid "Specify how your {box_name} is connected to your network" +msgstr "" + +#: modules/networks/forms.py:382 +#, python-brace-format +msgid "" +"Connected to a router

Your {box_name} gets its " +"Internet connection from your router via Wi-Fi or Ethernet cable. This is a " +"typical home setup.

" +msgstr "" + +#: modules/networks/forms.py:389 +#, python-brace-format +msgid "" +"{box_name} is your router

Your {box_name} has " +"multiple network interfaces such as multiple Ethernet ports or a Wi-Fi " +"adapter. {box_name} is directly connected to the Internet and all your " +"devices connect to {box_name} for their Internet connectivity.

" +msgstr "" + +#: modules/networks/forms.py:398 +#, python-brace-format +msgid "" +"Directly connected to the Internet

Your Internet " +"connection is directly attached to your {box_name} and there are no other " +"devices on the network. This can happen on community or cloud setups.

" +msgstr "" + +#: modules/networks/forms.py:417 +msgid "Choose your internet connection type" +msgstr "" + +#: modules/networks/forms.py:421 +msgid "" +"I have a public IP address that may change over time

This means that devices on the Internet can reach you when you are " +"connected to the Internet. Every time you connect to the Internet with your " +"Internet Service Provider (ISP), you may get a different IP address, " +"especially after some offline time. Many ISPs offer this type of " +"connectivity. If you have a public IP address but are unsure if it changes " +"over time or not, it is safer to choose this option.

" +msgstr "" + +#: modules/networks/forms.py:433 +#, python-brace-format +msgid "" +"I have a public IP address that does not change over time (recommended)

This means that devices on the Internet can reach you " +"when you are connected to the Internet. Every time you connect to the " +"Internet with your Internet Service Provider (ISP), you always get the same " +"IP address. This is the most trouble-free setup for many {box_name} services " +"but very few ISPs offer this. You may be able to get this service from your " +"ISP by making an additional payment.

" +msgstr "" + +#: modules/networks/forms.py:446 +#, python-brace-format +msgid "" +"I dont have a public IP address

This means that " +"devices on the Internet can not reach you when you are connected to " +"the Internet. Every time you connect to the Internet with your Internet " +"Service Provider (ISP), you get an IP address that is only relevant for " +"local networks. Many ISPs offer this type of connectivity. This is the most " +"troublesome situation for hosting services at home. {box_name} provides many " +"workaround solutions but each solution has some limitations.

" +msgstr "" + +#: modules/networks/forms.py:459 +msgid "" +"I do not know the type of connection my ISP provides

You will be suggested the most conservative actions.

" +msgstr "" + +#: modules/networks/forms.py:476 +msgid "Preferred router configuration" +msgstr "" + +#: modules/networks/forms.py:481 +#, python-brace-format +msgid "" +"Use DMZ feature to forward all traffic (recommended)

Most routers provide a configuration setting called DMZ. This will " +"allow the router to forward all incoming traffic from the Internet to a " +"single IP address such as the {box_name}'s IP address. First remember to " +"configure a static local IP address for your {box_name} in your router's " +"configuration.

" +msgstr "" + +#: modules/networks/forms.py:493 +#, python-brace-format +msgid "" +"Forward specific traffic as needed by each application

You may alternatively choose to forward only specific traffic to " +"your {box_name}. This is ideal if you have other servers like {box_name} in " +"your network or if your router does not support DMZ feature. All " +"applications that provide a web interface need you to forward traffic from " +"ports 80 and 443 to work. Each of the other applications will suggest which " +"port(s) need to be forwarded for that application to work.

" +msgstr "" + +#: modules/networks/forms.py:507 +msgid "" +"Router is currently unconfigured

Choose this if you " +"have not configured or are unable to configure the router currently and wish " +"to be reminded later. Some of the other configuration steps may fail.

" +msgstr "" + +#: modules/networks/manifest.py:8 +#: modules/networks/templates/connections_diagram.html:11 +msgid "Internet" +msgstr "" + +#: modules/networks/manifest.py:8 +#: modules/networks/templates/connections_diagram.html:32 +#: modules/networks/templates/connections_diagram.html:62 +#: modules/networks/templates/connections_fields_wifi.html:15 +#: modules/networks/views.py:102 network.py:29 +msgid "Wi-Fi" +msgstr "" + +#: modules/networks/manifest.py:8 modules/privoxy/manifest.py:10 +#: modules/samba/manifest.py:90 +msgid "Local network" +msgstr "" + +#: modules/networks/manifest.py:8 +msgid "Topology" +msgstr "" + +#: modules/networks/templates/connection_show.html:27 +#, python-format +msgid "" +"This is the primary connection that %(box_name)s relies on for Internet " +"connectivity. Altering it may render your %(box_name)s unreachable. Ensure " +"that you have other means to access %(box_name)s before altering this " +"connection." +msgstr "" + +#: modules/networks/templates/connection_show.html:40 +msgid "Edit connection" +msgstr "" + +#: modules/networks/templates/connection_show.html:47 +#: modules/networks/templates/connections_list.html:61 +msgid "Deactivate" +msgstr "" + +#: modules/networks/templates/connection_show.html:54 +#: modules/networks/templates/connections_list.html:69 +msgid "Activate" +msgstr "" + +#: modules/networks/templates/connection_show.html:60 +msgid "Delete connection" +msgstr "" + +#: modules/networks/templates/connection_show.html:63 +#: modules/networks/templates/connections_diagram.html:19 +#: modules/networks/templates/connections_diagram.html:22 +#: modules/networks/templates/connections_diagram.html:51 +#: modules/networks/templates/connections_diagram.html:73 +msgid "Connection" +msgstr "" + +#: modules/networks/templates/connection_show.html:68 +msgid "Primary connection" +msgstr "" + +#: modules/networks/templates/connection_show.html:81 +#: modules/storage/templates/storage.html:23 +msgid "Device" +msgstr "" + +#: modules/networks/templates/connection_show.html:85 +msgid "State" +msgstr "" + +#: modules/networks/templates/connection_show.html:90 +msgid "State reason" +msgstr "" + +#: modules/networks/templates/connection_show.html:99 +msgid "MAC address" +msgstr "" + +#: modules/networks/templates/connection_show.html:103 +msgid "Interface" +msgstr "" + +#: modules/networks/templates/connection_show.html:107 +#: modules/snapshot/templates/snapshot_delete_selected.html:19 +#: modules/snapshot/templates/snapshot_manage.html:34 +#: modules/snapshot/templates/snapshot_rollback.html:27 +msgid "Description" +msgstr "" + +#: modules/networks/templates/connection_show.html:113 +msgid "Physical Link" +msgstr "" + +#: modules/networks/templates/connection_show.html:118 +msgid "Link state" +msgstr "" + +#: modules/networks/templates/connection_show.html:121 +msgid "cable is connected" +msgstr "" + +#: modules/networks/templates/connection_show.html:124 +msgid "please check cable" +msgstr "" + +#: modules/networks/templates/connection_show.html:128 +#: modules/networks/templates/connection_show.html:144 +msgid "Speed" +msgstr "" + +#: modules/networks/templates/connection_show.html:130 +#, python-format +msgid "%(ethernet_speed)s Mbit/s" +msgstr "" + +#: modules/networks/templates/connection_show.html:146 +#, python-format +msgid "%(wireless_bitrate)s Mbit/s" +msgstr "" + +#: modules/networks/templates/connection_show.html:158 +msgid "Signal strength" +msgstr "" + +#: modules/networks/templates/connection_show.html:174 +#: modules/networks/templates/connections_fields.html:67 +msgid "IPv4" +msgstr "" + +#: modules/networks/templates/connection_show.html:179 +#: modules/networks/templates/connection_show.html:222 +#: modules/shadowsocks/forms.py:36 modules/shadowsocksserver/forms.py:42 +msgid "Method" +msgstr "" + +#: modules/networks/templates/connection_show.html:188 +#: modules/networks/templates/connection_show.html:229 +msgid "IP address" +msgstr "" + +#: modules/networks/templates/connection_show.html:204 +#: modules/networks/templates/connection_show.html:245 +msgid "DNS server" +msgstr "" + +#: modules/networks/templates/connection_show.html:211 +#: modules/networks/templates/connection_show.html:252 +#: modules/storage/forms.py:132 +msgid "Default" +msgstr "" + +#: modules/networks/templates/connection_show.html:217 +#: modules/networks/templates/connections_fields.html:94 +msgid "IPv6" +msgstr "" + +#: modules/networks/templates/connection_show.html:260 +msgid "This connection is not active." +msgstr "" + +#: modules/networks/templates/connection_show.html:264 +#: modules/networks/templates/connections_fields_privacy.html:15 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 +msgid "Privacy" +msgstr "" + +#: modules/networks/templates/connection_show.html:279 +#: modules/networks/templates/connection_show.html:304 +#: modules/networks/templates/connection_show.html:328 +msgid "Firewall zone" +msgstr "" + +#: modules/networks/templates/connection_show.html:289 +#: modules/networks/templates/connection_show.html:314 +#: modules/networks/templates/connection_show.html:338 +#: templates/internal-zone.html:13 templates/messages.html:20 +msgid "Info:" +msgstr "" + +#: modules/networks/templates/connection_show.html:292 +msgid "" +"This interface should be connected to a local network/machine. If you " +"connect this interface to a public network, services meant to be available " +"only internally will become available externally. This is a security risk." +msgstr "" + +#: modules/networks/templates/connection_show.html:317 +#: modules/networks/templates/connection_show.html:345 +msgid "" +"This interface should receive your Internet connection. If you connect it to " +"a local network/machine, many services meant to available only internally " +"will not be available." +msgstr "" + +#: modules/networks/templates/connection_show.html:330 +#: modules/networks/templates/connections_diagram.html:24 network.py:25 +msgid "External" +msgstr "" + +#: modules/networks/templates/connection_show.html:341 +#, python-format +msgid "" +"This interface is not maintained by %(box_name)s. For security, it is " +"automatically assigned to the external zone." +msgstr "" + +#: modules/networks/templates/connections_create.html:18 +msgid "Create Connection" +msgstr "" + +#: modules/networks/templates/connections_delete.html:11 +#: modules/networks/views.py:545 +msgid "Delete Connection" +msgstr "" + +#: modules/networks/templates/connections_delete.html:14 +#, python-format +msgid "Delete connection %(name)s permanently?" +msgstr "" + +#: modules/networks/templates/connections_diagram.html:16 +#: modules/networks/templates/connections_diagram.html:48 +msgid "Spacing" +msgstr "" + +#: modules/networks/templates/connections_diagram.html:29 +#: modules/networks/templates/connections_diagram.html:59 +#: modules/networks/views.py:101 network.py:28 +msgid "Ethernet" +msgstr "" + +#: modules/networks/templates/connections_diagram.html:35 +#: modules/networks/templates/connections_diagram.html:65 +#: modules/networks/templates/connections_list.html:43 +#, python-format +msgid "Show connection %(name)s" +msgstr "" + +#: modules/networks/templates/connections_diagram.html:53 network.py:25 +msgid "Internal" +msgstr "" + +#: modules/networks/templates/connections_diagram.html:77 +msgid "Computer" +msgstr "" + +#: modules/networks/templates/connections_edit.html:24 +#: modules/networks/views.py:253 modules/networks/views.py:341 +msgid "Edit Connection" +msgstr "" + +#: modules/networks/templates/connections_fields.html:13 +#: templates/messages.html:14 +msgid "Error:" +msgstr "" + +#: modules/networks/templates/connections_fields.html:20 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 +msgid "Close" +msgstr "" + +#: modules/networks/templates/connections_fields.html:32 +msgid "General" +msgstr "" + +#: modules/networks/templates/connections_fields_pppoe.html:15 network.py:30 +msgid "PPPoE" +msgstr "" + +#: modules/networks/templates/connections_list.html:8 +msgid "Connections" +msgstr "" + +#: modules/networks/templates/connections_list.html:12 +#: modules/networks/templates/connections_list.html:14 +#: modules/networks/views.py:395 +msgid "Nearby Wi-Fi Networks" +msgstr "" + +#: modules/networks/templates/connections_list.html:17 +#: modules/networks/templates/connections_list.html:19 +#: modules/networks/views.py:420 +#: modules/wireguard/templates/wireguard_add_server.html:19 +msgid "Add Connection" +msgstr "" + +#: modules/networks/templates/connections_list.html:31 +msgid "Active" +msgstr "" + +#: modules/networks/templates/connections_list.html:35 +msgid "Inactive" +msgstr "" + +#: modules/networks/templates/connections_list.html:77 +#, python-format +msgid "Delete connection %(name)s" +msgstr "" + +#: modules/networks/templates/connections_type_select.html:19 +msgid "Create..." +msgstr "" + +#: modules/networks/templates/internet_connectivity_content.html:10 +msgid "What Type Of Internet Connection Do You Have?" +msgstr "" + +#: modules/networks/templates/internet_connectivity_content.html:16 +msgid "" +"Select an option that best describes the type of Internet connection. This " +"information is used only to guide you with further setup." +msgstr "" + +#: modules/networks/templates/internet_connectivity_main.html:9 +msgid "Your Internet Connection Type" +msgstr "" + +#: modules/networks/templates/internet_connectivity_main.html:14 +msgid "" +"The following best describes the type of Internet connection provided by " +"your ISP. This information is only used to suggest you necessary " +"configuration actions." +msgstr "" + +#: modules/networks/templates/internet_connectivity_main.html:23 +msgid "My ISP provides a public IP address that does not change over time." +msgstr "" + +#: modules/networks/templates/internet_connectivity_main.html:27 +msgid "My ISP provides a public IP address that may change over time." +msgstr "" + +#: modules/networks/templates/internet_connectivity_main.html:31 +msgid "My ISP does not provide a public IP address." +msgstr "" + +#: modules/networks/templates/internet_connectivity_main.html:35 +msgid "I do not know the type of connection my ISP provides." +msgstr "" + +#: modules/networks/templates/internet_connectivity_main.html:41 +#: modules/networks/templates/network_topology_main.html:41 +msgid "Update..." +msgstr "" + +#: modules/networks/templates/internet_connectivity_type.html:18 +#: modules/networks/templates/network_topology_update.html:18 +#: modules/networks/templates/router_configuration_update.html:19 +#: modules/pagekite/templates/pagekite_custom_services.html:33 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 +msgid "Submit" +msgstr "" + +#: modules/networks/templates/network_topology_content.html:10 +#, python-format +msgid "How is Your %(box_name)s Connected to the Internet?" +msgstr "" + +#: modules/networks/templates/network_topology_content.html:16 +#, python-format +msgid "" +"Select an option that best describes how your %(box_name)s is connected in " +"your network. This information is used to guide you with further setup. It " +"can be changed later." +msgstr "" + +#: modules/networks/templates/network_topology_main.html:9 +#, python-format +msgid "%(box_name)s Internet Connectivity" +msgstr "" + +#: modules/networks/templates/network_topology_main.html:15 +#, python-format +msgid "" +"The following best describes how your %(box_name)s is connected in your " +"network. This information is used only to suggest necessary configuration " +"actions." +msgstr "" + +#: modules/networks/templates/network_topology_main.html:24 +#, python-format +msgid "" +"Your %(box_name)s gets its Internet connection from your router via Wi-Fi or " +"Ethernet cable. This is a typical home setup." +msgstr "" + +#: modules/networks/templates/network_topology_main.html:29 +#, python-format +msgid "" +"Your %(box_name)s is directly connected to the Internet and all your devices " +"connect to %(box_name)s for their Internet connectivity." +msgstr "" + +#: modules/networks/templates/network_topology_main.html:34 +#, python-format +msgid "" +"Your Internet connection is directly attached to your %(box_name)s and there " +"are no other devices on the network." +msgstr "" + +#: modules/networks/templates/networks_configuration.html:24 +msgid "" +"Advanced networking operations such as bonding, bridging and VLAN management " +"are provided by the Cockpit app." +msgstr "" + +#: modules/networks/templates/router_configuration_content.html:10 +#, python-format +msgid "Setup %(box_name)s Behind a Router" +msgstr "" + +#: modules/networks/templates/router_configuration_content.html:16 +#, python-format +msgid "" +"Your %(box_name)s gets its internet connection from your router via Wi-Fi or " +"Ethernet cable. This is a typical home setup." +msgstr "" + +#: modules/networks/templates/router_configuration_content.html:23 +#, python-format +msgid "" +"With this setup, any device on the internet trying to reach your " +"%(box_name)s will have to go through your router. The router will need to be " +"configured to forward all traffic it receives so that %(box_name)s provides " +"the services." +msgstr "" + +#: modules/networks/templates/router_configuration_content.html:32 +msgid "" +"If you don't have control over your router, choose not to configure it. To " +"see options to overcome this limitation, choose 'I dont have a public IP " +"address' option in Internet connection type selection." +msgstr "" + +#: modules/networks/templates/router_configuration_content.html:39 +msgid "Choose How You Wish to Configure Your Router" +msgstr "" + +#: modules/networks/templates/router_configuration_content.html:42 +msgid "" +"You will need to login to your router's administration console provided by " +"the router. This may look like one of the following:" +msgstr "" + +#: modules/networks/templates/router_configuration_content.html:54 +msgid "" +"The username and password is configured by you when you first setup the " +"router. For many routers, this information is printed at the back of the " +"router. If you don't remember the credentials or the IP address of the " +"router, you may decide to reset it and set it up freshly. Lookup your router " +"model number and search online for the router's manual. This will provide " +"full instructions on how to perform this task." +msgstr "" + +#: modules/networks/templates/wifi_scan.html:14 +msgid "No Wi-Fi device detected." +msgstr "" + +#: modules/networks/templates/wifi_scan.html:21 +#, python-format +msgid "Device: %(interface_name)s" +msgstr "" + +#: modules/networks/templates/wifi_scan.html:27 +msgid "Last scanned: " +msgstr "" + +#: modules/networks/templates/wifi_scan.html:31 +msgid "never" +msgstr "" + +#: modules/networks/templates/wifi_scan.html:52 +msgid "No Wi-Fi networks found." +msgstr "" + +#: modules/networks/views.py:27 +msgid "disabled" +msgstr "" + +#: modules/networks/views.py:28 +msgid "automatic" +msgstr "" + +#: modules/networks/views.py:29 +msgid "manual" +msgstr "" + +#: modules/networks/views.py:30 +msgid "shared" +msgstr "" + +#: modules/networks/views.py:31 +msgid "link-local" +msgstr "" + +#: modules/networks/views.py:32 +msgid "dhcp" +msgstr "" + +#: modules/networks/views.py:33 +msgid "ignore" +msgstr "" + +#: modules/networks/views.py:40 +msgid "unmanaged" +msgstr "" + +#: modules/networks/views.py:41 +msgid "unavailable" +msgstr "" + +#: modules/networks/views.py:42 +msgid "disconnected" +msgstr "" + +#: modules/networks/views.py:43 +msgid "preparing" +msgstr "" + +#: modules/networks/views.py:44 +msgid "connecting" +msgstr "" + +#: modules/networks/views.py:45 +msgid "needs authentication" +msgstr "" + +#: modules/networks/views.py:46 +msgid "requesting address" +msgstr "" + +#: modules/networks/views.py:47 +msgid "checking" +msgstr "" + +#: modules/networks/views.py:48 +msgid "waiting for secondary" +msgstr "" + +#: modules/networks/views.py:49 +msgid "activated" +msgstr "" + +#: modules/networks/views.py:50 +msgid "deactivating" +msgstr "" + +#: modules/networks/views.py:58 +msgid "no reason" +msgstr "" + +#: modules/networks/views.py:60 +msgid "unknown error" +msgstr "" + +#: modules/networks/views.py:62 +msgid "device is now managed" +msgstr "" + +#: modules/networks/views.py:64 +msgid "device is now unmanaged" +msgstr "" + +#: modules/networks/views.py:66 +msgid "configuration failed" +msgstr "" + +#: modules/networks/views.py:68 +msgid "secrets required" +msgstr "" + +#: modules/networks/views.py:70 +msgid "DHCP client failed to start" +msgstr "" + +#: modules/networks/views.py:72 +msgid "DHCP client error" +msgstr "" + +#: modules/networks/views.py:74 +msgid "DHCP client failed" +msgstr "" + +#: modules/networks/views.py:76 +msgid "shared connection service failed to start" +msgstr "" + +#: modules/networks/views.py:78 +msgid "shared connection service failed" +msgstr "" + +#: modules/networks/views.py:80 +msgid "device was removed" +msgstr "" + +#: modules/networks/views.py:82 +msgid "device disconnected by user" +msgstr "" + +#: modules/networks/views.py:84 +msgid "a dependency of the connection failed" +msgstr "" + +#: modules/networks/views.py:86 +msgid "Wi-Fi network not found" +msgstr "" + +#: modules/networks/views.py:88 +msgid "a secondary connection failed" +msgstr "" + +#: modules/networks/views.py:90 +msgid "new connection activation was enqueued" +msgstr "" + +#: modules/networks/views.py:92 +msgid "a duplicate IP address was detected" +msgstr "" + +#: modules/networks/views.py:94 +msgid "selected IP method is not supported" +msgstr "" + +#: modules/networks/views.py:103 +msgid "generic" +msgstr "" + +#: modules/networks/views.py:104 +msgid "TUN or TAP interface" +msgstr "" + +#: modules/networks/views.py:105 modules/wireguard/__init__.py:47 +#: modules/wireguard/manifest.py:14 +msgid "WireGuard" +msgstr "" + +#: modules/networks/views.py:112 +msgid "ad-hoc" +msgstr "" + +#: modules/networks/views.py:113 +msgid "infrastructure" +msgstr "" + +#: modules/networks/views.py:114 +msgid "access point" +msgstr "" + +#: modules/networks/views.py:115 +msgid "mesh point" +msgstr "" + +#: modules/networks/views.py:122 +msgid "default" +msgstr "" + +#: modules/networks/views.py:155 +msgid "Cannot show connection: Connection not found." +msgstr "" + +#: modules/networks/views.py:210 +msgid "Connection Information" +msgstr "" + +#: modules/networks/views.py:225 +msgid "Cannot edit connection: Connection not found." +msgstr "" + +#: modules/networks/views.py:231 +msgid "This type of connection is not yet understood." +msgstr "" + +#: modules/networks/views.py:353 +#, python-brace-format +msgid "Activated connection {name}." +msgstr "" + +#: modules/networks/views.py:357 +msgid "Failed to activate connection: Connection not found." +msgstr "" + +#: modules/networks/views.py:363 +#, python-brace-format +msgid "Failed to activate connection {name}: No suitable device is available." +msgstr "" + +#: modules/networks/views.py:376 +#, python-brace-format +msgid "Deactivated connection {name}." +msgstr "" + +#: modules/networks/views.py:380 +msgid "Failed to de-activate connection: Connection not found." +msgstr "" + +#: modules/networks/views.py:438 +msgid "Adding New Generic Connection" +msgstr "" + +#: modules/networks/views.py:456 +msgid "Adding New Ethernet Connection" +msgstr "" + +#: modules/networks/views.py:474 +msgid "Adding New PPPoE Connection" +msgstr "" + +#: modules/networks/views.py:511 +msgid "Adding New Wi-Fi Connection" +msgstr "" + +#: modules/networks/views.py:526 +#, python-brace-format +msgid "Connection {name} deleted." +msgstr "" + +#: modules/networks/views.py:530 modules/networks/views.py:540 +msgid "Failed to delete connection: Connection not found." +msgstr "" + +#: modules/nextcloud/__init__.py:25 +msgid "" +"Nextcloud is a self-hosted productivity platform which provides private and " +"secure functions for file sharing, collaborative work, and more. Nextcloud " +"includes the Nextcloud server, client applications for desktop computers, " +"and mobile clients. The Nextcloud server provides a well integrated web " +"interface." +msgstr "" + +#: modules/nextcloud/__init__.py:30 +msgid "All users of FreedomBox can use Nextcloud. To perform administrative " +msgstr "" + +#: modules/nextcloud/__init__.py:34 +#, python-brace-format +msgid "" +"Please note that Nextcloud is installed and run inside a container provided " +"by the Nextcloud community. Security, quality, privacy and legal reviews are " +"done by the upstream project and not by Debian/{box_name}. Updates are " +"performed following an independent cycle." +msgstr "" + +#: modules/nextcloud/__init__.py:56 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/manifest.py:18 +msgid "Nextcloud" +msgstr "" + +#: modules/nextcloud/forms.py:19 +msgid "Not set" +msgstr "" + +#: modules/nextcloud/forms.py:26 +msgid "Override domain" +msgstr "" + +#: modules/nextcloud/forms.py:27 +msgid "" +"Set to the domain or IP address that Nextcloud should be forced to generate " +"URLs with. Should not be needed if a valid domain is used to access " +"Nextcloud. Examples: \"myfreedombox.example.org\" or \"example.onion\"." +msgstr "" + +#: modules/nextcloud/forms.py:33 +msgid "Administrator password" +msgstr "" + +#: modules/nextcloud/forms.py:34 +msgid "" +"Optional. Set a new password for Nextcloud's administrator account " +"(nextcloud-admin). The password cannot be a common one and the minimum " +"required length is 10 characters. Leave this field blank to " +"keep the current password." +msgstr "" + +#: modules/nextcloud/forms.py:41 +msgid "Default phone region" +msgstr "" + +#: modules/nextcloud/forms.py:42 +msgid "" +"The default phone region is required to validate phone numbers in the " +"profile settings without a country code." +msgstr "" + +#: modules/nextcloud/manifest.py:56 modules/syncthing/manifest.py:58 +msgid "File sync" +msgstr "" + +#: modules/nextcloud/manifest.py:56 modules/sharing/__init__.py:34 +msgid "Sharing" +msgstr "" + +#: modules/nextcloud/manifest.py:56 modules/sogo/manifest.py:72 +msgid "Groupware" +msgstr "" + +#: modules/nextcloud/views.py:53 +msgid "Password update failed. Please choose a stronger password." +msgstr "" + +#: modules/openvpn/__init__.py:20 +#, python-brace-format +msgid "" +"Virtual Private Network (VPN) is a technique for securely connecting two " +"devices in order to access resources of a private network. While you are " +"away from home, you can connect to your {box_name} in order to join your " +"home network and access private/internal services provided by {box_name}. " +"You can also access the rest of the Internet via {box_name} for added " +"security and anonymity." +msgstr "" + +#: modules/openvpn/__init__.py:43 +msgid "Connect to VPN services" +msgstr "" + +#: modules/openvpn/__init__.py:46 modules/openvpn/manifest.py:17 +msgid "OpenVPN" +msgstr "" + +#: modules/openvpn/__init__.py:57 +#, python-brace-format +msgid "" +"Download Profile" +msgstr "" + +#: modules/openvpn/manifest.py:52 +msgid "Tunnelblick" +msgstr "" + +#: modules/openvpn/manifest.py:60 modules/wireguard/manifest.py:45 +msgid "VPN server" +msgstr "" + +#: modules/openvpn/manifest.py:60 modules/pagekite/manifest.py:17 +#: modules/wireguard/manifest.py:45 +msgid "Remote access" +msgstr "" + +#: modules/openvpn/templates/openvpn.html:12 +msgid "Profile" +msgstr "" + +#: modules/openvpn/templates/openvpn.html:15 +#, python-format +msgid "" +"To connect to %(box_name)s's VPN, you need to download a profile and feed it " +"to an OpenVPN client on your mobile or desktop machine. OpenVPN Clients are " +"available for most platforms. Click \"Learn more...\" above for recommended " +"clients and instructions on how to configure them." +msgstr "" + +#: modules/openvpn/templates/openvpn.html:24 +#, python-format +msgid "Profile is specific to each user of %(box_name)s. Keep it a secret." +msgstr "" + +#: modules/openvpn/templates/openvpn.html:34 +msgid "Download my profile" +msgstr "" + +#: modules/pagekite/__init__.py:19 +#, python-brace-format +msgid "" +"PageKite is a system for exposing {box_name} services when you don't have a " +"direct connection to the Internet. You only need this if your {box_name} " +"services are unreachable from the rest of the Internet. This includes the " +"following situations:" +msgstr "" + +#: modules/pagekite/__init__.py:24 +#, python-brace-format +msgid "{box_name} is behind a restricted firewall." +msgstr "" + +#: modules/pagekite/__init__.py:27 +#, python-brace-format +msgid "{box_name} is connected to a (wireless) router which you don't control." +msgstr "" + +#: modules/pagekite/__init__.py:29 +msgid "" +"Your ISP does not provide you an external IP address and instead provides " +"Internet connection through NAT." +msgstr "" + +#: modules/pagekite/__init__.py:31 +msgid "" +"Your ISP does not provide you a static IP address and your IP address " +"changes every time you connect to Internet." +msgstr "" + +#: modules/pagekite/__init__.py:33 +msgid "Your ISP limits incoming connections." +msgstr "" + +#: modules/pagekite/__init__.py:35 +#, python-brace-format +msgid "" +"PageKite works around NAT, firewalls and IP address limitations by using a " +"combination of tunnels and reverse proxies. You can use any pagekite service " +"provider, for example pagekite.net. In " +"the future it might be possible to use your buddy's {box_name} for this." +msgstr "" + +#: modules/pagekite/__init__.py:59 +msgid "PageKite" +msgstr "" + +#: modules/pagekite/__init__.py:72 +msgid "PageKite Domain" +msgstr "" + +#: modules/pagekite/forms.py:30 +msgid "Server domain" +msgstr "" + +#: modules/pagekite/forms.py:32 +msgid "" +"Select your pagekite server. Set \"pagekite.net\" to use the default " +"pagekite.net server." +msgstr "" + +#: modules/pagekite/forms.py:35 modules/shadowsocks/forms.py:27 +msgid "Server port" +msgstr "" + +#: modules/pagekite/forms.py:36 +msgid "Port of your pagekite server (default: 80)" +msgstr "" + +#: modules/pagekite/forms.py:38 +msgid "Kite name" +msgstr "" + +#: modules/pagekite/forms.py:39 +msgid "Example: mybox.pagekite.me" +msgstr "" + +#: modules/pagekite/forms.py:41 +msgid "Invalid kite name" +msgstr "" + +#: modules/pagekite/forms.py:45 +msgid "Kite secret" +msgstr "" + +#: modules/pagekite/forms.py:46 +msgid "" +"A secret associated with the kite or the default secret for your account if " +"no secret is set on the kite." +msgstr "" + +#: modules/pagekite/forms.py:85 +msgid "protocol" +msgstr "" + +#: modules/pagekite/forms.py:88 +msgid "external (frontend) port" +msgstr "" + +#: modules/pagekite/forms.py:91 +msgid "internal (freedombox) port" +msgstr "" + +#: modules/pagekite/forms.py:92 +msgid "Enable Subdomains" +msgstr "" + +#: modules/pagekite/forms.py:127 +msgid "Deleted custom service" +msgstr "" + +#: modules/pagekite/forms.py:161 +msgid "This service is already available as a standard service." +msgstr "" + +#: modules/pagekite/forms.py:169 +msgid "Added custom service" +msgstr "" + +#: modules/pagekite/forms.py:172 +msgid "This service already exists" +msgstr "" + +#: modules/pagekite/manifest.py:16 +msgid "Reachability" +msgstr "" + +#: modules/pagekite/manifest.py:18 +msgid "Tunneling" +msgstr "" + +#: modules/pagekite/templates/pagekite_configure.html:13 +msgid "Custom Services" +msgstr "" + +#: modules/pagekite/templates/pagekite_configure.html:17 +#: modules/pagekite/templates/pagekite_configure.html:19 +msgid "Add Custom Service" +msgstr "" + +#: modules/pagekite/templates/pagekite_configure.html:35 +#, python-format +msgid "connected to %(backend_host)s:%(backend_port)s" +msgstr "" + +#: modules/pagekite/templates/pagekite_configure.html:47 +msgid "Delete this service" +msgstr "" + +#: modules/pagekite/templates/pagekite_custom_services.html:11 +#: modules/pagekite/views.py:34 +msgid "Add custom PageKite service" +msgstr "" + +#: modules/pagekite/templates/pagekite_custom_services.html:19 +msgid "" +"Your PageKite frontend server may not support all the protocol/port " +"combinations that you are able to define here. For example, HTTPS on ports " +"other than 443 is known to cause problems." +msgstr "" + +#: modules/pagekite/utils.py:45 +msgid "Web Server (HTTP)" +msgstr "" + +#: modules/pagekite/utils.py:47 +#, python-brace-format +msgid "Site will be available at http://{0}" +msgstr "" + +#: modules/pagekite/utils.py:59 +msgid "Web Server (HTTPS)" +msgstr "" + +#: modules/pagekite/utils.py:61 +#, python-brace-format +msgid "Site will be available at https://{0}" +msgstr "" + +#: modules/pagekite/utils.py:73 +msgid "Secure Shell (SSH)" +msgstr "" + +#: modules/pagekite/utils.py:75 +msgid "" +"See SSH client setup instructions" +msgstr "" + +#: modules/performance/__init__.py:19 +msgid "" +"Performance app allows you to collect, store and view information about " +"utilization of the hardware. This can give you basic insights into usage " +"patterns and whether the hardware is overloaded by users and services." +msgstr "" + +#: modules/performance/__init__.py:23 +msgid "" +"Performance metrics are collected by Performance Co-Pilot and can be viewed " +"using the Cockpit app." +msgstr "" + +#: modules/performance/manifest.py:18 +msgid "Monitoring" +msgstr "" + +#: modules/performance/manifest.py:18 +msgid "Resource utilization" +msgstr "" + +#: modules/power/__init__.py:14 +msgid "Restart or shut down the system." +msgstr "" + +#: modules/power/__init__.py:31 +msgid "Power" +msgstr "" + +#: modules/power/manifest.py:10 +msgid "Reboot" +msgstr "" + +#: modules/power/manifest.py:10 +msgid "Shutdown" +msgstr "" + +#: modules/power/templates/power.html:15 templates/base.html:181 +#: templates/base.html:182 +msgid "Restart" +msgstr "" + +#: modules/power/templates/power.html:18 +msgid "Shut Down" +msgstr "" + +#: modules/power/templates/power_busy_warning.html:14 +msgid "" +"Currently an installation or upgrade is running. Consider waiting until it's " +"finished before shutting down or restarting." +msgstr "" + +#: modules/power/templates/power_restart.html:17 +msgid "" +"Are you sure you want to restart? You will not be able to access this web " +"interface for a few minutes until the system is restarted." +msgstr "" + +#: modules/power/templates/power_restart.html:41 +#: modules/power/templates/power_restart.html:44 +msgid "Restart Now" +msgstr "" + +#: modules/power/templates/power_shutdown.html:17 +msgid "" +"Are you sure you want to shut down? You will not be able to access this web " +"interface after shut down." +msgstr "" + +#: modules/power/templates/power_shutdown.html:40 +#: modules/power/templates/power_shutdown.html:43 +msgid "Shut Down Now" +msgstr "" + +#: modules/privacy/__init__.py:21 +msgid "Manage system-wide privacy settings." +msgstr "" + +#: modules/privacy/__init__.py:75 +msgid "Please update privacy settings to match your preferences." +msgstr "" + +#: modules/privacy/__init__.py:80 +msgid "Review privacy setting" +msgstr "" + +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 +msgid "Periodically submit a list of apps used (suggested)" +msgstr "" + +#: modules/privacy/forms.py:27 +#, python-brace-format +msgid "" +"Help Debian/{box_name} developers by participating in the Popularity Contest " +"package survey program. When enabled, a list of apps used on this system " +"will be anonymously submitted to Debian every week. Statistics for the data " +"collected are publicly available at popcon.debian.org. Submission happens over the Tor " +"network for additional anonymity if Tor app is enabled." +msgstr "" + +#: modules/privacy/forms.py:37 +msgid "Allow using fallback DNS servers" +msgstr "" + +#: modules/privacy/forms.py:39 +msgid "" +"Use well-known public DNS servers to resolve domain names in unusual " +"circumstances where no DNS servers are known but internet connectivity is " +"available. Can be disabled in most cases if network connectivity is stable " +"and reliable." +msgstr "" + +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + +#: modules/privacy/manifest.py:10 +msgid "Usage reporting" +msgstr "" + +#: modules/privacy/manifest.py:10 +msgid "External services" +msgstr "" + +#: modules/privacy/manifest.py:10 +msgid "Fallback DNS" +msgstr "" + +#: modules/privoxy/__init__.py:25 +msgid "" +"Privoxy is a non-caching web proxy with advanced filtering capabilities for " +"enhancing privacy, modifying web page data and HTTP headers, controlling " +"access, and removing ads and other obnoxious Internet junk. " +msgstr "" + +#: modules/privoxy/__init__.py:30 +#, python-brace-format +msgid "" +"You can use Privoxy by modifying your browser proxy settings to your " +"{box_name} hostname (or IP address) with port 8118. Only connections from " +"local network IP addresses are permitted. While using Privoxy, you can see " +"its configuration details and documentation at http://config.privoxy.org/ or http://p.p." +msgstr "" + +#: modules/privoxy/__init__.py:53 +msgid "Privoxy" +msgstr "" + +#: modules/privoxy/__init__.py:119 +#, python-brace-format +msgid "Access {url} with proxy {proxy} on tcp{kind}" +msgstr "" + +#: modules/privoxy/manifest.py:10 +msgid "Ad blocker" +msgstr "" + +#: modules/privoxy/manifest.py:10 modules/shadowsocks/manifest.py:18 +#: modules/torproxy/manifest.py:55 +msgid "Proxy server" +msgstr "" + +#: modules/quassel/__init__.py:24 +#, python-brace-format +msgid "" +"Quassel is an IRC application that is split into two parts, a \"core\" and a " +"\"client\". This allows the core to remain connected to IRC servers, and to " +"continue receiving messages, even when the client is disconnected. " +"{box_name} can run the Quassel core service keeping you always online and " +"one or more Quassel clients from a desktop or a mobile can be used to " +"connect and disconnect from it." +msgstr "" + +#: modules/quassel/__init__.py:31 +msgid "" +"You can connect to your Quassel core on the default Quassel port 4242. " +"Clients to connect to Quassel from your desktop and mobile devices are available." +msgstr "" + +#: modules/quassel/__init__.py:51 modules/quassel/manifest.py:9 +msgid "Quassel" +msgstr "" + +#: modules/quassel/manifest.py:33 +msgid "Quasseldroid" +msgstr "" + +#: modules/quassel/manifest.py:54 +msgid "IRC" +msgstr "" + +#: modules/radicale/__init__.py:25 +#, python-brace-format +msgid "" +"Radicale is a CalDAV and CardDAV server. It allows synchronization and " +"sharing of scheduling and contact data. To use Radicale, a supported client application is needed. Radicale can be accessed by any user with a {box_name} login." +msgstr "" + +#: modules/radicale/__init__.py:31 +msgid "" +"Radicale provides a basic web interface, which only supports creating new " +"calendars and addressbooks. It does not support adding events or contacts, " +"which must be done using a separate client." +msgstr "" + +#: modules/radicale/__init__.py:53 modules/radicale/manifest.py:74 +msgid "Radicale" +msgstr "" + +#: modules/radicale/forms.py:14 +msgid "Only the owner of a calendar/addressbook can view or make changes." +msgstr "" + +#: modules/radicale/forms.py:18 +#, python-brace-format +msgid "" +"Any user with a {box_name} login can view any calendar/addressbook, but only " +"the owner can make changes." +msgstr "" + +#: modules/radicale/forms.py:23 +#, python-brace-format +msgid "" +"Any user with a {box_name} login can view or make changes to any calendar/" +"addressbook." +msgstr "" + +#: modules/radicale/forms.py:30 +msgid "Access rights" +msgstr "" + +#: modules/radicale/manifest.py:9 modules/sogo/manifest.py:36 +msgid "DAVx5" +msgstr "" + +#: modules/radicale/manifest.py:11 +msgid "" +"Enter the URL of the Radicale server (e.g. https://) and your user name. DAVx5 will show all existing calendars and " +"address books and you can create new." +msgstr "" + +#: modules/radicale/manifest.py:28 modules/sogo/manifest.py:51 +msgid "GNOME Calendar" +msgstr "" + +#: modules/radicale/manifest.py:56 +msgid "Evolution" +msgstr "" + +#: modules/radicale/manifest.py:58 +msgid "" +"Evolution is a personal information management application that provides " +"integrated mail, calendaring and address book functionality." +msgstr "" + +#: modules/radicale/manifest.py:62 +msgid "" +"In Evolution add a new calendar and address book respectively with WebDAV. " +"Enter the URL of the Radicale server (e.g. https://) and your user name. Clicking on the search button will list the " +"existing calendars and address books." +msgstr "" + +#: modules/radicale/manifest.py:91 modules/sogo/manifest.py:73 +msgid "Calendar" +msgstr "" + +#: modules/radicale/manifest.py:91 modules/roundcube/manifest.py:23 +msgid "Contacts" +msgstr "" + +#: modules/radicale/manifest.py:91 modules/sogo/manifest.py:75 +msgid "CalDAV" +msgstr "" + +#: modules/radicale/manifest.py:91 modules/sogo/manifest.py:76 +msgid "CardDAV" +msgstr "" + +#: modules/radicale/views.py:32 +msgid "Access rights configuration updated" +msgstr "" + +#: modules/roundcube/__init__.py:19 +msgid "" +"Roundcube webmail is a browser-based multilingual IMAP client with an " +"application-like user interface. It provides full functionality you expect " +"from an email client, including MIME support, address book, folder " +"manipulation, message searching and spell checking." +msgstr "" + +#: modules/roundcube/__init__.py:24 +msgid "" +"You can use it by providing the username and password of the email account " +"you wish to access followed by the domain name of the IMAP server for your " +"email provider, like imap.example.com. For IMAP over SSL " +"(recommended), fill the server field like imaps://imap.example.com." +msgstr "" + +#: modules/roundcube/__init__.py:29 +msgid "" +"For Gmail, username will be your Gmail address, password will be your Google " +"account password and server will be imaps://imap.gmail.com. " +"Note that you will also need to enable \"Less secure apps\" in your Google " +"account settings (https://www.google.com/settings/security/lesssecureapps)." +msgstr "" + +#: modules/roundcube/forms.py:16 +msgid "Use only the local mail server" +msgstr "" + +#: modules/roundcube/forms.py:17 +#, python-brace-format +msgid "" +"When enabled, users can only read and send mails via this {box_name}. If you " +"wish to use Roundcube with an external mail account, such as Gmail, you must " +"uncheck this option. When unchecked, a text entry field is added to the " +"login page so the user can specify to which account they wish to connect." +msgstr "" + +#: modules/roundcube/manifest.py:23 +msgid "Email" +msgstr "" + +#: modules/rssbridge/__init__.py:21 +msgid "" +"RSS-Bridge generates RSS and Atom feeds for websites that do not have one. " +"Generated feeds can be consumed by any feed reader." +msgstr "" + +#: modules/rssbridge/__init__.py:24 +#, python-brace-format +msgid "" +"When enabled, RSS-Bridge can be accessed by any " +"user belonging to the feed-reader group." +msgstr "" + +#: modules/rssbridge/__init__.py:28 +#, python-brace-format +msgid "" +"You can use RSS-Bridge with Miniflux or Tiny Tiny RSS to follow various websites. When " +"adding a feed, enable authentication and use your {box_name} credentials." +msgstr "" + +#: modules/rssbridge/__init__.py:48 modules/ttrss/__init__.py:47 +msgid "Read and subscribe to news feeds" +msgstr "" + +#: modules/rssbridge/__init__.py:51 modules/rssbridge/manifest.py:7 +msgid "RSS-Bridge" +msgstr "" + +#: modules/rssbridge/forms.py:12 modules/searx/forms.py:17 +msgid "Allow Public Access" +msgstr "" + +#: modules/rssbridge/forms.py:13 modules/searx/forms.py:18 +msgid "Allow this application to be used by anyone who can reach it." +msgstr "" + +#: modules/rssbridge/manifest.py:16 +msgid "Feed generator" +msgstr "" + +#: modules/rssbridge/manifest.py:16 +msgid "News" +msgstr "" + +#: modules/samba/__init__.py:23 +msgid "" +"Samba allows to share files and folders between FreedomBox and other " +"computers in your local network." +msgstr "" + +#: modules/samba/__init__.py:26 +#, python-brace-format +msgid "" +"After installation, you can choose which disks to use for sharing. Enabled " +"shares are accessible in the file manager on your computer at location \\" +"\\{hostname} (on Windows) or smb://{hostname}.local (on Linux and Mac). " +"There are three types of shares you can choose from: " +msgstr "" + +#: modules/samba/__init__.py:31 +msgid "Open share - accessible to everyone in your local network." +msgstr "" + +#: modules/samba/__init__.py:32 +msgid "" +"Group share - accessible only to FreedomBox users who are in the freedombox-" +"share group." +msgstr "" + +#: modules/samba/__init__.py:34 +msgid "" +"Home share - every user in the freedombox-share group can have their own " +"private space." +msgstr "" + +#: modules/samba/__init__.py:50 +msgid "Access to the private shares" +msgstr "" + +#: modules/samba/__init__.py:53 +msgid "Samba" +msgstr "" + +#: modules/samba/manifest.py:12 +msgid "Android Samba Client" +msgstr "" + +#: modules/samba/manifest.py:25 +msgid "Ghost Commander" +msgstr "" + +#: modules/samba/manifest.py:34 +msgid "Ghost Commander - Samba plugin" +msgstr "" + +#: modules/samba/manifest.py:43 +msgid "VLC media player" +msgstr "" + +#: modules/samba/manifest.py:62 +msgid "GNOME Files" +msgstr "" + +#: modules/samba/manifest.py:74 +msgid "Dolphin" +msgstr "" + +#: modules/samba/manifest.py:91 +msgid "Network drive" +msgstr "" + +#: modules/samba/manifest.py:92 +msgid "Media storage" +msgstr "" + +#: modules/samba/manifest.py:93 +msgid "Backup storage" +msgstr "" + +#: modules/samba/templates/samba.html:20 +msgid "Shares" +msgstr "" + +#: modules/samba/templates/samba.html:22 +msgid "" +"Note: Only specially created directories will be shared on selected disks, " +"not the whole disk." +msgstr "" + +#: modules/samba/templates/samba.html:84 +msgid "VFAT partitions are not supported" +msgstr "" + +#: modules/samba/templates/samba.html:112 +#, python-format +msgid "" +"You can find additional information about disks on the storage module page and configure access to the " +"shares on the users module page." +msgstr "" + +#: modules/samba/templates/samba.html:120 +msgid "Users who can currently access group and home shares" +msgstr "" + +#: modules/samba/templates/samba.html:124 +msgid "" +"Users needing to re-enter their password on the password change page to " +"access group and home shares" +msgstr "" + +#: modules/samba/templates/samba.html:129 +msgid "Unavailable Shares" +msgstr "" + +#: modules/samba/templates/samba.html:131 +msgid "" +"Shares that are configured but the disk is not available. If the disk is " +"plugged back in, sharing will be automatically enabled." +msgstr "" + +#: modules/samba/templates/samba.html:140 +msgid "Share name" +msgstr "" + +#: modules/samba/templates/samba.html:141 +msgid "Action" +msgstr "" + +#: modules/samba/views.py:33 +msgid "FreedomBox OS disk" +msgstr "" + +#: modules/samba/views.py:60 modules/storage/forms.py:140 +msgid "Open Share" +msgstr "" + +#: modules/samba/views.py:64 modules/storage/forms.py:138 +msgid "Group Share" +msgstr "" + +#: modules/samba/views.py:68 +msgid "Home Share" +msgstr "" + +#: modules/samba/views.py:103 +msgid "Share enabled." +msgstr "" + +#: modules/samba/views.py:108 +#, python-brace-format +msgid "Error enabling share: {error_message}" +msgstr "" + +#: modules/samba/views.py:113 +msgid "Share disabled." +msgstr "" + +#: modules/samba/views.py:118 +#, python-brace-format +msgid "Error disabling share: {error_message}" +msgstr "" + +#: modules/searx/__init__.py:20 +msgid "" +"Searx is a privacy-respecting Internet metasearch engine. It aggregrates and " +"displays results from multiple search engines." +msgstr "" + +#: modules/searx/__init__.py:22 +msgid "" +"Searx can be used to avoid tracking and profiling by search engines. It " +"stores no cookies by default." +msgstr "" + +#: modules/searx/__init__.py:38 +msgid "Search the web" +msgstr "" + +#: modules/searx/__init__.py:41 modules/searx/manifest.py:6 +msgid "Searx" +msgstr "" + +#: modules/searx/forms.py:12 +msgid "Safe Search" +msgstr "" + +#: modules/searx/forms.py:13 +msgid "Select the default family filter to apply to your search results." +msgstr "" + +#: modules/searx/forms.py:14 +msgid "Moderate" +msgstr "" + +#: modules/searx/forms.py:14 +msgid "Strict" +msgstr "" + +#: modules/searx/manifest.py:17 +msgid "Web search" +msgstr "" + +#: modules/searx/manifest.py:17 +msgid "Metasearch Engine" +msgstr "" + +#: modules/security/forms.py:13 +msgid "Fail2Ban (recommended)" +msgstr "" + +#: modules/security/forms.py:14 +msgid "" +"When this option is enabled, Fail2Ban will limit brute force break-in " +"attempts to the SSH server and other enabled password protected internet-" +"services." +msgstr "" + +#: modules/security/manifest.py:10 +msgid "Automatic bans" +msgstr "" + +#: modules/security/manifest.py:10 +msgid "Reports" +msgstr "" + +#: modules/security/templates/security.html:12 +#: modules/security/templates/security.html:14 +msgid "Show security report" +msgstr "" + +#: modules/security/templates/security.html:19 +#: modules/upgrades/templates/backports-firstboot.html:11 +#: modules/upgrades/templates/upgrades_configure.html:49 +msgid "Frequent Feature Updates" +msgstr "" + +#: modules/security/templates/security.html:21 +#: modules/upgrades/templates/upgrades_configure.html:57 +msgid "Frequent feature updates are activated." +msgstr "" + +#: modules/security/templates/security.html:26 +#: modules/upgrades/templates/backports-firstboot.html:14 +#: modules/upgrades/templates/upgrades_configure.html:69 +#, python-format +msgid "" +"Frequent feature updates allow the %(box_name)s Service, plus a very limited " +"set of software, to receive new features more frequently (from the backports " +"repository). This results in receiving some new features within weeks, " +"instead of only once every 2 years or so. Note that software with frequent " +"feature updates does not have support from the Debian Security Team. " +"Instead, they are maintained by contributors to Debian and the %(box_name)s " +"community." +msgstr "" + +#: modules/security/templates/security_report.html:10 +#: modules/security/views.py:65 +msgid "Security Report" +msgstr "" + +#: modules/security/templates/security_report.html:12 +#, python-format +msgid "" +"There are %(count)s reported security vulnerabilities in the FreedomBox app, " +"which provides the core services and user interface for a FreedomBox server." +msgstr "" + +#: modules/security/templates/security_report.html:19 +msgid "" +"The following table lists the current reported number of security " +"vulnerabilities for each installed app. More information on the " +"vulnerabilities can be found on the Debian Security Bug Tracker." +msgstr "" + +#: modules/security/templates/security_report.html:28 +msgid "" +"For apps that provide services, the \"Sandboxed\" column shows whether " +"sandboxing features are in use. Sandboxing mitigates the impact of a " +"potentially compromised app to the rest of the system." +msgstr "" + +#: modules/security/templates/security_report.html:35 +msgid "" +"\"Sandbox Coverage\" is a score of how effectively the service is isolated " +"from the rest of the system. It is only displayed while the service is " +"running." +msgstr "" + +#: modules/security/templates/security_report.html:45 +msgid "App Name" +msgstr "" + +#: modules/security/templates/security_report.html:46 +msgid "Current Vulnerabilities" +msgstr "" + +#: modules/security/templates/security_report.html:47 +msgid "Sandboxed" +msgstr "" + +#: modules/security/templates/security_report.html:48 +msgid "Sandbox Coverage" +msgstr "" + +#: modules/security/templates/security_report.html:58 +msgid "N/A" +msgstr "" + +#: modules/security/templates/security_report.html:60 +msgid "Yes" +msgstr "" + +#: modules/security/templates/security_report.html:62 +msgid "No" +msgstr "" + +#: modules/security/templates/security_report.html:69 +msgid "Not running" +msgstr "" + +#: modules/shaarli/__init__.py:18 +msgid "Shaarli allows you to save and share bookmarks." +msgstr "" + +#: modules/shaarli/__init__.py:19 +msgid "" +"Note that Shaarli only supports a single user account, which you will need " +"to setup on the initial visit." +msgstr "" + +#: modules/shaarli/__init__.py:36 modules/shaarli/manifest.py:25 +msgid "Shaarli" +msgstr "" + +#: modules/shaarli/manifest.py:12 +msgid "Shaarlier" +msgstr "" + +#: modules/shaarli/manifest.py:34 +msgid "Bookmarks" +msgstr "" + +#: modules/shaarli/manifest.py:34 +msgid "Link blog" +msgstr "" + +#: modules/shaarli/manifest.py:34 +msgid "Single user" +msgstr "" + +#: modules/shadowsocks/__init__.py:18 modules/shadowsocksserver/__init__.py:18 +msgid "" +"Shadowsocks is a tool for securely forwarding network requests to a remote " +"server. It consists of two parts: (1) a Shadowsocks server, and (2) a " +"Shadowsocks client with a SOCKS5 proxy." +msgstr "" + +#: modules/shadowsocks/__init__.py:21 modules/shadowsocksserver/__init__.py:21 +msgid "" +"Shadowsocks can be used to bypass Internet filtering and censorship. This " +"requires that the Shadowsocks server is in a location where it can freely " +"access the Internet, without filtering." +msgstr "" + +#: modules/shadowsocks/__init__.py:26 +#, python-brace-format +msgid "" +"Your {box_name} can run a Shadowsocks client, that can connect to a " +"Shadowsocks server. It will also run a SOCKS5 proxy. Local devices can " +"connect to this proxy, and their data will be encrypted and proxied through " +"the Shadowsocks server." +msgstr "" + +#: modules/shadowsocks/__init__.py:31 +msgid "" +"To use Shadowsocks after setup, set the SOCKS5 proxy URL in your device, " +"browser or application to http://freedombox_address:1080/" +msgstr "" + +#: modules/shadowsocks/__init__.py:50 +msgid "Shadowsocks Client" +msgstr "" + +#: modules/shadowsocks/forms.py:25 +msgid "Server hostname or IP address" +msgstr "" + +#: modules/shadowsocks/forms.py:29 +msgid "Server port number" +msgstr "" + +#: modules/shadowsocks/forms.py:32 +msgid "Password used to encrypt data. Must match server password." +msgstr "" + +#: modules/shadowsocks/forms.py:37 +msgid "Encryption method. Must match setting on server." +msgstr "" + +#: modules/shadowsocks/manifest.py:20 modules/shadowsocksserver/manifest.py:19 +msgid "Encrypted tunnel" +msgstr "" + +#: modules/shadowsocks/manifest.py:21 +msgid "Entry point" +msgstr "" + +#: modules/shadowsocks/manifest.py:22 modules/shadowsocksserver/manifest.py:21 +msgid "Shadowsocks" +msgstr "" + +#: modules/shadowsocksserver/__init__.py:26 +#, python-brace-format +msgid "" +"Your {box_name} can run a Shadowsocks server, that allows Shadowsocks " +"clients to connect to it. Clients' data will be encrypted and proxied " +"through this server." +msgstr "" + +#: modules/shadowsocksserver/__init__.py:47 +msgid "Shadowsocks Server" +msgstr "" + +#: modules/shadowsocksserver/forms.py:10 modules/shadowsocksserver/forms.py:11 +msgid "Recommended" +msgstr "" + +#: modules/shadowsocksserver/forms.py:38 +msgid "Password used to encrypt data. Clients must use the same password." +msgstr "" + +#: modules/shadowsocksserver/forms.py:43 +msgid "Encryption method. Clients must use the same setting." +msgstr "" + +#: modules/shadowsocksserver/manifest.py:20 +msgid "Exit point" +msgstr "" + +#: modules/sharing/__init__.py:17 +#, python-brace-format +msgid "" +"Sharing allows you to share files and folders on your {box_name} over the " +"web with chosen groups of users." +msgstr "" + +#: modules/sharing/forms.py:17 +msgid "Name of the share" +msgstr "" + +#: modules/sharing/forms.py:19 +msgid "" +"A lowercase alpha-numeric string that uniquely identifies a share. Example: " +"media." +msgstr "" + +#: modules/sharing/forms.py:23 +msgid "Path to share" +msgstr "" + +#: modules/sharing/forms.py:24 +msgid "Disk path to a folder on this server that you intend to share." +msgstr "" + +#: modules/sharing/forms.py:27 +msgid "Public share" +msgstr "" + +#: modules/sharing/forms.py:28 +msgid "Make files in this folder available to anyone with the link." +msgstr "" + +#: modules/sharing/forms.py:33 +msgid "User groups that can read the files in the share:" +msgstr "" + +#: modules/sharing/forms.py:35 +msgid "" +"Users of the selected user groups will be able to read the files in the " +"share." +msgstr "" + +#: modules/sharing/forms.py:51 +msgid "A share with this name already exists." +msgstr "" + +#: modules/sharing/forms.py:62 +msgid "Shares should be either public or shared with at least one group" +msgstr "" + +#: modules/sharing/manifest.py:19 modules/zoph/manifest.py:26 +msgid "Web sharing" +msgstr "" + +#: modules/sharing/templates/sharing.html:18 +#: modules/sharing/templates/sharing.html:21 +msgid "Add share" +msgstr "" + +#: modules/sharing/templates/sharing.html:26 +msgid "No shares currently configured." +msgstr "" + +#: modules/sharing/templates/sharing.html:33 +msgid "Disk Path" +msgstr "" + +#: modules/sharing/templates/sharing.html:34 +msgid "Shared Over" +msgstr "" + +#: modules/sharing/templates/sharing.html:35 +msgid "With Groups" +msgstr "" + +#: modules/sharing/templates/sharing.html:52 +msgid "public access" +msgstr "" + +#: modules/sharing/views.py:39 +msgid "Share added." +msgstr "" + +#: modules/sharing/views.py:44 +msgid "Add Share" +msgstr "" + +#: modules/sharing/views.py:60 +msgid "Share edited." +msgstr "" + +#: modules/sharing/views.py:65 +msgid "Edit Share" +msgstr "" + +#: modules/sharing/views.py:96 +msgid "Share deleted." +msgstr "" + +#: modules/snapshot/__init__.py:18 +msgid "" +"Snapshots allows creating and managing btrfs file system snapshots. These " +"can be used to roll back the system to a previously known good state in case " +"of unwanted changes to the system." +msgstr "" + +#: modules/snapshot/__init__.py:22 +#, no-python-format +msgid "" +"Snapshots are taken periodically (called timeline snapshots) and also before " +"and after a software installation. Older snapshots will be automatically " +"cleaned up according to the settings below." +msgstr "" + +#: modules/snapshot/__init__.py:25 +msgid "" +"Snapshots currently work on btrfs file systems only and on the root " +"partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " +msgstr "" + +#: modules/snapshot/__init__.py:50 +msgid "Storage Snapshots" +msgstr "" + +#: modules/snapshot/forms.py:12 +msgid "Free Disk Space to Maintain" +msgstr "" + +#: modules/snapshot/forms.py:13 +msgid "" +"Maintain this percentage of free space on the disk. If free space falls " +"below this value, older snapshots are removed until this much free space is " +"regained. The default value is 30%." +msgstr "" + +#: modules/snapshot/forms.py:20 +msgid "Timeline Snapshots" +msgstr "" + +#: modules/snapshot/forms.py:21 +msgid "" +"Enable or disable timeline snapshots (hourly, daily, monthly and yearly)." +msgstr "" + +#: modules/snapshot/forms.py:26 +msgid "Software Installation Snapshots" +msgstr "" + +#: modules/snapshot/forms.py:27 +msgid "" +"Enable or disable snapshots before and after each software installation and " +"update." +msgstr "" + +#: modules/snapshot/forms.py:32 +msgid "Hourly Snapshots Limit" +msgstr "" + +#: modules/snapshot/forms.py:33 +msgid "Keep a maximum of this many hourly snapshots." +msgstr "" + +#: modules/snapshot/forms.py:36 +msgid "Daily Snapshots Limit" +msgstr "" + +#: modules/snapshot/forms.py:37 +msgid "Keep a maximum of this many daily snapshots." +msgstr "" + +#: modules/snapshot/forms.py:40 +msgid "Weekly Snapshots Limit" +msgstr "" + +#: modules/snapshot/forms.py:41 +msgid "Keep a maximum of this many weekly snapshots." +msgstr "" + +#: modules/snapshot/forms.py:44 +msgid "Monthly Snapshots Limit" +msgstr "" + +#: modules/snapshot/forms.py:45 +msgid "Keep a maximum of this many monthly snapshots." +msgstr "" + +#: modules/snapshot/forms.py:48 +msgid "Yearly Snapshots Limit" +msgstr "" + +#: modules/snapshot/forms.py:49 +msgid "" +"Keep a maximum of this many yearly snapshots. The default value is 0 (keep " +"no yearly snapshot)." +msgstr "" + +#: modules/snapshot/manifest.py:14 +msgid "Periodic" +msgstr "" + +#: modules/snapshot/manifest.py:14 +msgid "Known good state" +msgstr "" + +#: modules/snapshot/manifest.py:14 +msgid "Btrfs" +msgstr "" + +#: modules/snapshot/templates/snapshot_delete_selected.html:12 +msgid "Delete the following snapshots permanently?" +msgstr "" + +#: modules/snapshot/templates/snapshot_delete_selected.html:17 +#: modules/snapshot/templates/snapshot_manage.html:32 +#: modules/snapshot/templates/snapshot_rollback.html:25 +msgid "Number" +msgstr "" + +#: modules/snapshot/templates/snapshot_delete_selected.html:18 +#: modules/snapshot/templates/snapshot_manage.html:33 +#: modules/snapshot/templates/snapshot_rollback.html:26 +msgid "Date" +msgstr "" + +#: modules/snapshot/templates/snapshot_delete_selected.html:42 +#: modules/snapshot/templates/snapshot_manage.html:25 +#: modules/snapshot/views.py:197 +msgid "Delete Snapshots" +msgstr "" + +#: modules/snapshot/templates/snapshot_manage.html:22 +msgid "Create Snapshot" +msgstr "" + +#: modules/snapshot/templates/snapshot_manage.html:35 +msgid "Rollback" +msgstr "" + +#: modules/snapshot/templates/snapshot_manage.html:45 +msgid "will be used at next boot" +msgstr "" + +#: modules/snapshot/templates/snapshot_manage.html:50 +msgid "in use" +msgstr "" + +#: modules/snapshot/templates/snapshot_manage.html:59 +#, python-format +msgid "Rollback to snapshot #%(number)s" +msgstr "" + +#: modules/snapshot/templates/snapshot_not_supported.html:16 +#, python-format +msgid "" +"You have a filesystem of type %(fs_type)s. Snapshots are " +"currently only available on %(types_supported)s filesystems." +msgstr "" + +#: modules/snapshot/templates/snapshot_rollback.html:12 +msgid "Roll back the system to this snapshot?" +msgstr "" + +#: modules/snapshot/templates/snapshot_rollback.html:15 +msgid "" +"A new snapshot with the current state of the file system will be " +"automatically created. You will be able to undo a rollback by reverting to " +"the newly created snapshot." +msgstr "" + +#: modules/snapshot/templates/snapshot_rollback.html:44 +#, python-format +msgid "Rollback to Snapshot #%(number)s" +msgstr "" + +#: modules/snapshot/views.py:24 +msgid "manually created" +msgstr "" + +#: modules/snapshot/views.py:25 +msgid "timeline" +msgstr "" + +#: modules/snapshot/views.py:26 +msgid "apt" +msgstr "" + +#: modules/snapshot/views.py:36 +msgid "Manage Snapshots" +msgstr "" + +#: modules/snapshot/views.py:96 +msgid "Created snapshot." +msgstr "" + +#: modules/snapshot/views.py:160 +msgid "Configuration update failed." +msgstr "" + +#: modules/snapshot/views.py:184 +msgid "Deleted selected snapshots" +msgstr "" + +#: modules/snapshot/views.py:186 +msgid "Deleting snapshot failed." +msgstr "" + +#: modules/snapshot/views.py:189 +msgid "Snapshot is currently in use. Please try again later." +msgstr "" + +#: modules/snapshot/views.py:208 +#, python-brace-format +msgid "Rolled back to snapshot #{number}." +msgstr "" + +#: modules/snapshot/views.py:211 +msgid "The system must be restarted to complete the rollback." +msgstr "" + +#: modules/snapshot/views.py:221 +msgid "Rollback to Snapshot" +msgstr "" + +#: modules/sogo/__init__.py:21 +msgid "" +"SOGo is a groupware server that provides a rich web interface for email, " +"calendar, tasks, and contacts. Calendar, tasks, and contacts can also be " +"accessed with various mobile and desktop applications using the CalDAV and " +"CardDAV standards." +msgstr "" + +#: modules/sogo/__init__.py:26 +#, python-brace-format +msgid "" +"Webmail works with the Postfix/Dovecot email " +"server app to retrieve, manage, and send email." +msgstr "" + +#: modules/sogo/__init__.py:30 +#, python-brace-format +msgid "" +"All users on {box_name} can login into and use SOGo. Mails delivered to " +"their mailboxes by the email server app can be read and new mail can be sent " +"out." +msgstr "" + +#: modules/sogo/__init__.py:48 modules/sogo/manifest.py:11 +msgid "SOGo" +msgstr "" + +#: modules/sogo/manifest.py:19 +msgid "Thunderbird + SOGo connector" +msgstr "" + +#: modules/sogo/manifest.py:71 +msgid "Webmail" +msgstr "" + +#: modules/sogo/manifest.py:74 +msgid "Address book" +msgstr "" + +#: modules/ssh/__init__.py:22 +msgid "" +"A Secure Shell server uses the secure shell protocol to accept connections " +"from remote computers. An authorized remote computer can perform " +"administration tasks, copy files or run other services using such " +"connections." +msgstr "" + +#: modules/ssh/__init__.py:42 +msgid "Secure Shell Server" +msgstr "" + +#: modules/ssh/__init__.py:75 +msgid "Remotely login using Secure Shell (SSH)" +msgstr "" + +#: modules/ssh/forms.py:13 +msgid "Disable password authentication" +msgstr "" + +#: modules/ssh/forms.py:14 +msgid "" +"Improves security by preventing password guessing. Ensure that you have " +"setup SSH keys in your administrator user account before enabling this " +"option." +msgstr "" + +#: modules/ssh/forms.py:21 +msgid "Allow all users to login remotely" +msgstr "" + +#: modules/ssh/forms.py:22 +msgid "" +"Allow all users who have a valid account to login remotely via SSH. When " +"disabled, only users of groups root, admin and freedombox-ssh can login via " +"SSH." +msgstr "" + +#: modules/ssh/manifest.py:22 +msgid "SSH" +msgstr "" + +#: modules/ssh/manifest.py:22 +msgid "Remote terminal" +msgstr "" + +#: modules/ssh/manifest.py:22 +msgid "Fingerprints" +msgstr "" + +#: modules/ssh/templates/ssh.html:11 +msgid "Server Fingerprints" +msgstr "" + +#: modules/ssh/templates/ssh.html:14 +msgid "" +"When connecting to the server, ensure that the fingerprint shown by the SSH " +"client matches one of these fingerprints." +msgstr "" + +#: modules/ssh/templates/ssh.html:24 +msgid "Algorithm" +msgstr "" + +#: modules/ssh/templates/ssh.html:25 +msgid "Fingerprint" +msgstr "" + +#: modules/sso/__init__.py:27 +msgid "Single Sign On" +msgstr "" + +#: modules/sso/forms.py:28 +msgid "Enter the letters in the image to proceed to the login page" +msgstr "" + +#: modules/sso/templates/captcha.html:20 +msgid "Proceed to Login" +msgstr "" + +#: modules/sso/templates/login.html:23 +msgid "Login" +msgstr "" + +#: modules/sso/views.py:86 +msgid "Logged out successfully." +msgstr "" + +#: modules/storage/__init__.py:24 +#, python-brace-format +msgid "" +"This module allows you to manage storage media attached to your {box_name}. " +"You can view the storage media currently in use, mount and unmount removable " +"media, expand the root partition etc." +msgstr "" + +#: modules/storage/__init__.py:227 +#, python-brace-format +msgid "{disk_size:.1f} bytes" +msgstr "" + +#: modules/storage/__init__.py:231 +#, python-brace-format +msgid "{disk_size:.1f} KiB" +msgstr "" + +#: modules/storage/__init__.py:235 +#, python-brace-format +msgid "{disk_size:.1f} MiB" +msgstr "" + +#: modules/storage/__init__.py:239 +#, python-brace-format +msgid "{disk_size:.1f} GiB" +msgstr "" + +#: modules/storage/__init__.py:242 +#, python-brace-format +msgid "{disk_size:.1f} TiB" +msgstr "" + +#: modules/storage/__init__.py:254 +msgid "The operation failed." +msgstr "" + +#: modules/storage/__init__.py:256 +msgid "The operation was cancelled." +msgstr "" + +#: modules/storage/__init__.py:258 +msgid "The device is already unmounting." +msgstr "" + +#: modules/storage/__init__.py:260 +msgid "The operation is not supported due to missing driver/tool support." +msgstr "" + +#: modules/storage/__init__.py:263 +msgid "The operation timed out." +msgstr "" + +#: modules/storage/__init__.py:265 +msgid "The operation would wake up a disk that is in a deep-sleep state." +msgstr "" + +#: modules/storage/__init__.py:268 +msgid "Attempting to unmount a device that is busy." +msgstr "" + +#: modules/storage/__init__.py:270 +msgid "The operation has already been cancelled." +msgstr "" + +#: modules/storage/__init__.py:272 modules/storage/__init__.py:274 +#: modules/storage/__init__.py:276 +msgid "Not authorized to perform the requested operation." +msgstr "" + +#: modules/storage/__init__.py:278 +msgid "The device is already mounted." +msgstr "" + +#: modules/storage/__init__.py:280 +msgid "The device is not mounted." +msgstr "" + +#: modules/storage/__init__.py:282 +msgid "Not permitted to use the requested option." +msgstr "" + +#: modules/storage/__init__.py:284 +msgid "The device is mounted by another user." +msgstr "" + +#: modules/storage/__init__.py:314 +#, no-python-format, python-brace-format +msgid "Low space on system partition: {percent_used}% used, {free_space} free." +msgstr "" + +#: modules/storage/__init__.py:316 +msgid "Low disk space" +msgstr "" + +#: modules/storage/__init__.py:344 +msgid "Disk failure imminent" +msgstr "" + +#: modules/storage/__init__.py:346 +#, python-brace-format +msgid "" +"Disk {id} is reporting that it is likely to fail in the near future. Copy " +"any data while you still can and replace the drive." +msgstr "" + +#: modules/storage/__init__.py:390 +#, no-python-format +msgid "" +"You cannot save configuration changes. Try rebooting the system. If the " +"problem persists after a reboot, check the storage device for errors." +msgstr "" + +#: modules/storage/__init__.py:393 +msgid "Read-only root filesystem" +msgstr "" + +#: modules/storage/__init__.py:403 +msgid "Go to Power" +msgstr "" + +#: modules/storage/__init__.py:447 modules/storage/tests/test_storage.py:405 +msgid "grub package is configured" +msgstr "" + +#: modules/storage/forms.py:63 +msgid "Invalid directory name." +msgstr "" + +#: modules/storage/forms.py:73 +msgid "Directory does not exist." +msgstr "" + +#: modules/storage/forms.py:75 +msgid "Path is not a directory." +msgstr "" + +#: modules/storage/forms.py:79 +msgid "Directory is not readable by the user." +msgstr "" + +#: modules/storage/forms.py:82 +msgid "Directory is not writable by the user." +msgstr "" + +#: modules/storage/forms.py:87 +msgid "Directory" +msgstr "" + +#: modules/storage/forms.py:89 +msgid "Subdirectory (optional)" +msgstr "" + +#: modules/storage/forms.py:136 +msgid "Share" +msgstr "" + +#: modules/storage/forms.py:144 +msgid "Other directory (specify below)" +msgstr "" + +#: modules/storage/manifest.py:9 +msgid "Disks" +msgstr "" + +#: modules/storage/manifest.py:9 +msgid "Usage" +msgstr "" + +#: modules/storage/manifest.py:9 +msgid "Auto-mount" +msgstr "" + +#: modules/storage/manifest.py:9 +msgid "Expand partition" +msgstr "" + +#: modules/storage/templates/storage.html:17 +msgid "The following storage devices are in use:" +msgstr "" + +#: modules/storage/templates/storage.html:24 +msgid "Label" +msgstr "" + +#: modules/storage/templates/storage.html:25 +msgid "Mount Point" +msgstr "" + +#: modules/storage/templates/storage.html:27 +msgid "Used" +msgstr "" + +#: modules/storage/templates/storage.html:77 +msgid "Partition Expansion" +msgstr "" + +#: modules/storage/templates/storage.html:79 +#, python-format +msgid "" +"There is %(expandable_root_size)s of unallocated space available after your " +"root partition. Root partition can be expanded to use this space. This " +"will provide you additional free space to store your files." +msgstr "" + +#: modules/storage/templates/storage.html:89 +#: modules/storage/templates/storage_expand.html:24 modules/storage/views.py:55 +msgid "Expand Root Partition" +msgstr "" + +#: modules/storage/templates/storage.html:95 +msgid "" +"Advanced storage operations such as disk partitioning and RAID management " +"are provided by the Cockpit app." +msgstr "" + +#: modules/storage/templates/storage_expand.html:14 +#, python-format +msgid "" +"Please backup your data before proceeding. After this operation, " +"%(expandable_root_size)s of additional free space will be available in your " +"root partition." +msgstr "" + +#: modules/storage/views.py:67 +#, python-brace-format +msgid "Error expanding partition: {exception}" +msgstr "" + +#: modules/storage/views.py:70 +msgid "Partition expanded successfully." +msgstr "" + +#: modules/storage/views.py:87 +#, python-brace-format +msgid "{drive_vendor} {drive_model} can be safely unplugged." +msgstr "" + +#: modules/storage/views.py:91 +msgid "Device can be safely unplugged." +msgstr "" + +#: modules/storage/views.py:93 +msgid "Error ejecting device." +msgstr "" + +#: modules/syncthing/__init__.py:23 +msgid "" +"Syncthing is an application to synchronize files across multiple devices, e." +"g. your desktop computer and mobile phone. Creation, modification, or " +"deletion of files on one device will be automatically replicated on all " +"other devices that also run Syncthing." +msgstr "" + +#: modules/syncthing/__init__.py:28 +#, python-brace-format +msgid "" +"Running Syncthing on {box_name} provides an extra synchronization point for " +"your data that is available most of the time, allowing your devices to " +"synchronize more often. {box_name} runs a single instance of Syncthing that " +"may be used by multiple users. Each user's set of devices may be " +"synchronized with a distinct set of folders. The web interface on " +"{box_name} is only available for users belonging to the \"admin\" or " +"\"syncthing-access\" group." +msgstr "" + +#: modules/syncthing/__init__.py:55 +msgid "Administer Syncthing application" +msgstr "" + +#: modules/syncthing/__init__.py:59 modules/syncthing/manifest.py:12 +msgid "Syncthing" +msgstr "" + +#: modules/tiddlywiki/__init__.py:25 +#, python-brace-format +msgid "" +"TiddlyWiki is an interactive application that runs entirely in the web " +"browser. Each wiki is a self-contained HTML file stored on your {box_name}. " +"Instead of writing long wiki pages, TiddlyWiki encourages you to write " +"several short notes called Tiddlers and link them together into a dense " +"graph." +msgstr "" + +#: modules/tiddlywiki/__init__.py:30 +msgid "" +"It is a versatile application with a wide variety of use cases - non-linear " +"notebook, website, personal knowledge base, task and project management " +"system, personal diary etc. Plugins can extend the functionality of " +"TiddlyWiki. Encrypting individual tiddlers or password-protecting a wiki " +"file is possible from within the application." +msgstr "" + +#: modules/tiddlywiki/__init__.py:37 +#, python-brace-format +msgid "" +"TiddlyWiki is downloaded from {box_name} website and not from Debian. Wikis " +"need to be upgraded to newer version manually." +msgstr "" + +#: modules/tiddlywiki/__init__.py:46 +msgid "Create a new wiki or upload your existing wiki file to get started." +msgstr "" + +#: modules/tiddlywiki/__init__.py:64 modules/tiddlywiki/manifest.py:9 +msgid "TiddlyWiki" +msgstr "" + +#: modules/tiddlywiki/forms.py:32 +msgid "A TiddlyWiki file with .html file extension" +msgstr "" + +#: modules/tiddlywiki/forms.py:35 +msgid "TiddlyWiki files must be in HTML format" +msgstr "" + +#: modules/tiddlywiki/forms.py:37 +msgid "Upload an existing TiddlyWiki file from this computer." +msgstr "" + +#: modules/tiddlywiki/manifest.py:22 +msgid "Journal" +msgstr "" + +#: modules/tiddlywiki/manifest.py:23 +msgid "Digital garden" +msgstr "" + +#: modules/tiddlywiki/manifest.py:24 +msgid "Zettelkasten" +msgstr "" + +#: modules/tiddlywiki/templates/tiddlywiki_delete.html:18 +msgid "" +"Hint: You can download a copy of this wiki from within " +"TiddlyWiki before deleting it." +msgstr "" + +#: modules/tor/__init__.py:34 modules/torproxy/__init__.py:30 +msgid "" +"Tor is an anonymous communication system. You can learn more about it from " +"the Tor Project website. For " +"best protection when web surfing, the Tor Project recommends that you use " +"the Tor Browser." +msgstr "" + +#: modules/tor/__init__.py:40 +msgid "" +"This app provides relay services to contribute to Tor network and help " +"others overcome censorship." +msgstr "" + +#: modules/tor/__init__.py:43 +#, python-brace-format +msgid "" +"This app provides an onion domain to expose {box_name} services via the Tor " +"network. Using Tor browser, one can access {box_name} from the internet even " +"when using an ISP that limits servers at home." +msgstr "" + +#: modules/tor/__init__.py:63 modules/tor/manifest.py:61 +#: modules/torproxy/manifest.py:58 +msgid "Tor" +msgstr "" + +#: modules/tor/__init__.py:77 +msgid "Tor Onion Service" +msgstr "" + +#: modules/tor/__init__.py:82 +msgid "Tor Bridge Relay" +msgstr "" + +#: modules/tor/__init__.py:140 +msgid "Tor relay port available" +msgstr "" + +#: modules/tor/__init__.py:152 +msgid "Obfs3 transport registered" +msgstr "" + +#: modules/tor/__init__.py:163 +msgid "Obfs4 transport registered" +msgstr "" + +#: modules/tor/__init__.py:176 +msgid "Onion service is version 3" +msgstr "" + +#: modules/tor/forms.py:33 +msgid "" +"Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]" +msgstr "" + +#: modules/tor/forms.py:76 +msgid "Use upstream bridges to connect to Tor network" +msgstr "" + +#: modules/tor/forms.py:78 +msgid "" +"When enabled, the bridges configured below will be used to connect to the " +"Tor network. Use this option if your Internet Service Provider (ISP) blocks " +"or censors connections to the Tor Network. This will disable relay modes." +msgstr "" + +#: modules/tor/forms.py:83 +msgid "Upstream bridges" +msgstr "" + +#: modules/tor/forms.py:85 +msgid "" +"You can get some bridges from https://bridges.torproject.org/ and copy/paste the bridge information " +"here. Currently supported transports are none, obfs3, obfs4 and scamblesuit." +msgstr "" + +#: modules/tor/forms.py:95 +msgid "Enable Tor relay" +msgstr "" + +#: modules/tor/forms.py:96 +#, python-brace-format +msgid "" +"When enabled, your {box_name} will run a Tor relay and donate bandwidth to " +"the Tor network. Do this if you have more than 2 megabits/s of upload and " +"download bandwidth." +msgstr "" + +#: modules/tor/forms.py:101 +msgid "Enable Tor bridge relay" +msgstr "" + +#: modules/tor/forms.py:103 +msgid "" +"When enabled, relay information is published in the Tor bridge database " +"instead of public Tor relay database making it harder to censor this node. " +"This helps others circumvent censorship." +msgstr "" + +#: modules/tor/forms.py:108 +msgid "Enable Tor Onion Service" +msgstr "" + +#: modules/tor/forms.py:110 +#, python-brace-format +msgid "" +"An onion service will allow {box_name} to provide selected services (such as " +"wiki or chat) without revealing its location. Do not use this for strong " +"anonymity yet." +msgstr "" + +#: modules/tor/forms.py:125 +msgid "Specify at least one upstream bridge to use upstream bridges." +msgstr "" + +#: modules/tor/manifest.py:15 modules/torproxy/manifest.py:14 +msgid "Tor Browser" +msgstr "" + +#: modules/tor/manifest.py:31 modules/torproxy/manifest.py:30 +msgid "Orbot: Proxy with Tor" +msgstr "" + +#: modules/tor/manifest.py:57 +msgid "Onion services" +msgstr "" + +#: modules/tor/manifest.py:58 +msgid "Relay" +msgstr "" + +#: modules/tor/manifest.py:59 modules/torproxy/manifest.py:56 +msgid "Anonymity network" +msgstr "" + +#: modules/tor/templates/tor.html:23 +msgid "Onion Service" +msgstr "" + +#: modules/tor/views.py:53 modules/torproxy/views.py:51 +msgid "Updating configuration" +msgstr "" + +#: modules/tor/views.py:70 modules/torproxy/views.py:68 +#, python-brace-format +msgid "Error configuring app: {error}" +msgstr "" + +#: modules/torproxy/__init__.py:37 +#, python-brace-format +msgid "" +"This app provides a web proxy on your {box_name} for internal networks on " +"TCP port 9050 using the SOCKS protocol. This can be used by various apps to " +"access the internet via the Tor network. ISP censorship can be circumvented " +"using upstream bridges." +msgstr "" + +#: modules/torproxy/__init__.py:57 +msgid "Tor Proxy" +msgstr "" + +#: modules/torproxy/__init__.py:81 +msgid "Tor Socks Proxy" +msgstr "" + +#: modules/torproxy/__init__.py:154 +#, python-brace-format +msgid "Access URL {url} on tcp{kind} via Tor" +msgstr "" + +#: modules/torproxy/__init__.py:166 +#, python-brace-format +msgid "Confirm Tor usage at {url} on tcp{kind}" +msgstr "" + +#: modules/torproxy/forms.py:15 +msgid "Download software packages over Tor" +msgstr "" + +#: modules/torproxy/forms.py:16 +msgid "" +"When enabled, software will be downloaded over the Tor network for " +"installations and upgrades. This adds a degree of privacy and security " +"during software downloads." +msgstr "" + +#: modules/transmission/__init__.py:25 +msgid "Transmission is a BitTorrent client with a web interface." +msgstr "" + +#: modules/transmission/__init__.py:26 +msgid "" +"BitTorrent is a peer-to-peer file sharing protocol. Note that BitTorrent is " +"not anonymous." +msgstr "" + +#: modules/transmission/__init__.py:28 +msgid "Please do not change the default port of the Transmission daemon." +msgstr "" + +#: modules/transmission/__init__.py:30 +#, python-brace-format +msgid "" +"Compared to Deluge, Transmission is simpler and " +"lightweight but is less customizable." +msgstr "" + +#: modules/transmission/__init__.py:34 +#, python-brace-format +msgid "" +"It can be accessed by any user on {box_name} " +"belonging to the bit-torrent group." +msgstr "" + +#: modules/transmission/__init__.py:38 +#, python-brace-format +msgid "" +"In addition to the web interface, mobile and desktop apps can also be used " +"to remotely control Transmission on {box_name}. To configure remote control " +"apps, use the URL /transmission-remote/" +"rpc." +msgstr "" + +#: modules/transmission/__init__.py:44 +#, python-brace-format +msgid "" +"Samba shares can be set as the default download " +"directory from the dropdown menu below." +msgstr "" + +#: modules/transmission/__init__.py:48 +#, python-brace-format +msgid "" +"After a download has completed, you can also access your files using the Sharing app." +msgstr "" + +#: modules/transmission/__init__.py:74 modules/transmission/manifest.py:8 +msgid "Transmission" +msgstr "" + +#: modules/transmission/manifest.py:15 +msgid "Tremotesf" +msgstr "" + +#: modules/ttrss/__init__.py:21 +msgid "" +"Tiny Tiny RSS is a news feed (RSS/Atom) reader and aggregator, designed to " +"allow reading news from any location, while feeling as close to a real " +"desktop application as possible." +msgstr "" + +#: modules/ttrss/__init__.py:25 +#, python-brace-format +msgid "" +"When enabled, Tiny Tiny RSS can be accessed by any " +"user belonging to the feed-reader group." +msgstr "" + +#: modules/ttrss/__init__.py:30 +msgid "" +"When using a mobile or desktop application for Tiny Tiny RSS, use the URL /tt-rss or /tt-rss-app " +"for connecting." +msgstr "" + +#: modules/ttrss/__init__.py:50 modules/ttrss/manifest.py:34 +msgid "Tiny Tiny RSS" +msgstr "" + +#: modules/ttrss/manifest.py:10 +msgid "TTRSS-Reader" +msgstr "" + +#: modules/ttrss/manifest.py:25 +msgid "Geekttrss" +msgstr "" + +#: modules/upgrades/__init__.py:34 +msgid "Check for and apply the latest software and security updates." +msgstr "" + +#: modules/upgrades/__init__.py:35 +msgid "" +"Updates are run at 06:00 everyday according to local time zone. Set your " +"time zone in Date & Time app. Apps are restarted after update causing them " +"to be unavailable briefly. If system reboot is deemed necessary, it is done " +"automatically at 02:00 causing all apps to be unavailable briefly." +msgstr "" + +#: modules/upgrades/__init__.py:67 modules/upgrades/__init__.py:128 +#: modules/upgrades/__init__.py:146 modules/upgrades/__init__.py:308 +msgid "Software Update" +msgstr "" + +#: modules/upgrades/__init__.py:131 +msgid "FreedomBox Updated" +msgstr "" + +#: modules/upgrades/__init__.py:141 +msgid "Run software update manually" +msgstr "" + +#: modules/upgrades/__init__.py:143 +msgid "" +"Automatic software update runs daily by default. For the first time, " +"manually run it now." +msgstr "" + +#: modules/upgrades/__init__.py:318 +#: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:9 +#: modules/upgrades/templates/upgrades-dist-upgrade.html:11 +#: modules/upgrades/templates/upgrades_configure.html:16 +msgid "Distribution Update" +msgstr "" + +#: modules/upgrades/__init__.py:396 +msgid "Check for package holds" +msgstr "" + +#: modules/upgrades/forms.py:15 +msgid "Enable auto-update" +msgstr "" + +#: modules/upgrades/forms.py:16 +msgid "When enabled, FreedomBox automatically updates once a day." +msgstr "" + +#: modules/upgrades/forms.py:19 +msgid "Enable auto-update to next stable release" +msgstr "" + +#: modules/upgrades/forms.py:20 +msgid "" +"When enabled, FreedomBox will update to the next stable distribution release " +"when it is available." +msgstr "" + +#: modules/upgrades/forms.py:34 +#: modules/upgrades/templates/upgrades_configure.html:100 +msgid "Activate frequent feature updates (recommended)" +msgstr "" + +#: modules/upgrades/manifest.py:10 +msgid "Reboots" +msgstr "" + +#: modules/upgrades/manifest.py:10 +msgid "New features" +msgstr "" + +#: modules/upgrades/templates/backports-firstboot.html:26 +msgid "" +"It is strongly recommended to activate frequent feature updates. If not " +"activated now, they can be activated later." +msgstr "" + +#: modules/upgrades/templates/backports-firstboot.html:38 +msgid "" +"Note: Once frequent feature updates are activated, they " +"cannot be deactivated." +msgstr "" + +#: modules/upgrades/templates/backports-firstboot.html:51 +msgid "Next" +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:11 +msgid "Confirm Distribution Update?" +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:21 +#, python-format +msgid "" +"You are about to update to the next distribution version before it has been " +"released. Proceed only if you wish to help with beta testing of %(box_name)s " +"functionality." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:32 +msgid "" +"Take a full backup of all apps and data before performing a distribution " +"update." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:38 +msgid "" +"The process will take several hours. Most apps will be unavailable during " +"this time." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:44 +msgid "" +"Don't interrupt the process by shutting down or interrupting power to the " +"machine." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:50 +msgid "If the process is interrupted, you should be able to continue it." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:66 +msgid "Confirm & Start Distribution Update" +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:15 +msgid "" +"Distribution update has started. This operation may take several hours. Most " +"apps will be unavailable during this period. Don't interrupt the process by " +"shutting down or interrupting power to the machine." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:21 +msgid "Distribution update has completed. Reboot the machine, if necessary." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:25 +#, python-format +msgid "" +"Distribution update will start soon. Take a backup of apps and data before " +"then. See manual page for expected " +"changes and transitions during the distribution upgrade." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:31 +#, python-format +msgid "" +"Distribution update will start in %(in_days)s days. Take a backup of apps " +"and data before then. See manual page " +"for expected changes and transitions during the distribution upgrade." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:42 +msgid "Go to Distribution Update" +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:46 +#: modules/upgrades/templates/upgrades-new-release.html:22 +#: templates/notifications.html:50 templates/operation-notification.html:23 +msgid "Dismiss" +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:15 +#, python-format +msgid "" +"Your %(box_name)s will receive security updates, important fixes and some " +"selected features with regular software updates. However, to provide a long " +"software life cycle for %(box_name)s, the entire operating system will " +"receive a major distribution update every two years or so. This will bring " +"in major features and changes. Sometimes, old features will stop working. " +"Please consult the manual for expected " +"changes and transitions during a distribution upgrade. If you dislike these " +"changes, you can keep each distribution for at least 5 years before updating." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:34 +msgid "" +"Distribution update is currently running. This operation may take several " +"hours. Most apps will be unavailable during this period." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:50 +msgid "Automatic updates are disabled." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:54 +msgid "Distribution upgrades are disabled." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:58 +msgid "" +"You need to have at least 5 GB of free space available on primary disk to " +"perform a distribution update." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:65 +msgid "Your current distribution is mixed or not understood." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:72 +msgid "Current Distribution:" +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:74 +msgid "Unknown or mixed" +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:77 +msgid "Rolling release distribution" +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:84 +#, python-format +msgid "Released: %(date)s." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:91 +msgid "Next Stable Distribution:" +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:93 +msgid "Unknown" +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:99 +#, python-format +msgid "Likely release: %(date)s." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:107 +msgid "Next stable distribution is not available yet." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:113 +#, python-format +msgid "" +"You are on a rolling release distribution. No distribution update is " +"necessary. Thank you for helping test the %(box_name)s project. Please " +"report any problems you notice." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:121 +msgid "" +"A previous run of distribution update may have been interrupted. Please re-" +"run the distribution update." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:128 +#, python-format +msgid "" +"A new stable distribution is available. Your %(box_name)s will be updated " +"automatically in %(period)s. You may choose to update manually now, if you " +"wish." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:136 +#, python-format +msgid "" +"A new stable distribution is available. Your %(box_name)s will be updated " +"automatically soon. You may choose to update manually now, if you wish." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:144 +#, python-format +msgid "" +"You are on the latest stable distribution. This is recommended. However, if " +"you wish to help beta test %(box_name)s functionality, you may update to " +"next distribution manually. This setup may experience occational app " +"failures until the next stable release." +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:157 +#: modules/upgrades/templates/upgrades-dist-upgrade.html:172 +msgid "Start Distribution Update" +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:162 +msgid "Continue Distribution Update" +msgstr "" + +#: modules/upgrades/templates/upgrades-dist-upgrade.html:167 +msgid "Start Distribution Update (for testing)" +msgstr "" + +#: modules/upgrades/templates/upgrades-new-release.html:9 +#, python-format +msgid "%(box_name)s updated" +msgstr "" + +#: modules/upgrades/templates/upgrades-new-release.html:13 +#, python-format +msgid "" +"%(box_name)s has been updated to version %(version)s. See the release announcement." +msgstr "" + +#: modules/upgrades/templates/upgrades_configure.html:35 +#: modules/upgrades/templates/upgrades_configure.html:111 +msgid "Updating..." +msgstr "" + +#: modules/upgrades/templates/upgrades_configure.html:37 +#, python-format +msgid "There is a new %(box_name)s version available." +msgstr "" + +#: modules/upgrades/templates/upgrades_configure.html:40 +msgid "Your Freedombox needs an update!" +msgstr "" + +#: modules/upgrades/templates/upgrades_configure.html:52 +msgid "" +"Frequent feature updates can be activated. Activating them is recommended." +msgstr "" + +#: modules/upgrades/templates/upgrades_configure.html:61 +msgid "" +"Frequent feature updates cannot be activated. They may not be necessary on " +"your distribution." +msgstr "" + +#: modules/upgrades/templates/upgrades_configure.html:88 +#, python-format +msgid "" +"Warning! Once frequent feature updates are activated, they " +"cannot be deactivated. You may wish to take a snapshot using Storage Snapshots before continuing." +msgstr "" + +#: modules/upgrades/templates/upgrades_configure.html:105 +msgid "Manual Update" +msgstr "" + +#: modules/upgrades/templates/upgrades_configure.html:125 +msgid "" +"This may take a long time to complete. During an update, " +"you cannot install apps. Also, this web interface may be temporarily " +"unavailable and show an error. In that case, refresh the page to continue." +msgstr "" + +#: modules/upgrades/templates/upgrades_configure.html:139 +msgid "Show recent update logs" +msgstr "" + +#: modules/upgrades/views.py:72 +msgid "Error when configuring unattended-upgrades" +msgstr "" + +#: modules/upgrades/views.py:117 +msgid "Started distribution update." +msgstr "" + +#: modules/upgrades/views.py:153 +msgid "Upgrade process started." +msgstr "" + +#: modules/upgrades/views.py:155 +msgid "Starting upgrade failed." +msgstr "" + +#: modules/upgrades/views.py:165 +msgid "Frequent feature updates activated." +msgstr "" + +#: modules/users/__init__.py:33 +msgid "" +"Create and manage user accounts. These accounts serve as centralized " +"authentication mechanism for most apps. Some apps further require a user " +"account to be part of a group to authorize the user to access the app." +msgstr "" + +#: modules/users/__init__.py:38 +#, python-brace-format +msgid "" +"Any user may login to {box_name} web interface to see a list of apps " +"relevant to them in the home page. However, only users of the admin " +"group may alter apps or system settings." +msgstr "" + +#: modules/users/__init__.py:59 +msgid "Users and Groups" +msgstr "" + +#: modules/users/__init__.py:85 +msgid "Access to all services and system settings" +msgstr "" + +#: modules/users/__init__.py:137 +#, python-brace-format +msgid "Check LDAP entry \"{search_item}\"" +msgstr "" + +#: modules/users/__init__.py:152 +#, python-brace-format +msgid "Check nslcd config \"{key} {value}\"" +msgstr "" + +#: modules/users/__init__.py:182 +#, python-brace-format +msgid "Check nsswitch config \"{database}\"" +msgstr "" + +#: modules/users/forms.py:36 +msgid "Username is taken or is reserved." +msgstr "" + +#: modules/users/forms.py:71 +msgid "" +"Optional. Used to send emails to reset password and important notifications." +msgstr "" + +#: modules/users/forms.py:107 +msgid "" +"Select which services should be available to the new user. The user will be " +"able to log in to services that support single sign-on through LDAP, if they " +"are in the appropriate group.

Users in the admin group will be " +"able to log in to all services. They can also log in to the system through " +"SSH and have administrative privileges (sudo)." +msgstr "" + +#: modules/users/forms.py:125 +msgid "Enter a valid username." +msgstr "" + +#: modules/users/forms.py:132 +msgid "" +"Required. 150 characters or fewer. English letters, digits and @/./-/_ only." +msgstr "" + +#: modules/users/forms.py:141 +msgid "Authorization Password" +msgstr "" + +#: modules/users/forms.py:148 +#, python-brace-format +msgid "" +"Enter the password for user \"{user}\" to authorize account modifications." +msgstr "" + +#: modules/users/forms.py:157 +msgid "Invalid password." +msgstr "" + +#: modules/users/forms.py:213 modules/users/forms.py:439 +#, python-brace-format +msgid "Creating LDAP user failed: {error}" +msgstr "" + +#: modules/users/forms.py:225 +#, python-brace-format +msgid "Failed to add new user to {group} group: {error}" +msgstr "" + +#: modules/users/forms.py:241 +msgid "Authorized SSH Keys" +msgstr "" + +#: modules/users/forms.py:243 +msgid "" +"Setting an SSH public key will allow this user to securely log in to the " +"system without using a password. You may enter multiple keys, one on each " +"line. Blank lines and lines starting with # will be ignored." +msgstr "" + +#: modules/users/forms.py:252 +msgid "Delete user" +msgstr "" + +#: modules/users/forms.py:254 +msgid "" +"Deleting the user account will also remove all the files related to the " +"user. Deleting files can be avoided by setting the user account as inactive." +msgstr "" + +#: modules/users/forms.py:305 +msgid "Failed to delete user." +msgstr "" + +#: modules/users/forms.py:320 +msgid "Renaming LDAP user failed." +msgstr "" + +#: modules/users/forms.py:331 +msgid "Failed to remove user from group." +msgstr "" + +#: modules/users/forms.py:341 +msgid "Failed to add user to group." +msgstr "" + +#: modules/users/forms.py:348 +msgid "Unable to set SSH keys." +msgstr "" + +#: modules/users/forms.py:361 +msgid "Failed to change user status." +msgstr "" + +#: modules/users/forms.py:402 +msgid "Changing LDAP user password failed." +msgstr "" + +#: modules/users/forms.py:447 +#, python-brace-format +msgid "Failed to add new user to admin group: {error}" +msgstr "" + +#: modules/users/forms.py:470 +msgid "User account created, you are now logged in" +msgstr "" + +#: modules/users/manifest.py:8 +msgid "Manage accounts" +msgstr "" + +#: modules/users/manifest.py:8 +msgid "App permissions" +msgstr "" + +#: modules/users/templates/users_change_password.html:11 +#, python-format +msgid "Change Password for %(username)s" +msgstr "" + +#: modules/users/templates/users_change_password.html:21 +msgid "Save Password" +msgstr "" + +#: modules/users/templates/users_create.html:11 +#: modules/users/templates/users_create.html:19 +#: modules/users/templates/users_list.html:15 +#: modules/users/templates/users_list.html:17 modules/users/views.py:43 +msgid "Create User" +msgstr "" + +#: modules/users/templates/users_firstboot.html:11 +msgid "Administrator Account" +msgstr "" + +#: modules/users/templates/users_firstboot.html:15 +msgid "" +"Choose a username and password to access this web interface. The password " +"can be changed later. This user will be granted administrative privileges. " +"Other users can be added later." +msgstr "" + +#: modules/users/templates/users_firstboot.html:28 +msgid "Create Account" +msgstr "" + +#: modules/users/templates/users_firstboot.html:37 +msgid "An administrator account already exists." +msgstr "" + +#: modules/users/templates/users_firstboot.html:44 +msgid "The following administrator accounts exist in the system." +msgstr "" + +#: modules/users/templates/users_firstboot.html:56 +#, python-format +msgid "" +"Delete these accounts from command line and refresh the page to create an " +"account that is usable with %(box_name)s. On the command line run the " +"command \"echo '{\"args\": [\"USERNAME\", \"PASSWORD\"], \"kwargs\": {}}' | " +"sudo /usr/share/plinth/actions/actions users remove_user\". If an account is " +"already usable with %(box_name)s, skip this step." +msgstr "" + +#: modules/users/templates/users_firstboot.html:69 +msgid "Skip this step" +msgstr "" + +#: modules/users/templates/users_list.html:11 modules/users/views.py:61 +msgid "Users" +msgstr "" + +#: modules/users/templates/users_list.html:28 +#, python-format +msgid "Edit user %(username)s" +msgstr "" + +#: modules/users/templates/users_update.html:17 +#, python-format +msgid "Edit User %(username)s" +msgstr "" + +#: modules/users/templates/users_update.html:25 +#, python-format +msgid "" +"Use the change password form to " +"change the password." +msgstr "" + +#: modules/users/templates/users_update.html:37 +#: templates/language-selection.html:17 +msgid "Save Changes" +msgstr "" + +#: modules/users/templates/users_update.html:46 +#, python-format +msgid "Delete user %(username)s and all the user's files?" +msgstr "" + +#: modules/users/templates/users_update.html:56 +msgid "" +"Deleting a user account also removes all the files user's home directory. If " +"you wish to keep these files, disable the user account instead." +msgstr "" + +#: modules/users/templates/users_update.html:65 +msgid "Delete user and files" +msgstr "" + +#: modules/users/templates/users_update.html:68 +msgid "Cancel" +msgstr "" + +#: modules/users/views.py:41 +#, python-format +msgid "User %(username)s created." +msgstr "" + +#: modules/users/views.py:72 +#, python-format +msgid "User %(username)s updated." +msgstr "" + +#: modules/users/views.py:73 +msgid "Edit User" +msgstr "" + +#: modules/users/views.py:111 +#, python-format +msgid "User %(username)s deleted." +msgstr "" + +#: modules/users/views.py:130 +msgid "Change Password" +msgstr "" + +#: modules/users/views.py:131 +msgid "Password changed successfully." +msgstr "" + +#: modules/wireguard/__init__.py:20 +msgid "WireGuard is a fast, modern, secure VPN tunnel." +msgstr "" + +#: modules/wireguard/__init__.py:22 +#, python-brace-format +msgid "" +"It can be used to connect to a VPN provider which supports WireGuard, and to " +"route all outgoing traffic from {box_name} through the VPN." +msgstr "" + +#: modules/wireguard/__init__.py:26 +#, python-brace-format +msgid "" +"A second use case is to connect a mobile device to {box_name} while " +"travelling. While connected to a public Wi-Fi network, all traffic can be " +"securely relayed through {box_name}." +msgstr "" + +#: modules/wireguard/forms.py:32 +msgid "Invalid key." +msgstr "" + +#: modules/wireguard/forms.py:61 modules/wireguard/templates/wireguard.html:17 +#: modules/wireguard/templates/wireguard.html:77 +#: modules/wireguard/templates/wireguard_delete_server.html:24 +msgid "Public Key" +msgstr "" + +#: modules/wireguard/forms.py:62 +msgid "" +"Public key of the peer. Example: " +"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." +msgstr "" + +#: modules/wireguard/forms.py:70 +msgid "Endpoint of the server" +msgstr "" + +#: modules/wireguard/forms.py:71 +msgid "" +"Domain name and port in the form \"ip:port\". Example: demo.wireguard." +"com:12912 ." +msgstr "" + +#: modules/wireguard/forms.py:76 +msgid "Public key of the server" +msgstr "" + +#: modules/wireguard/forms.py:77 +msgid "" +"Provided by the server operator, a long string of characters. Example: " +"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." +msgstr "" + +#: modules/wireguard/forms.py:82 +msgid "Client IP address provided by server" +msgstr "" + +#: modules/wireguard/forms.py:83 +msgid "" +"IP address assigned to this machine on the VPN after connecting to the " +"endpoint. This value is usually provided by the server operator. Example: " +"192.168.0.10." +msgstr "" + +#: modules/wireguard/forms.py:89 +msgid "Private key of this machine" +msgstr "" + +#: modules/wireguard/forms.py:90 +msgid "" +"Optional. New public/private keys are generated if left blank. Public key " +"can then be provided to the server. This is the recommended way. However, " +"some server operators insist on providing this. Example: " +"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." +msgstr "" + +#: modules/wireguard/forms.py:98 +msgid "Pre-shared key" +msgstr "" + +#: modules/wireguard/forms.py:99 +msgid "" +"Optional. A shared secret key provided by the server to add an additional " +"layer of security. Fill in only if provided. Example: " +"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs=." +msgstr "" + +#: modules/wireguard/forms.py:105 +msgid "Use this connection to send all outgoing traffic" +msgstr "" + +#: modules/wireguard/forms.py:107 +msgid "Typically checked for a VPN service through which all traffic is sent." +msgstr "" + +#: modules/wireguard/manifest.py:45 +msgid "VPN client" +msgstr "" + +#: modules/wireguard/templates/wireguard.html:10 +msgid "As a Server" +msgstr "" + +#: modules/wireguard/templates/wireguard.html:12 +msgid "Peers allowed to connect to this server:" +msgstr "" + +#: modules/wireguard/templates/wireguard.html:18 +msgid "Allowed IPs" +msgstr "" + +#: modules/wireguard/templates/wireguard.html:19 +#: modules/wireguard/templates/wireguard.html:78 +msgid "Last Connected Time" +msgstr "" + +#: modules/wireguard/templates/wireguard.html:38 +#, python-format +msgid "No peers configured to connect to this %(box_name)s yet." +msgstr "" + +#: modules/wireguard/templates/wireguard.html:48 +#, python-format +msgid "Public key for this %(box_name)s:" +msgstr "" + +#: modules/wireguard/templates/wireguard.html:54 +msgid "Not configured yet." +msgstr "" + +#: modules/wireguard/templates/wireguard.html:59 +msgid "Add a new peer" +msgstr "" + +#: modules/wireguard/templates/wireguard.html:63 modules/wireguard/views.py:48 +msgid "Add Allowed Client" +msgstr "" + +#: modules/wireguard/templates/wireguard.html:67 +msgid "As a Client" +msgstr "" + +#: modules/wireguard/templates/wireguard.html:69 +#, python-format +msgid "Servers that %(box_name)s will connect to:" +msgstr "" + +#: modules/wireguard/templates/wireguard.html:76 +#: modules/wireguard/templates/wireguard_delete_server.html:20 +msgid "Endpoint" +msgstr "" + +#: modules/wireguard/templates/wireguard.html:100 +msgid "No connections to remote servers are configured yet." +msgstr "" + +#: modules/wireguard/templates/wireguard.html:110 +msgid "Add a new server" +msgstr "" + +#: modules/wireguard/templates/wireguard.html:114 +#: modules/wireguard/views.py:157 +msgid "Add Connection to Server" +msgstr "" + +#: modules/wireguard/templates/wireguard_add_client.html:19 +msgid "Add Client" +msgstr "" + +#: modules/wireguard/templates/wireguard_delete_client.html:14 +msgid "Are you sure that you want to delete this client?" +msgstr "" + +#: modules/wireguard/templates/wireguard_delete_server.html:14 +msgid "Are you sure that you want to delete this server?" +msgstr "" + +#: modules/wireguard/templates/wireguard_edit_client.html:19 +msgid "Update Client" +msgstr "" + +#: modules/wireguard/templates/wireguard_edit_server.html:19 +msgid "Update Connection" +msgstr "" + +#: modules/wireguard/templates/wireguard_show_client.html:12 +#, python-format +msgid "" +"%(box_name)s will allow this client to connect to it. Ensure that the client " +"is configured with the following information." +msgstr "" + +#: modules/wireguard/templates/wireguard_show_client.html:21 +msgid "Client public key:" +msgstr "" + +#: modules/wireguard/templates/wireguard_show_client.html:25 +msgid "IP address to use for client:" +msgstr "" + +#: modules/wireguard/templates/wireguard_show_client.html:29 +#: modules/wireguard/templates/wireguard_show_server.html:32 +msgid "Pre-shared key:" +msgstr "" + +#: modules/wireguard/templates/wireguard_show_client.html:33 +msgid "Server endpoints:" +msgstr "" + +#: modules/wireguard/templates/wireguard_show_client.html:41 +#: modules/wireguard/templates/wireguard_show_server.html:28 +msgid "Server public key:" +msgstr "" + +#: modules/wireguard/templates/wireguard_show_client.html:53 +#: modules/wireguard/templates/wireguard_show_server.html:52 +msgid "Data transmitted:" +msgstr "" + +#: modules/wireguard/templates/wireguard_show_client.html:57 +#: modules/wireguard/templates/wireguard_show_server.html:56 +msgid "Data received:" +msgstr "" + +#: modules/wireguard/templates/wireguard_show_client.html:61 +#: modules/wireguard/templates/wireguard_show_server.html:60 +msgid "Latest handshake:" +msgstr "" + +#: modules/wireguard/templates/wireguard_show_server.html:14 +#, python-format +msgid "" +"%(box_name)s will attempt to reach a WireGuard server with the following " +"information. Ensure that the server is configured to allow %(box_name)s's " +"public key and IP address." +msgstr "" + +#: modules/wireguard/templates/wireguard_show_server.html:24 +msgid "Server endpoint:" +msgstr "" + +#: modules/wireguard/templates/wireguard_show_server.html:36 +msgid "Public key of this machine:" +msgstr "" + +#: modules/wireguard/templates/wireguard_show_server.html:40 +msgid "IP address of this machine:" +msgstr "" + +#: modules/wireguard/views.py:43 +msgid "Added new client." +msgstr "" + +#: modules/wireguard/views.py:58 modules/wireguard/views.py:117 +msgid "Client with public key already exists" +msgstr "" + +#: modules/wireguard/views.py:71 +msgid "Allowed Client" +msgstr "" + +#: modules/wireguard/views.py:93 +msgid "Updated client." +msgstr "" + +#: modules/wireguard/views.py:98 +msgid "Modify Client" +msgstr "" + +#: modules/wireguard/views.py:131 +msgid "Delete Allowed Client" +msgstr "" + +#: modules/wireguard/views.py:140 +msgid "Client deleted." +msgstr "" + +#: modules/wireguard/views.py:142 +msgid "Client not found" +msgstr "" + +#: modules/wireguard/views.py:152 +msgid "Added new server." +msgstr "" + +#: modules/wireguard/views.py:173 +msgid "Connection to Server" +msgstr "" + +#: modules/wireguard/views.py:191 +msgid "Updated server." +msgstr "" + +#: modules/wireguard/views.py:196 +msgid "Modify Connection to Server" +msgstr "" + +#: modules/wireguard/views.py:233 +msgid "Delete Connection to Server" +msgstr "" + +#: modules/wireguard/views.py:253 +msgid "Server deleted." +msgstr "" + +#: modules/wordpress/__init__.py:20 +msgid "" +"WordPress is a popular way to create and manage websites and blogs. Content " +"can be managed using a visual interface. Layout and functionality of the web " +"pages can be customized. Appearance can be chosen using themes. " +"Administration interface and produced web pages are suitable for mobile " +"devices." +msgstr "" + +#: modules/wordpress/__init__.py:26 +#, python-brace-format +msgid "" +"You need to run WordPress setup by visiting the app before making the site " +"publicly available below. Setup must be run when accessing {box_name} with " +"the correct domain name. Enable permalinks in administrator interface for " +"better URLs to your pages and posts." +msgstr "" + +#: modules/wordpress/__init__.py:31 +msgid "" +"WordPress has its own user accounts. First administrator account is created " +"during setup. Bookmark the admin page " +"to reach administration interface in the future." +msgstr "" + +#: modules/wordpress/__init__.py:35 +msgid "" +"After a major version upgrade, you need to manually run database upgrade " +"from administrator interface. Additional plugins or themes may be installed " +"and upgraded at your own risk." +msgstr "" + +#: modules/wordpress/__init__.py:53 modules/wordpress/manifest.py:6 +msgid "WordPress" +msgstr "" + +#: modules/wordpress/forms.py:14 +msgid "Public access" +msgstr "" + +#: modules/wordpress/forms.py:15 +msgid "" +"Allow all visitors. Disabling allows only administrators to view the " +"WordPress site or blog. Enable only after performing initial WordPress setup." +msgstr "" + +#: modules/wordpress/manifest.py:26 +msgid "Content management system" +msgstr "" + +#: modules/zoph/__init__.py:25 +#, python-brace-format +msgid "" +"Zoph manages your photo collection. Photos are stored on your {box_name}, " +"under your control. Instead of focusing on galleries for public display, " +"Zoph focuses on managing them for your own use, organizing them by who took " +"them, where they were taken, and who is in them. Photos can be linked to " +"multiple hierarchical albums and categories. It is easy to find all photos " +"containing a person, or photos taken on a date, or photos taken at a " +"location using search, map and calendar views. Individual photos can be " +"shared with others by sending a direct link." +msgstr "" + +#: modules/zoph/__init__.py:36 +#, python-brace-format +msgid "" +"The {box_name} user who setup Zoph will also become the administrator in " +"Zoph. For additional users, accounts must be created both in {box_name} and " +"in Zoph with the same user name." +msgstr "" + +#: modules/zoph/__init__.py:57 modules/zoph/manifest.py:6 +msgid "Zoph" +msgstr "" + +#: modules/zoph/forms.py:14 +msgid "Enable OpenStreetMap for maps" +msgstr "" + +#: modules/zoph/forms.py:15 +msgid "" +"When enabled, requests will be made to OpenStreetMap servers from user's " +"browser. This impacts privacy." +msgstr "" + +#: modules/zoph/manifest.py:26 +msgid "Photo" +msgstr "" + +#: modules/zoph/manifest.py:26 +msgid "Organizer" +msgstr "" + +#: modules/zoph/templates/zoph-pre-setup.html:15 +#: modules/zoph/templates/zoph-pre-setup.html:28 +msgid "Setup" +msgstr "" + +#: modules/zoph/templates/zoph-pre-setup.html:18 +#, python-format +msgid "" +"User account %(username)s will become the administrator " +"account for Zoph." +msgstr "" + +#: network.py:31 +msgid "Generic" +msgstr "" + +#: operation.py:120 +#, python-brace-format +msgid "Error: {name}: {exception}" +msgstr "" + +#: operation.py:123 +#, python-brace-format +msgid "Waiting to start: {name}" +msgstr "" + +#: operation.py:129 +#, python-brace-format +msgid "Finished: {name}" +msgstr "" + +#: package.py:213 +#, python-brace-format +msgid "Package {package_expression} is not available for install" +msgstr "" + +#: package.py:233 +#, python-brace-format +msgid "Package {package_name} is the latest version ({latest_version})" +msgstr "" + +#: package.py:427 +msgid "installing" +msgstr "" + +#: package.py:429 +msgid "downloading" +msgstr "" + +#: package.py:431 +msgid "media change" +msgstr "" + +#: package.py:433 +#, python-brace-format +msgid "configuration file: {file}" +msgstr "" + +#: package.py:461 package.py:487 +msgid "Timeout waiting for package manager" +msgstr "" + +#: setup.py:44 +msgid "Installing app" +msgstr "" + +#: setup.py:46 +msgid "Updating app" +msgstr "" + +#: setup.py:80 +#, python-brace-format +msgid "Error installing app: {exception}" +msgstr "" + +#: setup.py:82 +#, python-brace-format +msgid "Error repairing app: {exception}" +msgstr "" + +#: setup.py:84 +#, python-brace-format +msgid "Error updating app: {exception}" +msgstr "" + +#: setup.py:87 +msgid "App installed." +msgstr "" + +#: setup.py:91 +msgid "App updated" +msgstr "" + +#: setup.py:114 +msgid "Repairing app" +msgstr "" + +#: setup.py:145 +#, python-brace-format +msgid "Error running diagnostics: {error}" +msgstr "" + +#: setup.py:158 +msgid "Skipping repair, no failed checks" +msgstr "" + +#: setup.py:166 +#, python-brace-format +msgid "Error repairing app: {error}" +msgstr "" + +#: setup.py:172 +msgid "Re-running setup to complete repairs" +msgstr "" + +#: setup.py:180 +msgid "App repaired." +msgstr "" + +#: setup.py:184 +msgid "App repair completed with errors:\n" +msgstr "" + +#: setup.py:204 +msgid "Uninstalling app" +msgstr "" + +#: setup.py:220 +#, python-brace-format +msgid "Error uninstalling app: {error}" +msgstr "" + +#: setup.py:223 +msgid "App uninstalled." +msgstr "" + +#: setup.py:590 +msgid "Updating app packages" +msgstr "" + +#: templates/403.html:10 +msgid "403 Forbidden" +msgstr "" + +#: templates/403.html:14 +#, python-format +msgid "You don't have permission to access %(request_path)s on this server." +msgstr "" + +#: templates/404.html:10 +#, python-format +msgid "Page not found - %(box_name)s" +msgstr "" + +#: templates/404.html:18 +msgid "404" +msgstr "" + +#: templates/404.html:21 +#, python-format +msgid "Requested page %(request_path)s was not found." +msgstr "" + +#: templates/404.html:27 +msgid "" +"If you believe this missing page should exist, please file a bug at the " +"FreedomBox Service (Plinth) project issue tracker." +msgstr "" + +#: templates/500.html:10 +msgid "500" +msgstr "" + +#: templates/500.html:14 +#, python-format +msgid "" +"This is an internal error and not something you caused or can fix. Please " +"report the error on the bug tracker so we can fix it. Also, please attach " +"the status log to the bug report." +msgstr "" + +#: templates/app-header.html:26 +msgid "Installation" +msgstr "" + +#: templates/app.html:34 +#, python-format +msgid "Service %(service_name)s is not running." +msgstr "" + +#: templates/base.html:31 +msgid "" +"FreedomBox is a personal server designed for privacy and data ownership. It " +"is free software that lets you install and manage server apps with ease." +msgstr "" + +#: templates/base.html:117 +msgid " Home" +msgstr "" + +#: templates/base.html:125 +msgid " Apps" +msgstr "" + +#: templates/base.html:134 +msgid " System" +msgstr "" + +#: templates/base.html:173 templates/base.html:174 +msgid "Change password" +msgstr "" + +#: templates/base.html:187 templates/base.html:188 +msgid "Shut down" +msgstr "" + +#: templates/base.html:198 templates/base.html:236 +msgid "Log out" +msgstr "" + +#: templates/base.html:207 templates/base.html:210 +msgid "Select language" +msgstr "" + +#: templates/base.html:225 templates/base.html:227 +msgid "Log in" +msgstr "" + +#: templates/clients-button.html:16 +msgid "Launch web client" +msgstr "" + +#: templates/clients-button.html:25 +msgid "Client Apps" +msgstr "" + +#: templates/clients.html:17 +msgid "Web" +msgstr "" + +#: templates/clients.html:28 +msgid "Launch" +msgstr "" + +#: templates/clients.html:53 +msgid "GNU/Linux" +msgstr "" + +#: templates/clients.html:55 +msgid "Windows" +msgstr "" + +#: templates/clients.html:57 +msgid "macOS" +msgstr "" + +#: templates/clients.html:73 +msgid "Mobile" +msgstr "" + +#: templates/clients.html:84 +msgid "Play Store" +msgstr "" + +#: templates/clients.html:86 +msgid "F-Droid" +msgstr "" + +#: templates/clients.html:88 +msgid "App Store" +msgstr "" + +#: templates/clients.html:104 +msgid "Package" +msgstr "" + +#: templates/clients.html:111 +msgid "Debian:" +msgstr "" + +#: templates/clients.html:114 +msgid "Homebrew:" +msgstr "" + +#: templates/clients.html:117 +msgid "RPM:" +msgstr "" + +#: templates/error.html:10 +msgid "Error" +msgstr "" + +#: templates/index.html:22 +#, python-format +msgid "" +"Enable some applications to add shortcuts to " +"this page." +msgstr "" + +#: templates/internal-zone.html:17 +#, python-format +msgid "" +"%(service_name)s is available only on internal networks or when the " +"client is connected to %(box_name)s through VPN." +msgstr "" + +#: templates/internal-zone.html:25 +msgid "Currently there are no network interfaces configured as internal." +msgstr "" + +#: templates/internal-zone.html:30 +#, python-format +msgid "" +"Currently the following network interfaces are configured as internal: " +"%(interface_list)s" +msgstr "" + +#: templates/notifications-dropdown.html:11 +msgid "Notifications" +msgstr "" + +#: templates/port-forwarding-info.html:8 +msgid "Port Forwarding" +msgstr "" + +#: templates/port-forwarding-info.html:13 +#, python-format +msgid "" +"Your FreedomBox is not behind a router. No " +"action is necessary." +msgstr "" + +#: templates/port-forwarding-info.html:21 +#, python-format +msgid "" +"Your FreedomBox is behind a router and you " +"are using the DMZ feature to forward all ports. No further router " +"configuration is necessary." +msgstr "" + +#: templates/port-forwarding-info.html:30 +#, python-format +msgid "" +"Your FreedomBox is behind a router and you " +"are not using the DMZ feature. You will need to set up port forwarding on " +"your router. You should forward the following ports for %(service_name)s:" +msgstr "" + +#: templates/port-forwarding-info.html:42 +msgid "Service Name" +msgstr "" + +#: templates/port-forwarding-info.html:43 +msgid "Protocol" +msgstr "" + +#: templates/port-forwarding-info.html:44 +msgid "From Router/WAN Ports" +msgstr "" + +#: templates/port-forwarding-info.html:45 +#, python-format +msgid "To %(box_name)s Ports" +msgstr "" + +#: templates/setup.html:19 +msgid "Application installed." +msgstr "" + +#: templates/setup.html:26 +msgid "Install this application?" +msgstr "" + +#: templates/setup.html:30 +msgid "This application needs an update. Update now?" +msgstr "" + +#: templates/setup.html:46 +msgid "This application is currently not available in your distribution." +msgstr "" + +#: templates/setup.html:50 +msgid "Check again" +msgstr "" + +#: templates/setup.html:61 +msgid "" +"Conflicting Packages: Some packages installed on the system " +"conflict with the installation of this app. The following packages will be " +"removed if you proceed:" +msgstr "" + +#: templates/setup.html:80 +msgid "Update" +msgstr "" + +#: templates/tags.html:24 +msgid "Search with tags" +msgstr "" + +#: templates/tags.html:37 +msgid "Clear all tags" +msgstr "" + +#: templates/toolbar.html:39 templates/toolbar.html:40 +msgid "Backup" +msgstr "" + +#: templates/toolbar.html:53 +msgid "Re-run setup" +msgstr "" + +#: templates/toolbar.html:59 templates/toolbar.html:60 +#: templates/uninstall.html:30 +msgid "Uninstall" +msgstr "" + +#: templates/uninstall.html:11 +#, python-format +msgid "Uninstall App %(app_name)s?" +msgstr "" + +#: templates/uninstall.html:17 +msgid "" +"All app data and configuration will be permanently lost. App may be " +"installed freshly again." +msgstr "" + +#: views.py:84 +msgid "Here" +msgstr "" + +#: views.py:414 +msgid "Setting unchanged" +msgstr "" + +#: views.py:647 +#, python-brace-format +msgid "before uninstall of {app_id}" +msgstr "" + +#: web_framework.py:122 +msgid "Gujarati" +msgstr "" diff --git a/plinth/locale/fr/LC_MESSAGES/django.po b/plinth/locale/fr/LC_MESSAGES/django.po index 080108689..a99c16c02 100644 --- a/plinth/locale/fr/LC_MESSAGES/django.po +++ b/plinth/locale/fr/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-21 20:08-0400\n" -"PO-Revision-Date: 2025-04-01 02:33+0000\n" -"Last-Translator: Soumika Devarakonda \n" +"PO-Revision-Date: 2025-04-26 17:46+0000\n" +"Last-Translator: John Doe \n" "Language-Team: French \n" "Language: fr\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.11-dev\n" +"X-Generator: Weblate 5.12-dev\n" #: config.py:103 #, python-brace-format @@ -143,7 +143,7 @@ msgstr "Page introuvable : {url}" #: middleware.py:150 msgid "Error running operation." -msgstr "Erreur d’exécution de l’opération" +msgstr "Erreur d’exécution de l’opération." #: middleware.py:152 msgid "Error loading page." @@ -315,7 +315,6 @@ msgid "Hour of the day to trigger backup operation" msgstr "Heure de déclenchement des opérations de sauvegarde" #: modules/backups/forms.py:81 -#, fuzzy msgid "" "In 24 hour format. Services may become temporarily unavailable while running " "backup operation at this time of the day." @@ -558,6 +557,7 @@ msgstr "Le système de sauvegarde est occupé à une autre opération." #: modules/backups/privileged.py:95 msgid "Not enough space left on the disk or remote location." msgstr "" +"Pas assez d'espace libre restant sur le disque ou sur l'emplacement distant." #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." @@ -1893,16 +1893,16 @@ msgid "" "This service uses an external service to lookup public IP address. This can " "be configured in the privacy app." msgstr "" +"Ce service utilise un service externe pour rechercher une adresse IP " +"publique. Cela peut être configuré dans l'application de confidentialité." #: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Client DNS dynamique" #: modules/dynamicdns/__init__.py:77 -#, fuzzy -#| msgid "Dynamic Domain Name" msgid "Dynamic Domain" -msgstr "Nom de domaine dynamique" +msgstr "Domaine dynamique" #: modules/dynamicdns/forms.py:20 msgid "" @@ -2023,10 +2023,8 @@ msgid "This field is required." msgstr "Ce champ est requis." #: modules/dynamicdns/forms.py:138 modules/names/forms.py:125 -#, fuzzy -#| msgid "Content package already exists." msgid "Domain already exists." -msgstr "Le paquet de contenu existe déjà." +msgstr "Le domaine existe déjà." #: modules/dynamicdns/manifest.py:17 #: modules/dynamicdns/templates/dynamicdns.html:25 @@ -2046,10 +2044,8 @@ msgstr "A besoin d'une IP publique" #: modules/dynamicdns/templates/dynamicdns-domain-delete.html:13 #: modules/names/templates/names-domain-delete.html:13 -#, fuzzy -#| msgid "Tor configuration is being updated" msgid "App configurations will be updated." -msgstr "La configuration de Tor est en cours de mise à jour" +msgstr "Les configurations d'application seront mises à jour." #: modules/dynamicdns/templates/dynamicdns.html:10 #: modules/email/templates/email.html:20 modules/names/manifest.py:11 @@ -2059,10 +2055,8 @@ msgstr "Domaines" #: modules/dynamicdns/templates/dynamicdns.html:14 #: modules/dynamicdns/templates/dynamicdns.html:16 -#, fuzzy -#| msgid "Add Domains" msgid "Add Domain" -msgstr "Ajouter des domaines" +msgstr "Ajouter un domaine" #: modules/dynamicdns/templates/dynamicdns.html:26 msgid "Last update" @@ -2080,16 +2074,13 @@ msgstr "Actions" #: modules/dynamicdns/templates/dynamicdns.html:37 #: modules/dynamicdns/templates/dynamicdns.html:72 -#, fuzzy, python-format -#| msgid "Resolve domain name: {domain}" +#, python-format msgid "Edit domain %(domain)s" -msgstr "Résoudre le nom de domaine : {domain}" +msgstr "Éditer le domaine : %(domain)s" #: modules/dynamicdns/templates/dynamicdns.html:47 -#, fuzzy -#| msgid "Not set" msgid "Not yet" -msgstr "Non configuré" +msgstr "Pas encore" #: modules/dynamicdns/templates/dynamicdns.html:53 msgid "Success" @@ -2100,16 +2091,13 @@ msgid "Failed" msgstr "Échec" #: modules/dynamicdns/templates/dynamicdns.html:79 -#, fuzzy, python-format -#| msgid "Resolve domain name: {domain}" +#, python-format msgid "Delete domain %(domain)s" -msgstr "Résoudre le nom de domaine : {domain}" +msgstr "Effacer le domaine %(domain)s" #: modules/dynamicdns/templates/dynamicdns.html:91 -#, fuzzy -#| msgid "Cannot test: No domains are configured." msgid "No domains configured." -msgstr "Test impossible : aucun domaine n’est configuré." +msgstr "Aucun domaine n’est configuré." #: modules/dynamicdns/views.py:26 modules/dynamicdns/views.py:28 msgid "Connection timed out" @@ -2128,28 +2116,21 @@ msgid "Already up-to-date" msgstr "Déjà à jour" #: modules/dynamicdns/views.py:70 -#, fuzzy -#| msgid "Dynamic Domain Name" msgid "Add Dynamic Domain" -msgstr "Nom de domaine dynamique" +msgstr "Ajouter un domaine dynamique" #: modules/dynamicdns/views.py:72 -#, fuzzy -#| msgid "Dynamic Domain Name" msgid "Edit Dynamic Domain" -msgstr "Nom de domaine dynamique" +msgstr "Éditer le domaine dynamique" #: modules/dynamicdns/views.py:138 modules/names/views.py:137 -#, fuzzy, python-brace-format -#| msgid "Resolve domain name: {domain}" +#, python-brace-format msgid "Delete Domain {domain}?" -msgstr "Résoudre le nom de domaine : {domain}" +msgstr "Effacer le domaine {domain} ?" #: modules/dynamicdns/views.py:145 modules/names/views.py:143 -#, fuzzy -#| msgid "Client deleted." msgid "Domain deleted." -msgstr "Client supprimé." +msgstr "Domaine supprimé." #: modules/ejabberd/__init__.py:29 msgid "" @@ -2398,11 +2379,11 @@ msgstr "Postfix/Dovecot" #: modules/email/__init__.py:80 msgid "More emails" -msgstr "" +msgstr "Davantage de courriels" #: modules/email/__init__.py:80 msgid "Same mailbox" -msgstr "" +msgstr "Même boîte aux lettres électronique" #: modules/email/__init__.py:82 msgid "My Email Aliases" @@ -2450,10 +2431,8 @@ msgid "Thunderbird" msgstr "Thunderbird" #: modules/email/manifest.py:37 -#, fuzzy -#| msgid "Thunderbird" msgid "Thunderbird Mobile" -msgstr "Thunderbird" +msgstr "Thunderbird mobile" #: modules/email/manifest.py:52 msgid "FairEmail" @@ -2490,22 +2469,17 @@ msgid "Add" msgstr "Ajouter" #: modules/email/templates/email-dns.html:9 -#, fuzzy -#| msgid "DNS Records" msgid "DNS Records for domain:" -msgstr "Enregistrements DNS" +msgstr "Enregistrements DNS pour le domaine :" #: modules/email/templates/email-dns.html:12 -#, fuzzy -#| msgid "" -#| "The following DNS records must be added manually on your primary domain " -#| "for the mail server to work properly." msgid "" "The following DNS records must be added manually on this domain for the mail " "server to work properly for this domain." msgstr "" -"Les enregistrement DNS suivants doivent être ajoutés manuellement à votre " -"domaine primaire pour que le serveur de courriel fonctionne correctement." +"Les enregistrement DNS suivants doivent être ajoutés manuellement sur ce " +"domaine pour que le serveur de courriel fonctionne correctement pour ce " +"domaine." #: modules/email/templates/email-dns.html:23 #: modules/email/templates/email-dns.html:77 @@ -2535,10 +2509,8 @@ msgid "Host/Target/Value" msgstr "Hôte/Cible/Valeur" #: modules/email/templates/email-dns.html:50 -#, fuzzy -#| msgid "Server hostname or IP address" msgid "Reverse DNS Records for IP Addresses" -msgstr "Nom ou adresse IP du serveur" +msgstr "Enregistrements DNS inversés pour les adresses IP" #: modules/email/templates/email-dns.html:53 #, python-format @@ -2552,18 +2524,29 @@ msgid "" "part. Only one of your domains can have Revese DNS lookup configured unless " "you have multiple public IP addresses." msgstr "" +"Si votre %(box_name)s fonctionne sur une infrastructure de service nuagique, " +"vous devriez configurer la recherche DNS " +"inversée. Ce n'est pas obligatoire, cependant, cela améliore " +"considérablement la possibilité de livrer les courriels. Le DNS inversé " +"n'est pas configuré là où votre DNS habituel l'est. Vous devriez le " +"rechercher dans les réglages de votre VPS/FAI. Certains fournisseurs pré-" +"configurent la partie adresse IP pour vous et vous n'avez qu'à régler la " +"partie domaine. Seul un de vos domaines peut être configurée pour la " +"recherche DNS inversée sauf si vous avez plusieurs adresses IP publiques." #: modules/email/templates/email-dns.html:66 msgid "" "An external service is used to lookup public IP address to show in the " "following section. This can be configured in the privacy app." msgstr "" +"Un service externe est utilisé pour rechercher l'adresse IP publique à " +"afficher dans la section suivante. Cela peut être configuré dans " +"l'application de confidentialité." #: modules/email/templates/email-dns.html:76 -#, fuzzy -#| msgid "Hostname" msgid "Host" -msgstr "Nom de machine" +msgstr "Hôte" #: modules/email/templates/email.html:10 msgid "Manage Spam" @@ -2574,12 +2557,13 @@ msgid "" "The following domains are configured. View details to see the list of DNS " "entries to be made for the domain." msgstr "" +"Les domaines suivants sont configurés. Visualisez les détails pour voir la " +"liste des entrées DNS à effectuer pour le domaine." #: modules/email/templates/email.html:35 -#, fuzzy, python-format -#| msgid "Resolve domain name: {domain}" +#, python-format msgid "View domain: %(domain)s" -msgstr "Résoudre le nom de domaine : {domain}" +msgstr "Visualiser le domaine : %(domain)s" #: modules/featherwiki/__init__.py:25 #, python-brace-format @@ -3183,6 +3167,8 @@ msgstr "Modifier le dépôt" msgid "" "GNOME is a desktop environment that focuses on simplicity and ease of use." msgstr "" +"GNOME est un environnement de bureau qui se concentre sur la simplicité et " +"la facilité d'utilisation." #: modules/gnome/__init__.py:21 #, python-brace-format @@ -3192,12 +3178,20 @@ msgid "" "suite, and other basic utilities are available. You may install further " "graphical applications using the software center provided within." msgstr "" +"Cette application transforme votre {box_name} en un ordinateur de bureau si " +"vous y connectez physiquement un moniteur, un clavier et une souris. Un " +"navigateur, une suite bureautique et d'autre utilitaires de base sont " +"disponibles. Vous pouvez installer davantage d'applications graphiques en " +"utilisant le centre de logiciels fourni avec." #: modules/gnome/__init__.py:26 msgid "" "This app is not suitable for low-end hardware. It requires at least 4GiB of " "RAM, 4GiB of disk space and a GPU capable of basic 3D acceleration." msgstr "" +"Cette application n'est pas appropriée pour les matériels bas de gamme. Elle " +"nécessite au moins 4 Gio de mémoire vive, 4 Gio d'espace disque et un " +"processeur graphique capable de fournir une accélération 3D de base." #: modules/gnome/__init__.py:30 #, python-brace-format @@ -3206,40 +3200,37 @@ msgid "" "need to restart the machine for changes to take " "effect." msgstr "" +"Après l'installation, l'activation, la désactivation ou la désinstallation " +"de l'application, vous aurez besoin de redémarrer la machine pour que les modifications soient prises en compte." #: modules/gnome/__init__.py:48 -#, fuzzy -#| msgid "GNOME Files" msgid "GNOME" -msgstr "Fichiers GNOME" +msgstr "GNOME" #: modules/gnome/manifest.py:9 templates/clients.html:42 msgid "Desktop" msgstr "Bureau" #: modules/gnome/manifest.py:10 -#, fuzzy -#| msgid "Tor Browser" msgid "Browser" -msgstr "Navigateur Tor" +msgstr "Navigateur" #: modules/gnome/manifest.py:11 msgid "Office suite" -msgstr "" +msgstr "Suite bureautique" #: modules/gnome/manifest.py:12 -#, fuzzy -#| msgid "Software Update" msgid "Software store" -msgstr "Mise à jour du système" +msgstr "Magasin de logiciels" #: modules/gnome/manifest.py:13 msgid "GUI" -msgstr "" +msgstr "Interface graphique" #: modules/gnome/manifest.py:14 msgid "Graphical apps" -msgstr "" +msgstr "Applications graphiques" #: modules/help/__init__.py:33 modules/help/templates/help_index.html:14 #: templates/help-menu.html:8 templates/help-menu.html:14 @@ -4828,10 +4819,8 @@ msgid "Mumble" msgstr "Mumble" #: modules/mumble/__init__.py:158 -#, fuzzy -#| msgid "Mumble server is running" msgid "Mumble server is configured" -msgstr "Le serveur Mumble est actif" +msgstr "Le serveur Mumble est configuré" #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" @@ -4914,7 +4903,7 @@ msgstr "Services de nommage" #: modules/names/__init__.py:69 msgid "Domain (regular)" -msgstr "" +msgstr "Domaine (habituel)" #: modules/names/__init__.py:178 msgid "Package systemd-resolved is installed" @@ -5092,10 +5081,8 @@ msgid "Error setting hostname: {exception}" msgstr "Erreur lors de la définition du nom de machine : {exception}" #: modules/names/views.py:117 -#, fuzzy -#| msgid "Domain Name" msgid "Add Domain Name" -msgstr "Nom de domaine" +msgstr "Ajouter un nom de domaine" #: modules/networks/__init__.py:19 msgid "" @@ -6847,6 +6834,12 @@ msgid "" "provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " "empty, lookups are disabled and some functionality will fail." msgstr "" +"Valeur optionnelle. Cette URL est utilisée pour déterminer l'adresse IP " +"visible publiquement de votre {box_name}. L'URL devrait simplement renvoyer " +"l'adresse IPv4 ou bien IPv6 d'où vient la requête du client. La valeur par " +"défaut est d'utiliser le service fourni par la Fondation FreedomBox sur " +"https://ddns.freedombox.org/ip/. Si la valeur est vide, les recherches sont " +"désactivées et certaines fonctionnalités échoueront." #: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" @@ -6888,20 +6881,16 @@ msgstr "" "dans la plupart des cas si la connectivité est stable et fiable." #: modules/privacy/forms.py:45 -#, fuzzy -#| msgid "URL to look up public IP" msgid "URL to look up public IP address" -msgstr "URL pour rechercher l’IP publique" +msgstr "URL pour rechercher l’adresse IP publique" #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "Rapports d’utilisation" #: modules/privacy/manifest.py:10 -#, fuzzy -#| msgid "Enable repro service" msgid "External services" -msgstr "Activer le service repro" +msgstr "Services externes" #: modules/privacy/manifest.py:10 msgid "Fallback DNS" @@ -8134,6 +8123,11 @@ msgid "" "accessed with various mobile and desktop applications using the CalDAV and " "CardDAV standards." msgstr "" +"SOGo est un serveur de logiciel de travail collaboratif qui fournit une " +"interface Web pour le courriel, l'agenda, les tâches et les contacts. " +"L'agenda, les tâches et les contacts sont également accessibles avec " +"diverses applications mobiles et de bureau utilisant les standard CalDAV et " +"CardDAV." #: modules/sogo/__init__.py:26 #, python-brace-format @@ -8141,6 +8135,9 @@ msgid "" "Webmail works with the Postfix/Dovecot email " "server app to retrieve, manage, and send email." msgstr "" +"Le webmail fonctionne avec l'application serveur de courriels Postfix/Dovecot pour récupérer, gérer et envoyer des " +"courriels." #: modules/sogo/__init__.py:30 #, python-brace-format @@ -8149,26 +8146,26 @@ msgid "" "their mailboxes by the email server app can be read and new mail can be sent " "out." msgstr "" +"Tous les utilisateurs sur {box_name} peuvent s'identifier avec et utiliser " +"SOGo. Les courriels livrés à leurs boîtes aux lettres électroniques par " +"l'application serveur de courriels peuvent être lus et de nouveaux courriels " +"peuvent être envoyés." #: modules/sogo/__init__.py:48 modules/sogo/manifest.py:11 msgid "SOGo" -msgstr "" +msgstr "SOGo" #: modules/sogo/manifest.py:19 msgid "Thunderbird + SOGo connector" -msgstr "" +msgstr "Connecteur Thunderbird + SOGo" #: modules/sogo/manifest.py:71 -#, fuzzy -#| msgid "Email" msgid "Webmail" -msgstr "Courriel" +msgstr "Webmail" #: modules/sogo/manifest.py:74 -#, fuzzy -#| msgid "Address" msgid "Address book" -msgstr "Adresse" +msgstr "Carnet d'adresses" #: modules/ssh/__init__.py:22 msgid "" @@ -9057,10 +9054,8 @@ msgstr "" #: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:9 #: modules/upgrades/templates/upgrades-dist-upgrade.html:11 #: modules/upgrades/templates/upgrades_configure.html:16 -#, fuzzy -#| msgid "Distribution update started" msgid "Distribution Update" -msgstr "Mise à niveau de la distribution démarrée" +msgstr "Mise à jour de la distribution" #: modules/upgrades/__init__.py:396 msgid "Check for package holds" @@ -9123,10 +9118,8 @@ msgid "Next" msgstr "Suivant" #: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:11 -#, fuzzy -#| msgid "Could not start distribution update" msgid "Confirm Distribution Update?" -msgstr "Impossible de lancer la mise à niveau de la distribution" +msgstr "Confirmer la mise à jour de la distribution ?" #: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:21 #, python-format @@ -9135,34 +9128,42 @@ msgid "" "released. Proceed only if you wish to help with beta testing of %(box_name)s " "functionality." msgstr "" +"Vous êtes sur le point de mettre à jour vers la prochaine version de la " +"distribution avant sa publication. Continuez seulement si vous souhaitez " +"aider à tester les fonctionnalités bêtas de %(box_name)s." #: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:32 msgid "" "Take a full backup of all apps and data before performing a distribution " "update." msgstr "" +"Prenez une sauvegarde complète de toutes les applications et données avant " +"d'effectuer une mise à jour de distribution." #: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:38 msgid "" "The process will take several hours. Most apps will be unavailable during " "this time." msgstr "" +"Le processus prendra plusieurs heures. La plupart des applications seront " +"indisponible durant cette période." #: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:44 msgid "" "Don't interrupt the process by shutting down or interrupting power to the " "machine." msgstr "" +"N'interrompez pas le processus en éteignant la machine ou en coupant son " +"alimentation." #: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:50 msgid "If the process is interrupted, you should be able to continue it." msgstr "" +"Si le processus est interrompu, vous devriez être en mesure de le poursuivre." #: modules/upgrades/templates/upgrades-dist-upgrade-confirm.html:66 -#, fuzzy -#| msgid "Could not start distribution update" msgid "Confirm & Start Distribution Update" -msgstr "Impossible de lancer la mise à niveau de la distribution" +msgstr "Confirmer et démarrer la mise à jour de la distribution" #: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:15 msgid "" @@ -9170,10 +9171,16 @@ msgid "" "apps will be unavailable during this period. Don't interrupt the process by " "shutting down or interrupting power to the machine." msgstr "" +"La mise à jour de la distribution a démarré. Cette opération peut prendre " +"plusieurs heures. La plupart des applications seront indisponibles pendant " +"cette période. N'interrompez pas le processus en éteignant la machine ou en " +"coupant son alimentation." #: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:21 msgid "Distribution update has completed. Reboot the machine, if necessary." msgstr "" +"La mise à jour de la distribution est terminée. Redémarrez la machine, si " +"nécessaire." #: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:25 #, python-format @@ -9182,6 +9189,10 @@ msgid "" "then. See manual page for expected " "changes and transitions during the distribution upgrade." msgstr "" +"La mise à jour de la distribution va bientôt commencer. Prenez une " +"sauvegarde des applications et données auparavant. Voyez la page du manuel pour les modifications et transitions " +"attendues pendant la mise à niveau de la distribution." #: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:31 #, python-format @@ -9190,12 +9201,14 @@ msgid "" "and data before then. See manual page " "for expected changes and transitions during the distribution upgrade." msgstr "" +"La mise à jour de la distribution va démarrer dans %(in_days)s jours. Prenez " +"une sauvegarde des applications et données auparavant. Voyez la page du manuel pour les modifications et " +"transitions attendues pendant la mise à niveau de la distribution." #: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:42 -#, fuzzy -#| msgid "Test Distribution Upgrade" msgid "Go to Distribution Update" -msgstr "Tester la mise à niveau de la distribution" +msgstr "Aller à la mise à jour de la distribution" #: modules/upgrades/templates/upgrades-dist-upgrade-notification.html:46 #: modules/upgrades/templates/upgrades-new-release.html:22 @@ -9216,77 +9229,81 @@ msgid "" "changes, you can keep each distribution for at least 5 years before updating." msgstr "" +"Votre %(box_name)s recevra des mises à jour de sécurité, des corrections " +"importantes et certaines fonctionnalités sélectionnées avec les mises à jour " +"logicielles habituelles. Cependant, afin de fournir un long cycle de vie " +"logiciel à %(box_name)s, le système d'exploitation entier recevra une mise à " +"jour majeure de distribution environ tous les deux ans. Cela apportera des " +"fonctionnalités et modifications majeures. Parfois, des fonctionnalités " +"anciennes cesseront de fonctionner. Veuillez consulter le manuel pour les modifications et transitions " +"attendues pendant une mise à niveau de la distribution. Si vous n'appréciez " +"pas ces modifications, vous pouvez continuer à utiliser chaque distribution " +"pour au moins 5 ans avant de " +"mettre à jour." #: modules/upgrades/templates/upgrades-dist-upgrade.html:34 msgid "" "Distribution update is currently running. This operation may take several " "hours. Most apps will be unavailable during this period." msgstr "" +"La mise à jour de la distribution s'exécute en ce moment. Cette opération " +"peut prendre plusieurs heures. La plupart des applications seront " +"indisponibles pendant cette période." #: modules/upgrades/templates/upgrades-dist-upgrade.html:50 -#, fuzzy -#| msgid "Automatic upgrades disabled" msgid "Automatic updates are disabled." -msgstr "Mises à niveau automatiques désactivées" +msgstr "Mises à jour automatiques désactivées." #: modules/upgrades/templates/upgrades-dist-upgrade.html:54 -#, fuzzy -#| msgid "Distribution upgrade disabled" msgid "Distribution upgrades are disabled." -msgstr "Mise à niveau de la distribution désactivée" +msgstr "Mise à niveau de la distribution désactivée." #: modules/upgrades/templates/upgrades-dist-upgrade.html:58 msgid "" "You need to have at least 5 GB of free space available on primary disk to " "perform a distribution update." msgstr "" +"Vous devez avoir au moins 5 Go d'espace libre disponible sur votre disque " +"primaire pour effectuer une mise à jour de la distribution." #: modules/upgrades/templates/upgrades-dist-upgrade.html:65 msgid "Your current distribution is mixed or not understood." -msgstr "" +msgstr "Votre distribution actuelle est mixte ou incomprise." #: modules/upgrades/templates/upgrades-dist-upgrade.html:72 -#, fuzzy -#| msgid "Test Distribution Upgrade" msgid "Current Distribution:" -msgstr "Tester la mise à niveau de la distribution" +msgstr "Distribution actuelle :" #: modules/upgrades/templates/upgrades-dist-upgrade.html:74 -#, fuzzy -#| msgid "unknown error" msgid "Unknown or mixed" -msgstr "erreur inconnue" +msgstr "Inconnue ou mixte" #: modules/upgrades/templates/upgrades-dist-upgrade.html:77 msgid "Rolling release distribution" -msgstr "" +msgstr "Distribution rolling release" #: modules/upgrades/templates/upgrades-dist-upgrade.html:84 -#, fuzzy, python-format -#| msgid "Delete site %(site)s" +#, python-format msgid "Released: %(date)s." -msgstr "Supprimer le site %(site)s" +msgstr "Date de publication : %(date)s." #: modules/upgrades/templates/upgrades-dist-upgrade.html:91 -#, fuzzy -#| msgid "Test Distribution Upgrade" msgid "Next Stable Distribution:" -msgstr "Tester la mise à niveau de la distribution" +msgstr "Prochaine distribution stable :" #: modules/upgrades/templates/upgrades-dist-upgrade.html:93 -#, fuzzy -#| msgid "unknown" msgid "Unknown" -msgstr "inconnu" +msgstr "Inconnu" #: modules/upgrades/templates/upgrades-dist-upgrade.html:99 #, python-format msgid "Likely release: %(date)s." -msgstr "" +msgstr "Date de publication probable : %(date)s." #: modules/upgrades/templates/upgrades-dist-upgrade.html:107 msgid "Next stable distribution is not available yet." -msgstr "" +msgstr "La prochaine distribution stable n'est pas encore disponible." #: modules/upgrades/templates/upgrades-dist-upgrade.html:113 #, python-format @@ -9295,12 +9312,17 @@ msgid "" "necessary. Thank you for helping test the %(box_name)s project. Please " "report any problems you notice." msgstr "" +"Vous êtes sur une distribution en rolling release. Aucune mise à jour de la " +"distribution n'est nécessaire. Merci d'avoir aidé à tester le projet " +"%(box_name)s. Veuillez signaler tout problème que vous remarquerez." #: modules/upgrades/templates/upgrades-dist-upgrade.html:121 msgid "" "A previous run of distribution update may have been interrupted. Please re-" "run the distribution update." msgstr "" +"Une précédente exécution de la mise à jour de la distribution peut avoir été " +"interrompu. Veuillez ré-exécuter la mise à jour de la distribution." #: modules/upgrades/templates/upgrades-dist-upgrade.html:128 #, python-format @@ -9309,6 +9331,9 @@ msgid "" "automatically in %(period)s. You may choose to update manually now, if you " "wish." msgstr "" +"Une nouvelle distribution stable est disponible. Votre %(box_name)s sera " +"mise à jour automatiquement dans %(period)s. Vous pouvez choisir de mettre à " +"jour manuellement maintenant, si vous le souhaitez." #: modules/upgrades/templates/upgrades-dist-upgrade.html:136 #, python-format @@ -9316,6 +9341,9 @@ msgid "" "A new stable distribution is available. Your %(box_name)s will be updated " "automatically soon. You may choose to update manually now, if you wish." msgstr "" +"Une nouvelle distribution stable est disponible. Votre %(box_name)s sera " +"mise à jour automatiquement bientôt. Vous pouvez choisir de mettre à jour " +"manuellement maintenant, si vous le souhaitez." #: modules/upgrades/templates/upgrades-dist-upgrade.html:144 #, python-format @@ -9325,25 +9353,24 @@ msgid "" "next distribution manually. This setup may experience occational app " "failures until the next stable release." msgstr "" +"Vous êtes sur la distribution stable la plus récente. Cela est recommandé. " +"Cependant, si vous souhaitez aider à tester les fonctionnalités bêtas de " +"%(box_name)s, vous pouvez mettre à jour vers la prochaine distribution " +"manuellement. Cette configuration peut subir des défaillances d'applications " +"jusqu'à la publication de la prochaine version stable." #: modules/upgrades/templates/upgrades-dist-upgrade.html:157 #: modules/upgrades/templates/upgrades-dist-upgrade.html:172 -#, fuzzy -#| msgid "Test Distribution Upgrade" msgid "Start Distribution Update" -msgstr "Tester la mise à niveau de la distribution" +msgstr "Démarrer la mise à jour de la distribution" #: modules/upgrades/templates/upgrades-dist-upgrade.html:162 -#, fuzzy -#| msgid "Test Distribution Upgrade" msgid "Continue Distribution Update" -msgstr "Tester la mise à niveau de la distribution" +msgstr "Poursuivre la mise à jour de la distribution" #: modules/upgrades/templates/upgrades-dist-upgrade.html:167 -#, fuzzy -#| msgid "Starting distribution upgrade test." msgid "Start Distribution Update (for testing)" -msgstr "Démarrage du test de mise à niveau de la distribution." +msgstr "Démarrer la mise à jour de la distribution (pour les tests)" #: modules/upgrades/templates/upgrades-new-release.html:9 #, python-format @@ -9426,10 +9453,8 @@ msgstr "" "« unattended-upgrades »" #: modules/upgrades/views.py:117 -#, fuzzy -#| msgid "Starting distribution upgrade test." msgid "Started distribution update." -msgstr "Démarrage du test de mise à niveau de la distribution." +msgstr "Mise à jour de la distribution démarrée." #: modules/upgrades/views.py:153 msgid "Upgrade process started." diff --git a/plinth/locale/hi/LC_MESSAGES/django.po b/plinth/locale/hi/LC_MESSAGES/django.po index 54617637e..3eba58c55 100644 --- a/plinth/locale/hi/LC_MESSAGES/django.po +++ b/plinth/locale/hi/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-21 20:08-0400\n" -"PO-Revision-Date: 2025-04-16 04:54+0000\n" -"Last-Translator: Aryan Raj \n" +"PO-Revision-Date: 2025-04-29 16:30+0000\n" +"Last-Translator: Thulasi Edhala \n" "Language-Team: Hindi \n" "Language: hi\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 5.11-dev\n" +"X-Generator: Weblate 5.12-dev\n" #: config.py:103 #, python-brace-format @@ -1756,7 +1756,7 @@ msgstr "" #: modules/diagnostics/__init__.py:222 msgid "You should not install any new apps on this system." -msgstr "" +msgstr "आपको इस सिस्टम पर कोई नया ऐप इंस्टॉल नहीं करना चाहिए।" #: modules/diagnostics/__init__.py:234 #, no-python-format, python-brace-format @@ -1764,10 +1764,12 @@ msgid "" "System is low on memory: {percent_used}% used, {memory_available} " "{memory_available_unit} free. {advice_message}" msgstr "" +"सिस्टम में मेमोरी कम है: {percent_used}% उपयोग हो चुकी है, {memory_available} " +"{memory_available_unit} खाली है। {advice_message}" #: modules/diagnostics/__init__.py:236 msgid "Low Memory" -msgstr "" +msgstr "कम मेमोरी" #: modules/diagnostics/__init__.py:267 #, fuzzy @@ -9845,6 +9847,8 @@ msgid "" "Provided by the server operator, a long string of characters. Example: " "MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." msgstr "" +"सर्वर ऑपरेटर द्वारा प्रदान की गई, वर्णों की एक लंबी स्ट्रिंग। उदाहरण: MConEJFIg6+" +"DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ।" #: modules/wireguard/forms.py:82 #, fuzzy @@ -9857,10 +9861,12 @@ msgid "" "endpoint. This value is usually provided by the server operator. Example: " "192.168.0.10." msgstr "" +"सर्वर ऑपरेटर द्वारा प्रदान की गई, वर्णों की एक लंबी स्ट्रिंग। उदाहरण: MConEJFIg6+" +"DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ।" #: modules/wireguard/forms.py:89 msgid "Private key of this machine" -msgstr "" +msgstr "इस मशीन की निजी कुंजी" #: modules/wireguard/forms.py:90 msgid "" @@ -9869,10 +9875,14 @@ msgid "" "some server operators insist on providing this. Example: " "MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." msgstr "" +"वैकल्पिक। यदि खाली छोड़ दिया जाए तो नई सार्वजनिक/निजी कुंजियाँ उत्पन्न होती हैं। फिर " +"सार्वजनिक कुंजी सर्वर को प्रदान की जा सकती है। यह अनुशंसित तरीका है। हालाँकि, कुछ सर्वर " +"ऑपरेटर इसे प्रदान करने पर जोर देते हैं। उदाहरण: MConEJFIg6+" +"DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ।" #: modules/wireguard/forms.py:98 msgid "Pre-shared key" -msgstr "" +msgstr "गुप्त कुंजी" #: modules/wireguard/forms.py:99 msgid "" @@ -9880,10 +9890,13 @@ msgid "" "layer of security. Fill in only if provided. Example: " "MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs=." msgstr "" +"वैकल्पिक। सुरक्षा की एक अतिरिक्त परत जोड़ने के लिए सर्वर द्वारा प्रदान की गई एक साझा गुप्" +"त कुंजी। केवल तभी भरें जब प्रदान की गई हो। उदाहरण: " +"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs=।" #: modules/wireguard/forms.py:105 msgid "Use this connection to send all outgoing traffic" -msgstr "" +msgstr "सभी आउटगोइंग ट्रैफ़िक भेजने के लिए इस कनेक्शन का उपयोग करें" #: modules/wireguard/forms.py:107 msgid "Typically checked for a VPN service through which all traffic is sent." @@ -10595,12 +10608,13 @@ msgstr "" "कुछएप्लिकेशनस सक्षम करें, इस पेज पर शॉर्टकटस जोड़ने के लिए." #: templates/internal-zone.html:17 -#, fuzzy, python-format -#| msgid "%(service_name)s is available only on internal networks." +#, python-format msgid "" "%(service_name)s is available only on internal networks or when the " "client is connected to %(box_name)s through VPN." -msgstr "%(service_name)s सिर्फ आंतरिक नेटवर्क्स पर उपलब्ध है. %(box_name)s" +msgstr "" +"%(service_name)s केवल आंतरिक नेटवर्क पर उपलब्ध है या जब क्लाइंट VPN के माध्यम " +"से %(box_name)s से जुड़ा होता है।" #: templates/internal-zone.html:25 msgid "Currently there are no network interfaces configured as internal." @@ -10614,26 +10628,21 @@ msgid "" msgstr "अभी यह नेटवर्क इंटरफ़ेसस आंतरिक के रूप में कॉंफ़िगर किया गया है:%(interface_list)s" #: templates/notifications-dropdown.html:11 -#, fuzzy -#| msgid "No certificate" msgid "Notifications" -msgstr "कोई प्रमाणपत्र नहीं" +msgstr "सूचनाएं" #: templates/port-forwarding-info.html:8 msgid "Port Forwarding" -msgstr "" +msgstr "अग्रेषण पोर्ट" #: templates/port-forwarding-info.html:13 -#, fuzzy, python-format -#| msgid "" -#| "You may want to check the network setup " -#| "and modify it if necessary." +#, python-format msgid "" "Your FreedomBox is not behind a router. No " "action is necessary." msgstr "" -"आप नेटवर्क सेटअप जांचना चाह सकते है और अगर जरुरत " -"हू, इससे बदलें." +"आपका फ्रीडमबॉक्स राउटर के पीछे नहीं है। कोई कार्रवा" +"ई आवश्यक नहीं है।" #: templates/port-forwarding-info.html:21 #, python-format @@ -10650,6 +10659,9 @@ msgid "" "are not using the DMZ feature. You will need to set up port forwarding on " "your router. You should forward the following ports for %(service_name)s:" msgstr "" +"आपका फ्रीडमबॉक्स राउटर के पीछे है और आप DMZ सुविधा" +" का उपयोग नहीं कर रहे हैं। आपको अपने राउटर पर पोर्ट फ़ॉरवर्डिंग सेट अप करना होगा। आपको " +"%(service_name)s के लिए निम्नलिखित पोर्ट फ़ॉरवर्ड करने चाहिए:" #: templates/port-forwarding-info.html:42 #, fuzzy @@ -10665,7 +10677,7 @@ msgstr "प्रोटोकॉल" #: templates/port-forwarding-info.html:44 msgid "From Router/WAN Ports" -msgstr "" +msgstr "राउटर/WAN पोर्ट से" #: templates/port-forwarding-info.html:45 #, fuzzy, python-format @@ -10691,7 +10703,7 @@ msgstr "यह एप्लिकेशन अभी अापका वित #: templates/setup.html:50 msgid "Check again" -msgstr "" +msgstr "फिर से जाँचो" #: templates/setup.html:61 msgid "" @@ -10699,6 +10711,8 @@ msgid "" "conflict with the installation of this app. The following packages will be " "removed if you proceed:" msgstr "" +"विरोधी पैकेज: सिस्टम पर इंस्टॉल किए गए कुछ पैकेज इस ऐप की स्थापना के " +"साथ संघर्ष करते हैं। यदि आप आगे बढ़ते हैं तो निम्नलिखित पैकेज हटा दिए जाएँगे:" #: templates/setup.html:80 msgid "Update" @@ -10746,10 +10760,12 @@ msgid "" "All app data and configuration will be permanently lost. App may be " "installed freshly again." msgstr "" +"सभी ऐप डेटा और कॉन्फ़िगरेशन हमेशा के लिए खो जाएंगे। ऐप को फिर से नए सिरे से इंस्टॉल किया " +"जा सकता है।" #: views.py:84 msgid "Here" -msgstr "" +msgstr "यहाँ" #: views.py:414 msgid "Setting unchanged" @@ -10758,7 +10774,7 @@ msgstr "सेटिंग स्थिर है" #: views.py:647 #, python-brace-format msgid "before uninstall of {app_id}" -msgstr "" +msgstr "{app_id} को अनइंस्टॉल करने से पहले" #: web_framework.py:122 msgid "Gujarati" diff --git a/plinth/locale/te/LC_MESSAGES/django.po b/plinth/locale/te/LC_MESSAGES/django.po index 19b504836..7f7e90b99 100644 --- a/plinth/locale/te/LC_MESSAGES/django.po +++ b/plinth/locale/te/LC_MESSAGES/django.po @@ -10,8 +10,8 @@ msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-04-21 20:08-0400\n" -"PO-Revision-Date: 2025-04-20 12:08+0000\n" -"Last-Translator: saisankar333 <2300090325@kluniversity.in>\n" +"PO-Revision-Date: 2025-04-30 07:52+0000\n" +"Last-Translator: swaroop02-cse \n" "Language-Team: Telugu \n" "Language: te\n" @@ -19,14 +19,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 5.11.1-dev\n" +"X-Generator: Weblate 5.12-dev\n" #: config.py:103 #, python-brace-format msgid "Static configuration {etc_path} is setup properly" -msgstr "స్టాటిక్ కాన్ఫిగరేషన్ {etc_path} సరిగ్గా సెటప్ చేయబడింది" +msgstr "స్టాటిక్ కాన్ఫిగరేషన్ {etc_path} సరిగ్గా సెటప్ చేయబడింది." #: context_processors.py:21 views.py:168 +#, fuzzy msgid "FreedomBox" msgstr "ఫ్రీడమ్‌బాక్స్" @@ -36,14 +37,14 @@ msgid "Service {service_name} is running" msgstr "{service_name} సేవ అమలులో ఉంది" #: daemon.py:222 -#, fuzzy, python-brace-format +#, python-brace-format msgid "Listening on {kind} port {listen_address}:{port}" -msgstr "పోర్ట్ లో వింటున్నాను {kind} {listen_address}: {port}" +msgstr "{kind} పోర్ట్ {listen_address}:{port} లో వింటున్నాను" #: daemon.py:225 #, python-brace-format msgid "Listening on {kind} port {port}" -msgstr "{kind} పోర్ట్ {port} లో వినిపిస్తోంది" +msgstr "{kind} port {port} లో వింటున్నాను" #: daemon.py:296 #, python-brace-format @@ -53,11 +54,11 @@ msgstr "{host} కి కనెక్ట్ అవ్వండి:{port}" #: daemon.py:304 #, python-brace-format msgid "Cannot connect to {host}:{port}" -msgstr "{host}:{port} కి కనెక్ట్ కాలేదు" +msgstr "{host} కి కనెక్ట్ అవ్వండి:{port}" #: forms.py:36 msgid "Backup app before uninstall" -msgstr "అన్‌ఇన్‌స్టాల్ చేయడానికి ముందు యాప్‌ను బ్యాకప్ చేయండి" +msgstr "అన్‌ఇన్‌స్టాల్ చేయడానికి ముందు బ్యాకప్ యాప్" #: forms.py:37 msgid "Restoring from the backup will restore app data." @@ -65,11 +66,11 @@ msgstr "బ్యాకప్ నుండి పునరుద్ధరిం #: forms.py:39 msgid "Repository to backup to" -msgstr "బబ్యాకప్ చేయడానికి రిపోజిటరీ" +msgstr "బ్యాకప్ చేయడానికి రిపోజిటరీ" #: forms.py:64 msgid "Select a domain name to be used with this application" -msgstr "ఈ అప్లికేషన్ తో ఉపయోగించడానికి ఒక డొమైన్ పేరును ఎంచుకోండి" +msgstr "ఈ అప్లికేషన్ తో ఉపయోగించడానికి ఒక డొమైన్ పేరును ఎంచుకోండి." #: forms.py:66 msgid "" @@ -103,7 +104,7 @@ msgstr "బ్రౌజర్‌లో సెట్ చేయబడిన భా #: menu.py:116 templates/base.html:120 msgid "Home" -msgstr "ఇల్లు" +msgstr "హొమ్ పేజ్" #: menu.py:117 templates/base.html:129 msgid "Apps" @@ -132,7 +133,7 @@ msgstr "సర్వర్ నిర్వహణ" #: middleware.py:134 msgid "System is possibly under heavy load. Please retry later." -msgstr "సిస్టమ్ బహుశా భారీ లోడ్‌లో ఉండవచ్చు దయచేసి తర్వాత మళ్లీ ప్రయత్నించండి." +msgstr "సిస్టమ్ బహుశా భారీ లోడ్‌లో ఉండవచ్చు. దయచేసి తర్వాత మళ్లీ ప్రయత్నించండి." #: middleware.py:147 #, python-brace-format @@ -204,7 +205,7 @@ msgstr "స్థానిక" #: modules/avahi/manifest.py:14 msgid "mDNS" -msgstr "మ్దన్స్" +msgstr "mDNS" #: modules/backups/__init__.py:24 msgid "Backups allows creating and managing backup archives." @@ -8248,11 +8249,11 @@ msgstr "టార్" #: modules/tor/__init__.py:77 msgid "Tor Onion Service" -msgstr "టోర్ ఉల్లిపాయ సేవ" +msgstr "టోర్ ఆనియన్ సర్వీస్" #: modules/tor/__init__.py:82 msgid "Tor Bridge Relay" -msgstr "టార్ బ్రిడ్జ్ రిలే" +msgstr "టార్ వంతెన రిలే" #: modules/tor/__init__.py:140 msgid "Tor relay port available" @@ -8268,7 +8269,7 @@ msgstr "Obfs4 రవాణా నమోదు చేయబడింది" #: modules/tor/__init__.py:176 msgid "Onion service is version 3" -msgstr "ఉల్లిపాయ సేవ వెర్షన్ 3" +msgstr "ఉల్లిపాయ సేవ భ్రూణ వర్తనం 3" #: modules/tor/forms.py:33 msgid "" @@ -8278,7 +8279,8 @@ msgstr "" #: modules/tor/forms.py:76 msgid "Use upstream bridges to connect to Tor network" -msgstr "టార్ నెట్వర్క్కు కనెక్ట్ చేయడానికి అప్స్ట్రీమ్ వారది ఉపయోగించండి" +msgstr "" +"టోర్ నెట్‌వర్క్‌కి కనెక్ట్ అవ్వడానికి అప్‌స్ట్రీమ్ బ్రిడ్జిలను ఉపయోగించండి" #: modules/tor/forms.py:78 msgid "" @@ -8286,13 +8288,13 @@ msgid "" "Tor network. Use this option if your Internet Service Provider (ISP) blocks " "or censors connections to the Tor Network. This will disable relay modes." msgstr "" -"ఎనేబుల్ అయినప్పుడు, క్రింద కాన్ఫిగర్ చేయబడిన వంతెనలు టార్ నెట్వర్క్కి కనెక్ట్ చేయడానికి ఉపయోగించబడతాయి. మీ " -"ఇంటర్నెట్ సర్వీస్ ప్రొవైడర్ (ISP) టార్ నెట్ వర్క్ కు కనెక్షన్లనుబ్లాక్ చేస్తే లేదా సెన్సార్ చేస్తే ఈ ఎంపికను " -"ఉపయోగించండి. ఇది రిలే మోడ్లను నిలిపివేస్తుంది." +"ప్రారంభించబడినప్పుడు, దిగువ కాన్ఫిగర్ చేయబడిన వంతెనలు Tor నెట్‌వర్క్‌కు కనెక్ట్ చేయడానికి ఉపయోగించబడతాయి. మీ" +" ఇంటర్నెట్ సర్వీస్ ప్రొవైడర్ (ISP) Tor నెట్‌వర్క్‌కు కనెక్షన్‌లను బ్లాక్ చేస్తే లేదా సెన్సార్ చేస్తే ఈ ఎంపికను " +"ఉపయోగించండి. ఇది రిలే మోడ్‌లను నిలిపివేస్తుంది." #: modules/tor/forms.py:83 msgid "Upstream bridges" -msgstr "అప్స్ట్రీమ్ బ్రిడ్జెస్" +msgstr "అప్‌స్ట్రీమ్ వంతెనలు" #: modules/tor/forms.py:85 msgid "" @@ -8300,12 +8302,13 @@ msgid "" "\">https://bridges.torproject.org/ and copy/paste the bridge information " "here. Currently supported transports are none, obfs3, obfs4 and scamblesuit." msgstr "" -"మీరు కొన్ని వంతెనలను https://bridges." -"torproject.org/ నుండి పొందవచ్చు మరియు ఇక్కడ వంతెన సమాచారాన్ని కాపీ చేయండి." +"మీరు https://" +"bridges.torproject.org/ నుండి కొన్ని బ్రిడ్జ్‌లను పొందవచ్చు మరియు బ్రిడ్జ్ సమాచారాన్ని ఇక్కడ " +"కాపీ/పేస్ట్ చేయవచ్చు. ప్రస్తుతం మద్దతు ఉన్న రవాణాలు none, obfs3, obfs4 మరియు scamblesuit." #: modules/tor/forms.py:95 msgid "Enable Tor relay" -msgstr "టోర్ రిలేని ప్రారంభించండి" +msgstr "టోర్ రిలేను ప్రారంభించండి" #: modules/tor/forms.py:96 #, python-brace-format diff --git a/plinth/modules/minetest/data/usr/lib/systemd/system/minetest-server.service.d/freedombox.conf b/plinth/modules/minetest/data/usr/lib/systemd/system/minetest-server.service.d/freedombox.conf index d61eea865..6a3d7483a 100644 --- a/plinth/modules/minetest/data/usr/lib/systemd/system/minetest-server.service.d/freedombox.conf +++ b/plinth/modules/minetest/data/usr/lib/systemd/system/minetest-server.service.d/freedombox.conf @@ -1,4 +1,4 @@ # Workaround for Debian bug #1090067 [Service] ExecStart= -ExecStart=/usr/lib/minetest/minetestserver --config /etc/minetest/minetest.conf --logfile /var/log/minetest/minetest.log --gameid minetest_game +ExecStart=/usr/bin/sh -c 'if [ -e /etc/minetest/minetest.conf ] ; then CONFIG_FILE=/etc/minetest/minetest.conf; else CONFIG_FILE=/etc/luanti/default.conf; fi; if [ -x /usr/lib/minetest/minetestserver ] ; then /usr/lib/minetest/minetestserver --config $$CONFIG_FILE --logfile /var/log/minetest/minetest.log --gameid minetest_game; else exec /usr/libexec/luanti/luantiserver --config $$CONFIG_FILE --logfile /var/log/luanti/default/server.log --gameid $LUANTI_GAMEID; fi' diff --git a/plinth/modules/minetest/privileged.py b/plinth/modules/minetest/privileged.py index 73452d7b9..3bfbd3e40 100644 --- a/plinth/modules/minetest/privileged.py +++ b/plinth/modules/minetest/privileged.py @@ -1,6 +1,8 @@ # SPDX-License-Identifier: AGPL-3.0-or-later """Configure Minetest server.""" +import pathlib + import augeas from plinth import action_utils @@ -15,6 +17,7 @@ def configure(max_players: int | None = None, enable_pvp: bool | None = None, creative_mode: bool | None = None, enable_damage: bool | None = None): """Update configuration file and restart daemon if necessary.""" + pathlib.Path(CONFIG_FILE).parent.mkdir(exist_ok=True) aug = load_augeas() if max_players is not None: aug.set(AUG_PATH + '/max_users', str(max_players))