diff --git a/actions/dynamicdns b/actions/dynamicdns index 0e111b45b..3cbe07793 100755 --- a/actions/dynamicdns +++ b/actions/dynamicdns @@ -106,7 +106,10 @@ def subcommand_export_config(_): and _active_config.exists()): enabled = True - output_config = {'enabled': enabled, 'domains': {domain['domain']: domain}} + output_config = {'enabled': enabled, 'domains': {}} + if domain['domain']: + output_config['domains'][domain['domain']] = domain + print(json.dumps(output_config)) diff --git a/actions/email_server b/actions/email similarity index 88% rename from actions/email_server rename to actions/email index 8cfc79ae5..28704472b 100755 --- a/actions/email_server +++ b/actions/email @@ -10,7 +10,7 @@ import os import sys import plinth.log -from plinth.modules.email_server import audit +from plinth.modules.email import privileged EXIT_SYNTAX = 10 EXIT_PERM = 20 @@ -42,12 +42,12 @@ def _call(module_name, action_name, arguments): logger.critical('This action is reserved for root') sys.exit(EXIT_PERM) - # We only run actions defined in the audit module - if module_name not in audit.__all__: + # We only run actions defined in the privileged module + if module_name not in privileged.__all__: logger.critical('Bad module name: %r', module_name) sys.exit(EXIT_SYNTAX) - module = getattr(audit, module_name) + module = getattr(privileged, module_name) try: action = getattr(module, 'action_' + action_name) except AttributeError: diff --git a/debian/changelog b/debian/changelog index 24a8bbccc..50664c614 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,183 @@ +freedombox (22.6.1) unstable; urgency=medium + + [ Johannes Keyser ] + * Translated using Weblate (German) + + [ ikmaak ] + * Translated using Weblate (Dutch) + * Translated using Weblate (Dutch) + + [ Burak Yavuz ] + * Translated using Weblate (Turkish) + + [ Eric ] + * Translated using Weblate (Chinese (Simplified)) + + [ Jiří Podhorecký ] + * Translated using Weblate (Czech) + + [ 109247019824 ] + * Translated using Weblate (Bulgarian) + + -- James Valleroy Sun, 06 Mar 2022 06:25:27 -0500 + +freedombox (22.6) unstable; urgency=medium + + [ ikmaak ] + * Translated using Weblate (German) + * Translated using Weblate (Dutch) + + [ Burak Yavuz ] + * Translated using Weblate (Turkish) + + [ Nikita Epifanov ] + * Translated using Weblate (Russian) + + [ Eric ] + * Translated using Weblate (Chinese (Simplified)) + + [ Andrij Mizyk ] + * Translated using Weblate (Ukrainian) + + [ Michael Breidenbach ] + * Translated using Weblate (Swedish) + + [ Jiří Podhorecký ] + * Translated using Weblate (Czech) + + [ Sripath Roy Koganti ] + * Translated using Weblate (Telugu) + + [ Hemchand Pidikiti ] + * Translated using Weblate (Telugu) + + [ Revolutioners ] + * Translated using Weblate (Telugu) + + [ Anusha.chennamsetti ] + * Translated using Weblate (Telugu) + + [ Rohith ] + * Translated using Weblate (Telugu) + + [ B Rohit ] + * Translated using Weblate (Telugu) + + [ Sk Abdulaziz ] + * Translated using Weblate (Telugu) + + [ Prudhvi varma ] + * Translated using Weblate (Telugu) + + [ Lavanya Duddukuri ] + * Translated using Weblate (Telugu) + + [ Revathi Pathiwada ] + * Translated using Weblate (Telugu) + + [ Rushi Puttigumpala ] + * Translated using Weblate (Telugu) + + [ Kotagiri Hardik Sai ] + * Translated using Weblate (Telugu) + + [ Andhavarapu vamsi ] + * Translated using Weblate (Telugu) + + [ VANTIPALLI HARINI DEVI ] + * Translated using Weblate (Telugu) + + [ Mupparthi Rema Sharanya ] + * Translated using Weblate (Telugu) + + [ Nishmitha Undavalli ] + * Translated using Weblate (Telugu) + + [ l. Mamatha sahithi ] + * Translated using Weblate (Telugu) + + [ N SIRI HARSHITHA ] + * Translated using Weblate (Telugu) + + [ Sainadh Pragada ] + * Translated using Weblate (Telugu) + + [ Kesava Manikanta ] + * Translated using Weblate (Telugu) + + [ Padilam Sairam ] + * Translated using Weblate (Telugu) + + [ Benedek Nagy ] + * minidlna: add iOS VLC client + * samba: add iOS VLC client + * Translated using Weblate (Hungarian) + + [ James Valleroy ] + * Translated using Weblate (Telugu) + * locale: Update translation strings + * doc: Fetch latest manual + + [ 109247019824 ] + * Translated using Weblate (Bulgarian) + + [ Sunil Mohan Adapa ] + * email_server: List all listening ports of the daemons + * email_server: Update donation URL to rspamd donation URL + * email_server: Update short description + * email_server: Add front page shortcut, update name and description + * email: Rename app from email_server to email + * email: Drop X-Robots-Tag on the auto-configuration URL + * email: Backup/restore aliases and mailboxes + * email: rspamd: Simplify installing configuration + * email: Tweak client auto-configuration file + * email: Drop unused Apache include freedombox-robots.conf + * email: Simplify modifying headers proxied to rspamd web UI + * email: Depend on and run redis server + * email: Open firewall port for managesieve protocol + * email: Narrowly match just rspamd's spam header + * email: Add more special-use IMAP folders, set autoexpunge to 60days + * email: Simplify setting milter configuration and running sievec + * email: Drop special handling for reserved TLDs + * email: Drop special handling for outbound filtering + * email: Remove override for local addresses + * email: Setup rspamd configuration to include FreedomBox config + * email: Add basic functional tests + * email: Add backup/restore component + * email: Simplify setting up postfix + * email: Drop unused diagnosis module + * email: Minor indentation and docstring changes + * email: Set an icon from Tango project + * email: dkim: Implement setting up DKIM signing keys + * email: dns: Show table for desired DNS entries + * email: Enable as an advanced app + * email: aliases: Drop ability to enable/disable aliases + * email: Add shortcut for non-admin users to manage their aliases + * email: Drop mentions of clamav as it is too memory intensive + * email: Rename audit module to privileged + * email: Drop use of mutex for postfix configuration operations + * email: Simplify and rename postfix configuration module + * email: Drop unused utility method for logging + * email: Name module ldap to postfix + * email: Drop postfix and dovecot LDAP packages + * email: Drop atomic writing to a file + * email: Update module docstrings + * email: Use the term 'setup' rather than 'repair' for consistency + * email: Don't start disabled daemons when setup is re-run + * email: Implement adding common aliases for first admin user + * email: Add various documentation links for future readability + * email: postfix: Fix priority for authentication directives + * email: aliases: Minor refactoring to form validation + * email: clients: Make Thunderbird URLs language independent + * email: Allow re-running setup + * email: postfix: use inline map for TLS SNI maps + * email: rspamd: Log to journald via syslog + * email: Revert to LDAP auth as pam does not allow non-admin users + * email: Fix issue with certs not being available + * dynamicdns: Fix adding null domain into configuration + + -- James Valleroy Wed, 02 Mar 2022 08:44:45 -0500 + freedombox (22.5~bpo11+1) bullseye-backports; urgency=medium * Rebuild for bullseye-backports. diff --git a/debian/copyright b/debian/copyright index cf2a8d8b0..a1a39ba1d 100644 --- a/debian/copyright +++ b/debian/copyright @@ -61,6 +61,8 @@ License: GPL-2+ Files: static/themes/default/icons/ejabberd.png static/themes/default/icons/ejabberd.svg + static/themes/default/icons/email.png + static/themes/default/icons/email.svg static/themes/default/icons/matrixsynapse.svg static/themes/default/icons/privoxy.png static/themes/default/icons/privoxy.svg diff --git a/doc/manual/en/Ikiwiki.raw.wiki b/doc/manual/en/Ikiwiki.raw.wiki index 65bf9ba51..560f87482 100644 --- a/doc/manual/en/Ikiwiki.raw.wiki +++ b/doc/manual/en/Ikiwiki.raw.wiki @@ -41,19 +41,35 @@ To login as a !FreedomBox user, go to the wiki/blog's login page and select the === Adding FreedomBox users as wiki admins === - 1. Login to the wiki, using the admin account that was specified when the wiki was created. + 1. Login to the site, using the admin account that was specified when the site was created. 2. Click "Preferences", then "Setup". 3. Under "main", in the "users who are wiki admins", add the name of a user on the !FreedomBox. 4. (Optional) Under "auth plugin: passwordauth", uncheck the "enable passwordauth?" option. (Note: This will disable the old admin account login. Only SSO login using HTTP auth will be possible.) - 5. Click "Save Setup". + 5. At the bottom of the page click "Save Setup". 6. Click "Preferences", then "Logout". 7. Login as the new admin user using "Login with HTTP auth". +=== Theming === + + 1. Login to the site, using the admin account that was specified when the site was created. + 2. Click "Preferences", then "Setup". + 3. Under "web plugin: theme", check "enable theme?" + 4. Right under the checkbox, type in the name of the desired theme. You can choose from the following officially supported themes: + * actiontabs - mobile friendly + * blueview - non-mobile friendly + * goldtype - non-mobile friendly + * monochrome - mobile friendly + 5. At the bottom of the page click "Save Setup". +For your changes to become visible, you might have to delete your browser's cache or wait a few minutes and refresh your ikiwiki's page. + +It is also possible to install user-contributed themes from ikiwiki's Theme Market. Please note, that this requires additional technical knowledge. + + === External links === * Website: https://ikiwiki.info - + * Theme Market https://ikiwiki.info/theme_market/ ## END_INCLUDE diff --git a/doc/manual/en/ReleaseNotes.raw.wiki b/doc/manual/en/ReleaseNotes.raw.wiki index e2c07ab5f..ecc1df212 100644 --- a/doc/manual/en/ReleaseNotes.raw.wiki +++ b/doc/manual/en/ReleaseNotes.raw.wiki @@ -8,6 +8,45 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f The following are the release notes for each !FreedomBox version. +== FreedomBox 22.6 (2022-03-02) == + +=== Highlights === + + * email: Enable as an advanced app + +=== Other Changes === + + * dynamicdns: Fix adding null domain into configuration + * email: Add backup/restore component + * email: Add basic functional tests + * email: Add front page shortcut, update name and description + * email: Add more special-use IMAP folders, set autoexpunge to 60days + * email: Add shortcut for non-admin users to manage their aliases + * email: Add various documentation links for future readability + * email: Allow re-running setup + * email: Backup/restore aliases and mailboxes + * email: Depend on and run redis server + * email: Implement adding common aliases for first admin user + * email: List all listening ports of the daemons + * email: Narrowly match just rspamd's spam header + * email: Open firewall port for managesieve protocol + * email: Revert to LDAP auth as pam does not allow non-admin users + * email: Set an icon from Tango project + * email: Setup rspamd configuration to include !FreedomBox config + * email: Tweak client auto-configuration file + * email: Update donation URL to rspamd donation URL + * email: aliases: Drop ability to enable/disable aliases + * email: clients: Make Thunderbird URLs language independent + * email: dkim: Implement setting up DKIM signing keys + * email: dns: Show table for desired DNS entries + * email: postfix: Fix priority for authentication directives + * email: postfix: use inline map for TLS SNI maps + * email: rspamd: Log to journald via syslog + * email: rspamd: Simplify installing configuration + * locale: Update translations for Bulgarian, Chinese (Simplified), Czech, Dutch, German, Hungarian, Russian, Swedish, Telugu, Turkish, Ukrainian + * minidlna: add iOS VLC client + * samba: add iOS VLC client + == FreedomBox 22.5 (2022-02-14) == === Highlights === diff --git a/doc/manual/es/Ikiwiki.raw.wiki b/doc/manual/es/Ikiwiki.raw.wiki index 11cc4ca9b..98c4af9de 100644 --- a/doc/manual/es/Ikiwiki.raw.wiki +++ b/doc/manual/es/Ikiwiki.raw.wiki @@ -46,11 +46,25 @@ Para ingresar como usuario !FreedomBox ve a la página de ingreso del wiki/blog 6. Pulsa ''Preferencias'' y a continuación ''Salir''. 7. Ingresa como el nuevo usuario administrador usando ''Ingresar con autenticación HTTP''. +=== Aparencia: Temas === + + 1. Ingresa al wiki con la cuenta de administración especificada al crearlo. + 2. Pulsa en ''Preferencias'', y luego en ''Configurar''. + 3. Debajo de ''web plugin: tema'', selecciona ''¿habilitar tema?''. + 4. Justo debajo de la caja del selector, escribe el nombre del tema. Puedes elegir entre los siguientes temas soportados oficialmente: + * actiontabs - apropiado para móviles + * blueview - inapropiado para móviles + * goldtype - inapropiado para móviles + * monochrome - apropiado para móviles + 5. Al final de la página haz clic ''Grabar Configuración''. +Para visibilizar tus cambios quizá tengas que refrescar la caché de tu navegador o esperar unos minutos y refrescar tu página de ikiwiki. + +También se pueden instalar temas contribuidos por usuarios desde el Mercado de temas de ikiwiki. Ten en cuenta que esto requiere conocimiento técnico adicional. === Enlaces externos === * Sitio web: https://ikiwiki.info - + * Mercado de temas: https://ikiwiki.info/theme_market/ ## END_INCLUDE diff --git a/doc/manual/es/ReleaseNotes.raw.wiki b/doc/manual/es/ReleaseNotes.raw.wiki index e2c07ab5f..ecc1df212 100644 --- a/doc/manual/es/ReleaseNotes.raw.wiki +++ b/doc/manual/es/ReleaseNotes.raw.wiki @@ -8,6 +8,45 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f The following are the release notes for each !FreedomBox version. +== FreedomBox 22.6 (2022-03-02) == + +=== Highlights === + + * email: Enable as an advanced app + +=== Other Changes === + + * dynamicdns: Fix adding null domain into configuration + * email: Add backup/restore component + * email: Add basic functional tests + * email: Add front page shortcut, update name and description + * email: Add more special-use IMAP folders, set autoexpunge to 60days + * email: Add shortcut for non-admin users to manage their aliases + * email: Add various documentation links for future readability + * email: Allow re-running setup + * email: Backup/restore aliases and mailboxes + * email: Depend on and run redis server + * email: Implement adding common aliases for first admin user + * email: List all listening ports of the daemons + * email: Narrowly match just rspamd's spam header + * email: Open firewall port for managesieve protocol + * email: Revert to LDAP auth as pam does not allow non-admin users + * email: Set an icon from Tango project + * email: Setup rspamd configuration to include !FreedomBox config + * email: Tweak client auto-configuration file + * email: Update donation URL to rspamd donation URL + * email: aliases: Drop ability to enable/disable aliases + * email: clients: Make Thunderbird URLs language independent + * email: dkim: Implement setting up DKIM signing keys + * email: dns: Show table for desired DNS entries + * email: postfix: Fix priority for authentication directives + * email: postfix: use inline map for TLS SNI maps + * email: rspamd: Log to journald via syslog + * email: rspamd: Simplify installing configuration + * locale: Update translations for Bulgarian, Chinese (Simplified), Czech, Dutch, German, Hungarian, Russian, Swedish, Telugu, Turkish, Ukrainian + * minidlna: add iOS VLC client + * samba: add iOS VLC client + == FreedomBox 22.5 (2022-02-14) == === Highlights === diff --git a/plinth/__init__.py b/plinth/__init__.py index 0901aaa17..85757b325 100644 --- a/plinth/__init__.py +++ b/plinth/__init__.py @@ -3,4 +3,4 @@ Package init file. """ -__version__ = '22.5' +__version__ = '22.6.1' diff --git a/plinth/locale/ar_SA/LC_MESSAGES/django.po b/plinth/locale/ar_SA/LC_MESSAGES/django.po index 08c4026cb..1651b06b6 100644 --- a/plinth/locale/ar_SA/LC_MESSAGES/django.po +++ b/plinth/locale/ar_SA/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2020-06-10 15:41+0000\n" "Last-Translator: aiman an \n" "Language-Team: Arabic (Saudi Arabia) Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Web Server" msgid "Email Server" msgstr "خادم ويب" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -1918,6 +1944,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -3006,11 +3045,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3050,15 +3084,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -4766,11 +4800,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" diff --git a/plinth/locale/bg/LC_MESSAGES/django.po b/plinth/locale/bg/LC_MESSAGES/django.po index b4135fe32..b79d2d6e0 100644 --- a/plinth/locale/bg/LC_MESSAGES/django.po +++ b/plinth/locale/bg/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" -"PO-Revision-Date: 2022-02-14 05:55+0000\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" +"PO-Revision-Date: 2022-03-04 21:35+0000\n" "Last-Translator: 109247019824 \n" "Language-Team: Bulgarian \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 4.11-dev\n" +"X-Generator: Weblate 4.12-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -113,7 +113,7 @@ msgstr "Уеб сървър" #: plinth/modules/apache/__init__.py:47 #, python-brace-format msgid "{box_name} Web Interface (Plinth)" -msgstr "{box_name} Уеб интерфейс (Plinth)" +msgstr "{box_name} интерфейс (Plinth)" #: plinth/modules/apache/components.py:122 #, python-brace-format @@ -219,9 +219,9 @@ 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 "" -"Толкова от последните резервни копия ще бъдат запазвани, а останалите - " -"премахвани. Стойност „0“ изключва този вид резервно копие. Изпълнява се в " -"определен час всеки ден." +"Таакова количество от последните резервни копия ще бъдат запазвани, а " +"останалите - премахвани. Стойност „0“ изключва този вид резервно копие. " +"Изпълнява се в определен час всеки ден." #: plinth/modules/backups/forms.py:64 msgid "Number of weekly backups to keep" @@ -500,7 +500,7 @@ msgstr "Създаване на хранилище" #: plinth/modules/backups/templates/backups_delete.html:12 msgid "Delete this archive permanently?" -msgstr "Да бъде ли архива безвъзвратно премахнат?" +msgstr "Безвъзвратно премахване на архива?" #: plinth/modules/backups/templates/backups_delete.html:18 msgid "Time" @@ -623,6 +623,8 @@ msgid "" "Could not reach SSH host %(hostname)s. Please verify that the host is up and " "accepting connections." msgstr "" +"Няма връзка с хоста %(hostname)s по SSH. Уверете се, че хостът е включен и " +"отговаря." #: plinth/modules/backups/templates/verify_ssh_hostkey.html:28 #, python-format @@ -696,51 +698,51 @@ msgstr "Създаване на отдалечено хранилище за р #: plinth/modules/backups/views.py:344 msgid "Added new remote SSH repository." -msgstr "" +msgstr "Създадено е отдалечено хранилище с достъп през SSH." #: plinth/modules/backups/views.py:366 msgid "Verify SSH hostkey" -msgstr "" +msgstr "Проверяване на ключа за SSH на хоста" #: plinth/modules/backups/views.py:392 msgid "SSH host already verified." -msgstr "" +msgstr "SSH на хоста вече е проверен." #: plinth/modules/backups/views.py:402 msgid "SSH host verified." -msgstr "" +msgstr "Ключът на хоста е проверен." #: plinth/modules/backups/views.py:417 msgid "SSH host public key could not be verified." -msgstr "" +msgstr "Публичният ключ за SSH на хоста не може да бъде проверен." #: plinth/modules/backups/views.py:419 msgid "Authentication to remote server failed." -msgstr "" +msgstr "Удостоверяването на отдалечения сървър е неуспешно." #: plinth/modules/backups/views.py:421 msgid "Error establishing connection to server: {}" -msgstr "" +msgstr "Грешка при свързване със сървъра: {}" #: plinth/modules/backups/views.py:432 msgid "Repository removed." -msgstr "" +msgstr "Хранилището е премахнато." #: plinth/modules/backups/views.py:446 msgid "Remove Repository" -msgstr "" +msgstr "Премахване на хранилище" #: plinth/modules/backups/views.py:455 msgid "Repository removed. Backups were not deleted." -msgstr "" +msgstr "Хранилището е премахнато. Резервните копия не са премахнати." #: plinth/modules/backups/views.py:465 msgid "Unmounting failed!" -msgstr "" +msgstr "Грешка при размонтиране!" #: plinth/modules/backups/views.py:480 plinth/modules/backups/views.py:484 msgid "Mounting failed" -msgstr "" +msgstr "Грешка при монтиране" #: plinth/modules/bepasty/__init__.py:21 msgid "" @@ -855,7 +857,7 @@ msgstr "" #: plinth/modules/bepasty/views.py:23 msgid "editor" -msgstr "" +msgstr "редактор" #: plinth/modules/bepasty/views.py:24 msgid "viewer" @@ -874,7 +876,7 @@ msgid "List" msgstr "" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -895,7 +897,7 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -958,6 +960,7 @@ msgid "Serving Domains" msgstr "" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -985,7 +988,7 @@ msgstr "" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1216,7 +1219,7 @@ msgstr "" #: plinth/modules/config/forms.py:85 msgid "Webserver Home Page" -msgstr "" +msgstr "Начална страница на сървъра за уеб" #: plinth/modules/config/forms.py:87 #, python-brace-format @@ -1230,7 +1233,7 @@ msgstr "" #: plinth/modules/config/forms.py:98 msgid "Show advanced apps and features" -msgstr "" +msgstr "Допълнителни приложения и възможности" #: plinth/modules/config/forms.py:100 msgid "Show apps and features that require more technical knowledge." @@ -1298,7 +1301,7 @@ msgstr "" #: plinth/modules/coturn/__init__.py:58 msgid "VoIP Helper" -msgstr "" +msgstr "Помощник за VoIP" #: plinth/modules/coturn/forms.py:22 msgid "Invalid list of STUN/TURN Server URIs" @@ -1639,9 +1642,10 @@ msgstr "" #: plinth/modules/wireguard/templates/wireguard_show_client.html:48 #: plinth/modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" -msgstr "" +msgstr "Състояние" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "" @@ -1667,10 +1671,8 @@ msgid "No status available." msgstr "" #: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 -#, fuzzy -#| msgid "Connection refused" msgid "Connection timed out" -msgstr "Връзката е отказана" +msgstr "Времето за изчакване на връзка е изтекло" #: plinth/modules/dynamicdns/views.py:25 msgid "Could not find server" @@ -1802,131 +1804,155 @@ msgid "" "Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "Пощенски сървър" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -1967,6 +1993,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -2025,7 +2064,7 @@ msgstr "" #: plinth/modules/first_boot/templates/firstboot_complete.html:21 msgid "Install Apps" -msgstr "" +msgstr "Инсталиране на приложения" #: plinth/modules/first_boot/templates/firstboot_complete.html:27 #, python-format @@ -2173,28 +2212,28 @@ msgstr "" #: plinth/modules/gitweb/views.py:84 msgid "Repository edited." -msgstr "" +msgstr "Хранилището е променено." #: plinth/modules/gitweb/views.py:89 msgid "Edit repository" -msgstr "" +msgstr "Промяна на хранилище" #: plinth/modules/help/__init__.py:35 msgid "Documentation" -msgstr "" +msgstr "Документация" #: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20 #: plinth/templates/help-menu.html:21 plinth/templates/index.html:128 msgctxt "User guide" msgid "Manual" -msgstr "" +msgstr "Ръководство" #: plinth/modules/help/__init__.py:43 #: plinth/modules/help/templates/help_support.html:9 #: plinth/modules/help/views.py:43 plinth/templates/help-menu.html:27 #: plinth/templates/help-menu.html:28 msgid "Get Support" -msgstr "" +msgstr "Получаване на помощ" #: plinth/modules/help/__init__.py:47 #: plinth/modules/help/templates/help_feedback.html:9 @@ -2208,12 +2247,12 @@ msgstr "Подаване на обратна връзка" #: plinth/modules/help/views.py:31 plinth/templates/help-menu.html:39 #: plinth/templates/help-menu.html:40 msgid "Contribute" -msgstr "" +msgstr "Допринасяне" #: plinth/modules/help/__init__.py:55 plinth/templates/help-menu.html:46 #: plinth/templates/help-menu.html:47 msgid "About" -msgstr "" +msgstr "За проекта" #: plinth/modules/help/templates/help_about.html:17 #: plinth/modules/upgrades/templates/upgrades_configure.html:26 @@ -2340,7 +2379,7 @@ msgstr "" #: plinth/modules/help/templates/help_index.html:12 #: plinth/templates/help-menu.html:8 plinth/templates/help-menu.html:14 msgid "Help" -msgstr "" +msgstr "Помощ" #: plinth/modules/help/templates/help_index.html:16 #, python-format @@ -3055,11 +3094,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3099,15 +3133,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -3177,11 +3211,11 @@ msgstr "" #: plinth/modules/names/components.py:12 msgid "All" -msgstr "" +msgstr "Всички" #: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 msgid "All web apps" -msgstr "" +msgstr "Всички приложения за уеб" #: plinth/modules/names/components.py:24 msgid "Secure Shell" @@ -3549,14 +3583,14 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:36 msgid "Edit connection" -msgstr "" +msgstr "Редактиране на връзката" #: plinth/modules/networks/templates/connection_show.html:36 #: plinth/modules/wireguard/templates/wireguard_show_client.html:72 #: plinth/modules/wireguard/templates/wireguard_show_server.html:73 #: plinth/templates/base.html:156 plinth/templates/base.html:157 msgid "Edit" -msgstr "" +msgstr "Редактиране" #: plinth/modules/networks/templates/connection_show.html:43 #: plinth/modules/networks/templates/connections_list.html:61 @@ -3780,7 +3814,7 @@ msgstr "" #: plinth/modules/networks/templates/connections_edit.html:20 #: plinth/modules/networks/views.py:236 plinth/modules/networks/views.py:320 msgid "Edit Connection" -msgstr "" +msgstr "Редактиране на връзката" #: plinth/modules/networks/templates/connections_list.html:8 msgid "Connections" @@ -4513,11 +4547,11 @@ msgstr "" #: plinth/modules/performance/__init__.py:43 msgid "System Monitoring" -msgstr "" +msgstr "Наблюдение на системата" #: plinth/modules/power/__init__.py:14 msgid "Restart or shut down the system." -msgstr "" +msgstr "Рестартирайте или изключете системата." #: plinth/modules/power/__init__.py:31 msgid "Power" @@ -4815,11 +4849,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -4887,7 +4921,7 @@ msgstr "" #: plinth/modules/samba/views.py:67 msgid "Home Share" -msgstr "" +msgstr "Домашен дял" #: plinth/modules/samba/views.py:102 msgid "Share enabled." @@ -6970,27 +7004,27 @@ msgstr "" #: plinth/templates/base.html:107 msgid " Home" -msgstr "" +msgstr " Начало" #: plinth/templates/base.html:110 msgid "Home" -msgstr "" +msgstr "Начало" #: plinth/templates/base.html:115 msgid " Apps" -msgstr "" +msgstr " Приложения" #: plinth/templates/base.html:119 msgid "Apps" -msgstr "" +msgstr "Приложения" #: plinth/templates/base.html:124 msgid " System" -msgstr "" +msgstr " Системни" #: plinth/templates/base.html:128 msgid "System" -msgstr "" +msgstr "Системни" #: plinth/templates/base.html:163 plinth/templates/base.html:164 msgid "Change password" @@ -7019,7 +7053,7 @@ msgstr "" #: plinth/templates/clients-button.html:25 msgid "Client Apps" -msgstr "" +msgstr "Клиентски приложения" #: plinth/templates/clients.html:17 msgid "Web" @@ -7105,7 +7139,7 @@ msgstr "" #: plinth/templates/index.html:137 msgid "Homepage" -msgstr "" +msgstr "Страница" #: plinth/templates/index.html:140 msgid "Source Code" diff --git a/plinth/locale/bn/LC_MESSAGES/django.po b/plinth/locale/bn/LC_MESSAGES/django.po index b756eb6cd..14654b352 100644 --- a/plinth/locale/bn/LC_MESSAGES/django.po +++ b/plinth/locale/bn/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-06-16 07:33+0000\n" "Last-Translator: Oymate \n" "Language-Team: Bengali Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Enabled" +msgid "My Email Aliases" +msgstr "সক্রিয়" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Enabled" +msgid "Manage Aliases for Mailbox" +msgstr "সক্রিয়" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 #, fuzzy #| msgid "Domain" msgid "Primary domain" msgstr "ডোমেন" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Enabled" msgid "Aliases" msgstr "সক্রিয়" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "সক্রিয়" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "নিষ্ক্রিয়" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Enabled" msgid "Manage Aliases" msgstr "সক্রিয়" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Disabled" -msgid "Disable" -msgstr "নিষ্ক্রিয়" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enabled" -msgid "Enable" -msgstr "সক্রিয়" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Enabled" msgid "Manage Spam" msgstr "সক্রিয়" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -1928,6 +1954,19 @@ msgstr "" msgid "Service/Port" msgstr "সেবা/পোর্ট" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "সক্রিয়" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "নিষ্ক্রিয়" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "অনুমোদিত" @@ -3014,11 +3053,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3058,15 +3092,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -4774,11 +4808,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -7211,6 +7245,16 @@ msgstr "" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "নিষ্ক্রিয়" + +#, fuzzy +#~| msgid "Enabled" +#~ msgid "Enable" +#~ msgstr "সক্রিয়" + #, fuzzy #~| msgid "Domain" #~ msgid "domain" diff --git a/plinth/locale/cs/LC_MESSAGES/django.po b/plinth/locale/cs/LC_MESSAGES/django.po index 30e0be228..f4aff5d7c 100644 --- a/plinth/locale/cs/LC_MESSAGES/django.po +++ b/plinth/locale/cs/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" -"PO-Revision-Date: 2022-02-07 23:55+0000\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" +"PO-Revision-Date: 2022-03-04 12:58+0000\n" "Last-Translator: Jiří Podhorecký \n" "Language-Team: Czech \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Generator: Weblate 4.11-dev\n" +"X-Generator: Weblate 4.11.1-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -888,7 +888,7 @@ msgid "List" msgstr "Výpis" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -909,7 +909,7 @@ msgstr "správce" msgid "Configuration updated." msgstr "Nastavení aktualizována." -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -978,6 +978,7 @@ msgid "Serving Domains" msgstr "Obsluhované domény" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -1005,7 +1006,7 @@ msgstr "Obnovení IP adresy a domén" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1601,13 +1602,6 @@ msgstr "" "název DNS, dostane odpověď s vaší aktuální IP adresou." #: plinth/modules/dynamicdns/__init__.py:41 -#, fuzzy -#| 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." msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1618,7 +1612,7 @@ msgstr "" "GnuDIP na adrese ddns.freedombox.org nebo můžete najít bezplatné služby založené na " "aktualizaci URL na adrese freedns.afraid.org." +"\"_blank\">freedns.afraid.org." #: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" @@ -1704,10 +1698,8 @@ msgid "GnuDIP" msgstr "GnuDIP" #: plinth/modules/dynamicdns/forms.py:57 -#, fuzzy -#| msgid "other update URL" msgid "Other update URL" -msgstr "další aktualizace URL" +msgstr "Další aktualizace URL" #: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" @@ -1751,10 +1743,8 @@ msgid "Use IPv6 instead of IPv4" msgstr "Použijte IPv6 místo IPv4" #: plinth/modules/dynamicdns/forms.py:123 -#, fuzzy -#| msgid "secrets required" msgid "This field is required." -msgstr "požadovaná tajemství" +msgstr "Toto pole je povinné." #: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 @@ -1771,6 +1761,7 @@ msgid "Status" msgstr "Stav" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "Doména" @@ -1780,50 +1771,36 @@ msgid "Last update" msgstr "Minulá aktualizace" #: plinth/modules/dynamicdns/templates/dynamicdns.html:21 -#, fuzzy -#| msgid "IP address" msgid "IP Address" msgstr "IP adresa" #: plinth/modules/dynamicdns/templates/dynamicdns.html:32 -#, fuzzy -#| msgid "Access" msgid "Success" -msgstr "Přístup" +msgstr "Úspěšné" #: plinth/modules/dynamicdns/templates/dynamicdns.html:36 -#, fuzzy -#| msgid "failed" msgid "Failed" -msgstr "selhalo" +msgstr "Selhalo" #: plinth/modules/dynamicdns/templates/dynamicdns.html:52 -#, fuzzy -#| msgid "No libraries available." msgid "No status available." -msgstr "Nejsou k dispozici žádné knihovny." +msgstr "Stav není k dispozici." #: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 -#, fuzzy -#| msgid "Connection Name" msgid "Connection timed out" -msgstr "Název připojení" +msgstr "Vypršel časový limit připojení" #: plinth/modules/dynamicdns/views.py:25 msgid "Could not find server" -msgstr "" +msgstr "Nelze nalézt server" #: plinth/modules/dynamicdns/views.py:27 -#, fuzzy -#| msgid "Delete connection" msgid "Server refused connection" -msgstr "Smazat připojení" +msgstr "Server odmítl připojení" #: plinth/modules/dynamicdns/views.py:28 -#, fuzzy -#| msgid "Auto-update" msgid "Already up-to-date" -msgstr "Automatická aktualizace" +msgstr "Již aktualizováno" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -1970,7 +1947,33 @@ msgstr "" "%(domainname)s. Doménu je možné nastavit na stránce nastavení systému." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" +"Jedná se o kompletní řešení e-mailového serveru využívající Postfix, Dovecot " +"a Rspamd. Postfix odesílá a přijímá e-maily. Dovecot umožňuje e-mailovým " +"klientům přistupovat k poštovní schránce pomocí protokolů IMAP a POP3. " +"Rspamd se zabývá nevyžádanou poštou." + +#: plinth/modules/email/__init__.py:31 +#, 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 "" +"Každý uživatel na {box_name} dostane e-mailovou adresu jako user@" +"mydomain.example. Budou také dostávat poštu ze všech adres, které vypadají " +"jako user+foo@mydomain.example. Dále mohou ke své e-mailové adrese přidávat " +"aliasy. Potřebné aliasy, jako například \"postmaster\", se vytvoří " +"automaticky a ukazují na prvního uživatele-administrátora." + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." @@ -1978,7 +1981,7 @@ msgstr "" "Aplikace Roundcube poskytuje " "uživatelům webové rozhraní pro přístup k e-mailu." -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." @@ -1986,31 +1989,27 @@ msgstr "" "Během instalace budou odinstalovány všechny ostatní e-mailové servery v " "systému." -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "Postfix / Dovecot" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "E-mailový Server" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "Běží na Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" +msgstr "Moje e-mailové aliasy" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "Integrace Postfix-Dovecot SASL" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" +msgstr "Správa aliasů pro poštovní schránku" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "Mapy aliasů služby Postfix" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "Filtry příchozí a odchozí pošty" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "Primární doména" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." @@ -2018,89 +2017,102 @@ msgstr "" "Maily jsou přijímány pro všechny domény nakonfigurované v systému. Z nich " "vyberte tu nejdůležitější." -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "Nový alias (bez @domain)" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "Obsahuje nepovolené znaky" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "Musí začínat a končit písmeny a-z nebo 0-9" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "Nemůže být číslo" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "Aliasy" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Zapnuto" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Vypnuto" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "K-9 Mail" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "FairEmail" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "Správa aliasů" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "Nemáte žádné e-mailové aliasy." -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "Vypnout" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "Zapnout" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "Vytvořit nový e-mailový alias" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Přidat" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "Správa spamu" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "Záznamy DNS" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" +"Pro správnou funkci poštovního serveru je třeba na primární doméně ručně " +"přidat následující záznamy DNS." + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "TTL" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "Třída" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "Priorita" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "Váha" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Port" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "Hostitel / cíl / hodnota" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2149,6 +2161,19 @@ msgstr "" msgid "Service/Port" msgstr "Služba/port" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Zapnuto" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Vypnuto" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Umožněno" @@ -3430,11 +3455,6 @@ msgstr "Pokud je vypnuto, postavy hráčů nemohou zemřít nebo se zranit." msgid "Address" msgstr "Adresa" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Port" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3486,15 +3506,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -5484,11 +5504,11 @@ msgstr "Ghost Commander - Samba plugin" msgid "VLC media player" msgstr "VLC media player" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "GNOME soubory" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -7083,11 +7103,6 @@ msgid "Frequent feature updates activated." msgstr "Aktivovány časté aktualizace funkcí." #: plinth/modules/users/__init__.py:29 -#, fuzzy -#| msgid "" -#| "Create and managed 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." msgid "" "Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " @@ -8241,6 +8256,24 @@ msgstr "%(percentage)s%% dokončeno" msgid "Gujarati" msgstr "gudžarátština" +#~ msgid "Powered by Postfix, Dovecot & Rspamd" +#~ msgstr "Běží na Postfix, Dovecot & Rspamd" + +#~ msgid "Postfix-Dovecot SASL integration" +#~ msgstr "Integrace Postfix-Dovecot SASL" + +#~ msgid "Postfix alias maps" +#~ msgstr "Mapy aliasů služby Postfix" + +#~ msgid "Inbound and outbound mail filters" +#~ msgstr "Filtry příchozí a odchozí pošty" + +#~ msgid "Disable" +#~ msgstr "Vypnout" + +#~ msgid "Enable" +#~ msgstr "Zapnout" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Zapnout dynamické DNS" diff --git a/plinth/locale/da/LC_MESSAGES/django.po b/plinth/locale/da/LC_MESSAGES/django.po index b9422197d..4526e0c47 100644 --- a/plinth/locale/da/LC_MESSAGES/django.po +++ b/plinth/locale/da/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Danish brugernavn@%(domainname)s. Du kan konfigurere systemets " "domæne på Konfigurer siden." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Chat Server" msgid "Email Server" msgstr "Chatserver" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Libraries" +msgid "My Email Aliases" +msgstr "Håndter samlinger" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Libraries" +msgid "Manage Aliases for Mailbox" +msgstr "Håndter samlinger" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" msgid "Primary domain" msgstr "Primær forbindelse" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Manage Libraries" msgid "Aliases" msgstr "Håndter samlinger" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Aktiveret" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Deaktiveret" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 #, fuzzy #| msgid "Enable Roundcube" msgid "Roundcube" msgstr "Aktiver Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Manage Libraries" msgid "Manage Aliases" msgstr "Håndter samlinger" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Disabled" -msgid "Disable" -msgstr "Deaktiveret" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enabled" -msgid "Enable" -msgstr "Aktiveret" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "Create a new backup" msgid "Create a new email alias" msgstr "Opret en ny sikkerhedskopi" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 #, fuzzy #| msgid "Address" msgid "Add" msgstr "Adresse" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Create User" msgid "Manage Spam" msgstr "Opret Bruger" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Port" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2170,6 +2196,19 @@ msgstr "" msgid "Service/Port" msgstr "Tjeneste/Port" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Aktiveret" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Deaktiveret" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Tilladt" @@ -3476,11 +3515,6 @@ msgstr "" msgid "Address" msgstr "Adresse" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Port" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3522,15 +3556,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -5518,11 +5552,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -8322,6 +8356,16 @@ msgstr "%(percentage)s%% færdig" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "Deaktiveret" + +#, fuzzy +#~| msgid "Enabled" +#~ msgid "Enable" +#~ msgstr "Aktiveret" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Aktiver Dynamisk DNS" diff --git a/plinth/locale/de/LC_MESSAGES/django.po b/plinth/locale/de/LC_MESSAGES/django.po index 52ebefc8d..3c2e13053 100644 --- a/plinth/locale/de/LC_MESSAGES/django.po +++ b/plinth/locale/de/LC_MESSAGES/django.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" -"PO-Revision-Date: 2022-02-02 08:55+0000\n" -"Last-Translator: ikmaak \n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" +"PO-Revision-Date: 2022-03-04 12:58+0000\n" +"Last-Translator: Johannes Keyser \n" "Language-Team: German \n" "Language: de\n" @@ -19,7 +19,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 4.11-dev\n" +"X-Generator: Weblate 4.11.1-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -912,7 +912,7 @@ msgid "List" msgstr "Auflisten" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -933,7 +933,7 @@ msgstr "Admin" msgid "Configuration updated." msgstr "Konfiguration aktualisiert." -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -1004,6 +1004,7 @@ msgid "Serving Domains" msgstr "Domains bedienen" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -1031,7 +1032,7 @@ msgstr "IP-Adresse und Domänen aktualisieren" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1639,13 +1640,6 @@ msgstr "" "fragt, erhält er eine Antwort mit Ihrer aktuellen IP-Adresse." #: plinth/modules/dynamicdns/__init__.py:41 -#, fuzzy -#| 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." msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1742,10 +1736,8 @@ msgid "GnuDIP" msgstr "GnuDIP" #: plinth/modules/dynamicdns/forms.py:57 -#, fuzzy -#| msgid "other update URL" msgid "Other update URL" -msgstr "andere Update-URL" +msgstr "Andere Update-URL" #: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" @@ -1789,10 +1781,8 @@ msgid "Use IPv6 instead of IPv4" msgstr "Verwenden Sie IPv6 statt IPv4" #: plinth/modules/dynamicdns/forms.py:123 -#, fuzzy -#| msgid "secrets required" msgid "This field is required." -msgstr "Secrets erforderlich" +msgstr "Dieses Feld ist erforderlich." #: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 @@ -1809,6 +1799,7 @@ msgid "Status" msgstr "Status" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "Domain" @@ -1818,50 +1809,36 @@ msgid "Last update" msgstr "Letztes Update" #: plinth/modules/dynamicdns/templates/dynamicdns.html:21 -#, fuzzy -#| msgid "IP address" msgid "IP Address" msgstr "IP-Adresse" #: plinth/modules/dynamicdns/templates/dynamicdns.html:32 -#, fuzzy -#| msgid "Access" msgid "Success" -msgstr "Zugriff" +msgstr "Erfolg" #: plinth/modules/dynamicdns/templates/dynamicdns.html:36 -#, fuzzy -#| msgid "failed" msgid "Failed" -msgstr "gescheitert" +msgstr "Gescheitert" #: plinth/modules/dynamicdns/templates/dynamicdns.html:52 -#, fuzzy -#| msgid "No libraries available." msgid "No status available." -msgstr "Keine Bibliotheken verfügbar." +msgstr "Kein Status verfügbar." #: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 -#, fuzzy -#| msgid "Connection Name" msgid "Connection timed out" -msgstr "Verbindungsname" +msgstr "Zeitüberschreitung der Verbindung" #: plinth/modules/dynamicdns/views.py:25 msgid "Could not find server" -msgstr "" +msgstr "Server konnte nicht gefunden werden" #: plinth/modules/dynamicdns/views.py:27 -#, fuzzy -#| msgid "Delete connection" msgid "Server refused connection" -msgstr "Verbindung löschen" +msgstr "Server verweigert Verbindung" #: plinth/modules/dynamicdns/views.py:28 -#, fuzzy -#| msgid "Auto-update" msgid "Already up-to-date" -msgstr "Automatisches Update" +msgstr "Bereits auf dem neuesten Stand" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -2013,7 +1990,33 @@ msgstr "" "auf der Seite Systemeinstellungen " "konfigurieren." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" +"Dies ist eine vollständige E-Mail-Serverlösung, die Postfix, Dovecot und " +"Rspamd verwendet. Postfix sendet und empfängt E-Mails. Dovecot ermöglicht E" +"-Mail-Clients den Zugriff auf Ihre Mailbox über IMAP und POP3. Rspamd " +"kümmert sich um Spam." + +#: plinth/modules/email/__init__.py:31 +#, 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 "" +"Jeder Benutzer der {box_name} erhält eine E-Mail-Adresse wie benutzer@meine-" +"domain.beispiel. Man erhält auch E-Mails von allen Adressen wie benutzer+bla" +"@meine-domain.beispiel. Außerdem können alle Benutzer ihrer E-Mail-Adresse " +"Aliasnamen hinzufügen. Notwendige Aliase wie \"postmaster\" werden " +"automatisch erstellt und verweisen auf den ersten Admin-Benutzer." + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." @@ -2021,7 +2024,7 @@ msgstr "" "Roundcube App bietet eine " "Weboberfläche für den Zugriff auf E-Mails." -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." @@ -2029,31 +2032,27 @@ msgstr "" "Während der Installation werden alle anderen E-Mail-Server im System " "deinstalliert." -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "Postfix/Dovecot" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "E-Mail Server" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "Betrieben mit Postfix, Dovecot und Rspamd" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" +msgstr "Meine E-Mail-Aliase" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "Postfix-Dovecot SASL-Integration" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" +msgstr "Aliase des Postfachs verwalten" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "Postfix-Alias-Maps" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "Filter für eingehende und ausgehende Mails" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "Primäre Domain" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." @@ -2061,89 +2060,102 @@ msgstr "" "E-Mails werden für alle im System konfigurierten Domänen empfangen. Wählen " "Sie unter diesen die wichtigste aus." -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "Neuer Alias (ohne @Domäne)" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "Enthält unzulässige Zeichen" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "Muss mit a-z oder 0-9 beginnen und enden" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "Kann keine Zahl sein" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "Aliase" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Aktiviert" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Deaktiviert" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "K-9 Mail" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "FairEmail" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "Aliase verwalten" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "Sie haben keine E-Mail-Aliase." -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "Deaktivieren" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "Aktivieren" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "Einen neuen E-Mail-Alias erstellen" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Hinzufügen" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "Spam verwalten" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "DNS-Einträge" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" +"Die folgenden DNS-Einträge müssen manuell zu Ihrer primären Domain " +"hinzugefügt werden, damit der Mailserver korrekt funktioniert." + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "TTL" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "Klasse" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "Priorität" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "Gewicht" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Port" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "Host/Ziel/Wert" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2191,6 +2203,19 @@ msgstr "" msgid "Service/Port" msgstr "Dienst/Port" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Aktiviert" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Deaktiviert" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Erlaubt" @@ -3500,11 +3525,6 @@ msgstr "" msgid "Address" msgstr "Adresse" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Port" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3557,15 +3577,15 @@ msgstr "" msgid "vlc" msgstr "VLC" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "Kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "Yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "Totem" @@ -5588,11 +5608,11 @@ msgstr "Ghost Commander - Samba-Plugin" msgid "VLC media player" msgstr "VLC-Mediaplayer" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "GNOME-Dateinen" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -6990,11 +7010,11 @@ msgid "" "automatically at 02:00 causing all apps to be unavailable briefly." msgstr "" "Aktualisierungen werden täglich um 06:00 Uhr entsprechend der lokalen " -"Zeitzone ausgeführt. Stellen Sie Ihre Zeitzone in der App Datum & Zeit ein. " -"Die Apps werden nach der Aktualisierung neu gestartet, wodurch sie " +"Zeitzone ausgeführt. Stellen Sie Ihre Zeitzone in der App Datum & Zeit " +"ein. Die Apps werden nach der Aktualisierung neu gestartet, wodurch sie " "kurzzeitig nicht verfügbar sind. Wenn ein Neustart des Systems für notwendig " -"erachtet wird, erfolgt dieser automatisch um 02:00 Uhr, so dass alle " -"Anwendungen kurzzeitig nicht verfügbar sind." +"erachtet wird, erfolgt dieser automatisch um 02:00 Uhr, so dass alle Apps " +"kurzzeitig nicht verfügbar sind." #: plinth/modules/upgrades/__init__.py:74 #: plinth/modules/upgrades/__init__.py:129 @@ -7223,11 +7243,6 @@ msgid "Frequent feature updates activated." msgstr "Häufige Funktions-Updates aktiviert." #: plinth/modules/users/__init__.py:29 -#, fuzzy -#| msgid "" -#| "Create and managed 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." msgid "" "Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " @@ -8410,6 +8425,24 @@ msgstr "%(percentage)s %% abgeschlossen" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Powered by Postfix, Dovecot & Rspamd" +#~ msgstr "Betrieben mit Postfix, Dovecot und Rspamd" + +#~ msgid "Postfix-Dovecot SASL integration" +#~ msgstr "Postfix-Dovecot SASL-Integration" + +#~ msgid "Postfix alias maps" +#~ msgstr "Postfix-Alias-Maps" + +#~ msgid "Inbound and outbound mail filters" +#~ msgstr "Filter für eingehende und ausgehende Mails" + +#~ msgid "Disable" +#~ msgstr "Deaktivieren" + +#~ msgid "Enable" +#~ msgstr "Aktivieren" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Dynamisches DNS einschalten" diff --git a/plinth/locale/django.pot b/plinth/locale/django.pot index 422858d38..3341552aa 100644 --- a/plinth/locale/django.pot +++ b/plinth/locale/django.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -822,7 +822,7 @@ msgid "List" msgstr "" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -843,7 +843,7 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -906,6 +906,7 @@ msgid "Serving Domains" msgstr "" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -933,7 +934,7 @@ msgstr "" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1590,6 +1591,7 @@ msgid "Status" msgstr "" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "" @@ -1748,131 +1750,155 @@ msgid "" "Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -1913,6 +1939,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -2999,11 +3038,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3043,15 +3077,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -4759,11 +4793,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" diff --git a/plinth/locale/el/LC_MESSAGES/django.po b/plinth/locale/el/LC_MESSAGES/django.po index 0fe94f6f6..058fd1242 100644 --- a/plinth/locale/el/LC_MESSAGES/django.po +++ b/plinth/locale/el/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-04-14 04:27+0000\n" "Last-Translator: Michalis \n" "Language-Team: Greek . Μπορείτε να ρυθμίσετε το όνομα της υπηρεσίας στο Ρυθμίστε page." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Chat Server" msgid "Email Server" msgstr "Διακομιστής συνομιλίας" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Repositories" +msgid "My Email Aliases" +msgstr "Διαχείριση αποθετηρίων" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Repositories" +msgid "Manage Aliases for Mailbox" +msgstr "Διαχείριση αποθετηρίων" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" msgid "Primary domain" msgstr "Κύρια σύνδεση" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Manage Repositories" msgid "Aliases" msgstr "Διαχείριση αποθετηρίων" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Ενεργοποιήθηκε" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Απενεργοποιήθηκε" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 #, fuzzy #| msgid "Mozilla Thunderbird" msgid "Thunderbird" msgstr "Mozilla Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Manage Repositories" msgid "Manage Aliases" msgstr "Διαχείριση αποθετηρίων" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Disabled" -msgid "Disable" -msgstr "Απενεργοποιήθηκε" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enabled" -msgid "Enable" -msgstr "Ενεργοποιήθηκε" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "Create a new backup" msgid "Create a new email alias" msgstr "Δημιουργία νέου αντιγράφου ασφαλείας" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Προσθήκη" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Manage Snapshots" msgid "Manage Spam" msgstr "Διαχείριση στιγμιότυπων" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Θύρα" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2234,6 +2260,19 @@ msgstr "" msgid "Service/Port" msgstr "Υπηρεσία/θύρα" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Ενεργοποιήθηκε" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Απενεργοποιήθηκε" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Επιτρέπεται" @@ -3574,11 +3613,6 @@ msgstr "" msgid "Address" msgstr "Διεύθυνση" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Θύρα" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3631,15 +3665,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -5639,13 +5673,13 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 #, fuzzy #| msgid "GNOME Calendar" msgid "GNOME Files" msgstr "GNOME Calendar" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -8538,6 +8572,16 @@ msgstr "ολοκληρώθηκε το %(percentage)s%%" msgid "Gujarati" msgstr "Gujarati" +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "Απενεργοποιήθηκε" + +#, fuzzy +#~| msgid "Enabled" +#~ msgid "Enable" +#~ msgstr "Ενεργοποιήθηκε" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Ενεργοποιήστε το Δυναμικό DNS" diff --git a/plinth/locale/es/LC_MESSAGES/django.po b/plinth/locale/es/LC_MESSAGES/django.po index 717067a86..fd5bd8865 100644 --- a/plinth/locale/es/LC_MESSAGES/django.po +++ b/plinth/locale/es/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2022-02-07 23:55+0000\n" "Last-Translator: Jaime Marquínez Ferrándiz \n" @@ -911,7 +911,7 @@ msgid "List" msgstr "Listar" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -932,7 +932,7 @@ msgstr "Admin" msgid "Configuration updated." msgstr "Configuración actualizada." -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -1003,6 +1003,7 @@ msgid "Serving Domains" msgstr "Dominios en servicio" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -1030,7 +1031,7 @@ msgstr "Actualizar direcciones IP y dominios" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1801,6 +1802,7 @@ msgid "Status" msgstr "Estado" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "Dominio" @@ -2006,7 +2008,24 @@ msgstr "" "será parecida a username@%(domainname)s. Puede configurar su dominio " "en la página de sistema Configurar." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." @@ -2014,7 +2033,7 @@ msgstr "" "Roundcube app proporciona un " "interfaz web para que los usuarios accedan a correo electrónico." -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." @@ -2022,35 +2041,35 @@ msgstr "" "Durante la instalación se desinstalará cualquier otro servidor de correo " "electrónico que haya en el sistema." -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Chat Server" msgid "Email Server" msgstr "Servidor de Chat" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "Implementado con Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Libraries" +msgid "My Email Aliases" +msgstr "Administrar bibliotecas" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "Integración SASL Postfix-Dovecot" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Libraries" +msgid "Manage Aliases for Mailbox" +msgstr "Administrar bibliotecas" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "Mapas Alias de Postfix" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "Filtros de entrada y salida de correo" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" msgid "Primary domain" msgstr "Conexión principal" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." @@ -2058,103 +2077,110 @@ msgstr "" "Se reciben correos para todo dominio configurado en el sistema. Selecciona " "el más importante entre ellos." -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "Nuevo alias (sin @dominio)" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "Contiene caracteres no permitidos" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "Tiene que empezar y terminar con a-z ó 0-9" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "No puede ser un número" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Manage Libraries" msgid "Aliases" msgstr "Administrar bibliotecas" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Activado" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Desactivado" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 #, fuzzy #| msgid "Mozilla Thunderbird" msgid "Thunderbird" msgstr "Mozilla Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "K-9 Mail" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "FairEmail" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Manage Libraries" msgid "Manage Aliases" msgstr "Administrar bibliotecas" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "No tienes aliases de correo electrónico." -#: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Disabled" -msgid "Disable" -msgstr "Desactivado" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enabled" -msgid "Enable" -msgstr "Activado" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "Create a new backup" msgid "Create a new email alias" msgstr "Crear una copia de seguridad nueva" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Añadir" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Manage Snapshots" msgid "Manage Spam" msgstr "Gestionar instantáneas" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Puerto" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2202,6 +2228,19 @@ msgstr "" msgid "Service/Port" msgstr "Servicio/Puerto" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Activado" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Desactivado" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Permitido" @@ -3502,11 +3541,6 @@ msgstr "" msgid "Address" msgstr "Dirección" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Puerto" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3556,15 +3590,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "Kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "Totem" @@ -5551,11 +5585,11 @@ msgstr "Ghost Commander - Plugin de Samba" msgid "VLC media player" msgstr "Reproductor VLC" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "GNOME Archivos" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -8352,6 +8386,28 @@ msgstr "%(percentage)s%% completado" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Powered by Postfix, Dovecot & Rspamd" +#~ msgstr "Implementado con Postfix, Dovecot & Rspamd" + +#~ msgid "Postfix-Dovecot SASL integration" +#~ msgstr "Integración SASL Postfix-Dovecot" + +#~ msgid "Postfix alias maps" +#~ msgstr "Mapas Alias de Postfix" + +#~ msgid "Inbound and outbound mail filters" +#~ msgstr "Filtros de entrada y salida de correo" + +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "Desactivado" + +#, fuzzy +#~| msgid "Enabled" +#~ msgid "Enable" +#~ msgstr "Activado" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Activar DNS dinámico" diff --git a/plinth/locale/fa/LC_MESSAGES/django.po b/plinth/locale/fa/LC_MESSAGES/django.po index 365dea7b8..40ceba687 100644 --- a/plinth/locale/fa/LC_MESSAGES/django.po +++ b/plinth/locale/fa/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-09-07 11:34+0000\n" "Last-Translator: Seyed mohammad ali Hosseinifard \n" "Language-Team: Persian Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Web Server" msgid "Email Server" msgstr "سرور وب" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Create Connection" +msgid "My Email Aliases" +msgstr "ساختن اتصال" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Create Connection" +msgid "Manage Aliases for Mailbox" +msgstr "ساختن اتصال" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" msgid "Primary domain" msgstr "اتصال اصلی" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Create Connection" msgid "Aliases" msgstr "ساختن اتصال" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "فعال" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "غیرفعال" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Create Connection" msgid "Manage Aliases" msgstr "ساختن اتصال" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Disabled" -msgid "Disable" -msgstr "غیرفعال" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enabled" -msgid "Enable" -msgstr "فعال" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "Create Connection" msgid "Create a new email alias" msgstr "ساختن اتصال" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 #, fuzzy #| msgid "Address" msgid "Add" msgstr "نشانی" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Delete %(name)s" msgid "Manage Spam" msgstr "پاک‌کردن %(name)s" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2163,6 +2189,19 @@ msgstr "" msgid "Service/Port" msgstr "سرویس/پورت" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "فعال" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "غیرفعال" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "مجاز" @@ -3406,11 +3445,6 @@ msgstr "" msgid "Address" msgstr "نشانی" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3450,15 +3484,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -5289,11 +5323,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -7922,6 +7956,16 @@ msgstr "" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "غیرفعال" + +#, fuzzy +#~| msgid "Enabled" +#~ msgid "Enable" +#~ msgstr "فعال" + #~ msgid "Enable Dynamic DNS" #~ msgstr "فعال‌سازی DNS متغیر" diff --git a/plinth/locale/fake/LC_MESSAGES/django.po b/plinth/locale/fake/LC_MESSAGES/django.po index ea05ad996..1cce16565 100644 --- a/plinth/locale/fake/LC_MESSAGES/django.po +++ b/plinth/locale/fake/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Plinth 0.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2016-01-31 22:24+0530\n" "Last-Translator: Sunil Mohan Adapa \n" "Language-Team: Plinth Developers USERNAME@%(domainname)s. YOU CAN SETUP YOUR DOMAIN ON THE SYSTEM " "CONFIGURE PAGE." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Web Server" msgid "Email Server" msgstr "WEB SERVER" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Create User" +msgid "My Email Aliases" +msgstr "CREATE USER" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Create User" +msgid "Manage Aliases for Mailbox" +msgstr "CREATE USER" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" msgid "Primary domain" msgstr "PRIMARY CONNECTION" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Create User" msgid "Aliases" msgstr "CREATE USER" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "ENABLED" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "DISABLED" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 #, fuzzy #| msgid "Enable Roundcube" msgid "Roundcube" msgstr "ENABLE ROUNDCUBE" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Create User" msgid "Manage Aliases" msgstr "CREATE USER" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Disabled" -msgid "Disable" -msgstr "DISABLED" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enabled" -msgid "Enable" -msgstr "ENABLED" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "PageKite Account" msgid "Create a new email alias" msgstr "PAGEKITE ACCOUNT" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 #, fuzzy #| msgid "Address" msgid "Add" msgstr "ADDRESS" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Create User" msgid "Manage Spam" msgstr "CREATE USER" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "PORT" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, fuzzy, python-brace-format #| msgid "" @@ -2266,6 +2292,19 @@ msgstr "" msgid "Service/Port" msgstr "SERVICE/PORT" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "ENABLED" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "DISABLED" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "PERMITTED" @@ -3543,11 +3582,6 @@ msgstr "" msgid "Address" msgstr "ADDRESS" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "PORT" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3589,15 +3623,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -5602,11 +5636,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -8417,6 +8451,16 @@ msgstr "%(percentage)s%% COMPLETE" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "DISABLED" + +#, fuzzy +#~| msgid "Enabled" +#~ msgid "Enable" +#~ msgstr "ENABLED" + #~ msgid "Enable Dynamic DNS" #~ msgstr "ENABLE DYNAMIC DNS" diff --git a/plinth/locale/fr/LC_MESSAGES/django.po b/plinth/locale/fr/LC_MESSAGES/django.po index 4ee38b288..b3068173c 100644 --- a/plinth/locale/fr/LC_MESSAGES/django.po +++ b/plinth/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2022-01-22 21:55+0000\n" "Last-Translator: Coucouf \n" "Language-Team: French Configurer." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." @@ -2029,7 +2048,7 @@ msgstr "" "L’appli Roundcube propose une " "interface Web pour accéder à vos courriels." -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." @@ -2037,31 +2056,31 @@ msgstr "" "Durant l’installation, les autres serveurs de courriels qui seraient " "présents sur le système seront désinstallés." -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "Serveur de courriel" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "Propulsé par Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Aliases" +msgid "My Email Aliases" +msgstr "Configurer des alias" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "Intégration de l'authentification SASL Postfix-Dovecot" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Aliases" +msgid "Manage Aliases for Mailbox" +msgstr "Configurer des alias" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "Table d’alias Postfix" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "Filtres de courriels entrants et sortants" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "Domaine principal" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." @@ -2069,89 +2088,100 @@ msgstr "" "Les courriels sont reçus pour tous les domaines configurés sur ce système. " "Parmi ces domaines, choisissez le domaine par défaut." -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "Nouvel alias (sans le @domaine)" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "Contient des caractères interdits" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "Doit commencer par a-z ou 0-9" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "Ne peut être un nombre" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "Liste d’alias" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Activé" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Désactivé" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "K-9 Mail" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "FairEmail" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "Configurer des alias" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "Aucun alias de courriel configuré." -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "Désactiver" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "Activer" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "Créer un nouvel alias de courriel" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Ajouter" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "Configurer le filtrage des pourriels" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Port" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2201,6 +2231,19 @@ msgstr "" msgid "Service/Port" msgstr "Service/Port" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Activé" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Désactivé" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Permis" @@ -3521,11 +3564,6 @@ msgstr "" msgid "Address" msgstr "Adresse" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Port" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3578,15 +3616,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -5622,11 +5660,11 @@ msgstr "Module Samba pour Ghost Commander" msgid "VLC media player" msgstr "Lecteur multimédia VLC" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "Fichiers GNOME" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -8461,6 +8499,24 @@ msgstr "%(percentage)s%% effectué" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Powered by Postfix, Dovecot & Rspamd" +#~ msgstr "Propulsé par Postfix, Dovecot & Rspamd" + +#~ msgid "Postfix-Dovecot SASL integration" +#~ msgstr "Intégration de l'authentification SASL Postfix-Dovecot" + +#~ msgid "Postfix alias maps" +#~ msgstr "Table d’alias Postfix" + +#~ msgid "Inbound and outbound mail filters" +#~ msgstr "Filtres de courriels entrants et sortants" + +#~ msgid "Disable" +#~ msgstr "Désactiver" + +#~ msgid "Enable" +#~ msgstr "Activer" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Activer le DNS dynamique" diff --git a/plinth/locale/gl/LC_MESSAGES/django.po b/plinth/locale/gl/LC_MESSAGES/django.po index 3a6c12122..297519724 100644 --- a/plinth/locale/gl/LC_MESSAGES/django.po +++ b/plinth/locale/gl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Galician Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Web Server" msgid "Email Server" msgstr "Servidor web" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -1921,6 +1947,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -3011,11 +3050,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3055,15 +3089,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -4775,11 +4809,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" diff --git a/plinth/locale/gu/LC_MESSAGES/django.po b/plinth/locale/gu/LC_MESSAGES/django.po index 10457ee18..5ae36edac 100644 --- a/plinth/locale/gu/LC_MESSAGES/django.po +++ b/plinth/locale/gu/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Gujarati username@%(domainname)s. તમે સિસ્ટમ પર તમારા ડોમેન સેટ કરી શકો છો રૂપરેખાંકિત કરો પાનું." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Chat Server" msgid "Email Server" msgstr "ચેટ સર્વર" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Documentation" +msgid "My Email Aliases" +msgstr "દસ્તાવેજીકરણ" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Documentation" +msgid "Manage Aliases for Mailbox" +msgstr "દસ્તાવેજીકરણ" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Documentation" msgid "Aliases" msgstr "દસ્તાવેજીકરણ" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "સક્ષમ કરેલું" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "અક્ષમ કરેલું" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Documentation" msgid "Manage Aliases" msgstr "દસ્તાવેજીકરણ" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Disabled" -msgid "Disable" -msgstr "અક્ષમ કરેલું" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enabled" -msgid "Enable" -msgstr "સક્ષમ કરેલું" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Documentation" msgid "Manage Spam" msgstr "દસ્તાવેજીકરણ" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2107,6 +2133,19 @@ msgstr "" msgid "Service/Port" msgstr "સેવા/પોર્ટ" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "સક્ષમ કરેલું" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "અક્ષમ કરેલું" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "પરવાનગી છે" @@ -3235,11 +3274,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3279,15 +3313,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -5023,11 +5057,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -7540,6 +7574,16 @@ msgstr "" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "અક્ષમ કરેલું" + +#, fuzzy +#~| msgid "Enabled" +#~ msgid "Enable" +#~ msgstr "સક્ષમ કરેલું" + #~ msgid "Enable Dynamic DNS" #~ msgstr "ડાયનેમિક DNS સક્ષમ કરો" diff --git a/plinth/locale/hi/LC_MESSAGES/django.po b/plinth/locale/hi/LC_MESSAGES/django.po index 4657b2c36..c398e68ba 100644 --- a/plinth/locale/hi/LC_MESSAGES/django.po +++ b/plinth/locale/hi/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Hindi username@%(domainname)s. आपका डोमेन सिसटेम पर सेटअप कर सकता है कॉन्फ़िगर पेजॅ." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Chat Server" msgid "Email Server" msgstr "चाट सर्वर" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Create User" +msgid "My Email Aliases" +msgstr "यूसर बनाये" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Create User" +msgid "Manage Aliases for Mailbox" +msgstr "यूसर बनाये" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" msgid "Primary domain" msgstr "मुख्य कनेक्शन" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Create User" msgid "Aliases" msgstr "यूसर बनाये" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "सक्षम किया गया है" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "अक्षम किया गया है" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "राउंडक्यूब" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 #, fuzzy #| msgid "Mozilla Thunderbird" msgid "Thunderbird" msgstr "मोज़िला थंडरबर्ड" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Create User" msgid "Manage Aliases" msgstr "यूसर बनाये" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Disabled" -msgid "Disable" -msgstr "अक्षम किया गया है" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enabled" -msgid "Enable" -msgstr "सक्षम किया गया है" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "Create Account" msgid "Create a new email alias" msgstr "अकाउंट बनाएँ" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "जोड़ें" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Manage Snapshots" msgid "Manage Spam" msgstr "स्नैपशॉटस प्रबंधित करें" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "पोर्ट" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2214,6 +2240,19 @@ msgstr "" msgid "Service/Port" msgstr "सर्विस/पोर्ट" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "सक्षम किया गया है" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "अक्षम किया गया है" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "अनुमति दिया गया है" @@ -3477,11 +3516,6 @@ msgstr "अक्षम होने पर खिलाड़ियों न msgid "Address" msgstr "ऍड्रेस" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "पोर्ट" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3521,15 +3555,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -5484,13 +5518,13 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 #, fuzzy #| msgid "GNOME Calendar" msgid "GNOME Files" msgstr "गनोम कैलेंडर" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -8308,6 +8342,16 @@ msgstr "%(percentage)s%% पूर्ण" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "अक्षम किया गया है" + +#, fuzzy +#~| msgid "Enabled" +#~ msgid "Enable" +#~ msgstr "सक्षम किया गया है" + #~ msgid "Enable Dynamic DNS" #~ msgstr "डायनेमिक डिएनएस सक्षम करें" diff --git a/plinth/locale/hu/LC_MESSAGES/django.po b/plinth/locale/hu/LC_MESSAGES/django.po index d55abc7fc..0bdca560c 100644 --- a/plinth/locale/hu/LC_MESSAGES/django.po +++ b/plinth/locale/hu/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" -"PO-Revision-Date: 2022-02-09 20:04+0000\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" +"PO-Revision-Date: 2022-02-28 14:55+0000\n" "Last-Translator: Benedek Nagy \n" "Language-Team: Hungarian \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 4.11-dev\n" +"X-Generator: Weblate 4.11.1-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -900,7 +900,7 @@ msgid "List" msgstr "Listáz" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -921,7 +921,7 @@ msgstr "Adminisztrál" msgid "Configuration updated." msgstr "Beállítások frissítve." -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -992,6 +992,7 @@ msgid "Serving Domains" msgstr "Kiszolgált tartományok" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -1019,7 +1020,7 @@ msgstr "IP-címek és tartományok frissítése" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1791,6 +1792,7 @@ msgid "Status" msgstr "Állapot" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "Domain" @@ -1993,7 +1995,24 @@ msgstr "" "fognak kinézni: username@%(domainname)s. Beállíthatod a rendszered " "domainnevét a Beállítások lapon." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." @@ -2001,38 +2020,38 @@ msgstr "" "Roundcube alkalmazás webes felületet " "biztosít a felhasználók számára e-mail eléréséhez." -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" "A telepítés során a rendszeren lévő összes egyéb e-mail-szerver törlődni fog." -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "E-mail-szerver" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "Postfix, Dovecot & Rspamd által működtetve" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Aliases" +msgid "My Email Aliases" +msgstr "Álnevek kezelése" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "Postfix-Dovecot SASL integráció" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Aliases" +msgid "Manage Aliases for Mailbox" +msgstr "Álnevek kezelése" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "Postfix álnév leképezések" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "Bejövő és kimenő levélszűrők" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "Elsődleges domain" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." @@ -2040,89 +2059,100 @@ msgstr "" "A rendszerben konfigurált összes domain számára érkeznek levelek. Ezek közül " "válaszd ki a legfontosabbat." -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "Új álnév (@domain nélkül)" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "Nem megengedett karaktereket tartalmaz" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "A-z vagy 0-9 karakterekkel kell kezdődnie és végződnie" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "Nem lehet szám" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "Álnevek" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Engedélyezve" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Letiltva" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "K-9 Mail" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "FairEmail" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "Álnevek kezelése" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "Nincsenek e-mail álneveid." -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "Letiltás" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "Engedélyezés" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "Új e-mail álnév létrehozása" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Hozzáadás" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "Spam kezelése" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Port" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2171,6 +2201,19 @@ msgstr "" msgid "Service/Port" msgstr "Szolgáltatás/port" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Engedélyezve" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Letiltva" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Engedélyezett" @@ -3470,11 +3513,6 @@ msgstr "Ha le van tiltva, a játékosok nem fognak meghalni, ill. megsérülni." msgid "Address" msgstr "Cím" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Port" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3526,15 +3564,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -5541,11 +5579,11 @@ msgstr "Ghost Commander - Samba plugin" msgid "VLC media player" msgstr "VLC media player" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "GNOME Fájlok" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -6312,7 +6350,7 @@ msgstr "" #: plinth/modules/ssh/__init__.py:45 msgid "Secure Shell (SSH) Server" -msgstr "Biztonságos parancsértelmező (SSH) szerver" +msgstr "SSH-szerver" #: plinth/modules/ssh/forms.py:13 msgid "Disable password authentication" @@ -8337,6 +8375,24 @@ msgstr "befejezettségi szint: %(percentage)s%%" msgid "Gujarati" msgstr "Gudzsaráti" +#~ msgid "Powered by Postfix, Dovecot & Rspamd" +#~ msgstr "Postfix, Dovecot & Rspamd által működtetve" + +#~ msgid "Postfix-Dovecot SASL integration" +#~ msgstr "Postfix-Dovecot SASL integráció" + +#~ msgid "Postfix alias maps" +#~ msgstr "Postfix álnév leképezések" + +#~ msgid "Inbound and outbound mail filters" +#~ msgstr "Bejövő és kimenő levélszűrők" + +#~ msgid "Disable" +#~ msgstr "Letiltás" + +#~ msgid "Enable" +#~ msgstr "Engedélyezés" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Dynamic DNS engedélyezése" diff --git a/plinth/locale/id/LC_MESSAGES/django.po b/plinth/locale/id/LC_MESSAGES/django.po index dc469b94c..22e7bac49 100644 --- a/plinth/locale/id/LC_MESSAGES/django.po +++ b/plinth/locale/id/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Indonesian (FreedomBox)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-06-24 00:42+0000\n" "Last-Translator: Reza Almanda \n" "Language-Team: Indonesian nama pengguna @%(domainname)s. Anda dapat mengatur " "domain Anda pada sistem Konfigurasi halaman." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Chat Server" msgid "Email Server" msgstr "Server obrolan" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Libraries" +msgid "My Email Aliases" +msgstr "Kelola Perpustakaan" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Libraries" +msgid "Manage Aliases for Mailbox" +msgstr "Kelola Perpustakaan" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" msgid "Primary domain" msgstr "Koneksi utama" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Manage Libraries" msgid "Aliases" msgstr "Kelola Perpustakaan" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Aktifkan" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Non-Aktifkan" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 #, fuzzy #| msgid "Mozilla Thunderbird" msgid "Thunderbird" msgstr "Mozilla Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Manage Libraries" msgid "Manage Aliases" msgstr "Kelola Perpustakaan" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Disabled" -msgid "Disable" -msgstr "Non-Aktifkan" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enabled" -msgid "Enable" -msgstr "Aktifkan" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "Create a new backup" msgid "Create a new email alias" msgstr "Buat cadangan baru" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Tambah" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Manage Snapshots" msgid "Manage Spam" msgstr "Kelola Snapshot" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Port" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2167,6 +2193,19 @@ msgstr "" msgid "Service/Port" msgstr "Layanan/Port" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Aktifkan" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Non-Aktifkan" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Diizinkan" @@ -3407,11 +3446,6 @@ msgstr "" msgid "Address" msgstr "Address" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Port" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3451,15 +3485,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -5171,11 +5205,11 @@ msgstr "Ghost Commander - plugin Samba" msgid "VLC media player" msgstr "VLC media player" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -7696,6 +7730,16 @@ msgstr "%(percentage)s %% selesai" msgid "Gujarati" msgstr "Bahasa Gujarat" +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "Non-Aktifkan" + +#, fuzzy +#~| msgid "Enabled" +#~ msgid "Enable" +#~ msgstr "Aktifkan" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Aktifkan Dynamic DNS" diff --git a/plinth/locale/it/LC_MESSAGES/django.po b/plinth/locale/it/LC_MESSAGES/django.po index 3fea9a826..64bc4e6f4 100644 --- a/plinth/locale/it/LC_MESSAGES/django.po +++ b/plinth/locale/it/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2022-01-06 22:41+0000\n" "Last-Translator: Dietmar \n" "Language-Team: Italian . Configura " "la pagina ." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "Server e-mail" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Aliases" +msgid "My Email Aliases" +msgstr "Gestire gli alias" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Aliases" +msgid "Manage Aliases for Mailbox" +msgstr "Gestire gli alias" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "Dominio primario" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "Alias" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Abilitato" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Disabilitato" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "K-9 Mail" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "FairEmail" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "Gestire gli alias" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "Disattivare" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "Attivare" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "Creare un nuovo alias e-mail" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "Gestire lo spam" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Porta" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2125,6 +2155,19 @@ msgstr "" msgid "Service/Port" msgstr "Servizio/Porta" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Abilitato" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Disabilitato" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Permesso" @@ -3427,11 +3470,6 @@ msgstr "" msgid "Address" msgstr "Indirizzo" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Porta" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3471,15 +3509,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -5313,11 +5351,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -7764,6 +7802,12 @@ msgstr "%(percentage)s%% completata" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Disable" +#~ msgstr "Disattivare" + +#~ msgid "Enable" +#~ msgstr "Attivare" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Abilita DNS Dinamico" diff --git a/plinth/locale/ja/LC_MESSAGES/django.po b/plinth/locale/ja/LC_MESSAGES/django.po index 0f7b20fa1..381109a45 100644 --- a/plinth/locale/ja/LC_MESSAGES/django.po +++ b/plinth/locale/ja/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-05-20 12:32+0000\n" "Last-Translator: Jacque Fresco \n" "Language-Team: Japanese Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -1915,6 +1941,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -3001,11 +3040,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3045,15 +3079,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -4761,11 +4795,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" diff --git a/plinth/locale/kn/LC_MESSAGES/django.po b/plinth/locale/kn/LC_MESSAGES/django.po index 0ccdc0cd4..9124b30b6 100644 --- a/plinth/locale/kn/LC_MESSAGES/django.po +++ b/plinth/locale/kn/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2020-07-16 16:41+0000\n" "Last-Translator: Yogesh \n" "Language-Team: Kannada Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -1915,6 +1941,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -3001,11 +3040,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3045,15 +3079,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -4761,11 +4795,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" diff --git a/plinth/locale/lt/LC_MESSAGES/django.po b/plinth/locale/lt/LC_MESSAGES/django.po index d1de6e1be..0b8052966 100644 --- a/plinth/locale/lt/LC_MESSAGES/django.po +++ b/plinth/locale/lt/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-02-22 10:50+0000\n" "Last-Translator: Kornelijus Tvarijanavičius \n" "Language-Team: Lithuanian Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -1916,6 +1942,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -3002,11 +3041,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3046,15 +3080,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -4762,11 +4796,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" diff --git a/plinth/locale/nb/LC_MESSAGES/django.po b/plinth/locale/nb/LC_MESSAGES/django.po index 1ff59b8b9..35934ff10 100644 --- a/plinth/locale/nb/LC_MESSAGES/django.po +++ b/plinth/locale/nb/LC_MESSAGES/django.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-12-27 05:53+0000\n" "Last-Translator: Petter Reinholdtsen \n" "Language-Team: Norwegian Bokmål username@%(domainname)s. Du kan sette opp ditt domene på " "systemsiden Configure ." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Chat Server" msgid "Email Server" msgstr "Nettprat-tjener" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Libraries" +msgid "My Email Aliases" +msgstr "Håndter biblioteker" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Libraries" +msgid "Manage Aliases for Mailbox" +msgstr "Håndter biblioteker" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" msgid "Primary domain" msgstr "Primærtilkobling" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Manage Libraries" msgid "Aliases" msgstr "Håndter biblioteker" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Aktivert" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Deaktivert" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 #, fuzzy #| msgid "Mozilla Thunderbird" msgid "Thunderbird" msgstr "Mozilla Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Manage Libraries" msgid "Manage Aliases" msgstr "Håndter biblioteker" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Disabled" -msgid "Disable" -msgstr "Deaktivert" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enabled" -msgid "Enable" -msgstr "Aktivert" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "Create a new backup" msgid "Create a new email alias" msgstr "Lag ny sikkerhetskopi" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Legg til" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Manage Snapshots" msgid "Manage Spam" msgstr "Behandle avbildninger" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Port" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2185,6 +2211,19 @@ msgstr "" msgid "Service/Port" msgstr "Tjeneste/Port" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Aktivert" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Deaktivert" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Tillatt" @@ -3494,11 +3533,6 @@ msgstr "" msgid "Address" msgstr "Adresse" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Port" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3550,15 +3584,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -5550,13 +5584,13 @@ msgstr "" msgid "VLC media player" msgstr "VLC-mediaspiller" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 #, fuzzy #| msgid "GNOME Calendar" msgid "GNOME Files" msgstr "GNOME-kalender" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -8362,6 +8396,16 @@ msgstr "%(percentage)s%% fullført" msgid "Gujarati" msgstr "Gujarati" +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "Deaktivert" + +#, fuzzy +#~| msgid "Enabled" +#~ msgid "Enable" +#~ msgstr "Aktivert" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Aktiver dynamisk DNS (Dynamic DNS)" diff --git a/plinth/locale/nl/LC_MESSAGES/django.po b/plinth/locale/nl/LC_MESSAGES/django.po index 01a5408a9..628e64b1b 100644 --- a/plinth/locale/nl/LC_MESSAGES/django.po +++ b/plinth/locale/nl/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" -"PO-Revision-Date: 2022-02-02 08:55+0000\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" +"PO-Revision-Date: 2022-03-06 11:18+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Dutch \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 4.11-dev\n" +"X-Generator: Weblate 4.12-dev\n" "X-Language: nl_NL\n" "X-Source-Language: C\n" @@ -902,7 +902,7 @@ msgid "List" msgstr "Overzicht" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -923,7 +923,7 @@ msgstr "Admin" msgid "Configuration updated." msgstr "Configuratie bijgewerkt." -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -993,6 +993,7 @@ msgid "Serving Domains" msgstr "Bediende domeinen" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -1020,7 +1021,7 @@ msgstr "IP adressen en domeinen verversen" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1621,13 +1622,6 @@ msgstr "" "vraagt wordt dit beantwoord met het juiste IP adres." #: plinth/modules/dynamicdns/__init__.py:41 -#, fuzzy -#| 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." msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1637,8 +1631,8 @@ msgstr "" "Wie op zoek is naar een gratis dynamic DNS account, kan misschien een gratis " "GnuDIP service vinden bij ddns.freedombox.org of gratis free update URL gebaseerde " -"diensten van " -"freedns.afraid.org." +"diensten van freedns.afraid.org." #: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" @@ -1722,8 +1716,6 @@ msgid "GnuDIP" msgstr "GnuDIP" #: plinth/modules/dynamicdns/forms.py:57 -#, fuzzy -#| msgid "other update URL" msgid "Other update URL" msgstr "Andere update-URL" @@ -1769,10 +1761,8 @@ msgid "Use IPv6 instead of IPv4" msgstr "Gebruik IPv6 in plaats van IPv4" #: plinth/modules/dynamicdns/forms.py:123 -#, fuzzy -#| msgid "secrets required" msgid "This field is required." -msgstr "geheim vereist" +msgstr "Dit veld is vereist." #: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 @@ -1789,6 +1779,7 @@ msgid "Status" msgstr "Status" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "Domein" @@ -1798,50 +1789,36 @@ msgid "Last update" msgstr "Laatste bijwerking" #: plinth/modules/dynamicdns/templates/dynamicdns.html:21 -#, fuzzy -#| msgid "IP address" msgid "IP Address" -msgstr "IP adres" +msgstr "IP Adres" #: plinth/modules/dynamicdns/templates/dynamicdns.html:32 -#, fuzzy -#| msgid "Access" msgid "Success" -msgstr "Toegang" +msgstr "Succes" #: plinth/modules/dynamicdns/templates/dynamicdns.html:36 -#, fuzzy -#| msgid "failed" msgid "Failed" -msgstr "mislukt" +msgstr "Mislukt" #: plinth/modules/dynamicdns/templates/dynamicdns.html:52 -#, fuzzy -#| msgid "No libraries available." msgid "No status available." -msgstr "Geen bibliotheken beschikbaar." +msgstr "Geen status beschikbaar." #: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 -#, fuzzy -#| msgid "Connection Name" msgid "Connection timed out" -msgstr "Verbindingsnaam" +msgstr "Time-out voor verbinding" #: plinth/modules/dynamicdns/views.py:25 msgid "Could not find server" -msgstr "" +msgstr "Kon server niet vinden" #: plinth/modules/dynamicdns/views.py:27 -#, fuzzy -#| msgid "Delete connection" msgid "Server refused connection" -msgstr "Verwijder verbinding" +msgstr "Server weigert verbinding" #: plinth/modules/dynamicdns/views.py:28 -#, fuzzy -#| msgid "Last update" msgid "Already up-to-date" -msgstr "Laatste bijwerking" +msgstr "Al bijgewerkt" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -1990,7 +1967,32 @@ msgstr "" "eruit als username@%(domainname)s. Het domein kan worden ingesteld op " "de Instellingen pagina." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" +"Dit is een complete e-mailserveroplossing op basis van Postfix, Dovecot en " +"Rspamd. Postfix verstuurt en ontvangt e-mails. Met Dovecot hebben e-" +"mailclients toegang tot uw mailbox via IMAP en POP3. Rspamd filtert op spam." + +#: plinth/modules/email/__init__.py:31 +#, 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 "" +"Elke gebruiker op {box_name} krijgt een email adres zoals user@" +"mydomain.example. Zij zullen ook mail ontvangen van alle adressen die lijken " +"op user+foo@mydomain.example. Verder kunnen ze aliassen toevoegen aan hun " +"email adres. Noodzakelijke aliassen zoals \"postmaster\" worden automatisch " +"aangemaakt en wijzen naar de eerste admin gebruiker." + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." @@ -1998,7 +2000,7 @@ msgstr "" "Roundcube app biedt gebruikers een " "webinterface om toegang te krijgen tot e-mail." -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." @@ -2006,31 +2008,27 @@ msgstr "" "Tijdens de installatie worden alle andere e-mailservers in het systeem " "verwijderd." -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "Postfix/Dovecot" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "E-mailserver" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "Maakt gebruik van Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" +msgstr "Mijn e-mail aliassen" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "Postfix-Dovecot SASL-integratie" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" +msgstr "Aliassen voor postvak beheren" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "Postfix aliasverwijzingen" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "Filters voor inkomende en uitgaande e-mail" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "Primair domein" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." @@ -2038,89 +2036,102 @@ msgstr "" "Mails worden ontvangen voor alle domeinen die in het systeem zijn " "geconfigureerd. Selecteer het belangrijkste domein." -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "Nieuwe alias (zonder @domein)" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "Bevat ongeldige tekens" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "Moet beginnen en eindigen met a-z of 0-9" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "Kan geen getal zijn" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "Aliassen" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Ingeschakeld" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Uitgeschakeld" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "K-9 Mail" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "FairEmail" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "Aliassen beheren" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "Je hebt geen e-mailaliassen." -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "Uitschakelen" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "Inschakelen" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "Nieuwe e-mailalias maken" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Toevoegen" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "Spam beheren" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "DNS Records" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" +"De volgende DNS-records moeten handmatig worden toegevoegd aan het primaire " +"domein om de e-mailserver goed te laten werken." + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "TTL" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "Klasse" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "Prioriteit" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "Gewicht" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Poort" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "Host/Target/Value" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2168,6 +2179,19 @@ msgstr "" msgid "Service/Port" msgstr "Dienst/Poort" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Ingeschakeld" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Uitgeschakeld" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Toegestaan" @@ -3472,11 +3496,6 @@ msgstr "Indien uitgeschakeld, kunnen spelers niet sterven of schade oplopen." msgid "Address" msgstr "Adres" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Poort" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3528,15 +3547,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -5540,11 +5559,11 @@ msgstr "Ghost Commander - Samba plugin" msgid "VLC media player" msgstr "VLC mediaspeler" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "GNOME Bestanden" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -7154,11 +7173,6 @@ msgid "Frequent feature updates activated." msgstr "Tussentijdse Software Updates zijn ingeschakeld." #: plinth/modules/users/__init__.py:29 -#, fuzzy -#| msgid "" -#| "Create and managed 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." msgid "" "Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " @@ -8322,6 +8336,24 @@ msgstr "%(percentage)s%% voltooid" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Powered by Postfix, Dovecot & Rspamd" +#~ msgstr "Maakt gebruik van Postfix, Dovecot & Rspamd" + +#~ msgid "Postfix-Dovecot SASL integration" +#~ msgstr "Postfix-Dovecot SASL-integratie" + +#~ msgid "Postfix alias maps" +#~ msgstr "Postfix aliasverwijzingen" + +#~ msgid "Inbound and outbound mail filters" +#~ msgstr "Filters voor inkomende en uitgaande e-mail" + +#~ msgid "Disable" +#~ msgstr "Uitschakelen" + +#~ msgid "Enable" +#~ msgstr "Inschakelen" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Dynamic DNS Inschakelen" diff --git a/plinth/locale/pl/LC_MESSAGES/django.po b/plinth/locale/pl/LC_MESSAGES/django.po index f5b4277d1..a4deb2397 100644 --- a/plinth/locale/pl/LC_MESSAGES/django.po +++ b/plinth/locale/pl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-03-03 16:50+0000\n" "Last-Translator: Karol Werner \n" "Language-Team: Polish . Możesz ustawić swoją domenę na stronie Konfiguruj." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Chat Server" msgid "Email Server" msgstr "Serwer czatu" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Create Repository" +msgid "My Email Aliases" +msgstr "Utwórz repozytorium" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Create Repository" +msgid "Manage Aliases for Mailbox" +msgstr "Utwórz repozytorium" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 #, fuzzy #| msgid "Domain" msgid "Primary domain" msgstr "Domena" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Create Repository" msgid "Aliases" msgstr "Utwórz repozytorium" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Włączony" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Wyłączony" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Create Repository" msgid "Manage Aliases" msgstr "Utwórz repozytorium" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Disabled" -msgid "Disable" -msgstr "Wyłączony" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enabled" -msgid "Enable" -msgstr "Włączony" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "Create a new backup" msgid "Create a new email alias" msgstr "Utwórz nową kopię zapasową" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Delete %(name)s" msgid "Manage Spam" msgstr "Usuń %(name)s" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2145,6 +2171,19 @@ msgstr "" msgid "Service/Port" msgstr "Usługa/Port" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Włączony" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Wyłączony" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Zezwolono" @@ -3330,11 +3369,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3374,15 +3408,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -5133,11 +5167,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -7766,6 +7800,16 @@ msgstr "" msgid "Gujarati" msgstr "Gujarati" +#, fuzzy +#~| msgid "Disabled" +#~ msgid "Disable" +#~ msgstr "Wyłączony" + +#, fuzzy +#~| msgid "Enabled" +#~ msgid "Enable" +#~ msgstr "Włączony" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Zezwól na Dynamic DNS" diff --git a/plinth/locale/pt/LC_MESSAGES/django.po b/plinth/locale/pt/LC_MESSAGES/django.po index 22959612c..59a10bdab 100644 --- a/plinth/locale/pt/LC_MESSAGES/django.po +++ b/plinth/locale/pt/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-05-08 22:33+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Web Server" msgid "Email Server" msgstr "Servidor Web" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Create new repository" +msgid "My Email Aliases" +msgstr "Criar novo repositório" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Create new repository" +msgid "Manage Aliases for Mailbox" +msgstr "Criar novo repositório" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 #, fuzzy #| msgid "Domain Name" msgid "Primary domain" msgstr "Nome de Domínio" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Create new repository" msgid "Aliases" msgstr "Criar novo repositório" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Create new repository" msgid "Manage Aliases" msgstr "Criar novo repositório" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Applications" -msgid "Disable" -msgstr "Aplicações" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enable DNSSEC" -msgid "Enable" -msgstr "Ativar DNSSEC" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "Create a new backup" msgid "Create a new email alias" msgstr "Criar novo backup" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Create new repository" msgid "Manage Spam" msgstr "Criar novo repositório" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2040,6 +2066,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -3199,11 +3238,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3243,15 +3277,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -5003,11 +5037,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -7544,6 +7578,16 @@ msgstr "%(percentage)s%% concluída" msgid "Gujarati" msgstr "Gujarati" +#, fuzzy +#~| msgid "Applications" +#~ msgid "Disable" +#~ msgstr "Aplicações" + +#, fuzzy +#~| msgid "Enable DNSSEC" +#~ msgid "Enable" +#~ msgstr "Ativar DNSSEC" + #, fuzzy #~| msgid "Configuration updated" #~ msgid "Maximum players configuration updated" diff --git a/plinth/locale/ru/LC_MESSAGES/django.po b/plinth/locale/ru/LC_MESSAGES/django.po index e0d7e914e..a5e9ba6f8 100644 --- a/plinth/locale/ru/LC_MESSAGES/django.po +++ b/plinth/locale/ru/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" -"PO-Revision-Date: 2022-02-07 23:55+0000\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" +"PO-Revision-Date: 2022-02-22 19:54+0000\n" "Last-Translator: Nikita Epifanov \n" "Language-Team: Russian \n" @@ -900,7 +900,7 @@ msgid "List" msgstr "Список" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -921,7 +921,7 @@ msgstr "Админ" msgid "Configuration updated." msgstr "Конфигурация обновлена." -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -990,6 +990,7 @@ msgid "Serving Domains" msgstr "Обслуживание доменов" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -1017,7 +1018,7 @@ msgstr "Обновите IP-адреса и домены" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1617,13 +1618,6 @@ msgstr "" "запрашивает DNS-имя, они будут получать ответ ваш текущий IP-адрес." #: plinth/modules/dynamicdns/__init__.py:41 -#, fuzzy -#| 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." msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1717,10 +1711,8 @@ msgid "GnuDIP" msgstr "GnuDIP" #: plinth/modules/dynamicdns/forms.py:57 -#, fuzzy -#| msgid "other update URL" msgid "Other update URL" -msgstr "другой URL-адрес обновления" +msgstr "Другой URL-адрес обновления" #: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" @@ -1764,10 +1756,8 @@ msgid "Use IPv6 instead of IPv4" msgstr "Использовать IPv6 вместо IPv4" #: plinth/modules/dynamicdns/forms.py:123 -#, fuzzy -#| msgid "secrets required" msgid "This field is required." -msgstr "требуются секреты" +msgstr "Это поле обязательно." #: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 @@ -1784,6 +1774,7 @@ msgid "Status" msgstr "Статус" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "Домен" @@ -1793,50 +1784,36 @@ msgid "Last update" msgstr "Последнее обновление" #: plinth/modules/dynamicdns/templates/dynamicdns.html:21 -#, fuzzy -#| msgid "IP address" msgid "IP Address" -msgstr "IP-адрес" +msgstr "IP-адреса" #: plinth/modules/dynamicdns/templates/dynamicdns.html:32 -#, fuzzy -#| msgid "Access" msgid "Success" -msgstr "Доступ" +msgstr "Успешно" #: plinth/modules/dynamicdns/templates/dynamicdns.html:36 -#, fuzzy -#| msgid "failed" msgid "Failed" -msgstr "сбой" +msgstr "Неудачно" #: plinth/modules/dynamicdns/templates/dynamicdns.html:52 -#, fuzzy -#| msgid "No libraries available." msgid "No status available." -msgstr "Нет доступных библиотек." +msgstr "Статус недоступен." #: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 -#, fuzzy -#| msgid "Connection Name" msgid "Connection timed out" -msgstr "Имя подключения" +msgstr "Время соединения истекло" #: plinth/modules/dynamicdns/views.py:25 msgid "Could not find server" -msgstr "" +msgstr "Не удалось найти сервер" #: plinth/modules/dynamicdns/views.py:27 -#, fuzzy -#| msgid "Delete connection" msgid "Server refused connection" -msgstr "Удаление подключения" +msgstr "Сервер отказал в соединении" #: plinth/modules/dynamicdns/views.py:28 -#, fuzzy -#| msgid "Auto-update" msgid "Already up-to-date" -msgstr "Автообновление" +msgstr "Уже обновлено" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -1980,7 +1957,24 @@ msgstr "" "пользователей будет выглядеть как username@%(domainname)s. Вы можете " "настроить ваш домен на странице Настройка." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." @@ -1988,7 +1982,7 @@ msgstr "" "Приложение Roundcube предоставляет " "пользователям веб-интерфейс для доступа к электронной почте." -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." @@ -1996,31 +1990,31 @@ msgstr "" "Во время установки все другие почтовые серверы в системе будут " "деинсталлированы." -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "Сервер электронной почты" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "Работает на Postfix, Dovecot и Rspamd" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Aliases" +msgid "My Email Aliases" +msgstr "Управление псевдонимами" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "Интеграция SASL в Postfix-Dovecot" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Aliases" +msgid "Manage Aliases for Mailbox" +msgstr "Управление псевдонимами" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "Карты псевдонимов Postfix" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "Фильтры входящей и исходящей почты" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "Основной домен" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." @@ -2028,89 +2022,100 @@ msgstr "" "Почта принимается для всех доменов, настроенных в системе. Среди них " "выберите наиболее важный." -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "Новый псевдоним (без @домена)" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "Содержит недопустимые символы" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "Должен начинаться и заканчиваться на a-z или 0-9" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "Не может быть числом" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "Псевдонимы" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Включено" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Выключено" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "K-9 Mail" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "FairEmail" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "Управление псевдонимами" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "У вас нет псевдонимов электронной почты." -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "Выключить" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "Включить" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "Создать новый псевдоним электронной почты" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Добавить" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "Управление спамом" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Порт" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2160,6 +2165,19 @@ msgstr "" msgid "Service/Port" msgstr "Служба/Порт" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Включено" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Выключено" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Разрешено" @@ -3452,11 +3470,6 @@ msgstr "" msgid "Address" msgstr "Адрес" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Порт" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3508,15 +3521,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -5512,11 +5525,11 @@ msgstr "Ghost Commander - Samba плагин" msgid "VLC media player" msgstr "Медиаплеер VLC" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "Файлы GNOME" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -7115,11 +7128,6 @@ msgid "Frequent feature updates activated." msgstr "Активированы частые обновления функций." #: plinth/modules/users/__init__.py:29 -#, fuzzy -#| msgid "" -#| "Create and managed 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." msgid "" "Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " @@ -8283,6 +8291,24 @@ msgstr "%(percentage)s%% завершено" msgid "Gujarati" msgstr "Гуджарати" +#~ msgid "Powered by Postfix, Dovecot & Rspamd" +#~ msgstr "Работает на Postfix, Dovecot и Rspamd" + +#~ msgid "Postfix-Dovecot SASL integration" +#~ msgstr "Интеграция SASL в Postfix-Dovecot" + +#~ msgid "Postfix alias maps" +#~ msgstr "Карты псевдонимов Postfix" + +#~ msgid "Inbound and outbound mail filters" +#~ msgstr "Фильтры входящей и исходящей почты" + +#~ msgid "Disable" +#~ msgstr "Выключить" + +#~ msgid "Enable" +#~ msgstr "Включить" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Включение динамического DNS" diff --git a/plinth/locale/si/LC_MESSAGES/django.po b/plinth/locale/si/LC_MESSAGES/django.po index be7aad581..37464b888 100644 --- a/plinth/locale/si/LC_MESSAGES/django.po +++ b/plinth/locale/si/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-04-27 13:32+0000\n" "Last-Translator: HelaBasa \n" "Language-Team: Sinhala Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -1915,6 +1941,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -3001,11 +3040,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3045,15 +3079,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -4761,11 +4795,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" diff --git a/plinth/locale/sl/LC_MESSAGES/django.po b/plinth/locale/sl/LC_MESSAGES/django.po index e802b24d2..952df5fdb 100644 --- a/plinth/locale/sl/LC_MESSAGES/django.po +++ b/plinth/locale/sl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Slovenian Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Domain Name Server" msgid "Email Server" msgstr "Strežnik z imenom domene" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Create new repository" +msgid "My Email Aliases" +msgstr "Ustvari novo skladišče" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Create new repository" +msgid "Manage Aliases for Mailbox" +msgstr "Ustvari novo skladišče" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Create new repository" msgid "Aliases" msgstr "Ustvari novo skladišče" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Create new repository" msgid "Manage Aliases" msgstr "Ustvari novo skladišče" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enable DNSSEC" -msgid "Enable" -msgstr "Omogoči DNSSEC" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "Create remote backup repository" msgid "Create a new email alias" msgstr "Ustvari oddaljeno skladišče za rezervne kopije" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Create new repository" msgid "Manage Spam" msgstr "Ustvari novo skladišče" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2081,6 +2109,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -3195,11 +3236,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3239,15 +3275,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -4973,11 +5009,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -7472,6 +7508,11 @@ msgstr "" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Enable DNSSEC" +#~ msgid "Enable" +#~ msgstr "Omogoči DNSSEC" + #, fuzzy #~| msgid "Invalid hostname" #~ msgid "Enter a valid domain" diff --git a/plinth/locale/sq/LC_MESSAGES/django.po b/plinth/locale/sq/LC_MESSAGES/django.po index 2acb1b577..ab9210c9c 100644 --- a/plinth/locale/sq/LC_MESSAGES/django.po +++ b/plinth/locale/sq/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2022-02-06 23:23+0000\n" "Last-Translator: Besnik Bleta \n" "Language-Team: Albanian Formësoni e sistemit." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." @@ -2002,38 +2021,38 @@ msgstr "" "Aplikacioni Roundcube furnizon " "ndërfaqe web për përdoruesit për të përdorur email-in." -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" "Gjatë instalimit, çfarëdo shërbyesi tjetër email në sistem do të çinstalohet." -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "Shërbyes Email-i" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "Bazuar në Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Aliases" +msgid "My Email Aliases" +msgstr "Administroni Aliase" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "Ingetrim Postfix-Dovecot SASL" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Aliases" +msgid "Manage Aliases for Mailbox" +msgstr "Administroni Aliase" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "Harta aliasesh Postfix" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "Filtra email-esh të marrë dhe të dërguar" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "Përkatësi parësore" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." @@ -2041,89 +2060,100 @@ msgstr "" "Email-et merren për krejt përkatësitë e formësuara në sistem. Me këtyre, " "përzgjidhni një më të rëndësishmen." -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "Alias i ri (pa @përkatësi)" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "Përmban shenja të paligjshme" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "Duhet të fillojë dhe të përfundojë me a-z ose 0-9" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "S’mund të jetë një numër" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "Aliase" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "E aktivizuar" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "E çaktivizuar" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "K-9 Mail" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "FairEmail" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "Administroni Aliase" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "S’keni aliase emil-i." -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "Çaktivizoje" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "Aktivizoje" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "Krijoni një alias të ri email-i" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Shtoje" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "Administroni Të Padëshiruarat" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Portë" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2172,6 +2202,19 @@ msgstr "" msgid "Service/Port" msgstr "Shërbim/Portë" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "E aktivizuar" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "E çaktivizuar" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "E lejuar" @@ -3473,11 +3516,6 @@ msgstr "" msgid "Address" msgstr "Adresë" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Portë" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3529,15 +3567,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -5542,11 +5580,11 @@ msgstr "Ghost Commander - shtojcë për Samba" msgid "VLC media player" msgstr "Lojtësi VLC për media" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "Kartela GNOME" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -8328,6 +8366,24 @@ msgstr "%(percentage)s%% e plotësuar" msgid "Gujarati" msgstr "Gujaratase" +#~ msgid "Powered by Postfix, Dovecot & Rspamd" +#~ msgstr "Bazuar në Postfix, Dovecot & Rspamd" + +#~ msgid "Postfix-Dovecot SASL integration" +#~ msgstr "Ingetrim Postfix-Dovecot SASL" + +#~ msgid "Postfix alias maps" +#~ msgstr "Harta aliasesh Postfix" + +#~ msgid "Inbound and outbound mail filters" +#~ msgstr "Filtra email-esh të marrë dhe të dërguar" + +#~ msgid "Disable" +#~ msgstr "Çaktivizoje" + +#~ msgid "Enable" +#~ msgstr "Aktivizoje" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Aktivizo DNS Dinamik" diff --git a/plinth/locale/sr/LC_MESSAGES/django.po b/plinth/locale/sr/LC_MESSAGES/django.po index f455c78e4..bb50ee86e 100644 --- a/plinth/locale/sr/LC_MESSAGES/django.po +++ b/plinth/locale/sr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Serbian Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Domain Name Server" msgid "Email Server" msgstr "Domain Name Server" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enable DNSSEC" -msgid "Enable" -msgstr "Aktiviraj DNSSEC" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "Create a new backup" msgid "Create a new email alias" msgstr "Kreiraj novu rezervnu kopiju" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2008,6 +2032,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -3096,11 +3133,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3140,15 +3172,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -4868,11 +4900,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -7307,6 +7339,11 @@ msgstr "" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Enable DNSSEC" +#~ msgid "Enable" +#~ msgstr "Aktiviraj DNSSEC" + #, fuzzy #~| msgid "Service Discovery" #~ msgid "Service Alert" diff --git a/plinth/locale/sv/LC_MESSAGES/django.po b/plinth/locale/sv/LC_MESSAGES/django.po index 73bf2466b..cc464768d 100644 --- a/plinth/locale/sv/LC_MESSAGES/django.po +++ b/plinth/locale/sv/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" -"PO-Revision-Date: 2022-02-07 23:55+0000\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" +"PO-Revision-Date: 2022-02-17 16:58+0000\n" "Last-Translator: Michael Breidenbach \n" "Language-Team: Swedish \n" @@ -899,7 +899,7 @@ msgid "List" msgstr "Lista" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -920,7 +920,7 @@ msgstr "Admin" msgid "Configuration updated." msgstr "Konfiguration uppdaterad." -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -990,6 +990,7 @@ msgid "Serving Domains" msgstr "Betjäna domäner" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -1017,7 +1018,7 @@ msgstr "Uppdatera IP-adress och domäner" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1778,6 +1779,7 @@ msgid "Status" msgstr "Status" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "Domän" @@ -1818,7 +1820,7 @@ msgstr "Anslutningens namn" #: plinth/modules/dynamicdns/views.py:25 msgid "Could not find server" -msgstr "" +msgstr "Kunde inte hitta servern" #: plinth/modules/dynamicdns/views.py:27 #, fuzzy @@ -1976,7 +1978,24 @@ msgstr "" "kommer att se ut som användarnamn@%(domainname)s. Du kan ställa in " "din domän på systemet Konfigurera sidan." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." @@ -1984,38 +2003,38 @@ msgstr "" "Roundcube app ger användarna " "webbgränssnitt för att komma åt e-post." -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" "Under installationen avinstalleras alla andra e-postservrar i systemet." -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "E-postserver" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "Drivs av Postfix, Dovecot och Rspamd" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Aliases" +msgid "My Email Aliases" +msgstr "Hantera alias" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "Integrering av Postfix-Dovecot SASL" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Aliases" +msgid "Manage Aliases for Mailbox" +msgstr "Hantera alias" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "Postfix alias kartor" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "Filter för inkommande och utgående e-post" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "Primär domän" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." @@ -2023,89 +2042,100 @@ msgstr "" "E-post tas emot för alla domäner som konfigurerats i systemet. Välj den " "viktigaste av dessa." -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "Nytt alias (utan @domän)" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "Innehåller otillåtna tecken" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "Måste börja och sluta med a-z eller 0-9" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "Kan inte vara ett nummer" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "Aliasnamn" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Aktiverad" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Inaktiverad" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "K-9 Mail" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "FairEmail" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "Hantera alias" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "Du har inga e-postalias." -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "Avaktivera" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "Aktivera" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "Skapa ett nytt e -postalias" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Lägg till" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "Hantera skräppost" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Port" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2153,6 +2183,19 @@ msgstr "" msgid "Service/Port" msgstr "Service/Port" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Aktiverad" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Inaktiverad" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Tillåtna" @@ -3436,11 +3479,6 @@ msgstr "Om inaktiverat kan spelare inte dö eller få skador av något slag." msgid "Address" msgstr "Adress" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Port" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3491,15 +3529,15 @@ msgstr "" msgid "vlc" msgstr "Vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "Kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -5494,11 +5532,11 @@ msgstr "Ghost Commander - Samba plugin" msgid "VLC media player" msgstr "VLC-mediaspelare" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "GNOME Filer" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -8258,6 +8296,24 @@ msgstr "%(percentage)s %% färdigt" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Powered by Postfix, Dovecot & Rspamd" +#~ msgstr "Drivs av Postfix, Dovecot och Rspamd" + +#~ msgid "Postfix-Dovecot SASL integration" +#~ msgstr "Integrering av Postfix-Dovecot SASL" + +#~ msgid "Postfix alias maps" +#~ msgstr "Postfix alias kartor" + +#~ msgid "Inbound and outbound mail filters" +#~ msgstr "Filter för inkommande och utgående e-post" + +#~ msgid "Disable" +#~ msgstr "Avaktivera" + +#~ msgid "Enable" +#~ msgstr "Aktivera" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Aktivera Dynamisk DNS" diff --git a/plinth/locale/ta/LC_MESSAGES/django.po b/plinth/locale/ta/LC_MESSAGES/django.po index e38dd32d6..d0da3ffdc 100644 --- a/plinth/locale/ta/LC_MESSAGES/django.po +++ b/plinth/locale/ta/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -823,7 +823,7 @@ msgid "List" msgstr "" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -844,7 +844,7 @@ msgstr "" msgid "Configuration updated." msgstr "" -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -907,6 +907,7 @@ msgid "Serving Domains" msgstr "" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -934,7 +935,7 @@ msgstr "" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1591,6 +1592,7 @@ msgid "Status" msgstr "" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "" @@ -1749,131 +1751,155 @@ msgid "" "Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" msgstr "" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -1914,6 +1940,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -3000,11 +3039,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3044,15 +3078,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -4760,11 +4794,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" diff --git a/plinth/locale/te/LC_MESSAGES/django.po b/plinth/locale/te/LC_MESSAGES/django.po index c611471bd..dda1df8e4 100644 --- a/plinth/locale/te/LC_MESSAGES/django.po +++ b/plinth/locale/te/LC_MESSAGES/django.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" -"PO-Revision-Date: 2021-05-17 18:31+0000\n" -"Last-Translator: chilumula vamshi krishna \n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" +"PO-Revision-Date: 2022-03-02 12:27+0000\n" +"Last-Translator: James Valleroy \n" "Language-Team: Telugu \n" "Language: te\n" @@ -19,7 +19,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 4.7-dev\n" +"X-Generator: Weblate 4.11.1-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -66,10 +66,8 @@ msgstr "హెచ్చరిక! డొమైన్ పేరును తర #: plinth/forms.py:52 plinth/modules/coturn/forms.py:30 #: plinth/modules/mumble/forms.py:21 -#, fuzzy -#| msgid "Subdomain" msgid "TLS domain" -msgstr "ఉప డోమైన్ పేరు" +msgstr "TLS డోమైన్" #: plinth/forms.py:54 plinth/modules/coturn/forms.py:32 #: plinth/modules/mumble/forms.py:23 @@ -166,10 +164,12 @@ msgid "" "Enable an automatic backup schedule for data safety. Prefer an encrypted " "remote backup location or an extra attached disk." msgstr "" +"డేటా భద్రత కోసం ఆటోమేటిక్ బ్యాకప్ షెడ్యూల్‌ను ప్రారంభించండి. ఎన్‌క్రిప్టెడ్ రిమోట్ బ్యాకప్ లొకేషన్ లేదా అదనపు " +"అటాచ్డ్ డిస్క్‌ని ప్రాధాన్యం చూపు." #: plinth/modules/backups/__init__.py:205 msgid "Enable a Backup Schedule" -msgstr "" +msgstr "బ్యాకప్ షెడ్యూల్‌ను ప్రారంభించండి" #: plinth/modules/backups/__init__.py:209 #: plinth/modules/backups/__init__.py:256 @@ -184,12 +184,12 @@ msgid "" "A scheduled backup failed. Past {error_count} attempts for backup did not " "succeed. The latest error is: {error_message}" msgstr "" +"షెడ్యూల్ చేయబడిన బ్యాకప్ విఫలమైంది. బ్యాకప్ కోసం గత {error_count} ప్రయత్నాలు విజయవంతం కాలేదు. తాజా " +"లోపం: {error_message}" #: plinth/modules/backups/__init__.py:252 -#, fuzzy -#| msgid "Existing Backups" msgid "Error During Backup" -msgstr "ఇప్పటికే ఉన్న బ్యాకప్‌లు" +msgstr "బ్యాకప్ సమయంలో లోపం" #: plinth/modules/backups/forms.py:33 #, python-brace-format @@ -198,13 +198,15 @@ msgstr "{app}(బ్యాకప్ చేయడానికి డేటా ల #: plinth/modules/backups/forms.py:53 msgid "Enable scheduled backups" -msgstr "" +msgstr "షెడ్యూల్ చేయబడిన బ్యాకప్‌లను ప్రారంభించండి" #: plinth/modules/backups/forms.py:54 msgid "" "If enabled, a backup is taken every day, every week and every month. Older " "backups are removed." msgstr "" +"ప్రారంభించబడితే, ప్రతి రోజు, ప్రతి వారం మరియు ప్రతి నెల బ్యాకప్ తీసుకోబడుతుంది. పాత బ్యాకప్‌లు " +"తీసివేయబడతాయి." #: plinth/modules/backups/forms.py:58 msgid "Number of daily backups to keep" @@ -215,20 +217,24 @@ 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 "" +"ఈ అనేక తాజా బ్యాకప్‌లు ఉంచబడ్డాయి మరియు మిగిలినవి తీసివేయబడతాయి. \"0\" విలువ ఈ రకమైన బ్యాకప్‌లను " +"నిలిపివేస్తుంది. ప్రతి రోజు నిర్దిష్ట గంటలో ట్రిగ్గర్ చేయబడుతుంది." #: plinth/modules/backups/forms.py:64 msgid "Number of weekly backups to keep" -msgstr "" +msgstr "ఉంచడానికి వారంవారీ బ్యాకప్‌ల సంఖ్య" #: plinth/modules/backups/forms.py:66 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 "" +"ఈ అనేక తాజా బ్యాకప్‌లు ఉంచబడ్డాయి మరియు మిగిలినవి తీసివేయబడతాయి. \"0\" విలువ ఈ రకమైన బ్యాకప్‌లను " +"నిలిపివేస్తుంది. ప్రతి ఆదివారం నిర్దిష్ట గంటకు ట్రిగ్గర్ చేయబడుతుంది." #: plinth/modules/backups/forms.py:71 msgid "Number of monthly backups to keep" -msgstr "" +msgstr "ఉంచడానికి నెలవారీ బ్యాకప్‌ల సంఖ్య" #: plinth/modules/backups/forms.py:73 msgid "" @@ -236,14 +242,16 @@ msgid "" "disables backups of this type. Triggered at specified hour first day of " "every month." msgstr "" +"ఈ అనేక తాజా బ్యాకప్‌లు ఉంచబడ్డాయి మరియు మిగిలినవి తీసివేయబడతాయి. \"0\" విలువ ఈ రకమైన బ్యాకప్‌లను " +"నిలిపివేస్తుంది. ప్రతి నెలా మొదటి రోజు నిర్దేశిత గంటలో ట్రిగ్గర్ చేయబడుతుంది." #: plinth/modules/backups/forms.py:78 msgid "Hour of the day to trigger backup operation" -msgstr "" +msgstr "బ్యాకప్ ఆపరేషన్‌ని ట్రిగ్గర్ చేయడానికి రోజులో గంట" #: plinth/modules/backups/forms.py:79 msgid "In 24 hour format." -msgstr "" +msgstr "24 గంటల ఆకృతిలో." #: plinth/modules/backups/forms.py:82 plinth/modules/backups/forms.py:104 msgid "Included apps" @@ -313,13 +321,11 @@ msgstr "ఎన్క్రిప్షన్" msgid "" "\"Key in Repository\" means that a password-protected key is stored with the " "backup." -msgstr "" +msgstr "\"కీ ఇన్ రిపోజిటరీ\" అంటే పాస్‌వర్డ్-రక్షిత కీ బ్యాకప్‌తో నిల్వ చేయబడుతుంది." #: plinth/modules/backups/forms.py:176 -#, fuzzy -#| msgid "Create User" msgid "Key in Repository" -msgstr "వినియోగదారుని సృష్టించు" +msgstr "రిపోజిటరీలో కీ" #: plinth/modules/backups/forms.py:176 plinth/modules/searx/forms.py:15 msgid "None" @@ -346,7 +352,6 @@ msgid "The entered encryption passphrases do not match" msgstr "నమోదు చేసిన ఎన్క్రిప్షన్ ప్రవేశ పదబంధాలు సరిపోలడం లేదు" #: plinth/modules/backups/forms.py:197 -#, fuzzy msgid "Passphrase is needed for encryption." msgstr "గుప్తలేఖనానికి ప్రవేశ పదబంధం అవసరం." @@ -367,6 +372,7 @@ msgid "" "Path of a new or existing repository. Example: user@host:~/path/to/repo/" msgstr "" +"కొత్త లేదా ఇప్పటికే ఉన్న రిపోజిటరీ యొక్క మార్గం. ఉదాహరణ: user@host:~/path/to/repo/" #: plinth/modules/backups/forms.py:247 msgid "SSH server password" @@ -380,7 +386,7 @@ msgstr "SSH సర్వర్ యొక్క పాస్వర్డ్.
కొత్త %(box_name)sలో " +"బ్యాకప్‌ని పునరుద్ధరించడానికి మీకు SSH ఆధారాలు మరియు ఎంచుకుంటే ఎన్‌క్రిప్షన్ పాస్‌ఫ్రేజ్ అవసరం." #: plinth/modules/backups/templates/backups_add_remote_repository.html:28 -#, fuzzy -#| msgid "Create Connection" msgid "Create Location" -msgstr "అనుసంధానం సృష్టించు" +msgstr "స్థానాన్ని సృష్టించు" #: plinth/modules/backups/templates/backups_add_repository.html:19 #: plinth/modules/gitweb/views.py:50 -#, fuzzy -#| msgid "Create User" msgid "Create Repository" -msgstr "వినియోగదారుని సృష్టించు" +msgstr "రిపోజిటరీని సృష్టించు" #: plinth/modules/backups/templates/backups_delete.html:12 -#, fuzzy -#| msgid "Delete connection %(name)s permanently?" msgid "Delete this archive permanently?" -msgstr "%(name)s అనుసంధానం శాశ్వతంగా తొలగించు ?" +msgstr "ఈ ఆర్కైవ్‌ను శాశ్వతంగా తొలగించాలా?" #: plinth/modules/backups/templates/backups_delete.html:18 msgid "Time" msgstr "సమయం" #: plinth/modules/backups/templates/backups_delete.html:34 -#, fuzzy, python-format -#| msgid "Delete %(name)s" +#, python-format msgid "Delete Archive %(name)s" -msgstr "%(name)s తొలగించు" +msgstr "%(name)s ఆర్కైవ్‌ను తొలగించు" #: plinth/modules/backups/templates/backups_form.html:20 #: plinth/modules/backups/templates/backups_schedule.html:19 @@ -518,23 +516,19 @@ msgstr "ఈ రిపోజిటరీ గుప్తీకరించబడ #: plinth/modules/backups/templates/backups_repository.html:29 msgid "Schedule" -msgstr "" +msgstr "షెడ్యూల్" #: plinth/modules/backups/templates/backups_repository.html:40 -#, fuzzy -#| msgid "Documentation" msgid "Unmount Location" -msgstr "పత్రావళి" +msgstr "స్థానాన్ని అన్‌మౌంట్ చేయండి" #: plinth/modules/backups/templates/backups_repository.html:51 -#, fuzzy -#| msgid "Mount Point" msgid "Mount Location" -msgstr "ఆరొహించు కోన" +msgstr "స్థానాన్ని మౌంట్ చేయండి" #: plinth/modules/backups/templates/backups_repository.html:62 msgid "Remove Backup Location. This will not delete the remote backup." -msgstr "" +msgstr "బ్యాకప్ స్థానాన్ని తీసివేయండి. ఇది రిమోట్ బ్యాకప్‌ను తొలగించదు." #: plinth/modules/backups/templates/backups_repository.html:83 msgid "Download" @@ -559,18 +553,16 @@ 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 "" +"రిమోట్ రిపోజిటరీ తొలగించబడదు. ఇది బ్యాకప్ పేజీలోని జాబితా నుండి రిపోజిటరీని తీసివేస్తుంది, మీరు దీన్ని తర్వాత మళ్లీ " +"జోడించవచ్చు." #: plinth/modules/backups/templates/backups_repository_remove.html:31 -#, fuzzy -#| msgid "Documentation" msgid "Remove Location" -msgstr "పత్రావళి" +msgstr "స్థానాన్ని తీసివేయి" #: plinth/modules/backups/templates/backups_restore.html:15 -#, fuzzy -#| msgid "Delete %(name)s" msgid "Restore data from" -msgstr "%(name)s తొలగించు" +msgstr "నుండి డేటాను పునరుద్ధరించండి" #: plinth/modules/backups/templates/backups_upload.html:17 #, python-format @@ -583,6 +575,12 @@ msgid "" " backup file.\n" " " msgstr "" +"\n" +" దాన్ని పునరుద్ధరించడానికి మరొక %(box_name)s నుండి డౌన్‌లోడ్ చేయబడిన బ్యాకప్ ఫైల్‌ను అప్‌లోడ్ " +"చేయండి\n" +" విషయాలు. మీరు అప్‌లోడ్ చేసిన తర్వాత పునరుద్ధరించాలనుకుంటున్న యాప్‌లను ఎంచుకోవచ్చు a\n" +" బ్యాకప్ ఫైల్.\n" +" " #: plinth/modules/backups/templates/backups_upload.html:27 #: plinth/modules/help/templates/statuslog.html:23 @@ -591,11 +589,13 @@ msgid "Caution:" msgstr "జాగ్రత్త:" #: plinth/modules/backups/templates/backups_upload.html:28 -#, python-format +#, fuzzy, python-format msgid "" "You have %(max_filesize)s available to restore a backup. Exceeding this " "limit can leave your %(box_name)s unusable." msgstr "" +"బ్యాకప్‌ని పునరుద్ధరించడానికి మీకు %(max_filesize)sలు అందుబాటులో ఉన్నాయి. ఈ పరిమితిని అధిగమించడం " +"వలన మీ %(box_name)s నిరుపయోగంగా ఉంటాయి." #: plinth/modules/backups/templates/backups_upload.html:41 msgid "Upload file" @@ -607,6 +607,8 @@ msgid "" "Could not reach SSH host %(hostname)s. Please verify that the host is up and " "accepting connections." msgstr "" +"SSH హోస్ట్ ను %(hostname)s చేరుకోలేకపోయింది. దయచేసి హోస్ట్ సిద్ధంగా ఉందని మరియు కనెక్షన్‌లను " +"అంగీకరిస్తున్నట్లు ధృవీకరించండి." #: plinth/modules/backups/templates/verify_ssh_hostkey.html:28 #, python-format @@ -614,20 +616,21 @@ 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 "" +"SSH హోస్ట్ %(hostname)s యొక్క ప్రామాణికత స్థాపించబడలేదు. హోస్ట్ కింది SSH పబ్లిక్ కీలను ప్రచారం " +"చేస్తుంది. దయచేసి వాటిలో దేనినైనా ధృవీకరించండి." #: plinth/modules/backups/templates/verify_ssh_hostkey.html:40 msgid "How to verify?" msgstr "ఎలా ధృవీకరించాలి?" #: plinth/modules/backups/templates/verify_ssh_hostkey.html:45 -#, fuzzy 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 "" "SSH హోస్ట్ మెషిన్ మీద దిగువ కమాండ్ రన్ చేయాలి. అవుట్ పుట్ ఇవ్వబడ్డ ఆప్షన్ ల్లో ఒకదానిని జతచేయాలి. సంబంధిత " -"ఫైలును ఎంచుకోవడం ద్వారా, rsa కు బదులుగా dsa, ecdsa, ed25519 మొదలైనవి కూడా ఉపయోగించవచ్చు." +"ఫైలును ఎంచుకోవడం ద్వారా, RSA కు బదులుగా DSA, ECDSA, Ed25519 మొదలైనవి కూడా ఉపయోగించవచ్చు." #: plinth/modules/backups/templates/verify_ssh_hostkey.html:60 msgid "Verify Host" @@ -635,11 +638,9 @@ msgstr "హోస్ట్ ను నిర్ధారించండి" #: plinth/modules/backups/views.py:55 msgid "Backup schedule updated." -msgstr "" +msgstr "బ్యాకప్ షెడ్యూల్ నవీకరించబడింది." #: plinth/modules/backups/views.py:74 -#, fuzzy -#| msgid "Create Account" msgid "Schedule Backups" msgstr "ఖాతా సృష్టించు" @@ -676,20 +677,16 @@ msgid "No additional disks available to add a repository." msgstr "రిపోజిటరీని జోడించడానికి అదనపు డిస్కులు అందుబాటులో లేవు." #: plinth/modules/backups/views.py:297 -#, fuzzy -#| msgid "Create Snapshot" msgid "Create backup repository" -msgstr "స్నాప్షాట్‌ని సృష్టించు" +msgstr "బ్యాకప్ రిపోజిటరీని సృష్టించండి" #: plinth/modules/backups/views.py:324 msgid "Create remote backup repository" msgstr "రిమోట్ బ్యాకప్ రిపోజిటరీని సృష్టించండి" #: plinth/modules/backups/views.py:344 -#, fuzzy -#| msgid "Add new introducer" msgid "Added new remote SSH repository." -msgstr "కొత్త పరిచయకర్తని జోడించండి" +msgstr "కొత్త రిమోట్ SSH రిపోజిటరీ జోడించబడింది." #: plinth/modules/backups/views.py:366 msgid "Verify SSH hostkey" @@ -712,10 +709,8 @@ msgid "Authentication to remote server failed." msgstr "రిమోట్ సర్వర్‌కు ప్రామాణీకరణ విఫలమైంది." #: plinth/modules/backups/views.py:421 -#, fuzzy -#| msgid "Error installing application: {error}" msgid "Error establishing connection to server: {}" -msgstr "అనువర్తనం స్థాపించుటలో దోషం: {error}" +msgstr "సర్వర్‌కు కనెక్షన్‌ని ఏర్పాటు చేయడంలో లోపం: {}" #: plinth/modules/backups/views.py:432 msgid "Repository removed." @@ -744,6 +739,10 @@ msgid "" "audio, video and PDF documents can be previewed in the browser. Shared files " "can be set to expire after a time period." msgstr "" +"bepasty అనేది పెద్ద ఫైల్‌లను అప్‌లోడ్ చేయడానికి మరియు భాగస్వామ్యం చేయడానికి అనుమతించే వెబ్ అప్లికేషన్. టెక్స్ట్ " +"మరియు కోడ్ స్నిప్పెట్‌లను కూడా అతికించవచ్చు మరియు భాగస్వామ్యం చేయవచ్చు. టెక్స్ట్, ఇమేజ్, ఆడియో, వీడియో మరియు " +"PDF డాక్యుమెంట్‌లను బ్రౌజర్‌లో ప్రివ్యూ చేయవచ్చు. షేర్ చేసిన ఫైల్‌లు కొంత సమయం తర్వాత గడువు ముగిసేలా సెట్ " +"చేయవచ్చు." #: plinth/modules/bepasty/__init__.py:25 msgid "" @@ -752,6 +751,9 @@ msgid "" "password, you can share it with the users who should have the associated " "permissions." msgstr "" +"bepasty లాగిన్ కోసం వినియోగదారు పేర్లను ఉపయోగించదు. ఇది password మాత్రమే ఉపయోగిస్తుంది. ప్రతి " +"password కోసం, అనుమతుల సమితిని ఎంచుకోవచ్చు. మీరు పాస్‌వర్డ్‌ను సృష్టించిన తర్వాత, అనుబంధిత " +"అనుమతులను కలిగి ఉన్న వినియోగదారులతో మీరు దాన్ని భాగస్వామ్యం చేయవచ్చు." #: plinth/modules/bepasty/__init__.py:29 msgid "" @@ -760,56 +762,53 @@ msgid "" "revoke access for a single person or group, by removing their password from " "the list." msgstr "" +"మీరు ఒకే ప్రత్యేక అధికారాలతో బహుళ పాస్‌వర్డ్‌లను కూడా సృష్టించవచ్చు మరియు వాటిని వేర్వేరు వ్యక్తులు లేదా " +"సమూహాలకు పంపిణీ చేయవచ్చు. ఇది జాబితా నుండి వారి పాస్‌వర్డ్‌ను తీసివేయడం ద్వారా ఒక వ్యక్తి లేదా సమూహం కోసం " +"యాక్సెస్‌ని తర్వాత ఉపసంహరించుకోవడానికి మిమ్మల్ని అనుమతిస్తుంది." #: plinth/modules/bepasty/__init__.py:38 plinth/modules/bepasty/__init__.py:47 msgid "Read a file, if a web link to the file is available" -msgstr "" +msgstr "ఫైల్‌కి వెబ్ లింక్ అందుబాటులో ఉంటే ఫైల్‌ని చదవండి" #: plinth/modules/bepasty/__init__.py:39 -#, fuzzy -#| msgid "Restore from uploaded file" msgid "Create or upload files" -msgstr "అప్‌లోడ్ చేసిన ఫైల్ నుండి పునరుద్ధరించండి" +msgstr "ఫైల్‌లను సృష్టించండి లేదా అప్‌లోడ్ చేయండి" #: plinth/modules/bepasty/__init__.py:40 msgid "List all files and their web links" -msgstr "" +msgstr "అన్ని ఫైల్‌లు మరియు వాటి వెబ్ లింక్‌లను జాబితా చేయండి" #: plinth/modules/bepasty/__init__.py:41 -#, fuzzy -#| msgid "Delete User" msgid "Delete files" -msgstr "వినియోగదారుని తొలగించు" +msgstr "ఫైళ్లను తొలగించండి" #: plinth/modules/bepasty/__init__.py:42 msgid "Administer files: lock/unlock files" -msgstr "" +msgstr "ఫైల్‌లను నిర్వహించండి: ఫైల్‌లను లాక్/అన్‌లాక్ చేయండి" #: plinth/modules/bepasty/__init__.py:46 msgid "None, password is always required" -msgstr "" +msgstr "ఏదీ లేదు, పాస్‌వర్డ్ ఎల్లప్పుడూ అవసరం" #: plinth/modules/bepasty/__init__.py:48 msgid "List and read all files" -msgstr "" +msgstr "అన్ని ఫైల్‌లను జాబితా చేసి చదవండి" #: plinth/modules/bepasty/__init__.py:63 plinth/modules/bepasty/manifest.py:6 msgid "bepasty" -msgstr "" +msgstr "దుష్ప్రవర్తన" #: plinth/modules/bepasty/__init__.py:65 -#, fuzzy -#| msgid "File Sharing" msgid "File & Snippet Sharing" -msgstr "ఫైలు పంచుకొనుట" +msgstr "ఫైల్ & స్నిప్పెట్ భాగస్వామ్యం" #: plinth/modules/bepasty/forms.py:17 msgid "Public Access (default permissions)" -msgstr "" +msgstr "ప్రజా యాక్సిస్ (అప్రమేయం అనుమతులు )" #: plinth/modules/bepasty/forms.py:18 msgid "Permissions for anonymous users, who have not provided a password." -msgstr "" +msgstr "రహస్యపదం అందించని అనామక వినియోగదారులకు అనుమతులు." #: plinth/modules/bepasty/forms.py:27 #: plinth/modules/bepasty/templates/bepasty.html:30 @@ -820,35 +819,29 @@ msgstr "అనుమతులు" #: plinth/modules/bepasty/forms.py:29 msgid "" "Users that log in with this password will have the selected permissions." -msgstr "" +msgstr "ఈ రహస్యపదంతో లాగిన్ అయిన వినియోగదారులు ఎంచుకున్న అనుమతులను కలిగి ఉంటారు." #: plinth/modules/bepasty/forms.py:33 #: plinth/modules/bepasty/templates/bepasty.html:31 msgid "Comment" -msgstr "" +msgstr "వ్యాఖ్య" #: plinth/modules/bepasty/forms.py:34 msgid "Any comment to help you remember the purpose of this password." -msgstr "" +msgstr "ఈ రహస్యపదం యొక్క ఉద్దేశ్యాన్ని గుర్తుంచుకోవడంలో మీకు సహాయపడే ఏదైనా వ్యాఖ్య." #: plinth/modules/bepasty/templates/bepasty.html:12 -#, fuzzy -#| msgid "Change Password" msgid "Manage Passwords" -msgstr "పాస్‌వర్డ్ మార్చు" +msgstr "రహస్యపదాలను నిర్వహించండి" #: plinth/modules/bepasty/templates/bepasty.html:16 #: plinth/modules/bepasty/templates/bepasty.html:18 -#, fuzzy -#| msgid "Show password" msgid "Add password" -msgstr "రహస్యపదం కనబర్చు" +msgstr "రహస్యపదం జోడించండి" #: plinth/modules/bepasty/templates/bepasty.html:23 -#, fuzzy -#| msgid "No shares currently configured." msgid "No passwords currently configured." -msgstr "ప్రస్తుతం ఏ షేర్లు ఏర్పాటు చేయబడలేదు." +msgstr "ప్రస్తుతం రహస్యపదాలను ఏవీ కాన్ఫిగర్ చేయబడలేదు." #: plinth/modules/bepasty/templates/bepasty.html:29 #: plinth/modules/dynamicdns/forms.py:91 plinth/modules/networks/forms.py:213 @@ -858,21 +851,19 @@ msgstr "రహస్యపదం" #: plinth/modules/bepasty/views.py:22 msgid "admin" -msgstr "" +msgstr "అడ్మిన్" #: plinth/modules/bepasty/views.py:23 -#, fuzzy -#| msgid "Repository" msgid "editor" -msgstr "భాండాగారము" +msgstr "సంపాదకుడు" #: plinth/modules/bepasty/views.py:24 msgid "viewer" -msgstr "" +msgstr "వీక్షకుడు" #: plinth/modules/bepasty/views.py:49 msgid "Read" -msgstr "" +msgstr "చదవండి" #: plinth/modules/bepasty/views.py:50 msgid "Create" @@ -880,10 +871,10 @@ msgstr "సృష్టించు" #: plinth/modules/bepasty/views.py:51 msgid "List" -msgstr "" +msgstr "జాబితా" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -896,7 +887,7 @@ msgstr "తొలగించు" #: plinth/modules/bepasty/views.py:53 msgid "Admin" -msgstr "" +msgstr "నిర్వాహకుడు" #: plinth/modules/bepasty/views.py:90 plinth/modules/searx/views.py:38 #: plinth/modules/searx/views.py:49 plinth/modules/tor/views.py:130 @@ -904,7 +895,7 @@ msgstr "" msgid "Configuration updated." msgstr "ఆకృతీకరణ నవీకరించబడింది." -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -912,22 +903,16 @@ msgid "An error occurred during configuration." msgstr "అక్రుతీకరణలో ఒక పొరపాటు జరిగింది." #: plinth/modules/bepasty/views.py:104 -#, fuzzy -#| msgid "Password updated" msgid "Password added." -msgstr "అనుమతిపదం నవీకరించబడింది" +msgstr "రహస్యపదం జోడించబడింది." #: plinth/modules/bepasty/views.py:109 -#, fuzzy -#| msgid "Password" msgid "Add Password" -msgstr "రహస్యపదం" +msgstr "రహస్యపదాన్ని జోడించండి" #: plinth/modules/bepasty/views.py:126 -#, fuzzy -#| msgid "Password updated" msgid "Password deleted." -msgstr "అనుమతిపదం నవీకరించబడింది" +msgstr "రహస్యపదం తొలగించబడింది." #: plinth/modules/bind/__init__.py:25 msgid "" @@ -944,8 +929,9 @@ msgid "" "machines on local network. It is also incompatible with sharing Internet " "connection from {box_name}." msgstr "" -"ప్రస్తుతం, ఈ {box_name} యొక్క లోకల్ నెట్వర్క్ పరిధిలో ఉన్న మెషిన్ల డ్.ఎన్.ఎస్ శోధనలను పరిష్కరించడానికి " -"మాత్రమే బైండ్ ఉపయోగించబడుతుంది. ఇది ఈ {box_name} నుంచి అంతర్జాల భాగస్వామ్యానికి అననుకూలమైనది." +"ప్రస్తుతం, {box_name},లో BIND స్థానిక నెట్‌వర్క్‌లోని ఇతర మెషీన్‌ల కోసం DNS ప్రశ్నలను పరిష్కరించడానికి " +"మాత్రమే ఉపయోగించబడుతుంది. ఇది {box_name} నుండి ఇంటర్నెట్ బంధాన్ని భాగస్వామ్యం చేయడంతో కూడా " +"అననుకూలంగా ఉంది." #: plinth/modules/bind/__init__.py:76 msgid "BIND" @@ -973,11 +959,11 @@ msgid "Enable Domain Name System Security Extensions" msgstr "డొమైన్ నేమ్ సిస్టం భద్రతా పొడిగింపు ని ప్రారంభించండి" #: plinth/modules/bind/templates/bind.html:11 -#, fuzzy msgid "Serving Domains" -msgstr "సర్వర్ డొమైన్" +msgstr "అధికారకక్షేత్రాలను అందిస్తోంది" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -987,20 +973,14 @@ msgid "Type" msgstr "రకం" #: plinth/modules/bind/templates/bind.html:18 -#, fuzzy -#| msgid "Domain Name" msgid "Domain Names" -msgstr "డొమైను పేరు" +msgstr "అధికారకక్షేత్రాల పేరులు" #: plinth/modules/bind/templates/bind.html:19 -#, fuzzy -#| msgid "Service" msgid "Serving" msgstr "సేవ" #: plinth/modules/bind/templates/bind.html:20 -#, fuzzy -#| msgid "IP address" msgid "IP addresses" msgstr "IP చిరునామా" @@ -1011,7 +991,7 @@ msgstr "IP చిరునామా మరియు డొమైన్‌లన #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1028,6 +1008,8 @@ msgid "" "store your e-books on your {box_name}, read them online or from any of your " "devices." msgstr "" +"క్యాలిబర్ సర్వర్ మీ ఇ-బుక్ సేకరణకు ఆన్‌లైన్ యాక్సెస్‌ను అందిస్తుంది. మీరు మీ ఇ-బుక్స్‌లను మీ {box_name}" +"లో నిల్వ చేయవచ్చు, వాటిని ఆన్‌లైన్‌లో లేదా మీ పరికరాల్లో దేని నుండైనా చదవవచ్చు." #: plinth/modules/calibre/__init__.py:29 msgid "" @@ -1037,47 +1019,50 @@ msgid "" "an online web reader. It remembers your last read location, bookmarks, and " "highlighted text. Content distribution using OPDS is currently not supported." msgstr "" +"మీరు మీ ఇ-పుస్తకాలను నిర్వహించవచ్చు, వాటి మెటాడేటాను సంగ్రహించవచ్చు మరియు సవరించవచ్చు మరియు " +"అధునాతన శోధనను నిర్వహించవచ్చు. క్యాలిబర్ ఏదైనా పరికరంలో చదవడానికి ఇ-పుస్తకాలను సిద్ధంగా ఉంచడానికి " +"విస్తృత శ్రేణి ఫార్మాట్‌లలో దిగుమతి చేసుకోవచ్చు, ఎగుమతి చేయవచ్చు లేదా మార్చవచ్చు. ఇది ఆన్‌లైన్ వెబ్ రీడర్‌ను " +"కూడా అందిస్తుంది. ఇది మీరు చివరిగా చదివిన స్థానం, బుక్‌మార్క్‌లు మరియు హైలైట్ చేసిన వచనాన్ని " +"గుర్తుంచుకుంటుంది. OPDSని ఉపయోగించి కంటెంట్ పంపిణీకి ప్రస్తుతం మద్దతు లేదు" #: plinth/modules/calibre/__init__.py:35 msgid "" "Only users belonging to calibre group will be able to access the " "app. All users with access can use all the libraries." msgstr "" +"calibre సమూహానికి చెందిన వినియోగదారులు మాత్రమే యాప్‌ని యాక్సెస్ చేయగలరు. యాక్సెస్ ఉన్న " +"వినియోగదారులందరూ అన్ని గ్రంధాలయంను ఉపయోగించవచ్చు" #: plinth/modules/calibre/__init__.py:57 msgid "Use calibre e-book libraries" -msgstr "" +msgstr "క్యాలిబర్ ఇ-బుక్ లైబ్రరీ ఉపయోగించండి" #: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:6 msgid "calibre" -msgstr "" +msgstr "క్యాలిబర్" #: plinth/modules/calibre/__init__.py:61 msgid "E-book Library" -msgstr "" +msgstr "ఇ-బుక్ లైబ్రరీ" #: plinth/modules/calibre/forms.py:18 -#, fuzzy -#| msgid "Name of the share" msgid "Name of the new library" -msgstr "షేర్ యొక్క పేరు" +msgstr "కొత్త గ్రంధాలయం పేరు" #: plinth/modules/calibre/forms.py:27 -#, fuzzy msgid "A library with this name already exists." -msgstr "ఈ సేవ ఇప్పటికే ఉంది" +msgstr "ఈ పేరుతో గ్రంధాలయం ఇప్పటికే ఉంది." #: plinth/modules/calibre/templates/calibre-delete-library.html:11 -#, fuzzy, python-format -#| msgid "Delete Wiki or Blog %(name)s" +#, python-format msgid "Delete calibre Library %(name)s" -msgstr "వికీ లేదా బ్లాగ్ తొలగించు %(name)s" +msgstr "క్యాలిబర్ గ్రంధాలయం %(name)sని తొలగించండి" #: plinth/modules/calibre/templates/calibre-delete-library.html:17 msgid "" "Delete this library permanently? All stored e-books and saved data will be " "lost." -msgstr "" +msgstr "ఈ లైబ్రరీని శాశ్వతంగా నిర్ములించు?భద్రపరచిన ఇ-బుక్స్ మరియు సమాచారం కోల్పోతాయి." #: plinth/modules/calibre/templates/calibre-delete-library.html:27 #: plinth/modules/gitweb/templates/gitweb_delete.html:27 @@ -1088,46 +1073,35 @@ msgid "Delete %(name)s" msgstr "%(name)s తొలగించు" #: plinth/modules/calibre/templates/calibre.html:11 -#, fuzzy -#| msgid "Create User" msgid "Manage Libraries" -msgstr "వినియోగదారుని సృష్టించు" +msgstr "గ్రంధాలయంను నిర్వహించండి" #: plinth/modules/calibre/templates/calibre.html:15 #: plinth/modules/calibre/templates/calibre.html:17 -#, fuzzy -#| msgid "Create User" msgid "Create Library" -msgstr "వినియోగదారుని సృష్టించు" +msgstr "గ్రంధాలయంను సృష్టించు" #: plinth/modules/calibre/templates/calibre.html:24 -#, fuzzy -#| msgid "Tor relay port available" msgid "No libraries available." -msgstr "టార్ రిలే పోర్ట్ అందుబాటులో ఉంది" +msgstr "గ్రంధాలయంలు అందుబాటులో లేవు." #: plinth/modules/calibre/templates/calibre.html:31 #, python-format msgid "Go to library %(library)s" -msgstr "" +msgstr "%(library)s లైబ్రరీకి వెళ్లుము" #: plinth/modules/calibre/templates/calibre.html:37 -#, fuzzy, python-format -#| msgid "Delete site %(site)s" +#, python-format msgid "Delete library %(library)s" -msgstr "ప్రదేశం తొలగించు %(site)s" +msgstr "గ్రంధాలయంను తొలగించు %(library)s" #: plinth/modules/calibre/views.py:39 -#, fuzzy -#| msgid "Repository created." msgid "Library created." -msgstr "రిపోజిటరీ సృష్టించబడింది." +msgstr "గ్రంధాలయంను సృష్టించారు." #: plinth/modules/calibre/views.py:50 -#, fuzzy -#| msgid "An error occurred during configuration." msgid "An error occurred while creating the library." -msgstr "అక్రుతీకరణలో ఒక పొరపాటు జరిగింది." +msgstr "గ్రంధాలయంని సృష్టిస్తున్నప్పుడు లోపం సంభవించింది." #: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138 #, python-brace-format @@ -1158,29 +1132,26 @@ msgid "" "firewall ports and advanced networking such as bonding, bridging and VLAN " "management." msgstr "" +"కాక్పిట్ ను ఉన్నత స్థితి నిల్వ కార్యాచరణాలు ఐనా ఖని విభజన పనిలో మరియు RAID నిర్వాహణ లో " +"ఉపయోగించబడుతుంది .ఇది కస్టమ్ ఫైర్‌వాల్ పోర్ట్‌లను తెరవడానికి మరియు బాండింగ్, బ్రిడ్జింగ్ మరియు VLAN నిర్వహణ " +"వంటి అధునాతన నెట్‌వర్కింగ్ కోసం కూడా ఉపయోగించవచ్చు." #: plinth/modules/cockpit/__init__.py:36 -#, fuzzy, python-brace-format -#| msgid "" -#| "When enabled, Cockpit will be available from /" -#| "_cockpit/ path on the web server. It can be accessed by any user with a {box_name} login. Sensitive " -#| "information and system altering abilities are limited to users belonging " -#| "to admin group." +#, python-brace-format msgid "" "It can be accessed by any user on {box_name} " "belonging to the admin group." msgstr "" -"ప్రారంభించినప్పుడు, వెబ్ సర్వర్లో / _cockpit / మార్గం నుండి " -"కాక్పిట్ అందుబాటులో ఉంటుంది. దీన్ని మంది వినియోగదారులచే " -"ద్వారా పొందవచ్చు {box_name}.\n" -"అంగీకార సమాచారం మరియు సిస్టమ్ మార్చడం సామర్ధ్యాలు నిర్వాహక సమూహం చెందిన వినియోగదారులకు పరిమితం." +"నిర్వాహక సమూహానికి చెందిన {box_name}లో ఏదైనా వినియోగదారు దీన్ని " +"యాక్సెస్ చేయవచ్చు." #: plinth/modules/cockpit/__init__.py:40 msgid "" "Cockpit requires that you access it through a domain name. It will not work " "when accessed using an IP address as part of the URL." msgstr "" +"కాక్‌పిట్‌ని మీరు అధికారక్షేత్రం పేరు ద్వారా యాక్సెస్ చేయడం అవసరం. URLలో భాగంగా IP చిరునామాను ఉపయోగించి " +"యాక్సెస్ చేసినప్పుడు ఇది పని చేయదు." #: plinth/modules/cockpit/__init__.py:62 plinth/modules/cockpit/manifest.py:9 #: plinth/modules/performance/manifest.py:9 @@ -1192,20 +1163,20 @@ msgid "Server Administration" msgstr "సేవిక పరిపాలన" #: plinth/modules/cockpit/templates/cockpit.html:11 -#, fuzzy -#| msgid "Access Point" msgid "Access" msgstr "ప్రాప్తి సూచి" #: plinth/modules/cockpit/templates/cockpit.html:14 msgid "Cockpit will only work when accessed using the following URLs." -msgstr "" +msgstr "కింది URLలను ఉపయోగించి యాక్సెస్ చేసినప్పుడు మాత్రమే కాక్‌పిట్ పని చేస్తుంది." #: plinth/modules/config/__init__.py:23 msgid "" "Here you can set some general configuration options like hostname, domain " "name, webserver home page etc." msgstr "" +"ఇక్కడ మీరు ఆతిథ్య నామం అధికారక్షేత్రం మహాతలంసేవిక మొదలైన కొన్ని సాధారణ రూపకరణ ఎంపికలను అమరిక " +"చేయవచ్చు." #: plinth/modules/config/__init__.py:53 msgid "General Configuration" @@ -1232,17 +1203,15 @@ msgstr "డొమైన్ పేరు చెల్లదు" #: plinth/modules/config/forms.py:40 #, python-brace-format msgid "{user}'s website" -msgstr "" +msgstr "{user}'sమహాతలం పుట" #: plinth/modules/config/forms.py:42 -#, fuzzy -#| msgid "Default" msgid "Apache Default" msgstr "అప్రమేయం" #: plinth/modules/config/forms.py:43 msgid "FreedomBox Service (Plinth)" -msgstr "" +msgstr "ఫ్రీడమ్ బాక్స్ (ప్లిన్త్ )" #: plinth/modules/config/forms.py:55 msgid "Hostname" @@ -1293,6 +1262,11 @@ msgid "" "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 "" +"ఎవరైనా మిమ్మల్ని సందర్శించినప్పుడు తప్పనిసరిగా అందించాల్సిన డిఫాల్ట్ పేజీని ఎంచుకోండి {box_name} " +"అంతర్జాలంలో .ఎవరైనా డొమైన్ పేరును సందర్శించినప్పుడు మీ బ్లాగ్ లేదా వికీని హోమ్ పేజీగా సెట్ చేయడం ఒక సాధారణ " +"ఉపయోగ సందర్భం. ఒకసారి హోమ్ పేజీని కాకుండా వేరే వాటికి సెట్ చేయబడిందని గమనించండి {box_name}సర్వీస్ " +"(ప్లింత్), చేరుకోవడానికి మీ వినియోగదారులు స్పష్టంగా /ప్లిన్త్ లేదా /ఫ్రీడమ్‌బాక్స్ అని టైప్ చేయాలి {box_name} " +"సర్వీస్ (ప్లింత్)." #: plinth/modules/config/forms.py:98 msgid "Show advanced apps and features" @@ -1330,8 +1304,7 @@ msgid "Webserver home page set" msgstr "వెబ్ సర్వర్ హోమ్ పేజీ సెట్ చేయబడింది" #: plinth/modules/config/views.py:80 -#, fuzzy, python-brace-format -#| msgid "Error setting domain name: {exception}" +#, python-brace-format msgid "Error changing advanced mode: {exception}" msgstr "అధికారక్షేత్రం పేరు అమర్పులోపం: {exception}" @@ -1350,6 +1323,9 @@ msgid "" "other communication servers can use it to establish a call between parties " "who are otherwise unable connect to each other." msgstr "" +"Coturn అనేది TURN మరియు STUN ప్రోటోకాల్‌ల అమలును అందించడం ద్వారా ఆడియో/వీడియో కాల్‌లు మరియు " +"సమావేశాలను సులభతరం చేయడానికి ఒక సర్వర్. WebRTC, SIP మరియు ఇతర కమ్యూనికేషన్ సర్వర్‌లు ఒకదానికొకటి " +"కనెక్ట్ చేయలేని పార్టీల మధ్య కాల్‌ని ఏర్పాటు చేయడానికి దీన్ని ఉపయోగించవచ్చు." #: plinth/modules/coturn/__init__.py:34 #, python-brace-format @@ -1358,28 +1334,28 @@ msgid "" "\"{ms_url}\">Matrix Synapse or ejabberd need to " "be configured with the details provided here." msgstr "" +"ఇది వినియోగదారులచే నేరుగా ఉపయోగించబడదు. వంటి సర్వర్లుMatrix Synapse or ejabberd ఇక్కడ అందించిన వివరాలతో రూపకరణచేయాలి." #: plinth/modules/coturn/__init__.py:57 msgid "Coturn" -msgstr "" +msgstr "కోటుర్న్" #: plinth/modules/coturn/__init__.py:58 msgid "VoIP Helper" -msgstr "" +msgstr "విఓఐపీ సహాయకుడు" #: plinth/modules/coturn/forms.py:22 msgid "Invalid list of STUN/TURN Server URIs" -msgstr "" +msgstr "నిస్సారం జాబిత యొక్క స్టన్/టర్న్ సర్వర్ ఉరల్స్" #: plinth/modules/coturn/templates/coturn.html:15 msgid "Use the following URLs to configure your communication server:" -msgstr "" +msgstr "మీ కమ్యూనికేషన్ సర్వర్‌ను కాన్ఫిగర్ చేయడానికి క్రింది URLలను ఉపయోగించండి:" #: plinth/modules/coturn/templates/coturn.html:24 -#, fuzzy -#| msgid "The following disks are in use:" msgid "Use the following shared authentication secret:" -msgstr "క్రింది డిస్కులు ఉపయోగంలో ఉన్నాయి:" +msgstr "కింది భాగస్వామ్య ప్రమాణీకరణ రహస్యాన్ని ఉపయోగించండి:" #: plinth/modules/datetime/__init__.py:19 msgid "" @@ -1395,7 +1371,7 @@ msgstr "తేదీ & సమయం" #: plinth/modules/datetime/__init__.py:117 msgid "Time synchronized to NTP server" -msgstr "" +msgstr "సమయం NTP సర్వర్‌కి సమకాలీకరించబడింది" #: plinth/modules/datetime/forms.py:18 msgid "Time Zone" @@ -1426,19 +1402,13 @@ msgid "Deluge is a BitTorrent client that features a Web UI." msgstr "డీలడ్జ్ అనేది జాల UI కలిగివున్న ఒక బిట్ టోరెంట్ కక్షిదారు." #: plinth/modules/deluge/__init__.py:23 -#, fuzzy -#| msgid "" -#| "When enabled, the Deluge web client will be available from /deluge path on the web server. The default password is " -#| "'deluge', but you should log in and change it immediately after enabling " -#| "this service." msgid "" "The default password is 'deluge', but you should log in and change it " "immediately after enabling this service." msgstr "" -"ఈ సేవని అనుమతించినప్పుడు మీ డెల్యూజ్ వెబ్ క్లైంట్ మీకు /డెల్యూజ్ అనే " -"మార్గంలో అందుబాటులోనుంటుంది. ప్రధమ పాస్‌వర్డ్ గా 'డెల్యూజ్' ఉంటుంది, కానీ మీరు లాగ్ ఇన్ అయినవెంటనే మీ " -"పాస్‌వర్డ్ ను మార్చుకోవాలి." +"ఈ సేవని అనుమతించినప్పుడు మీ డెల్యూజ్ వెబ్ క్లైంట్ మీకు <a href=\"/deluge\">/డెల్యూజ్</" +"a> అనే మార్గంలో అందుబాటులోనుంటుంది. ప్రధమ పాస్‌వర్డ్ గా 'డెల్యూజ్' ఉంటుంది, కానీ మీరు లాగ్ ఇన్ " +"అయినవెంటనే మీ పాస్‌వర్డ్ ను మార్చుకోవాలి." #: plinth/modules/deluge/__init__.py:44 #: plinth/modules/transmission/__init__.py:49 @@ -1476,47 +1446,41 @@ msgid "Diagnostics" msgstr "లక్షణాలు" #: plinth/modules/diagnostics/__init__.py:97 -#, fuzzy -#| msgid "Quassel" msgid "passed" -msgstr "క్వాసెల్" +msgstr "ఉత్తీర్ణులయ్యారు" #: plinth/modules/diagnostics/__init__.py:98 #: plinth/modules/networks/views.py:49 -#, fuzzy -#| msgid "Setup failed." msgid "failed" -msgstr "అమరక విఫలమైంది." +msgstr "విఫలమయ్యారు" #: plinth/modules/diagnostics/__init__.py:99 msgid "error" -msgstr "" +msgstr "లోపం" #: plinth/modules/diagnostics/__init__.py:100 msgid "warning" -msgstr "" +msgstr "హెచ్చరిక" #. Translators: This is the unit of computer storage Mebibyte similar to #. Megabyte. #: plinth/modules/diagnostics/__init__.py:202 msgid "MiB" -msgstr "" +msgstr "నిర్వహణ సమాచార ఆధారం" #. Translators: This is the unit of computer storage Gibibyte similar to #. Gigabyte. #: plinth/modules/diagnostics/__init__.py:207 -#, fuzzy -#| msgid "Git" msgid "GiB" -msgstr "గిట్" +msgstr "గిబ్" #: plinth/modules/diagnostics/__init__.py:214 msgid "You should disable some apps to reduce memory usage." -msgstr "" +msgstr "మెమరీ వినియోగాన్ని తగ్గించడానికి మీరు కొన్ని యాప్‌లను నిలిపివేయాలి." #: plinth/modules/diagnostics/__init__.py:219 msgid "You should not install any new apps on this system." -msgstr "" +msgstr "మీరు ఈ సిస్టమ్‌లో ఏ కొత్త యాప్‌లను ఇన్‌స్టాల్ చేయకూడదు." #: plinth/modules/diagnostics/__init__.py:231 #, no-python-format, python-brace-format @@ -1524,10 +1488,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}" #: plinth/modules/diagnostics/__init__.py:233 msgid "Low Memory" -msgstr "" +msgstr "తక్కువ మెమరీ" #: plinth/modules/diagnostics/templates/diagnostics.html:17 #: plinth/modules/diagnostics/templates/diagnostics_button.html:11 @@ -1549,6 +1515,9 @@ msgid "" " App: %(app_name)s\n" " " msgstr "" +"\n" +" యాప్: %(app_name)s\n" +" " #: plinth/modules/diagnostics/templates/diagnostics_app.html:10 msgid "Diagnostic Results" @@ -1557,13 +1526,11 @@ msgstr "లక్షణములు ఫలితాలు" #: plinth/modules/diagnostics/templates/diagnostics_app.html:12 #, python-format msgid "App: %(app_name)s" -msgstr "" +msgstr "యాప్: %(app_name)s" #: plinth/modules/diagnostics/templates/diagnostics_app.html:21 -#, fuzzy -#| msgid "This module does not support diagnostics" msgid "This app does not support diagnostics" -msgstr "ఈ మాడ్యూల్ విశ్లేషణకు సహకరించదు" +msgstr "ఈ యాప్ డయాగ్నస్టిక్స్‌కు మద్దతు ఇవ్వదు" #: plinth/modules/diagnostics/templates/diagnostics_results.html:11 msgid "Test" @@ -1606,23 +1573,16 @@ msgstr "" "DNS పేరు అడుగుతాడు ఉంటే, వారు మీ ప్రస్తుత ఐ.పీ. చిరునామాతో సమాధానం పొందుతారు." #: plinth/modules/dynamicdns/__init__.py:41 -#, fuzzy -#| msgid "" -#| "If you are looking for a free dynamic DNS account, you may find a free " -#| "GnuDIP service at gnudip.datasystems24.net or you may find free update " -#| "URL based services at freedns.afraid.org." 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 "" -"మీరు ఒక ఉచిత డైనమిక్ DNS ఖాతా కోసం చూస్తున్న ఉంటే, మీరు 1gnudip.datasystems24.net 2 వద్ద ఉచిత " -"GnuDIP సేవ కనుగొనేందుకు ఉండవచ్చు లేదా మీరు 3 freedns.afraid.org 4 ఉచిత నవీకరణ URL ఆధారిత సేవలు " +"మీరు ఒక ఉచిత డైనమిక్ DNS ఖాతా కోసం చూస్తున్న ఉంటే, మీరు 1gnudip.datasystems24.net 2 వద్ద " +"ఉచిత GnuDIP సేవ కనుగొనేందుకు ఉండవచ్చు లేదా మీరు 3 freedns.afraid.org 4 ఉచిత నవీకరణ URL ఆధారిత సేవలు " "కనుగొనవచ్చు." #: plinth/modules/dynamicdns/__init__.py:64 @@ -1630,10 +1590,8 @@ msgid "Dynamic DNS Client" msgstr "గతిక DNS కక్షిదారు" #: plinth/modules/dynamicdns/__init__.py:77 -#, fuzzy -#| msgid "Domain Name" msgid "Dynamic Domain Name" -msgstr "డొమైను పేరు" +msgstr "డైనమిక్ డొమైన్ పేరు" #: plinth/modules/dynamicdns/forms.py:18 msgid "" @@ -1683,12 +1641,7 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "మీరు మీ ప్రస్తుత పాస్‌వర్డ్ ను ఉంచుకోవాలనుకుంటే ఈ ఫీల్డ్ ఖాళీగా వదిలివేయండి." #: plinth/modules/dynamicdns/forms.py:43 -#, fuzzy, python-brace-format -#| msgid "" -#| "Optional Value. If your {box_name} is not connected directly to the " -#| "Internet (i.e. connected to a NAT router) this URL is used to determine " -#| "the real IP address. The URL should simply return the IP where the client " -#| "comes from (example: http://myip.datasystems24.de)." +#, python-brace-format msgid "" "Optional Value. If your {box_name} is not connected directly to the Internet " "(i.e. connected to a NAT router) this URL is used to determine the real IP " @@ -1706,13 +1659,11 @@ msgstr "మీరు మీ ఖాతాను సృష్టించినప #: plinth/modules/dynamicdns/forms.py:54 msgid "GnuDIP" -msgstr "" +msgstr "జ్ఞుడిప్" #: plinth/modules/dynamicdns/forms.py:57 -#, fuzzy -#| msgid "Update URL" msgid "Other update URL" -msgstr "URL నవీకరణ" +msgstr "ఇతర నవీకరణ URL" #: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" @@ -1753,11 +1704,11 @@ msgstr "పబ్లిక్ IP చూసేందుకు URL" #: plinth/modules/dynamicdns/forms.py:104 msgid "Use IPv6 instead of IPv4" -msgstr "" +msgstr "ఇప్ప్4 బదులు ఇప్ప్6 వినియోగించండి" #: plinth/modules/dynamicdns/forms.py:123 msgid "This field is required." -msgstr "" +msgstr "ఇది అవసరమేయిన్న క్షేత్రం." #: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 @@ -1774,6 +1725,7 @@ msgid "Status" msgstr "స్థితి" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "డొమైన్" @@ -1783,50 +1735,36 @@ msgid "Last update" msgstr "చివరి నవీకరణ" #: plinth/modules/dynamicdns/templates/dynamicdns.html:21 -#, fuzzy -#| msgid "IP address" msgid "IP Address" msgstr "IP చిరునామా" #: plinth/modules/dynamicdns/templates/dynamicdns.html:32 -#, fuzzy -#| msgid "Access Point" msgid "Success" -msgstr "ప్రాప్తి సూచి" +msgstr "విజయం" #: plinth/modules/dynamicdns/templates/dynamicdns.html:36 -#, fuzzy -#| msgid "Setup failed." msgid "Failed" msgstr "అమరక విఫలమైంది." #: plinth/modules/dynamicdns/templates/dynamicdns.html:52 -#, fuzzy -#| msgid "Tor relay port available" msgid "No status available." -msgstr "టార్ రిలే పోర్ట్ అందుబాటులో ఉంది" +msgstr "స్థితి అందుబాటులో లేదు." #: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 -#, fuzzy -#| msgid "Connection Name" msgid "Connection timed out" -msgstr "అనుసంధానం పేరు" +msgstr "కనెక్షన్ సమయం ముగిసింది" #: plinth/modules/dynamicdns/views.py:25 msgid "Could not find server" -msgstr "" +msgstr "సర్వర్ కనుగొనబడలేదు" #: plinth/modules/dynamicdns/views.py:27 -#, fuzzy -#| msgid "Delete connection" msgid "Server refused connection" -msgstr "అనుసంధానం తొలగించండి" +msgstr "సర్వర్ కనెక్షన్ నిరాకరించింది" #: plinth/modules/dynamicdns/views.py:28 -#, fuzzy -#| msgid "Last update" msgid "Already up-to-date" -msgstr "చివరి నవీకరణ" +msgstr "ఇప్పటికే తాజాగా ఉంది" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -1837,26 +1775,26 @@ msgstr "" "అమలు చేయగలరు ejabberd అని ఆకృతీకరించవచ్చు." #: plinth/modules/ejabberd/__init__.py:34 -#, fuzzy, python-brace-format -#| msgid "" -#| "To actually communicate, you can use the web client or any other XMPP " -#| "client." +#, 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 "" -"నిజానికి సమాచార మార్పిడి చేయడానికి, మీరు వెబ్ క్లయింట్ లేదా ఏ ఇతర XMPP క్లయింట్ ఉపయోగించవచ్చు." +"వాస్తవానికి కమ్యూనికేట్ చేయడానికి, మీరు వెబ్ క్లయింట్ లేదా ఏదైనా ఇతర ని ఉపయోగించవచ్చు. " +"XMPP క్లయింట్. ప్రారంభించబడినప్పుడు, ejabberdని ఏ " +"వినియోగదారు అయినా {box_name} లాగిన్‌తో యాక్సెస్ చేయవచ్చు." #: plinth/modules/ejabberd/__init__.py:42 -#, python-brace-format +#, fuzzy, python-brace-format msgid "" "ejabberd needs a STUN/TURN server for audio/video calls. Install the Coturn app or configure an external server." msgstr "" +"ejabberd కి శ్రావణ /దృశ్యం కాల్ల కోసం stun /turn సేవిక అవసరం. కార్యక్షేత్రం ను నెలకొల్పడం " +"చేయండి లేదా బాహ్య సేవిక ను రూపకారణం చేయండి {coturn_url}" #: plinth/modules/ejabberd/__init__.py:65 msgid "ejabberd" @@ -1885,33 +1823,33 @@ msgstr "" #: plinth/modules/ejabberd/forms.py:27 plinth/modules/matrixsynapse/forms.py:22 msgid "Automatically manage audio/video call setup" -msgstr "" +msgstr "ఆడియో/వీడియో కాల్ స్వయంచాలకంగా నిర్వహించండి" #: plinth/modules/ejabberd/forms.py:29 -#, python-brace-format +#, fuzzy, 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 "" +"ejjabred కోసం స్థానిక కార్యక్షేత్రం stun /turn సేవికగా రూపకరణ చెయ్యండి. మీరు వేరే stun /turn " +"సేవికాని ఉపయోగలించాలనుకుంటే దీన్ని నిలిపివేయండి {coturn_url}" #: plinth/modules/ejabberd/forms.py:36 plinth/modules/matrixsynapse/forms.py:31 msgid "STUN/TURN Server URIs" -msgstr "" +msgstr "స్టన్/టర్న్ సర్వర్ యు ఆర్ ఎల్" #: plinth/modules/ejabberd/forms.py:38 plinth/modules/matrixsynapse/forms.py:33 msgid "List of public URIs of the STUN/TURN server, one on each line." -msgstr "" +msgstr "stun /turn సేవిక యొక్క ప్రజా యూరిన్ జాబితా , ప్రతి లైన్లో ఒకటి ." #: plinth/modules/ejabberd/forms.py:42 plinth/modules/matrixsynapse/forms.py:37 -#, fuzzy -#| msgid "Authentication Mode" msgid "Shared Authentication Secret" -msgstr "ప్రామాణీకరణ విధం" +msgstr "భాగస్వామ్య ప్రమాణీకరణ రహస్యం" #: plinth/modules/ejabberd/forms.py:43 plinth/modules/matrixsynapse/forms.py:38 msgid "Shared secret used to compute passwords for the TURN server." -msgstr "" +msgstr "TURN సర్వర్ కోసం పాస్‌వర్డ్‌లను గణించడానికి ఉపయోగించే భాగస్వామ్య రహస్యం." #: plinth/modules/ejabberd/manifest.py:10 msgid "Conversations" @@ -1968,148 +1906,160 @@ msgstr "" "కనిపిస్తాయి \n" "మీరు మీ డొమైన్ను kaanfigar పేజీలో సెటప్ చేయవచ్చు." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" +"Roundcube యాప్ వినియోగదారులు ఇమెయిల్‌ను యాక్సెస్ " +"చేయడానికి వెబ్ ఇంటర్‌ఫేస్‌ను అందిస్తుంది." -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." +msgstr "ఇన్‌స్టాలేషన్ సమయంలో, సిస్టమ్‌లోని ఏదైనా ఇతర ఇమెయిల్ సర్వర్లు అన్‌ఇన్‌స్టాల్ చేయబడతాయి" + +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" msgstr "" -#: plinth/modules/email_server/__init__.py:44 -#, fuzzy -#| msgid "Chat Server" +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "కబుర్ల సేవిక" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" - -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" - -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/__init__.py:80 #, fuzzy -#| msgid "Primary connection" +#| msgid "Manage Aliases" +msgid "My Email Aliases" +msgstr "మారుపేర్లను నిర్వహించండి" + +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Aliases" +msgid "Manage Aliases for Mailbox" +msgstr "మారుపేర్లను నిర్వహించండి" + +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "ప్రాథమిక అనుసంధానం" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." -msgstr "" +msgstr "సిస్టమ్‌లో కాన్ఫిగర్ చేయబడిన అన్ని డొమైన్‌లకు మెయిల్స్ అందుతాయి. వీటిలో ముఖ్యమైనది ఎంచుకోండి" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" -msgstr "" +msgstr "కొత్త మారుపేరు (@డొమైన్ లేకుండా)" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" -msgstr "" +msgstr "చట్టవిరుద్ధమైన పాత్రలను కలిగి ఉంది" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" -msgstr "" +msgstr "తప్పనిసరిగా a-z లేదా 0-9తో ప్రారంభించి ముగించాలి" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" -msgstr "" +msgstr "సంఖ్య కాకూడదు" -#: plinth/modules/email_server/forms.py:57 -#, fuzzy -#| msgid "Create User" +#: plinth/modules/email/forms.py:59 msgid "Aliases" -msgstr "వినియోగదారుని సృష్టించు" +msgstr "మారుపేర్లు" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "క్రియాశీలం" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "నిలిపివేయబడింది" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "రౌండ్ క్యూబ్" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 -#, fuzzy -#| msgid "Mozilla Thunderbird" +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "మొజిల్లా థండర్ బర్డ్" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" -msgstr "" +msgstr "K-9 మెయిల్" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" -msgstr "" +msgstr "ఫెయిర్ఇమెయిల్" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 -#, fuzzy -#| msgid "Create User" +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" -msgstr "వినియోగదారుని సృష్టించు" +msgstr "మారుపేర్లను నిర్వహించండి" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." -msgstr "" +msgstr "మీకు ఇ-తపాలా మారుపేర్లు లేవు." -#: plinth/modules/email_server/templates/email_alias.html:24 -#, fuzzy -#| msgid "Disabled" -msgid "Disable" -msgstr "నిలిపివేయబడింది" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enabled" -msgid "Enable" -msgstr "క్రియాశీలం" - -#: plinth/modules/email_server/templates/email_alias.html:32 -#, fuzzy -#| msgid "Create a new backup" +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" -msgstr "క్రొత్త బ్యాకప్‌ను సృష్టించండి" +msgstr "కొత్త ఇమెయిల్ అలియాస్‌ని సృష్టించండి" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "జోడించు" -#: plinth/modules/email_server/templates/email_server.html:10 -#, fuzzy -#| msgid "Storage Snapshots" +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" -msgstr "నిల్వ దృశ్యములు" +msgstr "స్పామ్‌ని నిర్వహించండి" + +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "పోర్టు" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" #: plinth/modules/firewall/__init__.py:26 #, python-brace-format @@ -2126,21 +2076,19 @@ msgid "Firewall" msgstr "ఫైర్వాల్" #: plinth/modules/firewall/components.py:134 -#, fuzzy, python-brace-format -#| msgid "Service discovery server is not running" +#, python-brace-format msgid "Port {name} ({details}) available for internal networks" -msgstr "సేవ ఆవిష్కరణ సేవికను నడుపటంలేదు" +msgstr "అంతర్గత నెట్‌వర్క్‌ల కోసం పోర్ట్ {name} ({details}) అందుబాటులో ఉంది" #: plinth/modules/firewall/components.py:142 -#, fuzzy, python-brace-format -#| msgid "Service discovery server is not running" +#, python-brace-format msgid "Port {name} ({details}) available for external networks" -msgstr "సేవ ఆవిష్కరణ సేవికను నడుపటంలేదు" +msgstr "అంతర్గత నెట్‌వర్క్‌ల కోసం పోర్ట్ {name} ({details}) అందుబాటులో ఉంది" #: plinth/modules/firewall/components.py:147 #, python-brace-format msgid "Port {name} ({details}) unavailable for external networks" -msgstr "" +msgstr "Port {name} ({details})బాహ్య నెట్‌వర్క్‌లకు అందుబాటులో లేదు" #: plinth/modules/firewall/templates/firewall.html:21 #, python-format @@ -2150,15 +2098,28 @@ msgid "" "you may run it using the command 'service firewalld start' or in case of a " "system with systemd 'systemctl start firewalld'." msgstr "" -"ఫైర్వాల్ డెమోన్ నడుస్తుందో లేదు. దీన్ని అమలు దయచేసి. ఫైర్వాల్ ఎనేబుల్ వస్తుంది %(box_name)s . ఏ " -"డెబియన్ ఆధారిత కంప్యూటరులో (అటువంటి %(box_name)s) మీరు కమాండ్ 'సేవ ప్రారంభించడానికి firewalld " -"లేదా systemd systemctl ఒక వ్యవస్థ యొక్క సందర్భంలో ఉపయోగించి దీన్ని అమలు ఉండవచ్చు firewalld " -"మొదలు." +"ఫైర్‌వాల్ డెమోన్ రన్ కావడం లేదు. దయచేసి దీన్ని అమలు చేయండి. %(box_name)sలో ఫైర్‌వాల్ డిఫాల్ట్‌గా " +"ప్రారంభించబడింది. ఏదైనా డెబియన్ ఆధారిత సిస్టమ్‌లో (%(box_name)s వంటివి) మీరు 'సర్వీస్ ఫైర్‌వాల్డ్ స్టార్ట్' " +"కమాండ్‌ని ఉపయోగించి లేదా systemd 'systemctl start firewalld' ఉన్న సిస్టమ్ విషయంలో దీన్ని అమలు " +"చేయవచ్చు." #: plinth/modules/firewall/templates/firewall.html:35 msgid "Service/Port" msgstr "సేవ/పోర్ట్" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "క్రియాశీలం" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "నిలిపివేయబడింది" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "అనుమతించబడిన" @@ -2188,13 +2149,15 @@ msgstr "" #: plinth/modules/networks/templates/networks_configuration.html:22 #: plinth/modules/storage/templates/storage.html:93 msgid "Advanced" -msgstr "" +msgstr "ఉన్నత స్థితి" #: plinth/modules/firewall/templates/firewall.html:104 msgid "" "Advanced firewall operations such as opening custom ports are provided by " "the Cockpit app." msgstr "" +"అనుకూల పోర్ట్‌లను తెరవడం వంటి అధునాతన ఫైర్‌వాల్ కార్యకలాపాలు కాక్‌పిట్ యాప్ ద్వారా అందించబడతాయి." #: plinth/modules/first_boot/forms.py:14 #, python-brace-format @@ -2203,10 +2166,13 @@ msgid "" "also be obtained by running the command \"sudo cat /var/lib/plinth/firstboot-" "wizard-secret\" on your {box_name}" msgstr "" +"Freedom Box ఇన్‌స్టాలేషన్ సమయంలో రూపొందించబడిన రహస్యాన్ని నమోదు చేయండి. మీ {box_name}లో \" sudo " +"cat / var /lib/plinth/firstboot-wizard-secret\" ఆదేశాన్ని అమలు చేయడం ద్వారా కూడా ఈ " +"రహస్యాన్ని పొందవచ్చు." #: plinth/modules/first_boot/forms.py:19 msgid "Firstboot Wizard Secret" -msgstr "" +msgstr "ఫస్ట్‌బూట్ విజార్డ్ సీక్రెట్" #: plinth/modules/first_boot/templates/firstboot_complete.html:11 msgid "Setup Complete!" @@ -2247,47 +2213,48 @@ msgid "" "available graphical clients. And you can share your code with people around " "the world." msgstr "" +"Git అనేది సాఫ్ట్‌వేర్ అభివృద్ధి సమయంలో సోర్స్ కోడ్‌లో మార్పులను ట్రాక్ చేయడానికి పంపిణీ చేయబడిన సంస్కరణ-" +"నియంత్రణ వ్యవస్థ. Gitweb Git రిపోజిటరీలకు వెబ్ ఇంటర్‌ఫేస్‌ను అందిస్తుంది. మీరు సోర్స్ కోడ్ యొక్క చరిత్ర " +"మరియు కంటెంట్‌ను బ్రౌజ్ చేయవచ్చు, సంబంధిత కమిట్‌లు మరియు కోడ్‌లను కనుగొనడానికి శోధనను ఉపయోగించవచ్చు. " +"మీరు రిపోజిటరీలను క్లోన్ చేయవచ్చు మరియు కమాండ్-లైన్ Git క్లయింట్‌తో లేదా అందుబాటులో ఉన్న బహుళ గ్రాఫికల్ " +"క్లయింట్‌లతో కోడ్ మార్పులను అప్‌లోడ్ చేయవచ్చు. మరియు మీరు మీ కోడ్‌ని ప్రపంచవ్యాప్తంగా ఉన్న వ్యక్తులతో " +"పంచుకోవచ్చు." #: plinth/modules/gitweb/__init__.py:33 -#, fuzzy msgid "" "To learn more on how to use Git visit Git tutorial." msgstr "" -"Git ని ఎలా ఉపయోగించాలో మరింత తెలుసుకోవడానికి Git tutorial ని సందర్శించండి." +"Gitని ఎలా ఉపయోగించాలో మరింత తెలుసుకోవడానికి Git ట్యుటోరియల్ని సందర్శించండి." #: plinth/modules/gitweb/__init__.py:51 msgid "Read-write access to Git repositories" -msgstr "" +msgstr "Git రిపోజిటరీలకు చదవడానికి-వ్రాయడానికి యాక్సెస్" #: plinth/modules/gitweb/__init__.py:56 plinth/modules/gitweb/manifest.py:10 msgid "Gitweb" -msgstr "" +msgstr "గిట్వెబ్" #: plinth/modules/gitweb/__init__.py:57 msgid "Simple Git Hosting" -msgstr "" +msgstr "సాధారణ Git హోస్టింగ్" #: plinth/modules/gitweb/forms.py:59 -#, fuzzy -#| msgid "Invalid hostname" msgid "Invalid repository URL." -msgstr "ఆతిథ్యనామం చెల్లనిది" +msgstr "చెల్లని రిపోజిటరీ URL." #: plinth/modules/gitweb/forms.py:69 -#, fuzzy -#| msgid "Invalid hostname" msgid "Invalid repository name." -msgstr "ఆతిథ్యనామం చెల్లనిది" +msgstr "చెల్లని రిపోజిటరీ పేరు." #: plinth/modules/gitweb/forms.py:77 msgid "Name of a new repository or URL to import an existing repository." -msgstr "" +msgstr "ఇప్పటికే ఉన్న రిపోజిటరీని దిగుమతి చేయడానికి కొత్త రిపోజిటరీ పేరు లేదా URL." #: plinth/modules/gitweb/forms.py:83 msgid "Description of the repository" -msgstr "" +msgstr "రిపోజిటరీ వివరణ" #: plinth/modules/gitweb/forms.py:84 plinth/modules/gitweb/forms.py:88 msgid "Optional, for displaying on Gitweb." @@ -2298,114 +2265,90 @@ msgid "Repository's owner name" msgstr "రిపోజిటరీ యొక్క యజమాని పేరు" #: plinth/modules/gitweb/forms.py:91 -#, fuzzy -#| msgid "Create User" msgid "Private repository" -msgstr "వినియోగదారుని సృష్టించు" +msgstr "స్వంత రిపోజిటరీ" #: plinth/modules/gitweb/forms.py:92 msgid "Allow only authorized users to access this repository." msgstr "ఈ రిపోజిటరీని యాక్సెస్ చేయడానికి అధికారం ఉన్న వినియోగదారులను మాత్రమే అనుమతించండి." #: plinth/modules/gitweb/forms.py:113 plinth/modules/gitweb/forms.py:155 -#, fuzzy msgid "A repository with this name already exists." -msgstr "ఈ సేవ ఇప్పటికే ఉంది" +msgstr "ఈ పేరుతో ఒక రిపోజిటరీ ఇప్పటికే ఉంది." #: plinth/modules/gitweb/forms.py:126 -#, fuzzy -#| msgid "Name of the share" msgid "Name of the repository" -msgstr "షేర్ యొక్క పేరు" +msgstr "రిపోజిటరీ పేరు" #: plinth/modules/gitweb/forms.py:130 -#, fuzzy -#| msgid "" -#| "A lowercase alpha-numeric string that uniquely identifies a share. " -#| "Example: media." msgid "An alpha-numeric string that uniquely identifies a repository." -msgstr "ప్రత్యేకంగా ఒక వాటాను గుర్తించే చిన్న అక్షర సంఖ్యా స్ట్రింగ్. ఉదాహరణ: media." +msgstr "" +"భాగస్వామ్యాన్ని ప్రత్యేకంగా గుర్తించే లోయర్‌కేసన్ ఆల్ఫా-న్యూమరిక్ స్ట్రింగ్. ఉదాహరణ: <em>మీడియా</" +"em>రిపోజిటరీ." #: plinth/modules/gitweb/forms.py:134 -#, fuzzy -#| msgid "Default Skin" msgid "Default branch" msgstr "డిఫాల్ట్ చర్మం" #: plinth/modules/gitweb/forms.py:135 msgid "Gitweb displays this as a default branch." -msgstr "" +msgstr "Gitweb దీన్ని డిఫాల్ట్ బ్రాంచ్‌గా ప్రదర్శిస్తుంది." #: plinth/modules/gitweb/manifest.py:18 msgid "Git" msgstr "గిట్" #: plinth/modules/gitweb/templates/gitweb_configure.html:13 -#, fuzzy -#| msgid "Create User" msgid "Manage Repositories" -msgstr "వినియోగదారుని సృష్టించు" +msgstr "రిపోజిటరీలను నిర్వహించండి" #: plinth/modules/gitweb/templates/gitweb_configure.html:17 #: plinth/modules/gitweb/templates/gitweb_configure.html:19 -#, fuzzy -#| msgid "Create User" msgid "Create repository" -msgstr "వినియోగదారుని సృష్టించు" +msgstr "యూజర్ రిపోజిటరీని సృష్టించండి" #: plinth/modules/gitweb/templates/gitweb_configure.html:26 -#, fuzzy -#| msgid "Tor relay port available" msgid "No repositories available." -msgstr "టార్ రిలే పోర్ట్ అందుబాటులో ఉంది" +msgstr "రిపోజిటరీలు ఏవీ అందుబాటులో లేవు." #: plinth/modules/gitweb/templates/gitweb_configure.html:35 -#, fuzzy, python-format -#| msgid "Go to site %(site)s" +#, python-format msgid "Go to repository %(repo.name)s" -msgstr "ప్రదేశం కు వెళ్ళండి %(site)s" +msgstr "రిపోజిటరీ %(repo.name)sకి వెళ్లండి" #: plinth/modules/gitweb/templates/gitweb_configure.html:42 msgid "Cloning…" -msgstr "" +msgstr "క్లోనింగ్…" #: plinth/modules/gitweb/templates/gitweb_configure.html:59 -#, fuzzy, python-format -#| msgid "Delete user %(username)s" +#, python-format msgid "Delete repository %(repo.name)s" -msgstr "వినియోగదారి %(username)s ను తొలగించు" +msgstr "రిపోజిటరీ %(repo.name)sని తొలగించండి" #: plinth/modules/gitweb/templates/gitweb_delete.html:12 -#, fuzzy, python-format -#| msgid "Delete Wiki or Blog %(name)s" +#, python-format msgid "Delete Git Repository %(name)s" -msgstr "వికీ లేదా బ్లాగ్ తొలగించు %(name)s" +msgstr "Git రిపోజిటరీ %(name)sని తొలగించండి" #: plinth/modules/gitweb/templates/gitweb_delete.html:18 -#, fuzzy -#| msgid "Delete connection %(name)s permanently?" msgid "Delete this repository permanently?" -msgstr "%(name)s అనుసంధానం శాశ్వతంగా తొలగించు ?" +msgstr "ఈ రిపోజిటరీని శాశ్వతంగా తొలగించాలా?" #: plinth/modules/gitweb/views.py:45 msgid "Repository created." msgstr "రిపోజిటరీ సృష్టించబడింది." #: plinth/modules/gitweb/views.py:69 -#, fuzzy -#| msgid "An error occurred during configuration." msgid "An error occurred while creating the repository." -msgstr "అక్రుతీకరణలో ఒక పొరపాటు జరిగింది." +msgstr "రిపోజిటరీని సృష్టిస్తున్నప్పుడు లోపం సంభవించింది." #: plinth/modules/gitweb/views.py:84 msgid "Repository edited." msgstr "రిపోజిటరీ సవరించబడింది." #: plinth/modules/gitweb/views.py:89 -#, fuzzy -#| msgid "Create User" msgid "Edit repository" -msgstr "వినియోగదారుని సృష్టించు" +msgstr "రిపోజిటరీని సవరించండి" #: plinth/modules/help/__init__.py:35 msgid "Documentation" @@ -2413,11 +2356,9 @@ msgstr "పత్రావళి" #: plinth/modules/help/__init__.py:39 plinth/templates/help-menu.html:20 #: plinth/templates/help-menu.html:21 plinth/templates/index.html:128 -#, fuzzy -#| msgid "Manual" msgctxt "User guide" msgid "Manual" -msgstr "కరదీపిక" +msgstr "నిర్దేశిక" #: plinth/modules/help/__init__.py:43 #: plinth/modules/help/templates/help_support.html:9 @@ -2453,12 +2394,11 @@ msgstr "" "మీరు %(os_release)s మరియు %(box_name)s రూపాంతరం %(version)s ను నడుపుతున్నారు." #: plinth/modules/help/templates/help_about.html:23 -#, fuzzy, python-format -#| msgid "There is a new %(box_name)s version available." +#, python-format msgid "" "There is a new %(box_name)s version available." -msgstr "%(box_name)s యొక్క కొత్త వెర్షన్ అందుబాటులో ఉంది." +msgstr "కొత్త %(box_name)s వెర్షన్ అందుబాటులో ఉంది." #: plinth/modules/help/templates/help_about.html:28 #: plinth/modules/upgrades/templates/upgrades_configure.html:37 @@ -2467,7 +2407,7 @@ msgid "%(box_name)s is up to date." msgstr "%(box_name)s తాజాగా ఉంది." #: plinth/modules/help/templates/help_about.html:35 -#, fuzzy, python-format +#, 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 " @@ -2477,8 +2417,11 @@ msgid "" "and a Tor relay, on a device that can replace your Wi-Fi router, so that " "your data stays with you." msgstr "" -"%(box_name)s వ్యక్తిగత మరియు స్వీయ సమాచార కార్యకలాపాలను నడుపుటకు రూపకల్పన చేయుటకు మరియు " -"అభివృద్ది" +"%(box_name)s అనేది ప్రైవేట్, వ్యక్తిగత కమ్యూనికేషన్‌ల కోసం ఉచిత సాఫ్ట్‌వేర్‌ని నడుపుతున్న వ్యక్తిగత " +"సర్వర్‌లను అభివృద్ధి చేయడానికి, రూపొందించడానికి మరియు ప్రోత్సహించడానికి ఒక సంఘం ప్రాజెక్ట్. ఇది రక్షిత గోప్యత " +"మరియు డేటా భద్రత పరిస్థితులలో మిగిలిన ఇంటర్నెట్‌తో ఇంటర్‌ఫేసింగ్‌ను అనుమతించడానికి రూపొందించబడిన నెట్‌వర్కింగ్ " +"ఉపకరణం. ఇది మీ Wi-Fi రూటర్‌ని భర్తీ చేయగల పరికరంలో బ్లాగ్, వికీ, వెబ్‌సైట్, సోషల్ నెట్‌వర్క్, ఇమెయిల్, వెబ్ " +"ప్రాక్సీ మరియు టోర్ రిలే వంటి అప్లికేషన్‌లను హోస్ట్ చేస్తుంది, తద్వారా మీ డేటా మీ వద్ద ఉంటుంది." #: plinth/modules/help/templates/help_about.html:48 msgid "" @@ -2516,10 +2459,8 @@ msgstr "" "org/FreedomBox\"> %(box_name)s వికీ ను దర్శించండి." #: plinth/modules/help/templates/help_about.html:78 -#, fuzzy -#| msgid "Learn more..." msgid "Learn more" -msgstr "మరింత తెలుసుకోండి.." +msgstr "మరింత తెలుసుకోండి" #: plinth/modules/help/templates/help_base.html:21 #: plinth/modules/help/templates/help_index.html:61 @@ -2590,6 +2531,10 @@ msgid "" "tracker to let our developers know. To report, first check if the issue " "is already reported and then use the \"New issue\" button." msgstr "" +"మీరు ఏవైనా బగ్‌లు లేదా సమస్యలను కనుగొంటే, దయచేసి మా డెవలపర్‌లను అనుమతించడానికి ఇష్యూ " +"ట్రాకర్‌ని ఉపయోగించండి తెలుసు. నివేదించడానికి, సమస్య ఇప్పటికే నివేదించబడిందో లేదో తనిఖీ చేసి, ఆపై \"కొత్త " +"సమస్య\" బటన్‌ను ఉపయోగించండి." #: plinth/modules/help/templates/help_feedback.html:36 msgid "Thank you!" @@ -2644,10 +2589,8 @@ msgstr "" "కోరవచ్చు." #: plinth/modules/help/templates/help_manual.html:18 -#, fuzzy -#| msgid "downloading" msgid "Download as PDF" -msgstr "దిగుమతి అవుతోంది" +msgstr "PDFగా డౌన్‌లోడ్ చేయండి" #: plinth/modules/help/templates/help_support.html:12 #, python-format @@ -2656,12 +2599,16 @@ msgid "" "using %(box_name)s, you can ask for help from our community of users and " "contributors." msgstr "" +"ఒక వేళా మీకు ఏదైనా పూర్తి చేయడానికి సహాయం అవసరమయితే లేదా దీన్ని %(box_name)s , ఉపయోగయించడం వలన ," +"మీకు సమస్య వస్తే మా వినియోగదారులు మరియు సహకారుల సంఘం నుంచి సహాయం కోరగలరు ." #: plinth/modules/help/templates/help_support.html:20 msgid "" "Search for past discussions or post a new query on our discussion forum." msgstr "" +"గత చర్చల కోసం శోధించండి లేదా కొత్త ప్రశ్నను దీనిలో discussion forumపోస్ట్ చేయండి ." #: plinth/modules/help/templates/help_support.html:27 msgid "" @@ -2670,22 +2617,26 @@ msgid "" "Or send an email to our mailing list." msgstr "" +"మీరు మా యొక్క IRC మరియు Matrix ఛానల్ లో చాట్ చేయవచ్చు (bridged):
  • #freedombox on " +"irc.oftc.net
  • #freedombox:matrix.org
\n" +"లేదా మాకు ఇమెయిల్ పంపండి mailing list." #: plinth/modules/help/templates/statuslog.html:10 msgid "Status Log" msgstr "స్థితి లాగ్" #: plinth/modules/help/templates/statuslog.html:13 -#, fuzzy, python-format +#, 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 "" -"ఈ చివరి% (num_lines) లు ఈ వెబ్ ఇంటర్ఫేస్ స్థితి లాగ్ 1 రేఖలు. మీరు ఒక బగ్ను నివేదించి అనుకుంటే, " -"దయచేసి 2bug ట్రాకర్ " -"తప్పుల నివేదిక ఈ స్థితి లాగ్ అటాచ్ 3 మరియు ఉపయోగించడానికి." +"ఇవి ఈ వెబ్ ఇంటర్‌ఫేస్ కోసం స్టేటస్ లాగ్ యొక్క చివరి %(num_lines)s లైన్‌లు. మీరు బగ్‌ను " +"నివేదించాలనుకుంటే, దయచేసి బగ్ ట్రాకర్‌ని ఉపయోగించండి మరియు బగ్ నివేదికకు ఈ స్థితి లాగ్‌ను జోడించండి ." #: plinth/modules/help/templates/statuslog.html:24 msgid "" @@ -2716,47 +2667,43 @@ msgid "" "anonymity by sending encrypted traffic through a volunteer-run network " "distributed around the world." msgstr "" +"ఇన్విజిబుల్ ఇంటర్నెట్ ప్రాజెక్ట్ అనేది సెన్సార్‌షిప్ మరియు నిఘా నుండి కమ్యూనికేషన్‌ను రక్షించడానికి ఉద్దేశించిన " +"అనామక నెట్‌వర్క్ లేయర్. I2P ప్రపంచవ్యాప్తంగా పంపిణీ చేయబడిన వాలంటీర్-రన్ నెట్‌వర్క్ ద్వారా ఎన్‌క్రిప్టెడ్ ట్రాఫిక్‌ను " +"పంపడం ద్వారా అనామకతను అందిస్తుంది." #: plinth/modules/i2p/__init__.py:26 -#, fuzzy -#| msgid "" -#| "For more information about the %(box_name)s project, see the %(box_name)s Wiki." msgid "" "Find more information about I2P on their project homepage." msgstr "" -"%(box_name)s ప్రాజెక్ట్ కి సంబందించిన మరింత సమాచారం కోసం %(box_name)s వికీ ను దర్శించండి." +"వారి పథకం హోమ్‌పేజీలో I2P గురించి " +"మరింత సమాచారాన్ని కనుగొనండి." #: plinth/modules/i2p/__init__.py:28 msgid "" "The first visit to the provided web interface will initiate the " "configuration process." -msgstr "" +msgstr "అందించిన వెబ్ ఇంటర్‌ఫేస్‌కు మొదటి సందర్శన కాన్ఫిగరేషన్ ప్రక్రియను ప్రారంభిస్తుంది." #: plinth/modules/i2p/__init__.py:52 -#, fuzzy -#| msgid "Enable application" msgid "Manage I2P application" -msgstr "అనువర్తనాన్ని చేతనించు" +msgstr "I2P కార్యక్షేతాన్ని నిర్వహించండి" #: plinth/modules/i2p/__init__.py:55 plinth/modules/i2p/manifest.py:13 msgid "I2P" -msgstr "" +msgstr "ఇ౨ప్" #: plinth/modules/i2p/__init__.py:56 plinth/modules/tor/__init__.py:51 msgid "Anonymity Network" msgstr "అజ్ఞాత జాలిక" #: plinth/modules/i2p/__init__.py:82 -#, fuzzy msgid "I2P Proxy" -msgstr "వెబ్ ప్రాక్సీ (Privoxy)" +msgstr "I2P ప్రాతినిధ్య" #: plinth/modules/i2p/templates/i2p.html:12 msgid "I2P Proxies and Tunnels" -msgstr "" +msgstr "I2P ప్రాతినిధ్య మరియు టన్నెల్స్" #: plinth/modules/i2p/templates/i2p.html:21 #: plinth/modules/i2p/templates/i2p.html:34 plinth/templates/clients.html:28 @@ -2765,7 +2712,7 @@ msgstr "ప్రారంభించు" #: plinth/modules/i2p/templates/i2p.html:25 msgid "Anonymous Torrents" -msgstr "" +msgstr "అనామక టోరెంట్స్" #: plinth/modules/i2p/views.py:16 msgid "" @@ -2773,12 +2720,16 @@ msgid "" "For this, your browser, preferably the Tor Browser, needs to be configured " "with a proxy." msgstr "" +"I2P మీరు ఇంటర్నెట్ మరియు దాచిన సేవలను (ఈప్‌సైట్‌లు) అనామకంగా అన్వేశించడానికి అనుమతిస్తుంది. దీని కోసం, " +"మీ అన్వేషి, ప్రాధాన్యంగా టోర్ అన్వేషి,ప్రాతినిధ్య కాన్ఫిగర్ చేయబడాలి." #: plinth/modules/i2p/views.py:19 msgid "" "By default HTTP, HTTPS and IRC proxies are available. Additional proxies and " "tunnels may be configured using the tunnel configuration interface." msgstr "" +"అప్రమేయంగా HTTP, HTTPS మరియు IRC “ప్రాతినిధ్య అందుబాటులో ఉన్నాయి. టన్నెల్ కాన్ఫిగరేషన్ సంవిధానంని " +"ఉపయోగించి అదనపు ప్రాతినిధ్య మరియు టన్నెల్‌లు కాన్ఫిగర్ చేయబడవచ్చు." #: plinth/modules/i2p/views.py:24 msgid "" @@ -2786,41 +2737,31 @@ msgid "" "network. Download files by adding torrents or create a new torrent to share " "a file." msgstr "" +"పీర్-టు-పీర్ నెట్‌వర్క్‌లో అనామకంగా ఫైల్‌లను డౌన్‌లోడ్ చేయడానికి I2P కార్యక్షేత్రం అందిస్తుంది. టొరెంట్‌లను " +"జోడించడం ద్వారా దస్త్రంలను సమాచార దిగుమతి చేయండి లేదా దస్త్రంలను భాగస్వామ్యం చేయడానికి కొత్త టొరెంట్‌ని " +"సృష్టించండి." #: plinth/modules/ikiwiki/__init__.py:22 -#, fuzzy -#| 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. When enabled, the blogs and " -#| "wikis will be available at /ikiwiki (once " -#| "created)." 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 "" -"ఇకివికీ ఒక సాధారణ వికీ మరియు బ్లాగ్ అప్లికేషన్. ఇది అనేక తేలికైన మార్కప్ బాషలకు మరియు వ్యాఖ్యానాలు, ఆర్.ఎస్." -"ఎస్ ఫీడ్లు వంటి సాధారణ బ్లాగింగ్ కార్యాచరణకు సహకరిస్తుంది. దీన్ని ఆమోదించినప్పుడు మీ బ్లాగులు మరియు " -"వికీలు /ikiwiki వద్ద అందుబాటులో ఉంటాయి(తయారుచేసిన తరువాత)." +"ikiwiki అనేది ఒక సాధారణ వికీ మరియు బ్లాగ్ అప్లికేషన్. ఇది మార్క్‌డౌన్‌తో సహా పలు తేలికపాటి మార్కప్ భాషలకు " +"మరియు వ్యాఖ్యలు మరియు RSS ఫీడ్‌ల వంటి సాధారణ బ్లాగింగ్ కార్యాచరణకు మద్దతు ఇస్తుంది." #: plinth/modules/ikiwiki/__init__.py:26 -#, fuzzy, 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." +#, 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 "" -"admin సమూహంలో కేవలం {box_name} వినియోగదారులు బ్లాగులను మరియు వికీలను " -"సృష్టించవచ్చు మరియు నిర్వహించవచ్చు , కానీ wiki సమూహంలోని ఏ యూజర్ అయినా " -"ఇప్పటికే ఉన్న వాటిని సవరించగలరు. వినియోగదారు " -"ఆకృతీకరణ లో మీరు అనుమతులను మార్చవచ్చు లేదా క్రొత్త వినియోగదారులను చేర్చవచ్చు." +"అడ్మిన్ సమూహంలోని {box_name} వినియోగదారులు మాత్రమే బ్లాగులు మరియు వికీలను " +"సృష్టించగలరు మరియు నిర్వహించగలరు కానీ wikiలోని ఏ వినియోగదారు అయినా > " +"సమూహం ఇప్పటికే ఉన్న వాటిని సవరించవచ్చు. వినియోగదారు " +"కాన్ఫిగరేషన్లో మీరు ఈ అనుమతులను మార్చవచ్చు లేదా కొత్త వినియోగదారులను జోడించవచ్చు." #: plinth/modules/ikiwiki/__init__.py:49 plinth/modules/ikiwiki/manifest.py:6 msgid "ikiwiki" @@ -2907,10 +2848,9 @@ msgid "Could not create blog: {error}" msgstr "బ్లాగు సృష్టించలేము: {error}" #: plinth/modules/ikiwiki/views.py:101 -#, fuzzy, python-brace-format -#| msgid "{name} deleted." +#, python-brace-format msgid "{title} deleted." -msgstr "{name} తొలగించబడింది." +msgstr "{title} తొలగించబడింది." #: plinth/modules/ikiwiki/views.py:105 #, python-brace-format @@ -2978,7 +2918,7 @@ msgid "JavaScript license information" msgstr "జావాస్క్రిప్ట్ లైసెన్స్ సమాచరం" #: plinth/modules/letsencrypt/__init__.py:28 -#, fuzzy, python-brace-format +#, 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 " @@ -2986,23 +2926,22 @@ msgid "" "domain. It does so by proving itself to be the owner of a domain to Let's " "Encrypt, a certificate authority (CA)." msgstr "" -"ఒక డిజిటల్ సర్టిఫికెట్ వెబ్ సేవ వినియోగదారులు సేవ యొక్క గుర్తింపును ధ్రువీకరించడం మరియు సురక్షితంగా అది " -"సంభాషించడానికి అనుమతిస్తుంది. {Box_name} 1 స్వయంచాలకంగా పొందటానికి మరియు ప్రతి అందుబాటులో డొమైన్ " -"కొరకు సెటప్ డిజిటల్ సర్టిఫికెట్లు చేయవచ్చు. ఇది ఎన్క్రిప్ట్ తెలపండి ఒక డొమైన్ యొక్క యజమాని, ధృవపత్ర (CA) " -"ఉన్నట్లు రుజువు చేసుకుంటూ అవుతున్నారు." +"డిజిటల్ సర్టిఫికేట్ వెబ్ సేవ యొక్క వినియోగదారులను సేవ యొక్క గుర్తింపును ధృవీకరించడానికి మరియు దానితో " +"సురక్షితంగా సంభాషణ చేయడానికి అనుమతిస్తుంది. అందుబాటులో ఉన్న ప్రతి అధికారక్షేత్రం కోసం {box_name} " +"స్వయం చాలక డిజిటల్ సర్టిఫికెట్‌లను పొందవచ్చు మరియు అమర్చిపెట్టు చేయగలదు. ఇది సర్టిఫికేట్ అథారిటీ (CA) " +"లెట్స్ ఎన్‌క్రిప్ట్‌కు అధికారక్షేత్రం యజమాని అని నిరూపించుకోవడం ద్వారా అలా చేస్తుంది." #: plinth/modules/letsencrypt/__init__.py:34 -#, fuzzy 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 "" -"లెట్స్ ఎన్క్రిప్ట్ ఇంటర్నెట్ సెక్యూరిటీ రీసెర్చ్ గ్రూప్ (ISRG) ద్వారా ప్రజల ప్రయోజనం కోసం అమలు ఉచిత, " -"స్వయంచాలక, మరియు బహిరంగ సర్టిఫికెట్ అధికారం, ఉంది. చదవండి మరియు ఈ సేవ ఉపయోగించి ముందు 1Let యొక్క ఎన్క్రిప్ట్ సబ్స్క్రయిబర్ ఒప్పందం 2 తో అంగీకరిస్తున్నారు." +"లెట్స్ ఎన్‌క్రిప్ట్ అనేది ఇంటర్నెట్ సెక్యూరిటీ రీసెర్చ్ గ్రూప్ (ISRG) ద్వారా ప్రజల ప్రయోజనం కోసం నిర్వహించబడే " +"ఉచిత, స్వయంచాలక మరియు ఓపెన్ సర్టిఫికెట్ అథారిటీ. దయచేసి ఈ సేవను ఉపయోగించే ముందు సభ్యుల ఒప్పందాన్ని ఎన్‌క్రిప్ట్ చేద్దాంని చదివి, " +"అంగీకరించండి." #: plinth/modules/letsencrypt/__init__.py:61 msgid "Let's Encrypt" @@ -3014,7 +2953,7 @@ msgstr "యోగ్యతాపత్రాలు" #: plinth/modules/letsencrypt/__init__.py:98 msgid "Cannot test: No domains are configured." -msgstr "" +msgstr "పరీక్షించడం సాధ్యం కాదు: డొమైన్‌లు ఏవీ కాన్ఫిగర్ చేయబడలేదు." #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" @@ -3073,15 +3012,18 @@ msgstr "పొందు" msgid "" "No domains have been configured. Configure " "domains to be able to obtain certificates for them." -msgstr "తోబుట్టువుల డొమైన్లు కన్ఫిగర్ చేయబడ్డాయి. వారికి సర్టిఫికేట్లు పొందగలగటం డొమైన్ ఆకృతీకరించుము." +msgstr "" +"తోబుట్టువుల అధికారక్షేత్రం కన్ఫిగర్ చేయబడ్డాయి. వారికి సర్టిఫికేట్లు పొందగలగటం అధికారక్షేత్రం " +"ఆకృతీకరించుము. %(config_url)s" #: plinth/modules/letsencrypt/views.py:41 -#, fuzzy, python-brace-format -#| msgid "Certificate successfully revoked for domain {domain}" +#, python-brace-format msgid "" "Certificate successfully revoked for domain {domain}.This may take a few " "moments to take effect." -msgstr "{domain} డోమైన్ కొరకు సర్టిఫికేట్ ఉప్సంహరుంచుకొనబడింది" +msgstr "" +"డొమైన్ {domain} కోసం సర్టిఫికేట్ విజయవంతంగా ఉపసంహరించబడింది. ఇది అమలులోకి రావడానికి కొన్ని క్షణాలు " +"పట్టవచ్చు." #: plinth/modules/letsencrypt/views.py:47 #, python-brace-format @@ -3119,6 +3061,11 @@ msgid "" "not require phone numbers to work. Users on a given Matrix server can " "converse with users on all other Matrix servers via federation." msgstr "" +"ఇది Matrix ఓపెన్, ఫెడరేటెడ్ " +"ఇన్‌స్టంట్ మెసేజింగ్ మరియు VoIP కోసం కొత్త పర్యావరణ వ్యవస్థ.Synapse అనేది మ్యాట్రిక్స్ ప్రోటోకాల్‌ను అమలు " +"చేసే సర్వర్. ఇది చాట్ సమూహాలు, ఆడియో/వీడియో కాల్‌లు, ఎండ్-టు-ఎండ్ ఎన్‌క్రిప్షన్, బహుళ పరికర సమకాలీకరణను " +"అందిస్తుంది మరియు పని చేయడానికి ఫోన్ నంబర్‌లు అవసరం లేదు. ఇచ్చిన మ్యాట్రిక్స్ సర్వర్‌లోని వినియోగదారులు " +"ఫెడరేషన్ ద్వారా అన్ని ఇతర మ్యాట్రిక్స్ సర్వర్‌లలోని వినియోగదారులతో సంభాషించవచ్చు." #: plinth/modules/matrixsynapse/__init__.py:37 #, python-brace-format @@ -3126,6 +3073,8 @@ msgid "" "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Coturn app or configure an external server." msgstr "" +"Matrix Synapseకి ఆడియో/వీడియో కాల్‌ల కోసం STUN/TURN సర్వర్ అవసరం.Coturn యాప్‌ను ఇన్‌స్టాల్ చేయండి లేదా బాహ్య సర్వర్‌ను కాన్ఫిగర్ చేయండి." #: plinth/modules/matrixsynapse/__init__.py:70 msgid "Matrix Synapse" @@ -3151,14 +3100,16 @@ msgid "" "server for Matrix Synapse. Disable this if you want to use a different STUN/" "TURN server." msgstr "" +"Matrix Synapse కోసం స్థానిక coturn యాప్‌ని STUN/TURN " +"సర్వర్‌గా కాన్ఫిగర్ చేస్తుంది. మీరు వేరే STUN/TURN సర్వర్‌ని ఉపయోగించాలనుకుంటే దీన్ని నిలిపివేయండి." #: plinth/modules/matrixsynapse/manifest.py:14 msgid "Element" -msgstr "" +msgstr "మూలకం" #: plinth/modules/matrixsynapse/manifest.py:48 msgid "FluffyChat" -msgstr "" +msgstr "FluffyChat" #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15 #: plinth/modules/snapshot/templates/snapshot.html:12 @@ -3221,6 +3172,9 @@ msgid "" "with other Matrix Synapse instances requires a valid TLS certificate. Please " "go to Let's Encrypt to obtain one." msgstr "" +"కాన్ఫిగర్ చేయబడిన డొమైన్ పేరు స్వీయ సంతకం చేసిన ప్రమాణపత్రాన్ని ఉపయోగిస్తోంది. ఇతర మ్యాట్రిక్స్ సినాప్స్ ఉదంతాలతో " +"కూడిన ఫెడరేషన్‌కు చెల్లుబాటు అయ్యే TLS ప్రమాణపత్రం అవసరం. దయచేసి ఒకదాన్ని పొందడానికి లెట్స్ ఎన్‌క్రిప్ట్కి వెళ్లండి." #: plinth/modules/mediawiki/__init__.py:23 msgid "" @@ -3241,6 +3195,10 @@ msgid "" "from MediaWiki itself by going to the Special:CreateAccount page." msgstr "" +"ఈ MediaWiki ఉదాహరణ యాదృచ్ఛికంగా రూపొందించబడిన నిర్వాహక పాస్‌వర్డ్‌తో వస్తుంది. మీరు \"కాన్ఫిగరేషన్\" " +"విభాగంలో కొత్త పాస్‌వర్డ్‌ను సెట్ చేయవచ్చు మరియు \"అడ్మిన్\" ఖాతాను ఉపయోగించి లాగిన్ చేయవచ్చు. అప్పుడు మీరు " +"Special:" +"CreateAccount పేజీకి వెళ్లడం ద్వారా MediaWiki నుండే మరిన్ని వినియోగదారు ఖాతాలను సృష్టించవచ్చు." #: plinth/modules/mediawiki/__init__.py:33 msgid "" @@ -3271,16 +3229,16 @@ msgstr "" "ఉంచాలనుకుంటే ఈ ఫీల్డ్ ను ఖాళీగా వదిలేయండి." #: plinth/modules/mediawiki/forms.py:58 -#, fuzzy -#| msgid "Service" msgid "Server URL" -msgstr "సేవ" +msgstr "సేవిక URL" #: plinth/modules/mediawiki/forms.py:59 msgid "" "Used by MediaWiki to generate URLs that point to the wiki such as in footer, " "feeds and emails." msgstr "" +"ఫుటర్, ఫీడ్‌లు మరియు ఇమెయిల్‌లు వంటి వికీని సూచించే URLలను రూపొందించడానికి MediaWiki ద్వారా " +"ఉపయోగించబడుతుంది." #: plinth/modules/mediawiki/forms.py:64 msgid "Enable public registrations" @@ -3297,16 +3255,12 @@ msgid "Enable private mode" msgstr "ప్రైవేట్ మోడ్‌ను ప్రారంభించండి" #: plinth/modules/mediawiki/forms.py:70 -#, fuzzy -#| msgid "" -#| "If enabled, Access will be restricted. Only people who have accounts can " -#| "read/write to the wiki. Public registrations will also be disabled." 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 "" -"ఇది సశక్త పరిచినట్లయితే, ప్రవేశము నియంత్రించబడుతుంది. ఎవరికీ అయితే ఇప్పటికే ఖాతా ఉందో, వారే మీ వికీని " -"చదవగలరు/మార్చగలరు. ప్రజా నమోదు కూడా ఆపివేయబడుతింది." +"ప్రారంభించబడితే, సాంగత్యం పరిమితం చేయబడుతుంది. ఖాతాలు ఉన్నవారు మాత్రమే వికీలో చదవగలరు/వ్రాయగలరు. " +"ప్రజా రిజిస్ట్రేషన్లు కూడా నిలిపివేయబడతాయి." #: plinth/modules/mediawiki/forms.py:75 msgid "Default Skin" @@ -3345,22 +3299,20 @@ msgid "Default skin changed" msgstr "డిఫాల్ట్ చర్మం మార్చబడింది" #: plinth/modules/mediawiki/views.py:90 -#, fuzzy -#| msgid "{name} deleted." msgid "Server URL updated" -msgstr "{name} తొలగించబడింది." +msgstr "సర్వర్ URL నవీకరించబడింది" #: plinth/modules/minetest/__init__.py:34 -#, fuzzy, python-brace-format +#, 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 "" -"Minetest ఒక మల్టీప్లేయర్ అనంతం ప్రపంచ బ్లాక్ శాండ్బాక్స్ ఉంది. ఈ మాడ్యూల్ డిఫాల్ట్ పోర్ట్ (30000) పై " -"Minetest సర్వర్ ఈ {box_name} 1 అమలు సహకరిస్తుంది. సర్వర్కు కనెక్ట్ చెయ్యడానికి ఒక 2Minetest క్లైంట్ 3 అవసరమవుతుంది." +"Minetest అనేది మల్టీప్లేయర్ అనంత-వరల్డ్ బ్లాక్ శాండ్‌బాక్స్. ఈ మాడ్యూల్ డిఫాల్ట్ పోర్ట్‌లో (30000) ఈ " +"{box_name}లో Minetest సర్వర్‌ని అమలు చేయడానికి అనుమతిస్తుంది. సర్వర్‌కి కనెక్ట్ చేయడానికి, Minetest క్లయింట్ అవసరం." #: plinth/modules/minetest/__init__.py:59 plinth/modules/minetest/manifest.py:9 msgid "Minetest" @@ -3385,49 +3337,35 @@ msgid "Enable creative mode" msgstr "క్రియేటివ్ మోడ్‌ను ప్రారంభించండి" #: plinth/modules/minetest/forms.py:20 -#, fuzzy -#| msgid "" -#| "Creative mode changes the rules of the game to make " -#| "it more suitable for creative gameplay, rather " -#| "than challenging \"survival\" gameplay." msgid "" "Creative mode changes the rules of the game to make it more suitable for " "creative gameplay, rather than challenging \"survival\" gameplay." msgstr "" -"క్రియేటివ్ మోడ్ \"మనుగడ\" గేమ్ప్లే సవాలు కంటే, సృజనాత్మక గేమ్ప్లే అనువుగా ఆట నియమాలు మారుస్తుంది." +"సృజనాత్మక సంవిధానం \"మనుగడ\" గేమ్ప్లే సవాలు కంటే, సృజనాత్మక గేమ్ప్లే అనువుగా ఆట నియమాలు " +"మారుస్తుంది." #: plinth/modules/minetest/forms.py:25 msgid "Enable PVP" msgstr "పివిపిని ప్రారంభించండి" #: plinth/modules/minetest/forms.py:26 -#, fuzzy msgid "Enabling Player Vs Player will allow players to damage other players." -msgstr "ప్లేయర్ Vs ప్లేయర్ అనే ఆప్షన్ ని అనుమతిస్తే క్రీడాకారులు ఇతర క్రీడాకారులు దెబ్బతినేలా చూస్తుంది" +msgstr "" +"ప్లేయర్ Vs ప్లేయర్‌ని ఉపయోగించు చేయడం వల్ల ఆటగాళ్లు ఇతర ఆటగాళ్లను పాడయిన చేయడానికి అనుమతిస్తుంది." #: plinth/modules/minetest/forms.py:30 -#, fuzzy msgid "Enable damage" -msgstr "PageKite ప్రారంభించు" +msgstr "నష్టాన్ని ప్రారంభించండి" #: plinth/modules/minetest/forms.py:31 -#, fuzzy -#| msgid "" -#| "When disabled, players cannot die or receive damage " -#| "of any kind" msgid "When disabled, players cannot die or receive damage of any kind." -msgstr "డిసేబుల్ లో ఉన్నప్పుడు, క్రీడాకారులు చనిపోయే లేదా ఏ రకమైన నష్టం అందుకోలేరు" +msgstr "నిరుపయోగం అయినప్పుడు, ఆటగాళ్ళు చనిపోలేరు లేదా ఎలాంటి నష్టాన్ని పొందలేరు." #: plinth/modules/minetest/templates/minetest.html:17 #: plinth/modules/networks/forms.py:54 plinth/modules/networks/forms.py:90 msgid "Address" msgstr "చిరునామా" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "పోర్టు" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3438,14 +3376,19 @@ msgid "" "gaming systems (such as PS3 and Xbox 360) or applications such as totem and " "Kodi." msgstr "" +"MiniDLNA అనేది DLNA/UPnP-AV క్లయింట్‌లకు పూర్తిగా అనుగుణంగా ఉండాలనే లక్ష్యంతో ఒక సాధారణ మీడియా " +"సర్వర్ సాఫ్ట్‌వేర్. MiniDLNA డెమోన్ నెట్‌వర్క్‌లోని క్లయింట్‌లకు మీడియా ఫైల్‌లను (సంగీతం, చిత్రాలు మరియు వీడియో) " +"అందిస్తుంది. DLNA/UPnP అనేది జీరో కాన్ఫిగరేషన్ ప్రోటోకాల్ మరియు పోర్టబుల్ మీడియా ప్లేయర్‌లు, స్మార్ట్‌ఫోన్‌లు, " +"టెలివిజన్‌లు మరియు గేమింగ్ సిస్టమ్‌లు (PS3 మరియు Xbox 360 వంటివి) లేదా టోటెమ్ మరియు కోడి వంటి " +"అప్లికేషన్‌లు వంటి DLNA సర్టిఫికేషన్‌ను పాస్ చేసే ఏదైనా పరికరానికి అనుగుణంగా ఉంటుంది." #: plinth/modules/minidlna/__init__.py:43 msgid "Media streaming server" -msgstr "" +msgstr "మీడియా స్ట్రీమింగ్ సేవిక" #: plinth/modules/minidlna/__init__.py:46 msgid "MiniDLNA" -msgstr "" +msgstr "చిన్న DLNA" #: plinth/modules/minidlna/__init__.py:47 msgid "Simple Media Server" @@ -3453,7 +3396,7 @@ msgstr "సరళమైన మీడియా సేవిక" #: plinth/modules/minidlna/forms.py:13 msgid "Media Files Directory" -msgstr "" +msgstr "మీడియా ఫైల్స్ డైరెక్టరీ" #: plinth/modules/minidlna/forms.py:14 msgid "" @@ -3462,20 +3405,24 @@ msgid "" "that the new directory exists and that is readable from the \"minidlna\" " "user. Any user media directories (\"/home/username/\") will usually work." msgstr "" +"MiniDLNA సర్వర్ కంటెంట్ కోసం చదివే డైరెక్టరీ. దీని యొక్క అన్ని ఉప డైరెక్టరీలు మీడియా ఫైల్‌ల కోసం కూడా స్కాన్ " +"చేయబడతాయి. మీరు డిఫాల్ట్‌ని మార్చినట్లయితే, కొత్త డైరెక్టరీ ఉందని మరియు అది \"minidlna\" వినియోగదారు నుండి " +"చదవగలిగేలా ఉందని నిర్ధారించుకోండి. ఏదైనా వినియోగదారు మీడియా డైరెక్టరీలు (\"/home/username/\") " +"సాధారణంగా పని చేస్తాయి." #: plinth/modules/minidlna/manifest.py:10 msgid "vlc" -msgstr "" +msgstr "వెళ్సి" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" -msgstr "" +msgstr "కోడి" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" -msgstr "" +msgstr "యాక్" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "టోటెమ్" @@ -3496,14 +3443,13 @@ msgstr "" "సాఫ్ట్‌వేర్." #: plinth/modules/mumble/__init__.py:28 -#, fuzzy 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 "" -"మీరు మీ డెస్క్టాప్ నుండి Mumble కనెక్ట్ చేయడానికి సాధారణ నమలు పోర్ట్ 64738. 1Clients 2 మీ నమలు సర్వర్ కనెక్ట్ చేయవచ్చు మరియు Android పరికరాలు " +"మీరు సాధారణ Mumble రేవు 64738లో మీ Mumble సర్వర్‌కి బందించవచ్చు. మీ రంగస్థలం మరియు చరవాణి " +"పరికరాల నుండి Mumbleకి బంధించడానికి క్లయింట్లు " "అందుబాటులో ఉన్నాయి." #: plinth/modules/mumble/__init__.py:48 plinth/modules/mumble/manifest.py:9 @@ -3515,16 +3461,16 @@ msgid "Voice Chat" msgstr "స్వర సంభాషణ" #: plinth/modules/mumble/forms.py:30 -#, fuzzy -#| msgid "SSH server password" msgid "Set SuperUser Password" -msgstr "SSH సర్వర్ పాస్ వర్డ్" +msgstr "సూపర్‌యూజర్ రహస్యపదంని సెట్ చేయండి" #: plinth/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 "" +"ఐచ్ఛికం. ప్రస్తుత పాస్‌వర్డ్‌ను ఉంచడానికి ఈ ఫీల్డ్‌ను ఖాళీగా ఉంచండి. Mumbleలో అనుమతులను నిర్వహించడానికి " +"SuperUser పాస్‌వర్డ్‌ని ఉపయోగించవచ్చు." #: plinth/modules/mumble/manifest.py:34 msgid "Mumblefly" @@ -3532,13 +3478,11 @@ msgstr "ముంబుల్ ఫ్లై" #: plinth/modules/mumble/manifest.py:43 msgid "Mumla" -msgstr "" +msgstr "ముంల" #: plinth/modules/mumble/views.py:39 -#, fuzzy -#| msgid "Password changed successfully." msgid "SuperUser password successfully updated." -msgstr "పాస్‌వర్డ్ విజయవంతంగా మార్చబడినది." +msgstr "సూపర్ యూసర్ ర హస్యపదం విజయవంతంగా మార్చబడినది." #: plinth/modules/names/__init__.py:22 #, python-brace-format @@ -3548,6 +3492,9 @@ msgid "" "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 "" +"నేమ్ సర్వీసెస్ మార్గాల యొక్క అవలోకనాన్ని అందిస్తుంది {box_name}పబ్లిక్ ఇంటర్నెట్ నుండి చేరుకోవచ్చు: డొమైన్ " +"పేరు, టోర్ ఉల్లిపాయ సేవ మరియు పేజ్‌కైట్. ప్రతి రకమైన పేరు కోసం, ఇచ్చిన పేరు ద్వారా ఇన్‌కమింగ్ కనెక్షన్‌ల కోసం " +"HTTP, HTTPS మరియు SSH సేవలు ప్రారంభించబడినా లేదా నిలిపివేయబడినా చూపబడుతుంది." #: plinth/modules/names/__init__.py:43 msgid "Name Services" @@ -3555,27 +3502,27 @@ msgstr "పేరు సేవలు" #: plinth/modules/names/components.py:12 msgid "All" -msgstr "" +msgstr "అన్నీ" #: plinth/modules/names/components.py:16 plinth/modules/names/components.py:20 msgid "All web apps" -msgstr "" +msgstr "అన్నీ వెబ్ యాప్‌లు" #: plinth/modules/names/components.py:24 msgid "Secure Shell" msgstr "సెక్యూర్ షెల్" #: plinth/modules/names/templates/names.html:17 -#, fuzzy -#| msgid "Service" msgid "Services" -msgstr "సేవ" +msgstr "సేవలు" #: plinth/modules/networks/__init__.py:36 msgid "" "Configure network devices. Connect to the Internet via Ethernet, Wi-Fi or " "PPPoE. Share that connection with other devices on the network." msgstr "" +"కాన్ఫిగర్ చేయగల నెట్‌వర్క్ పరికరాలు. ఈథర్నెట్ మరియు Wi-Fi లేదా PPPoE ద్వారా ఇంటర్నెట్‌తో కనెక్ట్ అవ్వండి. " +"నెట్‌వర్క్‌లోని ఇతర పరికరాలతో ఆ కనెక్షన్‌ని భాగస్వామ్యం చేయండి." #: plinth/modules/networks/__init__.py:38 msgid "" @@ -3601,10 +3548,8 @@ msgid "Connection Name" msgstr "అనుసంధానం పేరు" #: plinth/modules/networks/forms.py:30 -#, fuzzy -#| msgid "Interface" msgid "Network Interface" -msgstr "అంతర్ముఖం" +msgstr "నెట్వర్క్ అంతర్ముఖం" #: plinth/modules/networks/forms.py:31 msgid "The network device that this connection should be bound to." @@ -3615,7 +3560,6 @@ msgid "Firewall Zone" msgstr "కంచుకోట క్షేత్రాం" #: plinth/modules/networks/forms.py:35 -#, fuzzy msgid "" "The firewall zone will control which services are available over this " "interfaces. Select Internal only for trusted networks." @@ -3632,22 +3576,25 @@ msgid "" "Automatic (DHCP): Configure automatically, use Internet connection from this " "network" msgstr "" +"స్వయంచాలక (DHCP ): స్వయంచాలకంగా కాన్ఫిగర్ చేయండి, ఈ నెట్‌వర్క్ నుండి ఇంటర్నెట్ కనెక్షన్‌ని ఉపయోగించండి" #: plinth/modules/networks/forms.py:44 msgid "" "Shared: Act as a router, provide Internet connection to other devices on " "this network" msgstr "" +"భాగస్వామ్యం చేయబడింది: రూటర్ వలె పని చేయండి, ఈ నెట్‌వర్క్‌లోని ఇతర పరికరాలకు ఇంటర్నెట్ కనెక్షన్‌ను అందించండి" #: plinth/modules/networks/forms.py:47 plinth/modules/networks/forms.py:85 msgid "" "Manual: Use manually specified parameters, use Internet connection from this " "network" msgstr "" +"నిర్దేశిక : నిర్దేశికంగా పేర్కొన్న పారామితులను ఉపయోగించండి, ఈ నెట్‌వర్క్ నుండి ఇంటర్నెట్ కనెక్షన్‌ని ఉపయోగించండి" #: plinth/modules/networks/forms.py:50 msgid "Disabled: Do not configure this addressing method" -msgstr "" +msgstr "నిలిపివేయబడింది: ఈ చిరునామా పద్ధతిని కాన్ఫిగర్ చేయవద్దు" #: plinth/modules/networks/forms.py:57 msgid "Netmask" @@ -3674,7 +3621,6 @@ msgid "DNS Server" msgstr "DNS సేవకం" #: plinth/modules/networks/forms.py:66 -#, fuzzy 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." @@ -3687,7 +3633,6 @@ msgid "Second DNS Server" msgstr "ద్వితీయ DNS సేవకం" #: plinth/modules/networks/forms.py:72 -#, fuzzy 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." @@ -3702,20 +3647,21 @@ msgstr "IPv6 చిరునామా ఇచ్చు పద్ధతి" #: plinth/modules/networks/forms.py:79 msgid "" "Automatic: Configure automatically, use Internet connection from this network" -msgstr "" +msgstr "స్వయంచాలికమైన : స్వయంచాలకంగా కాన్ఫిగర్ చేయండి, ఈ నెట్‌వర్క్ నుండి ఇంటర్నెట్ కనెక్షన్‌ని ఉపయోగించండి" #: plinth/modules/networks/forms.py:82 msgid "" "Automatic (DHCP only): Configure automatically, use Internet connection from " "this network" msgstr "" +"స్వయంచాలక (DHCP మాత్రమే): స్వయంచాలకంగా కాన్ఫిగర్ చేయండి, ఈ నెట్‌వర్క్ నుండి ఇంటర్నెట్ కనెక్షన్‌ని " +"ఉపయోగించండి" #: plinth/modules/networks/forms.py:87 msgid "Ignore: Ignore this addressing method" -msgstr "" +msgstr "విస్మరించండి: ఈ చిరునామా పద్ధతిని విస్మరించండి" #: plinth/modules/networks/forms.py:92 -#, fuzzy msgid "Prefix" msgstr "ఉపసర్గ" @@ -3724,7 +3670,6 @@ msgid "Value between 1 and 128." msgstr "1 మరియు 128 మధ్యగల విలువ." #: plinth/modules/networks/forms.py:101 -#, fuzzy 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." @@ -3733,7 +3678,6 @@ msgstr "" "DHCP సర్వర్ అందించిన DNS సర్వర్లు విస్మరించబడుతుంది" #: plinth/modules/networks/forms.py:107 -#, fuzzy 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." @@ -3768,7 +3712,6 @@ msgid "Access Point" msgstr "ప్రాప్తి సూచి" #: plinth/modules/networks/forms.py:252 -#, fuzzy msgid "Ad-hoc" msgstr "తదర్థ" @@ -3777,7 +3720,6 @@ msgid "Frequency Band" msgstr "ఫ్రీక్వెన్సీ బ్యాండ్" #: plinth/modules/networks/forms.py:254 -#, fuzzy msgid "Automatic" msgstr "స్వయంచాలక" @@ -3795,7 +3737,6 @@ msgid "Channel" msgstr "మార్గం" #: plinth/modules/networks/forms.py:259 -#, fuzzy msgid "" "Optional value. Wireless channel in the selected frequency band to restrict " "to. Blank or 0 value means automatic selection." @@ -3808,7 +3749,6 @@ msgid "BSSID" msgstr "BSSID" #: plinth/modules/networks/forms.py:265 -#, fuzzy 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 " @@ -3822,7 +3762,6 @@ msgid "Authentication Mode" msgstr "ప్రామాణీకరణ విధం" #: plinth/modules/networks/forms.py:272 -#, fuzzy msgid "" "Select WPA if the wireless network is secured and requires clients to have " "the password to connect." @@ -3838,9 +3777,8 @@ msgstr "తెరచిన" #: plinth/modules/networks/forms.py:310 #, fuzzy, python-brace-format -#| msgid "Choose how your {box_name} is connected to your network" msgid "Specify how your {box_name} is connected to your network" -msgstr "మీ {box_name} మీ నెట్‌వర్క్‌కు ఎలా కనెక్ట్ అయిందో ఎంచుకోండి" +msgstr "మీ బాక్స్_నామ మీ నెట్‌వర్క్‌కు ఎలా కనెక్ట్ అయిందో ఎంచుకోండి {box_name}" #: plinth/modules/networks/forms.py:317 #, python-brace-format @@ -3849,6 +3787,8 @@ msgid "" "Internet connection from your router via Wi-Fi or Ethernet cable. This is a " "typical home setup.

" msgstr "" +"రూటర్‌కి కనెక్ట్ చేయబడింది

మీ {box_name} మీ రూటర్ నుండి Wi-Fi లేదా " +"Ethernet కేబుల్ ద్వారా ఇంటర్నెట్ కనెక్షన్‌ని పొందుతుంది. ఇది సాధారణ ఇంటి సెటప్.

" #: plinth/modules/networks/forms.py:324 #, python-brace-format @@ -3858,6 +3798,9 @@ msgid "" "adapter. {box_name} is directly connected to the Internet and all your " "devices connect to {box_name} for their Internet connectivity.

" msgstr "" +"{box_name} మీ రూటర్

మీ {box_name} బహుళ ఈథర్‌నెట్ పోర్ట్‌లు లేదా " +"wi-fi అడాప్టర్ వంటి బహుళ నెట్‌వర్క్ ఇంటర్‌ఫేస్‌లను కలిగి ఉంది. {box_name} నేరుగా ఇంటర్నెట్‌కి కనెక్ట్ " +"చేయబడింది మరియు మీ అన్ని పరికరాలు వాటి ఇంటర్నెట్ కనెక్టివిటీ కోసం {box_name}కి కనెక్ట్ చేయబడ్డాయి.

" #: plinth/modules/networks/forms.py:333 #, python-brace-format @@ -3866,10 +3809,13 @@ msgid "" "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 "" +"నేరుగా ఇంటర్నెట్‌కి కనెక్ట్ చేయబడింది

మీ ఇంటర్నెట్ కనెక్షన్ నేరుగా మీ " +"{box_name}కి జోడించబడింది మరియు నెట్‌వర్క్‌లో ఇతర పరికరాలు ఏవీ లేవు. ఇది సంఘం లేదా క్లౌడ్ సెటప్‌లలో " +"జరగవచ్చు.

" #: plinth/modules/networks/forms.py:352 msgid "Choose your internet connection type" -msgstr "" +msgstr "మీ ఇంటర్నెట్ కనెక్షన్ రకాన్ని ఎంచుకోండి" #: plinth/modules/networks/forms.py:356 msgid "" @@ -3881,6 +3827,11 @@ msgid "" "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 "" +"నా దగ్గర పబ్లిక్ IP చిరునామా ఉంది, అది కాలక్రమేణా మారవచ్చు

దీని అర్థం " +"మీరు ఇంటర్నెట్‌కి కనెక్ట్ చేయబడినప్పుడు ఇంటర్నెట్‌లోని పరికరాలు మిమ్మల్ని చేరుకోగలవు. మీరు మీ ఇంటర్నెట్ " +"సర్వీస్ ప్రొవైడర్ (ISP)తో ఇంటర్నెట్‌కి కనెక్ట్ చేసిన ప్రతిసారీ, మీరు వేరే IP చిరునామాను పొందవచ్చు, ప్రత్యేకించి " +"కొంత ఆఫ్‌లైన్ సమయం తర్వాత. అనేక ISPలు ఈ రకమైన కనెక్టివిటీని అందిస్తాయి. మీరు పబ్లిక్ IP చిరునామాను కలిగి " +"ఉండి, అది కాలక్రమేణా మారుతుందో లేదో ఖచ్చితంగా తెలియకపోతే, ఈ ఎంపికను ఎంచుకోవడం సురక్షితం.

" #: plinth/modules/networks/forms.py:368 #, python-brace-format @@ -3893,6 +3844,11 @@ msgid "" "but very few ISPs offer this. You may be able to get this service from your " "ISP by making an additional payment.

" msgstr "" +"నా దగ్గర పబ్లిక్ IP చిరునామా ఉంది, అది కాలక్రమేణా మారదు (సిఫార్సు చేయబడింది)

దీని అర్థం మీరు ఇంటర్నెట్‌కి కనెక్ట్ చేయబడినప్పుడు ఇంటర్నెట్‌లోని పరికరాలు మిమ్మల్ని చేరుకోగలవు. మీరు మీ " +"ఇంటర్నెట్ సర్వీస్ ప్రొవైడర్ (ISP)తో ఇంటర్నెట్‌కి కనెక్ట్ చేసిన ప్రతిసారీ, మీరు ఎల్లప్పుడూ ఒకే IP చిరునామాను " +"పొందుతారు. ఇది చాలా {box_name} సేవలకు అత్యంత ఇబ్బంది లేని సెటప్, కానీ చాలా కొద్ది మంది ISPలు దీన్ని " +"అందిస్తున్నారు. మీరు అదనపు చెల్లింపు చేయడం ద్వారా మీ ISP నుండి ఈ సేవను పొందవచ్చు.

" #: plinth/modules/networks/forms.py:381 #, python-brace-format @@ -3905,18 +3861,23 @@ msgid "" "troublesome situation for hosting services at home. {box_name} provides many " "workaround solutions but each solution has some limitations.

" msgstr "" +"నా దగ్గర పబ్లిక్ IP చిరునామా లేదు

దీని అర్థం మీరు ఇంటర్నెట్‌కి కనెక్ట్ " +"చేయబడినప్పుడు ఇంటర్నెట్‌లోని పరికరాలు మీకు చేరలేవు. మీరు మీ ఇంటర్నెట్ సర్వీస్ ప్రొవైడర్ (ISP)తో " +"ఇంటర్నెట్‌కి కనెక్ట్ చేసిన ప్రతిసారీ, మీరు స్థానిక నెట్‌వర్క్‌లకు మాత్రమే సంబంధించిన IP చిరునామాను పొందుతారు. " +"అనేక ISPలు ఈ రకమైన కనెక్టివిటీని అందిస్తాయి. ఇంట్లో సేవలను హోస్ట్ చేయడానికి ఇది చాలా సమస్యాత్మకమైన పరిస్థితి. " +"{box_name} అనేక పరిష్కార పరిష్కారాలను అందిస్తుంది కానీ ప్రతి పరిష్కారానికి కొన్ని పరిమితులు ఉంటాయి.

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

You will be suggested the most conservative actions.

" msgstr "" +"నా ఐ ఎస్ పి అందించే కనెక్షన్ రకం నాకు తెలియదు

మీరు అత్యంత సాంప్రదాయిక " +"చర్యలను సూచించబడతారు

" #: plinth/modules/networks/forms.py:411 -#, fuzzy -#| msgid "Current Network Configuration" msgid "Preferred router configuration" -msgstr "ప్రస్తుత అల్లిక ఆకృతీకరణ" +msgstr "ప్రస్తుత ఇష్టపడే మార్గం అల్లిక ఆకృతీకరణ" #: plinth/modules/networks/forms.py:416 #, python-brace-format @@ -3928,6 +3889,11 @@ msgid "" "static local IP address for your {box_name} in your router's configuration." msgstr "" +"మొత్తం ట్రాఫిక్‌ను ఫార్వార్డ్ చేయడానికి DMZ ఫీచర్‌ని ఉపయోగించండి (సిఫార్సు చేయబడింది)

చాలా రౌటర్‌లు DMZ అనే కాన్ఫిగరేషన్ సెట్టింగ్‌ను అందిస్తాయి. ఇది ఇంటర్నెట్ నుండి ఇన్‌కమింగ్ ట్రాఫిక్ " +"మొత్తాన్ని {box_name} యొక్క ఐపి చిరునామా వంటి ఒకే ఐపి చిరునామాకు ఫార్వార్డ్ చేయడానికి రూటర్‌ని " +"అనుమతిస్తుంది. ముందుగా మీ రూటర్ కాన్ఫిగరేషన్‌లో మీ {box_name} కోసం స్టాటిక్ స్థానిక ఐపి చిరునామాను " +"కాన్ఫిగర్ చేయాలని గుర్తుంచుకోండి.

" #: plinth/modules/networks/forms.py:428 #, python-brace-format @@ -3940,6 +3906,12 @@ msgid "" "443 to work. Each of the other applications will suggest which port(s) need " "to be forwarded for that application to work.

" msgstr "" +"ప్రతి అప్లికేషన్

అవసరమైన నిర్దిష్ట ట్రాఫిక్‌ని ఫార్వార్డ్ చేయండి>మీరు " +"ప్రత్యామ్నాయంగా మీ {box_name}కి నిర్దిష్ట ట్రాఫిక్‌ను మాత్రమే ఫార్వార్డ్ చేయడాన్ని ఎంచుకోవచ్చు. మీరు మీ " +"నెట్‌వర్క్‌లో {box_name} వంటి ఇతర సర్వర్‌లను కలిగి ఉంటే లేదా మీ రూటర్ డి ఎం జెడ్ ఫీచర్‌కు మద్దతు " +"ఇవ్వకపోతే ఇది అనువైనది. వెబ్ ఇంటర్‌ఫేస్‌ను అందించే అన్ని అప్లికేషన్‌లు పని చేయడానికి మీరు పోర్ట్‌లు 80 మరియు " +"443 నుండి ట్రాఫిక్‌ను ఫార్వార్డ్ చేయాలి. ప్రతి ఇతర అప్లికేషన్లు ఆ అప్లికేషన్ పని చేయడానికి ఏ పోర్ట్(లు) " +"ఫార్వార్డ్ చేయాలో సూచిస్తాయి.

" #: plinth/modules/networks/forms.py:442 msgid "" @@ -3947,6 +3919,9 @@ msgid "" "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 "" +"రూటర్ ప్రస్తుతం కాన్ఫిగర్ చేయబడలేదు

మీరు కాన్ఫిగర్ చేయకుంటే లేదా " +"ప్రస్తుతం రూటర్‌ని కాన్ఫిగర్ చేయలేక పోతే దీన్ని ఎంచుకోండి మరియు తర్వాత గుర్తు చేయాలనుకుంటున్నాను. కొన్ని " +"ఇతర కాన్ఫిగరేషన్ దశలు విఫలం కావచ్చు.

" #: plinth/modules/networks/templates/connection_show.html:24 #, python-format @@ -3956,6 +3931,9 @@ msgid "" "that you have other means to access %(box_name)s before altering this " "connection." msgstr "" +"ఇంటర్నెట్ కనెక్టివిటీ కోసం %(box_name)s ఆధారపడే ప్రాథమిక కనెక్షన్ ఇది. దీన్ని మార్చడం వలన మీ " +"%(box_name)s అందుబాటులోకి రాకపోవచ్చు. ఈ కనెక్షన్‌ని మార్చే ముందు %(box_name)sని యాక్సెస్ చేయడానికి " +"మీకు ఇతర మార్గాలు ఉన్నాయని నిర్ధారించుకోండి." #: plinth/modules/networks/templates/connection_show.html:36 msgid "Edit connection" @@ -4109,18 +4087,17 @@ msgid "Firewall zone" msgstr "ఫైర్వాల్ క్షేత్రాం" #: plinth/modules/networks/templates/connection_show.html:273 -#, fuzzy 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 "" "ఈ ఇంటర్ఫేస్ ఒక స్థానిక నెట్వర్క్ / యంత్రానికి కనెక్ట్ చేయాలి. మీరు పబ్లిక్ నెట్వర్క్ ఈ ఇంటర్ఫేస్ కనెక్ట్ ఉంటే, " -"సేవలు కేవలం అంతర్గతంగానే బాహ్యంగా అందుబాటులో అవుతుంది అందుబాటులో ఉండాలి అర్థం. ఈ ప్రమాదం ఉంది." +"సేవలు కేవలం అంతర్గతంగానే బాహ్యంగా అందుబాటులో అవుతుంది అందుబాటులో ఉండాలి అర్థం. ఇది భద్రతాపరమైన " +"ప్రమాదం." #: plinth/modules/networks/templates/connection_show.html:293 #: plinth/modules/networks/templates/connection_show.html:316 -#, fuzzy msgid "" "This interface should receive your Internet connection. If you connect it to " "a local network/machine, many services meant to available only internally " @@ -4141,6 +4118,8 @@ msgid "" "This interface is not maintained by %(box_name)s. For security, it is " "automatically assigned to the external zone." msgstr "" +"ఈ ఇంటర్‌ఫేస్ %(box_name)s ద్వారా నిర్వహించబడదు. భద్రత కోసం, ఇది స్వయంచాలకంగా బాహ్య జోన్‌కు " +"కేటాయించబడుతుంది." #: plinth/modules/networks/templates/connections_create.html:19 msgid "Create Connection" @@ -4199,8 +4178,6 @@ msgid "Edit Connection" msgstr "అనుసంధానాన్ని సవరించండి" #: plinth/modules/networks/templates/connections_list.html:8 -#, fuzzy -#| msgid "Connection" msgid "Connections" msgstr "అనుసంధానం" @@ -4236,20 +4213,20 @@ msgstr "సృష్టించు..." #: plinth/modules/networks/templates/internet_connectivity_content.html:10 msgid "What Type Of Internet Connection Do You Have?" -msgstr "" +msgstr "మీకు ఏ రకమైన ఇంటర్నెట్ కనెక్షన్ ఉంది?" #: plinth/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 "" +"ఇంటర్నెట్ కనెక్షన్ రకాన్ని ఉత్తమంగా వివరించే ఎంపికను ఎంచుకోండి. తదుపరి సెటప్‌తో మీకు మార్గనిర్దేశం చేయడానికి " +"మాత్రమే ఈ సమాచారం ఉపయోగించబడుతుంది." #: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19 #: plinth/modules/networks/templates/network_topology_firstboot.html:19 #: plinth/modules/networks/templates/router_configuration_firstboot.html:19 #: plinth/modules/users/templates/users_firstboot.html:63 -#, fuzzy -#| msgid "skip this step" msgid "Skip this step" msgstr "ఈ దశను దాటవేయి" @@ -4264,8 +4241,6 @@ msgid "Next" msgstr "తర్వాత" #: plinth/modules/networks/templates/internet_connectivity_main.html:9 -#, fuzzy -#| msgid "Connection Type" msgid "Your Internet Connection Type" msgstr "అనుసంధాన రకం" @@ -4275,29 +4250,29 @@ msgid "" "your ISP. This information is only used to suggest you necessary " "configuration actions." msgstr "" +"కిందిది మీ ద్వారా అందించబడిన ఇంటర్నెట్ కనెక్షన్ రకాన్ని ఉత్తమంగా వివరిస్తుంది. ఈ సమాచారం మీకు అవసరమైన " +"కాన్ఫిగరేషన్ చర్యలను సూచించడానికి మాత్రమే ఉపయోగించబడుతుంది." #: plinth/modules/networks/templates/internet_connectivity_main.html:23 msgid "My ISP provides a public IP address that does not change over time." -msgstr "" +msgstr "నా ISP పబ్లిక్ IP చిరునామాను అందిస్తుంది, అది కాలక్రమేణా మారదు." #: plinth/modules/networks/templates/internet_connectivity_main.html:27 msgid "My ISP provides a public IP address that may change over time." -msgstr "" +msgstr "నా ISP పబ్లిక్ IP చిరునామాను అందిస్తుంది, అది కాలక్రమేణా మారదు." #: plinth/modules/networks/templates/internet_connectivity_main.html:31 msgid "My ISP does not provide a public IP address." -msgstr "" +msgstr "నా ISP ప్రజాIP చిరునామాను అందించదు." #: plinth/modules/networks/templates/internet_connectivity_main.html:35 msgid "I do not know the type of connection my ISP provides." -msgstr "" +msgstr "నా ISP అందించే బంధం రకం నాకు తెలియదు." #: plinth/modules/networks/templates/internet_connectivity_main.html:41 #: plinth/modules/networks/templates/network_topology_main.html:41 -#, fuzzy -#| msgid "Update" msgid "Update..." -msgstr "నవీకరణ యూ.ఆర్.ఎల్" +msgstr "...నవీకరించు" #: plinth/modules/networks/templates/network_topology_content.html:10 #, python-format @@ -4311,11 +4286,13 @@ msgid "" "your network. This information is used to guide you with further setup. It " "can be changed later." msgstr "" +"మీ అల్లిక మీ %(box_name)s ఎలా బంధంచేయబడిందో ఉత్తమంగా వివరించే ఎంపికను ఎంచుకోండి. తదుపరి " +"అమర్చిపెట్టు మీకు మార్గనిర్దేశం చేయడానికి ఈ సమాచారం ఉపయోగించబడుతుంది. తర్వాత మార్చుకోవచ్చు." #: plinth/modules/networks/templates/network_topology_main.html:9 #, python-format msgid "%(box_name)s Internet Connectivity" -msgstr "" +msgstr "%(box_name)s ఇంటర్నెట్ కనెక్టివిటీ" #: plinth/modules/networks/templates/network_topology_main.html:15 #, python-format @@ -4324,6 +4301,8 @@ msgid "" "network. This information is used only to suggest necessary configuration " "actions." msgstr "" +"మీ అల్లిక మీ %(box_name)s ఎలా బంధం చేయబడిందో క్రింది ఉత్తమంగా వివరిస్తుంది. ఈ సమాచారం అవసరమైన " +"రూపకరణ చర్యలను సూచించడానికి మాత్రమే ఉపయోగించబడుతుంది." #: plinth/modules/networks/templates/network_topology_main.html:24 #, python-format @@ -4331,6 +4310,8 @@ 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 "" +"Wi-Fi లేదా ఇంటర్ నెట్కేబుల్ ద్వారా మీ రూటర్ నుండి మీ %(box_name)s ఇంటర్నెట్ కనెక్షన్‌ని పొందుతుంది. " +"ఇది సాధారణ ఇంటి సెటప్." #: plinth/modules/networks/templates/network_topology_main.html:29 #, python-format @@ -4338,6 +4319,8 @@ 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 "" +"మీ %(box_name)s నేరుగా ఇంటర్నెట్‌కి కనెక్ట్ చేయబడింది మరియు మీ అన్ని పరికరాలు వాటి ఇంటర్నెట్ కనెక్టివిటీ " +"కోసం %(box_name)sకి కనెక్ట్ అవుతాయి." #: plinth/modules/networks/templates/network_topology_main.html:34 #, python-format @@ -4345,18 +4328,20 @@ msgid "" "Your Internet connection is directly attached to your %(box_name)s and there " "are no other devices on the network." msgstr "" +"మీ ఇంటర్నెట్ కనెక్షన్ నేరుగా మీ %(box_name)sకి జోడించబడింది మరియు నెట్‌వర్క్‌లో ఇతర పరికరాలు ఏవీ లేవు." #: plinth/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 "" +"బాండింగ్, బ్రిడ్జింగ్ మరియు VLAN నిర్వహణ వంటి అధునాతన నెట్‌వర్కింగ్ కార్యకలాపాలు కాక్‌పిట్ యాప్ ద్వారా అందించబడతాయి" #: plinth/modules/networks/templates/router_configuration_content.html:10 -#, fuzzy, python-format -#| msgid "%(box_name)s is up to date." +#, python-format msgid "Setup %(box_name)s Behind a Router" -msgstr "%(box_name)s తాజాగా ఉంది." +msgstr "రూటర్ వెనుక %(box_name)sని సెటప్ చేయండి" #: plinth/modules/networks/templates/router_configuration_content.html:16 #, python-format @@ -4364,6 +4349,8 @@ 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 "" +"Wi-Fi లేదా ఈథర్నెట్ కేబుల్ ద్వారా మీ రూటర్ నుండి మీ %(box_name)s ఇంటర్నెట్ కనెక్షన్‌ని పొందుతుంది. " +"ఇది సాధారణ ఇంటి సెటప్." #: plinth/modules/networks/templates/router_configuration_content.html:23 #, python-format @@ -4373,6 +4360,8 @@ msgid "" "configured to forward all traffic it receives so that %(box_name)s provides " "the services." msgstr "" +"ఈ సెటప్‌తో, మీ %(box_name)sని చేరుకోవడానికి ఇంటర్నెట్‌లోని ఏదైనా పరికరం మీ రూటర్ ద్వారా వెళ్లాలి. " +"%(box_name)s సేవలను అందజేసేలా రౌటర్ మొత్తం ట్రాఫిక్‌ను ఫార్వార్డ్ చేయడానికి కాన్ఫిగర్ చేయబడాలి." #: plinth/modules/networks/templates/router_configuration_content.html:32 msgid "" @@ -4381,16 +4370,21 @@ msgid "" "address' option in Internet connection type selection." msgstr "" +"మీ రూటర్‌పై మీకు నియంత్రణ లేకపోతే, దాన్ని కాన్ఫిగర్ చేయకూడదని ఎంచుకోండి. ఈ పరిమితిని అధిగమించడానికి " +"ఎంపికలను చూడటానికి, ఇంటర్నెట్ కనెక్షన్ రకం ఎంపికలో 'నాకు పబ్లిక్ IP చిరునామా లేదు' ఎంపికను ఎంచుకోండి." #: plinth/modules/networks/templates/router_configuration_content.html:39 msgid "Choose How You Wish to Configure Your Router" -msgstr "" +msgstr "మీరు మీ రూటర్‌ను ఎలా కాన్ఫిగర్ చేయాలనుకుంటున్నారో ఎంచుకోండి" #: plinth/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 "" +"మీరు రూటర్ అందించిన మీ రూటర్ యొక్క అడ్మినిస్ట్రేషన్ కన్సోల్‌కు లాగిన్ అవ్వాలి. ఇది క్రింది వాటిలో ఒకటి లాగా " +"ఉండవచ్చు:" #: plinth/modules/networks/templates/router_configuration_content.html:54 msgid "" @@ -4401,202 +4395,164 @@ msgid "" "model number and search online for the router's manual. This will provide " "full instructions on how to perform this task." msgstr "" +"మీరు మొదట రూటర్‌ని సెటప్ చేసినప్పుడు వినియోగదారు పేరు మరియు password మీచే కాన్ఫిగర్ చేయబడుతుంది. అనేక " +"రౌటర్ల కోసం, ఈ సమాచారం రౌటర్ వెనుక భాగంలో ముద్రించబడుతుంది. మీకు రూటర్ యొక్క ఆధారాలు లేదా IP " +"చిరునామా గుర్తులేకపోతే, మీరు దాన్ని రీసెట్ చేసి తాజాగా సెటప్ చేయాలని నిర్ణయించుకోవచ్చు. మీ రౌటర్ మోడల్ నంబర్‌ని " +"శోధించండి మరియు రూటర్ మాన్యువల్ కోసం ఆన్‌లైన్‌లో శోధించండి. ఈ పనిని ఎలా నిర్వహించాలో ఇది పూర్తి సూచనలను " +"అందిస్తుంది." #: plinth/modules/networks/views.py:27 -#, fuzzy -#| msgid "Disabled" msgid "disabled" msgstr "నిలిపివేయబడింది" #: plinth/modules/networks/views.py:28 -#, fuzzy msgid "automatic" msgstr "స్వయంచాలక" #: plinth/modules/networks/views.py:29 -#, fuzzy -#| msgid "Manual" msgid "manual" msgstr "కరదీపిక" #: plinth/modules/networks/views.py:30 -#, fuzzy -#| msgid "Shared" msgid "shared" -msgstr "పంచుకోబడ్డ" +msgstr "పంచుకున్నారు" #: plinth/modules/networks/views.py:31 msgid "link-local" -msgstr "" +msgstr "లింక్-స్థానిక" #: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98 #: plinth/modules/networks/views.py:109 msgid "unknown" -msgstr "" +msgstr "తెలియని" #: plinth/modules/networks/views.py:38 -#, fuzzy -#| msgid "Manage" msgid "unmanaged" -msgstr "నిర్వహించండి" +msgstr "నిర్వహించబడలేదు" #: plinth/modules/networks/views.py:39 -#, fuzzy -#| msgid "Available Domains" msgid "unavailable" -msgstr "అందుబాటులో ఉన్న డొమైన్లు" +msgstr "అందుబాటులో లేదు" #: plinth/modules/networks/views.py:40 -#, fuzzy -#| msgid "cable is connected" msgid "disconnected" -msgstr "కేబుల్ అనుసంధానించబడిన" +msgstr "కేబుల్ తొలగించడం" #: plinth/modules/networks/views.py:41 -#, fuzzy msgid "preparing" -msgstr "ఫైలు సమకాలీకరించబడుచున్నధి" +msgstr "సిద్ధమవుతున్నారు" #: plinth/modules/networks/views.py:42 -#, fuzzy -#| msgid "Connection" msgid "connecting" msgstr "అనుసంధానం" #: plinth/modules/networks/views.py:43 -#, fuzzy -#| msgid "Use HTTP basic authentication" msgid "needs authentication" -msgstr "HTTP ప్రాథమిక ప్రమాణీకరణ ఉపయోగించు" +msgstr "ప్రమాణీకరణ అవసరం" #: plinth/modules/networks/views.py:44 msgid "requesting address" -msgstr "" +msgstr "చిరునామాను అభ్యర్థిస్తోంది" #: plinth/modules/networks/views.py:45 msgid "checking" -msgstr "" +msgstr "తనిఖీ చేస్తోంది" #: plinth/modules/networks/views.py:46 msgid "waiting for secondary" -msgstr "" +msgstr "ద్వితీయ కోసం వేచి ఉంది" #: plinth/modules/networks/views.py:47 -#, fuzzy -#| msgid "Deactivate" msgid "activated" msgstr "క్రియారహితం చేయి" #: plinth/modules/networks/views.py:48 -#, fuzzy -#| msgid "Deactivate" msgid "deactivating" -msgstr "క్రియారహితం చేయి" +msgstr "నిష్క్రియం చేస్తోంది" #: plinth/modules/networks/views.py:56 -#, fuzzy -#| msgid "State reason" msgid "no reason" -msgstr "స్థితి కారణాం" +msgstr "కారణం లేదు" #: plinth/modules/networks/views.py:58 msgid "unknown error" -msgstr "" +msgstr "అపరిచిత దోషం" #: plinth/modules/networks/views.py:60 -#, fuzzy -#| msgid "Mumble server is not running" msgid "device is now managed" -msgstr "మంబ్లు సేవిక నడవంలేదు" +msgstr "పరికరం ఇప్పుడు నిర్వహించబడుతుంది" #: plinth/modules/networks/views.py:62 -#, fuzzy -#| msgid "Mumble server is not running" msgid "device is now unmanaged" -msgstr "మంబ్లు సేవిక నడవంలేదు" +msgstr "పరికరం ఇప్పుడు నిర్వహించబడలేదు" #: plinth/modules/networks/views.py:64 -#, fuzzy -#| msgid "configuration file: {file}" msgid "configuration failed" -msgstr "ఆకృతీకరణ ఫైలు: {file}" +msgstr "కాన్ఫిగరేషన్ విఫలమైంది" #: plinth/modules/networks/views.py:66 msgid "secrets required" -msgstr "" +msgstr "రహస్యాలు అవసరం" #: plinth/modules/networks/views.py:68 msgid "DHCP client failed to start" -msgstr "" +msgstr "DHCP క్లయింట్ ప్రారంభించడంలో విఫలమైంది" #: plinth/modules/networks/views.py:70 msgid "DHCP client error" -msgstr "" +msgstr "DHCP క్లయింట్ లోపం" #: plinth/modules/networks/views.py:72 -#, fuzzy -#| msgid "{name} deleted." msgid "DHCP client failed" -msgstr "{name} తొలగించబడింది." +msgstr "DHCP క్లయింట్ విఫలమైంది" #: plinth/modules/networks/views.py:74 msgid "shared connection service failed to start" -msgstr "" +msgstr "భాగస్వామ్య కనెక్షన్ సేవ ప్రారంభించడంలో విఫలమైంది" #: plinth/modules/networks/views.py:76 -#, fuzzy -#| msgid "Internet connection type saved." msgid "shared connection service failed" -msgstr "ఇంటర్నెట్ కనెక్షన్ రకం సేవ్ చేయబడింది." +msgstr "భాగస్వామ్య కనెక్షన్ సేవ విఫలమైంది" #: plinth/modules/networks/views.py:78 -#, fuzzy msgid "device was removed" -msgstr "ఈ సేవ ఇప్పటికే ఉంది" +msgstr "పరికరం తీసివేయబడింది" #: plinth/modules/networks/views.py:80 -#, fuzzy -#| msgid "The device is mounted by another user." msgid "device disconnected by user" -msgstr "పరికరం మరొక వినియోగదారుచే మౌంట్ చేయబడింది." +msgstr "వినియోగదారు ద్వారా పరికరం తొలగించవేయబడింది" #: plinth/modules/networks/views.py:82 msgid "a dependency of the connection failed" -msgstr "" +msgstr "బంధం యొక్క ఆధారపడటం విఫలమైంది" #: plinth/modules/networks/views.py:84 -#, fuzzy -#| msgid "Client not found" msgid "Wi-Fi network not found" -msgstr "క్లయింట్ దొరకలేదు" +msgstr "Wi-Fi నెట్‌వర్క్ కనుగొనబడలేదు" #: plinth/modules/networks/views.py:86 msgid "a secondary connection failed" -msgstr "" +msgstr "ద్వితీయ కనెక్షన్ విఫలమైంది" #: plinth/modules/networks/views.py:88 msgid "new connection activation was enqueued" -msgstr "" +msgstr "కొత్త కనెక్షన్ యాక్టివేషన్ క్యూలో ఉంది" #: plinth/modules/networks/views.py:90 msgid "a duplicate IP address was detected" -msgstr "" +msgstr "నకిలీ IP చిరునామా కనుగొనబడింది" #: plinth/modules/networks/views.py:92 msgid "selected IP method is not supported" -msgstr "" +msgstr "ఎంచుకున్న IP పద్ధతికి మద్దతు లేదు" #: plinth/modules/networks/views.py:101 -#, fuzzy -#| msgid "Generic" msgid "generic" msgstr "సాధారణమైన" #: plinth/modules/networks/views.py:102 -#, fuzzy -#| msgid "Interface" msgid "TUN or TAP interface" -msgstr "అంతర్ముఖం" +msgstr "TUN లేదా TAP సంవిధానం" #: plinth/modules/networks/views.py:103 plinth/modules/wireguard/__init__.py:49 #: plinth/modules/wireguard/manifest.py:14 @@ -4604,25 +4560,18 @@ msgid "WireGuard" msgstr "వైర్గార్డ్" #: plinth/modules/networks/views.py:110 -#, fuzzy msgid "ad-hoc" -msgstr "తదర్థ" +msgstr "తాత్కాలిక" #: plinth/modules/networks/views.py:111 -#, fuzzy -#| msgid "Infrastructure" msgid "infrastructure" -msgstr "ఇన్ఫ్రాస్ట్రక్చర్" +msgstr "మౌలిక సదుపాయాలు" #: plinth/modules/networks/views.py:112 -#, fuzzy -#| msgid "Access Point" msgid "access point" -msgstr "ప్రాప్తి సూచి" +msgstr "సాంగత్యం సూచి" #: plinth/modules/networks/views.py:113 -#, fuzzy -#| msgid "Access Point" msgid "mesh point" msgstr "ప్రాప్తి సూచి" @@ -4670,10 +4619,8 @@ msgid "Failed to de-activate connection: Connection not found." msgstr "అనుసంధానం క్రియారహితం విఫలమైంది: అనుసంధానం దొరకలేదు." #: plinth/modules/networks/views.py:411 -#, fuzzy -#| msgid "Adding New Ethernet Connection" msgid "Adding New Generic Connection" -msgstr "కొత్త ఈథర్నెట్ అనుసంధానాన్ని కలుపుతోంది" +msgstr "కొత్త జెనరిక్ కనెక్షన్‌ని జోడిస్తోంది" #: plinth/modules/networks/views.py:429 msgid "Adding New Ethernet Connection" @@ -4697,7 +4644,7 @@ msgid "Failed to delete connection: Connection not found." msgstr "అనుసంధానం తొలగించడం విఫలమైంది: అనుసంధానం దొరకలేదు." #: plinth/modules/openvpn/__init__.py:25 -#, fuzzy, python-brace-format +#, 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 " @@ -4713,16 +4660,12 @@ msgstr "" "అనామకత్వం కోసం." #: plinth/modules/openvpn/__init__.py:55 -#, fuzzy -#| msgid "Connection Type" msgid "Connect to VPN services" -msgstr "అనుసంధాన రకం" +msgstr "అనుసంధాన రకం విపిన్ సేవలకు" #: plinth/modules/openvpn/__init__.py:58 plinth/modules/openvpn/manifest.py:17 -#, fuzzy -#| msgid "Open" msgid "OpenVPN" -msgstr "తెరచిన" +msgstr "తెరచిన విపిన్" #: plinth/modules/openvpn/__init__.py:59 #: plinth/modules/wireguard/__init__.py:51 @@ -4738,11 +4681,11 @@ msgstr "" #: plinth/modules/openvpn/manifest.py:52 msgid "Tunnelblick" -msgstr "" +msgstr "టన్నెల్‌బ్లిక్" #: plinth/modules/openvpn/templates/migrate_to_ecc.html:7 msgid "Migrate to ECC" -msgstr "" +msgstr "ECCకి మైగ్రేట్ చేయండి" #: plinth/modules/openvpn/templates/migrate_to_ecc.html:10 msgid "" @@ -4751,6 +4694,9 @@ msgid "" "security. This operation is irreversible. It should only take a few minutes " "on most single board computers." msgstr "" +"మీ OpenVPN ఇన్‌స్టాలేషన్ ప్రస్తుతం RSAని ఉపయోగిస్తోంది. ఆధునిక ఎలిప్టిక్ కర్వ్ క్రిప్టోగ్రఫీకి మారడం కనెక్షన్ " +"మరియు భద్రతను ఏర్పాటు చేసే వేగాన్ని మెరుగుపరుస్తుంది. ఈ ఆపరేషన్ కోలుకోలేనిది. చాలా సింగిల్ బోర్డ్ " +"కంప్యూటర్‌లలో దీనికి కొన్ని నిమిషాలు మాత్రమే పడుతుంది." #: plinth/modules/openvpn/templates/migrate_to_ecc.html:19 #, python-format @@ -4758,6 +4704,8 @@ msgid "" "All new installations of OpenVPN on %(box_name)s will use ECC by default. We " "recommend migrating as soon as possible." msgstr "" +"%(box_name)sలో OpenVPN యొక్క అన్ని కొత్త ఇన్‌స్టాలేషన్‌లు డిఫాల్ట్‌గా ECCని ఉపయోగిస్తాయి. వీలైనంత త్వరగా " +"వలస వెళ్లాలని మేము సిఫార్సు చేస్తున్నాము." #: plinth/modules/openvpn/templates/migrate_to_ecc.html:26 #, python-format @@ -4767,12 +4715,13 @@ msgid "" "profiles. OpenVPN clients compatible with ECC should be used to connect to " "this server." msgstr "" +"హెచ్చరిక: ఈ ఆపరేషన్ ద్వారా ఇప్పటికే ఉన్న క్లయింట్ ప్రొఫైల్‌లు చెల్లుబాటు కావు. %(box_name)sలోని " +"OpenVPN వినియోగదారులందరూ తప్పనిసరిగా వారి కొత్త ప్రొఫైల్‌లను డౌన్‌లోడ్ చేసుకోవాలి. ఈ సర్వర్‌కి కనెక్ట్ చేయడానికి " +"ECCకి అనుకూలమైన OpenVPN క్లయింట్‌లను ఉపయోగించాలి." #: plinth/modules/openvpn/templates/migrate_to_ecc.html:38 -#, fuzzy -#| msgid "Moderate" msgid "Migrate" -msgstr "మితమైన" +msgstr "మోడిగ్రేట్ చేయండి" #: plinth/modules/openvpn/templates/openvpn.html:22 msgid "Profile" @@ -4786,11 +4735,11 @@ msgid "" "available for most platforms. Click \"Learn more...\" above for recommended " "clients and instructions on how to configure them." msgstr "" -"% (Box_name) లు 1 యొక్క VPN కనెక్ట్, మీరు ఒక ప్రొఫైల్ డౌన్లోడ్ మరియు మీ మొబైల్ లేదా డెస్క్టాప్ మిషన్పై " -"OpenVPN క్లయింట్ ఆహారం అవసరం. OpenVPN క్లయింట్లు అత్యంత వేదికలపై అందుబాటులో ఉన్నాయి. 2documentation 3 title=\"%(box_name)s ఆకృతీకరించుటకు ఎలా సిఫార్సు " -"ఖాతాదారులకు మరియు సూచనలతో వాటిని." +"బాక్స్_నామలు 1 యొక్క విపిన్ కనెక్ట్, మీరు ఒక ప్రొఫైల్ డౌన్లోడ్ మరియు మీ మొబైల్ లేదా డెస్క్టాప్ మిషన్పై ఓపెన్ప్ప్న్ " +"క్లయింట్ ఆహారం అవసరం. ఓపెన్ప్ప్న్ క్లయింట్లు అత్యంత వేదికలపై అందుబాటులో ఉన్నాయి. &ల్టీ;a చూడండి " +"హార్ఫ్=\"హెట్ప్స్: //వికీ.డెబియన్.ఆర్గ్/ఫ్రిఏడొంబోస్/మానుల్/ఓపెంపునఁ\" మాన్యువల్-ఓపెన్ప్ప్న్\"&జీత్; " +"2డాక్యుమెంటేషన్ &ల్టీ;/ఆ&జీత్; 3 టైటిల్=\"%బావీ క్స్_నామ ఆకృతీకరించుటకు ఎలా సిఫార్సు " +"ఖాతాదారులకు మరియు సూచనలతో వాటిని. %(box_name)s" #: plinth/modules/openvpn/templates/openvpn.html:35 #, python-format @@ -4802,98 +4751,82 @@ msgid "Download my profile" msgstr "నా స్థూలవివరంల దిగుమతి" #: plinth/modules/pagekite/__init__.py:21 -#, fuzzy, python-brace-format +#, 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 "" -"PageKite {box_name} 1 సేవలను పరిచయం చేస్తూ మీరు ఇంటర్నెట్ కు ఒక ప్రత్యక్ష సంబంధం కలిగి " -"లేనప్పుడు కోసం ఒక వ్యవస్థ. మీ {box_name} 2 సేవలు ఇంటర్నెట్ మిగిలిన నుండి అందుబాటులో ఉంటే మీరు " -"మాత్రమే ఈ అవసరం. ఈ క్రింది సందర్భాలలో కలిగి:" +"PageKite అనేది మీకు ఇంటర్నెట్‌కి ప్రత్యక్ష కనెక్షన్ లేనప్పుడు {box_name} సేవలను బహిర్గతం చేసే " +"వ్యవస్థ. మీ {box_name} సేవలు మిగిలిన ఇంటర్నెట్‌లో అందుబాటులో లేనట్లయితే మాత్రమే మీకు ఇది అవసరం. ఇది " +"క్రింది పరిస్థితులను కలిగి ఉంటుంది:" #: plinth/modules/pagekite/__init__.py:26 -#, fuzzy, python-brace-format +#, python-brace-format msgid "{box_name} is behind a restricted firewall." -msgstr "{Box_name} 1 నిరోధిత ఫైర్వాల్ వెనుక ఉంది." +msgstr "{box_name} పరిమితం చేయబడిన ఫైర్‌వాల్ వెనుక ఉంది." #: plinth/modules/pagekite/__init__.py:29 -#, fuzzy, python-brace-format +#, python-brace-format msgid "{box_name} is connected to a (wireless) router which you don't control." -msgstr "{Box_name} 1 మీరు నియంత్రించే లేని ఒక (వైర్లెస్) రౌటర్ అనుసంధానించబడిన." +msgstr "{box_name} మీరు నియంత్రించని (వైర్‌లెస్) రూటర్‌కి బందించబడింది ." #: plinth/modules/pagekite/__init__.py:31 -#, fuzzy msgid "" "Your ISP does not provide you an external IP address and instead provides " "Internet connection through NAT." msgstr "" -"మీ ISP మీరు ఒక బాహ్య IP చిరునామా అందించడం లేదు మరియు బదులుగా NAT ద్వారా ఇంటర్నెట్ కనెక్షన్ " -"అందిస్తుంది." +"మీ ISP మీకు బాహ్య IP చిరునామాను అందించదు మరియు బదులుగా NAT ద్వారా ఇంటర్నెట్ కనెక్షన్‌ని అందిస్తుంది." #: plinth/modules/pagekite/__init__.py:33 -#, fuzzy msgid "" "Your ISP does not provide you a static IP address and your IP address " "changes every time you connect to Internet." msgstr "" -"మీ ISP మీరు స్టాటిక్ IP చిరునామా అందించడం లేదు మరియు మీ IP చిరునామా మీరు ఇంటర్నెట్ కు కనెక్ట్ ప్రతి " -"సమయ మార్పులు." +"మీ ISP మీకు స్టాటిక్ IP చిరునామాను అందించదు మరియు మీరు ఇంటర్నెట్‌కి కనెక్ట్ అయిన ప్రతిసారీ మీ IP చిరునామా " +"మారుతుంది." #: plinth/modules/pagekite/__init__.py:35 -#, fuzzy msgid "Your ISP limits incoming connections." -msgstr "మీ ISP ఇన్కమింగ్ కనెక్షన్లను పరిమితం చేస్తుంది." +msgstr "మీ ISP ఇన్‌కమింగ్ కనెక్షన్‌లను పరిమితం చేస్తుంది." #: plinth/modules/pagekite/__init__.py:37 -#, fuzzy, 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 future it might be possible to use your buddy's {box_name} " -#| "for this." +#, 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 "" -"PageKite సొరంగాలు కలయిక ఉపయోగించి మరియు ప్రతినిధులను రివర్స్ ద్వారా NAT, ఫైర్వాల్లు మరియు IP- " -"చిరునామా పరిమితులు చుట్టూ పనిచేస్తుంది. మీరు . భవిష్యత్లో ఇది ఈ కోసం మీ స్నేహితుని యొక్క {box_name} " -"ఉపయోగించడానికి 3 సాధ్యం కావచ్చు ఉదాహరణకు pagekite." -"net కోసం, ఏ pagekite సేవా ప్రదాత ఉపయోగించవచ్చు." +"టన్నెల్స్ మరియు రివర్స్ ప్రాక్సీల కలయికను ఉపయోగించడం ద్వారా PageKite NAT, ఫైర్‌వాల్‌లు మరియు IP చిరునామా " +"పరిమితుల చుట్టూ పని చేస్తుంది. మీరు ఏదైనా పేజ్‌కైట్ సర్వీస్ ప్రొవైడర్‌ని ఉపయోగించవచ్చు, ఉదాహరణకు pagekite.net. భవిష్యత్తులో దీని కోసం మీ స్నేహితుని " +"{box_name}ని ఉపయోగించడం సాధ్యమవుతుంది." #: plinth/modules/pagekite/__init__.py:63 -#, fuzzy -#| msgid "Pagekite" msgid "PageKite" -msgstr "పేజ్ కైట్" +msgstr "పేజ్‌కైట్" #: plinth/modules/pagekite/__init__.py:64 -#, fuzzy msgid "Public Visibility" -msgstr "పబ్లిక్ దృష్టి గోచరత (PageKite)" +msgstr "ప్రజా దృశ్యమానం" #: plinth/modules/pagekite/__init__.py:77 -#, fuzzy msgid "PageKite Domain" -msgstr "PageKite ఖాతా" +msgstr "పేజ్‌కైట్ అధికారక్షేత్రం" #: plinth/modules/pagekite/forms.py:32 -#, fuzzy msgid "Server domain" -msgstr "సర్వర్ డొమైన్" +msgstr "సర్వర్ అధికారక్షేత్రం" #: plinth/modules/pagekite/forms.py:34 -#, fuzzy msgid "" "Select your pagekite server. Set \"pagekite.net\" to use the default " "pagekite.net server." msgstr "" -"మీ pagekite సర్వర్ ఎంచుకోండి. డిఫాల్ట్ pagekite.net సర్వర్ ఉపయోగించడానికి \"pagekite.net\" " -"సెట్." +"మీ పేజ్‌కైట్ సర్వర్‌ని ఎంచుకోండి. డిఫాల్ట్ pagekite.net సర్వర్‌ని ఉపయోగించడానికి \"pagekite.net\"ని సెట్ " +"చేయండి." #: plinth/modules/pagekite/forms.py:37 plinth/modules/shadowsocks/forms.py:40 msgid "Server port" @@ -4920,11 +4853,11 @@ msgid "Kite secret" msgstr "కైట్ రహస్యము" #: plinth/modules/pagekite/forms.py:48 -#, fuzzy msgid "" "A secret associated with the kite or the default secret for your account if " "no secret is set on the kite." -msgstr "గాలిపటం లేదా రహస్యం గాలిపటం సెట్ అయితే మీ ఖాతా కోసం డిఫాల్ట్ రహస్య అనుబంధించబడిన ఒక రహస్య." +msgstr "" +"గాలిపటంతో అనుబంధించబడిన రహస్యం లేదా గాలిపటంపై రహస్యం ఏదీ సెట్ చేయకుంటే మీ ఖాతా కోసం డిఫాల్ట్ రహస్యం." #: plinth/modules/pagekite/forms.py:88 msgid "protocol" @@ -4943,35 +4876,29 @@ msgid "Enable Subdomains" msgstr "సబ్డొమైన్లు క్రియాశీలీకరించు" #: plinth/modules/pagekite/forms.py:130 -#, fuzzy msgid "Deleted custom service" -msgstr "తొలగించినవి కస్టమ్ సేవ" +msgstr "కస్టమ్ సర్వీస్ తొలగించబడింది" #: plinth/modules/pagekite/forms.py:164 -#, fuzzy msgid "This service is already available as a standard service." -msgstr "" -"ఈ సేవను ప్రమాణం సేవగా అందుబాటులో ఉంది. దయచేసి దాన్ని ఎనేబుల్ \"ప్రామాణిక సేవలు\" పేజీ ఉపయోగించడానికి." +msgstr "ఈ సేవ ఇప్పటికే ప్రామాణిక సేవగా అందుబాటులో ఉంది." #: plinth/modules/pagekite/forms.py:172 -#, fuzzy msgid "Added custom service" -msgstr "కస్టమ్ సేవ చేర్చబడింది" +msgstr "అనుకూల సేవ జోడించబడింది" #: plinth/modules/pagekite/forms.py:175 msgid "This service already exists" msgstr "ఈ సేవ ఇప్పటికే ఉంది" #: plinth/modules/pagekite/templates/pagekite_configure.html:13 -#, fuzzy msgid "Custom Services" msgstr "కస్టమ్ సేవలు" #: plinth/modules/pagekite/templates/pagekite_configure.html:17 #: plinth/modules/pagekite/templates/pagekite_configure.html:19 -#, fuzzy msgid "Add Custom Service" -msgstr "కస్టమ్ సేవలు" +msgstr "అనుకూల సేవను జోడించండి" #: plinth/modules/pagekite/templates/pagekite_configure.html:35 #, python-format @@ -4984,9 +4911,8 @@ msgstr "ఈ సేవను తొలగించు" #: plinth/modules/pagekite/templates/pagekite_custom_services.html:11 #: plinth/modules/pagekite/views.py:34 -#, fuzzy msgid "Add custom PageKite service" -msgstr "కస్టమ్ సేవ చేర్చబడింది" +msgstr "అనుకూల పేజ్‌కైట్ సేవను జోడించండి" #: plinth/modules/pagekite/templates/pagekite_custom_services.html:14 msgid "" @@ -5030,7 +4956,7 @@ msgstr "" #: plinth/modules/performance/__init__.py:16 #: plinth/modules/performance/__init__.py:42 msgid "Performance" -msgstr "" +msgstr "ప్రదర్శన" #: plinth/modules/performance/__init__.py:19 msgid "" @@ -5038,18 +4964,19 @@ msgid "" "utilization of the hardware. This can give you basic insights into usage " "patterns and whether the hardware is overloaded by users and services." msgstr "" +"పనితీరు అనువర్తనం హార్డ్‌వేర్ వినియోగం గురించి సమాచారాన్ని సేకరించడానికి, నిల్వ చేయడానికి మరియు వీక్షించడానికి " +"మిమ్మల్ని అనుమతిస్తుంది. ఇది మీకు వినియోగ నమూనాలు మరియు హార్డ్‌వేర్ వినియోగదారులు మరియు సేవల ద్వారా ఓవర్‌లోడ్ " +"చేయబడిందా అనే దాని గురించి ప్రాథమిక అంతర్దృష్టులను అందిస్తుంది." #: plinth/modules/performance/__init__.py:23 msgid "" "Performance metrics are collected by Performance Co-Pilot and can be viewed " "using the Cockpit app." -msgstr "" +msgstr "పనితీరు కొలమానాలు పనితీరు కో-పైలట్ ద్వారా సేకరించబడతాయి మరియు కాక్‌పిట్ యాప్‌ని ఉపయోగించి వీక్షించవచ్చు." #: plinth/modules/performance/__init__.py:43 -#, fuzzy -#| msgid "System Configuration" msgid "System Monitoring" -msgstr "వ్యవస్థ రూపశిల్పం" +msgstr "వ్యవస్థ దర్శినికరణ" #: plinth/modules/power/__init__.py:14 msgid "Restart or shut down the system." @@ -5073,10 +5000,8 @@ msgid "Restart" msgstr "పునఃప్రారంభించండి" #: plinth/modules/power/templates/power.html:25 -#, fuzzy -#| msgid "Shut Down Now" msgid "Shut Down" -msgstr "ఇపుడు మూసివేయండి" +msgstr "మూసివేయండి" #: plinth/modules/power/templates/power_restart.html:17 msgid "" @@ -5166,6 +5091,11 @@ msgid "" "one or more Quassel clients from a desktop or a mobile can be used to " "connect and disconnect from it." msgstr "" +"క్వాసెల్ అనేది IRC అప్లికేషన్, ఇది \"కోర్\" మరియు \"క్లయింట్\" అనే రెండు భాగాలుగా విభజించబడింది. ఇది " +"కోర్‌ని IRC సర్వర్‌లకు కనెక్ట్ చేయడానికి మరియు క్లయింట్ డిస్‌కనెక్ట్ చేయబడినప్పటికీ సందేశాలను స్వీకరించడాన్ని " +"కొనసాగించడానికి అనుమతిస్తుంది. {box_name} మిమ్మల్ని ఎల్లప్పుడూ ఆన్‌లైన్‌లో ఉంచేలా Quassel కోర్ సేవను " +"అమలు చేయగలదు మరియు డెస్క్‌టాప్ లేదా మొబైల్ నుండి ఒకటి లేదా అంతకంటే ఎక్కువ క్వాసెల్ క్లయింట్‌లను కనెక్ట్ " +"చేయడానికి మరియు డిస్‌కనెక్ట్ చేయడానికి ఉపయోగించవచ్చు." #: plinth/modules/quassel/__init__.py:34 msgid "" @@ -5174,6 +5104,10 @@ msgid "" "downloads\">desktop and mobile devices are available." msgstr "" +"మీరు డిఫాల్ట్ Quassel పోర్ట్ 4242లో మీ Quassel కోర్‌కి కనెక్ట్ చేయవచ్చు. క్లయింట్‌లు మీ డెస్క్‌టాప్ మరియు మొబైల్ పరికరాలు అందుబాటులో " +"ఉన్నాయి." #: plinth/modules/quassel/__init__.py:56 plinth/modules/quassel/manifest.py:9 msgid "Quassel" @@ -5196,10 +5130,10 @@ msgid "" "application is needed. Radicale can be accessed by any user with a " "{box_name} login." msgstr "" -"రాడికల్ అనేది CalDAV మరియు CardDAV సర్వర్.ఇది సిన్క్రోనైజేషన్ మరియు షెడ్యూలింగ్ మరియు సంప్రదింపు డేటా " -"యొక్క భాగస్వామ్యాన్ని అనుమతిస్తుంది.రాడికల్ ను వాడటానికి supported client application అవసరం.\n" -"రాడికల్ ఏ యూజర్ అయినా {box_name}లాగిన్ తో యాక్సెస్ చేయవచ్చు" +"రాడికల్ అనేది కాల్డప్మరియు కార్డ్‌డిఎవిసర్వర్.ఇది సిన్క్రోనైజేషన్ మరియు షెడ్యూలింగ్ మరియు సంప్రదింపు డేటా యొక్క " +"భాగస్వామ్యాన్ని అనుమతిస్తుంది.రాడికల్ ను వాడటానికి &ల్టీ ;ఆ హార్ఫ్=\"హ్త్త్ప్://రాడికల్.ఆర్గ్/క్లైంట్స్/" +"\"&జిత్ ;మద్దతు ఉన్న క్లయింట్ అప్లికేషన్&ల్టీ ;/ఆ &జిత్; అవసరం.\n" +"రాడికల్ ఏ యూజర్ అయినా బాక్స్_నామలాగిన్ తో యాక్సెస్ చేయవచ్చు {box_name}" #: plinth/modules/radicale/__init__.py:31 msgid "" @@ -5207,6 +5141,9 @@ msgid "" "calendars and addressbooks. It does not support adding events or contacts, " "which must be done using a separate client." msgstr "" +"Radicale ప్రాథమిక వెబ్ ఇంటర్‌ఫేస్‌ను అందిస్తుంది, ఇది కొత్త క్యాలెండర్‌లు మరియు అడ్రస్‌బుక్‌లను " +"రూపొందించడానికి మాత్రమే మద్దతు ఇస్తుంది. ఈవెంట్‌లు లేదా పరిచయాలను జోడించడానికి ఇది మద్దతు ఇవ్వదు, ఇది " +"ప్రత్యేక క్లయింట్‌ని ఉపయోగించి చేయాలి." #: plinth/modules/radicale/__init__.py:55 #: plinth/modules/radicale/manifest.py:74 @@ -5223,28 +5160,25 @@ msgstr "క్యాలెండర్ / ఆడ్రస్ బుక్ యజ #: plinth/modules/radicale/forms.py:18 #, fuzzy, python-brace-format -#| msgid "" -#| "Any user can view any calendar/addressbook, but only the owner can make " -#| "changes." msgid "" "Any user with a {box_name} login can view any calendar/addressbook, but only " "the owner can make changes." msgstr "" -"ఏ వినియోగదారుడు అయినా క్యాలెండరు /ఆడ్రస్ బుక్ ని చూడవచ్చు, కానీ కేవలం యజమాని మాత్రమే మార్పులు చేయగలరు." +"బాక్స్_నామ లాగిన్ ఉన్న ఏ వినియోగదారు అయినా ఏదైనా క్యాలెండర్/చిరునామా పుస్తకాన్ని వీక్షించగలరు, కానీ యజమాని " +"మాత్రమే మార్పులు చేయగలరు. {box_name}" #: plinth/modules/radicale/forms.py:23 #, fuzzy, python-brace-format -#| msgid "Any user can view or make changes to any calendar/addressbook." msgid "" "Any user with a {box_name} login can view or make changes to any calendar/" "addressbook." -msgstr "ఏ వినియోగదారుడు అయినా క్యాలెండరు /ఆడ్రస్ బుక్ ని చూడగలరు లేదా మార్పులు చేయగలరు." +msgstr "" +"బాక్స్_నామలాగిన్ ఉన్న ఏ వినియోగదారు అయినా ఏదైనా క్యాలెండర్/చిరునామా పుస్తకాన్ని వీక్షించవచ్చు లేదా మార్పులు " +"చేయవచ్చు. {box_name}" #: plinth/modules/radicale/forms.py:30 -#, fuzzy -#| msgid "Access Point" msgid "Access rights" -msgstr "ప్రాప్తి సూచి" +msgstr "సాంగత్యం హక్కులు" #: plinth/modules/radicale/manifest.py:9 msgid "DAVx5" @@ -5256,6 +5190,9 @@ msgid "" "address>) and your user name. DAVx5 will show all existing calendars and " "address books and you can create new." msgstr "" +"రాడికేల్ సర్వర్ యొక్క URL (ఉదా. https://) మరియు మీ వినియోగదారు " +"పేరును నమోదు చేయండి. DAVx5 ఇప్పటికే ఉన్న అన్ని క్యాలెండర్‌లు మరియు చిరునామా పుస్తకాలను చూపుతుంది " +"మరియు మీరు కొత్తదాన్ని సృష్టించవచ్చు." #: plinth/modules/radicale/manifest.py:28 msgid "GNOME Calendar" @@ -5280,12 +5217,14 @@ msgid "" "address>) and your user name. Clicking on the search button will list the " "existing calendars and address books." msgstr "" +"పరిణామం లో WebDAVతో వరుసగా కొత్త క్యాలెండర్ మరియు చిరునామా పుస్తకాన్ని జోడించండి. రాడికేల్ సర్వర్ యొక్క " +"URL (ఉదా. https://) మరియు మీ వినియోగదారు పేరును నమోదు చేయండి. " +"శోధన బటన్‌పై క్లిక్ చేయడం ద్వారా ఇప్పటికే ఉన్న క్యాలెండర్‌లు మరియు చిరునామా పుస్తకాలు జాబితా చేయబడతాయి." #: plinth/modules/radicale/views.py:35 -#, fuzzy -#| msgid "Configuration updated" msgid "Access rights configuration updated" -msgstr "ఆకృతీకరణ నవీకరించబడింది" +msgstr "సాంగత్యం హక్కుల కాన్ఫిగరేషన్ నవీకరించబడింది" #: plinth/modules/roundcube/__init__.py:21 msgid "" @@ -5306,6 +5245,10 @@ msgid "" "(recommended), fill the server field like imaps://imap.example.com." msgstr "" +"imap.example.com వంటి మీ ఇమెయిల్ ప్రొవైడర్ కోసం IMAP సర్వర్ డొమైన్ పేరును " +"అనుసరించి మీరు యాక్సెస్ చేయాలనుకుంటున్న ఇమెయిల్ ఖాతా యొక్క వినియోగదారు పేరు మరియు పాస్‌వర్డ్‌ను అందించడం " +"ద్వారా మీరు దీన్ని ఉపయోగించవచ్చు. SSL ద్వారా IMAP కోసం (సిఫార్సు చేయబడింది), imaps://imap." +"example.com వంటి సర్వర్ ఫీల్డ్‌ను పూరించండి." #: plinth/modules/roundcube/__init__.py:31 msgid "" @@ -5316,6 +5259,11 @@ msgid "" "lesssecureapps\">https://www.google.com/settings/security/lesssecureapps)." msgstr "" +"జి-తపాలా కోసం, వినియోగదారు పేరు మీ Gmail చిరునామా, పాస్‌వర్డ్ మీ Google ఖాతా పాస్‌వర్డ్ మరియు సర్వర్ " +"imaps://imap.gmail.com అవుతుంది. మీరు మీ Google ఖాతా సెట్టింగ్‌లలో (https://www." +"google.comలో \"తక్కువ సురక్షిత యాప్‌లు\" కూడా ప్రారంభించవలసి ఉంటుందని గుర్తుంచుకోండి /" +"settings/security/lesssecureapps)." #: plinth/modules/roundcube/__init__.py:55 msgid "Email Client" @@ -5323,7 +5271,7 @@ msgstr "ఇమెయిల్ క్లయింట్" #: plinth/modules/roundcube/forms.py:16 msgid "Use only the local mail server" -msgstr "" +msgstr "స్థానిక తపాల సేవికని మాత్రమే ఉపయోగించండి" #: plinth/modules/roundcube/forms.py:17 #, python-brace-format @@ -5331,6 +5279,8 @@ msgid "" "When enabled, text box for server input is removed from login page and users " "can only read and send mails from this {box_name}." msgstr "" +"ప్రారంభించబడినప్పుడు, లాగిన్ పేజీ నుండి సర్వర్ ఇన్‌పుట్ కోసం టెక్స్ట్ బాక్స్ తీసివేయబడుతుంది మరియు " +"వినియోగదారులు ఈ {box_name} నుండి మెయిల్‌లను మాత్రమే చదవగలరు మరియు పంపగలరు." #: plinth/modules/samba/__init__.py:27 msgid "" @@ -5348,6 +5298,9 @@ msgid "" "\\{hostname} (on Windows) or smb://{hostname}.local (on Linux and Mac). " "There are three types of shares you can choose from: " msgstr "" +"ఇన్‌స్టాలేషన్ తర్వాత, భాగస్వామ్యం కోసం ఏ డిస్క్‌లను ఉపయోగించాలో మీరు ఎంచుకోవచ్చు. ప్రారంభించబడిన షేర్‌లను మీ " +"కంప్యూటర్‌లోని ఫైల్ మేనేజర్‌లో \\\\{hostname} (Windowsలో) లేదా smb://{hostname}.local " +"(Linux మరియు Macలో) వద్ద యాక్సెస్ చేయవచ్చు. మీరు ఎంచుకోగల మూడు రకాల షేర్లు ఉన్నాయి: " #: plinth/modules/samba/__init__.py:35 msgid "Open share - accessible to everyone in your local network." @@ -5378,39 +5331,32 @@ msgid "Samba" msgstr "సాంబా" #: plinth/modules/samba/__init__.py:60 -#, fuzzy -#| msgid "Network Time Server" msgid "Network File Storage" -msgstr "అల్లిక సేవిక సమయం" +msgstr "నెట్‌వర్క్ దస్త్రంనిల్వ" #: plinth/modules/samba/manifest.py:14 -#, fuzzy msgid "Android Samba Client" -msgstr "ఐ ర్ సి క్లయింట్ (Quassel)" +msgstr "ఆండ్రాయిడ్ సాంబా క్లయింట్" #: plinth/modules/samba/manifest.py:27 msgid "Ghost Commander - Samba plugin" -msgstr "" +msgstr "ఘోస్ట్ కమాండర్ - సాంబా ప్లగ్ఇన్" #: plinth/modules/samba/manifest.py:41 msgid "VLC media player" -msgstr "" +msgstr "VLC మాద్యమ ప్లేయర్" -#: plinth/modules/samba/manifest.py:55 -#, fuzzy -#| msgid "GNOME Calendar" +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" -msgstr "కేలండర్" +msgstr "GNOME దస్త్రం" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" -msgstr "" +msgstr "డాల్ఫిన్" #: plinth/modules/samba/templates/samba.html:20 -#, fuzzy -#| msgid "Shared" msgid "Shares" -msgstr "పంచుకోబడ్డ" +msgstr "భాగస్వామ్యాలు" #: plinth/modules/samba/templates/samba.html:22 msgid "" @@ -5431,6 +5377,9 @@ msgid "" "\"%(storage_url)s\">storage module page and configure access to the " "shares on the users module page." msgstr "" +"మీరు డిస్క్‌ల గురించి అదనపు సమాచారాన్ని నిల్వ మాడ్యూల్ పేజీలో " +"కనుగొనవచ్చు మరియు యూజర్‌లలోని భాగస్వామ్యాలకు ప్రాప్యతను కాన్ఫిగర్ " +"చేయవచ్చు. /a> మాడ్యూల్ పేజీ." #: plinth/modules/samba/templates/samba.html:120 msgid "Users who can currently access group and home shares" @@ -5445,10 +5394,8 @@ msgstr "" "అవసరం ఉన్న వినియోగదారులు" #: plinth/modules/samba/templates/samba.html:129 -#, fuzzy -#| msgid "Available Domains" msgid "Unavailable Shares" -msgstr "అందుబాటులో ఉన్న డొమైన్లు" +msgstr "అందుబాటులో లేని భాగస్వామ్యాలు" #: plinth/modules/samba/templates/samba.html:131 msgid "" @@ -5459,64 +5406,46 @@ msgstr "" "ప్రారంభించబడుతుంది." #: plinth/modules/samba/templates/samba.html:140 -#, fuzzy -#| msgid "Shared" msgid "Share name" -msgstr "పంచుకోబడ్డ" +msgstr "భాగస్వామ్యం పేరు" #: plinth/modules/samba/templates/samba.html:141 -#, fuzzy -#| msgid "Actions" msgid "Action" -msgstr "చర్యలు" +msgstr "చర్య" #: plinth/modules/samba/views.py:33 -#, fuzzy -#| msgid "FreedomBox" msgid "FreedomBox OS disk" -msgstr "ఫ్రీడమ్‌బాక్స్" +msgstr "ఫ్రీడమ్‌బాక్స్ OS డిస్క్" #: plinth/modules/samba/views.py:59 plinth/modules/storage/forms.py:146 -#, fuzzy -#| msgid "Add Service" msgid "Open Share" -msgstr "సేవ జోడించండి" +msgstr "భాగస్వామ్యాన్ని తెరవండి" #: plinth/modules/samba/views.py:63 plinth/modules/storage/forms.py:144 -#, fuzzy -#| msgid "Add Service" msgid "Group Share" -msgstr "సేవ జోడించండి" +msgstr "సమూహం భాగస్వామ్యం" #: plinth/modules/samba/views.py:67 -#, fuzzy -#| msgid "Homepage" msgid "Home Share" -msgstr "హోంపేజ్" +msgstr "నివాస భాగస్వామ్యం" #: plinth/modules/samba/views.py:102 -#, fuzzy -#| msgid "{name} deleted." msgid "Share enabled." -msgstr "{name} తొలగించబడింది." +msgstr "భాగస్వామ్యం ప్రారంభించబడింది." #: plinth/modules/samba/views.py:107 -#, fuzzy, python-brace-format -#| msgid "Error installing application: {error}" +#, python-brace-format msgid "Error enabling share: {error_message}" -msgstr "అనువర్తనం స్థాపించుటలో దోషం: {error}" +msgstr "భాగస్వామ్యాన్ని ప్రారంభించడంలో లోపం: {error_message}" #: plinth/modules/samba/views.py:112 -#, fuzzy -#| msgid "Shared" msgid "Share disabled." -msgstr "పంచుకోబడ్డ" +msgstr "భాగస్వామ్యం నిలిపివేయబడింది." #: plinth/modules/samba/views.py:117 -#, fuzzy, python-brace-format -#| msgid "Error installing application: {error}" +#, python-brace-format msgid "Error disabling share: {error_message}" -msgstr "అనువర్తనం స్థాపించుటలో దోషం: {error}" +msgstr "భాగస్వామ్యాన్ని నిలిపివేయడంలో లోపం: {error_message}" #: plinth/modules/searx/__init__.py:22 msgid "" @@ -5599,21 +5528,19 @@ msgstr "" #: plinth/modules/security/templates/security.html:12 #: plinth/modules/security/templates/security.html:14 -#, fuzzy -#| msgid "Security" msgid "Show security report" -msgstr "భద్రత" +msgstr "భద్రతా నివేదికను చూపు" #: plinth/modules/security/templates/security.html:19 #: plinth/modules/upgrades/templates/backports-firstboot.html:11 #: plinth/modules/upgrades/templates/upgrades_configure.html:44 msgid "Frequent Feature Updates" -msgstr "" +msgstr "తరచుగా ఫీచర్ అప్‌డేట్‌లు" #: plinth/modules/security/templates/security.html:21 #: plinth/modules/upgrades/templates/upgrades_configure.html:52 msgid "Frequent feature updates are activated." -msgstr "" +msgstr "తరచుగా ఫీచర్ అప్‌డేట్‌లు యాక్టివేట్ చేయబడింది." #: plinth/modules/security/templates/security.html:26 #: plinth/modules/upgrades/templates/backports-firstboot.html:14 @@ -5628,13 +5555,16 @@ msgid "" "Instead, they are maintained by contributors to Debian and the %(box_name)s " "community." msgstr "" +"తరచుగా ఫీచర్ అప్‌డేట్‌లు %(box_name)s సర్వీస్‌తో పాటు చాలా పరిమిత సాఫ్ట్‌వేర్ సెట్‌ను కొత్త ఫీచర్‌లను మరింత " +"తరచుగా స్వీకరించడానికి అనుమతిస్తాయి (బ్యాక్‌పోర్ట్‌ల రిపోజిటరీ నుండి). దీని ఫలితంగా ప్రతి 2 సంవత్సరాలకు ఒకసారి " +"మాత్రమే కాకుండా, వారాల్లోనే కొన్ని కొత్త ఫీచర్‌లు అందుతాయి. తరచుగా ఫీచర్ అప్‌డేట్‌లు ఉన్న సాఫ్ట్‌వేర్‌కు డెబియన్ " +"సెక్యూరిటీ టీమ్ నుండి మద్దతు లేదని గమనించండి. బదులుగా, అవి డెబియన్ మరియు %(box_name)s కమ్యూనిటీకి " +"కంట్రిబ్యూటర్‌లచే నిర్వహించబడతాయి." #: plinth/modules/security/templates/security_report.html:10 #: plinth/modules/security/views.py:74 -#, fuzzy -#| msgid "Security" msgid "Security Report" -msgstr "భద్రత" +msgstr "భద్రతా నివేదిక" #: plinth/modules/security/templates/security_report.html:12 #, python-format @@ -5642,6 +5572,8 @@ 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 "" +"స్వేచ్చపెట్టే యాప్‌లో %(count)s భద్రతా లోపాలు నివేదించబడ్డాయి, ఇది స్వేచ్చపెట్టే సర్వర్ కోసం ప్రధాన సేవలు " +"మరియు వినియోగదారు ఇంటర్‌ఫేస్‌ను అందిస్తుంది." #: plinth/modules/security/templates/security_report.html:19 msgid "" @@ -5650,6 +5582,9 @@ msgid "" "vulnerabilities can be found on the Debian Security Bug Tracker." msgstr "" +"కింది పట్టిక ప్రతి ఇన్‌స్టాల్ చేసిన యాప్‌కు సంబంధించి ప్రస్తుతం నివేదించబడిన భద్రతా దుర్బలత్వాల సంఖ్యను " +"జాబితా చేస్తుంది. దుర్బలత్వాలపై మరింత సమాచారం డెబియన్ సెక్యూరిటీ బగ్ ట్రాకర్లో కనుగొనవచ్చు." #: plinth/modules/security/templates/security_report.html:28 msgid "" @@ -5657,6 +5592,8 @@ msgid "" "sandboxing features are in use. Sandboxing mitigates the impact of a " "potentially compromised app to the rest of the system." msgstr "" +"సేవలను అందించే యాప్‌ల కోసం, శాండ్‌బాక్సింగ్ ఫీచర్‌లు ఉపయోగంలో ఉన్నాయో లేదో \"శాండ్‌బాక్స్డ్\" నిలువు వరుస " +"చూపుతుంది. శాండ్‌బాక్సింగ్ మిగిలిన సిస్టమ్‌కు సంభావ్యంగా రాజీపడే యాప్ ప్రభావాన్ని తగ్గిస్తుంది." #: plinth/modules/security/templates/security_report.html:35 msgid "" @@ -5664,62 +5601,49 @@ msgid "" "from the rest of the system. It is only displayed while the service is " "running." msgstr "" +"\"శాండ్‌బాక్స్ కవరేజ్\" అనేది మిగిలిన సిస్టమ్ నుండి సేవ ఎంత ప్రభావవంతంగా వేరు చేయబడిందనే దాని స్కోర్. సేవ " +"నడుస్తున్నప్పుడు మాత్రమే ఇది ప్రదర్శించబడుతుంది." #: plinth/modules/security/templates/security_report.html:45 -#, fuzzy -#| msgid "Name" msgid "App Name" -msgstr "పేరు" +msgstr "కార్యక్షేత్రం పేరు" #: plinth/modules/security/templates/security_report.html:46 msgid "Current Vulnerabilities" msgstr "ప్రస్తుత దుర్బలతలు" #: plinth/modules/security/templates/security_report.html:47 -#, fuzzy -#| msgid "Block Sandbox (Minetest)" msgid "Sandboxed" -msgstr "స్యాండ్ బాక్స్ ను అడ్డగించు (మైన్ పరీక్ష)" +msgstr "శాండ్‌బాక్స్ చేయబడింది" #: plinth/modules/security/templates/security_report.html:48 -#, fuzzy -#| msgid "Block Sandbox (Minetest)" msgid "Sandbox Coverage" -msgstr "స్యాండ్ బాక్స్ ను అడ్డగించు (మైన్ పరీక్ష)" +msgstr "శాండ్‌బాక్స్ కవరేజ్" #: plinth/modules/security/templates/security_report.html:58 msgid "N/A" msgstr "N/A" #: plinth/modules/security/templates/security_report.html:60 -#, fuzzy -#| msgid "yes" msgid "Yes" msgstr "అవును" #: plinth/modules/security/templates/security_report.html:62 -#, fuzzy -#| msgid "None" msgid "No" msgstr "ఏమీ లేదు" #: plinth/modules/security/templates/security_report.html:69 -#, fuzzy -#| msgid "is not running" msgid "Not running" -msgstr "డెల్యూజ్ నడవడంలేదు" +msgstr "పరుగు లేదు" #: plinth/modules/security/views.py:56 -#, fuzzy, python-brace-format -#| msgid "Error setting time zone: {exception}" +#, python-brace-format msgid "Error setting restricted access: {exception}" -msgstr "సమయమండలం అమర్పులోపం: {exception}" +msgstr "నియంత్రిత ప్రాప్యతను సెట్ చేయడంలో లోపం: {exception}" #: plinth/modules/security/views.py:59 -#, fuzzy -#| msgid "General Configuration" msgid "Updated security configuration" -msgstr "సాధారణ ఆకృతీకరణ" +msgstr "నవీకరించబడిన భద్రతా ఆకృతీకరణ" #: plinth/modules/shaarli/__init__.py:18 msgid "Shaarli allows you to save and share bookmarks." @@ -5730,23 +5654,20 @@ msgid "" "Note that Shaarli only supports a single user account, which you will need " "to setup on the initial visit." msgstr "" +"శారలి ఒక వినియోగదారు ఖాతాకు మాత్రమే మద్దతు ఇస్తుందని గమనించండి, మీరు ప్రారంభ సందర్శనలో సెటప్ చేయాల్సి " +"ఉంటుంది." #: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25 msgid "Shaarli" msgstr "షార్లి" #: plinth/modules/shaarli/__init__.py:39 -#, fuzzy msgid "Bookmarks" -msgstr "" -"గుర్తుంచు\n" -" (Shaarli)" +msgstr "బుక్‌మార్క్‌లు" #: plinth/modules/shaarli/manifest.py:12 -#, fuzzy -#| msgid "Shaarli" msgid "Shaarlier" -msgstr "షార్లి" +msgstr "షార్లియర్" #: plinth/modules/shadowsocks/__init__.py:21 msgid "" @@ -5765,12 +5686,17 @@ msgid "" "connect to this proxy, and their data will be encrypted and proxied through " "the Shadowsocks server." msgstr "" +"మీ {box_name} Shadowsocks క్లయింట్‌ని అమలు చేయగలదు, అది Shadowsocks సర్వర్‌కి కనెక్ట్ " +"చేయగలదు. ఇది SOCKS5 ప్రాక్సీని కూడా అమలు చేస్తుంది. స్థానిక పరికరాలు ఈ ప్రాక్సీకి కనెక్ట్ చేయగలవు " +"మరియు వాటి డేటా Shadowsocks సర్వర్ ద్వారా గుప్తీకరించబడుతుంది మరియు ప్రాక్సీ చేయబడుతుంది." #: plinth/modules/shadowsocks/__init__.py:30 msgid "" "To use Shadowsocks after setup, set the SOCKS5 proxy URL in your device, " "browser or application to http://freedombox_address:1080/" msgstr "" +"సెటప్ తర్వాత Shadowsocksని ఉపయోగించడానికి, మీ పరికరం, బ్రౌజర్ లేదా అప్లికేషన్‌లో SOCKS5 ప్రాక్సీ URLని " +"http://freedombox_address:1080/కి సెట్ చేయండి" #: plinth/modules/shadowsocks/__init__.py:51 msgid "Shadowsocks" @@ -5786,10 +5712,8 @@ msgid "Recommended" msgstr "సిఫార్సు చేయబడింది" #: plinth/modules/shadowsocks/forms.py:37 -#, fuzzy -#| msgid "Service" msgid "Server" -msgstr "సేవ" +msgstr "సర్వర్" #: plinth/modules/shadowsocks/forms.py:38 msgid "Server hostname or IP address" @@ -5813,11 +5737,12 @@ msgid "" "Sharing allows you to share files and folders on your {box_name} over the " "web with chosen groups of users." msgstr "" +"వెబ్‌లో ఎంచుకున్న వినియోగదారుల సమూహాలతో మీ {box_name}లోని ఫైల్‌లు మరియు ఫోల్డర్‌లను భాగస్వామ్యం చేయడానికి " +"భాగస్వామ్యం మిమ్మల్ని అనుమతిస్తుంది." #: plinth/modules/sharing/__init__.py:39 -#, fuzzy msgid "Sharing" -msgstr "ఫైలు సమకాలీకరించబడుచున్నధి" +msgstr "భాగస్వామ్యం" #: plinth/modules/sharing/forms.py:18 msgid "Name of the share" @@ -5838,10 +5763,8 @@ msgid "Disk path to a folder on this server that you intend to share." msgstr "ఈ సర్వర్ పైన మీరు పంచుకోవాలి అనుకుంటున్న ఫోల్డర్ యొక్క డిస్క్ మార్గం." #: plinth/modules/sharing/forms.py:28 -#, fuzzy -#| msgid "Publish Key" msgid "Public share" -msgstr "కీని ప్రచురించండి" +msgstr "ప్రజా వాటా" #: plinth/modules/sharing/forms.py:29 msgid "Make files in this folder available to anyone with the link." @@ -5852,19 +5775,14 @@ msgid "User groups that can read the files in the share:" msgstr "భాగస్వామ్యంలోని ఫైళ్లను చదవగలిగే వినియోగదారుల సమూహాలు:" #: plinth/modules/sharing/forms.py:36 -#, fuzzy -#| msgid "" -#| "Users who have these permissions will also be able to read the files in " -#| "the share." msgid "" "Users of the selected user groups will be able to read the files in the " "share." -msgstr "ఈ అనుమతులను కలిగి ఉన్న వినియోగదారులు వాటాలోని ఫైళ్ళను కూడా చదవగలరు." +msgstr "ఎంచుకున్న వినియోగదారు సమూహాల వినియోగదారులు షేర్‌లోని ఫైల్‌లను చదవగలరు." #: plinth/modules/sharing/forms.py:52 -#, fuzzy msgid "A share with this name already exists." -msgstr "ఈ సేవ ఇప్పటికే ఉంది" +msgstr "ఈ పేరుతో ఒక వాటా ఇప్పటికే ఉంది." #: plinth/modules/sharing/forms.py:63 msgid "Shares should be either public or shared with at least one group" @@ -5872,10 +5790,8 @@ msgstr "షేర్లు పబ్లిక్ గా ఉండాలి ల #: plinth/modules/sharing/templates/sharing.html:19 #: plinth/modules/sharing/templates/sharing.html:22 -#, fuzzy -#| msgid "Add Service" msgid "Add share" -msgstr "సేవ జోడించండి" +msgstr "వాటాను జోడించండి" #: plinth/modules/sharing/templates/sharing.html:27 msgid "No shares currently configured." @@ -5886,10 +5802,8 @@ msgid "Disk Path" msgstr "డిస్క్ మార్గం" #: plinth/modules/sharing/templates/sharing.html:35 -#, fuzzy -#| msgid "Shared" msgid "Shared Over" -msgstr "పంచుకోబడ్డ" +msgstr "పైగా షేర్ చేయబడింది" #: plinth/modules/sharing/templates/sharing.html:36 msgid "With Groups" @@ -5900,34 +5814,24 @@ msgid "public access" msgstr "ప్రజా ప్రాప్తి" #: plinth/modules/sharing/views.py:39 -#, fuzzy -#| msgid "Shared" msgid "Share added." msgstr "పంచుకోబడ్డ" #: plinth/modules/sharing/views.py:44 -#, fuzzy -#| msgid "Add Service" msgid "Add Share" -msgstr "సేవ జోడించండి" +msgstr "వాటా జోడించండి" #: plinth/modules/sharing/views.py:59 -#, fuzzy -#| msgid "Shared" msgid "Share edited." -msgstr "పంచుకోబడ్డ" +msgstr "భాగస్వామ్యం సవరించబడింది." #: plinth/modules/sharing/views.py:64 -#, fuzzy -#| msgid "Edit User" msgid "Edit Share" -msgstr "వినియోగదారి మార్పు" +msgstr "భాగస్వామ్యాన్ని సవరించండి" #: plinth/modules/sharing/views.py:95 -#, fuzzy -#| msgid "{name} deleted." msgid "Share deleted." -msgstr "{name} తొలగించబడింది." +msgstr "వాటా తొలగించబడింది." #: plinth/modules/snapshot/__init__.py:22 msgid "" @@ -5935,6 +5839,9 @@ msgid "" "can be used to roll back the system to a previously known good state in case " "of unwanted changes to the system." msgstr "" +"snapshots btrfs ఫైల్ సిస్టమ్ స్నాప్‌షాట్‌లను సృష్టించడానికి మరియు నిర్వహించడానికి అనుమతిస్తుంది. సిస్టమ్‌లో " +"అవాంఛిత మార్పులు సంభవించినప్పుడు సిస్టమ్‌ను గతంలో తెలిసిన మంచి స్థితికి రోల్ బ్యాక్ చేయడానికి వీటిని " +"ఉపయోగించవచ్చు." #: plinth/modules/snapshot/__init__.py:26 #, no-python-format @@ -5943,6 +5850,8 @@ msgid "" "and after a software installation. Older snapshots will be automatically " "cleaned up according to the settings below." msgstr "" +"స్నాప్‌షాట్‌లు క్రమానుగతంగా తీసుకోబడతాయి (టైమ్‌లైన్ స్నాప్‌షాట్‌లు అని పిలుస్తారు) మరియు సాఫ్ట్‌వేర్ ఇన్‌స్టాలేషన్‌కు " +"ముందు మరియు తర్వాత కూడా. దిగువ సెట్టింగ్‌ల ప్రకారం పాత స్నాప్‌షాట్‌లు స్వయంచాలకంగా శుభ్రం చేయబడతాయి." #: plinth/modules/snapshot/__init__.py:29 msgid "" @@ -5950,6 +5859,9 @@ msgid "" "partition only. Snapshots are not a replacement for backups since they can only be stored on the same partition. " msgstr "" +"స్నాప్‌షాట్‌లు ప్రస్తుతం btrfs ఫైల్ సిస్టమ్‌లలో మాత్రమే మరియు రూట్ విభజనపై మాత్రమే పని చేస్తాయి. స్నాప్‌షాట్‌లు బ్యాకప్‌లకి ప్రత్యామ్నాయం కాదు, ఎందుకంటే అవి ఒకే విభజనలో " +"మాత్రమే నిల్వ చేయబడతాయి. " #: plinth/modules/snapshot/__init__.py:54 msgid "Storage Snapshots" @@ -5957,7 +5869,7 @@ msgstr "నిల్వ దృశ్యములు" #: plinth/modules/snapshot/forms.py:12 msgid "Free Disk Space to Maintain" -msgstr "" +msgstr "నిర్వహించడానికి ఉచిత డిస్క్ స్పేస్" #: plinth/modules/snapshot/forms.py:13 msgid "" @@ -5965,59 +5877,48 @@ msgid "" "below this value, older snapshots are removed until this much free space is " "regained. The default value is 30%." msgstr "" +"డిస్క్‌లో ఖాళీ స్థలం యొక్క ఈ శాతాన్ని నిర్వహించండి. ఖాళీ స్థలం ఈ విలువ కంటే తక్కువగా ఉంటే, ఇంత ఖాళీ " +"స్థలాన్ని తిరిగి పొందే వరకు పాత స్నాప్‌షాట్‌లు తీసివేయబడతాయి. డిఫాల్ట్ విలువ 30%." #: plinth/modules/snapshot/forms.py:20 -#, fuzzy -#| msgid "Enable Timeline Snapshots" msgid "Timeline Snapshots" -msgstr "కాలక్రమం స్నాప్షాట్లు ఉపయోగించండి" +msgstr "కాలక్రమం స్నాప్‌షాట్‌లు" #: plinth/modules/snapshot/forms.py:21 -#, fuzzy -#| msgid "" -#| "Uncheck this to disable timeline snapshots (hourly, daily, monthly and " -#| "yearly)." msgid "" "Enable or disable timeline snapshots (hourly, daily, monthly and yearly)." -msgstr "కాలపట్టిక స్నాప్షాట్లను (గంట, రోజువారీ, నెలవారీ మరియు వార్షిక) నిలిపివేయడానికి దీనికి టిక్కు తీసివేయండి." +msgstr "కాలక్రమం స్నాప్‌షాట్‌లను ప్రారంభించండి లేదా నిలిపివేయండి (గంటకు, రోజువారీ, నెలవారీ మరియు వార్షికంగా)." #: plinth/modules/snapshot/forms.py:26 msgid "Software Installation Snapshots" msgstr "సాఫ్ట్వేర్ సంస్థాపన స్నాప్షాట్లు" #: plinth/modules/snapshot/forms.py:27 -#, fuzzy -#| msgid "Enable or disable snapshots before and after software installation" msgid "" "Enable or disable snapshots before and after each software installation and " "update." -msgstr "సాఫ్ట్వేర్ ఇన్స్టాలేషన్కు ముందు మరియు తర్వాత స్నాప్షాట్లను అనుమతించండి లేదా అనుమతి నిరాకరించండి" +msgstr "" +"ప్రతి సాఫ్ట్‌వేర్ ఇన్‌స్టాలేషన్ మరియు అప్‌డేట్‌కు ముందు మరియు తర్వాత స్నాప్‌షాట్‌లను ప్రారంభించండి లేదా నిలిపివేయండి." #: plinth/modules/snapshot/forms.py:32 -#, fuzzy -#| msgid "Storage Snapshots" msgid "Hourly Snapshots Limit" -msgstr "నిల్వ దృశ్యములు" +msgstr "గంటకు స్నాప్‌షాట్‌ల పరిమితి" #: plinth/modules/snapshot/forms.py:33 msgid "Keep a maximum of this many hourly snapshots." msgstr "ఒక గంటలో స్నాప్షాట్స్ ని ఇంతకు నియంత్రించుము." #: plinth/modules/snapshot/forms.py:36 -#, fuzzy -#| msgid "Delete Snapshots" msgid "Daily Snapshots Limit" -msgstr "స్నాప్షాట్‌లను తొలగించు" +msgstr "గంటకు స్నాప్‌షాట్‌ల పరిమితి" #: plinth/modules/snapshot/forms.py:37 msgid "Keep a maximum of this many daily snapshots." msgstr "ఒక రోజులో స్నాప్షాట్స్ ని ఇంతకు నియంత్రించుము." #: plinth/modules/snapshot/forms.py:40 -#, fuzzy -#| msgid "Delete Snapshots" msgid "Weekly Snapshots Limit" -msgstr "స్నాప్షాట్‌లను తొలగించు" +msgstr "వారపు స్నాప్‌షాట్‌ల పరిమితి" #: plinth/modules/snapshot/forms.py:41 msgid "Keep a maximum of this many weekly snapshots." @@ -6032,19 +5933,14 @@ msgid "Keep a maximum of this many monthly snapshots." msgstr "గరిష్టంగా ఒక నెలకు ఇన్ని స్నాప్షాట్లను ఉంచండి." #: plinth/modules/snapshot/forms.py:48 -#, fuzzy -#| msgid "Delete Snapshots" msgid "Yearly Snapshots Limit" -msgstr "స్నాప్షాట్‌లను తొలగించు" +msgstr "వార్షిక స్నాప్‌షాట్‌ల పరిమితి" #: plinth/modules/snapshot/forms.py:49 -#, fuzzy -#| msgid "" -#| "Keep a maximum of this many yearly snapshots. The default is 0 (disabled)." msgid "" "Keep a maximum of this many yearly snapshots. The default value is 0 (keep " "no yearly snapshot)." -msgstr "ఒక సవంత్సరంలో స్నాప్షాట్స్ ని ఇంతకు నియంత్రించుము. ప్రస్తుత సంఖ్యా 0 (సశక్తపరచబడలేదు)." +msgstr "ఈ అనేక వార్షిక స్నాప్‌షాట్‌లను గరిష్టంగా ఉంచండి. డిఫాల్ట్ విలువ 0 (వార్షిక స్నాప్‌షాట్‌ను ఉంచవద్దు)." #: plinth/modules/snapshot/templates/snapshot_delete_selected.html:12 msgid "Delete the following snapshots permanently?" @@ -6078,11 +5974,11 @@ msgstr "యథాస్థితి" #: plinth/modules/snapshot/templates/snapshot_manage.html:40 msgid "will be used at next boot" -msgstr "" +msgstr "తదుపరి బూట్‌లో ఉపయోగించబడుతుంది" #: plinth/modules/snapshot/templates/snapshot_manage.html:45 msgid "in use" -msgstr "" +msgstr "వాడుకలోఉంది" #: plinth/modules/snapshot/templates/snapshot_manage.html:54 #, python-format @@ -6095,11 +5991,12 @@ msgid "" "You have a filesystem of type %(fs_type)s. Snapshots are " "currently only available on %(types_supported)s filesystems." msgstr "" +"మీకు %(fs_type)s రకం ఫైల్ సిస్టమ్ ఉంది. స్నాప్‌షాట్‌లు ప్రస్తుతం " +"%(types_supported)s ఫైల్ సిస్టమ్‌లలో మాత్రమే అందుబాటులో ఉన్నాయి." #: plinth/modules/snapshot/templates/snapshot_rollback.html:12 -#, fuzzy msgid "Roll back the system to this snapshot?" -msgstr "ఈ వ్యవస్థ ని స్నాప్షాట్ కి రొల్ల్బచ్క్ చేయగలరా?" +msgstr "సిస్టమ్‌ను ఈ స్నాప్‌షాట్‌కి తిరిగి వెళ్లాలా?" #: plinth/modules/snapshot/templates/snapshot_rollback.html:15 msgid "" @@ -6116,34 +6013,28 @@ msgid "Rollback to Snapshot #%(number)s" msgstr "స్నాప్షాట్ #%(number)s కు రోల్‌బ్యాక్ చేయండి" #: plinth/modules/snapshot/views.py:27 -#, fuzzy -#| msgid "Repository created." msgid "manually created" -msgstr "రిపోజిటరీ సృష్టించబడింది." +msgstr "మానవీయంగా సృష్టించబడింది" #: plinth/modules/snapshot/views.py:28 msgid "timeline" -msgstr "" +msgstr "కాలక్రమం" #: plinth/modules/snapshot/views.py:29 msgid "apt" -msgstr "" +msgstr "సముచితమైనది" #: plinth/modules/snapshot/views.py:39 -#, fuzzy -#| msgid "Storage Snapshots" msgid "Manage Snapshots" -msgstr "నిల్వ దృశ్యములు" +msgstr "స్నాప్‌షాట్‌లను నిర్వహించండి" #: plinth/modules/snapshot/views.py:88 msgid "Created snapshot." msgstr "స్నాప్షాట్‌ సృష్టించబడినది." #: plinth/modules/snapshot/views.py:151 -#, fuzzy -#| msgid "Configuration updated" msgid "Storage snapshots configuration updated" -msgstr "ఆకృతీకరణ నవీకరించబడింది" +msgstr "నిల్వ స్నాప్‌షాట్‌ల కాన్ఫిగరేషన్ నవీకరించబడింది" #: plinth/modules/snapshot/views.py:155 plinth/modules/tor/views.py:60 #, python-brace-format @@ -6151,14 +6042,12 @@ msgid "Action error: {0} [{1}] [{2}]" msgstr "చర్య లోపం:{0}{1}{2}" #: plinth/modules/snapshot/views.py:183 -#, fuzzy -#| msgid "Delete all the snapshots" msgid "Deleted selected snapshots" -msgstr "అన్ని స్నాప్షాట్‌లను తొలగించు" +msgstr "ఎంచుకున్న స్నాప్‌షాట్‌లు తొలగించబడ్డాయి" #: plinth/modules/snapshot/views.py:188 msgid "Snapshot is currently in use. Please try again later." -msgstr "" +msgstr "స్నాప్‌షాట్ ప్రస్తుతం వాడుకలో ఉంది. దయచేసి తర్వాత మళ్లీ ప్రయత్నించండి." #: plinth/modules/snapshot/views.py:207 #, python-brace-format @@ -6180,16 +6069,17 @@ msgid "" "administration tasks, copy files or run other services using such " "connections." msgstr "" +"సురక్షిత షెల్ సర్వర్ రిమోట్ కంప్యూటర్‌ల నుండి కనెక్షన్‌లను ఆమోదించడానికి సురక్షిత షెల్ ప్రోటోకాల్‌ను " +"ఉపయోగిస్తుంది. అధీకృత రిమోట్ కంప్యూటర్ అటువంటి కనెక్షన్‌లను ఉపయోగించి అడ్మినిస్ట్రేషన్ పనులను చేయగలదు, " +"ఫైల్‌లను కాపీ చేయగలదు లేదా ఇతర సేవలను అమలు చేయగలదు." #: plinth/modules/ssh/__init__.py:45 msgid "Secure Shell (SSH) Server" msgstr "సెక్యూర్ షెల్ (SSH) సర్వర్" #: plinth/modules/ssh/forms.py:13 -#, fuzzy -#| msgid "Use HTTP basic authentication" msgid "Disable password authentication" -msgstr "HTTP ప్రాథమిక ప్రమాణీకరణ ఉపయోగించు" +msgstr "పాస్‌వర్డ్ ప్రమాణీకరణను నిలిపివేయండి" #: plinth/modules/ssh/forms.py:14 msgid "" @@ -6197,36 +6087,36 @@ msgid "" "setup SSH keys in your administrator user account before enabling this " "option." msgstr "" +"పాస్‌వర్డ్ ఊహించడాన్ని నిరోధించడం ద్వారా భద్రతను మెరుగుపరుస్తుంది. ఈ ఎంపికను ప్రారంభించే ముందు మీరు మీ " +"నిర్వాహక వినియోగదారు ఖాతాలో సెటప్ SSH కీలను కలిగి ఉన్నారని నిర్ధారించుకోండి." #: plinth/modules/ssh/templates/ssh.html:11 -#, fuzzy -#| msgid "SSH Fingerprint" msgid "Server Fingerprints" -msgstr "SSH వేలిముద్ర" +msgstr "సర్వర్ వేలిముద్రలు" #: plinth/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 "" +"సర్వర్‌కు కనెక్ట్ చేస్తున్నప్పుడు, SSH క్లయింట్ చూపిన వేలిముద్ర ఈ వేలిముద్రలలో ఒకదానికి సరిపోలుతుందని " +"నిర్ధారించుకోండి." #: plinth/modules/ssh/templates/ssh.html:24 msgid "Algorithm" msgstr "అల్గారిథం" #: plinth/modules/ssh/templates/ssh.html:25 -#, fuzzy -#| msgid "SSH Fingerprint" msgid "Fingerprint" -msgstr "SSH వేలిముద్ర" +msgstr "వేలిముద్ర" #: plinth/modules/ssh/views.py:48 msgid "SSH authentication with password disabled." -msgstr "" +msgstr "SSH ప్రమాణీకరణ తో SSH ఆపివేయబడింది ." #: plinth/modules/ssh/views.py:51 msgid "SSH authentication with password enabled." -msgstr "" +msgstr "SSH ప్రమాణీకరణ తో SSH ఆపివేయబడింది ." #: plinth/modules/sso/__init__.py:28 msgid "Single Sign On" @@ -6237,10 +6127,8 @@ msgid "Login" msgstr "ప్రవేశించు" #: plinth/modules/sso/views.py:101 -#, fuzzy -#| msgid "Password changed successfully." msgid "Logged out successfully." -msgstr "పాస్‌వర్డ్ విజయవంతంగా మార్చబడినది." +msgstr "విజయవంతంగా లాగ్ అవుట్ చేయబడింది." #: plinth/modules/storage/__init__.py:26 #, python-brace-format @@ -6249,12 +6137,14 @@ msgid "" "You can view the storage media currently in use, mount and unmount removable " "media, expand the root partition etc." msgstr "" +"ఈ మాడ్యూల్ మీకు జోడించిన నిల్వ మీడియాను నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తుంది {box_name}.మీరు " +"ప్రస్తుతం వాడుకలో ఉన్న స్టోరేజ్ మీడియాను వీక్షించవచ్చు, తొలగించగల మీడియాను మౌంట్ చేయవచ్చు మరియు అన్‌మౌంట్ " +"చేయవచ్చు, రూట్ విభజనను విస్తరించవచ్చు మొదలైనవి." #: plinth/modules/storage/__init__.py:51 plinth/modules/storage/__init__.py:322 #: plinth/modules/storage/__init__.py:353 -#, fuzzy msgid "Storage" -msgstr "అన్హొస్టెడ్ స్టోరేజ్ ని (పునరుద్ధరించండి)" +msgstr "నిల్వ" #: plinth/modules/storage/__init__.py:216 #, python-brace-format @@ -6283,21 +6173,19 @@ msgstr "{disk_size:.1f} టెరాబైట్లు" #: plinth/modules/storage/__init__.py:243 msgid "The operation failed." -msgstr "" +msgstr "ఆపరేషన్ విఫలమైంది." #: plinth/modules/storage/__init__.py:245 msgid "The operation was cancelled." -msgstr "" +msgstr "ఆపరేషన్ రద్దు చేయబడింది." #: plinth/modules/storage/__init__.py:247 -#, fuzzy -#| msgid "Mumble server is running" msgid "The device is already unmounting." -msgstr "మంబ్లు సేవిక నడుస్తుంది" +msgstr "పరికరం ఇప్పటికే అన్‌మౌంట్ చేయబడుతోంది." #: plinth/modules/storage/__init__.py:249 msgid "The operation is not supported due to missing driver/tool support." -msgstr "" +msgstr "డ్రైవర్/టూల్ సపోర్ట్ తప్పిపోయినందున ఆపరేషన్‌కు మద్దతు లేదు." #: plinth/modules/storage/__init__.py:252 msgid "The operation timed out." @@ -6308,9 +6196,8 @@ msgid "The operation would wake up a disk that is in a deep-sleep state." msgstr "ఈ ఆపరేషన్ గాఢ నిద్రలో ఉన్న ఒక డిస్క్ ను మేల్కొలుపుతుంది." #: plinth/modules/storage/__init__.py:257 -#, fuzzy msgid "Attempting to unmount a device that is busy." -msgstr "బిజీగా ఉన్న పరికరాన్ని అన్ మౌంట్ చేయడానికి ప్రయత్నిస్తోంది." +msgstr "బిజీగా ఉన్న పరికరాన్ని అన్‌మౌంట్ చేయడానికి ప్రయత్నిస్తోంది." #: plinth/modules/storage/__init__.py:259 msgid "The operation has already been cancelled." @@ -6323,15 +6210,12 @@ msgid "Not authorized to perform the requested operation." msgstr "అభ్యర్థించిన ఆపరేషన్ చేయడానికి అధికారం లేదు." #: plinth/modules/storage/__init__.py:267 -#, fuzzy msgid "The device is already mounted." -msgstr "ఈ సేవ ఇప్పటికే ఉంది" +msgstr "పరికరం ఇప్పటికే మౌంట్ చేయబడింది." #: plinth/modules/storage/__init__.py:269 -#, fuzzy -#| msgid "Mumble server is not running" msgid "The device is not mounted." -msgstr "మంబ్లు సేవిక నడవంలేదు" +msgstr "పరికరం మౌంట్ చేయబడలేదు." #: plinth/modules/storage/__init__.py:271 msgid "Not permitted to use the requested option." @@ -6344,15 +6228,15 @@ msgstr "పరికరం మరొక వినియోగదారుచే #: plinth/modules/storage/__init__.py:317 #, no-python-format, python-brace-format msgid "Low space on system partition: {percent_used}% used, {free_space} free." -msgstr "" +msgstr "సిస్టమ్ విభజనలో తక్కువ స్థలం: {percent_used}% used, {free_space} ఉచితం." #: plinth/modules/storage/__init__.py:319 msgid "Low disk space" -msgstr "" +msgstr "తక్కువ ఖని స్థలం" #: plinth/modules/storage/__init__.py:347 msgid "Disk failure imminent" -msgstr "" +msgstr "ఖని వైఫల్యం ఆసన్నమైంది" #: plinth/modules/storage/__init__.py:349 #, python-brace-format @@ -6360,22 +6244,20 @@ 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 "" +"ఖని {id}సమీప భవిష్యత్తులో విఫలమయ్యే అవకాశం ఉందని నివేదిస్తోంది. మీరు చేయగలిగినప్పుడు ఏదైనా సమాచారంకాపీ " +"చేసి, చోదకం భర్తీ చేయండి." #: plinth/modules/storage/forms.py:62 -#, fuzzy -#| msgid "Invalid hostname" msgid "Invalid directory name." -msgstr "ఆతిథ్యనామం చెల్లనిది" +msgstr "డైరెక్టరీ పేరు చెల్లదు." #: plinth/modules/storage/forms.py:79 msgid "Directory does not exist." msgstr "డైరెక్టరీ ఉనికిలో లేదు." #: plinth/modules/storage/forms.py:82 -#, fuzzy -#| msgid "Download directory" msgid "Path is not a directory." -msgstr "డైరెక్టరీని దిగుమతి చేయు" +msgstr "మార్గం అనేది డైరెక్టరీ కాదు." #: plinth/modules/storage/forms.py:85 msgid "Directory is not readable by the user." @@ -6386,18 +6268,14 @@ msgid "Directory is not writable by the user." msgstr "వినియోగదారు ద్వారా డైరెక్టరీ వ్రాయబడలేదు." #: plinth/modules/storage/forms.py:93 -#, fuzzy -#| msgid "Download directory" msgid "Directory" -msgstr "డైరెక్టరీని దిగుమతి చేయు" +msgstr "డైరెక్టరీ" #: plinth/modules/storage/forms.py:95 msgid "Subdirectory (optional)" msgstr "ఉప డైరెక్టరీ (ఐచ్ఛికం)" #: plinth/modules/storage/forms.py:142 -#, fuzzy -#| msgid "Shared" msgid "Share" msgstr "పంచుకోబడ్డ" @@ -6406,8 +6284,6 @@ msgid "Other directory (specify below)" msgstr "ఇతర డైరెక్టరీ (దిగువన పేర్కొనండి)" #: plinth/modules/storage/templates/storage.html:17 -#, fuzzy -#| msgid "The following disks are in use:" msgid "The following storage devices are in use:" msgstr "క్రింది డిస్కులు ఉపయోగంలో ఉన్నాయి:" @@ -6449,6 +6325,8 @@ msgid "" "Advanced storage operations such as disk partitioning and RAID management " "are provided by the Cockpit app." msgstr "" +"ఖని విభజన మరియు RAID నిర్వహణ వంటి అధునాతన నిల్వ కార్యకలాపాలు అందించబడతాయిCockpit app." #: plinth/modules/storage/templates/storage_expand.html:14 #, python-format @@ -6484,16 +6362,15 @@ msgid "Error ejecting device: {error_message}" msgstr "పరికరాన్ని తొలగించడంలో లోపం: {error_message}" #: plinth/modules/syncthing/__init__.py:23 -#, fuzzy 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 "" -"syncthing అనేది మీ సమచారాన్ని మీ వివిధ ఉపకరణాలని సమకాలీకరించడానికి,ఉ.దా మీ కంప్యూటర్ మరియు మీ ఫోను.…" -"ఒక ఉపకరణంలో ఒక ఫైలు యొక్క తయారీ,మార్పులు, లేదా నిర్మూలిస్తే అది మిగిలిన అన్ని ఉపకరణాలలో దానికి " -"సంబందించిన మార్పులు చెయ్యడం సమకాలీకరించడం" +"సమకాలీకరణ అనేది బహుళ పరికరాలలో ఫైల్‌లను సమకాలీకరించడానికి ఒక అప్లికేషన్, ఉదా. మీ డెస్క్‌టాప్ కంప్యూటర్ " +"మరియు మొబైల్ ఫోన్. ఒక పరికరంలో ఫైల్‌లను సృష్టించడం, సవరించడం లేదా తొలగించడం అనేది సమకాలీకరణను అమలు " +"చేసే అన్ని ఇతర పరికరాలలో స్వయంచాలకంగా పునరావృతమవుతుంది." #: plinth/modules/syncthing/__init__.py:28 #, python-brace-format @@ -6506,12 +6383,15 @@ msgid "" "{box_name} is only available for users belonging to the \"admin\" or " "\"syncthing-access\" group." msgstr "" +"సమకాలీకరణ ఆన్‌లో ఉంది {box_name}మీ డేటా కోసం అదనపు సమకాలీకరణ పాయింట్‌ను అందిస్తుంది, ఇది చాలా సమయం " +"అందుబాటులో ఉంటుంది, మీ పరికరాలను మరింత తరచుగా సమకాలీకరించడానికి అనుమతిస్తుంది. {box_name}బహుళ " +"వినియోగదారులచే ఉపయోగించబడే సమకాలీకరణ యొక్క ఒకే ఉదాహరణను అమలు చేస్తుంది. ప్రతి వినియోగదారు యొక్క పరికరాల " +"సెట్ ప్రత్యేక ఫోల్డర్‌ల సెట్‌తో సమకాలీకరించబడవచ్చు.వెబ్ ఇంటర్‌ఫేస్ ఆన్ చేయబడింది{box_name} నిర్వాహకుడు \" " +"లేదా \"సమకాలీకరణ-యాక్సెస్\" సమూహానికి చెందిన వినియోగదారులకు మాత్రమే అందుబాటులో ఉంటుంది." #: plinth/modules/syncthing/__init__.py:57 -#, fuzzy -#| msgid "Install this application?" msgid "Administer Syncthing application" -msgstr "ఈ అనువర్తనాన్ని నిక్షిప్తం చేయాలా?" +msgstr "సమకాలీకరణ అప్లికేషన్‌ను నిర్వహించండి" #: plinth/modules/syncthing/__init__.py:61 #: plinth/modules/syncthing/manifest.py:12 @@ -6540,16 +6420,12 @@ msgid "Tor" msgstr "టార్" #: plinth/modules/tor/__init__.py:67 -#, fuzzy -#| msgid "Tor Hidden Service" msgid "Tor Onion Service" -msgstr "దాచిన టార్ సర్వీస్" +msgstr "టోర్ ఉల్లిపాయ సేవ" #: plinth/modules/tor/__init__.py:71 -#, fuzzy -#| msgid "Socks5 Proxy" msgid "Tor Socks Proxy" -msgstr "సాక్స్5 ప్రాక్సీ" +msgstr "టోర్ సాక్స్ ప్రాతినిధ్య" #: plinth/modules/tor/__init__.py:75 msgid "Tor Bridge Relay" @@ -6581,6 +6457,7 @@ msgstr "టోర్ వాడుకను నిర్ధారించండ msgid "" "Enter a valid bridge with this format: [transport] IP:ORPort [fingerprint]" msgstr "" +"ఈ ఫార్మాట్‌తో చెల్లుబాటు అయ్యే వంతెనను నమోదు చేయండి: [transport] IP:ORPort [fingerprint]" #: plinth/modules/tor/forms.py:75 msgid "Enable Tor" @@ -6615,10 +6492,8 @@ msgstr "" "చెయ్యండి. ప్రస్తుతం మద్దతిచ్చే ట్రాన్స్పోర్ట్ లు none, obfs3, obfs4 మరియు scamblesuit." #: plinth/modules/tor/forms.py:92 -#, fuzzy -#| msgid "Enable network time" msgid "Enable Tor relay" -msgstr "అల్లిక సమయం చేతనించు" +msgstr "టోర్ రిలేని ప్రారంభించండి" #: plinth/modules/tor/forms.py:93 #, python-brace-format @@ -6645,24 +6520,18 @@ msgstr "" "తప్పించుకునేందుకు ఇది దోహదపడుతుంది." #: plinth/modules/tor/forms.py:105 -#, fuzzy -#| msgid "Enable Tor Hidden Service" msgid "Enable Tor Hidden Service" -msgstr "టార్ దాచిన సేవని ప్రారంభించండి" +msgstr "టోర్ హిడెన్ సర్వీస్‌ని ప్రారంభించండి" #: plinth/modules/tor/forms.py:107 #, fuzzy, python-brace-format -#| msgid "" -#| "A hidden 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." msgid "" "A hidden 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 "" -"ఎంపిక చేసిన సేవలను (వికీ లేదా చాట్ వంటివి) దాని స్థానాన్ని బహిర్గతం చేయకుండా ఒక రహస్య సేవ {box_name} " -"1 ను అనుమతిస్తుంది. ఇది ఇంకా బలమైన పేరు కోసం ఉపయోగించకండి." +"దాచిన సేవ దాని స్థానాన్ని బహిర్గతం చేయకుండా ఎంచుకున్న సేవలను (వికీ లేదా చాట్ వంటివి) అందించడానికి " +"బాక్స్_నామని అనుమతిస్తుంది. ఇంకా బలమైన అనామకత్వం కోసం దీన్ని ఉపయోగించవద్దు. {box_name}" #: plinth/modules/tor/forms.py:112 msgid "Download software packages over Tor" @@ -6694,10 +6563,8 @@ msgid "Tor configuration is being updated" msgstr "టోర్ ఆకృతీకరణ నవీకరించబడుతుంది" #: plinth/modules/tor/templates/tor.html:26 -#, fuzzy -#| msgid "Hidden Service" msgid "Onion Service" -msgstr "దాగిన సేవ" +msgstr "ఉల్లిపాయ సేవ" #: plinth/modules/tor/templates/tor.html:28 msgid "Ports" @@ -6734,26 +6601,18 @@ msgid "Setting unchanged" msgstr "మారకుండా అమర్చుతోంది" #: plinth/modules/transmission/__init__.py:24 -#, fuzzy -#| msgid "Deluge is a BitTorrent client that features a Web UI." msgid "Transmission is a BitTorrent client with a web interface." -msgstr "డీలడ్జ్ అనేది జాల UI కలిగివున్న ఒక బిట్ టోరెంట్ కక్షిదారు." +msgstr "ప్రసరణ అనేది వెబ్ ఇంటర్‌ఫేస్‌తో కూడిన బిట్‌టొరెంట్ క్లయింట్." #: plinth/modules/transmission/__init__.py:25 -#, fuzzy -#| msgid "" -#| "BitTorrent is a peer-to-peer file sharing protocol. Transmission daemon " -#| "handles Bitorrent file sharing. Note that BitTorrent is not anonymous." msgid "" "BitTorrent is a peer-to-peer file sharing protocol. Note that BitTorrent is " "not anonymous." -msgstr "" -"బిట్ టోర్రెంట్ పీర్-టు-పీర్ ఫైల్ షేరింగ్ ప్రోటోకాల్. ట్రాన్స్మిషన్ డెమోన్ బిట్ టోర్రెంట్ ఫైల్ భాగస్వామ్యాన్ని నిర్వహిస్తుంది. " -"బిట్ టోర్రెంట్ అజ్ఞాత కాదని గమనించండి." +msgstr "బిట్ టొరెంట్ అనేది పీర్-టు-పీర్ ఫైల్ భాగస్వామ్య ప్రోటోకాల్. బిట్ టొరెంట్ అనామకం కాదని గమనించండి." #: plinth/modules/transmission/__init__.py:27 msgid "Please do not change the default port of the Transmission daemon." -msgstr "" +msgstr "దయచేసి ట్రాన్స్‌మిషన్ డెమోన్ డిఫాల్ట్ పోర్ట్‌ను మార్చవద్దు." #: plinth/modules/transmission/__init__.py:53 #: plinth/modules/transmission/manifest.py:6 @@ -6766,29 +6625,26 @@ msgid "" "allow reading news from any location, while feeling as close to a real " "desktop application as possible." msgstr "" +"చిన్న చిన్న RSS అనేది ఒక న్యూస్ ఫీడ్ (RSS/Atom) రీడర్ మరియు అగ్రిగేటర్, ఇది సాధ్యమైనంతవరకు నిజమైన " +"డెస్క్‌టాప్ అప్లికేషన్‌కు దగ్గరగా ఉన్నట్లు భావించేటప్పుడు ఏ ప్రదేశం నుండి అయినా వార్తలను చదవడానికి " +"అనుమతించేలా రూపొందించబడింది." #: plinth/modules/ttrss/__init__.py:27 -#, fuzzy, python-brace-format -#| msgid "" -#| "When enabled, Cockpit will be available from /" -#| "_cockpit/ path on the web server. It can be accessed by any user with a {box_name} login. Sensitive " -#| "information and system altering abilities are limited to users belonging " -#| "to admin group." +#, python-brace-format msgid "" "When enabled, Tiny Tiny RSS can be accessed by any user with a {box_name} login." msgstr "" -"ప్రారంభించినప్పుడు, వెబ్ సర్వర్లో / _cockpit / మార్గం నుండి " -"కాక్పిట్ అందుబాటులో ఉంటుంది. దీన్ని మంది వినియోగదారులచే " -"ద్వారా పొందవచ్చు {box_name}.\n" -"అంగీకార సమాచారం మరియు సిస్టమ్ మార్చడం సామర్ధ్యాలు నిర్వాహక సమూహం చెందిన వినియోగదారులకు పరిమితం." +"ప్రారంభించబడినప్పుడు, చిన్న చిన్న RSSని ఏ {box_name} లాగిన్‌తో " +"వినియోగదారు అయినా సాంగత్యం చేయవచ్చు." #: plinth/modules/ttrss/__init__.py:31 msgid "" "When using a mobile or desktop application for Tiny Tiny RSS, use the URL /tt-rss-app for connecting." msgstr "" +"చిన్న చిన్న RSS కోసం మొబైల్ లేదా డెస్క్‌టాప్ అప్లికేషన్‌ను ఉపయోగిస్తున్నప్పుడు, URLని ఉపయోగించండి/tt-rss-app కలపడం కోసం ." #: plinth/modules/ttrss/__init__.py:49 msgid "Read and subscribe to news feeds" @@ -6803,15 +6659,13 @@ msgid "News Feed Reader" msgstr "న్యూస్ ఫీడ్ రీడర్" #: plinth/modules/ttrss/manifest.py:9 -#, fuzzy -#| msgid "Tiny Tiny RSS" msgid "Tiny Tiny RSS (Fork)" -msgstr "టైనీ టైనీ RSS" +msgstr "చిన్న చిన్న RSS (ఫోర్క్)" #: plinth/modules/upgrades/__init__.py:39 #: plinth/modules/upgrades/templates/update-firstboot.html:14 msgid "Check for and apply the latest software and security updates." -msgstr "" +msgstr "తాజా సాఫ్ట్‌వేర్ మరియు భద్రత నవీకరణను కోసం తనిఖీ చేయండి మరియు వర్తించండి." #: plinth/modules/upgrades/__init__.py:40 msgid "" @@ -6820,25 +6674,25 @@ msgid "" "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 "" +"స్థానిక టైమ్ జోన్ ప్రకారం ప్రతిరోజూ 06:00 గంటలకు అప్‌డేట్‌లు అమలు చేయబడతాయి. తేదీ & సమయ యాప్‌లో మీ " +"టైమ్ జోన్‌ని సెట్ చేయండి. అప్‌డేట్ చేసిన తర్వాత యాప్‌లు పునఃప్రారంభించబడతాయి, దీని వలన అవి క్లుప్తంగా " +"అందుబాటులో ఉండవు. సిస్టమ్ రీబూట్ అవసరమని భావించినట్లయితే, అది స్వయంచాలకంగా 02:00కి చేయబడుతుంది, " +"దీని వలన అన్ని యాప్‌లు క్లుప్తంగా అందుబాటులో ఉండవు." #: plinth/modules/upgrades/__init__.py:74 #: plinth/modules/upgrades/__init__.py:129 #: plinth/modules/upgrades/templates/update-firstboot-progress.html:11 #: plinth/modules/upgrades/templates/update-firstboot.html:11 -#, fuzzy -#| msgid "Software Upgrades" msgid "Software Update" -msgstr "సాఫ్ట్‌వేర్ నవీకరణలు" +msgstr "సాఫ్ట్‌వేర్ నవీకరణ" #: plinth/modules/upgrades/__init__.py:132 -#, fuzzy -#| msgid "FreedomBox Manual" msgid "FreedomBox Updated" -msgstr "ఫ్రీడమ్ బాక్స్ నిర్దేశిక" +msgstr "స్వతంత్ర సాఫ్ట్వేర్ తాజా పరుచడం" #: plinth/modules/upgrades/__init__.py:217 msgid "Could not start distribution update" -msgstr "" +msgstr "పంపిణీ నవీకరణను ప్రారంభించడం సాధ్యపడలేదు" #: plinth/modules/upgrades/__init__.py:219 msgid "" @@ -6846,66 +6700,66 @@ msgid "" "distribution update. Please ensure at least 5 GB is free. Distribution " "update will be retried after 24 hours, if enabled." msgstr "" +"పంపిణీ నవీకరణను ప్రారంభించడానికి రూట్ విభజనలో తగినంత ఖాళీ స్థలం లేదు. దయచేసి కనీసం 5 GB ఉచితంగా " +"ఉండేలా చూసుకోండి. ప్రారంభించబడితే, పంపిణీ నవీకరణ 24 గంటల తర్వాత మళ్లీ ప్రయత్నించబడుతుంది." #: plinth/modules/upgrades/__init__.py:230 -#, fuzzy -#| msgid "Automatic upgrades disabled" msgid "Distribution update started" -msgstr "స్వయంచాలక నవీకరణలు నిలిపివేయబడ్డాయి" +msgstr "పంపిణీ నవీకరణ ప్రారంభమైంది" #: plinth/modules/upgrades/__init__.py:232 msgid "" "Started update to next stable release. This may take a long time to complete." -msgstr "" +msgstr "తదుపరి స్థిరమైన విడుదలకు నవీకరణ ప్రారంభించబడింది. ఇది పూర్తి కావడానికి చాలా సమయం పట్టవచ్చు." #: plinth/modules/upgrades/forms.py:15 -#, fuzzy -#| msgid "Enable automatic upgrades" msgid "Enable auto-update" -msgstr "స్వయంచాలక నవీకరణలు ప్రారంభించు" +msgstr "స్వీయ నవీకరణను ప్రారంభించండి" #: plinth/modules/upgrades/forms.py:16 msgid "When enabled, FreedomBox automatically updates once a day." -msgstr "" +msgstr "ప్రారంభించబడినప్పుడు, FreedomBox స్వయంచాలకంగా రోజుకు ఒకసారి నవీకరించబడుతుంది." #: plinth/modules/upgrades/forms.py:19 -#, fuzzy -#| msgid "Enable automatic upgrades" msgid "Enable auto-update to next stable release" -msgstr "స్వయంచాలక నవీకరణలు ప్రారంభించు" +msgstr "తదుపరి స్థిరమైన విడుదలకు స్వీయ-నవీకరణను ప్రారంభించండి" #: plinth/modules/upgrades/forms.py:20 msgid "" "When enabled, FreedomBox will update to the next stable distribution release " "when it is available." msgstr "" +"ప్రారంభించబడినప్పుడు, FreedomBox అది అందుబాటులో ఉన్నప్పుడు తదుపరి స్థిరమైన పంపిణీ విడుదలకు " +"నవీకరించబడుతుంది." #: plinth/modules/upgrades/forms.py:34 #: plinth/modules/upgrades/templates/upgrades_configure.html:89 msgid "Activate frequent feature updates (recommended)" -msgstr "" +msgstr "తరచుగా ఫీచర్ అప్‌డేట్‌లను యాక్టివేట్ చేయండి (సిఫార్సు చేయబడింది)" #: plinth/modules/upgrades/forms.py:40 -#, fuzzy -#| msgid "Fail2Ban (recommended)" msgid "Update now (recommended)" -msgstr "ఫెయిల్2బ్యాన్ (సిఫారసుచేయబడినవి)" +msgstr "ఇప్పుడే నవీకరించండి (సిఫార్సు చేయబడింది)" #: plinth/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 "" +"తరచుగా ఫీచర్ అప్‌డేట్‌లను యాక్టివేట్ చేయాలని గట్టిగా సిఫార్సు చేయబడింది. ఇప్పుడు యాక్టివేట్ కాకపోతే, తర్వాత " +"యాక్టివేట్ చేసుకోవచ్చు." #: plinth/modules/upgrades/templates/backports-firstboot.html:33 msgid "" "Note: Once frequent feature updates are activated, they " "cannot be deactivated." msgstr "" +"గమనిక: ఒకసారి తరచుగా ఫీచర్ తాజా పరుచడం యాక్టివేట్ చేయబడితే, వాటిని డియాక్టివేట్ చేయడం " +"సాధ్యం కాదు." #: plinth/modules/upgrades/templates/update-firstboot-progress.html:19 msgid "Updating, please wait..." -msgstr "" +msgstr "నవీకరిస్తోంది, దయచేసి వేచి ఉండండి..." #: plinth/modules/upgrades/templates/update-firstboot-progress.html:22 #: plinth/modules/upgrades/templates/update-firstboot.html:20 @@ -6914,21 +6768,25 @@ msgid "" "this web interface may be temporarily unavailable and show an error. In that " "case, refresh the page to continue." msgstr "" +"ఇది పూర్తి కావడానికి చాలా సమయం పట్టవచ్చు. నవీకరణ సమయంలో, ఈ వెబ్ ఇంటర్‌ఫేస్ " +"తాత్కాలికంగా అందుబాటులో ఉండకపోవచ్చు మరియు లోపాన్ని చూపుతుంది. అలాంటప్పుడు, కొనసాగించడానికి పేజీని రిఫ్రెష్ " +"చేయండి." #: plinth/modules/upgrades/templates/update-firstboot-progress.html:31 -#, fuzzy, python-format -#| msgid "%(box_name)s is up to date." +#, python-format msgid "" "\n" "\t%(box_name)s is up to date. Press Next to continue.\n" " " -msgstr "%(box_name)s తాజాగా ఉంది." +msgstr "" +"\n" +"\t%(box_name)s తాజాగా ఉంది. కొనసాగించడానికి తదుపరి నొక్కండ....\n" +" " #: plinth/modules/upgrades/templates/upgrades-new-release.html:9 -#, fuzzy, python-format -#| msgid "%(box_name)s is up to date." +#, python-format msgid "%(box_name)s updated" -msgstr "%(box_name)s తాజాగా ఉంది." +msgstr "%(box_name)s నవీకరించబడింది" #: plinth/modules/upgrades/templates/upgrades-new-release.html:13 #, python-format @@ -6936,16 +6794,18 @@ msgid "" "%(box_name)s has been updated to version %(version)s. See the release announcement." msgstr "" +"%(box_name)s సంస్కరణ %(version)s నవీకరించబడింది. &ల్టీ;ఆ హార్ఫ్=\"%(url)s\"&జీత్;" +"విడుదల ప్రకటన&ల్టీ;/ఆ &జీత్;ని చూడండి." #: plinth/modules/upgrades/templates/upgrades-new-release.html:22 #: plinth/templates/notifications.html:44 msgid "Dismiss" -msgstr "" +msgstr "రద్దుచేసే" #: plinth/modules/upgrades/templates/upgrades_configure.html:30 #: plinth/modules/upgrades/templates/upgrades_configure.html:100 msgid "Updating..." -msgstr "" +msgstr "నవీకరిస్తోంది." #: plinth/modules/upgrades/templates/upgrades_configure.html:32 #, python-format @@ -6953,21 +6813,19 @@ msgid "There is a new %(box_name)s version available." msgstr "%(box_name)s యొక్క కొత్త వెర్షన్ అందుబాటులో ఉంది." #: plinth/modules/upgrades/templates/upgrades_configure.html:35 -#, fuzzy -#| msgid "FreedomBox Manual" msgid "Your Freedombox needs an update!" -msgstr "ఫ్రీడమ్ బాక్స్ నిర్దేశిక" +msgstr "మీ స్వతంత్రబాక్స్ కి తాజాపరుచాలి!" #: plinth/modules/upgrades/templates/upgrades_configure.html:47 msgid "" "Frequent feature updates can be activated. Activating them is recommended." -msgstr "" +msgstr "తరచుగా ఫీచర్ అప్‌డేట్‌లను యాక్టివేట్ చేయవచ్చు. వాటిని సక్రియం చేయడం సిఫార్సు చేయబడింది." #: plinth/modules/upgrades/templates/upgrades_configure.html:56 msgid "" "Frequent feature updates cannot be activated. They may not be necessary on " "your distribution." -msgstr "" +msgstr "తరచుగా ఫీచర్ అప్‌డేట్‌లు యాక్టివేట్ చేయబడవు. మీ పంపిణీలో అవి అవసరం లేకపోవచ్చు." #: plinth/modules/upgrades/templates/upgrades_configure.html:78 #, python-format @@ -6976,18 +6834,17 @@ msgid "" "cannot be deactivated. You may wish to take a snapshot using Storage Snapshots before continuing." msgstr "" +"హెచ్చరిక! ఒకసారి తరచుగా ఫీచర్ అప్‌డేట్‌లు యాక్టివేట్ చేయబడితే, వాటిని డియాక్టివేట్ చేయడం " +"సాధ్యం కాదు. మీరు కొనసాగడానికి ముందు స్టోరేజ్ స్నాప్‌షాట్‌లు " +"ఉపయోగించి స్నాప్‌షాట్ తీయాలనుకోవచ్చు." #: plinth/modules/upgrades/templates/upgrades_configure.html:94 -#, fuzzy -#| msgid "Last update" msgid "Manual Update" -msgstr "చివరి నవీకరణ" +msgstr "నిర్దేశిక నవీకరణ" #: plinth/modules/upgrades/templates/upgrades_configure.html:108 -#, fuzzy -#| msgid "Update" msgid "Update now" -msgstr "నవీకరణ యూ.ఆర్.ఎల్" +msgstr "ఇప్పుడే నవీకరించండి" #: plinth/modules/upgrades/templates/upgrades_configure.html:114 msgid "" @@ -6995,10 +6852,13 @@ msgid "" "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 "" +"ఇది పూర్తి కావడానికి చాలా సమయం పట్టవచ్చు. నవీకరణ సమయంలో, మీరు యాప్‌లను ఇన్‌స్టాల్ " +"చేయలేరు. అలాగే, ఈ వెబ్ ఇంటర్‌ఫేస్ తాత్కాలికంగా అందుబాటులో ఉండకపోవచ్చు మరియు లోపాన్ని చూపుతుంది. " +"అలాంటప్పుడు, కొనసాగించడానికి పేజీని రిఫ్రెష్ చేయండి." #: plinth/modules/upgrades/templates/upgrades_configure.html:128 msgid "Show recent update logs" -msgstr "" +msgstr "ఇటీవలి నవీకరణ లాగ్‌లను చూపు" #: plinth/modules/upgrades/views.py:67 #, python-brace-format @@ -7014,16 +6874,12 @@ msgid "Automatic upgrades disabled" msgstr "స్వయంచాలక నవీకరణలు నిలిపివేయబడ్డాయి" #: plinth/modules/upgrades/views.py:82 -#, fuzzy -#| msgid "Automatic upgrades enabled" msgid "Distribution upgrade enabled" -msgstr "స్వయంచాలక నవీకరణలు ప్రారంభించబడ్డాయి" +msgstr "పంపిణీ మెరుగుపరుచడం ప్రారంభించబడింది" #: plinth/modules/upgrades/views.py:85 -#, fuzzy -#| msgid "Automatic upgrades disabled" msgid "Distribution upgrade disabled" -msgstr "స్వయంచాలక నవీకరణలు నిలిపివేయబడ్డాయి" +msgstr "పంపిణీ మెరుగుపరుచడం నిలిపివేయబడింది" #: plinth/modules/upgrades/views.py:127 msgid "Upgrade process started." @@ -7035,7 +6891,7 @@ msgstr "నవీకరణ ప్రారంభం విఫలమైంద #: plinth/modules/upgrades/views.py:139 msgid "Frequent feature updates activated." -msgstr "" +msgstr "తరచుగా ఫీచర్ అప్‌డేట్‌లు యాక్టివేట్ చేయబడ్డాయి." #: plinth/modules/users/__init__.py:29 msgid "" @@ -7043,6 +6899,9 @@ msgid "" "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 "" +"వినియోగదారు ఖాతాలను సృష్టించండి మరియు నిర్వహించండి. ఈ ఖాతాలు చాలా యాప్‌ల కోసం కేంద్రీకృత ప్రామాణీకరణ " +"విధానంగా పనిచేస్తాయి. కొన్ని యాప్‌లకు యాప్‌ను యాక్సెస్ చేయడానికి వినియోగదారుని ప్రామాణీకరించడానికి సమూహంలో భాగంగా " +"వినియోగదారు ఖాతా అవసరం" #: plinth/modules/users/__init__.py:34 #, python-brace-format @@ -7051,6 +6910,9 @@ msgid "" "relevant to them in the home page. However, only users of the admin " "group may alter apps or system settings." msgstr "" +"హోమ్ పేజీలో వారికి సంబంధించిన యాప్‌ల జాబితాను చూడటానికి ఏ వినియోగదారు అయినా {box_name} వెబ్ ఇంటర్‌ఫేస్‌కి లాగిన్ " +"చేయవచ్చు. అయినప్పటికీ, అడ్మిన్ సమూహం యొక్క వినియోగదారులు మాత్రమే యాప్‌లు లేదా సిస్టమ్ " +"సెట్టింగ్‌లను మార్చవచ్చు." #: plinth/modules/users/__init__.py:57 msgid "Users and Groups" @@ -7070,33 +6932,28 @@ msgid "Username is taken or is reserved." msgstr "యూజర్ పేరు తీసుకోబడింది లేదా రిజర్వ్ చేయబడింది." #: plinth/modules/users/forms.py:63 -#, fuzzy -#| msgid "Invalid server name" msgid "Enter a valid username." -msgstr "సేవిక పేరు చెలదు" +msgstr "చెల్లుబాటు అయ్యే వినియోగదారు పేరును నమోదు చేయండి." #: plinth/modules/users/forms.py:70 msgid "" "Required. 150 characters or fewer. English letters, digits and @/./-/_ only." msgstr "" +"అవసరం. 150 అక్షరాలు లేదా అంతకంటే తక్కువ. ఆంగ్ల అక్షరాలు, అంకెలు మరియు @/./-/_ మాత్రమే." #: plinth/modules/users/forms.py:78 -#, fuzzy -#| msgid "Administrator Password" msgid "Authorization Password" -msgstr "నిర్వాహకుని రహస్యపదం" +msgstr "అధికార రహస్యపదం" #: plinth/modules/users/forms.py:84 #, python-brace-format msgid "" "Enter the password for user \"{user}\" to authorize account modifications." -msgstr "" +msgstr "వినియోగదారు కోసం పాస్‌వర్డ్‌ను నమోదు చేయండి\"{user}\"ఖాతా సవరణలకు అధికారం ఇవ్వడానికి." #: plinth/modules/users/forms.py:93 -#, fuzzy -#| msgid "Show password" msgid "Invalid password." -msgstr "రహస్యపదం కనబర్చు" +msgstr "చెల్లని రహస్యపదం." #: plinth/modules/users/forms.py:110 msgid "" @@ -7106,18 +6963,22 @@ msgid "" "able to log in to all services. They can also log in to the system through " "SSH and have administrative privileges (sudo)." msgstr "" +"కొత్త వినియోగదారుకు ఏ సేవలు అందుబాటులో ఉండాలో ఎంచుకోండి. వినియోగదారు తగిన సమూహంలో ఉన్నట్లయితే, LDAP " +"ద్వారా ఒకే సైన్-ఆన్‌కు మద్దతు ఇచ్చే సేవలకు లాగిన్ చేయగలరు..

నిర్వాహక సమూహంలోని వినియోగదారులు " +"అన్ని సేవలకు లాగిన్ చేయగలరు. వారు SSH ద్వారా సిస్టమ్‌కి లాగిన్ అవ్వగలరు మరియు నిర్వాహక అధికారాలను (సూడో) " +"కలిగి ఉంటారు." #: plinth/modules/users/forms.py:155 plinth/modules/users/forms.py:399 -#, fuzzy, python-brace-format -#| msgid "Creating LDAP user failed." +#, python-brace-format msgid "Creating LDAP user failed: {error}" -msgstr "ఎల్.డి.ఏ.పి వాడుకరి సృష్టించడంలో విఫలమైంది." +msgstr "" +"ల్డప్ వినియోగదారుని సృష్టించడం విఫలమైంది.\n" +".: {error}" #: plinth/modules/users/forms.py:168 #, fuzzy, python-brace-format -#| msgid "Failed to add new user to {group} group." msgid "Failed to add new user to {group} group: {error}" -msgstr "వినియోగదారుని {group} సముహానికి జోడించడంలో విఫలం." +msgstr "సమూహంసమూహానికి కొత్త వినియోగదారుని జోడించడంలో విఫలమైంది: {లోపం {group} {error}" #: plinth/modules/users/forms.py:182 msgid "Authorized SSH Keys" @@ -7129,6 +6990,9 @@ msgid "" "system without using a password. You may enter multiple keys, one on each " "line. Blank lines and lines starting with # will be ignored." msgstr "" +"SSH పబ్లిక్ కీని సెట్ చేయడం వలన ఈ వినియోగదారు పాస్‌వర్డ్‌ని ఉపయోగించకుండా సిస్టమ్‌కి సురక్షితంగా లాగిన్ " +"అవ్వడానికి అనుమతిస్తుంది. మీరు బహుళ కీలను నమోదు చేయవచ్చు, ఒక్కో లైన్‌లో ఒకటి. #తో ప్రారంభమయ్యే ఖాళీ " +"పంక్తులు మరియు పంక్తులు విస్మరించబడతాయి." #: plinth/modules/users/forms.py:269 msgid "Renaming LDAP user failed." @@ -7147,26 +7011,22 @@ msgid "Unable to set SSH keys." msgstr "SSH కీలను సెట్ చేయడం సాధ్యం కాలేదు." #: plinth/modules/users/forms.py:325 -#, fuzzy -#| msgid "Failed to add user to group." msgid "Failed to change user status." -msgstr "సమూహంలోకి వినియోగదారుని జోడించడంలో విఫలం." +msgstr "వినియోగదారు స్థితిని మార్చడంలో విఫలమైంది." #: plinth/modules/users/forms.py:370 msgid "Changing LDAP user password failed." msgstr "ఎల్.డి.ఏ.పి వాడుకరి పాస్‌వర్డ్ మార్పిడి విఫలం." #: plinth/modules/users/forms.py:410 -#, fuzzy, python-brace-format -#| msgid "Failed to add new user to admin group." +#, python-brace-format msgid "Failed to add new user to admin group: {error}" -msgstr "కొత్త వాడుకరి ను అడ్మిన్ సమూహంలో జోడించడం విఫలమైనది." +msgstr "నిర్వాహక సమూహానికి కొత్త వినియోగదారుని జోడించడంలో విఫలమైంది: {error}" #: plinth/modules/users/forms.py:429 -#, fuzzy, python-brace-format -#| msgid "Failed to restrict console access." +#, python-brace-format msgid "Failed to restrict console access: {error}" -msgstr "console ప్రవేశమును పరిమితి చెయడంలొ విఫలమైంది." +msgstr "కన్సోల్ యాక్సెస్‌ని పరిమితం చేయడంలో విఫలమైంది: {error}" #: plinth/modules/users/forms.py:442 msgid "User account created, you are now logged in" @@ -7222,16 +7082,12 @@ msgid "Create Account" msgstr "ఖాతా సృష్టించు" #: plinth/modules/users/templates/users_firstboot.html:32 -#, fuzzy -#| msgid "Administrator Account" msgid "An administrator account already exists." -msgstr "నిర్వాహక ఖాతా" +msgstr "నిర్వహణదారుడు ఖాతా ఇప్పటికే ఉంది." #: plinth/modules/users/templates/users_firstboot.html:38 -#, fuzzy -#| msgid "Cannot delete the only administrator in the system." msgid "The following administrator accounts exist in the system." -msgstr "సిస్టమ్‌లోని ఏకైక నిర్వాహకుడిని తొలగించలేరు." +msgstr "వ్యవస్థలో కింది నిర్వాహక ఖాతాలు ఉన్నాయి." #: plinth/modules/users/templates/users_firstboot.html:50 #, python-format, python-brace-format @@ -7242,6 +7098,10 @@ msgid "" "{username}'. If an account is already usable with %(box_name)s, skip this " "step." msgstr "" +"కమాండ్ లైన్ నుండి ఈ ఖాతాలను తొలగించండి మరియు %(box_name)sతో ఉపయోగించగల ఖాతాను సృష్టించడానికి పేజీని " +"రిఫ్రెష్ చేయండి. కమాండ్ లైన్‌లో 'echo \"{password}\" | ఆదేశాన్ని అమలు చేయండి /usr/share/plinth/" +"actions/users remove-user {username}'. ఒక ఖాతాను ఇప్పటికే %(box_name)sతో " +"ఉపయోగించగలిగితే, ఈ దశను దాటవేయండి." #: plinth/modules/users/templates/users_list.html:11 #: plinth/modules/users/views.py:61 @@ -7259,10 +7119,9 @@ msgid "Delete user %(username)s" msgstr "వినియోగదారి %(username)s ను తొలగించు" #: plinth/modules/users/templates/users_update.html:11 -#, fuzzy, python-format -#| msgid "Edit user %(username)s" +#, python-format msgid "Edit User %(username)s" -msgstr "%(username)s వినియోగదారుని మార్చు" +msgstr "వినియోగదారు%(username)sని సవరించండి" #: plinth/modules/users/templates/users_update.html:19 #, python-format @@ -7310,73 +7169,72 @@ msgid "Password changed successfully." msgstr "పాస్‌వర్డ్ విజయవంతంగా మార్చబడినది." #: plinth/modules/wireguard/__init__.py:20 -#, fuzzy msgid "WireGuard is a fast, modern, secure VPN tunnel." -msgstr "వైర్‌గార్డ్ వేగవంతమైన, ఆధునిక, సురక్షితమైన VPN సొరంగం." +msgstr "వైర్‌గార్డ్ వేగవంతమైన, ఆధునిక, సురక్షితమైన వపన్ సొరంగం." #: plinth/modules/wireguard/__init__.py:22 -#, python-brace-format +#, fuzzy, 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 "" +"ఇది వీరేగార్డ్కి మద్దతిచ్చే వపన్ ప్రొవైడర్‌కి కనెక్ట్ చేయడానికి మరియుబాక్స్_నామ నుండి వపన్ ద్వారా అవుట్‌గోయింగ్ ట్రాఫిక్ " +"మొత్తాన్ని రూట్ చేయడానికి ఉపయోగించవచ్చు. {box_name}" #: plinth/modules/wireguard/__init__.py:26 -#, python-brace-format +#, fuzzy, 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 "" +"ప్రయాణిస్తున్నప్పుడు చరవాణి పరికరాన్ని బాక్స్_నామకి కనెక్ట్ చేయడం రెండవ ఉపయోగ సందర్భం. పబ్లిక్ వి-ఫై " +"నెట్‌వర్క్‌కి కనెక్ట్ చేయబడినప్పుడు, ట్రాఫిక్ మొత్తం బాక్స్_నామ ద్వారా సురక్షితంగా ప్రసారం చేయబడుతుంది. " +"{box_name} {box_name}" #: plinth/modules/wireguard/forms.py:32 -#, fuzzy -#| msgid "Invalid kite name" msgid "Invalid key." -msgstr "చెల్లని కైట్ పేరు" +msgstr "చెల్లని తాళంచెవి ." #: plinth/modules/wireguard/forms.py:61 #: plinth/modules/wireguard/templates/wireguard.html:17 #: plinth/modules/wireguard/templates/wireguard.html:77 #: plinth/modules/wireguard/templates/wireguard_delete_server.html:24 -#, fuzzy -#| msgid "Publish Key" msgid "Public Key" -msgstr "కీని ప్రచురించండి" +msgstr "ప్రజా తాళంచెవి" #: plinth/modules/wireguard/forms.py:62 msgid "" "Public key of the peer. Example: " "MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." -msgstr "" +msgstr "పీర్ యొక్క ప్రజా తాళంచెవి ఉదాహరణ:ఎంకోనేజ్ఫిగ్౬+డీఫ్హఙ౨జ్౧ణ్ణ౯శ్నలొసే౯కృ౦య్సద్ప్గ్మ్పజిబ్స్." #: plinth/modules/wireguard/forms.py:70 msgid "Endpoint of the server" -msgstr "" +msgstr "సర్వర్ యొక్క ముగింపు స్థానం" #: plinth/modules/wireguard/forms.py:71 msgid "" "Domain name and port in the form \"ip:port\". Example: demo.wireguard." "com:12912 ." msgstr "" +"\"ip:port\" రూపంలోఅధికారక్షేత్రం పేరు మరియు పోర్ట్. ఉదాహరణ: demo.wireguard.com:12912 ." #: plinth/modules/wireguard/forms.py:76 -#, fuzzy -#| msgid "Published key to keyserver." msgid "Public key of the server" -msgstr "కీ కీసేవకానికి ప్రచురించబడింది." +msgstr "సర్వర్ యొక్క ప్రజా తాళంచెవి ." #: plinth/modules/wireguard/forms.py:77 msgid "" "Provided by the server operator, a long string of characters. Example: " "MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." msgstr "" +"సర్వర్ ఆపరేటర్ ద్వారా అందించబడింది, అక్షరాల యొక్క పొడవైన స్ట్రింగ్. ఉదాహరణ: " +"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." #: plinth/modules/wireguard/forms.py:82 -#, fuzzy -#| msgid "A list of IP addresses, separated by space" msgid "Client IP address provided by server" -msgstr "IP చిరునామాల జాబితా, స్పేస్ ద్వారా వేరుచేయటమయినది" +msgstr "సర్వర్ అందించిన క్లయింట్ IP చిరునామా" #: plinth/modules/wireguard/forms.py:83 msgid "" @@ -7384,10 +7242,12 @@ msgid "" "endpoint. This value is usually provided by the server operator. Example: " "192.168.0.10." msgstr "" +"ఎండ్ పాయింట్‌కి కనెక్ట్ చేసిన తర్వాత వపన్ లో ఈ మెషీన్‌కు ఇప్ చిరునామా కేటాయించబడుతుంది. ఈ విలువ సాధారణంగా " +"సర్వర్ ఆపరేటర్ ద్వారా అందించబడుతుంది. ఉదాహరణ: ౧౯౨.౧౬౮.౦.౧౦." #: plinth/modules/wireguard/forms.py:89 msgid "Private key of this machine" -msgstr "" +msgstr "ఈ యంత్రం యొక్క స్వంత తాళం" #: plinth/modules/wireguard/forms.py:90 msgid "" @@ -7396,10 +7256,13 @@ msgid "" "some server operators insist on providing this. Example: " "MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." msgstr "" +"ఐచ్ఛికం. ఖాళీగా ఉంచితే కొత్త పబ్లిక్/ప్రైవేట్ కీలు రూపొందించబడతాయి. పబ్లిక్ కీని సర్వర్‌కు అందించవచ్చు. ఇది " +"సిఫార్సు చేయబడిన మార్గం. అయితే, కొంతమంది సర్వర్ ఆపరేటర్లు దీన్ని అందించాలని పట్టుబట్టారు. ఉదాహరణ:" +"MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs= ." #: plinth/modules/wireguard/forms.py:98 msgid "Pre-shared key" -msgstr "" +msgstr "ముందుగా భాగస్వామ్యం చేసిన తాళం" #: plinth/modules/wireguard/forms.py:99 msgid "" @@ -7407,24 +7270,24 @@ msgid "" "layer of security. Fill in only if provided. Example: " "MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs=." msgstr "" +"ఐచ్ఛికం. అదనపు భద్రతా పొరను జోడించడానికి సర్వర్ అందించిన షేర్డ్ సీక్రెట్ కీ. అందించినట్లయితే మాత్రమే " +"పూరించండి. ఉదాహరణ: MConEJFIg6+DFHg2J1nn9SNLOSE9KR0ysdPgmPjibEs=." #: plinth/modules/wireguard/forms.py:105 msgid "Use this connection to send all outgoing traffic" -msgstr "" +msgstr "అవుట్‌గోయింగ్ ట్రాఫిక్ మొత్తాన్ని పంపడానికి ఈ కనెక్షన్‌ని ఉపయోగించండి" #: plinth/modules/wireguard/forms.py:107 msgid "Typically checked for a VPN service through which all traffic is sent." -msgstr "" +msgstr "సాధారణంగా ట్రాఫిక్ మొత్తం పంపబడే వపన్ సేవ కోసం తనిఖీ చేయబడుతుంది." #: plinth/modules/wireguard/templates/wireguard.html:10 -#, fuzzy -#| msgid "Chat Server" msgid "As a Server" -msgstr "కబుర్ల సేవిక" +msgstr "ఛాయస్ ఆ సర్వర్" #: plinth/modules/wireguard/templates/wireguard.html:12 msgid "Peers allowed to connect to this server:" -msgstr "" +msgstr "ఈ సర్వర్‌కి కనెక్ట్ చేయడానికి సహచరులు అనుమతించబడ్డారు:" #: plinth/modules/wireguard/templates/wireguard.html:18 msgid "Allowed IPs" @@ -7432,10 +7295,8 @@ msgstr "అనుమతించబడిన ఐపిలు" #: plinth/modules/wireguard/templates/wireguard.html:19 #: plinth/modules/wireguard/templates/wireguard.html:78 -#, fuzzy -#| msgid "Create Connection" msgid "Last Connected Time" -msgstr "అనుసంధానం సృష్టించు" +msgstr "చివరిగా కనెక్ట్ చేయబడిన సమయం" #: plinth/modules/wireguard/templates/wireguard.html:38 #, python-format @@ -7443,20 +7304,15 @@ msgid "No peers configured to connect to this %(box_name)s yet." msgstr "ఈ %(box_name)s కు కనెక్ట్ చేయడానికి సహచరులు ఇంకా కాన్ఫిగర్ చేయబడలేదు." #: plinth/modules/wireguard/templates/wireguard.html:48 -#, fuzzy, python-format -#| msgid "Public key of this machine:" +#, python-format msgid "Public key for this %(box_name)s:" -msgstr "ఈ యంత్రం యొక్క పబ్లిక్ కీ:" +msgstr "ఈ %(box_name)s కోసం స్వయం తాళం :" #: plinth/modules/wireguard/templates/wireguard.html:54 -#, fuzzy -#| msgid "No shares currently configured." msgid "Not configured yet." msgstr "ప్రస్తుతం ఏ షేర్లు ఏర్పాటు చేయబడలేదు." #: plinth/modules/wireguard/templates/wireguard.html:59 -#, fuzzy -#| msgid "Add new introducer" msgid "Add a new peer" msgstr "కొత్త పరిచయకర్తని జోడించండి" @@ -7466,8 +7322,6 @@ msgid "Add Allowed Client" msgstr "అనుమతించబడిన క్లయింట్‌ను జోడించండి" #: plinth/modules/wireguard/templates/wireguard.html:67 -#, fuzzy -#| msgid "Chat Client" msgid "As a Client" msgstr "చాట్ క్లయింట్" @@ -7486,20 +7340,15 @@ msgid "No connections to remote servers are configured yet." msgstr "రిమోట్ సర్వర్ లకు కనెక్షన్ లు ఇంకా కాన్ఫిగర్ చేయబడలేదు." #: plinth/modules/wireguard/templates/wireguard.html:110 -#, fuzzy -#| msgid "Add new introducer" msgid "Add a new server" msgstr "కొత్త పరిచయకర్తని జోడించండి" #: plinth/modules/wireguard/templates/wireguard.html:114 #: plinth/modules/wireguard/views.py:157 -#, fuzzy -#| msgid "Add Connection" msgid "Add Connection to Server" msgstr "అనుసంధానాన్ని జతచేయండి" #: plinth/modules/wireguard/templates/wireguard_add_client.html:19 -#, fuzzy msgid "Add Client" msgstr "ఐ ర్ సి క్లయింట్ (Quassel)" @@ -7512,23 +7361,21 @@ msgid "Are you sure that you want to delete this server?" msgstr "ఈ సర్వర్ ని మీరు కచ్చితంగా డిలీట్ చేయాలని అనుకుంటున్నారా?" #: plinth/modules/wireguard/templates/wireguard_edit_client.html:19 -#, fuzzy -#| msgid "Chat Client" msgid "Update Client" -msgstr "చాట్ క్లయింట్" +msgstr "క్లయింట్‌ని నవీకరించండి" #: plinth/modules/wireguard/templates/wireguard_edit_server.html:19 -#, fuzzy -#| msgid "Create Connection" msgid "Update Connection" -msgstr "అనుసంధానం సృష్టించు" +msgstr "కనెక్షన్‌ని నవీకరించండి" #: plinth/modules/wireguard/templates/wireguard_show_client.html:12 -#, python-format +#, fuzzy, 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 "" +"%(box_name)s (బాక్స్_నామ)స్ఈ క్లయింట్‌కి కనెక్ట్ చేయడానికి అనుమతిస్తుంది. క్లయింట్ కింది సమాచారంతో కాన్ఫిగర్ " +"చేయబడిందని నిర్ధారించుకోండి." #: plinth/modules/wireguard/templates/wireguard_show_client.html:21 msgid "Client public key:" @@ -7574,6 +7421,8 @@ msgid "" "information. Ensure that the server is configured to allow %(box_name)s's " "public key and IP address." msgstr "" +"%(box_name)s స్కింది సమాచారంతో వీరేగార్డ్ సర్వర్‌ని చేరుకోవడానికి ప్రయత్నిస్తుంది. పబ్లిక్ కీ మరియు IP " +"చిరునామాను అనుమతించడానికి సర్వర్ కాన్ఫిగర్ చేయబడిందని నిర్ధారించుకోండి." #: plinth/modules/wireguard/templates/wireguard_show_server.html:24 msgid "Server endpoint:" @@ -7588,82 +7437,60 @@ msgid "IP address of this machine:" msgstr "ఈ యంత్రం యొక్క IP చిరునామా:" #: plinth/modules/wireguard/views.py:43 -#, fuzzy -#| msgid "Add new introducer" msgid "Added new client." -msgstr "కొత్త పరిచయకర్తని జోడించండి" +msgstr "కొత్త క్లయింట్ జోడించబడింది." #: plinth/modules/wireguard/views.py:58 plinth/modules/wireguard/views.py:117 -#, fuzzy msgid "Client with public key already exists" -msgstr "ఈ సేవ ఇప్పటికే ఉంది" +msgstr "పబ్లిక్ కీతో క్లయింట్ ఇప్పటికే ఉంది" #: plinth/modules/wireguard/views.py:71 -#, fuzzy msgid "Allowed Client" -msgstr "తపాల బంట్రౌతు(Roundcube)" +msgstr "అనుమతించబడిన క్లయింట్" #: plinth/modules/wireguard/views.py:93 -#, fuzzy -#| msgid "Update setup" msgid "Updated client." -msgstr "అమరికను నవీకరించు" +msgstr "నవీకరించబడిన క్లయింట్." #: plinth/modules/wireguard/views.py:98 -#, fuzzy msgid "Modify Client" -msgstr "తపాల బంట్రౌతు(Roundcube)" +msgstr "క్లయింట్‌ని సవరించండి" #: plinth/modules/wireguard/views.py:131 -#, fuzzy -#| msgid "Delete All" msgid "Delete Allowed Client" -msgstr "అన్నింటిని తొలగించు" +msgstr "అనుమతించబడిన క్లయింట్‌ను తొలగించండి" #: plinth/modules/wireguard/views.py:140 -#, fuzzy -#| msgid "{name} deleted." msgid "Client deleted." -msgstr "{name} తొలగించబడింది." +msgstr "క్లయింట్ తొలగించబడింది." #: plinth/modules/wireguard/views.py:142 msgid "Client not found" msgstr "క్లయింట్ దొరకలేదు" #: plinth/modules/wireguard/views.py:152 -#, fuzzy msgid "Added new server." -msgstr "కస్టమ్ సేవ చేర్చబడింది" +msgstr "కొత్త సర్వర్ జోడించబడింది." #: plinth/modules/wireguard/views.py:173 -#, fuzzy -#| msgid "Connection Type" msgid "Connection to Server" -msgstr "అనుసంధాన రకం" +msgstr "సర్వర్‌కి కనెక్షన్" #: plinth/modules/wireguard/views.py:191 -#, fuzzy -#| msgid "Update setup" msgid "Updated server." -msgstr "అమరికను నవీకరించు" +msgstr "నవీకరించబడిన సర్వర్." #: plinth/modules/wireguard/views.py:196 -#, fuzzy -#| msgid "Edit Connection" msgid "Modify Connection to Server" -msgstr "అనుసంధానాన్ని సవరించండి" +msgstr "సర్వర్‌కి కనెక్షన్‌ని సవరించండి" #: plinth/modules/wireguard/views.py:233 -#, fuzzy -#| msgid "Delete Connection" msgid "Delete Connection to Server" -msgstr "అనుసంధానం తొలగించు" +msgstr "సర్వర్‌కు కనెక్షన్‌ని తొలగించండి" #: plinth/modules/wireguard/views.py:253 -#, fuzzy -#| msgid "{name} deleted." msgid "Server deleted." -msgstr "{name} తొలగించబడింది." +msgstr "సర్వర్ తొలగించబడింది." #: plinth/modules/wordpress/__init__.py:23 msgid "" @@ -7673,6 +7500,10 @@ msgid "" "Administration interface and produced web pages are suitable for mobile " "devices." msgstr "" +"వెబ్‌సైట్‌లు మరియు బ్లాగులను సృష్టించడానికి మరియు నిర్వహించడానికి WordPress ఒక ప్రసిద్ధ మార్గం. విజువల్ " +"ఇంటర్‌ఫేస్‌ని ఉపయోగించి కంటెంట్‌ని మేనేజ్ చేయవచ్చు. వెబ్ పేజీల లేఅవుట్ మరియు కార్యాచరణను అనుకూలీకరించవచ్చు. " +"థీమ్‌లను ఉపయోగించి రూపాన్ని ఎంచుకోవచ్చు. అడ్మినిస్ట్రేషన్ ఇంటర్‌ఫేస్ మరియు ఉత్పత్తి చేయబడిన వెబ్ పేజీలు మొబైల్ " +"పరికరాలకు అనుకూలంగా ఉంటాయి." #: plinth/modules/wordpress/__init__.py:29 #, python-brace-format @@ -7682,6 +7513,10 @@ msgid "" "the correct domain name. Enable permalinks in administrator interface for " "better URLs to your pages and posts." msgstr "" +"దిగువన ఉన్న సైట్‌ను పబ్లిక్‌గా అందుబాటులో ఉంచడానికి ముందు మీరు యాప్‌ని సందర్శించడం ద్వారా WordPress " +"సెటప్‌ని అమలు చేయాలి. సరైన డొమైన్ పేరుతో {box_name}ని యాక్సెస్ చేస్తున్నప్పుడు సెటప్ తప్పనిసరిగా అమలు " +"చేయబడాలి. మీ పేజీలు మరియు పోస్ట్‌లకు మెరుగైన URLల కోసం అడ్మినిస్ట్రేటర్ ఇంటర్‌ఫేస్‌లో పెర్మాలింక్‌లను " +"ప్రారంభించండి." #: plinth/modules/wordpress/__init__.py:34 msgid "" @@ -7689,6 +7524,9 @@ msgid "" "during setup. Bookmark the admin page " "to reach administration interface in the future." msgstr "" +"వర్డుప్రెస్సు దాని స్వంత వినియోగదారు ఖాతాలను కలిగి ఉంది. సెటప్ సమయంలో మొదటి అడ్మినిస్ట్రేటర్ ఖాతా " +"సృష్టించబడుతుంది. భవిష్యత్తులో అడ్మినిస్ట్రేషన్ ఇంటర్‌ఫేస్‌ను చేరుకోవడానికి అడ్మిన్ పేజీని బుక్‌మార్క్ చేయండి." #: plinth/modules/wordpress/__init__.py:38 msgid "" @@ -7696,23 +7534,20 @@ msgid "" "from administrator interface. Additional plugins or themes may be installed " "and upgraded at your own risk." msgstr "" +"ప్రధాన సంస్కరణ మెరుగుపరుచు తర్వాత, మీరు నిర్వహణ నుండి దత్తాంశస్థానం అప్‌గ్రేడ్‌ను మాన్యువల్‌గా అమలు " +"చేయాలి. అదనపు ప్లగిన్‌లు లేదా థీమ్‌లు మీ స్వంత పూచీతో ఇన్‌స్టాల్ చేయబడవచ్చు మరియు మెరుగుపరుచు " +"చేయబడవచ్చు." #: plinth/modules/wordpress/__init__.py:58 #: plinth/modules/wordpress/manifest.py:6 -#, fuzzy -#| msgid "Address" msgid "WordPress" -msgstr "చిరునామా" +msgstr "వర్డుప్రెస్సు" #: plinth/modules/wordpress/__init__.py:59 -#, fuzzy -#| msgid "Wiki and Blog" msgid "Website and Blog" -msgstr "వికీ మరియు బ్లాగ్" +msgstr "వెబ్‌సైట్ మరియు బ్లాగ్" #: plinth/modules/wordpress/forms.py:14 -#, fuzzy -#| msgid "public access" msgid "Public access" msgstr "ప్రజా ప్రాప్తి" @@ -7721,6 +7556,8 @@ msgid "" "Allow all visitors. Disabling allows only administrators to view the " "WordPress site or blog. Enable only after performing initial WordPress setup." msgstr "" +"సందర్శకులందరినీ అనుమతించండి. నిరుపయోగం చేయడం వలన వర్డుప్రెస్సు సైట్ లేదా బ్లాగును వీక్షించడానికి " +"నిర్వాహకులు మాత్రమే అనుమతిస్తుంది. ప్రారంభ వర్డుప్రెస్సు సెటప్ చేసిన తర్వాత మాత్రమే ప్రారంభించండి." #: plinth/modules/zoph/__init__.py:26 #, python-brace-format @@ -7734,6 +7571,12 @@ msgid "" "location using search, map and calendar views. Individual photos can be " "shared with others by sending a direct link." msgstr "" +"Zoph మీ ఫోటో సేకరణను నిర్వహిస్తుంది. ఫోటోలు మీ నియంత్రణలో మీ {box_name}లో నిల్వ చేయబడతాయి. పబ్లిక్ " +"డిస్‌ప్లే కోసం గ్యాలరీలపై దృష్టి పెట్టే బదులు, వాటిని మీ స్వంత ఉపయోగం కోసం నిర్వహించడం, వాటిని ఎవరు " +"తీసుకెళ్లారు, ఎక్కడికి తీసుకెళ్లారు మరియు వాటిలో ఉన్న వారి ద్వారా వాటిని నిర్వహించడంపై జోఫ్ దృష్టి సారిస్తుంది. " +"ఫోటోలను బహుళ క్రమానుగత ఆల్బమ్‌లు మరియు వర్గాలకు లింక్ చేయవచ్చు. శోధన, మ్యాప్ మరియు క్యాలెండర్ " +"వీక్షణలను ఉపయోగించి ఒక వ్యక్తిని కలిగి ఉన్న అన్ని ఫోటోలు లేదా తేదీలో తీసిన ఫోటోలు లేదా ఒక ప్రదేశంలో తీసిన " +"ఫోటోలను కనుగొనడం సులభం. డైరెక్ట్ లింక్‌ని పంపడం ద్వారా వ్యక్తిగత ఫోటోలను ఇతరులతో పంచుకోవచ్చు." #: plinth/modules/zoph/__init__.py:37 #, python-brace-format @@ -7742,38 +7585,40 @@ msgid "" "Zoph. For additional users, accounts must be created both in {box_name} and " "in Zoph with the same user name." msgstr "" +"జోఫ్ని సెటప్ చేసిన {box_name} వినియోగదారు కూడా Zophలో నిర్వాహకులు అవుతారు. అదనపు వినియోగదారుల " +"కోసం, ఖాతాలు తప్పనిసరిగా {box_name}లో మరియు జోఫ్లో ఒకే వినియోగదారు పేరుతో సృష్టించబడాలి." #: plinth/modules/zoph/__init__.py:58 plinth/modules/zoph/manifest.py:6 msgid "Zoph" -msgstr "" +msgstr "జోఫ్" #: plinth/modules/zoph/__init__.py:59 msgid "Photo Organizer" -msgstr "" +msgstr "ఫోటో ఆర్గనైజర్" #: plinth/modules/zoph/forms.py:14 msgid "Enable OpenStreetMap for maps" -msgstr "" +msgstr "మ్యాప్‌ల కోసం ఓపెన్స్ట్రీట్మ్యాప్ని ప్రారంభించండి" #: plinth/modules/zoph/forms.py:15 msgid "" "When enabled, requests will be made to OpenStreetMap servers from user's " "browser. This impacts privacy." msgstr "" +"ప్రారంభించబడినప్పుడు, వినియోగదారు బ్రౌజర్ నుండి ఓపెన్స్ట్రీట్మ్యాప్ని సర్వర్‌లకు అభ్యర్థనలు చేయబడతాయి. ఇది " +"గోప్యతను ప్రభావితం చేస్తుంది." #: plinth/modules/zoph/templates/zoph-pre-setup.html:15 #: plinth/modules/zoph/templates/zoph-pre-setup.html:28 -#, fuzzy -#| msgid "Start Setup" msgid "Setup" -msgstr "అమరికను ప్రారంభించు" +msgstr "అమర్చిపెట్టు" #: plinth/modules/zoph/templates/zoph-pre-setup.html:18 #, python-format msgid "" "User account %(username)s will become the administrator " "account for Zoph." -msgstr "" +msgstr "వినియోగదారు ఖాతా %(username)s జోఫ్ కోసం నిర్వాహక ఖాతా అవుతుంది." #: plinth/network.py:29 msgid "PPPoE" @@ -7786,7 +7631,7 @@ msgstr "సాధారణమైన" #: plinth/package.py:94 #, python-brace-format msgid "Package {package_name} is the latest version ({latest_version})" -msgstr "" +msgstr "ప్యాకేజీ {package_name} తాజా వెర్షన్ ({latest_version})" #: plinth/package.py:245 msgid "Error during installation" @@ -7833,22 +7678,25 @@ msgid "" "FreedomBox Service (Plinth) project issue tracker." msgstr "" +"ఈ తప్పిపోయిన పేజీ ఉనికిలో ఉందని మీరు విశ్వసిస్తే, దయచేసి ఫ్రీడంబోస్ సర్వీస్ (Plinth) ప్రాజెక్ట్ ఇష్యూ ట్రాకర్." #: plinth/templates/500.html:10 msgid "500" msgstr "500" #: plinth/templates/500.html:14 -#, fuzzy, python-format +#, 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 "" -"ఈ చివరి% (num_lines) లు ఈ వెబ్ ఇంటర్ఫేస్ స్థితి లాగ్ 1 రేఖలు. మీరు ఒక బగ్ను నివేదించి అనుకుంటే, " -"దయచేసి 2bug ట్రాకర్ " -"తప్పుల నివేదిక ఈ స్థితి లాగ్ అటాచ్ 3 మరియు ఉపయోగించడానికి." +"ఇది అంతర్గత లోపం మరియు మీరు కలిగించినది లేదా పరిష్కరించగలిగేది కాదు. దయచేసి బగ్ ట్రాకర్లో లోపాన్ని " +"నివేదించండి, తద్వారా మేము దాన్ని పరిష్కరించగలము. అలాగే, దయచేసి బగ్ రిపోర్ట్‌కి స్టేటస్ లాగ్ని జత చేయండి." #: plinth/templates/app-header.html:22 msgid "Installation" @@ -7862,33 +7710,27 @@ msgstr "%(service_name)s సేవ నడవడం లేదు." #: plinth/templates/base.html:30 #, python-format msgid "Core functionality and web interface for %(box_name)s" -msgstr "" +msgstr "%(box_name)s కోసం కోర్ ఫంక్షనాలిటీ మరియు వెబ్ ఇంటర్‌ఫేస్" #: plinth/templates/base.html:107 -#, fuzzy -#| msgid "Home" msgid " Home" -msgstr "ముంగిలి" +msgstr " నివాసం" #: plinth/templates/base.html:110 msgid "Home" msgstr "ముంగిలి" #: plinth/templates/base.html:115 -#, fuzzy -#| msgid "Apps" msgid " Apps" -msgstr "అనువర్తనాలు" +msgstr " కార్యక్షేత్రం" #: plinth/templates/base.html:119 msgid "Apps" msgstr "అనువర్తనాలు" #: plinth/templates/base.html:124 -#, fuzzy -#| msgid "System" msgid " System" -msgstr "వ్యవస్థ" +msgstr " కార్యవ్యవస్థ" #: plinth/templates/base.html:128 msgid "System" @@ -7920,20 +7762,16 @@ msgid "Launch web client" msgstr "వెబ్ క్లయింట్ ని ప్రారంభించండి" #: plinth/templates/clients-button.html:25 -#, fuzzy msgid "Client Apps" -msgstr "క్లయింట్ అనువర్తనాలు" +msgstr "క్లయింట్ ర్యక్షేత్రం" #: plinth/templates/clients.html:17 msgid "Web" msgstr "వెబ్" #: plinth/templates/clients.html:42 -#, fuzzy msgid "Desktop" -msgstr "" -"చాట్ క్లయింట్\n" -" (JSXC)" +msgstr "రంగస్థలం" #: plinth/templates/clients.html:53 msgid "GNU/Linux" @@ -7960,9 +7798,8 @@ msgid "F-Droid" msgstr "ఎఫ్-డ్రాయిడ్" #: plinth/templates/clients.html:88 -#, fuzzy msgid "App Store" -msgstr "అన్హొస్టెడ్ స్టోరేజ్ ని (పునరుద్ధరించండి)" +msgstr "యాప్ స్టోర్" #: plinth/templates/clients.html:104 msgid "Package" @@ -7995,6 +7832,8 @@ msgid "" "Enable some applications to add shortcuts to " "this page." msgstr "" +"ఈ పేజీకి సత్వరమార్గాలను జోడించడానికి కొన్ని అప్లికేషన్‌లను " +"ప్రారంభించండి." #: plinth/templates/index.html:108 #, python-format @@ -8003,6 +7842,9 @@ msgid "" "server to deploy social applications on small machines. It provides online " "communication tools respecting your privacy and data ownership." msgstr "" +"%(box_name)s, డెబియన్ స్వచ్ఛమైన కలపడం, చిన్న మెషీన్‌లలో సోషల్ అప్లికేషన్‌లను అమలు చేయడానికి 100%% " +"ఉచిత సాఫ్ట్‌వేర్ స్వీయ-హోస్టింగ్ వెబ్ సర్వర్. ఇది మీ గోప్యత మరియు డేటా యాజమాన్యానికి సంబంధించి ఆన్‌లైన్ కమ్యూనికేషన్ " +"సాధనాలను అందిస్తుంది." #: plinth/templates/index.html:117 #, python-format @@ -8011,6 +7853,8 @@ msgid "" "free software, distributed under the GNU Affero General Public License, " "Version 3 or later." msgstr "" +"ఈ పోర్టల్ %(box_name)s వెబ్ సంవిధానంలో ఒక భాగం. %(box_name)s అనేది ఉచిత సాఫ్ట్‌వేర్, ఇది GNU " +"అఫెరో జనరల్ పబ్లిక్ లైసెన్స్, వెర్షన్ 3 లేదా తదుపరిది కింద పంపిణీ చేయబడింది." #: plinth/templates/index.html:137 msgid "Homepage" @@ -8025,8 +7869,6 @@ msgid "Donate" msgstr "విరాళమివ్వండి" #: plinth/templates/index.html:147 -#, fuzzy -#| msgid "FreedomBox Manual" msgid "FreedomBox Foundation" msgstr "ఫ్రీడమ్ బాక్స్ నిర్దేశిక" @@ -8039,12 +7881,13 @@ msgid "Mailing list" msgstr "మెయిలింగ్ జాబితా" #: plinth/templates/internal-zone.html:11 -#, fuzzy, python-format -#| msgid "Service discovery server is not running" +#, 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 "సేవ ఆవిష్కరణ సేవికను నడుపటంలేదు" +msgstr "" +"%(service_name)s అంతర్గత నెట్‌వర్క్‌లలో లేదా క్లయింట్ VPN ద్వారా %(box_name)sకి కనెక్ట్ " +"చేయబడినప్పుడు మాత్రమే అందుబాటులో ఉంటుంది." #: plinth/templates/internal-zone.html:17 msgid "Currently there are no network interfaces configured as internal." @@ -8060,29 +7903,24 @@ msgstr "" #: plinth/templates/messages.html:11 msgid "Close" -msgstr "" +msgstr "దగ్గరగా" #: plinth/templates/notifications-dropdown.html:11 -#, fuzzy -#| msgid "No certificate" msgid "Notifications" -msgstr "ధృవీకరణ పత్రం లేదు" +msgstr "నోటిఫికేషన్లు" #: plinth/templates/port-forwarding-info.html:8 -#, fuzzy msgid "Port Forwarding" -msgstr "సబ్డొమైన్లు ప్రారంభించు" +msgstr "రేవు ఫార్వార్డింగ్" #: plinth/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 "" -"మీరు నెట్వర్క్ సెటప్ తనిఖీ చేసి, అవసరమైతే దాన్ని సవరించవచ్చు." +"మీ ఫ్రీదోంబాక్స్ రూటర్ వెనుక లేదు. ఎటువంటి చర్య అవసరం " +"లేదు." #: plinth/templates/port-forwarding-info.html:19 #, python-format @@ -8091,36 +7929,32 @@ msgid "" "are using the DMZ feature to forward all ports. No further router " "configuration is necessary." msgstr "" +"మీ ఫ్రీడమ్బాక్స్ రూటర్ వెనుక ఉంది మరియు మీరు అన్ని పోర్ట్‌లను " +"ఫార్వార్డ్ చేయడానికి DMZ ఫీచర్‌ని ఉపయోగిస్తున్నారు. తదుపరి రూటర్ కాన్ఫిగరేషన్ అవసరం లేదు." #: plinth/templates/port-forwarding-info.html:26 -#, fuzzy, python-format -#| msgid "" -#| "If your FreedomBox is behind a router, you will need to set up port " -#| "forwarding on your router. You should forward the following ports for " -#| "%(service_name)s:" +#, 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 "" -"మీ ఫ్రీడమ్‌బాక్స్ ఒక రౌటర్ వెనుక ఉంటే, మీరు మీ రౌటర్లో పోర్ట్ ఫార్వడింగ్ ను ఏర్పాటు చేయాల్సి ఉంటుంది. " -"%(service_name)s కొరకు దిగువ పోర్టులను మీరు ఫార్వర్డ్ చేయాలి:" +"మీ ఫ్రీదోంబాక్స్ రూటర్ వెనుక ఉంది మరియు మీరు DMZ ఫీచర్‌ని " +"ఉపయోగించడం లేదు. మీరు మీ రూటర్‌లో పోర్ట్ ఫార్వార్డింగ్‌ని సెటప్ చేయాలి. మీరు %(service_name)s కోసం " +"క్రింది పోర్ట్‌లను ఫార్వార్డ్ చేయాలి:" #: plinth/templates/port-forwarding-info.html:37 -#, fuzzy -#| msgid "protocol" msgid "Protocol" msgstr "ప్రోటోకాల్" #: plinth/templates/port-forwarding-info.html:38 msgid "From Router/WAN Ports" -msgstr "" +msgstr "రూటర్/WAN పోర్ట్‌ల నుండి" #: plinth/templates/port-forwarding-info.html:39 -#, fuzzy, python-format -#| msgid "%(box_name)s Setup" +#, python-format msgid "To %(box_name)s Ports" -msgstr "%(box_name)s అమరిక" +msgstr "%(box_name)s పోర్ట్‌లకు" #: plinth/templates/setup.html:24 msgid "Install this application?" @@ -8151,6 +7985,8 @@ msgid "" "conflict with the installation of this app. The following packages will be " "removed if you proceed:" msgstr "" +"విరుద్ధమైన ప్యాకేజీలు: సిస్టమ్‌లో ఇన్‌స్టాల్ చేయబడిన కొన్ని ప్యాకేజీలు ఈ యాప్ ఇన్‌స్టాలేషన్‌తో " +"విభేదిస్తున్నాయి. మీరు కొనసాగితే క్రింది ప్యాకేజీలు తీసివేయబడతాయి:" #: plinth/templates/setup.html:71 msgid "Install" @@ -8182,6 +8018,24 @@ msgstr "%(percentage)s %% పూర్తి" msgid "Gujarati" msgstr "గుజరాతీ" +#~ msgid "Powered by Postfix, Dovecot & Rspamd" +#~ msgstr "Postfix, Dovecot & Rspamd ద్వారా ఆధారితం" + +#~ msgid "Postfix-Dovecot SASL integration" +#~ msgstr "Postfix-Dovecot SASL integration" + +#~ msgid "Postfix alias maps" +#~ msgstr "పోస్ట్‌ఫిక్స్ అలియాస్ మ్యాప్స్" + +#~ msgid "Inbound and outbound mail filters" +#~ msgstr "ఇన్‌బౌండ్ మరియు అవుట్‌బౌండ్ మెయిల్ ఫిల్టర్‌లు" + +#~ msgid "Disable" +#~ msgstr "నిలిపివేయబడింది" + +#~ msgid "Enable" +#~ msgstr "ప్రారంభించు" + #~ msgid "Enable Dynamic DNS" #~ msgstr "చురుకైన DNS అమలుచెయ్యి" diff --git a/plinth/locale/tr/LC_MESSAGES/django.po b/plinth/locale/tr/LC_MESSAGES/django.po index a062a2773..02e6d0db8 100644 --- a/plinth/locale/tr/LC_MESSAGES/django.po +++ b/plinth/locale/tr/LC_MESSAGES/django.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" -"PO-Revision-Date: 2022-02-02 08:55+0000\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" +"PO-Revision-Date: 2022-03-04 12:58+0000\n" "Last-Translator: Burak Yavuz \n" "Language-Team: Turkish \n" @@ -16,7 +16,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 4.11-dev\n" +"X-Generator: Weblate 4.11.1-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -889,7 +889,7 @@ msgid "List" msgstr "Listele" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -910,7 +910,7 @@ msgstr "Yönetici" msgid "Configuration updated." msgstr "Yapılandırma güncellendi." -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -980,6 +980,7 @@ msgid "Serving Domains" msgstr "Hizmet Veren Etki Alanları" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -1007,7 +1008,7 @@ msgstr "IP adresi ve etki alanlarını yenile" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1606,13 +1607,6 @@ msgstr "" "adınızı sorarsa, şu anki IP adresinizle bir yanıt alacaktır." #: plinth/modules/dynamicdns/__init__.py:41 -#, fuzzy -#| 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." msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1707,10 +1701,8 @@ msgid "GnuDIP" msgstr "GnuDIP" #: plinth/modules/dynamicdns/forms.py:57 -#, fuzzy -#| msgid "other update URL" msgid "Other update URL" -msgstr "diğer güncelleme URL'si" +msgstr "Diğer güncelleme URL'si" #: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" @@ -1754,10 +1746,8 @@ msgid "Use IPv6 instead of IPv4" msgstr "IPv4 yerine IPv6 kullan" #: plinth/modules/dynamicdns/forms.py:123 -#, fuzzy -#| msgid "secrets required" msgid "This field is required." -msgstr "gizli anahtarlar gerekli" +msgstr "Bu alan gereklidir." #: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 @@ -1774,6 +1764,7 @@ msgid "Status" msgstr "Durum" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "Etki Alanı" @@ -1783,50 +1774,36 @@ msgid "Last update" msgstr "Son güncelleme" #: plinth/modules/dynamicdns/templates/dynamicdns.html:21 -#, fuzzy -#| msgid "IP address" msgid "IP Address" -msgstr "IP adresi" +msgstr "IP Adresi" #: plinth/modules/dynamicdns/templates/dynamicdns.html:32 -#, fuzzy -#| msgid "Access" msgid "Success" -msgstr "Erişim" +msgstr "Başarılı" #: plinth/modules/dynamicdns/templates/dynamicdns.html:36 -#, fuzzy -#| msgid "failed" msgid "Failed" -msgstr "başarısız" +msgstr "Başarısız" #: plinth/modules/dynamicdns/templates/dynamicdns.html:52 -#, fuzzy -#| msgid "No libraries available." msgid "No status available." -msgstr "Kullanılabilir kütüphane yok." +msgstr "Mevcut durum yok." #: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 -#, fuzzy -#| msgid "Connection Name" msgid "Connection timed out" -msgstr "Bağlantı Adı" +msgstr "Bağlantı zaman aşımı" #: plinth/modules/dynamicdns/views.py:25 msgid "Could not find server" -msgstr "" +msgstr "Sunucu bulunamadı" #: plinth/modules/dynamicdns/views.py:27 -#, fuzzy -#| msgid "Delete connection" msgid "Server refused connection" -msgstr "Bağlantıyı sil" +msgstr "Sunucu bağlantıyı reddetti" #: plinth/modules/dynamicdns/views.py:28 -#, fuzzy -#| msgid "Last update" msgid "Already up-to-date" -msgstr "Son güncelleme" +msgstr "Zaten güncel" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -1979,7 +1956,32 @@ msgstr "" "Etki alanınızı sistemde Yapılandır sayfasında " "ayarlayabilirsiniz." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" +"Bu, Postfix, Dovecot ve Rspamd kullanan tam bir e-posta sunucusu çözümüdür. " +"Postfix e-posta gönderir ve alır. Dovecot, e-posta istemcilerinin IMAP ve " +"POP3 kullanarak posta kutunuza erişmesini sağlar. Rspamd spam ile ilgilenir." + +#: plinth/modules/email/__init__.py:31 +#, 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 "" +"{box_name} üzerindeki her kullanıcı, kullanici@etkialanim.ornek gibi bir e-" +"posta adresi alır. Ayrıca kullanici+diger@etkialanim.ornek gibi görünen tüm " +"adreslerden posta alacaklardır. Ayrıca, e-posta adreslerine kod adları " +"ekleyebilirler. \"Postmaster\" gibi gerekli kod adları, ilk yönetici " +"kullanıcıyı işaret ederek otomatik olarak oluşturulur." + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." @@ -1987,38 +1989,34 @@ msgstr "" "Roundcube uygulaması, kullanıcıların " "e-postaya erişmesi için web arayüzü sağlar." -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" "Kurulum sırasında sistemdeki diğer tüm e-posta sunucuları kaldırılacaktır." -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "Postfix/Dovecot" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "E-posta Sunucusu" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "Postfix, Dovecot ve Rspamd tarafından desteklenmektedir" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" +msgstr "E-posta Kod Adlarım" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "Postfix-Dovecot SASL bütünleştirmesi" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" +msgstr "Posta Kutusu için Kod Adlarını Yönet" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "Postfix kod adı eşlemeleri" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "Gelen ve giden posta süzgeçleri" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "Birincil etki alanı" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." @@ -2026,89 +2024,102 @@ msgstr "" "Postalar sistemde yapılandırılan tüm etki alanları için alınır. Bunlar " "arasından en önemli olanı seçin." -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "Yeni kod adı (@domain olmadan)" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "Geçersiz karakterler içeriyor" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "A-z veya 0-9 ile başlamalı ve bitmelidir" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "Sayı olamaz" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "Kod Adları" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Etkinleştirildi" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Etkisizleştirildi" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "K-9 Mail" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "FairEmail" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "Kod Adlarını Yönet" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "E-posta kod adlarınız yok." -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "Etkisizleştir" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "Etkinleştir" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "Yeni bir e-posta kod adı oluşturun" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Ekle" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "İstenmeyen İletiyi Yönet" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "DNS Kayıtları" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" +"Posta sunucusunun düzgün çalışması için aşağıdaki DNS kayıtları birincil " +"etki alanınıza el ile eklenmek zorundadır." + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "TTL" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "Sınıf" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "Öncelik" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "Ağırlık" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Bağlantı noktası" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "Anamakine/Hedef/Değer" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2158,6 +2169,19 @@ msgstr "" msgid "Service/Port" msgstr "Hizmet/Bağlantı Noktası" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Etkinleştirildi" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Etkisizleştirildi" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "İzin Verildi" @@ -3451,11 +3475,6 @@ msgstr "" msgid "Address" msgstr "Adres" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Bağlantı noktası" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3507,15 +3526,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -5507,11 +5526,11 @@ msgstr "Ghost Commander - Samba eklentisi" msgid "VLC media player" msgstr "VLC ortam oynatıcı" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "GNOME Dosyaları" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -7117,11 +7136,6 @@ msgid "Frequent feature updates activated." msgstr "Sık yapılan özellik güncellemeleri etkinleştirildi." #: plinth/modules/users/__init__.py:29 -#, fuzzy -#| msgid "" -#| "Create and managed 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." msgid "" "Create and manage user accounts. These accounts serve as centralized " "authentication mechanism for most apps. Some apps further require a user " @@ -8278,6 +8292,24 @@ msgstr "%%%(percentage)s tamamlandı" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Powered by Postfix, Dovecot & Rspamd" +#~ msgstr "Postfix, Dovecot ve Rspamd tarafından desteklenmektedir" + +#~ msgid "Postfix-Dovecot SASL integration" +#~ msgstr "Postfix-Dovecot SASL bütünleştirmesi" + +#~ msgid "Postfix alias maps" +#~ msgstr "Postfix kod adı eşlemeleri" + +#~ msgid "Inbound and outbound mail filters" +#~ msgstr "Gelen ve giden posta süzgeçleri" + +#~ msgid "Disable" +#~ msgstr "Etkisizleştir" + +#~ msgid "Enable" +#~ msgstr "Etkinleştir" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Değişken DNS'i etkinleştir" diff --git a/plinth/locale/uk/LC_MESSAGES/django.po b/plinth/locale/uk/LC_MESSAGES/django.po index f34944944..665678b3b 100644 --- a/plinth/locale/uk/LC_MESSAGES/django.po +++ b/plinth/locale/uk/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" -"PO-Revision-Date: 2022-02-07 23:55+0000\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" +"PO-Revision-Date: 2022-02-16 20:57+0000\n" "Last-Translator: Andrij Mizyk \n" "Language-Team: Ukrainian \n" @@ -894,7 +894,7 @@ msgid "List" msgstr "Показати" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -915,7 +915,7 @@ msgstr "Адміністратор" msgid "Configuration updated." msgstr "Налаштування оновлено." -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -984,6 +984,7 @@ msgid "Serving Domains" msgstr "Обслуговування доменів" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -1011,7 +1012,7 @@ msgstr "Оновити IP-адреси і домени" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1679,10 +1680,8 @@ msgid "GnuDIP" msgstr "GnuDIP" #: plinth/modules/dynamicdns/forms.py:57 -#, fuzzy -#| msgid "other update URL" msgid "Other update URL" -msgstr "інша URL оновлення" +msgstr "Інша URL-адреса оновлення" #: plinth/modules/dynamicdns/forms.py:59 msgid "Service Type" @@ -1727,7 +1726,7 @@ msgstr "Використовувати IPv6 замість IPv4" #: plinth/modules/dynamicdns/forms.py:123 msgid "This field is required." -msgstr "" +msgstr "Це поле обовʼязкове." #: plinth/modules/dynamicdns/templates/dynamicdns.html:11 #: plinth/modules/firewall/templates/firewall.html:16 @@ -1744,6 +1743,7 @@ msgid "Status" msgstr "Стан" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "Домен" @@ -1753,50 +1753,36 @@ msgid "Last update" msgstr "Востаннє оновлено" #: plinth/modules/dynamicdns/templates/dynamicdns.html:21 -#, fuzzy -#| msgid "IP address" msgid "IP Address" msgstr "IP-адреса" #: plinth/modules/dynamicdns/templates/dynamicdns.html:32 -#, fuzzy -#| msgid "Access" msgid "Success" -msgstr "Доступ" +msgstr "Успішно" #: plinth/modules/dynamicdns/templates/dynamicdns.html:36 -#, fuzzy -#| msgid "failed" msgid "Failed" -msgstr "невдало" +msgstr "Невдало" #: plinth/modules/dynamicdns/templates/dynamicdns.html:52 -#, fuzzy -#| msgid "No libraries available." msgid "No status available." -msgstr "Нема доступних бібліотек." +msgstr "Стан недоступний." #: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 -#, fuzzy -#| msgid "Connection Name" msgid "Connection timed out" -msgstr "Назва зʼєднання" +msgstr "Час зʼєднання вийшов" #: plinth/modules/dynamicdns/views.py:25 msgid "Could not find server" -msgstr "" +msgstr "Не вдалося знайти сервер" #: plinth/modules/dynamicdns/views.py:27 -#, fuzzy -#| msgid "Delete connection" msgid "Server refused connection" -msgstr "Видалити зʼєднання" +msgstr "Сервер відмовив у зʼєднанні" #: plinth/modules/dynamicdns/views.py:28 -#, fuzzy -#| msgid "Enable auto-update" msgid "Already up-to-date" -msgstr "Дозволити автооновлення" +msgstr "Вже оновлено" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -1939,7 +1925,24 @@ msgstr "" "виглядатиме як username@%(domainname)s. Ви можете налаштувати свій " "домен на системній сторінці Налаштувати." -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." @@ -1947,126 +1950,139 @@ msgstr "" "Застосунок Roundcube надає " "вебінтерфейс для доступу користувачів до ел. пошти." -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" "Під час встановлення всі інші сервери ел. пошти в системі буде видалено." -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "Сервер електронної пошти" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "Працює на Postfix, Dovecot та Rspamd" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Aliases" +msgid "My Email Aliases" +msgstr "Керування аліясами" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Aliases" +msgid "Manage Aliases for Mailbox" +msgstr "Керування аліясами" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "Мапи аліясів Postfix" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "Фільтри вхідної і вихідної пошти" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "Основний домен" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" +"Листи надходять для всіх доменів, налаштованих у системі. Серед них виберіть " +"найважливіший." -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "Новий аліяс (без @domain)" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "Містить неправильні символи" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "Має починатися і закінчуватися на a-z або 0-9" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "Не може бути числом" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "Псевдоніми" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "Дозволено" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "Вимкнено" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "Thunderbird" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "K-9 Mail" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "FairEmail" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "Керування аліясами" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "У Вас нема аліясів ел. пошти." -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "Вимкнути" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "Дозволити" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "Створити новий аліяс електронної пошти" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "Додати" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "Керування спамом" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "Порт" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2110,6 +2126,19 @@ msgstr "" msgid "Service/Port" msgstr "Сервіс/Порт" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "Дозволено" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "Вимкнено" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "Дозволяється" @@ -2271,7 +2300,7 @@ msgstr "Типова гілка" #: plinth/modules/gitweb/forms.py:135 msgid "Gitweb displays this as a default branch." -msgstr "" +msgstr "Gitweb відображає це як типову гілку." #: plinth/modules/gitweb/manifest.py:18 msgid "Git" @@ -2586,6 +2615,10 @@ msgid "" "salsa.debian.org/freedombox-team/freedombox/issues\">bug tracker and " "attach this status log to the bug report." msgstr "" +"Це останні %(num_lines)s рядків із журналу стану для цього вебінтерфейсу. " +"Якщо Ви бажаєте повідомити про ваду, будь ласка використовуйте сторінку відстеження вад і прикріпіть цей журнал стану до звіту про ваду." #: plinth/modules/help/templates/statuslog.html:24 msgid "" @@ -2630,6 +2663,7 @@ msgid "" "The first visit to the provided web interface will initiate the " "configuration process." msgstr "" +"Перше відвідування наданого вебінтерфейсу розпочне процес налаштування." #: plinth/modules/i2p/__init__.py:52 msgid "Manage I2P application" @@ -2736,7 +2770,7 @@ msgstr "Створити вікі або блоґ" #: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:25 msgid "No wikis or blogs available." -msgstr "Нема доступних вікі або боґів." +msgstr "Нема доступних вікі або блоґів." #: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:31 #, python-format @@ -2813,7 +2847,7 @@ msgstr "" #: plinth/modules/infinoted/__init__.py:44 msgid "infinoted" -msgstr "" +msgstr "infinoted" #: plinth/modules/infinoted/__init__.py:45 msgid "Gobby Server" @@ -2903,25 +2937,25 @@ msgstr "Дії" #: plinth/modules/letsencrypt/templates/letsencrypt.html:37 #, python-format msgid "Valid, expires on %(expiry_date)s" -msgstr "" +msgstr "Правильний, дійсний до %(expiry_date)s" #: plinth/modules/letsencrypt/templates/letsencrypt.html:44 msgid "Revoked" -msgstr "" +msgstr "Відкликано" #: plinth/modules/letsencrypt/templates/letsencrypt.html:48 #, python-format msgid "Expired on %(expiry_date)s" -msgstr "" +msgstr "Дійсний до %(expiry_date)s" #: plinth/modules/letsencrypt/templates/letsencrypt.html:52 msgid "Invalid test certificate" -msgstr "" +msgstr "Неправильний тестовий сертифікат" #: plinth/modules/letsencrypt/templates/letsencrypt.html:56 #, python-format msgid "Invalid (%(reason)s)" -msgstr "" +msgstr "Неправильний (%(reason)s)" #: plinth/modules/letsencrypt/templates/letsencrypt.html:63 msgid "No certificate" @@ -2929,15 +2963,15 @@ msgstr "Нема сертифікату" #: plinth/modules/letsencrypt/templates/letsencrypt.html:80 msgid "Re-obtain" -msgstr "" +msgstr "Отримати повторно" #: plinth/modules/letsencrypt/templates/letsencrypt.html:93 msgid "Revoke" -msgstr "" +msgstr "Відкликати" #: plinth/modules/letsencrypt/templates/letsencrypt.html:101 msgid "Obtain" -msgstr "" +msgstr "Отримати" #: plinth/modules/letsencrypt/templates/letsencrypt.html:112 #, python-format @@ -2958,29 +2992,29 @@ msgstr "" #: plinth/modules/letsencrypt/views.py:47 #, python-brace-format msgid "Failed to revoke certificate for domain {domain}: {error}" -msgstr "" +msgstr "Не вдалося відкликати сертифікат для домену {domain}: {error}" #: plinth/modules/letsencrypt/views.py:60 #: plinth/modules/letsencrypt/views.py:77 #, python-brace-format msgid "Certificate successfully obtained for domain {domain}" -msgstr "" +msgstr "Сертифікат успішно отримано для домену {domain}" #: plinth/modules/letsencrypt/views.py:65 #: plinth/modules/letsencrypt/views.py:82 #, python-brace-format msgid "Failed to obtain certificate for domain {domain}: {error}" -msgstr "" +msgstr "Не вдалося отримати сертифікат для домену {domain}: {error}" #: plinth/modules/letsencrypt/views.py:94 #, python-brace-format msgid "Certificate successfully deleted for domain {domain}" -msgstr "" +msgstr "Сертифікат успішно видалено для домену {domain}" #: plinth/modules/letsencrypt/views.py:99 #, python-brace-format msgid "Failed to delete certificate for domain {domain}: {error}" -msgstr "" +msgstr "Не вдалося видалити сертифікат для домену {domain}: {error}" #: plinth/modules/matrixsynapse/__init__.py:29 msgid "" @@ -3001,7 +3035,7 @@ msgstr "" #: plinth/modules/matrixsynapse/__init__.py:70 msgid "Matrix Synapse" -msgstr "" +msgstr "Matrix Synapse" #: plinth/modules/matrixsynapse/forms.py:16 msgid "Enable Public Registration" @@ -3028,7 +3062,7 @@ msgstr "Елемент" #: plinth/modules/matrixsynapse/manifest.py:48 msgid "FluffyChat" -msgstr "" +msgstr "FluffyChat" #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15 #: plinth/modules/snapshot/templates/snapshot.html:12 @@ -3050,6 +3084,10 @@ msgid "" " setup is currently not supported.\n" " " msgstr "" +"\n" +" Увага! Зміна назви домену після початкового\n" +" налаштування зараз не підтримується.\n" +" " #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:35 #, python-format @@ -3057,6 +3095,8 @@ msgid "" "No domain(s) are available. Configure at " "least one domain to be able to use Matrix Synapse." msgstr "" +"Нема доступних доменів. Налаштувати " +"щонайменше один домен для використання Matrix Synapse." #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:15 #, python-format @@ -3071,6 +3111,8 @@ msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" +"Нові користувачі можуть реєструватися з будь-якого клієнта, якщо дозволена " +"публічна реєстрація." #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:31 #, python-format @@ -3087,6 +3129,10 @@ msgid "" "website. You can use MediaWiki to host a wiki-like website, take notes or " "collaborate with friends on projects." msgstr "" +"MediaWiki — це вікірушій, на якому працює Вікіпедія та інші проєкти " +"WikiMedia. Вікірушій є програмою для створення колективно редагованого " +"вебсайту. Ви можете використовувати MediaWiki для розміщення вебсайту на " +"зразок вікі, робити нотатки або співпрацювати з друзями над проєктами." #: plinth/modules/mediawiki/__init__.py:27 msgid "" @@ -3096,6 +3142,11 @@ msgid "" "from MediaWiki itself by going to the Special:CreateAccount page." msgstr "" +"Цей екземпляр MediaWiki йде з випадково зґенерованим паролем адміністратора. " +"Ви можете вказати новий пароль у розділі «Налаштування» і ввійти за " +"допомогою обліківки «admin». Потім Ви можете створити більше обліківок " +"користувачів із самої MediaWiki перейшовши на сторінку Special:CreateAccount." #: plinth/modules/mediawiki/__init__.py:33 msgid "" @@ -3123,6 +3174,8 @@ msgid "" "Set a new password for MediaWiki's administrator account (admin). Leave this " "field blank to keep the current password." msgstr "" +"Вкажіть новий пароль для обліківки адміністратора (admin) MediaWiki. Залиште " +"поле порожнім, якщо хочете зберегти поточний пароль." #: plinth/modules/mediawiki/forms.py:58 msgid "Server URL" @@ -3133,6 +3186,8 @@ msgid "" "Used by MediaWiki to generate URLs that point to the wiki such as in footer, " "feeds and emails." msgstr "" +"Використовується MediaWiki, щоб ґенерувати URL-адреси, які вказують на " +"вікісторінки, наприклад, внизу вебсторінок, у RSS-стрічках чи в ел. листах." #: plinth/modules/mediawiki/forms.py:64 msgid "Enable public registrations" @@ -3143,6 +3198,8 @@ msgid "" "If enabled, anyone on the internet will be able to create an account on your " "MediaWiki instance." msgstr "" +"Якщо дозволено, будь-хто з Інтернету зможе створити обліківку у Вашому " +"екземплярі MediaWiki." #: plinth/modules/mediawiki/forms.py:69 msgid "Enable private mode" @@ -3153,16 +3210,20 @@ 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 "" +"Якщо дозволено, доступ буде обмежено. Лише люди, що мають обліківки можуть " +"читати/писати у вікі. Публічна реєстрація також буде вимкнена." #: plinth/modules/mediawiki/forms.py:75 msgid "Default Skin" -msgstr "" +msgstr "Типова шкурка" #: plinth/modules/mediawiki/forms.py:76 msgid "" "Choose a default skin for your MediaWiki installation. Users have the option " "to select their preferred skin." msgstr "" +"Оберіть типову шкурку для Вашого встановлення MediaWiki. Користувачі мають " +"можливість вибирати бажану шкурку." #: plinth/modules/mediawiki/views.py:49 msgid "Password updated" @@ -3186,7 +3247,7 @@ msgstr "Приватний режим вимкнено" #: plinth/modules/mediawiki/views.py:86 msgid "Default skin changed" -msgstr "" +msgstr "Типову шкурку змінено" #: plinth/modules/mediawiki/views.py:90 msgid "Server URL updated" @@ -3200,6 +3261,10 @@ msgid "" "(30000). To connect to the server, a Minetest client is needed." msgstr "" +"Minetest — це багатокористувацька блокова пісочниця з нескінченним світом. " +"Цей модуль дозволяє запустити сервер Minetest на цьому {box_name}, з типовим " +"портом (30000). Щоб підʼєднатися до сервера потрібено клієнт Minetest." #: plinth/modules/minetest/__init__.py:59 plinth/modules/minetest/manifest.py:9 msgid "Minetest" @@ -3218,6 +3283,8 @@ msgid "" "You can change the maximum number of players playing minetest at a single " "instance of time." msgstr "" +"Ви можете змінити найбільшу кількість гравців, що грають minetest на одному " +"екземплярі." #: plinth/modules/minetest/forms.py:19 msgid "Enable creative mode" @@ -3253,11 +3320,6 @@ msgstr "" msgid "Address" msgstr "Адреса" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "Порт" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3297,15 +3359,15 @@ msgstr "" msgid "vlc" msgstr "vlc" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "kodi" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "yaacc" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "totem" @@ -3322,6 +3384,8 @@ msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" +"Mumble — це високоякісне ПЗ для голосового чату з відкритим кодом, низькою " +"затримкою і шифруванням." #: plinth/modules/mumble/__init__.py:28 msgid "" @@ -3432,7 +3496,7 @@ msgstr "Мережевий пристрій до якого підʼєднано #: plinth/modules/networks/forms.py:34 msgid "Firewall Zone" -msgstr "" +msgstr "Зона фаєрволу" #: plinth/modules/networks/forms.py:35 msgid "" @@ -3523,15 +3587,15 @@ msgstr "" #: plinth/modules/networks/forms.py:87 msgid "Ignore: Ignore this addressing method" -msgstr "" +msgstr "Ігнорувати: Ігнорувати на цей спосіб адресування" #: plinth/modules/networks/forms.py:92 msgid "Prefix" -msgstr "" +msgstr "Префікс" #: plinth/modules/networks/forms.py:93 msgid "Value between 1 and 128." -msgstr "" +msgstr "Значення між 1 і 128." #: plinth/modules/networks/forms.py:101 msgid "" @@ -3581,7 +3645,7 @@ msgstr "" #: plinth/modules/networks/forms.py:254 msgid "Automatic" -msgstr "" +msgstr "Автоматично" #: plinth/modules/networks/forms.py:255 msgid "A (5 GHz)" @@ -3844,7 +3908,7 @@ msgstr "Опис" #: plinth/modules/networks/templates/connection_show.html:109 msgid "Physical Link" -msgstr "" +msgstr "Фізична ланка" #: plinth/modules/networks/templates/connection_show.html:114 msgid "Link state" @@ -3866,12 +3930,12 @@ msgstr "Швидкість" #: plinth/modules/networks/templates/connection_show.html:126 #, python-format msgid "%(ethernet_speed)s Mbit/s" -msgstr "" +msgstr "%(ethernet_speed)s Мбіт/с" #: plinth/modules/networks/templates/connection_show.html:142 #, python-format msgid "%(wireless_bitrate)s Mbit/s" -msgstr "" +msgstr "%(wireless_bitrate)s Мбіт/с" #: plinth/modules/networks/templates/connection_show.html:154 msgid "Signal strength" @@ -3901,7 +3965,7 @@ msgstr "Сервер DNS" #: plinth/modules/networks/templates/connection_show.html:248 #: plinth/modules/storage/forms.py:138 msgid "Default" -msgstr "" +msgstr "Типово" #: plinth/modules/networks/templates/connection_show.html:213 msgid "IPv6" @@ -3920,7 +3984,7 @@ msgstr "Безпека" #: plinth/modules/networks/templates/connection_show.html:284 #: plinth/modules/networks/templates/connection_show.html:303 msgid "Firewall zone" -msgstr "" +msgstr "Зона фаєрволу" #: plinth/modules/networks/templates/connection_show.html:273 msgid "" @@ -3962,7 +4026,7 @@ msgstr "Видалити зʼєднання" #: plinth/modules/networks/templates/connections_delete.html:14 #, python-format msgid "Delete connection %(name)s permanently?" -msgstr "" +msgstr "Видалити зʼєднання %(name)s назавжди?" #: plinth/modules/networks/templates/connections_diagram.html:11 msgid "Internet" @@ -4231,15 +4295,15 @@ msgstr "" #: plinth/modules/networks/views.py:27 msgid "disabled" -msgstr "" +msgstr "вимкнено" #: plinth/modules/networks/views.py:28 msgid "automatic" -msgstr "" +msgstr "автоматично" #: plinth/modules/networks/views.py:29 msgid "manual" -msgstr "" +msgstr "вручну" #: plinth/modules/networks/views.py:30 msgid "shared" @@ -4252,7 +4316,7 @@ msgstr "" #: plinth/modules/networks/views.py:37 plinth/modules/networks/views.py:98 #: plinth/modules/networks/views.py:109 msgid "unknown" -msgstr "" +msgstr "невідомо" #: plinth/modules/networks/views.py:38 msgid "unmanaged" @@ -4260,11 +4324,11 @@ msgstr "" #: plinth/modules/networks/views.py:39 msgid "unavailable" -msgstr "" +msgstr "недоступно" #: plinth/modules/networks/views.py:40 msgid "disconnected" -msgstr "" +msgstr "відʼєднано" #: plinth/modules/networks/views.py:41 msgid "preparing" @@ -4376,7 +4440,7 @@ msgstr "вибраний метод IP не підтримується" #: plinth/modules/networks/views.py:101 msgid "generic" -msgstr "" +msgstr "загальний" #: plinth/modules/networks/views.py:102 msgid "TUN or TAP interface" @@ -5051,7 +5115,7 @@ msgstr "Клієнт ел. пошти" #: plinth/modules/roundcube/forms.py:16 msgid "Use only the local mail server" -msgstr "" +msgstr "Використовувати лише локальний поштовий сервер" #: plinth/modules/roundcube/forms.py:17 #, python-brace-format @@ -5115,11 +5179,11 @@ msgstr "Ghost Commander - втулка для Samba" msgid "VLC media player" msgstr "Медіяпрогравач VLC" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "Файли GNOME" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "Dolphin" @@ -5402,6 +5466,8 @@ msgid "" "Note that Shaarli only supports a single user account, which you will need " "to setup on the initial visit." msgstr "" +"Зауважте, що Shaarli підтримує лише одну користувацьку обліківку, яку можна " +"налаштувати під час початкового відвідування." #: plinth/modules/shaarli/__init__.py:38 plinth/modules/shaarli/manifest.py:25 msgid "Shaarli" @@ -6592,20 +6658,15 @@ msgid "Frequent feature updates activated." msgstr "Оновлення частих можливостей активовано." #: plinth/modules/users/__init__.py:29 -#, fuzzy -#| msgid "" -#| "Create and managed 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." 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 "" -"Створення і керування обліковими записами користувачів. Ці обліківки " -"обробляються як централізований механізм автентифікації для більшості " -"застосунків. Деякі застосунки також вимагають, щоб обліківка була частиною " -"групи, щоб отримати авторизований доступ до застосунку." +"Створення і керування обліковими записами. Ці обліківки обробляються як " +"централізований механізм автентифікації для більшості застосунків. Деякі " +"застосунки також вимагають, щоб обліківка була частиною групи, щоб отримати " +"авторизований доступ до застосунку." #: plinth/modules/users/__init__.py:34 #, python-brace-format @@ -7353,6 +7414,11 @@ msgid "" "freedombox/issues\">bug tracker so we can fix it. Also, please attach " "the status log to the bug report." msgstr "" +"Це внутрішня помилка і не те, що Ви спричинили чи можете виправити. Будь " +"ласка, повідомте про помилку на сторінці відстеження вад, щоб ми могли " +"виправити її. Також, будь ласка, прикріпіть до звіту про ваду журнал стану." #: plinth/templates/app-header.html:22 msgid "Installation" @@ -7679,6 +7745,21 @@ msgstr "%(percentage)s%% завершено" msgid "Gujarati" msgstr "Gujarati" +#~ msgid "Powered by Postfix, Dovecot & Rspamd" +#~ msgstr "Працює на Postfix, Dovecot та Rspamd" + +#~ msgid "Postfix alias maps" +#~ msgstr "Мапи аліясів Postfix" + +#~ msgid "Inbound and outbound mail filters" +#~ msgstr "Фільтри вхідної і вихідної пошти" + +#~ msgid "Disable" +#~ msgstr "Вимкнути" + +#~ msgid "Enable" +#~ msgstr "Дозволити" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Дозволити динамічну DNS" diff --git a/plinth/locale/vi/LC_MESSAGES/django.po b/plinth/locale/vi/LC_MESSAGES/django.po index 099821eed..04afe1588 100644 --- a/plinth/locale/vi/LC_MESSAGES/django.po +++ b/plinth/locale/vi/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-07-28 08:34+0000\n" "Last-Translator: bruh \n" "Language-Team: Vietnamese Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Domain Name Server" msgid "Email Server" msgstr "Máy chủ tên miền" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Libraries" +msgid "My Email Aliases" +msgstr "Quản lý thư viện" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Libraries" +msgid "Manage Aliases for Mailbox" +msgstr "Quản lý thư viện" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 #, fuzzy #| msgid "TLS domain" msgid "Primary domain" msgstr "Miền TLS" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Manage Libraries" msgid "Aliases" msgstr "Quản lý thư viện" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Manage Libraries" msgid "Manage Aliases" msgstr "Quản lý thư viện" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enable DNSSEC" -msgid "Enable" -msgstr "Bật DNSSEC" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "Create a new backup" msgid "Create a new email alias" msgstr "Tạo một bản sao lưu mới" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Manage Libraries" msgid "Manage Spam" msgstr "Quản lý thư viện" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2135,6 +2163,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -3221,11 +3262,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3265,15 +3301,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -4981,11 +5017,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -7419,6 +7455,11 @@ msgstr "" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Enable DNSSEC" +#~ msgid "Enable" +#~ msgstr "Bật DNSSEC" + #~ msgid "Enable Dynamic DNS" #~ msgstr "Bật DNS động" diff --git a/plinth/locale/zh_Hans/LC_MESSAGES/django.po b/plinth/locale/zh_Hans/LC_MESSAGES/django.po index 8662d343d..6b46dd0b5 100644 --- a/plinth/locale/zh_Hans/LC_MESSAGES/django.po +++ b/plinth/locale/zh_Hans/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: Plinth\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" -"PO-Revision-Date: 2022-02-02 08:55+0000\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" +"PO-Revision-Date: 2022-03-04 12:58+0000\n" "Last-Translator: Eric \n" "Language-Team: Chinese (Simplified) \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.11-dev\n" +"X-Generator: Weblate 4.11.1-dev\n" #: doc/dev/_templates/layout.html:11 msgid "Page source" @@ -857,7 +857,7 @@ msgid "List" msgstr "列表" #: plinth/modules/bepasty/views.py:52 -#: plinth/modules/email_server/templates/email_alias.html:28 +#: plinth/modules/email/templates/email-aliases.html:24 #: plinth/modules/letsencrypt/templates/letsencrypt.html:86 #: plinth/modules/networks/templates/connection_show.html:56 #: plinth/modules/samba/templates/samba.html:154 @@ -878,7 +878,7 @@ msgstr "管理员" msgid "Configuration updated." msgstr "配置已更新。" -#: plinth/modules/bepasty/views.py:93 plinth/modules/email_server/views.py:41 +#: plinth/modules/bepasty/views.py:93 plinth/modules/email/views.py:48 #: plinth/modules/gitweb/views.py:117 plinth/modules/searx/views.py:41 #: plinth/modules/searx/views.py:52 plinth/modules/tor/views.py:159 #: plinth/modules/zoph/views.py:72 @@ -945,6 +945,7 @@ msgid "Serving Domains" msgstr "服务域" #: plinth/modules/bind/templates/bind.html:17 +#: plinth/modules/email/templates/email.html:38 #: plinth/modules/ikiwiki/forms.py:12 #: plinth/modules/names/templates/names.html:15 #: plinth/modules/networks/templates/connection_show.html:91 @@ -972,7 +973,7 @@ msgstr "刷新 IP 地址和域" #: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39 #: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:78 -#: plinth/modules/ejabberd/views.py:85 plinth/modules/email_server/views.py:38 +#: plinth/modules/ejabberd/views.py:85 plinth/modules/email/views.py:45 #: plinth/modules/matrixsynapse/views.py:124 #: plinth/modules/minetest/views.py:69 plinth/modules/mumble/views.py:28 #: plinth/modules/pagekite/forms.py:78 plinth/modules/quassel/views.py:28 @@ -1538,13 +1539,6 @@ msgstr "" "从您当前 IP 地址收到响应。" #: plinth/modules/dynamicdns/__init__.py:41 -#, fuzzy -#| 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." msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1553,8 +1547,8 @@ msgid "" msgstr "" "如果您正在寻找一个免费的动态 DNS 帐户,您可以在ddns.freedombox.org 找到免费的 GnuDIP " -"服务,或您可以在 " -"freedns.afraid.org 找到免费更新网址服务。" +"服务,或您可以在freedns.afraid.org 找到免费更新网址服务。" #: plinth/modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" @@ -1630,8 +1624,6 @@ msgid "GnuDIP" msgstr "GnuDIP" #: plinth/modules/dynamicdns/forms.py:57 -#, fuzzy -#| msgid "other update URL" msgid "Other update URL" msgstr "其他更新 URL" @@ -1695,6 +1687,7 @@ msgid "Status" msgstr "状态" #: plinth/modules/dynamicdns/templates/dynamicdns.html:18 +#: plinth/modules/email/templates/email.html:35 #: plinth/modules/letsencrypt/templates/letsencrypt.html:24 msgid "Domain" msgstr "域名" @@ -1704,50 +1697,36 @@ msgid "Last update" msgstr "最后一次更新" #: plinth/modules/dynamicdns/templates/dynamicdns.html:21 -#, fuzzy -#| msgid "IP address" msgid "IP Address" msgstr "IP 地址" #: plinth/modules/dynamicdns/templates/dynamicdns.html:32 -#, fuzzy -#| msgid "Access" msgid "Success" -msgstr "访问" +msgstr "成功" #: plinth/modules/dynamicdns/templates/dynamicdns.html:36 -#, fuzzy -#| msgid "failed" msgid "Failed" msgstr "失败" #: plinth/modules/dynamicdns/templates/dynamicdns.html:52 -#, fuzzy -#| msgid "No libraries available." msgid "No status available." -msgstr "没有可用的库。" +msgstr "无状态可用。" #: plinth/modules/dynamicdns/views.py:24 plinth/modules/dynamicdns/views.py:26 -#, fuzzy -#| msgid "Connection Name" msgid "Connection timed out" -msgstr "连接名称" +msgstr "连接超时" #: plinth/modules/dynamicdns/views.py:25 msgid "Could not find server" msgstr "" #: plinth/modules/dynamicdns/views.py:27 -#, fuzzy -#| msgid "Delete connection" msgid "Server refused connection" -msgstr "删除连接" +msgstr "服务器拒绝连接" #: plinth/modules/dynamicdns/views.py:28 -#, fuzzy -#| msgid "Last update" msgid "Already up-to-date" -msgstr "最后一次更新" +msgstr "已是最新" #: plinth/modules/ejabberd/__init__.py:31 msgid "" @@ -1883,131 +1862,155 @@ msgstr "" "%(domainname)s
。你可以在系统的配置中设置你" "的域名。" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 msgid "Email Server" msgstr "邮件服务器" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +msgid "My Email Aliases" +msgstr "我的邮箱别名" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +msgid "Manage Aliases for Mailbox" +msgstr "管理邮箱别名" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "主域名" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 msgid "Aliases" msgstr "别名" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "启用" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "已禁用" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "Roundcube" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 msgid "Manage Aliases" msgstr "管理别名" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "禁用" - -#: plinth/modules/email_server/templates/email_alias.html:26 -msgid "Enable" -msgstr "启用" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 msgid "Create a new email alias" msgstr "创建新的电子邮件别名" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "添加" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 msgid "Manage Spam" msgstr "管理垃圾邮件" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "端口" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2054,6 +2057,19 @@ msgstr "" msgid "Service/Port" msgstr "服务/端口" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "启用" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "已禁用" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "允许" @@ -3188,11 +3204,6 @@ msgstr "禁用后,玩家不能死或受到任何伤害。" msgid "Address" msgstr "地址" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "端口" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3232,15 +3243,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -5013,11 +5024,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -7504,6 +7515,12 @@ msgstr "已完成 %(percentage)s%%" msgid "Gujarati" msgstr "古吉拉特语" +#~ msgid "Disable" +#~ msgstr "禁用" + +#~ msgid "Enable" +#~ msgstr "启用" + #~ msgid "Enable Dynamic DNS" #~ msgstr "启用动态 DNS" diff --git a/plinth/locale/zh_Hant/LC_MESSAGES/django.po b/plinth/locale/zh_Hant/LC_MESSAGES/django.po index 1c524d717..d354d7b60 100644 --- a/plinth/locale/zh_Hant/LC_MESSAGES/django.po +++ b/plinth/locale/zh_Hant/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-14 20:10-0500\n" +"POT-Creation-Date: 2022-03-02 08:06-0500\n" "PO-Revision-Date: 2021-12-23 12:50+0000\n" "Last-Translator: pesder \n" "Language-Team: Chinese (Traditional) Configure page." msgstr "" -#: plinth/modules/email_server/__init__.py:31 +#: plinth/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 "" + +#: plinth/modules/email/__init__.py:31 +#, 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 "" + +#: plinth/modules/email/__init__.py:37 msgid "" "Roundcube app provides web interface " "for users to access email." msgstr "" -#: plinth/modules/email_server/__init__.py:33 +#: plinth/modules/email/__init__.py:39 msgid "" "During installation, any other email servers in the system will be " "uninstalled." msgstr "" -#: plinth/modules/email_server/__init__.py:44 +#: plinth/modules/email/__init__.py:58 +msgid "Postfix/Dovecot" +msgstr "" + +#: plinth/modules/email/__init__.py:60 #, fuzzy #| msgid "Domain Name Server" msgid "Email Server" msgstr "域名服務器 DNS" -#: plinth/modules/email_server/__init__.py:100 -msgid "Powered by Postfix, Dovecot & Rspamd" -msgstr "" +#: plinth/modules/email/__init__.py:80 +#, fuzzy +#| msgid "Manage Libraries" +msgid "My Email Aliases" +msgstr "管理圖書館" -#: plinth/modules/email_server/audit/ldap.py:68 -msgid "Postfix-Dovecot SASL integration" -msgstr "" +#: plinth/modules/email/__init__.py:81 +#, fuzzy +#| msgid "Manage Libraries" +msgid "Manage Aliases for Mailbox" +msgstr "管理圖書館" -#: plinth/modules/email_server/audit/ldap.py:69 -msgid "Postfix alias maps" -msgstr "" - -#: plinth/modules/email_server/audit/spam.py:87 -msgid "Inbound and outbound mail filters" -msgstr "" - -#: plinth/modules/email_server/forms.py:24 +#: plinth/modules/email/forms.py:25 msgid "Primary domain" msgstr "" -#: plinth/modules/email_server/forms.py:26 +#: plinth/modules/email/forms.py:27 msgid "" "Mails are received for all domains configured in the system. Among these, " "select the most important one." msgstr "" -#: plinth/modules/email_server/forms.py:34 +#: plinth/modules/email/forms.py:35 msgid "New alias (without @domain)" msgstr "" -#: plinth/modules/email_server/forms.py:41 +#: plinth/modules/email/forms.py:42 msgid "Contains illegal characters" msgstr "" -#: plinth/modules/email_server/forms.py:44 +#: plinth/modules/email/forms.py:45 msgid "Must start and end with a-z or 0-9" msgstr "" -#: plinth/modules/email_server/forms.py:47 +#: plinth/modules/email/forms.py:49 msgid "Cannot be a number" msgstr "" -#: plinth/modules/email_server/forms.py:57 +#: plinth/modules/email/forms.py:59 #, fuzzy #| msgid "Manage Libraries" msgid "Aliases" msgstr "管理圖書館" -#: plinth/modules/email_server/forms.py:69 -#: plinth/modules/firewall/templates/firewall.html:54 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -msgid "Enabled" -msgstr "" - -#: plinth/modules/email_server/forms.py:72 -#: plinth/modules/firewall/templates/firewall.html:57 -#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 -#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 -#: plinth/templates/cards.html:34 -msgid "Disabled" -msgstr "" - -#: plinth/modules/email_server/manifest.py:8 -#: plinth/modules/roundcube/__init__.py:54 +#: plinth/modules/email/manifest.py:12 plinth/modules/roundcube/__init__.py:54 #: plinth/modules/roundcube/manifest.py:6 msgid "Roundcube" msgstr "" -#: plinth/modules/email_server/manifest.py:16 -#: plinth/modules/radicale/manifest.py:36 +#: plinth/modules/email/manifest.py:20 plinth/modules/radicale/manifest.py:36 msgid "Thunderbird" msgstr "" -#: plinth/modules/email_server/manifest.py:33 +#: plinth/modules/email/manifest.py:37 msgid "K-9 Mail" msgstr "" -#: plinth/modules/email_server/manifest.py:48 +#: plinth/modules/email/manifest.py:52 msgid "FairEmail" msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:13 -#: plinth/modules/email_server/templates/email_server.html:15 +#: plinth/modules/email/templates/email-aliases.html:13 +#: plinth/modules/email/templates/email.html:15 #, fuzzy #| msgid "Manage Libraries" msgid "Manage Aliases" msgstr "管理圖書館" -#: plinth/modules/email_server/templates/email_alias.html:16 +#: plinth/modules/email/templates/email-aliases.html:16 msgid "You have no email aliases." msgstr "" -#: plinth/modules/email_server/templates/email_alias.html:24 -msgid "Disable" -msgstr "" - -#: plinth/modules/email_server/templates/email_alias.html:26 -#, fuzzy -#| msgid "Enable DNSSEC" -msgid "Enable" -msgstr "啟用域名系統安全擴充 DNSSEC" - -#: plinth/modules/email_server/templates/email_alias.html:32 +#: plinth/modules/email/templates/email-aliases.html:28 #, fuzzy #| msgid "Create a new backup" msgid "Create a new email alias" msgstr "建立一個新的備份檔" -#: plinth/modules/email_server/templates/email_alias.html:38 +#: plinth/modules/email/templates/email-aliases.html:34 msgid "Add" msgstr "" -#: plinth/modules/email_server/templates/email_server.html:10 +#: plinth/modules/email/templates/email.html:10 #, fuzzy #| msgid "Manage Libraries" msgid "Manage Spam" msgstr "管理圖書館" +#: plinth/modules/email/templates/email.html:22 +msgid "DNS Records" +msgstr "" + +#: plinth/modules/email/templates/email.html:25 +msgid "" +"The following DNS records must be added manually on your primary domain for " +"the mail server to work properly." +msgstr "" + +#: plinth/modules/email/templates/email.html:36 +msgid "TTL" +msgstr "" + +#: plinth/modules/email/templates/email.html:37 +msgid "Class" +msgstr "" + +#: plinth/modules/email/templates/email.html:39 +msgid "Priority" +msgstr "" + +#: plinth/modules/email/templates/email.html:40 +msgid "Weight" +msgstr "" + +#: plinth/modules/email/templates/email.html:41 +#: plinth/modules/minetest/templates/minetest.html:18 +#: plinth/modules/tor/templates/tor.html:72 +msgid "Port" +msgstr "" + +#: plinth/modules/email/templates/email.html:42 +msgid "Host/Target/Value" +msgstr "" + #: plinth/modules/firewall/__init__.py:26 #, python-brace-format msgid "" @@ -2014,6 +2042,19 @@ msgstr "" msgid "Service/Port" msgstr "" +#: plinth/modules/firewall/templates/firewall.html:54 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:69 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +msgid "Enabled" +msgstr "" + +#: plinth/modules/firewall/templates/firewall.html:57 +#: plinth/modules/letsencrypt/templates/letsencrypt.html:71 +#: plinth/modules/snapshot/forms.py:23 plinth/modules/snapshot/forms.py:29 +#: plinth/templates/cards.html:34 +msgid "Disabled" +msgstr "" + #: plinth/modules/firewall/templates/firewall.html:72 msgid "Permitted" msgstr "" @@ -3100,11 +3141,6 @@ msgstr "" msgid "Address" msgstr "" -#: plinth/modules/minetest/templates/minetest.html:18 -#: plinth/modules/tor/templates/tor.html:72 -msgid "Port" -msgstr "" - #: plinth/modules/minidlna/__init__.py:20 msgid "" "MiniDLNA is a simple media server software, with the aim of being fully " @@ -3144,15 +3180,15 @@ msgstr "" msgid "vlc" msgstr "" -#: plinth/modules/minidlna/manifest.py:43 +#: plinth/modules/minidlna/manifest.py:48 msgid "kodi" msgstr "" -#: plinth/modules/minidlna/manifest.py:76 +#: plinth/modules/minidlna/manifest.py:81 msgid "yaacc" msgstr "" -#: plinth/modules/minidlna/manifest.py:86 +#: plinth/modules/minidlna/manifest.py:91 msgid "totem" msgstr "" @@ -4860,11 +4896,11 @@ msgstr "" msgid "VLC media player" msgstr "" -#: plinth/modules/samba/manifest.py:55 +#: plinth/modules/samba/manifest.py:60 msgid "GNOME Files" msgstr "" -#: plinth/modules/samba/manifest.py:67 +#: plinth/modules/samba/manifest.py:72 msgid "Dolphin" msgstr "" @@ -7295,6 +7331,11 @@ msgstr "" msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Enable DNSSEC" +#~ msgid "Enable" +#~ msgstr "啟用域名系統安全擴充 DNSSEC" + #, fuzzy #~| msgid "Invalid domain name" #~ msgid "Enter a valid domain" diff --git a/plinth/modules/dynamicdns/__init__.py b/plinth/modules/dynamicdns/__init__.py index 9fc18467c..170f21552 100644 --- a/plinth/modules/dynamicdns/__init__.py +++ b/plinth/modules/dynamicdns/__init__.py @@ -258,7 +258,18 @@ def get_config(): """Return the current configuration.""" default_config = {'domains': {}} config = kvstore.get_default('dynamicdns_config', '{}') - return json.loads(config) or default_config + config = json.loads(config) or default_config + return _fix_corrupt_config(config) + + +def _fix_corrupt_config(config): + """Fix malformed configuration result of bug in older version.""" + if 'null' not in config['domains']: + return config + + del config['domains']['null'] + set_config(config) + return config def set_config(config): diff --git a/plinth/modules/email/__init__.py b/plinth/modules/email/__init__.py new file mode 100644 index 000000000..a5d7a81f7 --- /dev/null +++ b/plinth/modules/email/__init__.py @@ -0,0 +1,226 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +FreedomBox app to manage an email server. +""" + +import logging + +from django.urls import reverse_lazy +from django.utils.translation import gettext_lazy as _ + +import plinth.app +from plinth import actions, cfg, frontpage, menu +from plinth.daemon import Daemon +from plinth.modules.apache.components import Webserver +from plinth.modules.backups.components import BackupRestore +from plinth.modules.config import get_domainname +from plinth.modules.firewall.components import Firewall +from plinth.modules.letsencrypt.components import LetsEncrypt +from plinth.package import Packages, remove +from plinth.signals import domain_added, domain_removed +from plinth.utils import format_lazy + +from . import aliases, manifest, privileged + +_description = [ + _('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.'), + format_lazy( + _('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.'), box_name=_(cfg.box_name)), + _('Roundcube app provides web ' + 'interface for users to access email.'), + _('During installation, any other email servers in the system will be ' + 'uninstalled.') +] + +app = None +logger = logging.getLogger(__name__) + + +class EmailApp(plinth.app.App): + """FreedomBox app for an email server.""" + app_id = 'email' + + _version = 1 + + def __init__(self): + """The app's constructor""" + super().__init__() + + info = plinth.app.Info(app_id=self.app_id, version=self._version, + name=_('Postfix/Dovecot'), + icon_filename='email', + short_description=_('Email Server'), + description=_description, manual_page='Email', + clients=manifest.clients, + donation_url='https://rspamd.com/support.html') + self.add(info) + + menu_item = menu.Menu('menu-email', info.name, info.short_description, + info.icon_filename, 'email:index', + parent_url_name='apps', advanced=True) + self.add(menu_item) + + shortcut = frontpage.Shortcut( + 'shortcut-email', info.name, + short_description=info.short_description, icon=info.icon_filename, + description=info.description, + configure_url=reverse_lazy('email:index'), clients=info.clients, + login_required=True) + self.add(shortcut) + + shortcut = frontpage.Shortcut( + 'shortcut-email-aliases', _('My Email Aliases'), + short_description=_('Manage Aliases for Mailbox'), + icon=info.icon_filename, url=reverse_lazy('email:aliases'), + login_required=True) + self.add(shortcut) + + # Other likely install conflicts have been discarded: + # - msmtp, nullmailer, sendmail don't cause install faults. + # - qmail and smail are missing in Bullseye (Not tested, + # but less likely due to that). + packages = Packages( + 'packages-email', [ + 'postfix', 'postfix-sqlite', 'dovecot-pop3d', 'dovecot-imapd', + 'dovecot-lmtpd', 'dovecot-managesieved', 'dovecot-ldap', + 'rspamd', 'redis-server', 'openssl' + ], conflicts=['exim4-base', 'exim4-config', 'exim4-daemon-light'], + conflicts_action=Packages.ConflictsAction.IGNORE) + self.add(packages) + + listen_ports = [(25, 'tcp4'), (25, 'tcp6'), (465, 'tcp4'), + (465, 'tcp6'), (587, 'tcp4'), (587, 'tcp6')] + daemon = Daemon('daemon-email-postfix', 'postfix', + listen_ports=listen_ports) + self.add(daemon) + + listen_ports = [(143, 'tcp4'), (143, 'tcp6'), (993, 'tcp4'), + (993, 'tcp6'), (110, 'tcp4'), (110, 'tcp6'), + (995, 'tcp4'), (995, 'tcp6'), (4190, 'tcp4'), + (4190, 'tcp6')] + daemon = Daemon('daemon-email-dovecot', 'dovecot', + listen_ports=listen_ports) + self.add(daemon) + + listen_ports = [(11332, 'tcp4'), (11332, 'tcp6'), (11333, 'tcp4'), + (11333, 'tcp6'), (11334, 'tcp4'), (11334, 'tcp6')] + daemon = Daemon('daemon-email-rspamd', 'rspamd', + listen_ports=listen_ports) + self.add(daemon) + + daemon = Daemon('daemon-email-redis', 'redis-server', + listen_ports=[(6379, 'tcp4'), (6379, 'tcp6')]) + self.add(daemon) + + port_names = [ + 'smtp', 'smtps', 'smtp-submission', 'imaps', 'pop3s', 'managesieve' + ] + firewall = Firewall('firewall-email', info.name, ports=port_names, + is_external=True) + self.add(firewall) + + # /rspamd location + webserver = Webserver( + 'webserver-email', # unique id + 'email-freedombox', # config file name + urls=['https://{host}/rspamd']) + self.add(webserver) + + # Let's Encrypt event hook + letsencrypt = LetsEncrypt( + 'letsencrypt-email-postfix', domains='*', daemons=['postfix'], + should_copy_certificates=True, + private_key_path='/etc/postfix/letsencrypt/{domain}/chain.pem', + certificate_path='/etc/postfix/letsencrypt/{domain}/chain.pem', + user_owner='root', group_owner='root', managing_app='email') + self.add(letsencrypt) + + letsencrypt = LetsEncrypt( + 'letsencrypt-email-dovecot', domains='*', daemons=['dovecot'], + should_copy_certificates=True, + private_key_path='/etc/dovecot/letsencrypt/{domain}/privkey.pem', + certificate_path='/etc/dovecot/letsencrypt/{domain}/cert.pem', + user_owner='root', group_owner='root', managing_app='email') + self.add(letsencrypt) + + backup_restore = BackupRestore('backup-restore-email', + **manifest.backup) + self.add(backup_restore) + + @staticmethod + def post_init(): + """Perform post initialization operations.""" + domain_added.connect(on_domain_added) + domain_removed.connect(on_domain_removed) + + +def get_domains(): + """Return the list of domains configured.""" + default_domain = get_domainname() + return [default_domain] if default_domain else [] + + +def _get_first_admin(): + """Return an admin user in the system or None if non exist.""" + from django.contrib.auth.models import User + users = User.objects.filter(groups__name='admin') + return users[0].username if users else None + + +def setup(helper, old_version=None): + """Installs and configures module""" + + def _clear_conflicts(): + component = app.get_component('packages-email') + packages_to_remove = component.find_conflicts() + if packages_to_remove: + logger.info('Removing conflicting packages: %s', + packages_to_remove) + remove(packages_to_remove) + + # Install + helper.call('pre', _clear_conflicts) + app.setup(old_version) + + # Setup + helper.call('post', privileged.home.setup) + app.get_component('letsencrypt-email-postfix').setup_certificates() + app.get_component('letsencrypt-email-dovecot').setup_certificates() + helper.call('post', privileged.domain.set_domains) + helper.call('post', privileged.postfix.setup) + helper.call('post', aliases.setup_common_aliases, _get_first_admin()) + helper.call('post', privileged.spam.setup) + + # Restart daemons + actions.superuser_run('service', ['try-restart', 'postfix']) + actions.superuser_run('service', ['try-restart', 'dovecot']) + actions.superuser_run('service', ['try-restart', 'rspamd']) + + # Expose to public internet + if old_version == 0: + helper.call('post', app.enable) + + +def on_domain_added(sender, domain_type, name, description='', services=None, + **kwargs): + """Handle addition of a new domain.""" + if app.needs_setup(): + return + + privileged.domain.set_domains() + + +def on_domain_removed(sender, domain_type, name='', **kwargs): + """Handle removal of a domain.""" + if app.needs_setup(): + return + + privileged.domain.set_domains() diff --git a/plinth/modules/email_server/aliases.py b/plinth/modules/email/aliases.py similarity index 64% rename from plinth/modules/email_server/aliases.py rename to plinth/modules/email/aliases.py index e3c9515f2..5d5b3fec8 100644 --- a/plinth/modules/email_server/aliases.py +++ b/plinth/modules/email/aliases.py @@ -1,10 +1,12 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -"""Manage email aliases.""" +""" +Manage email aliases stored in sqlite database. +""" import contextlib import pwd import sqlite3 -from dataclasses import InitVar, dataclass, field +from dataclasses import dataclass from plinth import actions @@ -13,11 +15,6 @@ from plinth import actions class Alias: value: str name: str - enabled: bool = field(init=False) - status: InitVar[int] - - def __post_init__(self, status): - self.enabled = (status != 0) @contextlib.contextmanager @@ -36,7 +33,7 @@ def _get_cursor(): def get(username): """Get all aliases of a user.""" - query = 'SELECT name, value, status FROM alias WHERE value=?' + query = 'SELECT name, value FROM alias WHERE value=?' with _get_cursor() as cursor: rows = cursor.execute(query, (username, )) return [Alias(**row) for row in rows] @@ -58,10 +55,10 @@ def exists(name): def put(username, name): """Insert if not exists a new alias.""" - query = 'INSERT INTO alias (name, value, status) VALUES (?, ?, ?)' + query = 'INSERT INTO alias (name, value) VALUES (?, ?)' with _get_cursor() as cursor: try: - cursor.execute(query, (name, username, 1)) + cursor.execute(query, (name, username)) except sqlite3.IntegrityError: pass # Alias exists, rare since we are already checking @@ -76,29 +73,9 @@ def delete(username, aliases): cursor.execute('COMMIT') -def enable(username, aliases): - """Enable a list of aliases.""" - return _set_status(username, aliases, 1) - - -def disable(username, aliases): - """Disable a list of aliases.""" - return _set_status(username, aliases, 0) - - -def _set_status(username, aliases, status): - """Set the status value of a list of aliases.""" - query = 'UPDATE alias SET status=? WHERE value=? AND name=?' - parameter_seq = ((status, username, name) for name in aliases) - with _get_cursor() as cursor: - cursor.execute('BEGIN') - cursor.executemany(query, parameter_seq) - cursor.execute('COMMIT') - - def first_setup(): """Create the database file and schema inside it.""" - actions.superuser_run('email_server', ['aliases', 'setup']) + actions.superuser_run('email', ['aliases', 'setup']) # Create schema if not exists query = ''' @@ -106,10 +83,24 @@ BEGIN; CREATE TABLE IF NOT EXISTS alias ( name TEXT NOT NULL, value TEXT NOT NULL, - status INTEGER NOT NULL, PRIMARY KEY (name) ); COMMIT; ''' with _get_cursor() as cursor: cursor.executescript(query) + + +def setup_common_aliases(username): + """Create aliases for common mailboxes described in RFC2142. + + See: https://datatracker.ietf.org/doc/html/rfc2142 + """ + aliases = [ + 'mailer-daemon', 'postmaster', 'nobody', 'webmaster', 'www', + 'hostmaster', 'info', 'support', 'abuse', 'noc', 'security' + 'usenet', 'news', 'ftp' + ] + for alias in aliases: + if not exists(alias): + put(username, alias) diff --git a/plinth/modules/email/data/etc/apache2/conf-available/email-freedombox.conf b/plinth/modules/email/data/etc/apache2/conf-available/email-freedombox.conf new file mode 100644 index 000000000..9f99790de --- /dev/null +++ b/plinth/modules/email/data/etc/apache2/conf-available/email-freedombox.conf @@ -0,0 +1,30 @@ +# Serve rspamd web UI: +# https://www.rspamd.com/doc/faq.html#how-to-use-the-webui-behind-a-proxy-server + + Redirect "/rspamd/" + + + + ProxyPass http://127.0.0.1:11334/ + ProxyPassReverse http://127.0.0.1:11334/ + + # Don't add X-Forwarded* headers to make rspamd think that request is coming + # from localhost. This disables rspamd's password auth mechanism in favor of + # FreedomBox authentication and authorization below. + ProxyAddHeaders off + + # Require SSO + Include includes/freedombox-single-sign-on.conf + + TKTAuthToken "admin" + + + +# Automatic configuration for clients like Thunderbird: +# https://wiki.mozilla.org/Thunderbird:Autoconfiguration#Implementation + + + RewriteEngine On + RewriteRule ^ /plinth/apps/email/config.xml [PT] + + diff --git a/plinth/modules/email/data/etc/dovecot/conf.d/05-freedombox-passdb.conf b/plinth/modules/email/data/etc/dovecot/conf.d/05-freedombox-passdb.conf new file mode 100644 index 000000000..efc226d78 --- /dev/null +++ b/plinth/modules/email/data/etc/dovecot/conf.d/05-freedombox-passdb.conf @@ -0,0 +1,15 @@ +# Do not edit this file. Manage your settings on FreedomBox. + +# See: +# https://doc.dovecot.org/configuration_manual/authentication/password_databases_passdb/ +# +# For passdb, the passwd driver looks up using NSS. In FreedomBox, NSS is +# configured to lookup LDAP with the help of libnss-ldapd. Lookup using passdb +# would have been sufficient if FreedomBox allowed all its users to login using +# pam. However, by default, FreedomBox disallows all users but 'admin' group to +# login. Hence, the need for LDAP lookup. +# +passdb { + driver = ldap + args = /etc/dovecot/conf.d/freedombox-ldap.conf.ext +} diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-mail.conf b/plinth/modules/email/data/etc/dovecot/conf.d/05-freedombox-userdb.conf similarity index 62% rename from plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-mail.conf rename to plinth/modules/email/data/etc/dovecot/conf.d/05-freedombox-userdb.conf index e3c908d64..4932085ab 100644 --- a/plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-mail.conf +++ b/plinth/modules/email/data/etc/dovecot/conf.d/05-freedombox-userdb.conf @@ -1,6 +1,8 @@ -# Direct edits to this file will be lost! -# Manage your settings on Plinth +# Do not edit this file. Manage your settings on FreedomBox. +# See: +# https://doc.dovecot.org/configuration_manual/authentication/user_databases_userdb/ +# # Users in FreedomBox are not expected to access mail by logging into the # system. Storing the mail in single location instead of home directories and # with single UID/GID simplifies security reasoning and backup/restore @@ -11,15 +13,16 @@ # FreedomBox. So, authenticate and store mails based on username only instead of # including domain names in storage path. # -# For authdb and userdb, the passwd driver looks up using NSS. In FreedomBox, -# NSS is configured to lookup LDAP with the help of libnss-ldapd. There is no -# need to configure LDAP lookup separately. -# # Directories are created under /var/mail as necessary by dovecot. Permissions # for newly created directories are inherited from parent directory. FreedomBox # will remove all permissions for 'others' from /var/mail to ensure that mail is # not read by non-root users. +# +# userdb provides lookup for three parameters after authentication of a user. +# These parameters are uid, gid, and home directory of the user. If these do not +# change from user to user, a 'static' database type with fixed values is +# sufficient as userdb. userdb { - driver = passwd - override_fields = home=/var/mail/%Ln uid=mail gid=mail + driver = static + args = home=/var/mail/%Ln uid=mail gid=mail } diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-auth.conf b/plinth/modules/email/data/etc/dovecot/conf.d/15-freedombox-auth.conf similarity index 65% rename from plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-auth.conf rename to plinth/modules/email/data/etc/dovecot/conf.d/15-freedombox-auth.conf index a2d3eabcc..5371ccc24 100644 --- a/plinth/modules/email_server/data/etc/dovecot/conf.d/05-freedombox-auth.conf +++ b/plinth/modules/email/data/etc/dovecot/conf.d/15-freedombox-auth.conf @@ -1,5 +1,6 @@ -# Direct edits to this file will be lost! -# Manage your settings on Plinth +# Do not edit this file. Manage your settings on FreedomBox. + +# See: https://doc.dovecot.org/settings/core/ # Outlook and Windows Mail works only with LOGIN mechanism, not the standard # PLAIN: diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/15-freedombox-mail.conf b/plinth/modules/email/data/etc/dovecot/conf.d/15-freedombox-mail.conf similarity index 79% rename from plinth/modules/email_server/data/etc/dovecot/conf.d/15-freedombox-mail.conf rename to plinth/modules/email/data/etc/dovecot/conf.d/15-freedombox-mail.conf index 40bccbce2..26d619208 100644 --- a/plinth/modules/email_server/data/etc/dovecot/conf.d/15-freedombox-mail.conf +++ b/plinth/modules/email/data/etc/dovecot/conf.d/15-freedombox-mail.conf @@ -1,5 +1,7 @@ -# Direct edits to this file will be lost! -# Manage your settings on Plinth +# Do not edit this file. Manage your settings on FreedomBox. + +# See: https://doc.dovecot.org/configuration_manual/mail_location/ +# See: https://doc.dovecot.org/settings/core/ # Use sdbox, a format specific to dovecot, for storing mails. The format allows # better performance with some IMAP queries. When this is combined with Full diff --git a/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf new file mode 100644 index 000000000..7c06223c5 --- /dev/null +++ b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf @@ -0,0 +1,8 @@ +# Do not edit this file. Manage your settings on FreedomBox. + +# See: https://doc.dovecot.org/configuration_manual/sieve/configuration/ + +# Enable the sieve plugin to sort mail during delivery using sieve scripts. +protocol lmtp { + mail_plugins = $mail_plugins sieve +} diff --git a/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf new file mode 100644 index 000000000..df45817c2 --- /dev/null +++ b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf @@ -0,0 +1,71 @@ +# Do not edit this file. Manage your settings on FreedomBox. + +# Mark various mailboxes with special use flags (RFC 6154). Various names used +# in mail clients for mailboxes: https://www.imapwiki.org/SpecialUse +# See: https://doc.dovecot.org/configuration_manual/namespace/ + +namespace inbox { + # Archive + mailbox Archive { + auto = subscribe + special_use = \Archive + } + mailbox Archives { # Thunderbird + auto = no + special_use = \Archive + } + + # Drafts + mailbox Drafts { + auto = subscribe + special_use = \Drafts + } + + # Sent + mailbox Sent { + auto = subscribe + special_use = \Sent + } + mailbox "Sent Items" { # Outlook 2010/2013 + auto = no + special_use = \Sent + } + mailbox "Sent Messages" { # iOS + auto = no + special_use = \Sent + } + + # Junk + mailbox Junk { + auto = subscribe + autoexpunge = 60d + special_use = \Junk + } + mailbox Spam { # KMail, K-9 Mail + auto = no + autoexpunge = 60d + special_use = \Junk + } + mailbox "Junk E-mail" { # Outlook 2010 + auto = no + autoexpunge = 60d + special_use = \Junk + } + mailbox INBOX.Junk { + auto = no + autoexpunge = 60d + special_use = \Junk + } + + # Trash + mailbox Trash { + auto = subscribe + autoexpunge = 60d + special_use = \Trash + } + mailbox INBOX.Trash { + auto = no + autoexpunge = 60d + special_use = \Trash + } +} diff --git a/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-master.conf b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-master.conf new file mode 100644 index 000000000..51a5e2964 --- /dev/null +++ b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-master.conf @@ -0,0 +1,21 @@ +# Do not edit this file. Manage your settings on FreedomBox. + +# Listen on Unix domain sockets for postfix to use dovecot SASL authentication +# and for postfix to deliver mail using dovecot to local mailboxes. See: +# https://doc.dovecot.org/configuration_manual/howto/postfix_and_dovecot_sasl/ + +service auth { + unix_listener /var/spool/postfix/private/auth { + mode = 0600 + user = postfix + group = postfix + } +} + +service lmtp { + unix_listener /var/spool/postfix/private/dovecot-lmtp { + mode = 0600 + user = postfix + group = postfix + } +} diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-tls.conf b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-tls.conf similarity index 65% rename from plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-tls.conf rename to plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-tls.conf index 8734fe4a2..b61e9f6ae 100644 --- a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-tls.conf +++ b/plinth/modules/email/data/etc/dovecot/conf.d/90-freedombox-tls.conf @@ -1,9 +1,8 @@ -# Direct edits to this file will be lost! -# Manage your settings on FreedomBox +# Do not edit this file. Manage your settings on FreedomBox. -# Mozilla Guideline v5.6, Dovecot 2.3.9, OpenSSL 1.1.1d, intermediate -# Generated 2021-08 -# https://ssl-config.mozilla.org/ +# Mozilla Guideline v5.6, Dovecot 2.3.9, OpenSSL 1.1.1d, intermediate. +# Generated 2021-08: https://ssl-config.mozilla.org/ +# See: https://doc.dovecot.org/configuration_manual/dovecot_ssl_configuration/ ssl = required ssl_min_protocol = TLSv1.2 diff --git a/plinth/modules/email/data/etc/dovecot/conf.d/95-freedombox-sieve.conf b/plinth/modules/email/data/etc/dovecot/conf.d/95-freedombox-sieve.conf new file mode 100644 index 000000000..2b4ec8ccb --- /dev/null +++ b/plinth/modules/email/data/etc/dovecot/conf.d/95-freedombox-sieve.conf @@ -0,0 +1,9 @@ +# Do not edit this file. Manage your settings on FreedomBox. + +# Default sieve scripts applied for delivery to all users. To move mail to Junk +# folder based on classification headers set by rspamd. See: +# https://doc.dovecot.org/settings/pigeonhole/ + +plugin { + sieve_after = /etc/dovecot/freedombox-sieve-after +} diff --git a/plinth/modules/email/data/etc/dovecot/conf.d/freedombox-ldap.conf.ext b/plinth/modules/email/data/etc/dovecot/conf.d/freedombox-ldap.conf.ext new file mode 100644 index 000000000..708caf22a --- /dev/null +++ b/plinth/modules/email/data/etc/dovecot/conf.d/freedombox-ldap.conf.ext @@ -0,0 +1,8 @@ +# Do not edit this file. Manage your settings on FreedomBox. + +# See: https://wiki.dovecot.org/AuthDatabase/LDAP/AuthBinds + +uris = ldapi:/// +base = +auth_bind = yes +auth_bind_userdn = uid=%u,ou=users,dc=thisbox diff --git a/plinth/modules/email/data/etc/dovecot/freedombox-sieve-after/sort-spam.sieve b/plinth/modules/email/data/etc/dovecot/freedombox-sieve-after/sort-spam.sieve new file mode 100644 index 000000000..9600ba9b7 --- /dev/null +++ b/plinth/modules/email/data/etc/dovecot/freedombox-sieve-after/sort-spam.sieve @@ -0,0 +1,11 @@ +# Do not edit this file. Manage your settings on FreedomBox. + +# A simple sieve script that applies to all users. Moves mail to Junk folder +# based on classification header set by rspamd. +# See: https://docs.gandi.net/en/gandimail/sieve/sieve_tutorial.html + +require ["fileinto", "mailbox"]; + +if header :is "X-Spam" "Yes" { + fileinto :create "Junk"; +} diff --git a/plinth/modules/email/data/etc/plinth/modules-enabled/email b/plinth/modules/email/data/etc/plinth/modules-enabled/email new file mode 100644 index 000000000..c9c704d34 --- /dev/null +++ b/plinth/modules/email/data/etc/plinth/modules-enabled/email @@ -0,0 +1 @@ +plinth.modules.email diff --git a/plinth/modules/email/data/etc/postfix/freedombox-aliases.cf b/plinth/modules/email/data/etc/postfix/freedombox-aliases.cf new file mode 100644 index 000000000..3cd9c0166 --- /dev/null +++ b/plinth/modules/email/data/etc/postfix/freedombox-aliases.cf @@ -0,0 +1,7 @@ +# Do not edit this file. Manage your settings on FreedomBox. + +# Configuration for sqlite based postfix lookup table for aliases. See: +# https://www.postfix.org/SQLITE_README.html + +dbpath = /var/lib/postfix/freedombox-aliases/aliases.sqlite3 +query = SELECT value FROM alias WHERE name='%s' diff --git a/plinth/modules/email/data/etc/rspamd/local.d/freedombox-logging.inc b/plinth/modules/email/data/etc/rspamd/local.d/freedombox-logging.inc new file mode 100644 index 000000000..d342720b0 --- /dev/null +++ b/plinth/modules/email/data/etc/rspamd/local.d/freedombox-logging.inc @@ -0,0 +1 @@ +type=syslog diff --git a/plinth/modules/email/data/etc/rspamd/local.d/freedombox-milter-headers.conf b/plinth/modules/email/data/etc/rspamd/local.d/freedombox-milter-headers.conf new file mode 100644 index 000000000..f42f4ed37 --- /dev/null +++ b/plinth/modules/email/data/etc/rspamd/local.d/freedombox-milter-headers.conf @@ -0,0 +1,13 @@ +# Do not edit this file. Manage your settings on FreedomBox. + +# Configure which/how headers are added by rspamd before returning mail to +# postfix. See: https://rspamd.com/doc/modules/milter_headers.html + +use = ["authentication-results", "x-spam-level", "x-spam-status", + "x-spamd-bar", "x-spamd-result"]; + +routines { + authentication-results { + add_smtp_user = false; + } +} diff --git a/plinth/modules/email/data/etc/rspamd/local.d/freedombox-redis.conf b/plinth/modules/email/data/etc/rspamd/local.d/freedombox-redis.conf new file mode 100644 index 000000000..72200cd99 --- /dev/null +++ b/plinth/modules/email/data/etc/rspamd/local.d/freedombox-redis.conf @@ -0,0 +1,8 @@ +# Do not edit this file. Manage your settings on FreedomBox. + +# Many modules such as bayes classifier require redis. Default configuration +# does not connect to a local redis server. See: +# https://rspamd.com/doc/configuration/redis.html + +servers = "127.0.0.1"; +db = "7"; # Use database number 8 not to clash with other clients diff --git a/plinth/modules/email/dns.py b/plinth/modules/email/dns.py new file mode 100644 index 000000000..c6df85abe --- /dev/null +++ b/plinth/modules/email/dns.py @@ -0,0 +1,74 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +Manage DNS entries needed for an email server. + +See: https://en.wikipedia.org/wiki/MX_record +See: https://dmarcguide.globalcyberalliance.org/ +See: https://support.google.com/a/answer/2466580 +See: https://datatracker.ietf.org/doc/html/rfc6186 +See: https://rspamd.com/doc/modules/dkim_signing.html +""" + +from dataclasses import dataclass +from typing import Union + +from plinth.errors import ActionError + + +@dataclass +class Entry: # pylint: disable=too-many-instance-attributes + """A DNS entry.""" + type_: str + value: str + domain: Union[str, None] = None + class_: str = 'IN' + ttl: int = 60 + priority: int = 10 + weight: Union[int, None] = None + port: Union[int, None] = None + + def get_split_value(self): + """If the record is TXT and value > 255, split it.""" + if len(self.value) <= 255: + return self.value + + pieces = [] + value = self.value + while value: + pieces.append(f'"{value[:255]}"') + value = value[255:] + + return ' '.join(pieces) + + +def get_entries(): + """Return the list of DNS entries to make.""" + from . import privileged + + domain = privileged.domain.get_domains()['primary_domain'] + mx_spam_entries = [ + Entry(type_='MX', value=f'{domain}.'), + Entry(type_='TXT', value='v=spf1 mx a ~all'), + Entry( + domain='_dmarc', type_='TXT', + value='v=DMARC1; p=none; sp=quarantine; ' + f'rua=mailto:postmaster@{domain}; ') + ] + try: + dkim_public_key = privileged.dkim.get_public_key(domain) + dkim_entries = [ + Entry(domain='dkim._domainkey', type_='TXT', + value=f'v=DKIM1; k=rsa; p={dkim_public_key}') + ] + except ActionError: + dkim_entries = [] + + autoconfig_entries = [ + Entry(domain='_submission._tcp', type_='SRV', weight=10, port=587, + value=f'{domain}.'), + Entry(domain='_imaps._tcp', type_='SRV', weight=10, port=993, + value=f'{domain}.'), + Entry(domain='_pop3s._tcp', type_='SRV', priority=20, weight=10, + port=995, value=f'{domain}.'), + ] + return mx_spam_entries + dkim_entries + autoconfig_entries diff --git a/plinth/modules/email_server/forms.py b/plinth/modules/email/forms.py similarity index 64% rename from plinth/modules/email_server/forms.py rename to plinth/modules/email/forms.py index 265bfa5dd..89fc89df9 100644 --- a/plinth/modules/email_server/forms.py +++ b/plinth/modules/email/forms.py @@ -2,6 +2,7 @@ """ Forms for the email app. """ + import re from django import forms @@ -37,13 +38,14 @@ class AliasCreateForm(forms.Form): def clean_alias(self): """Return the checked value for alias.""" value = self.data['alias'].strip().lower() - if not re.match('^[a-z0-9-_\\.]+$', value): + if not re.match(r'^[a-z0-9-_\.]+$', value): raise ValidationError(_('Contains illegal characters')) - if not re.match('^[a-z0-9].*[a-z0-9]$', value): + if not re.match(r'^[a-z0-9].*[a-z0-9]$', value): raise ValidationError(_('Must start and end with a-z or 0-9')) - if re.match('^[0-9]+$', value): + # For when uids are automatically aliased to username + if re.match(r'^[0-9]+$', value): raise ValidationError(_('Cannot be a number')) if aliases_module.exists(value): @@ -60,26 +62,5 @@ class AliasListForm(forms.Form): def __init__(self, aliases, *args, **kwargs): """Populate the choices for aliases.""" super().__init__(*args, **kwargs) - enabled_aliases = [(alias.name, alias.name) for alias in aliases - if alias.enabled] - disabled_aliases = [(alias.name, alias.name) for alias in aliases - if not alias.enabled] - choices = [] - if enabled_aliases: - choices.append((_('Enabled'), enabled_aliases)) - - if disabled_aliases: - choices.append((_('Disabled'), disabled_aliases)) - + choices = [(alias.name, alias.name) for alias in aliases] self.fields['aliases'].choices = choices - - def clean(self): - """Add the pressed button to cleaned data.""" - cleaned_data = super().clean() - buttons = [key[4:] for key in self.data if key.startswith('btn_')] - if len(buttons) != 1 or buttons[0] not in ('enable', 'disable', - 'delete'): - raise ValidationError('Invalid button pressed') - - cleaned_data['action'] = buttons[0] - return cleaned_data diff --git a/plinth/modules/email_server/manifest.py b/plinth/modules/email/manifest.py similarity index 78% rename from plinth/modules/email_server/manifest.py rename to plinth/modules/email/manifest.py index 8eb919993..d46f8fbca 100644 --- a/plinth/modules/email_server/manifest.py +++ b/plinth/modules/email/manifest.py @@ -1,4 +1,8 @@ # SPDX-License-Identifier: AGPL-3.0-or-later +""" +Application manifest for email. +""" + from django.utils.translation import gettext_lazy as _ from plinth.clients import store_url @@ -17,15 +21,15 @@ clients = [ 'platforms': [{ 'type': 'download', 'os': 'gnu-linux', - 'url': 'https://www.thunderbird.net/en-US/' + 'url': 'https://www.thunderbird.net/' }, { 'type': 'download', 'os': 'macos', - 'url': 'https://www.thunderbird.net/en-US/' + 'url': 'https://www.thunderbird.net/' }, { 'type': 'download', 'os': 'windows', - 'url': 'https://www.thunderbird.net/en-US/' + 'url': 'https://www.thunderbird.net/' }] }, { @@ -62,13 +66,14 @@ clients = [ backup = { 'data': { + 'files': ['/etc/aliases', ], 'directories': [ - '/var/lib/plinth/mailsrv', - '/var/spool/postfix/fbx-managed', - '/etc/postfix', - '/etc/dovecot', - '/etc/rspamd', - '/var/lib/rspamd', + '/etc/postfix/', + '/etc/dovecot/conf.d/', + '/etc/rspamd/', + '/var/lib/postfix/freedombox-aliases/', + '/var/lib/rspamd/', + '/var/mail/', ] }, 'services': ['postfix', 'dovecot', 'rspamd'] diff --git a/plinth/modules/email/postfix.py b/plinth/modules/email/postfix.py new file mode 100644 index 000000000..a23c3153a --- /dev/null +++ b/plinth/modules/email/postfix.py @@ -0,0 +1,129 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +Set and get postfix configuration using postconf. + +See: http://www.postfix.org/postconf.1.html +See: http://www.postfix.org/master.5.html +See: http://www.postfix.org/postconf.5.html +""" + +import re +import subprocess +from dataclasses import dataclass + + +@dataclass +class Service: # NOQA, pylint: disable=too-many-instance-attributes + """Representation of a postfix daemon and its options.""" + service: str + type_: str + private: str + unpriv: str + chroot: str + wakeup: str + maxproc: str + command: str + options: str + + def __str__(self) -> str: + parts = [ + self.service, self.type_, self.private, self.unpriv, self.chroot, + self.wakeup, self.maxproc, self.command + ] + for key, value in self.options.items(): + _validate_key(key) + _validate_value(value) + parts.extend(['-o', f'{key}={value}']) + + return ' '.join(parts) + + +def get_config(keys: list) -> dict: + """Get postfix configuration using the postconf command.""" + for key in keys: + _validate_key(key) + + args = ['/sbin/postconf'] + for key in keys: + args.append(key) + + output = _run(args) + result = {} + for line in filter(None, output.split('\n')): + key, sep, value = line.partition('=') + if not sep: + raise ValueError('Invalid output detected') + + result[key.strip()] = value.strip() + + if set(keys) != set(result.keys()): + raise ValueError('Some keys were missing from the output') + + return result + + +def set_config(config: dict, flag=None): + """Set postfix configuration using the postconf command.""" + if not config: + return + + for key, value in config.items(): + _validate_key(key) + _validate_value(value) + + args = ['/sbin/postconf'] + if flag: + args.append(flag) + + for key, value in config.items(): + args.append('{}={}'.format(key, value)) + + _run(args) + + +def set_master_config(service: Service): + """Set daemons and their options in postfix master.cf.""" + service_key = service.service + '/' + service.type_ + set_config({service_key: str(service)}, '-M') + + +def parse_maps(raw_value): + """Parse postfix configuration values that are maps.""" + if '{' in raw_value or '}' in raw_value: + raise ValueError('Unsupported map list format') + + value_list = [] + for segment in raw_value.split(','): + for sub_segment in segment.strip().split(' '): + sub_segment = sub_segment.strip() + if sub_segment: + value_list.append(sub_segment) + + return value_list + + +def _run(args): + """Run process. Capture and return standard output as a string. + + Raise a RuntimeError on non-zero exit codes. + """ + try: + result = subprocess.run(args, check=True, capture_output=True) + return result.stdout.decode() + except subprocess.SubprocessError as subprocess_error: + raise RuntimeError('Subprocess failed') from subprocess_error + except UnicodeDecodeError as unicode_error: + raise RuntimeError('Unicode decoding failed') from unicode_error + + +def _validate_key(key): + """Validate postconf key format or raise ValueError.""" + if not re.match(r'^[a-zA-Z][a-zA-Z0-9_/]*$', key): + raise ValueError('Invalid postconf key format') + + +def _validate_value(value): + """Validate postconf value format or raise ValueError.""" + for char in value: + if ord(char) < 32: + raise ValueError('Value contains control characters') diff --git a/plinth/modules/email/privileged/__init__.py b/plinth/modules/email/privileged/__init__.py new file mode 100644 index 000000000..8591aa98c --- /dev/null +++ b/plinth/modules/email/privileged/__init__.py @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +Provides privileged actions that run as root. +""" + +from . import aliases, dkim, domain, home, postfix, spam, tls + +__all__ = ['aliases', 'domain', 'dkim', 'home', 'postfix', 'spam', 'tls'] diff --git a/plinth/modules/email_server/audit/aliases.py b/plinth/modules/email/privileged/aliases.py similarity index 86% rename from plinth/modules/email_server/audit/aliases.py rename to plinth/modules/email/privileged/aliases.py index 6edba5865..78e4ea62b 100644 --- a/plinth/modules/email_server/audit/aliases.py +++ b/plinth/modules/email/privileged/aliases.py @@ -1,5 +1,7 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -"""Privileged operations for managing aliases.""" +""" +Privileged operations for managing aliases. +""" import pathlib import shutil diff --git a/plinth/modules/email/privileged/dkim.py b/plinth/modules/email/privileged/dkim.py new file mode 100644 index 000000000..95a413e8e --- /dev/null +++ b/plinth/modules/email/privileged/dkim.py @@ -0,0 +1,64 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +Generate DKIM keys for signing outgoing messages. + +See: https://rspamd.com/doc/modules/dkim_signing.html +""" + +import pathlib +import re +import shutil +import subprocess + +from plinth import actions + +_keys_dir = pathlib.Path('/var/lib/rspamd/dkim/') + +DOMAIN_PART_REGEX = r'^[a-zA-Z0-9]([-a-zA-Z0-9]{,61}[a-zA-Z0-9])?$' + + +def _validate_domain_name(domain): + for part in domain.split('.'): + if not re.match(DOMAIN_PART_REGEX, part): + raise ValueError('Invalid domain name') + + +def get_public_key(domain): + """Return the DKIM public key for the given domain.""" + output = actions.superuser_run('email', + ['dkim', 'get_dkim_public_key', domain]) + return output.strip() + + +def action_get_dkim_public_key(domain): + """Privileged action to get the public key from DKIM key.""" + _validate_domain_name(domain) + key_file = _keys_dir / f'{domain}.dkim.key' + output = subprocess.check_output( + ['openssl', 'rsa', '-in', + str(key_file), '-pubout'], stderr=subprocess.DEVNULL) + print(''.join(output.decode().splitlines()[1:-1])) + + +def action_setup_dkim(domain): + """Create DKIM key for a given domain.""" + _validate_domain_name(domain) + + _keys_dir.mkdir(exist_ok=True) + _keys_dir.chmod(0o500) + shutil.chown(_keys_dir, '_rspamd', '_rspamd') + + # Default path is /var/lib/dkim/$domain.$selector.key. Default selector is + # "dkim". Use these to simplify key management until we have a need to + # implement creating new or multiple keys. + key_file = _keys_dir / f'{domain}.dkim.key' + if key_file.exists(): + return + + # Ed25519 is widely *not* accepted as of 2022-01. See: + # https://serverfault.com/questions/1023674 + subprocess.run([ + 'rspamadm', 'dkim_keygen', '-t', 'rsa', '-b', '2048', '-s', 'dkim', + '-d', domain, '-k', (str(key_file)) + ], check=True) + key_file.chmod(0o400) diff --git a/plinth/modules/email_server/audit/domain.py b/plinth/modules/email/privileged/domain.py similarity index 63% rename from plinth/modules/email_server/audit/domain.py rename to plinth/modules/email/privileged/domain.py index 5e8d341f7..c7e03bfa3 100644 --- a/plinth/modules/email_server/audit/domain.py +++ b/plinth/modules/email/privileged/domain.py @@ -1,13 +1,19 @@ -"""Configure email domains""" # SPDX-License-Identifier: AGPL-3.0-or-later +""" +Configure domains accepted by postfix. + +See: http://www.postfix.org/postconf.5.html#mydestination +See: http://www.postfix.org/postconf.5.html#mydomain +See: http://www.postfix.org/postconf.5.html#myhostname +""" import pathlib import re -import subprocess from plinth.actions import superuser_run +from plinth.app import App from plinth.modules import config -from plinth.modules.email_server import postconf +from plinth.modules.email import postfix from plinth.modules.names.components import DomainName from . import tls @@ -15,28 +21,35 @@ from . import tls def get_domains(): """Return the current domain configuration.""" - conf = postconf.get_many(['mydomain', 'mydestination']) - domains = set(postconf.parse_maps(conf['mydestination'])) + conf = postfix.get_config(['mydomain', 'mydestination']) + domains = set(postfix.parse_maps(conf['mydestination'])) defaults = {'$myhostname', 'localhost.$mydomain', 'localhost'} domains.difference_update(defaults) return {'primary_domain': conf['mydomain'], 'all_domains': domains} def set_domains(primary_domain=None): - """Set the primary domain and all the domains for postfix. """ + """Set the primary domain and all the domains for postfix.""" all_domains = DomainName.list_names() if not primary_domain: primary_domain = get_domains()['primary_domain'] if primary_domain not in all_domains: primary_domain = config.get_domainname() or list(all_domains)[0] + # Update configuration and don't restart daemons superuser_run( - 'email_server', + 'email', ['domain', 'set_domains', primary_domain, ','.join(all_domains)]) + superuser_run('email', ['dkim', 'setup_dkim', primary_domain]) + + # Copy certificates (self-signed if needed) and restart daemons + app = App.get('email') + app.get_component('letsencrypt-email-postfix').setup_certificates() + app.get_component('letsencrypt-email-dovecot').setup_certificates() def action_set_domains(primary_domain, all_domains): - """Set the primary domain and all the domains for postfix. """ + """Set the primary domain and all the domains for postfix.""" all_domains = [_clean_domain(domain) for domain in all_domains.split(',')] primary_domain = _clean_domain(primary_domain) @@ -47,14 +60,10 @@ def action_set_domains(primary_domain, all_domains): 'mydomain': primary_domain, 'mydestination': my_destination } - postconf.set_many(conf) + postfix.set_config(conf) pathlib.Path('/etc/mailname').write_text(primary_domain + '\n') tls.set_postfix_config(primary_domain, all_domains) tls.set_dovecot_config(primary_domain, all_domains) - subprocess.run(['systemctl', 'try-reload-or-restart', 'postfix'], - check=True) - subprocess.run(['systemctl', 'try-reload-or-restart', 'dovecot'], - check=True) def _clean_domain(domain): diff --git a/plinth/modules/email_server/audit/home.py b/plinth/modules/email/privileged/home.py similarity index 67% rename from plinth/modules/email_server/audit/home.py rename to plinth/modules/email/privileged/home.py index dae22f6fc..37d9ff2b4 100644 --- a/plinth/modules/email_server/audit/home.py +++ b/plinth/modules/email/privileged/home.py @@ -1,12 +1,17 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -"""Privileged actions to setup users' dovecot mail home directory.""" +""" +Privileged actions to setup users' dovecot mail home directory. + +See: +https://doc.dovecot.org/configuration_manual/authentication/user_databases_userdb/ +""" import subprocess from plinth import actions -def repair(): +def setup(): """Set correct permissions on /var/mail/ directory. For each user, /var/mail/ is the 'dovecot mail home' for that user. @@ -14,9 +19,9 @@ def repair(): directory. Ensure that 'others' can access /var/mail/. """ - actions.superuser_run('email_server', ['home', 'set_up']) + actions.superuser_run('email', ['home', 'setup']) -def action_set_up(): +def action_setup(): """Run chmod on /var/mail to remove all permissions for 'others'.""" subprocess.run(['chmod', 'o-rwx', '/var/mail'], check=True) diff --git a/plinth/modules/email/privileged/postfix.py b/plinth/modules/email/privileged/postfix.py new file mode 100644 index 000000000..9b42d6a50 --- /dev/null +++ b/plinth/modules/email/privileged/postfix.py @@ -0,0 +1,88 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +Configure postfix to use auth and local delivery with dovecot. Start smtps and +submission services. Setup aliases database. + +See: +https://doc.dovecot.org/configuration_manual/howto/postfix_and_dovecot_sasl/ +See: https://doc.dovecot.org/configuration_manual/howto/postfix_dovecot_lmtp/ +See: http://www.postfix.org/TLS_README.html +""" + +from plinth import actions + +from .. import aliases +from .. import postfix as postconf + +default_config = { + 'smtpd_sasl_auth_enable': + 'yes', + 'smtpd_sasl_type': + 'dovecot', + 'smtpd_sasl_path': + 'private/auth', + 'mailbox_transport': + 'lmtp:unix:private/dovecot-lmtp', + 'virtual_transport': + 'lmtp:unix:private/dovecot-lmtp', + 'smtpd_relay_restrictions': + ','.join([ + 'permit_sasl_authenticated', + 'defer_unauth_destination', + ]) +} + +submission_options = { + 'syslog_name': 'postfix/submission', + 'smtpd_tls_security_level': 'encrypt', + 'smtpd_client_restrictions': 'permit_sasl_authenticated,reject', + 'smtpd_relay_restrictions': 'permit_sasl_authenticated,reject' +} +submission_service = postconf.Service(service='submission', type_='inet', + private='n', unpriv='-', chroot='y', + wakeup='-', maxproc='-', command='smtpd', + options=submission_options) + +smtps_options = { + 'syslog_name': 'postfix/smtps', + 'smtpd_tls_wrappermode': 'yes', + 'smtpd_sasl_auth_enable': 'yes', + 'smtpd_relay_restrictions': 'permit_sasl_authenticated,reject' +} +smtps_service = postconf.Service(service='smtps', type_='inet', private='n', + unpriv='-', chroot='y', wakeup='-', + maxproc='-', command='smtpd', + options=smtps_options) + +SQLITE_ALIASES = 'sqlite:/etc/postfix/freedombox-aliases.cf' + + +def setup(): + """Set SASL, mail submission, and user lookup settings.""" + aliases.first_setup() + actions.superuser_run('email', ['postfix', 'setup']) + + +def action_setup(): + postconf.set_config(default_config) + _setup_submission() + _setup_alias_maps() + + +def _setup_submission(): + """Update configuration for smtps and smtp-submission.""" + postconf.set_master_config(submission_service) + postconf.set_master_config(smtps_service) + + +def _setup_alias_maps(): + """Setup alias maps to include an sqlite DB.""" + alias_maps = postconf.get_config(['alias_maps'])['alias_maps'] + alias_maps = alias_maps.replace(',', ' ').split(' ') + if SQLITE_ALIASES not in alias_maps: + # Prioritize FreedomBox's sqlite based aliases file over /etc/aliases. + # Otherwise, the common aliases will be pointing to 'root' instead of + # first admin user (which is more practical in FreedomBox). + alias_maps = [SQLITE_ALIASES] + alias_maps + + postconf.set_config({'alias_maps': ' '.join(alias_maps)}) diff --git a/plinth/modules/email/privileged/spam.py b/plinth/modules/email/privileged/spam.py new file mode 100644 index 000000000..a2f8bbc8d --- /dev/null +++ b/plinth/modules/email/privileged/spam.py @@ -0,0 +1,63 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +Configures rspamd to handle incoming and outgoing spam. + +See: http://www.postfix.org/MILTER_README.html +See: https://rspamd.com/doc/configuration/ucl.html +""" + +import pathlib +import re +import subprocess + +from plinth import actions +from plinth.modules.email import postfix + +_milter_config = { + 'smtpd_milters': 'inet:127.0.0.1:11332', + 'non_smtpd_milters': 'inet:127.0.0.1:11332', +} + + +def setup(): + """Trigger a privileged setup action.""" + actions.superuser_run('email', ['spam', 'setup']) + + +def action_setup(): + """Compile sieve filters and set rspamd/postfix configuration.""" + _compile_sieve() + _setup_rspamd() + postfix.set_config(_milter_config) + + +def _compile_sieve(): + """Compile all .sieve script to binary format for performance.""" + sieve_dir = '/etc/dovecot/freedombox-sieve-after/' + subprocess.run(['sievec', sieve_dir], check=True) + + +def _setup_rspamd(): + """Adjust configuration to include FreedomBox configuration files.""" + configs = [('milter_headers.conf', 'freedombox-milter-headers.conf'), + ('redis.conf', 'freedombox-redis.conf'), + ('logging.inc', 'freedombox-logging.inc')] + base_path = pathlib.Path('/etc/rspamd/local.d') + for orig_path, include_path in configs: + _setup_local_include(base_path / orig_path, base_path / include_path) + + +def _setup_local_include(orig_path, include_path): + """Adjust configuration to include a FreedomBox configuration file.""" + lines = [] + if orig_path.exists(): + lines = orig_path.read_text().splitlines() + + file_name = include_path.name + for line in lines: + if re.match(rf'\s*.include\(.*\)\s+".*/{file_name}"', line): + return + + lines.append('.include(priority=2,duplicate=merge) ' + f'"$LOCAL_CONFDIR/local.d/{file_name}"\n') + orig_path.write_text('\n'.join(lines)) diff --git a/plinth/modules/email_server/audit/tls.py b/plinth/modules/email/privileged/tls.py similarity index 77% rename from plinth/modules/email_server/audit/tls.py rename to plinth/modules/email/privileged/tls.py index 93e891d03..6aeac6c07 100644 --- a/plinth/modules/email_server/audit/tls.py +++ b/plinth/modules/email/privileged/tls.py @@ -1,7 +1,15 @@ -"""TLS configuration for postfix and dovecot.""" # SPDX-License-Identifier: AGPL-3.0-or-later +""" +TLS certificate configuration for postfix and dovecot. -from plinth.modules.email_server import interproc, postconf +See: https://ssl-config.mozilla.org/ +See: http://www.postfix.org/TLS_README.html +See: https://doc.dovecot.org/configuration_manual/dovecot_ssl_configuration/ +""" + +import pathlib + +from .. import postfix # Mozilla Guideline v5.6, Postfix 1.17.7, OpenSSL 1.1.1d, intermediate # Generated 2021-08 @@ -41,21 +49,21 @@ _postfix_config = { def set_postfix_config(primary_domain, all_domains): """Set postfix configuration for TLS certificates.""" - tls_sni_map = '/etc/postfix/freedombox-tls-sni.map' + items = [] + for domain in all_domains: + items.append(f'{domain}=/etc/postfix/letsencrypt/{domain}/chain.pem') + + domain_map = ','.join(items) config = dict(_postfix_config) config.update({ 'tls_server_sni_maps': - tls_sni_map, + f'inline:{{{domain_map}}}', 'smtpd_tls_chain_files': - f'/etc/postfix/letsencrypt/{primary_domain}/chain.pem' + f'/etc/postfix/letsencrypt/{primary_domain}/chain.pem', + 'smtpd_tls_cert_file': + '' }) - postconf.set_many_unsafe(config) - content = '# This file is managed by FreedomBox\n' - for domain in all_domains: - content += f'{domain} /etc/postfix/letsencrypt/{domain}/chain.pem\n' - - with interproc.atomically_rewrite(tls_sni_map) as file_handle: - file_handle.write(content) + postfix.set_config(config) def set_dovecot_config(primary_domain, all_domains): @@ -71,6 +79,5 @@ local_name {domain} {{ ssl_key = - - diff --git a/plinth/modules/email/templates/email-autoconfig.xml b/plinth/modules/email/templates/email-autoconfig.xml new file mode 100644 index 000000000..a04da80eb --- /dev/null +++ b/plinth/modules/email/templates/email-autoconfig.xml @@ -0,0 +1,45 @@ + +{% comment %} +# SPDX-License-Identifier: AGPL-3.0-or-later +{% endcomment %} + +{% load i18n %} + + + + {{ host }} + {% trans "FreedomBox Email" %} + {{ box_name }} + + {{ host }} + 993 + SSL + %EMAILLOCALPART% + password-cleartext + + + {{ host }} + 995 + SSL + %EMAILLOCALPART% + password-cleartext + + + {{ host }} + 465 + SSL + %EMAILLOCALPART% + password-cleartext + + + {{ host }} + 587 + SSL + %EMAILLOCALPART% + password-cleartext + + + FreedomBox Manual + + + diff --git a/plinth/modules/email/templates/email.html b/plinth/modules/email/templates/email.html new file mode 100644 index 000000000..9af501d41 --- /dev/null +++ b/plinth/modules/email/templates/email.html @@ -0,0 +1,61 @@ +{% extends "app.html" %} +{% comment %} +# SPDX-License-Identifier: AGPL-3.0-or-later +{% endcomment %} + +{% load i18n %} + +{% block subsubmenu %} + + {% trans "Manage Spam" %} + + + + {% trans "Manage Aliases" %} + +{% endblock %} + +{% block extra_content %} + {{ block.super }} + +

{% trans "DNS Records" %}

+ +

+ {% blocktrans trimmed %} + The following DNS records must be added manually on your primary domain + for the mail server to work properly. + {% endblocktrans %} +

+ +
+ + + + + + + + + + + + + + + {% for dns_entry in dns_entries %} + + + + + + + + + + + {% endfor %} + +
{% trans "Domain" %}{% trans "TTL" %}{% trans "Class" %}{% trans "Type" %}{% trans "Priority" %}{% trans "Weight" %}{% trans "Port" %}{% trans "Host/Target/Value" %}
{{ dns_entry.domain|default_if_none:"" }}{{ dns_entry.ttl }}{{ dns_entry.class_ }}{{ dns_entry.type_ }}{{ dns_entry.priority }}{{ dns_entry.weight|default_if_none:"" }}{{ dns_entry.port|default_if_none:"" }}{{ dns_entry.get_split_value }}
+
+{% endblock %} diff --git a/plinth/modules/email_server/tests/__init__.py b/plinth/modules/email/tests/__init__.py similarity index 100% rename from plinth/modules/email_server/tests/__init__.py rename to plinth/modules/email/tests/__init__.py diff --git a/plinth/modules/email/tests/test_functional.py b/plinth/modules/email/tests/test_functional.py new file mode 100644 index 000000000..c334b9ed4 --- /dev/null +++ b/plinth/modules/email/tests/test_functional.py @@ -0,0 +1,27 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +Functional, browser based tests for email app. +""" + +import pytest + +from plinth.tests import functional + +pytestmark = [pytest.mark.apps, pytest.mark.email] + + +class TestEmailApp(functional.BaseAppTests): + app_name = 'email' + has_service = True + has_web = False + check_diagnostics = True + + @pytest.fixture(autouse=True) + def fixture_background(self, session_browser): + functional.login(session_browser) + functional.set_advanced_mode(session_browser, True) + functional.install(session_browser, self.app_name) + functional.app_enable(session_browser, self.app_name) + yield + functional.login(session_browser) + functional.app_disable(session_browser, self.app_name) diff --git a/plinth/modules/email/urls.py b/plinth/modules/email/urls.py new file mode 100644 index 000000000..e1e919b98 --- /dev/null +++ b/plinth/modules/email/urls.py @@ -0,0 +1,18 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +""" +URLs for the email module. +""" + +from django.urls import path +from stronghold.decorators import public + +from plinth.utils import non_admin_view + +from . import views + +urlpatterns = [ + path('apps/email/', views.EmailAppView.as_view(), name='index'), + path('apps/email/aliases/', non_admin_view(views.AliasView.as_view()), + name='aliases'), + path('apps/email/config.xml', public(views.XmlView.as_view())), +] diff --git a/plinth/modules/email_server/views.py b/plinth/modules/email/views.py similarity index 81% rename from plinth/modules/email_server/views.py rename to plinth/modules/email/views.py index 6a34d89a5..70d8b4dd2 100644 --- a/plinth/modules/email_server/views.py +++ b/plinth/modules/email/views.py @@ -9,22 +9,29 @@ from django.utils.translation import gettext_lazy as _ from django.views.generic.base import TemplateView from django.views.generic.edit import FormView +from plinth.modules.email import dns from plinth.views import AppView from . import aliases as aliases_module -from . import audit, forms +from . import forms, privileged -class EmailServerView(AppView): - """Server configuration page""" - app_id = 'email_server' +class EmailAppView(AppView): + """Server configuration page.""" + app_id = 'email' form_class = forms.DomainForm - template_name = 'email_server.html' + template_name = 'email.html' + + def get_context_data(self, **kwargs): + """Add additional context data for rendering the template.""" + context = super().get_context_data(**kwargs) + context['dns_entries'] = dns.get_entries() + return context def get_initial(self): """Return the initial values to populate in the form.""" initial = super().get_initial() - domains = audit.domain.get_domains() + domains = privileged.domain.get_domains() initial['primary_domain'] = domains['primary_domain'] return initial @@ -34,7 +41,7 @@ class EmailServerView(AppView): new_data = form.cleaned_data if old_data['primary_domain'] != new_data['primary_domain']: try: - audit.domain.set_domains(new_data['primary_domain']) + privileged.domain.set_domains(new_data['primary_domain']) messages.success(self.request, _('Configuration updated')) except Exception: messages.error(self.request, @@ -52,9 +59,9 @@ class AliasView(FormView): posted is detected using hidden form values and the appropriate form is initialized for the FormView base class to work with. """ - template_name = 'email_alias.html' + template_name = 'email-aliases.html' form_classes = (forms.AliasCreateForm, forms.AliasListForm) - success_url = reverse_lazy('email_server:aliases') + success_url = reverse_lazy('email:aliases') def __init__(self, *args, **kwargs): """Initialize the view.""" @@ -109,14 +116,8 @@ class AliasView(FormView): def _list_form_valid(self, form): """Handle a valid alias list form operation.""" aliases = form.cleaned_data['aliases'] - action = form.cleaned_data['action'] username = self.request.user.username - if action == 'delete': - aliases_module.delete(username, aliases) - elif action == 'disable': - aliases_module.disable(username, aliases) - elif action == 'enable': - aliases_module.enable(username, aliases) + aliases_module.delete(username, aliases) def _create_form_valid(self, form): """Handle a valid create alias form operation.""" @@ -125,13 +126,15 @@ class AliasView(FormView): class XmlView(TemplateView): - template_name = 'email_autoconfig.xml' + """Serve Thunderbird auto-configuration file. + + https://wiki.mozilla.org/Thunderbird:Autoconfiguration:ConfigFileFormat + """ + template_name = 'email-autoconfig.xml' def render_to_response(self, *args, **kwargs): kwargs['content_type'] = 'text/xml; charset=utf-8' - response = super().render_to_response(*args, **kwargs) - response['X-Robots-Tag'] = 'noindex, nofollow, noarchive' - return response + return super().render_to_response(*args, **kwargs) def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) diff --git a/plinth/modules/email_server/__init__.py b/plinth/modules/email_server/__init__.py deleted file mode 100644 index 7b4065c41..000000000 --- a/plinth/modules/email_server/__init__.py +++ /dev/null @@ -1,205 +0,0 @@ -"""FreedomBox email server app""" -# SPDX-License-Identifier: AGPL-3.0-or-later - -import logging - -from django.utils.translation import gettext_lazy as _ - -import plinth.app -import plinth.daemon -import plinth.frontpage -import plinth.menu -from plinth import actions -from plinth.modules.apache.components import Webserver -from plinth.modules.config import get_domainname -from plinth.modules.firewall.components import Firewall -from plinth.modules.letsencrypt.components import LetsEncrypt -from plinth.package import Packages, remove -from plinth.signals import domain_added, domain_removed - -from . import audit, manifest - -clamav_packages = ['clamav', 'clamav-daemon'] -clamav_daemons = ['clamav-daemon', 'clamav-freshclam'] - -port_info = { - 'postfix': ('smtp', 25, 'smtps', 465, 'smtp-submission', 587), - 'dovecot': ('imaps', 993, 'pop3s', 995), -} - -_description = [ - _('Roundcube app provides web ' - 'interface for users to access email.'), - _('During installation, any other email servers in the system will be ' - 'uninstalled.') -] - -app = None -logger = logging.getLogger(__name__) - - -class EmailServerApp(plinth.app.App): - """FreedomBox email server app""" - app_id = 'email_server' - app_name = _('Email Server') - - _version = 1 - - def __init__(self): - """The app's constructor""" - super().__init__() - self._add_ui_components() - - # Other likely install conflicts have been discarded: - # - msmtp, nullmailer, sendmail don't cause install faults. - # - qmail and smail are missing in Bullseye (Not tested, - # but less likely due to that). - packages = Packages( - 'packages-email-server', [ - 'postfix', 'postfix-ldap', 'postfix-sqlite', 'dovecot-pop3d', - 'dovecot-imapd', 'dovecot-ldap', 'dovecot-lmtpd', - 'dovecot-managesieved' - ], conflicts=['exim4-base', 'exim4-config', 'exim4-daemon-light'], - conflicts_action=Packages.ConflictsAction.IGNORE) - self.add(packages) - - packages = Packages('packages-email-server-skip-rec', ['rspamd'], - skip_recommends=True) - self.add(packages) - - self._add_daemons() - self._add_firewall_ports() - - # /rspamd location - webserver = Webserver( - 'webserver-email', # unique id - 'email-server-freedombox', # config file name - urls=['https://{host}/rspamd']) - self.add(webserver) - - # Let's Encrypt event hook - letsencrypt = LetsEncrypt( - 'letsencrypt-email-server-postfix', domains='*', - daemons=['postfix'], should_copy_certificates=True, - private_key_path='/etc/postfix/letsencrypt/{domain}/chain.pem', - certificate_path='/etc/postfix/letsencrypt/{domain}/chain.pem', - user_owner='root', group_owner='root', managing_app='email_server') - self.add(letsencrypt) - - letsencrypt = LetsEncrypt( - 'letsencrypt-email-server-dovecot', domains='*', - daemons=['dovecot'], should_copy_certificates=True, - private_key_path='/etc/dovecot/letsencrypt/{domain}/privkey.pem', - certificate_path='/etc/dovecot/letsencrypt/{domain}/cert.pem', - user_owner='root', group_owner='root', managing_app='email_server') - self.add(letsencrypt) - - def _add_ui_components(self): - info = plinth.app.Info( - app_id=self.app_id, version=self._version, name=self.app_name, - short_description=_('Powered by Postfix, Dovecot & Rspamd'), - description=_description, manual_page='EmailServer', - clients=manifest.clients, - donation_url='https://freedomboxfoundation.org/donate/') - self.add(info) - - menu_item = plinth.menu.Menu( - 'menu_' + self.app_id, # unique id - info.name, # app display name - info.short_description, # app description - 'roundcube', # icon name in `static/theme/icons/` - 'email_server:index', # view name - parent_url_name='apps') - self.add(menu_item) - - def _add_daemons(self): - for srvname in ['postfix', 'dovecot', 'rspamd']: - # Construct `listen_ports` parameter for the daemon - mixed = port_info.get(srvname, ()) - port_numbers = [v for v in mixed if isinstance(v, int)] - listen = [] - for n in port_numbers: - listen.append((n, 'tcp4')) - listen.append((n, 'tcp6')) - # Add daemon - daemon = plinth.daemon.Daemon('daemon-' + srvname, srvname, - listen_ports=listen) - self.add(daemon) - - def _add_firewall_ports(self): - all_port_names = [] - for mixed in port_info.values(): - port_names = [v for v in mixed if isinstance(v, str)] - all_port_names.extend(port_names) - - firewall = Firewall('firewall-email', self.app_name, - ports=all_port_names, is_external=True) - self.add(firewall) - - @staticmethod - def post_init(): - """Perform post initialization operations.""" - domain_added.connect(on_domain_added) - domain_removed.connect(on_domain_removed) - - def diagnose(self): - """Run diagnostics and return the results""" - results = super().diagnose() - results.extend([r.summarize() for r in audit.ldap.get()]) - results.extend([r.summarize() for r in audit.spam.get()]) - return results - - -def get_domains(): - """Return the list of domains configured.""" - default_domain = get_domainname() - return [default_domain] if default_domain else [] - - -def setup(helper, old_version=None): - """Installs and configures module""" - - def _clear_conflicts(): - component = app.get_component('packages-email-server') - packages_to_remove = component.find_conflicts() - if packages_to_remove: - logger.info('Removing conflicting packages: %s', - packages_to_remove) - remove(packages_to_remove) - - # Install - helper.call('pre', _clear_conflicts) - app.setup(old_version) - - # Setup - helper.call('post', audit.home.repair) - app.get_component('letsencrypt-email-server-postfix').setup_certificates() - app.get_component('letsencrypt-email-server-dovecot').setup_certificates() - helper.call('post', audit.domain.set_domains) - helper.call('post', audit.ldap.repair) - helper.call('post', audit.spam.repair) - - # Reload - actions.superuser_run('service', ['reload', 'postfix']) - actions.superuser_run('service', ['reload', 'dovecot']) - actions.superuser_run('service', ['reload', 'rspamd']) - - # Expose to public internet - helper.call('post', app.enable) - - -def on_domain_added(sender, domain_type, name, description='', services=None, - **kwargs): - """Handle addition of a new domain.""" - if app.needs_setup(): - return - - audit.domain.set_domains() - - -def on_domain_removed(sender, domain_type, name='', **kwargs): - """Handle removal of a domain.""" - if app.needs_setup(): - return - - audit.domain.set_domains() diff --git a/plinth/modules/email_server/audit/__init__.py b/plinth/modules/email_server/audit/__init__.py deleted file mode 100644 index 1dc17ee18..000000000 --- a/plinth/modules/email_server/audit/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later -""" -Provides diagnosis and repair of email server configuration issues -""" - -from . import aliases, domain, home, ldap, models, spam, tls - -__all__ = ['aliases', 'domain', 'home', 'ldap', 'models', 'spam', 'tls'] diff --git a/plinth/modules/email_server/audit/ldap.py b/plinth/modules/email_server/audit/ldap.py deleted file mode 100644 index 6a727e490..000000000 --- a/plinth/modules/email_server/audit/ldap.py +++ /dev/null @@ -1,145 +0,0 @@ -"""Provides the diagnosis of SASL, mail submission, and user database lookup -configurations""" -# SPDX-License-Identifier: AGPL-3.0-or-later - -import logging - -from django.utils.translation import gettext_lazy as _ - -import plinth.modules.email_server.aliases as aliases -import plinth.modules.email_server.postconf as postconf -from plinth import actions - -from . import models - -default_config = { - 'smtpd_sasl_auth_enable': - 'yes', - 'smtpd_sasl_type': - 'dovecot', - 'smtpd_sasl_path': - 'private/auth', - 'mailbox_transport': - 'lmtp:unix:private/dovecot-lmtp', - 'virtual_transport': - 'lmtp:unix:private/dovecot-lmtp', - 'smtpd_relay_restrictions': - ','.join([ - 'permit_sasl_authenticated', - 'defer_unauth_destination', - ]) -} - -submission_flags = postconf.ServiceFlags(service='submission', type='inet', - private='n', unpriv='-', chroot='y', - wakeup='-', maxproc='-', - command_args='smtpd') - -default_submission_options = { - 'syslog_name': 'postfix/submission', - 'smtpd_tls_security_level': 'encrypt', - 'smtpd_client_restrictions': 'permit_sasl_authenticated,reject', - 'smtpd_relay_restrictions': 'permit_sasl_authenticated,reject' -} - -smtps_flags = postconf.ServiceFlags(service='smtps', type='inet', private='n', - unpriv='-', chroot='y', wakeup='-', - maxproc='-', command_args='smtpd') - -default_smtps_options = { - 'syslog_name': 'postfix/smtps', - 'smtpd_tls_wrappermode': 'yes', - 'smtpd_sasl_auth_enable': 'yes', - 'smtpd_relay_restrictions': 'permit_sasl_authenticated,reject' -} - -SQLITE_ALIASES = 'sqlite:/etc/postfix/freedombox-aliases.cf' - -logger = logging.getLogger(__name__) - - -def get(): - """Compare current values with the default. Generate an audit report - - Recommended endpoint name: - GET /audit/ldap - """ - translation_table = [ - (check_sasl, _('Postfix-Dovecot SASL integration')), - (check_alias_maps, _('Postfix alias maps')), - ] - results = [] - with postconf.mutex.lock_all(): - for check, title in translation_table: - results.append(check(title)) - return results - - -def repair(): - """Tries to repair SASL, mail submission, and user lookup settings - - Recommended endpoint name: - POST /audit/ldap/repair - """ - aliases.first_setup() - actions.superuser_run('email_server', ['ldap', 'set_up']) - - -def action_set_up(): - action_set_sasl() - action_set_submission() - action_set_ulookup() - - -def check_sasl(title=''): - diagnosis = models.MainCfDiagnosis(title) - diagnosis.compare(default_config, postconf.get_many_unsafe) - return diagnosis - - -def fix_sasl(diagnosis): - diagnosis.apply_changes(postconf.set_many_unsafe) - - -def action_set_sasl(): - """Handles email_server -i ldap set_sasl""" - with postconf.mutex.lock_all(): - fix_sasl(check_sasl()) - - -def action_set_submission(): - """Handles email_server -i ldap set_submission""" - postconf.set_master_cf_options(service_flags=submission_flags, - options=default_submission_options) - postconf.set_master_cf_options(service_flags=smtps_flags, - options=default_smtps_options) - - -def check_alias_maps(title=''): - """Check the ability to mail to usernames and user aliases""" - diagnosis = models.MainCfDiagnosis(title) - - alias_maps = postconf.get_unsafe('alias_maps').replace(',', ' ').split(' ') - if SQLITE_ALIASES not in alias_maps: - diagnosis.flag_once('alias_maps', user=alias_maps) - diagnosis.critical('Required maps not in list') - - return diagnosis - - -def fix_alias_maps(diagnosis): - - def fix_value(alias_maps): - if SQLITE_ALIASES not in alias_maps: - alias_maps.append(SQLITE_ALIASES) - - return ' '.join(alias_maps) - - diagnosis.repair('alias_maps', fix_value) - diagnosis.apply_changes(postconf.set_many_unsafe) - - -def action_set_ulookup(): - """Handles email_server -i ldap set_ulookup""" - with postconf.mutex.lock_all(): - fix_alias_maps(check_alias_maps()) diff --git a/plinth/modules/email_server/audit/models.py b/plinth/modules/email_server/audit/models.py deleted file mode 100644 index 60083f6e9..000000000 --- a/plinth/modules/email_server/audit/models.py +++ /dev/null @@ -1,207 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later -"""Models of the audit module""" - -import logging - -logger = logging.getLogger(__name__) - - -class UnresolvedIssueError(AssertionError): - pass - - -class Diagnosis: - """Records a diagnosis: what went wrong and how to fix them""" - - def __init__(self, title='', action=''): - """Class constructor""" - self.title = title - self.action = action - self.critical_errors = [] - self.errors = [] - - def to_json(self): - """Serialize object to JSON""" - return { - 'class': self.__class__.__name__, - 'title': self.title, - 'action': self.action, - 'errors': self.errors, - 'critical_errors': self.critical_errors - } - - @classmethod - def from_json(cls, valid_dict, translate=None): - """Construct a Diagnosis instance from a valid JSON dictionary. - - :type valid_dict: dict - :param valid_dict: a valid dictionary representation - :type translate: str -> Union[str, None] - :param translate: optional; if specified, should be a function that - accepts the title and returns a new title or None. - """ - title = valid_dict['title'] - if translate: - title = translate(title) or title - result = cls(title, action=valid_dict['action']) - result.errors.extend(valid_dict['errors']) - result.critical_errors.extend(valid_dict['critical_errors']) - return result - - def critical(self, message_fmt, *args): - """Append a message to the critical errors list""" - if args: - self.critical_errors.append(message_fmt % args) - else: - self.critical_errors.append(message_fmt) - - def error(self, message_fmt, *args): - """Append a message to the errors list""" - if args: - self.errors.append(message_fmt % args) - else: - self.errors.append(message_fmt) - - def summarize(self, log=True): - """Return a 2-element list for the diagnose function in AppView""" - if log: - self.write_logs() - - if self.critical_errors: - return [self.title, 'error'] - elif self.errors: - return [self.title, 'failed'] - else: - return [self.title, 'passed'] - - @property - def has_failed(self): - """True if the diagnosis has failed or contains an error""" - return (self.critical_errors or self.errors) - - def write_logs(self): - """Log errors and failures""" - logger.debug('Ran audit: %s', self.title) - for message in self.critical_errors: - logger.critical(message) - for message in self.errors: - logger.error(message) - - def sorting_key(self): - """The key function for list.sort""" - return (-len(self.critical_errors), -len(self.errors), self.title) - - -class MainCfDiagnosis(Diagnosis): - """Diagnosis for a set of main.cf configuration keys""" - - def __init__(self, *args, **kwargs): - """Class constructor. See :class:`.Diagnosis` for method signature""" - super().__init__(*args, **kwargs) - self.advice = {} - self.user = {} - - def flag(self, key, corrected_value=None, user=None): - """Flag a problematic key. - - If `corrected_value` is a str, the specified value is assumed to be - correct. - - :type key: str - :param key: main.cf key - :type corrected_value: str or None - :param corrected_value: corrected value - :type user: Any - :param user: customized data (see the :meth:`.repair` method) - :raises ValueError: if the key has been flagged - """ - if key in self.advice: - raise ValueError('Key has been flagged') - else: - self.advice[key] = corrected_value - self.user[key] = user - - def flag_once(self, key, **kwargs): - """Flag a problematic key. If the key has been flagged, do nothing. - - See :meth:`.flag` for the function signature. - """ - if key not in self.advice: - self.flag(key, **kwargs) - - def unresolved_issues(self): - """Return the iterator of all keys that do not have a corrected value. - - :return: an iterator of keys - """ - for key, value in self.advice.items(): - if value is None: - yield key - - def _compare_and_advise(self, current, default): - if len(current) > len(default): - raise ValueError('Sanity check failed: dictionary sizes') - for key, value in default.items(): - if current.get(key, None) != value: - self.flag(key, corrected_value=value) - self.critical('%s must equal %s', key, value) - - def compare(self, expected, getter): - """Check the current Postfix configuration. Flag and correct all keys - that have an unexpected value. - - :type expected: dict[str, str] - :param expected: a dictionary specifying the set of keys to be checked - and their expected values - :type getter: Iterator[str] -> dict[str, str] - :param getter: a function that fetches the current postfix config; it - takes an iterator of strings and returns a str-to-str dictionary. - """ - current = getter(expected.keys()) - self._compare_and_advise(current, expected) - - def repair(self, key, repair_function): - """Repair the key if its value has not been corrected by other means. - - `repair_function` will not be called if the key has had a corrected - value or the key does not need attention. - - In case `repair_function` is called, we will pass in the `user` data - associated with `key`. - - The job of `repair_function` is to return a corrected value. It should - not modify any Postfix configuration in any way. It may read - configuration files, but pending Postconf changes are not visible. - - If `repair_function` could not solve the problem, it may return `None` - as an alternative to raising an exception. Using this feature, you may - implement fallback strategies. - - :type key: str - :param key: the key to be repaired - :type repair_function: Any -> Union[str, None] - :param repair_function: a function that returns the corrected value - for `key` - """ - if key in self.advice and self.advice[key] is None: - self.advice[key] = repair_function(self.user[key]) - - def apply_changes(self, setter): - """Apply changes by calling the `setter` with a dictionary of corrected - keys and values. - - :type setter: dict[str, str] -> None - :param setter: configuration changing function that takes a str-to-str - dictionary. - :raises UnresolvedIssueError: if the diagnosis contains an uncorrected - key - """ - self.assert_resolved() - logger.info('Setting postconf: %r', self.advice) - setter(self.advice) - - def assert_resolved(self): - """Raises an :class:`.UnresolvedIssueError` if the diagnosis report - contains an unresolved issue (i.e. an uncorrected key)""" - if None in self.advice.values(): - raise UnresolvedIssueError('Assertion failed') diff --git a/plinth/modules/email_server/audit/spam.py b/plinth/modules/email_server/audit/spam.py deleted file mode 100644 index d070a9f8b..000000000 --- a/plinth/modules/email_server/audit/spam.py +++ /dev/null @@ -1,146 +0,0 @@ -"""Configures spam filters and the virus scanner""" -# SPDX-License-Identifier: AGPL-3.0-or-later - -import glob -import logging -import re -import subprocess - -from django.utils.translation import gettext_lazy as _ - -from plinth import actions -from plinth.modules.email_server import interproc, lock, postconf -from plinth.modules.email_server.modconf import ConfigInjector - -from . import models - -milter_config = { - 'milter_mail_macros': 'i ' + ' '.join([ - '{auth_type}', '{auth_authen}', '{auth_author}', - '{client_addr}', '{client_name}', - '{mail_addr}', '{mail_host}', '{mail_mailer}' - ]), - # XXX In postconf this field is a list - 'smtpd_milters': 'inet:127.0.0.1:11332', - # XXX In postconf this field is a list - 'non_smtpd_milters': 'inet:127.0.0.1:11332', - 'milter_header_checks': 'regexp:fbx-managed/pre-queue-milter-headers', - - # Last-resort internal header cleanup at smtp client - 'smtp_header_checks': 'regexp:/etc/postfix/freedombox-internal-cleanup', - # Reserved mail transports - # XXX This field is a list - 'transport_maps': 'regexp:/etc/postfix/freedombox-transport-to', - # XXX This field is a list - 'sender_dependent_default_transport_maps': \ - 'regexp:/etc/postfix/freedombox-transport-from', -} - -# FreedomBox egress filtering - -egress_filter = postconf.ServiceFlags( - service='127.0.0.1:10025', type='inet', private='n', unpriv='-', - chroot='y', wakeup='-', maxproc='-', command_args='smtpd' -) - -egress_filter_options = { - 'syslog_name': 'postfix/fbxout', - 'cleanup_service_name': 'fbxcleanup', - 'content_filter': '', - 'receive_override_options': 'no_unknown_recipient_checks', - 'smtpd_helo_restrictions': '', - 'smtpd_client_restrictions': '', - 'smtpd_relay_restrictions': '', - 'smtpd_recipient_restrictions': 'permit_mynetworks,reject', - 'mynetworks': '127.0.0.0/8,[::1]/128' -} - -egress_filter_cleanup = postconf.ServiceFlags( - service='fbxcleanup', type='unix', private='n', unpriv='-', - chroot='y', wakeup='-', maxproc='0', command_args='cleanup' -) - -egress_filter_cleanup_options = { - 'syslog_name': 'postfix/fbxout', - # "From" domain rewriting - 'sender_canonical_maps': 'regexp:/etc/postfix/freedombox-rewrite-sender', - 'local_header_rewrite_clients': 'static:all', - # "From" domain masquerading - 'masquerade_domains': '$mydomain', - 'masquerade_classes': 'envelope_sender,header_sender', - # Header privacy - 'header_checks': 'regexp:/etc/postfix/freedombox-header-cleanup', - 'nested_header_checks': '' -} - -# Rspamd config - -rspamd_re = re.compile('#[ ]*--[ ]*([A-Z]{3,5})[ ]+FREEDOMBOX CONFIG$') -rspamd_format = '#-- {} FREEDOMBOX CONFIG' - -rspamd_mutex = lock.Mutex('rspamd-config') -logger = logging.getLogger(__name__) - - -def get(): - translation_table = [ - (check_filter, _('Inbound and outbound mail filters')), - ] - results = [] - with postconf.mutex.lock_all(): - for check, title in translation_table: - results.append(check(title)) - return results - - -def repair(): - actions.superuser_run('email_server', ['spam', 'set_filter']) - - -def check_filter(title=''): - diagnosis = models.MainCfDiagnosis(title) - diagnosis.compare(milter_config, postconf.get_many_unsafe) - return diagnosis - - -def fix_filter(diagnosis): - diagnosis.apply_changes(postconf.set_many_unsafe) - - -def action_set_filter(): - _compile_sieve() - postconf.set_master_cf_options(egress_filter, egress_filter_options) - postconf.set_master_cf_options(egress_filter_cleanup, - egress_filter_cleanup_options) - - with postconf.mutex.lock_all(): - fix_filter(check_filter()) - - injector = ConfigInjector(rspamd_re, rspamd_format) - with rspamd_mutex.lock_all(): - # XXX Maybe use globbing? - _inject_rspamd_config(injector, 'override', 'options.inc') - _inject_rspamd_config(injector, 'local', 'milter_headers.conf') - - -def _inject_rspamd_config(injector, type, name): - template_path = '/etc/plinth/rspamd-config/%s_%s' % (type, name) - config_path = '/etc/rspamd/%s.d/%s' % (type, name) - - logger.info('Opening Rspamd config file %s', config_path) - injector.do_template_file(template_path, config_path) - - -def _compile_sieve(): - sieve_list = glob.glob('/etc/dovecot/freedombox-sieve-after/*.sieve') - for sieve_file in sieve_list: - _run_sievec(sieve_file) - - -def _run_sievec(sieve_file): - logger.info('Compiling sieve script %s', sieve_file) - args = ['sievec', '--', sieve_file] - completed = subprocess.run(args, capture_output=True, check=False) - if completed.returncode != 0: - interproc.log_subprocess(completed) - raise OSError('Sieve compilation failed: ' + sieve_file) diff --git a/plinth/modules/email_server/data/etc/apache2/conf-available/email-server-freedombox.conf b/plinth/modules/email_server/data/etc/apache2/conf-available/email-server-freedombox.conf deleted file mode 100644 index 218087e8a..000000000 --- a/plinth/modules/email_server/data/etc/apache2/conf-available/email-server-freedombox.conf +++ /dev/null @@ -1,32 +0,0 @@ - - Redirect "/rspamd/" - - - - ProxyPass http://127.0.0.1:11334/ - ProxyPassReverse http://127.0.0.1:11334/ - # Modify proxy headers - ProxyAddHeaders off - RequestHeader unset Forwarded - RequestHeader unset Via - RequestHeader unset X-Forwarded-For - RequestHeader unset X-Forwarded-Host - RequestHeader unset X-Forwarded-Proto - RequestHeader unset X-Forwarded-Server - RequestHeader unset X-Real-IP - RequestHeader set X-Forwarded-For "127.0.0.1" - # Modify response headers - Header unset Set-Cookie - # Require SSO - Include includes/freedombox-single-sign-on.conf - - TKTAuthToken "admin" - - - - - - RewriteEngine On - RewriteRule ^ /plinth/apps/email_server/config.xml [PT] - - diff --git a/plinth/modules/email_server/data/etc/apache2/includes/freedombox-robots.conf b/plinth/modules/email_server/data/etc/apache2/includes/freedombox-robots.conf deleted file mode 100644 index 87ef3035d..000000000 --- a/plinth/modules/email_server/data/etc/apache2/includes/freedombox-robots.conf +++ /dev/null @@ -1 +0,0 @@ -Header merge X-Robots-Tag "noindex, nofollow, noarchive, notranslate" diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf b/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf deleted file mode 100644 index a0f2a3ca4..000000000 --- a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-lmtp.conf +++ /dev/null @@ -1,6 +0,0 @@ -# Direct edits to this file will be lost! -# Manage your settings on Plinth - -protocol lmtp { - mail_plugins = $mail_plugins sieve -} diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf b/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf deleted file mode 100644 index d14f70d59..000000000 --- a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-mailboxes.conf +++ /dev/null @@ -1,43 +0,0 @@ -# Direct edits to this file will be lost! -# Manage your settings on Plinth - -namespace inbox { - mailbox Archive { - auto = subscribe - special_use = \Archive - } - mailbox Drafts { - auto = subscribe - special_use = \Drafts - } - mailbox Junk { - auto = subscribe - autoexpunge = 30d - special_use = \Junk - } - mailbox Trash { - auto = subscribe - autoexpunge = 30d - special_use = \Trash - } - - mailbox INBOX.Junk { - auto = no - autoexpunge = 30d - special_use = \Junk - } - mailbox INBOX.Trash { - auto = no - autoexpunge = 30d - special_use = \Trash - } - - mailbox Sent { - auto = subscribe - special_use = \Sent - } - mailbox "Sent Messages" { - auto = no - special_use = \Sent - } -} diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-master.conf b/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-master.conf deleted file mode 100644 index 0b1137be7..000000000 --- a/plinth/modules/email_server/data/etc/dovecot/conf.d/90-freedombox-master.conf +++ /dev/null @@ -1,18 +0,0 @@ -# Direct edits to this file will be lost! -# Manage your settings on Plinth - -service auth { - unix_listener /var/spool/postfix/private/auth { - mode = 0600 - user = postfix - group = postfix - } -} - -service lmtp { - unix_listener /var/spool/postfix/private/dovecot-lmtp { - mode = 0600 - user = postfix - group = postfix - } -} diff --git a/plinth/modules/email_server/data/etc/dovecot/conf.d/95-freedombox-sieve.conf b/plinth/modules/email_server/data/etc/dovecot/conf.d/95-freedombox-sieve.conf deleted file mode 100644 index dc34ba411..000000000 --- a/plinth/modules/email_server/data/etc/dovecot/conf.d/95-freedombox-sieve.conf +++ /dev/null @@ -1,6 +0,0 @@ -# Direct edits to this file will be lost! -# Manage your settings on Plinth - -plugin { - sieve_after = /etc/dovecot/freedombox-sieve-after -} diff --git a/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/README.txt b/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/README.txt deleted file mode 100644 index 17160f2fd..000000000 --- a/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/README.txt +++ /dev/null @@ -1,2 +0,0 @@ -DO NOT PUT PERSONAL ITEMS HERE! -This folder in its entirety is managed by FreedomBox. diff --git a/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/sort-spam.sieve b/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/sort-spam.sieve deleted file mode 100644 index aebaf100a..000000000 --- a/plinth/modules/email_server/data/etc/dovecot/freedombox-sieve-after/sort-spam.sieve +++ /dev/null @@ -1,8 +0,0 @@ -require ["fileinto", "mailbox"]; - -if anyof(header :contains "X-Spam" "Yes", - header :contains "X-Spam-Status" "Yes", - header :matches "X-Spam-Flag" "YES") { - fileinto :create "Junk"; - stop; -} diff --git a/plinth/modules/email_server/data/etc/plinth/modules-enabled/email_server b/plinth/modules/email_server/data/etc/plinth/modules-enabled/email_server deleted file mode 100644 index fb87084c0..000000000 --- a/plinth/modules/email_server/data/etc/plinth/modules-enabled/email_server +++ /dev/null @@ -1 +0,0 @@ -#plinth.modules.email_server diff --git a/plinth/modules/email_server/data/etc/plinth/rspamd-config/local_milter_headers.conf b/plinth/modules/email_server/data/etc/plinth/rspamd-config/local_milter_headers.conf deleted file mode 100644 index 8c24018cf..000000000 --- a/plinth/modules/email_server/data/etc/plinth/rspamd-config/local_milter_headers.conf +++ /dev/null @@ -1,39 +0,0 @@ -# The following section is managed by FreedomBox -# Be careful not to edit - -use = ["x-fbx-mail-type", "authentication-results", "x-spam-level", - "x-spam-status", "x-spamd-bar", "x-spamd-result"]; - -routines { - authentication-results { - add_smtp_user = false; - } -} - -# Custom headers required by FreedomBox filtering system -custom { -x-fbx-mail-type = < 1: - raise RaceCondition('setuid in a multi-threaded process') - if not os.path.exists(self.lock_path): - self._create_lock_file_as_plinth(og_euid) - - fd = None - try: - if og_euid == 0: - # Temporarily run the current process as plinth - plinth_uid = pwd.getpwnam('plinth').pw_uid - self._checked_setresuid(og_ruid, plinth_uid, 0) - fd = open(self.lock_path, 'w+b') - finally: - # Restore resuid - if og_euid == 0: - self._checked_setresuid(og_ruid, 0, 0) - if og_suid != 0: - self._checked_setresuid(og_ruid, 0, og_suid) - - return fd - - def _create_lock_file_as_plinth(self, your_euid): - # Don't change the current processes umask - # Do create a new process - args = [] - if your_euid == 0: - args.extend(['sudo', '-n', '-u', 'plinth']) - args.extend(['/bin/sh', '-c']) - args.append('umask 177 && > ' + self.lock_path) - - completed = subprocess.run(args, capture_output=True, check=False) - if completed.returncode != 0: - interproc.log_subprocess(completed) - raise OSError('Could not create ' + self.lock_path) - - def _checked_setresuid(self, ruid, euid, suid): - os.setresuid(ruid, euid, suid) - if os.getresuid() != (ruid, euid, suid): - try: - raise SystemExit('PANIC: setresuid failed') - except SystemExit as e: - # Print stack trace - logger.exception(e) - # Force exit - exit(1) diff --git a/plinth/modules/email_server/modconf.py b/plinth/modules/email_server/modconf.py deleted file mode 100644 index d78f9b194..000000000 --- a/plinth/modules/email_server/modconf.py +++ /dev/null @@ -1,78 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later -"""Generic config modifying utilities""" - -import contextlib -import io -import re - -from . import interproc - - -class ConfigInjector: - def __init__(self, match, generate): - self.re_pattern = re.compile(match) - self.boundary_fmt = generate + '\n' - - def do_file_des(self, template, config, scratch): - """Write modified config to the `scratch` stream""" - if not isinstance(template, io.TextIOBase): - raise TypeError('Not a text IO stream: template') - self._inject_config3(template, config, scratch) - - def _inject_config3(self, template, config, scratch): - # Copy the original config up to header line - for line in config: - match = self.re_pattern.match(line.strip()) - if match and match.group(1) == 'BEGIN': - break - scratch.write(line) - if not line.endswith('\n'): # in case no new line was at the eof - scratch.write('\n') - - # Write header line - scratch.write(self.boundary_fmt.format('BEGIN')) - # Write template to scratch - for line in template: - scratch.write(line) - # in case no new line was at the eof - if not line.endswith('\n'): - scratch.write('\n') - # Write footer line - scratch.write(self.boundary_fmt.format('END')) - - # Find the trailer line in config - for line in config: - match = self.re_pattern.match(line.strip()) - if match and match.group(1) == 'END': - break - - # Copy the original - for line in config: - scratch.write(line) # keep original file ending style - - def do_template_file(self, template_path, config_path): - with open(template_path, 'r') as template: - with self._open_config(config_path) as (config, scratch): - self._inject_config3(template, config, scratch) - - def do_template_string(self, template_string, config_path): - with self._open_config(config_path) as (config, scratch): - self._inject_config3([template_string], config, scratch) - - @contextlib.contextmanager - def _open_config(self, config_path): - with open(config_path, 'a+') as config: - with interproc.atomically_rewrite(config_path) as scratch: - config.seek(0) - yield config, scratch - - def has_header_line(self, config_path): - with open(config_path, 'r') as config_fd: - return self._has_header_line(config_fd) - - def _has_header_line(self, config_fd): - for line in config_fd: - match = self.re_pattern.match(line.strip()) - if match and match.group(1) == 'BEGIN': - return True - return False diff --git a/plinth/modules/email_server/postconf.py b/plinth/modules/email_server/postconf.py deleted file mode 100644 index 047960dea..000000000 --- a/plinth/modules/email_server/postconf.py +++ /dev/null @@ -1,192 +0,0 @@ -"""Postconf wrapper providing thread-safe operations""" -# SPDX-License-Identifier: AGPL-3.0-or-later - -import logging -import re -import subprocess -from dataclasses import dataclass -from typing import ClassVar - -from . import interproc -from .lock import Mutex - -logger = logging.getLogger(__name__) -mutex = Mutex('email-postconf') - - -@dataclass -class ServiceFlags: - service: str - type: str - private: str - unpriv: str - chroot: str - wakeup: str - maxproc: str - command_args: str - - crash_handler: ClassVar[str] = '/dev/null/plinth-crash' - - def _get_flags_ordered(self): - return [self.service, self.type, self.private, self.unpriv, - self.chroot, self.wakeup, self.maxproc, self.command_args] - - def serialize(self) -> str: - ordered = self._get_flags_ordered() - return ' '.join(ordered) - - def serialize_temp(self) -> str: - ordered = self._get_flags_ordered() - ordered[-1] = self.crash_handler - return ' '.join(ordered) - - def try_remove_crash_handler(self, line) -> str: - pattern = re.compile('([^ \\t]+)[ \\t]+([a-z]+)[ \\t]+') - match = pattern.match(line) - if match is None: - return None - if match.group(1) != self.service or match.group(2) != self.type: - return None - if not line.rstrip().endswith(self.crash_handler): - return None - return line.replace(self.crash_handler, self.command_args) - - -def get_many(key_list): - """Acquire resource lock. Get the list of postconf values as specified. - Return a key-value map""" - for key in key_list: - validate_key(key) - with mutex.lock_all(): - return get_many_unsafe(key_list) - - -def get_many_unsafe(key_iterator, flag=''): - result = {} - args = ['/sbin/postconf'] - if flag: - args.append(flag) - - number_of_keys = 0 - for key in key_iterator: - args.append(key) - number_of_keys += 1 - - stdout = _run(args) - for line in filter(None, stdout.split('\n')): - key, sep, value = line.partition('=') - if not sep: - raise ValueError('Invalid output detected') - result[key.strip()] = value.strip() - - if len(result) != number_of_keys: - raise ValueError('Some keys were missing from the output') - return result - - -def set_many(kv_map): - """Acquire resource lock. Set the list of postconf values as specified""" - for key, value in kv_map.items(): - validate_key(key) - validate_value(value) - - with mutex.lock_all(): - set_many_unsafe(kv_map) - - -def set_many_unsafe(kv_map, flag=''): - args = ['/sbin/postconf'] - - if not kv_map: - return - if flag: - args.append(flag) - for key, value in kv_map.items(): - args.append('{}={}'.format(key, value)) - _run(args) - - -def set_master_cf_options(service_flags, options={}): - """Acquire resource lock. Set master.cf service options""" - if not isinstance(service_flags, ServiceFlags): - raise TypeError('service_flags') - for key, value in options.items(): - validate_key(key) - validate_value(value) - - service_key = service_flags.service + '/' + service_flags.type - long_opts = {service_key + '/' + k: v for (k, v) in options.items()} - - logger.info('Setting %s service: %r', service_flags.service, options) - - # Crash resistant config setting: - # /sbin/postconf -M "service/type=" - # /sbin/postconf -P "service/type/k=v" ... - # Delete placeholder string /dev/null/plinth-crash - with mutex.lock_all(): - set_unsafe(service_key, service_flags.serialize_temp(), '-M') - set_many_unsafe(long_opts, '-P') - _master_remove_crash_handler(service_flags) - - -def get_unsafe(key): - """Get postconf value (no locking, no sanitization)""" - result = _run(['/sbin/postconf', key]) - match = key + ' =' - if not result.startswith(match): - raise KeyError(key) - return result[len(match):].strip() - - -def set_unsafe(key, value, flag=''): - """Set postconf value (assuming root, no locking, no sanitization)""" - if flag: - _run(['/sbin/postconf', flag, '{}={}'.format(key, value)]) - else: - _run(['/sbin/postconf', '{}={}'.format(key, value)]) - - -def parse_maps(raw_value): - if '{' in raw_value or '}' in raw_value: - raise ValueError('Unsupported map list format') - - value_list = [] - for segment in raw_value.split(','): - for sub_segment in segment.strip().split(' '): - sub_segment = sub_segment.strip() - if sub_segment: - value_list.append(sub_segment) - return value_list - - -def _run(args): - """Run process. Capture and return standard output as a string. Raise a - RuntimeError on non-zero exit codes""" - try: - result = subprocess.run(args, check=True, capture_output=True) - return result.stdout.decode('utf-8') - except subprocess.SubprocessError as subprocess_error: - raise RuntimeError('Subprocess failed') from subprocess_error - except UnicodeDecodeError as unicode_error: - raise RuntimeError('Unicode decoding failed') from unicode_error - - -def _master_remove_crash_handler(service_flags): - with interproc.atomically_rewrite('/etc/postfix/master.cf') as writer: - with open('/etc/postfix/master.cf') as reader: - for line in reader: - cleaned = service_flags.try_remove_crash_handler(line) - writer.write(line if cleaned is None else cleaned) - - -def validate_key(key): - """Validate postconf key format. Raises ValueError""" - if not re.match('^[a-zA-Z][a-zA-Z0-9_]*$', key): - raise ValueError('Invalid postconf key format') - - -def validate_value(value): - """Validate postconf value format. Raises ValueError""" - for c in value: - if ord(c) < 32: - raise ValueError('Value contains control characters') diff --git a/plinth/modules/email_server/templates/email_autoconfig.xml b/plinth/modules/email_server/templates/email_autoconfig.xml deleted file mode 100644 index 4573d5339..000000000 --- a/plinth/modules/email_server/templates/email_autoconfig.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - {{ host }} - FreedomBox Mail - FBXMail - - {{ host }} - 993 - SSL - %EMAILLOCALPART% - password-cleartext - - - {{ host }} - 465 - SSL - %EMAILLOCALPART% - password-cleartext - - - diff --git a/plinth/modules/email_server/templates/email_server.html b/plinth/modules/email_server/templates/email_server.html deleted file mode 100644 index b18fdaa54..000000000 --- a/plinth/modules/email_server/templates/email_server.html +++ /dev/null @@ -1,17 +0,0 @@ -{% extends "app.html" %} -{% comment %} -# SPDX-License-Identifier: AGPL-3.0-or-later -{% endcomment %} - -{% load i18n %} - -{% block subsubmenu %} - - {% trans "Manage Spam" %} - - - - {% trans "Manage Aliases" %} - -{% endblock %} diff --git a/plinth/modules/email_server/urls.py b/plinth/modules/email_server/urls.py deleted file mode 100644 index cd56f03c8..000000000 --- a/plinth/modules/email_server/urls.py +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later -from django.urls import path -from stronghold.decorators import public - -from plinth.utils import non_admin_view - -from . import views - -urlpatterns = [ - path('apps/email_server/', views.EmailServerView.as_view(), name='index'), - path('apps/email_server/my_aliases', - non_admin_view(views.AliasView.as_view()), name='aliases'), - path('apps/email_server/config.xml', public(views.XmlView.as_view())), -] diff --git a/plinth/modules/minidlna/manifest.py b/plinth/modules/minidlna/manifest.py index c7e6e45c5..5f62d84a1 100644 --- a/plinth/modules/minidlna/manifest.py +++ b/plinth/modules/minidlna/manifest.py @@ -36,6 +36,11 @@ clients = [ 'os': 'android', 'store_name': 'f-droid', 'url': store_url('f-droid', 'org.videolan.vlc') + }, { + 'type': 'store', + 'os': 'ios', + 'store_name': 'app-store', + 'url': 'https://apps.apple.com/app/apple-store/id650377962' }] }, { diff --git a/plinth/modules/samba/manifest.py b/plinth/modules/samba/manifest.py index 5532b6bf6..9f5526c61 100644 --- a/plinth/modules/samba/manifest.py +++ b/plinth/modules/samba/manifest.py @@ -49,6 +49,11 @@ clients = [{ 'os': 'android', 'store_name': 'google-play', 'url': store_url('google-play', 'org.videolan.vlc') + }, { + 'type': 'store', + 'os': 'ios', + 'store_name': 'app-store', + 'url': 'https://apps.apple.com/app/apple-store/id650377962' }] }, { 'name': diff --git a/pyproject.toml b/pyproject.toml index 79690006f..43b6fe51a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,6 +30,7 @@ markers = [ "domain", "dynamicdns", "ejabberd", + "email", "gitweb", "help", "i2p", diff --git a/static/themes/default/icons/email.png b/static/themes/default/icons/email.png new file mode 100644 index 000000000..dcfb177cc Binary files /dev/null and b/static/themes/default/icons/email.png differ diff --git a/static/themes/default/icons/email.svg b/static/themes/default/icons/email.svg new file mode 100644 index 000000000..1ace77746 --- /dev/null +++ b/static/themes/default/icons/email.svg @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +