diff --git a/debian/changelog b/debian/changelog index 3345bb676..ce2f07f18 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,51 @@ +freedombox (25.1) unstable; urgency=medium + + [ gfbdrgng ] + * Translated using Weblate (Russian) + * Translated using Weblate (Russian) + * Translated using Weblate (Russian) + + [ Sunil Mohan Adapa ] + * ui: Update section header style to increase size, remove underline + * ui: Fix missing variables in Bootstrap 5.2/Debian stable + * web_framework: Disable caching templates files in development mode + * ui: Drop remnants of already removed background images + * ui: js: Load all JS files in deferred mode to speed up page load + * ui: Don't place JS file at the bottom of the page + * miniflux: Ignore an type check error with pexpect library + * app: Allow apps to instantiate without Django initialization + * app: Add tags to menu and frontpage components + * doc: dev: Remove short description and add tags to all components + * app: Stop showing short description on installation page + * apps: Only show app tags all the tags in apps page search box + * views: Use tags from menu or shortcut instead of the app + * privacy: Introduce utility to lookup external IP address + * privacy: Add option in UI to set lookup URL for public IPs + * privacy: Show notification for privacy settings again + * dynamicdns: Use the public IP lookup URL from privacy app + * email: Create DKIM keys for all known domains + * email: Show DNS entries for all domains instead of just primary + * backups: Handle error when there is not enough space on disk + * backups: Add warning that services may become unavailable + * backups: Properly cleanup after downloading an archive + * backups: Make all generated archive names consistent + * email: Fix regression error when installing/operation app + + [ Veiko Aasa ] + * deluge: tests: functional: Fix deluge client logged in detection + + [ Dietmar ] + * Translated using Weblate (German) + + [ Benedek Nagy ] + * email: Show reverse DNS entries to be configured + + [ James Valleroy ] + * locale: Update translation strings + * doc: Fetch latest manual + + -- James Valleroy Mon, 13 Jan 2025 21:13:33 -0500 + freedombox (24.26.1~bpo12+1) bookworm-backports; urgency=medium * Rebuild for bookworm-backports. diff --git a/doc/dev/tutorial/components.rst b/doc/dev/tutorial/components.rst index ce8945119..5f89cd257 100644 --- a/doc/dev/tutorial/components.rst +++ b/doc/dev/tutorial/components.rst @@ -30,23 +30,21 @@ function normally. def __init__(self): ... - info = app_module.Info(app_id=self.app_id, version=1, - name=_('Transmission'), - icon_filename='transmission', - short_description=_('BitTorrent Web Client'), - description=description, - manual_page='Transmission', - clients=manifest.clients, - donation_url='https://transmissionbt.com/donate/') + info = app_module.Info( + app_id=self.app_id, version=1, name=_('Transmission'), + icon_filename='transmission', description=_description, + manual_page='Transmission', clients=manifest.clients, + donation_url='https://transmissionbt.com/donate/', + tags=manifest.tags) self.add(info) The first argument is app_id that is same as the ID for the app. The version is the version number for this app that must be incremented whenever setup() method -needs to be called again. name, icon_filename, short_description, description, -manual_page and clients provide information that is shown on the app's main -page. The donation_url encourages our users to contribute to upstream projects -in order ensure their long term sustainability. More information about the -parameters is available in :class:`~plinth.app.Info` class documentation. +needs to be called again. name, icon_filename, description, manual_page, +clients, and tags provide information that is shown on the app's main page. The +donation_url encourages our users to contribute to upstream projects in order +ensure their long term sustainability. More information about the parameters is +available in :class:`~plinth.app.Info` class documentation. The description of app should provide basic information on what the app is about and how to use it. It is impractical, however, to explain everything about the @@ -322,22 +320,24 @@ when they visit FreedomBox. To provide this shortcut, a def __init__(self): ... - shortcut = frontpage.Shortcut( - 'shortcut-transmission', name, short_description=short_description, - icon='transmission', url='/transmission', clients=clients, - login_required=True, allowed_groups=[group[0]]) + shortcut = frontpage.Shortcut('shortcut-transmission', info.name, + icon=info.icon_filename, + url='/transmission', + clients=info.clients, tags=info.tags, + login_required=True, + allowed_groups=list(groups)) self.add(shortcut) -The first parameter, as usual, is a unique ID. The next three parameters are -basic information about the app similar to the menu item. The URL parameter -specifies the URL that the user should be directed to when the shortcut is -clicked. This is the web interface provided by our app. The next parameter -provides a list of clients. This is useful for the FreedomBox mobile app when -the information is used to suggest installing mobile apps. This is described in -a later section of this tutorial. The next parameter specifies whether anonymous -users who are not logged into FreedomBox should be shown this shortcut. The -final parameter further restricts to which group of users this shortcut must be -shown. +The first parameter, as usual, is a unique ID. The next two parameters are basic +information about the app similar to the menu item. The URL parameter specifies +the URL that the user should be directed to when the shortcut is clicked. This +is the web interface provided by our app. The next parameter provides a list of +clients. This is useful for the FreedomBox mobile app when the information is +used to suggest installing mobile apps. This is described in a later section of +this tutorial. The next parameter specifies the list of tags to show on the +shortcut. The next parameter specifies whether anonymous users who are not +logged into FreedomBox should be shown this shortcut. The final parameter +further restricts to which group of users this shortcut must be shown. Adding backup/restore functionality ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/doc/dev/tutorial/other.rst b/doc/dev/tutorial/other.rst index 2a99fbe9f..f4ca0ab40 100644 --- a/doc/dev/tutorial/other.rst +++ b/doc/dev/tutorial/other.rst @@ -89,22 +89,23 @@ the Django's localization methods to make that happen. info = app_module.Info(... name=_('Transmission'), + description=[_('Transmission is a...'), + _('BitTorrent is a peer-to-peer...')], ... - short_description=_('BitTorrent Web Client'), + tags=[_('File sharing'), _('BitTorrent'), ...]) ...) -Notice that the app's name, description, etc. are wrapped in the ``_()`` method -call. This needs to be done for the rest of our app. We use the +Notice that the app's name, description, tags, etc. are wrapped in the ``_()`` +method calls. This needs to be done for the rest of our app. We use the :obj:`~django.utils.translation.gettext_lazy` in some cases and we use the -regular :obj:`~django.utils.translation.gettext` in other cases. This is -because in the second case the :obj:`~django.utils.translation.gettext` lookup -is made once and reused for every user looking at the interface. These users may -each have a different language set for their interface. Lookup made for one -language for a user should not be used for other users. The ``_lazy`` methods -provided by Django makes sure that the return value is an object that will -actually be converted to string at the final moment when the string is being -displayed. In the first case, the lookup is made and string is returned -immediately. +regular :obj:`~django.utils.translation.gettext` in other cases. This is because +in the second case the :obj:`~django.utils.translation.gettext` lookup is made +once and reused for every user looking at the interface. These users may each +have a different language set for their interface. Lookup made for one language +for a user should not be used for other users. The ``_lazy`` methods provided by +Django makes sure that the return value is an object that will actually be +converted to string at the final moment when the string is being displayed. In +the first case, the lookup is made and string is returned immediately. All of this is the usual way internationalization is done in Django. See :doc:`Internationalization and localization ` diff --git a/doc/dev/tutorial/view.rst b/doc/dev/tutorial/view.rst index b9b94229c..aa7cb4332 100644 --- a/doc/dev/tutorial/view.rst +++ b/doc/dev/tutorial/view.rst @@ -45,7 +45,7 @@ a link in FreedomBox web interface. Let us add a link in the apps list. In ... menu_item = menu.Menu('menu-transmission', 'Transmission', - 'BitTorrrent Web Client', 'transmission', + 'transmission', info.tags, 'transmission:index', parent_url_name='apps') self.add(menu_item) @@ -61,12 +61,12 @@ menu item we want to present. * The second parameter is the display name to use for our menu item which happens to be the name of the app as well. -* The third parameter is a short description for the menu item. - -* The fourth parameter is the name of the icon to use when showing the menu +* The third parameter is the name of the icon to use when showing the menu item. An SVG file and a PNG should be created in the ``plinth/modules/transmission/static/icons/`` directory. +* The fourth parameter is the list of tags to show on the menu item. + * The fifth parameter is the URL that the user should be directed to when the menu item is clicked. This is a Django URL name and we have already created a URL with this name. Note that when including our app's URLs, FreedomBox will diff --git a/doc/manual/en/APU.raw.wiki b/doc/manual/en/APU.raw.wiki index f0ea04232..66ae1c861 100644 --- a/doc/manual/en/APU.raw.wiki +++ b/doc/manual/en/APU.raw.wiki @@ -24,16 +24,6 @@ Although untested, the following similar hardware is also likely to work well wi * [[http://www.pcengines.ch/apu3b2.htm|apu3b2]] * [[http://www.pcengines.ch/apu3b4.htm|apu3b4]] - * Using i386 image: - * [[http://www.pcengines.ch/alix1d.htm|alix1d]] - * [[http://www.pcengines.ch/alix1e.htm|alix1e]] - * [[http://www.pcengines.ch/alix2d2.htm|alix2d2]] - * [[http://www.pcengines.ch/alix2d3.htm|alix2d3]] - * [[http://www.pcengines.ch/alix2d13.htm|alix2d13]] - * [[http://www.pcengines.ch/alix3d2.htm|alix3d2]] - * [[http://www.pcengines.ch/alix3d3.htm|alix3d3]] - * [[http://www.pcengines.ch/alix6f2.htm|alix6f2]] - === Download === !FreedomBox disk [[FreedomBox/Download|images]] for this hardware are available. Follow the instructions on the [[FreedomBox/Download|download]] page to create a !FreedomBox SD card, USB disk, SSD or hard drive and boot into !FreedomBox. Pick the image meant for all amd64 machines. diff --git a/doc/manual/en/Customization.raw.wiki b/doc/manual/en/Customization.raw.wiki new file mode 100644 index 000000000..be72f0199 --- /dev/null +++ b/doc/manual/en/Customization.raw.wiki @@ -0,0 +1,80 @@ +== FreedomBox Customization == + +<> + +## BEGIN_INCLUDE +Though !FreedomBox's philosophy is to have the user make as few decisions as possible about the !FreedomBox itself, a few options for customization have been provided to facilitate some advanced use cases. + + +=== Change Default App === + +''Available since version:'' 0.36.0 <
> +''Skill level:'' Basic + +''Use Case'': A !FreedomBox that primarily runs only one public-facing application whose web application is set as the landing page when someone visits the domain name of the !FreedomBox over the internet. <
> +e.g. A university using !MediaWiki running on !FreedomBox as a course wiki wants its students typing in the domain name into their browser to directly go to the wiki bypassing the !FreedomBox home page. + +''Configuration:'' Change the [[FreedomBox/Manual/Configure#Default_App|Default App]] in the configure page to whichever app you want to be served as default. + +=== Custom Shortcuts === + +''Available since version:'' 0.40.0 <
> +''Skill level:'' Advanced + +''Use Case:'' The administrator of a community deployment of !FreedomBox manually installs a few additional unsupported applications on the !FreedomBox and wants users to be able to transparently access them through the web and mobile applications of !FreedomBox. + +''Note:'' This feature is meant to be used with applications that are end-user facing, i.e have a web or mobile client. + +'''Configuration:''' + +Create a file called `custom-shortcuts.json` in Plinth's configuration directory `/etc/plinth` and add additional shortcuts in JSON format. The file should have follow the same JSON schema as the Plinth API. You can refer to the JSON schema by visiting https:///plinth/api/1/shortcuts. + +An example file adding one additional shortcut for [[https://nextcloud.com|NextCloud]]. + +{{{#!highlight json +{ + "shortcuts": [{ + "name": "NextCloud", + "description": ["Nextcloud is a suite of client-server software for creating and using file hosting services."], + "icon_url": "/plinth/custom/static/icons/nextcloud.png", + "clients": [{ + "name": "nextcloud", + "platforms": [{ + "type": "web", + "url": "/nextcloud" + }] + }], + "tags" : ["Groupware", "File sync"] + }] +} +}}} + +The corresponding icons for the shortcuts listed in the above file should be placed in the directory `/var/www/plinth/custom/static/icons/`. The file names of the icons should match with those provided in `/etc/plinth/custom-shortcuts.json`. + +After adding an entry for !NextCloud in custom-shortcuts.json and an icon, restart Plinth by executing the command {{{ systemctl restart plinth }}} on the !FreedomBox. You can also restart the !FreedomBox from the web interface. + +After restart the Plinth home page will display an additional shortcut for !NextCloud as shown below: <
> +{{attachment:nextcloud-frontpage-shortcut.png|NextCloud custom shortcut on the Plinth home page}} + +The same shortcut will also be displayed in any Android apps connected to the !FreedomBox. <
> + +{{attachment:android-app-custom-shortcut.jpg|NextCloud custom shortcut in the Android app}} + +=== Custom Styling === + +''Available since version:'' 24.25 <
> +''Skill level:'' Advanced + +''Use Case:'' The administrator of a community or home deployment of !FreedomBox wants to customize the web page styling of !FreedomBox. + +''Configuration'': Create a file in the path `/var/www/plinth/custom/static/css/user.css` and write [[https://developer.mozilla.org/en-US/docs/Web/CSS|CSS]] styling rules. This +file has the highest priority as per the [[https://developer.mozilla.org/en-US/docs/Web/CSS/Cascade|cascading rules]]. Use the web browser's developer console to understand which rules to override and how much [[https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity|specificity]] is needed. + +{{attachment:customization_styling.png|Home page with customized styling}} + +## END_INCLUDE + +<> + +---- +CategoryFreedomBox diff --git a/doc/manual/en/Hardware.raw.wiki b/doc/manual/en/Hardware.raw.wiki index 101a61679..fa91d668d 100644 --- a/doc/manual/en/Hardware.raw.wiki +++ b/doc/manual/en/Hardware.raw.wiki @@ -160,7 +160,6 @@ All !FreedomBox disk images for different hardware is built by the project using || '''Image''' || '''Includes main?''' || '''Includes non-free-firmware?''' || '''Non-free firmware included''' || || 32-bit ARM (armhf) || (./) || || || -|| 32-bit x86 (i386) || (./) || (./) || DebianPkg:amd64-microcode, DebianPkg:intel-microcode (see [[Microcode]]) || || 64-bit ARM (arm64) || (./) || || || || 64-bit x86 (amd64) || (./) || (./) || DebianPkg:amd64-microcode, DebianPkg:intel-microcode (see [[Microcode]]) || || A20 OLinuXino Lime || (./) || || || @@ -178,7 +177,6 @@ All !FreedomBox disk images for different hardware is built by the project using || Pine A64+ || (./) || || || || Pioneer Edition !FreedomBox || (./) || || || || QEMU/KVM amd64 || (./) || || || -|| QEMU/KVM i386 || (./) || || || || Raspberry Pi 2 || (./) || (./) || DebianPkg:raspi-firmware || || Raspberry Pi 3 Model B || (./) || (./) || DebianPkg:raspi-firmware, DebianPkg:firmware-brcm80211 || || Raspberry Pi 3 Model B+ || (./) || (./) || DebianPkg:raspi-firmware, DebianPkg:firmware-brcm80211 || @@ -186,7 +184,6 @@ All !FreedomBox disk images for different hardware is built by the project using || Rock64 || (./) || || || || !RockPro64 || (./) || || || || !VirtualBox for amd64 || (./) || || || -|| !VirtualBox for i386 || (./) || || || ## END_INCLUDE diff --git a/doc/manual/en/ReleaseNotes.raw.wiki b/doc/manual/en/ReleaseNotes.raw.wiki index b2aa43f5f..4543c759e 100644 --- a/doc/manual/en/ReleaseNotes.raw.wiki +++ b/doc/manual/en/ReleaseNotes.raw.wiki @@ -8,6 +8,41 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f The following are the release notes for each !FreedomBox version. +== FreedomBox 25.1 (2025-01-13) == + +=== Highlights === + + * email: Show DNS entries for all domains instead of just primary + * privacy: Add option in UI to set lookup URL for public IPs + +=== Other Changes === + + * app: Add tags to menu and frontpage components + * app: Allow apps to instantiate without Django initialization + * app: Stop showing short description on installation page + * apps: Only show app tags all the tags in apps page search box + * backups: Add warning that services may become unavailable + * backups: Handle error when there is not enough space on disk + * backups: Make all generated archive names consistent + * backups: Properly cleanup after downloading an archive + * deluge: tests: functional: Fix deluge client logged in detection + * doc: dev: Remove short description and add tags to all components + * dynamicdns: Use the public IP lookup URL from privacy app + * email: Create DKIM keys for all known domains + * email: Fix regression error when installing/operation app + * email: Show reverse DNS entries to be configured + * locale: Translated using Weblate (German, Russian) + * miniflux: Ignore an type check error with pexpect library + * privacy: Introduce utility to lookup external IP address + * privacy: Show notification for privacy settings again + * ui: Don't place JS file at the bottom of the page + * ui: Drop remnants of already removed background images + * ui: Fix missing variables in Bootstrap 5.2/Debian stable + * ui: Update section header style to increase size, remove underline + * ui: js: Load all JS files in deferred mode to speed up page load + * views: Use tags from menu or shortcut instead of the app + * web_framework: Disable caching templates files in development mode + == FreedomBox 24.26.1 (2025-01-05) == === Highlights === diff --git a/doc/manual/en/VirtualBox.raw.wiki b/doc/manual/en/VirtualBox.raw.wiki index f79b51b17..fec534a68 100644 --- a/doc/manual/en/VirtualBox.raw.wiki +++ b/doc/manual/en/VirtualBox.raw.wiki @@ -175,7 +175,7 @@ If you want to mount images locally, use the following to copy built images off {{{ $ mkdir /tmp/vbox-img1 /tmp/vbox-root1 -$ vdfuse -f freedombox-unstable_2013.0519_virtualbox-i386-hdd.vdi /tmp/vbox-img1/ +$ vdfuse -f freedombox-unstable_2013.0519_virtualbox-amd64-hdd.vdi /tmp/vbox-img1/ $ sudo mount -o loop /tmp/vbox-img1/Partition1 /tmp/vbox-root1 $ cp /tmp/vbox-root1/home/fbx/freedom-maker/build/freedom*vdi ~/ $ sudo umount /tmp/vbox-root1 diff --git a/doc/manual/en/freedombox-manual.raw.wiki b/doc/manual/en/freedombox-manual.raw.wiki index f5cba0611..aed5ca859 100644 --- a/doc/manual/en/freedombox-manual.raw.wiki +++ b/doc/manual/en/freedombox-manual.raw.wiki @@ -107,6 +107,10 @@ <> += Customizing = + +<> + = Contributing = <> diff --git a/doc/manual/en/images/android-app-custom-shortcut.jpg b/doc/manual/en/images/android-app-custom-shortcut.jpg new file mode 100644 index 000000000..9d570fc9f Binary files /dev/null and b/doc/manual/en/images/android-app-custom-shortcut.jpg differ diff --git a/doc/manual/en/images/customization_styling.png b/doc/manual/en/images/customization_styling.png new file mode 100644 index 000000000..59293e4ca Binary files /dev/null and b/doc/manual/en/images/customization_styling.png differ diff --git a/doc/manual/en/images/nextcloud-frontpage-shortcut.png b/doc/manual/en/images/nextcloud-frontpage-shortcut.png new file mode 100644 index 000000000..7b8fd9544 Binary files /dev/null and b/doc/manual/en/images/nextcloud-frontpage-shortcut.png differ diff --git a/doc/manual/es/APU.raw.wiki b/doc/manual/es/APU.raw.wiki index f0ea04232..66ae1c861 100644 --- a/doc/manual/es/APU.raw.wiki +++ b/doc/manual/es/APU.raw.wiki @@ -24,16 +24,6 @@ Although untested, the following similar hardware is also likely to work well wi * [[http://www.pcengines.ch/apu3b2.htm|apu3b2]] * [[http://www.pcengines.ch/apu3b4.htm|apu3b4]] - * Using i386 image: - * [[http://www.pcengines.ch/alix1d.htm|alix1d]] - * [[http://www.pcengines.ch/alix1e.htm|alix1e]] - * [[http://www.pcengines.ch/alix2d2.htm|alix2d2]] - * [[http://www.pcengines.ch/alix2d3.htm|alix2d3]] - * [[http://www.pcengines.ch/alix2d13.htm|alix2d13]] - * [[http://www.pcengines.ch/alix3d2.htm|alix3d2]] - * [[http://www.pcengines.ch/alix3d3.htm|alix3d3]] - * [[http://www.pcengines.ch/alix6f2.htm|alix6f2]] - === Download === !FreedomBox disk [[FreedomBox/Download|images]] for this hardware are available. Follow the instructions on the [[FreedomBox/Download|download]] page to create a !FreedomBox SD card, USB disk, SSD or hard drive and boot into !FreedomBox. Pick the image meant for all amd64 machines. diff --git a/doc/manual/es/Hardware.raw.wiki b/doc/manual/es/Hardware.raw.wiki index c7af38b51..03b398cb8 100644 --- a/doc/manual/es/Hardware.raw.wiki +++ b/doc/manual/es/Hardware.raw.wiki @@ -166,7 +166,6 @@ Todas las imágenes de disco de !FreedomBox para hardware diferente las compila || '''Imagen''' || '''¿Incluye ''main''?''' || '''¿Incluye ''non-free-firmware''?''' || '''Firmware privativo incluído''' || || 32-bit ARM (armhf) || (./) || || || -|| 32-bit x86 (i386) || (./) || (./) || DebianPkg:amd64-microcode, DebianPkg:intel-microcode (Ver [[Microcode|Microcódigo]]) || || 64-bit ARM (arm64) || (./) || || || || 64-bit x86 (amd64) || (./) || (./) || DebianPkg:amd64-microcode, DebianPkg:intel-microcode (Ver [[Microcode|Microcódigo]]) || || A20 OLinuXino Lime || (./) || || || @@ -184,7 +183,6 @@ Todas las imágenes de disco de !FreedomBox para hardware diferente las compila || Pine A64+ || (./) || || || || Pioneer Edition !FreedomBox || (./) || || || || QEMU/KVM amd64 || (./) || || || -|| QEMU/KVM i386 || (./) || || || || Raspberry Pi 2 || (./) || (./) || DebianPkg:raspi-firmware || || Raspberry Pi 3 Model B || (./) || (./) || DebianPkg:raspi-firmware , DebianPkg:firmware-brcm80211 || || Raspberry Pi 3 Model B+ || (./) || (./) || DebianPkg:raspi-firmware , DebianPkg:firmware-brcm80211 || @@ -192,7 +190,6 @@ Todas las imágenes de disco de !FreedomBox para hardware diferente las compila || Rock64 || (./) || || || || !RockPro64 || (./) || || || || !VirtualBox for amd64 || (./) || || || -|| !VirtualBox for i386 || (./) || || || ## END_INCLUDE diff --git a/doc/manual/es/Manual.raw.wiki b/doc/manual/es/Manual.raw.wiki index f5cba0611..aed5ca859 100644 --- a/doc/manual/es/Manual.raw.wiki +++ b/doc/manual/es/Manual.raw.wiki @@ -107,6 +107,10 @@ <> += Customizing = + +<> + = Contributing = <> diff --git a/doc/manual/es/ReleaseNotes.raw.wiki b/doc/manual/es/ReleaseNotes.raw.wiki index b2aa43f5f..4543c759e 100644 --- a/doc/manual/es/ReleaseNotes.raw.wiki +++ b/doc/manual/es/ReleaseNotes.raw.wiki @@ -8,6 +8,41 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f The following are the release notes for each !FreedomBox version. +== FreedomBox 25.1 (2025-01-13) == + +=== Highlights === + + * email: Show DNS entries for all domains instead of just primary + * privacy: Add option in UI to set lookup URL for public IPs + +=== Other Changes === + + * app: Add tags to menu and frontpage components + * app: Allow apps to instantiate without Django initialization + * app: Stop showing short description on installation page + * apps: Only show app tags all the tags in apps page search box + * backups: Add warning that services may become unavailable + * backups: Handle error when there is not enough space on disk + * backups: Make all generated archive names consistent + * backups: Properly cleanup after downloading an archive + * deluge: tests: functional: Fix deluge client logged in detection + * doc: dev: Remove short description and add tags to all components + * dynamicdns: Use the public IP lookup URL from privacy app + * email: Create DKIM keys for all known domains + * email: Fix regression error when installing/operation app + * email: Show reverse DNS entries to be configured + * locale: Translated using Weblate (German, Russian) + * miniflux: Ignore an type check error with pexpect library + * privacy: Introduce utility to lookup external IP address + * privacy: Show notification for privacy settings again + * ui: Don't place JS file at the bottom of the page + * ui: Drop remnants of already removed background images + * ui: Fix missing variables in Bootstrap 5.2/Debian stable + * ui: Update section header style to increase size, remove underline + * ui: js: Load all JS files in deferred mode to speed up page load + * views: Use tags from menu or shortcut instead of the app + * web_framework: Disable caching templates files in development mode + == FreedomBox 24.26.1 (2025-01-05) == === Highlights === diff --git a/doc/manual/es/VirtualBox.raw.wiki b/doc/manual/es/VirtualBox.raw.wiki index f79b51b17..fec534a68 100644 --- a/doc/manual/es/VirtualBox.raw.wiki +++ b/doc/manual/es/VirtualBox.raw.wiki @@ -175,7 +175,7 @@ If you want to mount images locally, use the following to copy built images off {{{ $ mkdir /tmp/vbox-img1 /tmp/vbox-root1 -$ vdfuse -f freedombox-unstable_2013.0519_virtualbox-i386-hdd.vdi /tmp/vbox-img1/ +$ vdfuse -f freedombox-unstable_2013.0519_virtualbox-amd64-hdd.vdi /tmp/vbox-img1/ $ sudo mount -o loop /tmp/vbox-img1/Partition1 /tmp/vbox-root1 $ cp /tmp/vbox-root1/home/fbx/freedom-maker/build/freedom*vdi ~/ $ sudo umount /tmp/vbox-root1 diff --git a/plinth/__init__.py b/plinth/__init__.py index d74322359..995bf7965 100644 --- a/plinth/__init__.py +++ b/plinth/__init__.py @@ -3,4 +3,4 @@ Package init file. """ -__version__ = '24.26.1' +__version__ = '25.1' diff --git a/plinth/app.py b/plinth/app.py index b14dd34ff..aa5db71f4 100644 --- a/plinth/app.py +++ b/plinth/app.py @@ -431,10 +431,14 @@ class LeaderComponent(Component): class Info(FollowerComponent): """Component to capture basic information about an app.""" - def __init__(self, app_id, version, is_essential=False, depends=None, - name=None, icon=None, icon_filename=None, - short_description=None, description=None, manual_page=None, - clients=None, donation_url=None, tags=None): + def __init__(self, app_id: str, version: int, is_essential: bool = False, + depends: list[str] | None = None, name: str | None = None, + icon: str | None = None, icon_filename: str | None = None, + description: list[str] | None = None, + manual_page: str | None = None, + clients: list[dict] | None = None, + donation_url: str | None = None, + tags: list[str] | None = None): """Store the basic properties of an app as a component. Each app must contain at least one component of this type to provide @@ -480,12 +484,6 @@ class Info(FollowerComponent): used in the primary app page and on the app listing page. Each app typically has either an 'icon' or 'icon_filename' property set. - 'short_description' is the user visible generic name of the app. For - example, for the 'Tor' app the short description is 'Anonymity - Network'. It is shown along with the name of the app in the list of - apps and when viewing the app's main page. It should be a lazily - translated Django string. - 'description' is the user visible full description of the app. It is shown along in the app page along with other app details. It should be a list of lazily translated Django strings. Each string is rendered as @@ -516,7 +514,6 @@ class Info(FollowerComponent): self.name = name self.icon = icon self.icon_filename = icon_filename - self.short_description = short_description self.description = description self.manual_page = manual_page self.clients = clients @@ -532,20 +529,19 @@ class Info(FollowerComponent): These can only be retrieved after Django has been configured. """ # Store untranslated original strings instead of proxy objects + from django.core.exceptions import ImproperlyConfigured + from django.utils.functional import Promise from django.utils.translation import override - with override(language=None): - return [str(tag) for tag in self._tags] - - @classmethod - def list_tags(self) -> list[str]: - """Return a list of untranslated tags.""" - tags: set[str] = set() - from django.utils.translation import override - with override(language=None): - for app in App.list(): - tags.update((str(tag) for tag in app.info.tags)) - - return list(tags) + try: + with override(language=None): + return [str(tag) for tag in self._tags] + except ImproperlyConfigured: + # Hack to allow apps to be instantiated without Django + # initialization as required by privileged process. + return [ + tag._proxy____args[0] if isinstance(tag, Promise) else tag + for tag in self._tags + ] class EnableState(LeaderComponent): diff --git a/plinth/frontpage.py b/plinth/frontpage.py index 08508b6c7..f9d79446d 100644 --- a/plinth/frontpage.py +++ b/plinth/frontpage.py @@ -17,10 +17,14 @@ class Shortcut(app.FollowerComponent): _all_shortcuts: ClassVar[dict[str, 'Shortcut']] = {} - def __init__(self, component_id, name, short_description=None, icon=None, - url=None, description=None, manual_page=None, - configure_url=None, clients=None, login_required=False, - allowed_groups=None): + def __init__(self, component_id: str, name: str | None, + icon: str | None = None, url: str | None = None, + description: list[str] | None = None, + manual_page: str | None = None, + configure_url: str | None = None, + clients: list[dict] | None = None, + tags: list[str] | None = None, login_required: bool = False, + allowed_groups: list[str] | None = None): """Initialize the frontpage shortcut component for an app. When a user visits this web interface, they are first shown the @@ -34,8 +38,6 @@ class Shortcut(app.FollowerComponent): 'name' is the mandatory title for the shortcut. - 'short_description' is an optional secondary title for the shortcut. - 'icon' is used to find a suitable image to represent the shortcut. 'url' is link to which the user is redirected when the shortcut is @@ -60,6 +62,9 @@ class Shortcut(app.FollowerComponent): service offered by the shortcut. This should be a valid client information structure as validated by clients.py:validate(). + 'tags' is a list of tags that describe the app. Tags help users to find + similar apps or alternatives and discover use cases. + If 'login_required' is true, only logged-in users will be shown this shortcut. Anonymous users visiting the frontpage won't be shown this shortcut. @@ -77,13 +82,13 @@ class Shortcut(app.FollowerComponent): url = '?selected={id}'.format(id=component_id) self.name = name - self.short_description = short_description self.url = url self.icon = icon self.description = description self.manual_page = manual_page self.configure_url = configure_url self.clients = clients + self.tags = tags self.login_required = login_required self.allowed_groups = set(allowed_groups) if allowed_groups else None @@ -140,9 +145,10 @@ def add_custom_shortcuts(): shortcut_id = shortcut.get('id', shortcut['name']) component_id = 'shortcut-custom-' + shortcut_id + tags = shortcut.get('tags', []) component = Shortcut(component_id, shortcut['name'], - shortcut['short_description'], - icon=shortcut['icon_url'], url=web_app_url) + icon=shortcut['icon_url'], tags=tags, + url=web_app_url) component.set_enabled(True) diff --git a/plinth/locale/ar/LC_MESSAGES/django.po b/plinth/locale/ar/LC_MESSAGES/django.po index 7764f7abd..0046ed0fa 100644 --- a/plinth/locale/ar/LC_MESSAGES/django.po +++ b/plinth/locale/ar/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2023-10-19 06:18+0000\n" "Last-Translator: Shaik \n" "Language-Team: Arabic user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "" @@ -508,16 +510,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "" @@ -561,10 +567,9 @@ msgstr "" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -703,107 +708,107 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -912,7 +917,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1030,8 +1035,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1061,7 +1068,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1644,7 +1651,7 @@ msgid "Test" msgstr "" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "" @@ -1657,7 +1664,7 @@ msgstr "" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1665,7 +1672,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1676,7 +1683,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1684,11 +1691,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "" @@ -1732,84 +1745,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1823,37 +1823,37 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -2001,7 +2001,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2009,7 +2009,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2057,12 +2057,16 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 -msgid "My Email Aliases" +#: modules/email/__init__.py:80 +msgid "More emails" msgstr "" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 +msgid "My Email Aliases" msgstr "" #: modules/email/forms.py:25 @@ -2141,45 +2145,90 @@ msgstr "" msgid "Add" msgstr "" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" msgstr "" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" - -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +msgid "Host" +msgstr "" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2422,7 +2471,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2749,9 +2798,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "عن" @@ -2884,7 +2933,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3208,7 +3257,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3574,7 +3623,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3582,43 +3631,43 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4033,23 +4082,27 @@ msgstr "" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4174,10 +4227,6 @@ msgid "" "or less." msgstr "" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4676,7 +4725,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -4729,7 +4778,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -4807,8 +4856,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -4892,7 +4941,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -4903,7 +4952,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -4995,7 +5044,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "" @@ -5389,11 +5438,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5561,7 +5606,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5740,8 +5785,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -5777,23 +5822,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -5804,11 +5859,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -5816,10 +5871,18 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +msgid "External services" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -6729,40 +6792,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7293,27 +7356,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7403,7 +7466,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -7965,39 +8028,39 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -8632,11 +8695,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8646,35 +8709,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -8876,20 +8939,20 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" diff --git a/plinth/locale/ar_SA/LC_MESSAGES/django.po b/plinth/locale/ar_SA/LC_MESSAGES/django.po index 2d50a4908..abd731337 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2020-06-10 15:41+0000\n" "Last-Translator: aiman an \n" "Language-Team: Arabic (Saudi Arabia) user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "" @@ -509,16 +511,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "" @@ -562,10 +568,9 @@ msgstr "" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -704,107 +709,107 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -913,7 +918,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1031,8 +1036,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1062,7 +1069,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1647,7 +1654,7 @@ msgid "Test" msgstr "" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "" @@ -1660,7 +1667,7 @@ msgstr "" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1668,7 +1675,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1679,7 +1686,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1687,11 +1694,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "" @@ -1735,84 +1748,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1826,37 +1826,37 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -2006,7 +2006,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2014,7 +2014,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2062,12 +2062,16 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 -msgid "My Email Aliases" +#: modules/email/__init__.py:80 +msgid "More emails" msgstr "" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 +msgid "My Email Aliases" msgstr "" #: modules/email/forms.py:25 @@ -2148,45 +2152,90 @@ msgstr "" msgid "Add" msgstr "" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" msgstr "" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" - -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +msgid "Host" +msgstr "" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2435,7 +2484,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2762,9 +2811,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "" @@ -2897,7 +2946,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3221,7 +3270,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3591,7 +3640,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3599,43 +3648,43 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4054,23 +4103,27 @@ msgstr "اسم المستخدم غير صالح:{username}" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4195,10 +4248,6 @@ msgid "" "or less." msgstr "" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4699,7 +4748,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -4752,7 +4801,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -4830,8 +4879,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -4915,7 +4964,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -4926,7 +4975,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5018,7 +5067,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "" @@ -5412,11 +5461,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5584,7 +5629,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5763,8 +5808,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -5800,23 +5845,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -5827,11 +5882,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -5839,10 +5894,20 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Web Server" +msgid "External services" +msgstr "خادم ويب" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -6754,40 +6819,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7318,27 +7383,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7428,7 +7493,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -7990,39 +8055,39 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -8657,11 +8722,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8671,35 +8736,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -8901,20 +8966,20 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" diff --git a/plinth/locale/be/LC_MESSAGES/django.po b/plinth/locale/be/LC_MESSAGES/django.po index 7a7b36786..86bdc6bc2 100644 --- a/plinth/locale/be/LC_MESSAGES/django.po +++ b/plinth/locale/be/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -21,7 +21,7 @@ msgstr "" msgid "Static configuration {etc_path} is setup properly" msgstr "" -#: context_processors.py:21 views.py:169 +#: context_processors.py:21 views.py:168 msgid "FreedomBox" msgstr "" @@ -94,32 +94,32 @@ msgstr "" msgid "Use the language preference set in the browser" msgstr "" -#: menu.py:112 templates/base.html:119 +#: menu.py:116 templates/base.html:121 msgid "Home" msgstr "" -#: menu.py:113 templates/base.html:128 +#: menu.py:117 templates/base.html:130 msgid "Apps" msgstr "" -#: menu.py:115 menu.py:122 templates/base.html:137 +#: menu.py:119 menu.py:126 templates/base.html:139 msgid "System" msgstr "" -#: menu.py:118 +#: menu.py:122 msgid "Visibility" msgstr "" -#: menu.py:120 +#: menu.py:124 msgid "Data" msgstr "" -#: menu.py:124 modules/networks/templates/connection_show.html:274 +#: menu.py:128 modules/networks/templates/connection_show.html:274 #: modules/security/__init__.py:35 modules/upgrades/manifest.py:10 msgid "Security" msgstr "" -#: menu.py:126 +#: menu.py:130 msgid "Administration" msgstr "" @@ -214,7 +214,7 @@ msgid "Enable a Backup Schedule" msgstr "" #: modules/backups/__init__.py:181 modules/backups/__init__.py:228 -#: modules/privacy/__init__.py:79 modules/storage/__init__.py:326 +#: modules/privacy/__init__.py:84 modules/storage/__init__.py:326 #: modules/upgrades/__init__.py:149 #, python-brace-format msgid "Go to {app_name}" @@ -281,23 +281,25 @@ msgstr "" msgid "Hour of the day to trigger backup operation" msgstr "" -#: modules/backups/forms.py:80 -msgid "In 24 hour format." +#: modules/backups/forms.py:81 +msgid "" +"In 24 hour format. Services may become temporarily unavailable while running " +"backup operation at this time of the day." msgstr "" -#: modules/backups/forms.py:83 modules/backups/forms.py:105 +#: modules/backups/forms.py:85 modules/backups/forms.py:107 msgid "Included apps" msgstr "" -#: modules/backups/forms.py:83 modules/backups/forms.py:105 +#: modules/backups/forms.py:85 modules/backups/forms.py:107 msgid "Apps to include in the backup" msgstr "" -#: modules/backups/forms.py:99 +#: modules/backups/forms.py:101 msgid "Repository" msgstr "" -#: modules/backups/forms.py:101 +#: modules/backups/forms.py:103 #: modules/backups/templates/backups_delete.html:17 modules/ikiwiki/forms.py:15 #: modules/networks/templates/connection_show.html:75 #: modules/samba/templates/samba.html:66 @@ -305,23 +307,23 @@ msgstr "" msgid "Name" msgstr "" -#: modules/backups/forms.py:102 +#: modules/backups/forms.py:104 msgid "(Optional) Set a name for this backup archive" msgstr "" -#: modules/backups/forms.py:123 +#: modules/backups/forms.py:125 msgid "Select the apps you want to restore" msgstr "" -#: modules/backups/forms.py:139 modules/kiwix/forms.py:21 +#: modules/backups/forms.py:141 modules/kiwix/forms.py:21 msgid "Upload File" msgstr "" -#: modules/backups/forms.py:141 +#: modules/backups/forms.py:143 msgid "Backup files have to be in .tar.gz format" msgstr "" -#: modules/backups/forms.py:143 +#: modules/backups/forms.py:145 #, python-brace-format msgid "" "Select the backup file to upload from the local computer. This must be a " @@ -329,109 +331,109 @@ msgid "" "{box_name}. It must have a .tar.gz extension." msgstr "" -#: modules/backups/forms.py:152 +#: modules/backups/forms.py:154 msgid "Repository path format incorrect." msgstr "" -#: modules/backups/forms.py:159 +#: modules/backups/forms.py:161 #, python-brace-format msgid "Invalid username: {username}" msgstr "" -#: modules/backups/forms.py:169 +#: modules/backups/forms.py:171 #, python-brace-format msgid "Invalid hostname: {hostname}" msgstr "" -#: modules/backups/forms.py:173 +#: modules/backups/forms.py:175 #, python-brace-format msgid "Invalid directory path: {dir_path}" msgstr "" -#: modules/backups/forms.py:179 modules/letsencrypt/manifest.py:11 +#: modules/backups/forms.py:181 modules/letsencrypt/manifest.py:11 msgid "Encryption" msgstr "" -#: modules/backups/forms.py:180 +#: modules/backups/forms.py:182 msgid "" "\"Key in Repository\" means that a password-protected key is stored with the " "backup." msgstr "" -#: modules/backups/forms.py:182 +#: modules/backups/forms.py:184 msgid "Key in Repository" msgstr "" -#: modules/backups/forms.py:182 -#: modules/matrixsynapse/templates/matrix-synapse.html:62 +#: modules/backups/forms.py:184 +#: modules/matrixsynapse/templates/matrix-synapse.html:67 #: modules/searx/forms.py:14 msgid "None" msgstr "" -#: modules/backups/forms.py:184 modules/networks/forms.py:340 +#: modules/backups/forms.py:186 modules/networks/forms.py:340 msgid "Passphrase" msgstr "" -#: modules/backups/forms.py:185 +#: modules/backups/forms.py:187 msgid "Passphrase; Only needed when using encryption." msgstr "" -#: modules/backups/forms.py:188 +#: modules/backups/forms.py:190 msgid "Confirm Passphrase" msgstr "" -#: modules/backups/forms.py:188 +#: modules/backups/forms.py:190 msgid "Repeat the passphrase." msgstr "" -#: modules/backups/forms.py:199 +#: modules/backups/forms.py:201 msgid "The entered encryption passphrases do not match" msgstr "" -#: modules/backups/forms.py:203 +#: modules/backups/forms.py:205 msgid "Passphrase is needed for encryption." msgstr "" -#: modules/backups/forms.py:238 +#: modules/backups/forms.py:240 msgid "Select Disk or Partition" msgstr "" -#: modules/backups/forms.py:239 +#: modules/backups/forms.py:241 msgid "Backups will be stored in the directory FreedomBoxBackups" msgstr "" -#: modules/backups/forms.py:248 +#: modules/backups/forms.py:250 msgid "SSH Repository Path" msgstr "" -#: modules/backups/forms.py:249 +#: modules/backups/forms.py:251 msgid "" "Path of a new or existing repository. Example: user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "" @@ -501,16 +503,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "" @@ -554,10 +560,9 @@ msgstr "" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -696,107 +701,107 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -905,7 +910,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1023,8 +1028,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1054,7 +1061,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1637,7 +1644,7 @@ msgid "Test" msgstr "" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "" @@ -1650,7 +1657,7 @@ msgstr "" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1658,7 +1665,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1669,7 +1676,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1677,11 +1684,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "" @@ -1725,84 +1738,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1816,37 +1816,37 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -1994,7 +1994,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2002,7 +2002,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2050,12 +2050,16 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 -msgid "My Email Aliases" +#: modules/email/__init__.py:80 +msgid "More emails" msgstr "" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 +msgid "My Email Aliases" msgstr "" #: modules/email/forms.py:25 @@ -2134,45 +2138,90 @@ msgstr "" msgid "Add" msgstr "" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" msgstr "" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" - -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +msgid "Host" +msgstr "" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2415,7 +2464,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2742,9 +2791,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "" @@ -2877,7 +2926,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3199,7 +3248,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3563,7 +3612,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3571,43 +3620,43 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4016,23 +4065,27 @@ msgstr "" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4157,10 +4210,6 @@ msgid "" "or less." msgstr "" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4657,7 +4706,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -4710,7 +4759,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -4788,8 +4837,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -4873,7 +4922,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -4884,7 +4933,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -4976,7 +5025,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "" @@ -5370,11 +5419,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5540,7 +5585,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5719,8 +5764,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -5756,23 +5801,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -5783,11 +5838,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -5795,10 +5850,18 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +msgid "External services" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -6706,40 +6769,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7270,27 +7333,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7380,7 +7443,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -7941,39 +8004,39 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -8596,11 +8659,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8610,35 +8673,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -8838,19 +8901,19 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" diff --git a/plinth/locale/bg/LC_MESSAGES/django.po b/plinth/locale/bg/LC_MESSAGES/django.po index 5b503591d..fcb0c1db9 100644 --- a/plinth/locale/bg/LC_MESSAGES/django.po +++ b/plinth/locale/bg/LC_MESSAGES/django.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2025-01-03 22:02+0000\n" -"Last-Translator: 109247019824 <109247019824@users.noreply.hosted.weblate.org>" -"\n" +"Last-Translator: 109247019824 <109247019824@users.noreply.hosted.weblate." +"org>\n" "Language-Team: Bulgarian \n" "Language: bg\n" @@ -25,7 +25,7 @@ msgstr "" msgid "Static configuration {etc_path} is setup properly" msgstr "Статичните настройки {etc_path} са правилно настроени" -#: context_processors.py:21 views.py:169 +#: context_processors.py:21 views.py:168 msgid "FreedomBox" msgstr "FreedomBox" @@ -103,32 +103,32 @@ msgstr "Език на интерфейса" msgid "Use the language preference set in the browser" msgstr "Използване на предпочитания от четеца език" -#: menu.py:112 templates/base.html:119 +#: menu.py:116 templates/base.html:121 msgid "Home" msgstr "Начало" -#: menu.py:113 templates/base.html:128 +#: menu.py:117 templates/base.html:130 msgid "Apps" msgstr "Приложения" -#: menu.py:115 menu.py:122 templates/base.html:137 +#: menu.py:119 menu.py:126 templates/base.html:139 msgid "System" msgstr "Системни" -#: menu.py:118 +#: menu.py:122 msgid "Visibility" msgstr "Видимост" -#: menu.py:120 +#: menu.py:124 msgid "Data" msgstr "Данни" -#: menu.py:124 modules/networks/templates/connection_show.html:274 +#: menu.py:128 modules/networks/templates/connection_show.html:274 #: modules/security/__init__.py:35 modules/upgrades/manifest.py:10 msgid "Security" msgstr "Сигурност" -#: menu.py:126 +#: menu.py:130 msgid "Administration" msgstr "Администриране" @@ -232,7 +232,7 @@ msgid "Enable a Backup Schedule" msgstr "Включване на резервни копия по график" #: modules/backups/__init__.py:181 modules/backups/__init__.py:228 -#: modules/privacy/__init__.py:79 modules/storage/__init__.py:326 +#: modules/privacy/__init__.py:84 modules/storage/__init__.py:326 #: modules/upgrades/__init__.py:149 #, python-brace-format msgid "Go to {app_name}" @@ -313,23 +313,25 @@ msgstr "" msgid "Hour of the day to trigger backup operation" msgstr "Час от деня, в който да бъде създадено резервното копие" -#: modules/backups/forms.py:80 -msgid "In 24 hour format." -msgstr "24-часов формат." +#: modules/backups/forms.py:81 +msgid "" +"In 24 hour format. Services may become temporarily unavailable while running " +"backup operation at this time of the day." +msgstr "" -#: modules/backups/forms.py:83 modules/backups/forms.py:105 +#: modules/backups/forms.py:85 modules/backups/forms.py:107 msgid "Included apps" msgstr "Включени приложения" -#: modules/backups/forms.py:83 modules/backups/forms.py:105 +#: modules/backups/forms.py:85 modules/backups/forms.py:107 msgid "Apps to include in the backup" msgstr "Приложения, които да бъдат включени в резервното копие" -#: modules/backups/forms.py:99 +#: modules/backups/forms.py:101 msgid "Repository" msgstr "Хранилище" -#: modules/backups/forms.py:101 +#: modules/backups/forms.py:103 #: modules/backups/templates/backups_delete.html:17 modules/ikiwiki/forms.py:15 #: modules/networks/templates/connection_show.html:75 #: modules/samba/templates/samba.html:66 @@ -337,23 +339,23 @@ msgstr "Хранилище" msgid "Name" msgstr "Наименование" -#: modules/backups/forms.py:102 +#: modules/backups/forms.py:104 msgid "(Optional) Set a name for this backup archive" msgstr "(по избор) Задайте име на архивното копие" -#: modules/backups/forms.py:123 +#: modules/backups/forms.py:125 msgid "Select the apps you want to restore" msgstr "Изберете приложенията, които да бъдат възстановени" -#: modules/backups/forms.py:139 modules/kiwix/forms.py:21 +#: modules/backups/forms.py:141 modules/kiwix/forms.py:21 msgid "Upload File" msgstr "Изпращане на файл" -#: modules/backups/forms.py:141 +#: modules/backups/forms.py:143 msgid "Backup files have to be in .tar.gz format" msgstr "Архивните файлове трябва да бъдат във формат .tar.gz" -#: modules/backups/forms.py:143 +#: modules/backups/forms.py:145 #, python-brace-format msgid "" "Select the backup file to upload from the local computer. This must be a " @@ -364,30 +366,30 @@ msgstr "" "трябва да бъде файл, резултат от успешно резервно копие на {box_name}, който " "е бил изтеглен предварително. Трябва да има разширение .tar.gz." -#: modules/backups/forms.py:152 +#: modules/backups/forms.py:154 msgid "Repository path format incorrect." msgstr "Неправилен формат на пътя до хранилището." -#: modules/backups/forms.py:159 +#: modules/backups/forms.py:161 #, python-brace-format msgid "Invalid username: {username}" msgstr "Недействително потребителско име: {username}" -#: modules/backups/forms.py:169 +#: modules/backups/forms.py:171 #, python-brace-format msgid "Invalid hostname: {hostname}" msgstr "Недействително име на хост: {hostname}" -#: modules/backups/forms.py:173 +#: modules/backups/forms.py:175 #, python-brace-format msgid "Invalid directory path: {dir_path}" msgstr "Недействителен път до папка: {dir_path}" -#: modules/backups/forms.py:179 modules/letsencrypt/manifest.py:11 +#: modules/backups/forms.py:181 modules/letsencrypt/manifest.py:11 msgid "Encryption" msgstr "Шифроване" -#: modules/backups/forms.py:180 +#: modules/backups/forms.py:182 msgid "" "\"Key in Repository\" means that a password-protected key is stored with the " "backup." @@ -395,53 +397,53 @@ msgstr "" "„Ключ в хранилището“ означава, че защитен с парола ключ се съхранява заедно " "с резервното копие." -#: modules/backups/forms.py:182 +#: modules/backups/forms.py:184 msgid "Key in Repository" msgstr "Ключ в хранилището" -#: modules/backups/forms.py:182 -#: modules/matrixsynapse/templates/matrix-synapse.html:62 +#: modules/backups/forms.py:184 +#: modules/matrixsynapse/templates/matrix-synapse.html:67 #: modules/searx/forms.py:14 msgid "None" msgstr "Няма" -#: modules/backups/forms.py:184 modules/networks/forms.py:340 +#: modules/backups/forms.py:186 modules/networks/forms.py:340 msgid "Passphrase" msgstr "Фраза за достъп" -#: modules/backups/forms.py:185 +#: modules/backups/forms.py:187 msgid "Passphrase; Only needed when using encryption." msgstr "Фраза за достъп; Необходима е само при използване на шифроване." -#: modules/backups/forms.py:188 +#: modules/backups/forms.py:190 msgid "Confirm Passphrase" msgstr "Потвърждаване на фразата за достъп" -#: modules/backups/forms.py:188 +#: modules/backups/forms.py:190 msgid "Repeat the passphrase." msgstr "Повторете фразата за достъп." -#: modules/backups/forms.py:199 +#: modules/backups/forms.py:201 msgid "The entered encryption passphrases do not match" msgstr "Въведените фрази за достъп за шифроване не съвпадат" -#: modules/backups/forms.py:203 +#: modules/backups/forms.py:205 msgid "Passphrase is needed for encryption." msgstr "За шифроване е необходима фраза за достъп." -#: modules/backups/forms.py:238 +#: modules/backups/forms.py:240 msgid "Select Disk or Partition" msgstr "Избиране на диск или дял" -#: modules/backups/forms.py:239 +#: modules/backups/forms.py:241 msgid "Backups will be stored in the directory FreedomBoxBackups" msgstr "Резервните копия ще се съхраняват в папката FreedomBoxBackups" -#: modules/backups/forms.py:248 +#: modules/backups/forms.py:250 msgid "SSH Repository Path" msgstr "Път към хранилището на SSH" -#: modules/backups/forms.py:249 +#: modules/backups/forms.py:251 msgid "" "Path of a new or existing repository. Example: user@host:~/path/to/repo/" @@ -449,11 +451,11 @@ msgstr "" "Път към ново или съществуващо хранилище. Пример: user@host:~/path/to/repo/" "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "Парола за сървъра на SSH" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -461,18 +463,18 @@ msgstr "" "Парола за сървъра на SSH.
Удостоверяване на SSH с ключове все още не е " "възможно." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Отдалеченото хранилище за резервни копия вече съществува." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Изберете проверен публичен ключ за SSH" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Възстановяване" @@ -546,16 +548,20 @@ msgstr "Разервно копие с това име не съществува msgid "Backup system is busy with another operation." msgstr "Системата за резервни копия е заета с друго действие." +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Съществуващото хранилище не е шифровано." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "Хранилище на {box_name}" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Създаване на резервно копие" @@ -599,10 +605,9 @@ msgstr "Съществуващи архивни копия" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -764,107 +769,107 @@ msgstr "" msgid "Verify Host" msgstr "Проверяване на хоста" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Графикът за резервни копия е променен." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Резервни копия по график" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Архивът е създаден." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Премахване на архив" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Архивът е премахнат." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Качване и възстановяване от резервно копие" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "Файлът е изпратен." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Не е намерено резервно копие." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Възстановяване от качен файл" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Файловете от резервното копие са възстановени." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Няма допълнителни дискове, на които да бъде създадено хранилище." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Създаване на хранилище за резервни копия" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "Добавено е хранилище." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Създаване на отдалечено хранилище за резервни копия" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Създадено е отдалечено хранилище с достъп през SSH." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Проверяване на ключ за SSH на хост" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "SSH на хоста вече е проверен." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH на хоста е проверен." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "Публичният ключ за SSH на хоста не може да бъде проверен." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Удостоверяването на отдалечения сървър е неуспешно." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Грешка при свързване със сървъра: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Хранилището е премахнато." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Премахване на хранилище" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Хранилището е премахнато. Резервните копия не са премахнати." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Грешка при размонтиране!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Грешка при монтиране" @@ -977,7 +982,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1095,8 +1100,10 @@ msgstr "Разпознаване" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1126,7 +1133,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1735,7 +1742,7 @@ msgid "Test" msgstr "Проверка" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Резултат" @@ -1748,7 +1755,7 @@ msgstr "Диагностична проверка" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1756,7 +1763,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1767,7 +1774,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1775,11 +1782,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "" @@ -1823,84 +1836,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "Адрес за обновяване" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Име на домейн" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Недопустимо име на домейн" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Потребителско име" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Показване на паролата" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1914,37 +1914,37 @@ msgstr "" msgid "Needs public IP" msgstr "Необходим е публичен адрес по IP" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Състояние" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Последно обновяване" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "Адрес по IP" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -2097,7 +2097,7 @@ msgstr "Видео разговори" msgid "XMPP" msgstr "XMPP" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2105,7 +2105,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2153,12 +2153,16 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 -msgid "My Email Aliases" +#: modules/email/__init__.py:80 +msgid "More emails" msgstr "" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 +msgid "My Email Aliases" msgstr "" #: modules/email/forms.py:25 @@ -2237,47 +2241,100 @@ msgstr "" msgid "Add" msgstr "Добавяне" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "Управление на нежелана поща" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "Записи на DNS" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" "Следните записи на DNS трябва да бъдат добавени ръчно в основния домейн, за " "да работи правилно пощенският сървър." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "TTL" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "Клас" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "Приоритет" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "Тежест" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "Порт" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "Хост/цел/стойност" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Име на хоста" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "Управление на нежелана поща" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Домейни" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2523,7 +2580,7 @@ msgstr "Порт {name} ({details}) достъпен за външните мр msgid "Port {name} ({details}) unavailable for external networks" msgstr "Порт {name} ({details}) недостъпен за външните мрежи" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Портове" @@ -2859,9 +2916,9 @@ msgstr "Обратна връзка" msgid "Contribute" msgstr "Допринасяне" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "За проекта" @@ -2995,7 +3052,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Научете повече…" @@ -3324,7 +3381,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3594,8 +3651,8 @@ msgid "" "No domains have been configured. Configure " "domains to be able to obtain certificates for them." msgstr "" -"Не са настроени домейни. За да получите сертификат трябва да настройте домейн." +"Не са настроени домейни. За да получите сертификат трябва да настройте домейн." #: modules/letsencrypt/views.py:40 #, python-brace-format @@ -3724,7 +3781,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3732,43 +3789,43 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4189,23 +4246,29 @@ msgstr "Нулиране на паролата на потребител: {usern msgid "An error occurred during password reset: {error}." msgstr "Възникна грешка при нулиране на паролата: {error}." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "grub package is configured" +msgid "Mumble server is configured" +msgstr "Пакетът grub е настроен" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4342,10 +4405,6 @@ msgstr "" "трябва да надхвърля 63 знака. Максималната дължина на името на домейна е 253 " "знака." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Домейни" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "Разпознаване на DNS" @@ -4914,7 +4973,7 @@ msgstr "Редактиране на връзката" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Редактиране" @@ -4967,7 +5026,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Описание" @@ -5045,8 +5104,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "Поверителност" @@ -5130,7 +5189,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Редактиране на връзката" @@ -5141,7 +5200,7 @@ msgid "Error:" msgstr "Грешка:" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Затваряне" @@ -5233,7 +5292,7 @@ msgstr "Обновяване…" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Изпращане" @@ -5627,11 +5686,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "Приложението е експериментално." - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "Nextcloud" @@ -5800,7 +5855,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5985,8 +6040,8 @@ msgstr "Рестартиране" msgid "Shutdown" msgstr "Изключване" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Рестартиране" @@ -6028,26 +6083,36 @@ msgstr "" msgid "Shut Down Now" msgstr "Изключване" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "Управление на настройките за поверителност в цялата система." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" "Изберете настройките за поверителност, които отговарят на вашите " "предпочитания." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "Преглед на настройките за поверителност" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" "Периодично изпращане на списък с използваните приложения (препоръчително)" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6065,11 +6130,11 @@ msgstr "" "target=\"_blank\">popcon.debian.org. За допълнителна анонимност данните " "се изпращат през мрежата на Тор, ако приложението Тор е включено." -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6077,10 +6142,20 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "Отчет за използването" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Onion services" +msgid "External services" +msgstr "Услуга на Onion" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "Резервни DNS" @@ -7018,40 +7093,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7460,8 +7535,8 @@ msgid "" "are provided by the Cockpit app." msgstr "" "Разширените операции с носителите, като разделяне на дялове и управление на " -"RAID, се осигуряват от приложението Cockpit." +"RAID, се осигуряват от приложението Cockpit." #: modules/storage/templates/storage_expand.html:14 #, python-format @@ -7628,27 +7703,27 @@ msgstr "" msgid "Tor" msgstr "Тор" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Услуга на Тор Onion" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Транспортът Obfs3 е регистриран" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Транспортът Obfs4 е регистриран" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "Услугата на Onion е версия 3" @@ -7758,7 +7833,7 @@ msgstr "" msgid "Anonymity network" msgstr "Анонимна мрежа" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Услуга на Onion" @@ -8217,10 +8292,10 @@ msgid "" "SSH and have administrative privileges (sudo)." msgstr "" "Изберете кои услуги да бъдат достъпни за новия потребител. Той ще може да " -"влиза в услуги, които поддържат вход чрез LDAP, ако е в съответната " -"група.

Потребителите в групата admin ще могат да влизат във всички " -"услуги. Те могат също така да влизат в системата чрез SSH и да имат " -"администраторски права (sudo)." +"влиза в услуги, които поддържат вход чрез LDAP, ако е в съответната група." +"

Потребителите в групата admin ще могат да влизат във всички услуги. " +"Те могат също така да влизат в системата чрез SSH и да имат администраторски " +"права (sudo)." #: modules/users/forms.py:125 msgid "Enter a valid username." @@ -8230,8 +8305,8 @@ msgstr "Въведете съществуващо потребителско и msgid "" "Required. 150 characters or fewer. English letters, digits and @/./-/_ only." msgstr "" -"Задължително. 150 знака или по-малко. Само латински букви, цифри и знаците @/" -"./-/_." +"Задължително. 150 знака или по-малко. Само латински букви, цифри и знаците " +"@/./-/_." #: modules/users/forms.py:141 msgid "Authorization Password" @@ -8384,10 +8459,10 @@ msgid "" msgstr "" "За да създадете профил, който може да бъде използван с %(box_name)s, " "премахнете тези профили от командния ред и презаредете страницата. От " -"команднен ред изпълнете командата „echo '{\"args\": " -"[\"USERNAME\", \"PASSWORD\"], \"kwargs\": {}}' | sudo /usr/share/plinth/" -"actions/actions users remove_user“. Ако профилът вече може да се използва с " -"%(box_name)s, прескочете тази стъпка." +"команднен ред изпълнете командата „echo '{\"args\": [\"USERNAME\", " +"\"PASSWORD\"], \"kwargs\": {}}' | sudo /usr/share/plinth/actions/actions " +"users remove_user“. Ако профилът вече може да се използва с %(box_name)s, " +"прескочете тази стъпка." #: modules/users/templates/users_firstboot.html:69 msgid "Skip this step" @@ -8402,12 +8477,12 @@ msgstr "Поребители" msgid "Edit user %(username)s" msgstr "Промяна на потребителя %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Променяне на потребителя %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the
change password form to " @@ -8416,19 +8491,19 @@ msgstr "" "За да промените паролата, използвайте формуляра за промяна на парола." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Запазване на промените" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" "Потвърждавате ли премахването на потребителя %(username)s и всички " "негови файлове?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." @@ -8437,11 +8512,11 @@ msgstr "" "домашната му папка. Ако желаете тези файлове да бъдат запазени, вместо да " "премахвате профила го изключете." -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "Премахване на файловете на %(username)s" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Отказ" @@ -9066,11 +9141,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "Услугата %(service_name)s не работи." -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "Търсене по етикети" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "Изчистване на всички етикети" @@ -9083,35 +9158,35 @@ msgstr "" "данни. Това е безплатен софтуер, който ви позволява да инсталирате и " "управлявате сървърни приложения с лекота." -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Начало" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Приложения" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " Системни" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Промяна на парола" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Изключване" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Изход" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Избор на език" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Вход" @@ -9316,23 +9391,29 @@ msgstr "" "Всички данни и настройки на приложението ще бъдат загубени. Приложението " "може да бъде инсталирано отново." -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "Тук" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Настройките не са променени" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "преди премахване на {app_id}" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Гуджарати" +#~ msgid "In 24 hour format." +#~ msgstr "24-часов формат." + +#~ msgid "This app is experimental." +#~ msgstr "Приложението е експериментално." + #~ msgid "VoIP Helper" #~ msgstr "Помощник за VoIP" diff --git a/plinth/locale/bn/LC_MESSAGES/django.po b/plinth/locale/bn/LC_MESSAGES/django.po index e013ad09a..9b7c9808d 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2021-06-16 07:33+0000\n" "Last-Translator: Oymate \n" "Language-Team: Bengali user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "" @@ -506,16 +508,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "" @@ -559,10 +565,9 @@ msgstr "" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -701,107 +706,107 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -910,7 +915,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1028,8 +1033,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1059,7 +1066,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1656,7 +1663,7 @@ msgid "Test" msgstr "পরীক্ষা" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 #, fuzzy msgid "Result" msgstr "ফলাফল" @@ -1670,7 +1677,7 @@ msgstr "" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1678,7 +1685,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1689,7 +1696,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1697,11 +1704,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "" @@ -1745,84 +1758,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "নাম" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1836,37 +1836,37 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "অবস্থা" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -2016,7 +2016,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2024,7 +2024,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2072,18 +2072,20 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Enabled" msgid "My Email Aliases" msgstr "সক্রিয়" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Enabled" -msgid "Manage Aliases for Mailbox" -msgstr "সক্রিয়" - #: modules/email/forms.py:25 #, fuzzy #| msgid "Domain" @@ -2166,45 +2168,94 @@ msgstr "" msgid "Add" msgstr "" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" +msgstr "" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "হোস্ট নাম" + #: modules/email/templates/email.html:10 #, fuzzy #| msgid "Enabled" msgid "Manage Spam" msgstr "সক্রিয়" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +#, fuzzy +#| msgid "Domain" +msgid "Domains" +msgstr "ডোমেন" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email.html:23 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." msgstr "" -#: modules/email/templates/email.html:36 -msgid "TTL" -msgstr "" - -#: modules/email/templates/email.html:37 -msgid "Class" -msgstr "" - -#: modules/email/templates/email.html:39 -msgid "Priority" -msgstr "" - -#: modules/email/templates/email.html:40 -msgid "Weight" -msgstr "" - -#: modules/email/templates/email.html:41 -#: modules/minetest/templates/minetest.html:18 -msgid "Port" -msgstr "" - -#: modules/email/templates/email.html:42 -msgid "Host/Target/Value" +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" msgstr "" #: modules/featherwiki/__init__.py:25 @@ -2451,7 +2502,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2780,9 +2831,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "সম্পর্কে" @@ -2915,7 +2966,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3237,7 +3288,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3601,7 +3652,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3609,43 +3660,43 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4062,23 +4113,27 @@ msgstr "" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4203,12 +4258,6 @@ msgid "" "or less." msgstr "" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -#, fuzzy -#| msgid "Domain" -msgid "Domains" -msgstr "ডোমেন" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4709,7 +4758,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -4762,7 +4811,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -4840,8 +4889,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -4925,7 +4974,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -4936,7 +4985,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5028,7 +5077,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "জমা দাও" @@ -5422,11 +5471,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5594,7 +5639,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5773,8 +5818,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -5810,23 +5855,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -5837,11 +5892,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -5849,10 +5904,18 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +msgid "External services" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -6762,40 +6825,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7328,27 +7391,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7438,7 +7501,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -8005,39 +8068,39 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "বাতিল" @@ -8661,11 +8724,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8675,35 +8738,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -8905,23 +8968,28 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Enabled" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "সক্রিয়" + #~ msgid "Documentation" #~ msgstr "নির্দেশিকা" diff --git a/plinth/locale/cs/LC_MESSAGES/django.po b/plinth/locale/cs/LC_MESSAGES/django.po index b3cf1b180..c4071785f 100644 --- a/plinth/locale/cs/LC_MESSAGES/django.po +++ b/plinth/locale/cs/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2025-01-02 09:00+0000\n" "Last-Translator: Jiří Podhorecký \n" "Language-Team: Czech user@host:~/path/to/repo/" @@ -444,28 +446,28 @@ msgstr "" "Popis umístění nového nebo existujícího repozitáře. Příklad: user@host:~/" "path/to/repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "Heslo SSH serveru" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "Heslo serveru SSH.
Ověřování pomocí klíčů SSH zatím není možné." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Repozitář se zálohou už na protějšku existuje." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Vyberte ověřený SSH veřejný klíč" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Obnovit" @@ -539,16 +541,20 @@ msgstr "Archiv s daným názvem nebyl v úložišti nalezen." msgid "Backup system is busy with another operation." msgstr "Zálohovací systém je zaneprázdněn jinou operací." +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Existující repozitář není šifrován." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "Úložiště {box_name}" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Vytvořit novou zálohu" @@ -592,10 +598,9 @@ msgstr "Existující zálohy" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -755,107 +760,107 @@ msgstr "" msgid "Verify Host" msgstr "Ověřit stroj" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Plán zálohování aktualizován." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Plánování záloh" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Archiv vytvořen." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Smazat archiv" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Archiv smazán." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Nahrát zálohu a obnovit z ní" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "Nahrání bylo úspěšné." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Nebyl nalezen žádný soubor se zálohou." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Obnovit z nahraného souboru" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Soubory obnovené ze zálohy." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Nejsou k dispozici žádná další úložiště pro přidání repozitáře." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Vytvořit repozitář pro zálohy" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "Přidáno nové úložiště." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Vytvořit repozitář pro zálohy na protějšku" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Přidán nový vzdálený SSH repozitář." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Ověřit SSH klíč stroje" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "SSH stroj už je ověřen." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH stroj ověřen." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "Veřejný klíč SSH stroje se nepodařilo ověřit." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Ověření vůči vzdálenému serveru se nezdařilo." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Chyba při navazování spojení se serverem: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Repozitář odstraněn." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Odebrat repozitář" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Repozitář odebrán. Zálohy jako takové smazány nebyly." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Odpojení se nezdařilo!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Připojení (mount) se nezdařilo" @@ -975,7 +980,7 @@ msgstr "Přidat heslo" msgid "No passwords currently configured." msgstr "V současné době nejsou nakonfigurována žádná hesla." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1099,8 +1104,10 @@ msgstr "Řešitel" msgid "Serving Domains" msgstr "Obsluhované domény" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1130,7 +1137,7 @@ msgstr "Obnovení IP adresy a domén" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1766,7 +1773,7 @@ msgid "Test" msgstr "Vyzkoušet" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Výsledek" @@ -1779,7 +1786,7 @@ msgstr "Diagnostické testy" msgid "App {app_id} is not installed, cannot repair" msgstr "Aplikace {app_id} není nainstalována, nelze opravit" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1790,7 +1797,7 @@ msgstr "" "každých 24 hodin), může být pro ostatní obtížné vás na internetu najít. To " "ostatním znemožní najít služby, které jsou poskytovány tímto {box_name}." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1807,7 +1814,7 @@ msgstr "" "váš název DNS k nové IP adrese, a pokud se někdo z Internetu zeptá na váš " "název DNS, dostane odpověď s vaší aktuální IP adresou." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1820,11 +1827,17 @@ msgstr "" "založené na aktualizaci URL na adrese freedns.afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Klient dynamické DNS" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Název dynamické domény" @@ -1883,88 +1896,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "Pokud chcete zachovat stávající heslo, tuto kolonku nevyplňujte." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Volitelná hodnota. Pokud vaše {box_name} není připojeno přímo k internetu " -"(tj. je připojeno ke směrovači NAT), použije se tato adresa URL k určení " -"skutečné IP adresy. Adresa URL by měla jednoduše vrátit IP adresu, ze které " -"klient přichází (příklad: https://ddns.freedombox.org/ip/)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Uživatelské jméno které bylo použito pro vytvoření účtu." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "Další aktualizace URL" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Typ služby" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "Adresa GnuDIP serveru" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Neplatný název serveru" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "URL adresa aktualizace" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Přijímat veškeré SSL certifikáty" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Použít základní HTTP ověřování" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Doménový název" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Neplatný doménový název" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Uživatelské jméno" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Zobrazit heslo" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "URL adresa na které hledat veřejnou IP adresu" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "Použijte IPv6 místo IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "Toto pole je povinné." #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1978,37 +1974,37 @@ msgstr "Zdarma" msgid "Needs public IP" msgstr "Potřebuje veřejnou IP" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Stav" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Minulá aktualizace" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "IP adresa" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "Úspěšné" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "Selhalo" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "Stav není k dispozici." @@ -2178,7 +2174,7 @@ msgstr "Video chat" msgid "XMPP" msgstr "XMPP" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2190,7 +2186,7 @@ msgstr "" "můžete nastavit na systémové stránce Name " "Services." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2257,14 +2253,18 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix / Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "Moje e-mailové aliasy" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "Správa aliasů pro poštovní schránku" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "Primární doména" @@ -2343,47 +2343,103 @@ msgstr "Vytvořit nový e-mailový alias" msgid "Add" msgstr "Přidat" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "Správa spamu" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "Záznamy DNS" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." 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." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "TTL" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "Třída" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "Priorita" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "Váha" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "Port" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "Hostitel / cíl / hodnota" +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "Název nebo IP adresa serveru" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Název stroje" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "Správa spamu" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Domény" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, fuzzy, python-format +#| msgid "Resolve domain name: {domain}" +msgid "View domain: %(domain)s" +msgstr "Vyřešit název domény: {domain}" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2646,7 +2702,7 @@ msgstr "Port {name} ({details}) dostupný pro externí sítě" msgid "Port {name} ({details}) unavailable for external networks" msgstr "Port {name} {details} je nedostupný pro externí sítě" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Porty" @@ -3005,9 +3061,9 @@ msgstr "Odeslat zpětnou vazbu" msgid "Contribute" msgstr "Zapojit se" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "O projektu" @@ -3175,7 +3231,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Zjistit více…" @@ -3549,7 +3605,7 @@ msgid "Web conference" msgstr "Webové konference" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "Licenční informace o JavaScriptu" @@ -3980,7 +4036,7 @@ msgstr "" "Nejsou k dispozici žádné domény. Abyste mohli používat Matrix Synapse nastavte alespoň jednu doménu." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3992,7 +4048,7 @@ msgstr "" "%(domain_name)s. Změna doménového názvu po úvodním nastavení není v " "současnosti podporována." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4000,7 +4056,7 @@ msgstr "" "Když je zapnutá veřejná registrace, noví uživatelé mohou být registrování z " "libovolného klienta." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" @@ -4008,31 +4064,31 @@ msgstr "" "Noví uživatelé musí při registraci účtu použít k ověření jeden z " "následujících tokenů:" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "Registrační token" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "Povolená užití" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "Čekající registrace" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "Dokončené registrace" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "Čas vypršení platnosti" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "Neomezený" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4499,7 +4555,7 @@ msgstr "Obnovení hesla pro uživatele: {username}" msgid "An error occurred during password reset: {error}." msgstr "Při obnovování hesla došlo k chybě: {error}." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4507,7 +4563,7 @@ msgstr "" "Mumble je open source šifrovaný software pro hlasový chat s nízkou latencí a " "vysokou kvalitou." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4517,10 +4573,16 @@ msgstr "" "dispozici jsou Klienti pro připojení k " "Mumble z vašeho počítače a mobilních zařízení." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "grub package is configured" +msgid "Mumble server is configured" +msgstr "balíček grub je nakonfigurován" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "Nastavení hesla superuživatele" @@ -4665,10 +4727,6 @@ msgstr "" "ze štítků může být nejvýše 63 znaků. Celková délka doménového názvu může být " "nejvýše 253 znaků." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Domény" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "Rozlišení DNS" @@ -5258,7 +5316,7 @@ msgstr "Upravit připojení" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Upravit" @@ -5311,7 +5369,7 @@ msgstr "Rozhraní" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Popis" @@ -5389,8 +5447,8 @@ msgstr "Toto připojení není aktivní." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "Soukromí" @@ -5482,7 +5540,7 @@ msgstr "Vnitřní" msgid "Computer" msgstr "Počítač" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Upravit připojení" @@ -5493,7 +5551,7 @@ msgid "Error:" msgstr "Chyba:" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Zavřít" @@ -5595,7 +5653,7 @@ msgstr "Aktualizovat..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Potvrdit" @@ -6034,11 +6092,7 @@ msgstr "" "právní kontrolu provádí projekt upstream, nikoli Debian/{box_name}. " "Aktualizace jsou prováděny podle nezávislého cyklu." -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "Tato aplikace je experimentální." - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "Nextcloud" @@ -6240,7 +6294,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "PageKite doména" @@ -6433,8 +6487,8 @@ msgstr "Restart" msgid "Shutdown" msgstr "Vypnout" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Restartovat" @@ -6475,25 +6529,35 @@ msgstr "" msgid "Shut Down Now" msgstr "Vypnout nyní" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "Správa nastavení ochrany osobních údajů v celém systému." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" "Aktualizujte nastavení ochrany osobních údajů tak, aby odpovídalo vašim " "preferencím." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "Zkontrolujte nastavení ochrany osobních údajů" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "Pravidelně předkládejte seznam používaných aplikací (doporučeno)" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6510,11 +6574,11 @@ msgstr "" "popcon.debian.org/\" target=\"_blank\">popcon.debian.org. Odesílání " "probíhá přes síť Tor pro další anonymitu, pokud je povolena aplikace Tor." -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "Povolit používání záložních serverů DNS" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6526,10 +6590,22 @@ msgstr "" "veřejné servery DNS. Lze vypnout ve většině případů, pokud je síťové " "připojení stabilní a spolehlivé." +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "URL adresa na které hledat veřejnou IP adresu" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "Hlášení o použití" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Standard Services" +msgid "External services" +msgstr "Standardní služby" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "Záložní systém DNS" @@ -7602,40 +7678,40 @@ msgid "Delete the following snapshots permanently?" msgstr "Nevratně smazat tyto zachycené stavy?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Počet" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Datum" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Smazat zachycené stavy" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Pořídit zachycený stav" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "Obnovit ze zálohy" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "bude použita při příštím spuštění" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "v použití" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Vrátit k zachycenému stavu č. %(number)s" @@ -8234,27 +8310,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Tor Onion Service" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Předávájící Tor most" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Port Tor předávání k dispozici" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Obfs3 transport zaregistrován" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Obfs4 transport zaregistrován" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "Onion service je verze 3" @@ -8360,7 +8436,7 @@ msgstr "Předávání" msgid "Anonymity network" msgstr "Anonymní síť" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Onion služba" @@ -9011,12 +9087,12 @@ msgstr "Uživatelé" msgid "Edit user %(username)s" msgstr "Upravit uživatele %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Upravit uživatele %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9025,17 +9101,17 @@ msgstr "" "Pro změnu hesla použijte formulář změna " "hesla ." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Uložit změny" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "Smazat uživatele %(username)s a všechny jeho soubory?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." @@ -9044,11 +9120,11 @@ msgstr "" "adresáře uživatele. Pokud si přejete tyto soubory zachovat, zakažte raději " "uživatelský účet." -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "Odstranit uživatele a soubory" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Storno" @@ -9739,11 +9815,11 @@ msgstr "Instalace" msgid "Service %(service_name)s is not running." msgstr "Služba %(service_name)s není spuštěná." -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "Hledání pomocí štítků" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "Vymazat všechny štítky" @@ -9756,35 +9832,35 @@ msgstr "" "Jedná se o bezplatný software, který umožňuje snadnou instalaci a správu " "serverových aplikací." -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Domů" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Aplikace" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " Systém" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Změnit heslo" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Vypnout" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Odhlásit" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Vyberte jazyk" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Přihlásit" @@ -10005,23 +10081,44 @@ msgstr "" "Všechna data a konfigurace aplikace budou trvale ztraceny. Aplikaci lze " "nainstalovat znovu." -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "Zde" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Nastavení se nezměnila" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "před odinstalací {app_id}" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "gudžarátština" +#~ msgid "In 24 hour format." +#~ msgstr "Ve 24hodinovém formátu." + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Volitelná hodnota. Pokud vaše {box_name} není připojeno přímo k internetu " +#~ "(tj. je připojeno ke směrovači NAT), použije se tato adresa URL k určení " +#~ "skutečné IP adresy. Adresa URL by měla jednoduše vrátit IP adresu, ze " +#~ "které klient přichází (příklad: https://ddns.freedombox.org/ip/)." + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Správa aliasů pro poštovní schránku" + +#~ msgid "This app is experimental." +#~ msgstr "Tato aplikace je experimentální." + #~ msgid "File & Snippet Sharing" #~ msgstr "Sdílení souborů a útržků" @@ -11541,9 +11638,6 @@ msgstr "gudžarátština" #~ msgid "You don't have any Custom Services enabled" #~ msgstr "Nemáte zapnutou žádnou uživatelem určenou službu" -#~ msgid "Standard Services" -#~ msgstr "Standardní služby" - #, fuzzy #~| msgid "" #~| "When enabled, Syncthing's web interface will be available from \n" "Language-Team: Danish user@host:~/path/to/repo/" @@ -445,11 +447,11 @@ msgstr "" "Sti til nyt eller eksisterende fjernlager. Eksempelvis: bruger@vært:~/sti/" "til/arkiv/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "SSH-serverens adgangskode" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -457,18 +459,18 @@ msgstr "" "SSH-serverens adgangskode.
Nøglebaseret SSH-autentifikation er endnu " "ikke muligt." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Fjernlager for sikkerhedskopier eksisterer i forvejen." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Vælg en verificeret offentlig SSH-nøgle" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Genopret" @@ -551,16 +553,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Eksisterende lager er ikke krypteret." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "Lagring af {box_name}" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Opret en ny sikkerhedskopi" @@ -604,10 +610,9 @@ msgstr "Eksisterende sikkerhedskopier" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -777,113 +782,113 @@ msgstr "" msgid "Verify Host" msgstr "Verificér vært" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 #, fuzzy #| msgid "Create Backup" msgid "Schedule Backups" msgstr "Opret sikkerhedskopi" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Arkiv oprettet." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Slet arkiv" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Arkiv slettet." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Upload og genopret en sikkerhedskopi" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Password changed successfully." msgid "Upload successful." msgstr "Kodeord blev ændret." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Ingen sikkerhedskopi fundet." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Genopret fra overført fil" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Filer genoprettet fra sikkerhedskopi." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Ingen yderligere diske er tilgængelige til oprettelse af et lager." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Opret lager til sikkerhedskopier" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "Tilføjede et nyt SSH-fjernlager." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Opret fjernlager til sikkerhedskopier" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Tilføjede et nyt SSH-fjernlager." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Verificér SSH-værtsnøgle" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "SSH-vært er allerede verificeret." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH-vært verificeret." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "SSH-værtens offentlige nøgle kunne ikke verificeres." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Godkendelse til serveren mislykkedes." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Fejl ved oprettelse af forbindelse til serveren: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Lager fjernet." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Fjern lager" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Lager fjernet. Sikkerhedskopier slettedes ikke." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Afmontering mislykkedes!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Montering mislykkedes" @@ -1008,7 +1013,7 @@ msgstr "Tilføj kodeord" msgid "No passwords currently configured." msgstr "Endnu ingen kodeord konfigureret." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1139,8 +1144,10 @@ msgstr "" msgid "Serving Domains" msgstr "Betjener domæner" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1170,7 +1177,7 @@ msgstr "Opfrisk IP-adresse og domæner" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1857,7 +1864,7 @@ msgid "Test" msgstr "Test" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Resultat" @@ -1870,7 +1877,7 @@ msgstr "Diagnostisk Test" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1881,7 +1888,7 @@ msgstr "" "døgnet), kan det være svært for andre at finde dig på internettet. Dette vil " "forhindre andre i at finde de tjenester denne {box_name} udbyder." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1898,7 +1905,7 @@ msgstr "" "opdatere dit DNS-navn med den nye IP-adresse, således at hvis nogen på " "internettet spørger til adressen vil de få din aktuelle IP-adresse." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 #, fuzzy #| msgid "" #| "If you are looking for a free dynamic DNS account, you may find a free " @@ -1917,11 +1924,17 @@ msgstr "" "datasystems24.net
eller du kan få en gratis URL-baseret tjeneste på freedns.afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Dynamisk DNS Klient" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Dynamisk domænenavn" @@ -1975,96 +1988,73 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "Lad dette felt stå tomt hvis du vil beholde dit nuværende kodeord." #: 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)." -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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Ikke obligatorisk. Hvis din {box_name} ikke er tilsluttet direkte til " -"internettet (hvis den f.eks.er bag en NAT-router) bruges denne URL til at " -"afgøre dens offentlige IP. Denne URL skal simpelthen returnere IP-adressen " -"hvorfra klientens forespørgsel kommer (eksempelvis: http://myip." -"datasystems24.de)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Brugernavnet der blev brugt ved kontooprettelse." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 #, fuzzy #| msgid "other update URL" msgid "Other update URL" msgstr "anden opdaterings-URL" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Servicetype" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "GnuDIP Serveradresse" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Ugyldigt servernavn" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "Opdaterings-URL" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Accepter alle SSL-certifikater" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Brug basal (\"basic\") HTTP-autentifikation" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Domænenavn" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Ugyldigt domænenavn" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Brugernavn" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Vis kodeord" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "URL til at slå den offentlige IP-addresse op" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2080,43 +2070,43 @@ msgstr "" msgid "Needs public IP" msgstr "Serverport" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Status" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Seneste opdatering" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "IP address" msgid "IP Address" msgstr "IP-adresse" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 #, fuzzy #| msgid "Access" msgid "Success" msgstr "Adgang" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 #, fuzzy #| msgid "failed" msgid "Failed" msgstr "mislykkedes" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 #, fuzzy #| msgid "No libraries available." msgid "No status available." @@ -2292,7 +2282,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2307,7 +2297,7 @@ msgstr "" "vil se ud som brugernavn@%(domainname)s. Du kan konfigurere systemets " "domæne på Konfigurer siden." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2362,18 +2352,20 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Manage Libraries" msgid "My Email Aliases" msgstr "Håndter samlinger" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Manage Libraries" -msgid "Manage Aliases for Mailbox" -msgstr "Håndter samlinger" - #: modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" @@ -2462,45 +2454,94 @@ msgstr "Opret en ny sikkerhedskopi" msgid "Add" msgstr "Adresse" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "Server domain" +msgid "DNS Records for domain:" +msgstr "Serverdomæne" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "Port" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Værtsnavn" + #: modules/email/templates/email.html:10 #, fuzzy #| msgid "Create User" msgid "Manage Spam" msgstr "Opret Bruger" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Domæner" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email.html:23 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." msgstr "" -#: modules/email/templates/email.html:36 -msgid "TTL" -msgstr "" - -#: modules/email/templates/email.html:37 -msgid "Class" -msgstr "" - -#: modules/email/templates/email.html:39 -msgid "Priority" -msgstr "" - -#: modules/email/templates/email.html:40 -msgid "Weight" -msgstr "" - -#: modules/email/templates/email.html:41 -#: modules/minetest/templates/minetest.html:18 -msgid "Port" -msgstr "Port" - -#: modules/email/templates/email.html:42 -msgid "Host/Target/Value" +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" msgstr "" #: modules/featherwiki/__init__.py:25 @@ -2787,7 +2828,7 @@ msgstr "Port {name} ({details}) er tilgængelig for eksterne netværk" msgid "Port {name} ({details}) unavailable for external networks" msgstr "Port {name} ({details}) er ikke tilgængelig for eksterne netværk" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Porte" @@ -3176,9 +3217,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Om" @@ -3334,7 +3375,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 #, fuzzy #| msgid "Learn more »" msgid "Learn more..." @@ -3700,7 +3741,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -4131,7 +4172,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -4146,49 +4187,49 @@ msgstr "" "vil se ud som brugernavn@%(domainname)s. Du kan konfigurere systemets " "domæne på Konfigurer siden." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 #, fuzzy #| msgid "Skip Registration" msgid "Registration Token" msgstr "Udsæt Registrering" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Skip Registration" msgid "Pending Registrations" msgstr "Udsæt Registrering" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 #, fuzzy #| msgid "Skip Registration" msgid "Completed Registrations" msgstr "Udsæt Registrering" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4671,7 +4712,7 @@ msgstr "Ugyldigt brugernavn: {username}" msgid "An error occurred during password reset: {error}." msgstr "Der opstod en fejl under konfigurationen." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4679,7 +4720,7 @@ msgstr "" "Mumble er open source software der tilbyder en højkvalitets tale-tjeneste " "med lav forsinkelse og kryptering." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 #, fuzzy #| msgid "" #| "You can connect to your Mumble server on the regular Mumble port 64738. " @@ -4694,10 +4735,16 @@ msgstr "" "Klienter til computere og Android-enheder " "er tilgængelige." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Mumble server is running" +msgid "Mumble server is configured" +msgstr "Mumble-server er aktiv" + #: modules/mumble/forms.py:30 #, fuzzy #| msgid "Save Password" @@ -4843,10 +4890,6 @@ msgstr "" "bogstaver, tal og bindestreger. Hvert ord skal være på 63 tegn eller " "derunder. Den samlede længde skal være 253 tegn eller derunder." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Domæner" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -5398,7 +5441,7 @@ msgstr "Rediger Forbindelse" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Rediger" @@ -5451,7 +5494,7 @@ msgstr "Interface" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Beskrivelse" @@ -5529,8 +5572,8 @@ msgstr "Denne forbindelse er ikke aktiv." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 #, fuzzy #| msgid "Enable Privoxy" msgid "Privacy" @@ -5623,7 +5666,7 @@ msgstr "Intern" msgid "Computer" msgstr "Computer" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Rediger Forbindelse" @@ -5636,7 +5679,7 @@ msgid "Error:" msgstr "fejl" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5734,7 +5777,7 @@ msgstr "Opdater" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Send" @@ -6184,11 +6227,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 #, fuzzy #| msgid "Next" @@ -6427,7 +6466,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 #, fuzzy #| msgid "PageKite Account" msgid "PageKite Domain" @@ -6637,8 +6676,8 @@ msgstr "" msgid "Shutdown" msgstr "Sluk Nu" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 #, fuzzy #| msgid "Restart Now" msgid "Restart" @@ -6682,23 +6721,33 @@ msgstr "" msgid "Shut Down Now" msgstr "Sluk Nu" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6709,11 +6758,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6721,10 +6770,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "URL til at slå den offentlige IP-addresse op" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Enable Quassel core service" +msgid "External services" +msgstr "Aktiver Quassel grund-tjeneste" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS Server" @@ -7814,44 +7875,44 @@ msgid "Delete the following snapshots permanently?" msgstr "Slet bruger permanent?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 #, fuzzy #| msgid "Delete %(name)s" msgid "Delete Snapshots" msgstr "Slet %(name)s" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 #, fuzzy #| msgid "Create User" msgid "Create Snapshot" msgstr "Opret Bruger" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -8454,29 +8515,29 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 #, fuzzy #| msgid "Tor Hidden Service" msgid "Tor Onion Service" msgstr "Tor Skjult Tjeneste" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Tor Bridge Relay" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Tor videresendelsesport tilgængelig" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Obfs3 transport registreret" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Obfs4 transport registreret" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 #, fuzzy #| msgid "Hidden Service" msgid "Onion service is version 3" @@ -8582,7 +8643,7 @@ msgstr "" msgid "Anonymity network" msgstr "Tor Anonymiseringstjeneste" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 #, fuzzy #| msgid "Hidden Service" msgid "Onion Service" @@ -9250,12 +9311,12 @@ msgstr "Brugere" msgid "Edit user %(username)s" msgstr "Rediger Bruger %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Rediger Bruger %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9264,30 +9325,30 @@ msgstr "" "Brug siden til kodeordsændring for at " "ændre kodeord." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Gem Ændringer" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Delete user %(username)s permanently?" msgid "Delete user %(username)s and all the user's files?" msgstr "Slet bruger %(username)s permanent?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "Slet filer" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Annuller" @@ -10011,11 +10072,11 @@ msgstr "Installation" msgid "Service %(service_name)s is not running." msgstr "Tjenestesøgningstjenesten er ikke aktiv" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -10025,39 +10086,39 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Apps" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " System" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Ændr kodeord" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 #, fuzzy #| msgid "Shut Down Now" msgid "Shut down" msgstr "Sluk Nu" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Log ud" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 #, fuzzy #| msgid "Language" msgid "Select language" msgstr "Sprog" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Log ind" @@ -10284,23 +10345,46 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Indstilling uændret" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" +#, 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)." +#~ 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Ikke obligatorisk. Hvis din {box_name} ikke er tilsluttet direkte til " +#~ "internettet (hvis den f.eks.er bag en NAT-router) bruges denne URL til at " +#~ "afgøre dens offentlige IP. Denne URL skal simpelthen returnere IP-" +#~ "adressen hvorfra klientens forespørgsel kommer (eksempelvis: http://myip." +#~ "datasystems24.de)." + +#, fuzzy +#~| msgid "Manage Libraries" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Håndter samlinger" + #~ msgid "File & Snippet Sharing" #~ msgstr "Deling af filer og udklip" @@ -11979,9 +12063,6 @@ msgstr "" #~ msgid "Minetest server is not running" #~ msgstr "Minetest-server er ikke aktiv" -#~ msgid "Mumble server is running" -#~ msgstr "Mumble-server er aktiv" - #~ msgid "Mumble server is not running" #~ msgstr "Mumble-server er ikke aktiv" @@ -12083,11 +12164,6 @@ msgstr "" #~ msgid "repro SIP Server" #~ msgstr "Sekundær DNS-server" -#, fuzzy -#~| msgid "Enable Quassel core service" -#~ msgid "Enable repro service" -#~ msgstr "Aktiver Quassel grund-tjeneste" - #~ msgid "Tor Control Panel" #~ msgstr "Tor Kontrolpanel" diff --git a/plinth/locale/de/LC_MESSAGES/django.po b/plinth/locale/de/LC_MESSAGES/django.po index 77e8edd70..353433a9f 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: 2024-12-30 20:05-0500\n" -"PO-Revision-Date: 2025-01-01 08:00+0000\n" -"Last-Translator: Ettore Atalan \n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" +"PO-Revision-Date: 2025-01-09 07:38+0000\n" +"Last-Translator: Dietmar \n" "Language-Team: German \n" "Language: de\n" @@ -26,7 +26,7 @@ msgstr "" msgid "Static configuration {etc_path} is setup properly" msgstr "Statische Konfiguration {etc_path} ist richtig eingerichtet" -#: context_processors.py:21 views.py:169 +#: context_processors.py:21 views.py:168 msgid "FreedomBox" msgstr "FreedomBox" @@ -104,32 +104,32 @@ msgstr "Sprache für die Darstellung dieser Weboberfläche" msgid "Use the language preference set in the browser" msgstr "Die im Browser festgelegte Sprache verwenden" -#: menu.py:112 templates/base.html:119 +#: menu.py:116 templates/base.html:121 msgid "Home" msgstr "Startseite" -#: menu.py:113 templates/base.html:128 +#: menu.py:117 templates/base.html:130 msgid "Apps" msgstr "Apps" -#: menu.py:115 menu.py:122 templates/base.html:137 +#: menu.py:119 menu.py:126 templates/base.html:139 msgid "System" msgstr "System" -#: menu.py:118 +#: menu.py:122 msgid "Visibility" msgstr "Sichtbarkeit" -#: menu.py:120 +#: menu.py:124 msgid "Data" msgstr "Daten" -#: menu.py:124 modules/networks/templates/connection_show.html:274 +#: menu.py:128 modules/networks/templates/connection_show.html:274 #: modules/security/__init__.py:35 modules/upgrades/manifest.py:10 msgid "Security" msgstr "Sicherheit" -#: menu.py:126 +#: menu.py:130 msgid "Administration" msgstr "Verwaltung" @@ -145,16 +145,12 @@ msgid "Page not found: {url}" msgstr "Seite nicht gefunden: {url}" #: middleware.py:150 -#, fuzzy -#| msgid "Error running apt-get" msgid "Error running operation." -msgstr "Fehler beim Ausführen von apt-get" +msgstr "Fehler bei der Ausführung des Vorgangs." #: middleware.py:152 -#, fuzzy -#| msgid "Error running apt-get" msgid "Error loading page." -msgstr "Fehler beim Ausführen von apt-get" +msgstr "Fehler beim Laden der Seite." #: modules/apache/__init__.py:32 msgid "Apache HTTP Server" @@ -239,7 +235,7 @@ msgid "Enable a Backup Schedule" msgstr "Aktivieren eines Sicherungszeitplans" #: modules/backups/__init__.py:181 modules/backups/__init__.py:228 -#: modules/privacy/__init__.py:79 modules/storage/__init__.py:326 +#: modules/privacy/__init__.py:84 modules/storage/__init__.py:326 #: modules/upgrades/__init__.py:149 #, python-brace-format msgid "Go to {app_name}" @@ -320,23 +316,25 @@ msgstr "" msgid "Hour of the day to trigger backup operation" msgstr "Uhrzeit, zu der der Sicherungsvorgang ausgelöst werden soll" -#: modules/backups/forms.py:80 -msgid "In 24 hour format." -msgstr "Im 24-Stunden-Format." +#: modules/backups/forms.py:81 +msgid "" +"In 24 hour format. Services may become temporarily unavailable while running " +"backup operation at this time of the day." +msgstr "" -#: modules/backups/forms.py:83 modules/backups/forms.py:105 +#: modules/backups/forms.py:85 modules/backups/forms.py:107 msgid "Included apps" msgstr "Einbezogene Apps" -#: modules/backups/forms.py:83 modules/backups/forms.py:105 +#: modules/backups/forms.py:85 modules/backups/forms.py:107 msgid "Apps to include in the backup" msgstr "Apps, die in die Sicherung einbezogen werden" -#: modules/backups/forms.py:99 +#: modules/backups/forms.py:101 msgid "Repository" msgstr "Paketquelle" -#: modules/backups/forms.py:101 +#: modules/backups/forms.py:103 #: modules/backups/templates/backups_delete.html:17 modules/ikiwiki/forms.py:15 #: modules/networks/templates/connection_show.html:75 #: modules/samba/templates/samba.html:66 @@ -344,23 +342,23 @@ msgstr "Paketquelle" msgid "Name" msgstr "Name" -#: modules/backups/forms.py:102 +#: modules/backups/forms.py:104 msgid "(Optional) Set a name for this backup archive" msgstr "(Optional) Festlegen eines Namens für dieses Sicherungsarchiv" -#: modules/backups/forms.py:123 +#: modules/backups/forms.py:125 msgid "Select the apps you want to restore" msgstr "Wählen Sie die Apps aus, die Sie wiederherstellen möchten" -#: modules/backups/forms.py:139 modules/kiwix/forms.py:21 +#: modules/backups/forms.py:141 modules/kiwix/forms.py:21 msgid "Upload File" msgstr "Datei hochladen" -#: modules/backups/forms.py:141 +#: modules/backups/forms.py:143 msgid "Backup files have to be in .tar.gz format" msgstr "Sicherungs-Dateien müssen im Format .tar.gz vorliegen" -#: modules/backups/forms.py:143 +#: modules/backups/forms.py:145 #, python-brace-format msgid "" "Select the backup file to upload from the local computer. This must be a " @@ -372,30 +370,30 @@ msgstr "" "erfolgreichen Sicherung einer {box_name} heruntergeladen wurde. Sie muss " "eine .tar.gz-Erweiterung haben." -#: modules/backups/forms.py:152 +#: modules/backups/forms.py:154 msgid "Repository path format incorrect." msgstr "Pfad zum Archiv ist nicht korrekt." -#: modules/backups/forms.py:159 +#: modules/backups/forms.py:161 #, python-brace-format msgid "Invalid username: {username}" msgstr "Ungültiger Nutzername: {username}" -#: modules/backups/forms.py:169 +#: modules/backups/forms.py:171 #, python-brace-format msgid "Invalid hostname: {hostname}" msgstr "Ungültiger Hostname: {hostname}" -#: modules/backups/forms.py:173 +#: modules/backups/forms.py:175 #, python-brace-format msgid "Invalid directory path: {dir_path}" msgstr "Ungültiger Ordnerpfad: {dir_path}" -#: modules/backups/forms.py:179 modules/letsencrypt/manifest.py:11 +#: modules/backups/forms.py:181 modules/letsencrypt/manifest.py:11 msgid "Encryption" msgstr "Verschlüsselung" -#: modules/backups/forms.py:180 +#: modules/backups/forms.py:182 msgid "" "\"Key in Repository\" means that a password-protected key is stored with the " "backup." @@ -403,53 +401,53 @@ msgstr "" "„Schlüssel im Archiv“ bedeutet, dass ein passwortgeschützter Schlüssel mit " "der Sicherung gespeichert wird." -#: modules/backups/forms.py:182 +#: modules/backups/forms.py:184 msgid "Key in Repository" msgstr "Schlüssel im Repository" -#: modules/backups/forms.py:182 -#: modules/matrixsynapse/templates/matrix-synapse.html:62 +#: modules/backups/forms.py:184 +#: modules/matrixsynapse/templates/matrix-synapse.html:67 #: modules/searx/forms.py:14 msgid "None" msgstr "Keiner" -#: modules/backups/forms.py:184 modules/networks/forms.py:340 +#: modules/backups/forms.py:186 modules/networks/forms.py:340 msgid "Passphrase" msgstr "Passwort" -#: modules/backups/forms.py:185 +#: modules/backups/forms.py:187 msgid "Passphrase; Only needed when using encryption." msgstr "Passphrase; Nur notwendig, wenn Verschlüsselung genutzt wird." -#: modules/backups/forms.py:188 +#: modules/backups/forms.py:190 msgid "Confirm Passphrase" msgstr "Passphrase bestätigen" -#: modules/backups/forms.py:188 +#: modules/backups/forms.py:190 msgid "Repeat the passphrase." msgstr "Passphrase wiederholen." -#: modules/backups/forms.py:199 +#: modules/backups/forms.py:201 msgid "The entered encryption passphrases do not match" msgstr "Die eingegebenen Verschlüsselungs-Passphrasen stimmen nicht überein" -#: modules/backups/forms.py:203 +#: modules/backups/forms.py:205 msgid "Passphrase is needed for encryption." msgstr "Passphrase ist notwendig für Verschlüsselung." -#: modules/backups/forms.py:238 +#: modules/backups/forms.py:240 msgid "Select Disk or Partition" msgstr "Festplatte oder Partition auswählen" -#: modules/backups/forms.py:239 +#: modules/backups/forms.py:241 msgid "Backups will be stored in the directory FreedomBoxBackups" msgstr "Sicherungen werden im Verzeichnis FreedomBoxBackups gespeichert" -#: modules/backups/forms.py:248 +#: modules/backups/forms.py:250 msgid "SSH Repository Path" msgstr "SSH-Archiv-Pfad" -#: modules/backups/forms.py:249 +#: modules/backups/forms.py:251 msgid "" "Path of a new or existing repository. Example: user@host:~/path/to/repo/" @@ -457,11 +455,11 @@ msgstr "" "Pfad eines neuen oder existierenden Archivs. Beispiel: " "benutzer@hostrechner:~/pfad/zum/archiv/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "SSH-Server-Passwort" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -469,18 +467,18 @@ msgstr "" "Passwort des SSH-Hostrechners.
SSH-Schlüssel-basierte Authentifizierung " "ist noch nicht möglich." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Remote-Sicherungs-Archiv existiert bereits." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Wähle verifizierten öffentlichen SSH-Schlüssel" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Wiederherstellen" @@ -543,29 +541,32 @@ msgstr "" "Repository." #: modules/backups/privileged.py:74 -#, fuzzy -#| msgid "A share with this name already exists." msgid "An archive with given name already exists in the repository." -msgstr "Eine Freigabe mit diesem Namen existiert bereits." +msgstr "Ein Archiv mit dem angegebenen Namen existiert bereits im Repository." #: modules/backups/privileged.py:81 msgid "Archive with given name was not found in the repository." msgstr "" +"Das Archiv mit dem angegebenen Namen wurde im Repository nicht gefunden." #: modules/backups/privileged.py:87 msgid "Backup system is busy with another operation." +msgstr "Das Backup-System ist mit einem anderen Vorgang beschäftigt." + +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." msgstr "" #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Vorhandenes Repository ist nicht verschlüsselt." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "{box_name}-Speichermedien" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Neue Sicherung erstellen" @@ -609,10 +610,9 @@ msgstr "Vorhandene Sicherungen" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -778,112 +778,110 @@ msgstr "" msgid "Verify Host" msgstr "Host verifizieren" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Sicherungsplan aktualisiert." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Zeitplan für Sicherungen" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Archiv angelegt." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Archiv löschen" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Archiv gelöscht." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Hochladen und Wiederherstellen einer Sicherung" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "Hochladen erfolgreich." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Keine Sicherungsdatei gefunden." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Wiederherstellen aus hochgeladener Datei" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Dateien aus Sicherung wiederhergestellt." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" "Es sind keine zusätzlichen Festplatten verfügbar, um ein Repository " "hinzuzufügen." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Sicherungs-Repository erstellen" -#: modules/backups/views.py:352 -#, fuzzy -#| msgid "Added new remote SSH repository." +#: modules/backups/views.py:350 msgid "Added new repository." -msgstr "Neue Remote-SSH-Archiv hinzugefügt." +msgstr "Neues Repository hinzugefügt." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Remote-Sicherungs-Archiv anlegen" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Neue Remote-SSH-Archiv hinzugefügt." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Verifiziere SSH-Schlüssel des Hosts" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "SSH-Host bereits verifiziert." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH-Host verifiziert." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" "Der öffentliche SSH-Schlüssel des Hosts konnte nicht verifiziert werden." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Authentifizierung am Server fehlgeschlagen." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Fehler beim Verbinden mit Server: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Archiv gelöscht." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Archiv entfernen" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Repository entfernt. Sicherungen wurden nicht gelöscht." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Aushängen fehlgeschlagen!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Einhängen fehlgeschlagen" @@ -1011,7 +1009,7 @@ msgstr "Kennwort hinzufügen" msgid "No passwords currently configured." msgstr "Derzeit sind keine Passwörter konfiguriert." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1133,14 +1131,16 @@ msgstr "Server" #, fuzzy #| msgid "Resolver Status" msgid "Resolver" -msgstr "Status des Resolvers" +msgstr "Resolver" #: modules/bind/templates/bind.html:11 msgid "Serving Domains" msgstr "Domains bedienen" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1170,7 +1170,7 @@ msgstr "IP-Adresse und Domänen aktualisieren" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1819,7 +1819,7 @@ msgid "Test" msgstr "Testen" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Ergebnis" @@ -1832,7 +1832,7 @@ msgstr "Diagnose" msgid "App {app_id} is not installed, cannot repair" msgstr "App {app_id} ist nicht installiert, kann nicht reparieren" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1844,7 +1844,7 @@ msgstr "" "zu finden. Dadurch werden andere daran gehindert, jene Dienste zu finden, " "die von Ihrer {box_name} angeboten werden." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1862,7 +1862,7 @@ msgstr "" "der neuen IP zuweisen, und wenn jemand aus dem Internet nach Ihrem DNS-Namen " "fragt, erhält er eine Antwort mit Ihrer aktuellen IP-Adresse." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1875,11 +1875,17 @@ msgstr "" "href=\"http://freedns.afraid.org/\" target=\"_blank\">freedns.afraid.org " "können mittels Update-URL genutzt werden." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Dynamischer DNS-Client" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Dynamischer Domain-Name" @@ -1938,88 +1944,71 @@ msgstr "" "Dieses Feld leerlassen, wenn Sie das Passwort unverändert lassen möchten." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Optionaler Wert. Wenn Ihre FreedomBox {box_name} nicht direkt mit dem " -"Internet verbunden ist (z. B. Verbindung über einen NAT-Router), wird diese " -"URL verwendet, um die wahre IP-Adresse zu bestimmen. Die URL sollte nur die " -"IP-Adresse des Clients liefern (Beispiel: https://ddns.freedombox.org/ip/)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Benutzername, der beim Erstellen des Kontos gewählt wurde." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "Andere Update-URL" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Typ des Dienstes" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "GnuDIP-Server-Adresse" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Ungültiger Servername" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "URL aktualisieren" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Alle SSL-Zertifikate akzeptieren" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "HTTP-Basisauthentifizierung verwenden" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Domain-Name" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Ungültiger Domain-Name" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Benutzername" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Passwort anzeigen" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "Auf die öffentliche IP-Adresse verweisende URL" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "Verwenden Sie IPv6 statt IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "Dieses Feld ist erforderlich." #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2030,42 +2019,40 @@ msgid "Free" msgstr "Frei" #: modules/dynamicdns/manifest.py:17 -#, fuzzy -#| msgid "Server public key:" msgid "Needs public IP" -msgstr "Öffentlicher Schlüssel des Servers:" +msgstr "Benötigt eine öffentliche IP" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Status" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Letztes Update" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "IP-Adresse" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "Erfolg" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "Gescheitert" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "Kein Status verfügbar." @@ -2239,7 +2226,7 @@ msgstr "Videochat" msgid "XMPP" msgstr "XMPP" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2250,7 +2237,7 @@ msgstr "" "IDs erscheinen als username@%(domain_name)s. Sie können Ihre Domain " "auf der Seite Namen Dienste konfigurieren." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2318,14 +2305,18 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "Meine E-Mail-Aliase" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "Aliase des Postfachs verwalten" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "Primäre Domain" @@ -2404,47 +2395,103 @@ msgstr "Einen neuen E-Mail-Alias erstellen" msgid "Add" msgstr "Hinzufügen" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "Spam verwalten" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "DNS-Einträge" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" "Die folgenden DNS-Einträge müssen manuell zu Ihrer primären Domain " "hinzugefügt werden, damit der Mailserver korrekt funktioniert." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "TTL" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "Klasse" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "Priorität" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "Gewicht" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "Port" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "Host/Ziel/Wert" +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "Servername oder IP-Adresse" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Hostname" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "Spam verwalten" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Domains" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, fuzzy, python-format +#| msgid "Resolve domain name: {domain}" +msgid "View domain: %(domain)s" +msgstr "Domainname auflösen: {domain}" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2709,7 +2756,7 @@ msgstr "Port -Name {name} ({details}) für externe Netzwerke verfügbar" msgid "Port {name} ({details}) unavailable for external networks" msgstr "Port -Name {name} ({details}) für externe Netzwerke nicht verfügbar" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Ports" @@ -2717,7 +2764,7 @@ msgstr "Ports" #, fuzzy #| msgid "Blocked" msgid "Blocking" -msgstr "Geblockt" +msgstr "Blockierend" #: modules/firewall/manifest.py:10 modules/networks/forms.py:319 #: modules/upgrades/manifest.py:10 @@ -3078,9 +3125,9 @@ msgstr "Feedback geben" msgid "Contribute" msgstr "Mitwirken" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Info" @@ -3254,7 +3301,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Mehr erfahren …" @@ -3635,7 +3682,7 @@ msgid "Web conference" msgstr "Web-Konferenz" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "JavaScript-Lizenzinformation" @@ -4055,24 +4102,13 @@ msgstr "" "em>." #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:31 -#, fuzzy -#| msgid "" -#| "\n" -#| " Warning! Changing the domain name after this step " -#| "will\n" -#| " require uninstalling and reinstalling the app which will wipe app's " -#| "data.\n" -#| " " msgid "" "Warning! Changing the domain name after this step will " "require uninstalling and reinstalling the app which will wipe app's data." msgstr "" -"\n" -" Warnung! Das Ändern des Domainnamens nach diesem " -"Schritt\n" -" erfordert eine Deinstallation und Neuinstallation der App, wodurch die " -"Daten der App gelöscht werden.\n" -" " +"Warnung! Das Ändern des Domainnamens nach diesem Schritt " +"erfordert eine Deinstallation und Neuinstallation der App, wodurch die Daten " +"der App gelöscht werden." #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:42 #, python-format @@ -4084,7 +4120,7 @@ msgstr "" "href=\"%(config_url)s\">Konfigurieren Sie mindestens eine Domain, um " "Matrix Synapse nutzen zu können." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4095,7 +4131,7 @@ msgstr "" "IDs erscheinen als Nutzername:%(domain_name)s. Änderungen der " "Domain nach der ersten Konfiguration werden derzeit nicht unterstützt." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4103,7 +4139,7 @@ msgstr "" "Neue Nutzer können von beliebigen Geräten registriert werden, wenn " "öffentliche Registrierung aktiviert ist." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" @@ -4111,31 +4147,31 @@ msgstr "" "Neue Benutzer müssen bei der Kontoregistrierung einen der folgenden Token " "zur Verifizierung verwenden:" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "Registrierungs-Token" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "Erlaubte Nutzungen" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "Ausstehende Registrierungen" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "Abgeschlossene Registrierungen" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "Ablaufzeit" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "Unbegrenzt" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4523,7 +4559,7 @@ msgstr "Passwörter stimmen nicht überein." #: modules/miniflux/manifest.py:18 msgid "Fluent Reader Lite" -msgstr "" +msgstr "Fluent Reader Lite" #: modules/miniflux/manifest.py:33 #, fuzzy @@ -4533,19 +4569,19 @@ msgstr "Fluent Reader" #: modules/miniflux/manifest.py:46 msgid "FluxNews" -msgstr "" +msgstr "FluxNews" #: modules/miniflux/manifest.py:61 msgid "MiniFlutt" -msgstr "" +msgstr "MiniFlutt" #: modules/miniflux/manifest.py:71 msgid "NetNewsWire" -msgstr "" +msgstr "NetNewsWire" #: modules/miniflux/manifest.py:86 msgid "Newsflash" -msgstr "" +msgstr "Newsflash" #: modules/miniflux/manifest.py:96 #, fuzzy @@ -4555,7 +4591,7 @@ msgstr "Read You" #: modules/miniflux/manifest.py:106 msgid "RSS Guard" -msgstr "" +msgstr "RSS Guard" #: modules/miniflux/manifest.py:138 modules/ttrss/manifest.py:55 #, fuzzy @@ -4623,7 +4659,7 @@ msgstr "Passwort zurücksetzen für Benutzer: {username}" msgid "An error occurred during password reset: {error}." msgstr "Beim Zurücksetzen des Passworts ist ein Fehler aufgetreten: {error}." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4631,7 +4667,7 @@ msgstr "" "Mumble ist eine hochwertige quelloffene Software für Telefonie und Chat, mit " "Verschlüsselung und geringer Latenz." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4641,10 +4677,16 @@ msgstr "" "verbinden. Auf Mumble finden Sie " "Anwendungen, um sich vom Desktop oder Mobil-Gerät mit Mumble zu verbinden." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Mumble server is running" +msgid "Mumble server is configured" +msgstr "Mumble Server läuft" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "SuperUser-Kennwort festlegen" @@ -4790,10 +4832,6 @@ msgstr "" "alphanumerischen Zeichen und Bindestrichen bestehen. Jede Kennung darf " "maximal 63 Zeichen lang sein, die Gesamtlänge des Domainnamens 253 Zeichen." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Domains" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "DNS-Auflösung" @@ -4819,7 +4857,7 @@ msgstr "nein" #: modules/names/resolved.py:102 msgid "allow-downgrade" -msgstr "" +msgstr "downgrade erlauben" #: modules/names/resolved.py:110 msgid "supported" @@ -5395,7 +5433,7 @@ msgstr "Verbindung bearbeiten" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Bearbeiten" @@ -5448,7 +5486,7 @@ msgstr "Schnittstelle" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Beschreibung" @@ -5526,8 +5564,8 @@ msgstr "Diese Verbindung ist nicht aktiv." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "Datenschutz" @@ -5620,7 +5658,7 @@ msgstr "Intern" msgid "Computer" msgstr "Computer" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Verbindung bearbeiten" @@ -5631,7 +5669,7 @@ msgid "Error:" msgstr "Fehler:" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Schließen" @@ -5733,7 +5771,7 @@ msgstr "aktualisieren..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Absenden" @@ -6178,11 +6216,7 @@ msgstr "" "Projekt und nicht von Debian/{box_name} durchgeführt. Aktualisierungen " "werden in einem unabhängigen Zyklus durchgeführt." -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "Diese App ist experimentell." - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "Nextcloud" @@ -6389,7 +6423,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "PageKite Domäne" @@ -6501,18 +6535,13 @@ msgid "Add custom PageKite service" msgstr "Hinzufügen eines benutzerdefinierten PageKite-Dienstes" #: modules/pagekite/templates/pagekite_custom_services.html:19 -#, fuzzy -#| msgid "" -#| "Warning:
Your PageKite frontend server may not support all the " -#| "protocol/port combinations that you are able to define here. For example, " -#| "HTTPS on ports other than 443 is known to cause problems." msgid "" "Your PageKite frontend server may not support all the protocol/port " "combinations that you are able to define here. For example, HTTPS on ports " "other than 443 is known to cause problems." msgstr "" -"Warnung:
Ihr PageKite-Frontend-Server unterstützt möglicherweise " -"nicht alle Protokolle/Port-Kombinationen, die Sie hier definieren können. " +"Ihr PageKite-Frontend-Server unterstützt möglicherweise nicht alle " +"Protokolle/Port-Kombinationen, die Sie hier definieren können. " "Beispielsweise HTTPS auf anderen Ports als 443, ist bekannt dafür, Probleme " "zu verursachen." @@ -6573,7 +6602,7 @@ msgstr "Überwachung" #: modules/performance/manifest.py:18 msgid "Resource utilization" -msgstr "" +msgstr "Ressourcennutzung" #: modules/power/__init__.py:14 msgid "Restart or shut down the system." @@ -6591,8 +6620,8 @@ msgstr "Neustart" msgid "Shutdown" msgstr "Herunterfahren" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Neu starten" @@ -6635,25 +6664,35 @@ msgstr "" msgid "Shut Down Now" msgstr "Jetzt herunterfahren" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "Verwaltung systemweiter Datenschutzeinstellungen." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" "Bitte passen Sie die Datenschutzeinstellungen entsprechend Ihren Wünschen an." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "Datenschutzeinstellungen anpassen" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" "Regelmäßig eine Liste der verwendeten Anwendungen einreichen (vorgeschlagen)" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6671,11 +6710,11 @@ msgstr "" "org. Die Übermittlung erfolgt über das Tor-Netzwerk für zusätzliche " "Anonymität, wenn die Tor-App aktiviert ist." -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "Verwendung von Ausweich-DNS-Servern zulassen" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6687,15 +6726,25 @@ msgstr "" "eine Internetverbindung besteht. Kann in den meisten Fällen deaktiviert " "werden, wenn die Netzwerkverbindung stabil und zuverlässig ist." +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "Auf die öffentliche IP-Adresse verweisende URL" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" -msgstr "" +msgstr "Nutzungsberichte" #: modules/privacy/manifest.py:10 #, fuzzy -#| msgid "Fallback DNS Servers" +#| msgid "Enable repro service" +msgid "External services" +msgstr "repro Dienst einschalten" + +#: modules/privacy/manifest.py:10 msgid "Fallback DNS" -msgstr "Ausweich-DNS-Server" +msgstr "Ausweich-DNS" #: modules/privoxy/__init__.py:25 msgid "" @@ -6786,13 +6835,7 @@ msgid "IRC" msgstr "IRC" #: modules/radicale/__init__.py:25 -#, fuzzy, python-brace-format -#| msgid "" -#| "Radicale is a CalDAV and CardDAV server. It allows synchronization and " -#| "sharing of scheduling and contact data. To use Radicale, a supported client application is needed. Radicale can be " -#| "accessed by any user with a {box_name} login." +#, python-brace-format msgid "" "Radicale is a CalDAV and CardDAV server. It allows synchronization and " "sharing of scheduling and contact data. To use Radicale, a unterstützte Client Software notwendig. Radicale " -"kann von jedem Benutzer mit einem {box_name}-Konto verwendet werden." +"nutzen, ist eine unterstützte Client Software notwendig. Radicale kann von " +"jedem Benutzer mit einem {box_name}-Konto verwendet werden." #: modules/radicale/__init__.py:31 msgid "" @@ -7275,10 +7318,8 @@ msgstr "" "SSH-Server und andere aktivierte, passwortgeschützte Anwendungen." #: modules/security/manifest.py:10 -#, fuzzy -#| msgid "Automatic" msgid "Automatic bans" -msgstr "Automatisch" +msgstr "Automatische Bans" #: modules/security/manifest.py:10 msgid "Reports" @@ -7790,40 +7831,40 @@ msgid "Delete the following snapshots permanently?" msgstr "Folgenden Speicherauszug dauerhaft löschen?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Nummer" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Datum" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Speicherauszüge löschen" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Speicherauszug anlegen" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "Zurücksetzen" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "wird beim nächsten Boot verwendet" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "in Benutzung" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Zurücksetzen auf Speicherauszug #%(number)s" @@ -7965,7 +8006,7 @@ msgstr "SSH" #, fuzzy #| msgid "Remove Location" msgid "Remote terminal" -msgstr "Standort entfernen" +msgstr "Remote Terminal" #: modules/ssh/manifest.py:22 msgid "Fingerprints" @@ -8190,10 +8231,8 @@ msgid "Other directory (specify below)" msgstr "Anderes Verzeichnis (unten angeben)" #: modules/storage/manifest.py:9 -#, fuzzy -#| msgid "Disk" msgid "Disks" -msgstr "Speichermedium" +msgstr "Speichermedien" #: modules/storage/manifest.py:9 msgid "Usage" @@ -8446,27 +8485,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Tor-Onion-Dienste" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Tor-Bridge-Relay" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Tor-Relay-Port ist verfügbar" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Obfs3-Transport registriert" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Obfs4-Transport registriert" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "Onion-Dienst ist Version 3" @@ -8578,7 +8617,7 @@ msgstr "Relay" msgid "Anonymity network" msgstr "Anonymisierungsnetzwerk" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Onion-Dienste" @@ -9245,12 +9284,12 @@ msgstr "Benutzer" msgid "Edit user %(username)s" msgstr "Benutzer %(username)s bearbeiten" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Benutzer %(username)s bearbeiten" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9260,17 +9299,17 @@ msgstr "" "href='%(change_password_url)s'>Passwortänderungsformular, um das " "Passwort zu ändern." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Änderungen speichern" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "Benutzer %(username)s und alle Dateien des Benutzers löschen?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." @@ -9279,11 +9318,11 @@ msgstr "" "Verzeichnis des Benutzers entfernt. Wenn Sie diese Dateien behalten möchten, " "deaktivieren Sie stattdessen das Benutzerkonto." -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "Benutzer und Dateien löschen" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Abbrechen" @@ -9995,15 +10034,13 @@ msgstr "Installation" msgid "Service %(service_name)s is not running." msgstr "Dienst %(service_name)s läuft nicht." -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "Suche mit Schlagwörtern" -#: templates/apps.html:42 -#, fuzzy -#| msgid "Search with tags" +#: templates/apps.html:46 msgid "Clear all tags" -msgstr "Suche mit Schlagwörtern" +msgstr "Alle Schlagwörter löschen" #: templates/base.html:31 msgid "" @@ -10014,35 +10051,35 @@ msgstr "" "und Datenschutz entwickelt wurde. Es ist freie Software, mit der Sie Server-" "Apps einfach installieren und verwalten können." -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Startseite" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Apps" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " System" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Passwort ändern" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Herunterfahren" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Abmelden" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Sprache wählen" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Anmelden" @@ -10262,23 +10299,45 @@ msgstr "" "Alle App-Daten und -Konfigurationen gehen dauerhaft verloren. App kann " "wieder frisch installiert werden." -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "Hier" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Einstellung unverändert" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "vor der Deinstallation von {app_id}" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gujarati" +#~ msgid "In 24 hour format." +#~ msgstr "Im 24-Stunden-Format." + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Optionaler Wert. Wenn Ihre FreedomBox {box_name} nicht direkt mit dem " +#~ "Internet verbunden ist (z. B. Verbindung über einen NAT-Router), wird " +#~ "diese URL verwendet, um die wahre IP-Adresse zu bestimmen. Die URL sollte " +#~ "nur die IP-Adresse des Clients liefern (Beispiel: https://ddns.freedombox." +#~ "org/ip/)." + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Aliase des Postfachs verwalten" + +#~ msgid "This app is experimental." +#~ msgstr "Diese App ist experimentell." + #~ msgid "File & Snippet Sharing" #~ msgstr "Datei- und Snippet-Freigabe" @@ -12564,9 +12623,6 @@ msgstr "Gujarati" #~ msgid "Minetest server is not running" #~ msgstr "Minetest Server läuft nicht" -#~ msgid "Mumble server is running" -#~ msgstr "Mumble Server läuft" - #~ msgid "Mumble server is not running" #~ msgstr "Mumble Server läuft nicht" @@ -12673,10 +12729,6 @@ msgstr "Gujarati" #~ msgid "repro SIP Server" #~ msgstr "repro SIP Server" -#~| msgid "Enable Quassel core service" -#~ msgid "Enable repro service" -#~ msgstr "repro Dienst einschalten" - #~ msgid "Enable Shaarli" #~ msgstr "Shaarli einschalten" diff --git a/plinth/locale/django.pot b/plinth/locale/django.pot index 3af1bfa6d..0a25c89f1 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,7 +22,7 @@ msgstr "" msgid "Static configuration {etc_path} is setup properly" msgstr "" -#: context_processors.py:21 views.py:169 +#: context_processors.py:21 views.py:168 msgid "FreedomBox" msgstr "" @@ -95,32 +95,32 @@ msgstr "" msgid "Use the language preference set in the browser" msgstr "" -#: menu.py:112 templates/base.html:119 +#: menu.py:116 templates/base.html:121 msgid "Home" msgstr "" -#: menu.py:113 templates/base.html:128 +#: menu.py:117 templates/base.html:130 msgid "Apps" msgstr "" -#: menu.py:115 menu.py:122 templates/base.html:137 +#: menu.py:119 menu.py:126 templates/base.html:139 msgid "System" msgstr "" -#: menu.py:118 +#: menu.py:122 msgid "Visibility" msgstr "" -#: menu.py:120 +#: menu.py:124 msgid "Data" msgstr "" -#: menu.py:124 modules/networks/templates/connection_show.html:274 +#: menu.py:128 modules/networks/templates/connection_show.html:274 #: modules/security/__init__.py:35 modules/upgrades/manifest.py:10 msgid "Security" msgstr "" -#: menu.py:126 +#: menu.py:130 msgid "Administration" msgstr "" @@ -215,7 +215,7 @@ msgid "Enable a Backup Schedule" msgstr "" #: modules/backups/__init__.py:181 modules/backups/__init__.py:228 -#: modules/privacy/__init__.py:79 modules/storage/__init__.py:326 +#: modules/privacy/__init__.py:84 modules/storage/__init__.py:326 #: modules/upgrades/__init__.py:149 #, python-brace-format msgid "Go to {app_name}" @@ -282,23 +282,25 @@ msgstr "" msgid "Hour of the day to trigger backup operation" msgstr "" -#: modules/backups/forms.py:80 -msgid "In 24 hour format." +#: modules/backups/forms.py:81 +msgid "" +"In 24 hour format. Services may become temporarily unavailable while running " +"backup operation at this time of the day." msgstr "" -#: modules/backups/forms.py:83 modules/backups/forms.py:105 +#: modules/backups/forms.py:85 modules/backups/forms.py:107 msgid "Included apps" msgstr "" -#: modules/backups/forms.py:83 modules/backups/forms.py:105 +#: modules/backups/forms.py:85 modules/backups/forms.py:107 msgid "Apps to include in the backup" msgstr "" -#: modules/backups/forms.py:99 +#: modules/backups/forms.py:101 msgid "Repository" msgstr "" -#: modules/backups/forms.py:101 +#: modules/backups/forms.py:103 #: modules/backups/templates/backups_delete.html:17 modules/ikiwiki/forms.py:15 #: modules/networks/templates/connection_show.html:75 #: modules/samba/templates/samba.html:66 @@ -306,23 +308,23 @@ msgstr "" msgid "Name" msgstr "" -#: modules/backups/forms.py:102 +#: modules/backups/forms.py:104 msgid "(Optional) Set a name for this backup archive" msgstr "" -#: modules/backups/forms.py:123 +#: modules/backups/forms.py:125 msgid "Select the apps you want to restore" msgstr "" -#: modules/backups/forms.py:139 modules/kiwix/forms.py:21 +#: modules/backups/forms.py:141 modules/kiwix/forms.py:21 msgid "Upload File" msgstr "" -#: modules/backups/forms.py:141 +#: modules/backups/forms.py:143 msgid "Backup files have to be in .tar.gz format" msgstr "" -#: modules/backups/forms.py:143 +#: modules/backups/forms.py:145 #, python-brace-format msgid "" "Select the backup file to upload from the local computer. This must be a " @@ -330,109 +332,109 @@ msgid "" "{box_name}. It must have a .tar.gz extension." msgstr "" -#: modules/backups/forms.py:152 +#: modules/backups/forms.py:154 msgid "Repository path format incorrect." msgstr "" -#: modules/backups/forms.py:159 +#: modules/backups/forms.py:161 #, python-brace-format msgid "Invalid username: {username}" msgstr "" -#: modules/backups/forms.py:169 +#: modules/backups/forms.py:171 #, python-brace-format msgid "Invalid hostname: {hostname}" msgstr "" -#: modules/backups/forms.py:173 +#: modules/backups/forms.py:175 #, python-brace-format msgid "Invalid directory path: {dir_path}" msgstr "" -#: modules/backups/forms.py:179 modules/letsencrypt/manifest.py:11 +#: modules/backups/forms.py:181 modules/letsencrypt/manifest.py:11 msgid "Encryption" msgstr "" -#: modules/backups/forms.py:180 +#: modules/backups/forms.py:182 msgid "" "\"Key in Repository\" means that a password-protected key is stored with the " "backup." msgstr "" -#: modules/backups/forms.py:182 +#: modules/backups/forms.py:184 msgid "Key in Repository" msgstr "" -#: modules/backups/forms.py:182 -#: modules/matrixsynapse/templates/matrix-synapse.html:62 +#: modules/backups/forms.py:184 +#: modules/matrixsynapse/templates/matrix-synapse.html:67 #: modules/searx/forms.py:14 msgid "None" msgstr "" -#: modules/backups/forms.py:184 modules/networks/forms.py:340 +#: modules/backups/forms.py:186 modules/networks/forms.py:340 msgid "Passphrase" msgstr "" -#: modules/backups/forms.py:185 +#: modules/backups/forms.py:187 msgid "Passphrase; Only needed when using encryption." msgstr "" -#: modules/backups/forms.py:188 +#: modules/backups/forms.py:190 msgid "Confirm Passphrase" msgstr "" -#: modules/backups/forms.py:188 +#: modules/backups/forms.py:190 msgid "Repeat the passphrase." msgstr "" -#: modules/backups/forms.py:199 +#: modules/backups/forms.py:201 msgid "The entered encryption passphrases do not match" msgstr "" -#: modules/backups/forms.py:203 +#: modules/backups/forms.py:205 msgid "Passphrase is needed for encryption." msgstr "" -#: modules/backups/forms.py:238 +#: modules/backups/forms.py:240 msgid "Select Disk or Partition" msgstr "" -#: modules/backups/forms.py:239 +#: modules/backups/forms.py:241 msgid "Backups will be stored in the directory FreedomBoxBackups" msgstr "" -#: modules/backups/forms.py:248 +#: modules/backups/forms.py:250 msgid "SSH Repository Path" msgstr "" -#: modules/backups/forms.py:249 +#: modules/backups/forms.py:251 msgid "" "Path of a new or existing repository. Example: user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "" @@ -502,16 +504,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "" @@ -555,10 +561,9 @@ msgstr "" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -697,107 +702,107 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -906,7 +911,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1024,8 +1029,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1055,7 +1062,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1638,7 +1645,7 @@ msgid "Test" msgstr "" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "" @@ -1651,7 +1658,7 @@ msgstr "" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1659,7 +1666,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1670,7 +1677,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1678,11 +1685,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "" @@ -1726,84 +1739,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1817,37 +1817,37 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -1995,7 +1995,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2003,7 +2003,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2051,12 +2051,16 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 -msgid "My Email Aliases" +#: modules/email/__init__.py:80 +msgid "More emails" msgstr "" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 +msgid "My Email Aliases" msgstr "" #: modules/email/forms.py:25 @@ -2135,45 +2139,90 @@ msgstr "" msgid "Add" msgstr "" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" msgstr "" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" - -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +msgid "Host" +msgstr "" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2416,7 +2465,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2743,9 +2792,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "" @@ -2878,7 +2927,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3200,7 +3249,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3564,7 +3613,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3572,43 +3621,43 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4017,23 +4066,27 @@ msgstr "" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4158,10 +4211,6 @@ msgid "" "or less." msgstr "" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4658,7 +4707,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -4711,7 +4760,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -4789,8 +4838,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -4874,7 +4923,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -4885,7 +4934,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -4977,7 +5026,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "" @@ -5371,11 +5420,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5541,7 +5586,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5720,8 +5765,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -5757,23 +5802,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -5784,11 +5839,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -5796,10 +5851,18 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +msgid "External services" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -6707,40 +6770,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7271,27 +7334,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7381,7 +7444,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -7942,39 +8005,39 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -8597,11 +8660,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8611,35 +8674,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -8839,19 +8902,19 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" diff --git a/plinth/locale/el/LC_MESSAGES/django.po b/plinth/locale/el/LC_MESSAGES/django.po index 3dad56ddc..9d81dd894 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2022-09-14 17:20+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Greek user@host:~/path/to/repo/" @@ -453,11 +455,11 @@ msgstr "" "Το μονοπάτι από ένα νέο ή ένα υπάρχον αποθετήριο. Παράδειγμα: " "χρήστης@υπολογιστής:~/μονοπάτι/για/το/αποθετήριο/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "Κωδικός πρόσβασης διακομιστή SSH" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -465,18 +467,18 @@ msgstr "" "Κωδικός πρόσβασης του διακομιστή SSH.
Ο έλεγχος ταυτότητας με κλειδί " "SSH δεν είναι ακόμα δυνατός." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Το απομακρυσμένο αποθετήριο αντιγράφων ασφαλείας υπάρχει ήδη." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Επιλογή εξακριβωμένου δημόσιου κλειδιού SSH" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Επαναφορά" @@ -560,16 +562,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Το υπάρχον αποθετήριο δεν είναι κρυπτογραφημένο." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "Αποθηκευτικός χώρος {box_name}" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Δημιουργία νέου αντιγράφου ασφαλείας" @@ -613,10 +619,9 @@ msgstr "Υπάρχοντα αντίγραφα ασφαλείας" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -800,114 +805,114 @@ msgstr "" msgid "Verify Host" msgstr "Επαλήθευση υπολογιστή" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 #, fuzzy #| msgid "Create Backup" msgid "Schedule Backups" msgstr "Δημιουργία αντιγράφου ασφαλείας" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Το αρχείο δημιουργήθηκε." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Διαγραφή αρχείου" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Το αρχείο διαγράφηκε." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Ανεβάστε και επαναφέρετε ένα αντίγραφο ασφαλείας" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Password changed successfully." msgid "Upload successful." msgstr "Ο κωδικός πρόσβασης άλλαξε με επιτυχία." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Δεν βρέθηκε αντίγραφο ασφαλείας." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Επαναφορά από το αρχείο που ανεβάσατε" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Επαναφορά αρχείων από τα αντίγραφα ασφαλείας." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" "Δεν υπάρχουν επιπλέον δίσκοι διαθέσιμοι για να προσθέσετε ένα αποθετήριο." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Δημιουργία αποθετηρίου αντιγράφων ασφαλείας" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "Προστέθηκε νέο απομακρυσμένο αποθετήριο SSH." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Δημιουργία απομακρυσμένου αποθετηρίου αντιγράφων ασφαλείας" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Προστέθηκε νέο απομακρυσμένο αποθετήριο SSH." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Επιβεβαίωση κεντρικού κλειδιού SSH" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "Ο υπολογιστής SSH έχει ήδη επαληθευτεί." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "Ο υπολογιστής SSH επιβεβαιώθηκε." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "Το δημόσιο κλειδί του υπολογιστή SSH δεν μπόρεσε να επαληθευτεί." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Ο έλεγχος ταυτότητας στον απομακρυσμένο διακομιστή απέτυχε." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Σφάλμα κατά τη δημιουργία σύνδεσης στο διακομιστή: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Το αποθετήριο αφαιρέθηκε." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Κατάργηση αποθετηρίου" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Αποθετήριο που καταργήθηκε. Τα αντίγραφα ασφαλείας δεν διαγράφηκαν." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Η αφαίρεση δίσκου απέτυχε!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Η προσθήκη δίσκου απέτυχε" @@ -1028,7 +1033,7 @@ msgstr "Εμφάνιση κωδικού" msgid "No passwords currently configured." msgstr "Δεν έχουν ρυθμιστεί μερίσματα." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1167,8 +1172,10 @@ msgstr "" msgid "Serving Domains" msgstr "Όνομα διαδικτύου διακομιστή" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1204,7 +1211,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1892,7 +1899,7 @@ msgid "Test" msgstr "Τεστ" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Αποτέλεσμα" @@ -1905,7 +1912,7 @@ msgstr "Διαγνωστικός έλεγχος" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1917,7 +1924,7 @@ msgstr "" "Αυτό θα εμποδίσει άλλους να βρουν υπηρεσίες που παρέχονται από αυτό το " "{box_name}." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1935,7 +1942,7 @@ msgstr "" "αντιστοιχίσει το όνομα DNS σας στη νέα IP και αν κάποιος από το Internet " "ζητήσει το όνομα DNS, θα λάβει απάντηση με την τρέχουσα διεύθυνση IP." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 #, fuzzy #| msgid "" #| "If you are looking for a free dynamic DNS account, you may find a free " @@ -1955,11 +1962,17 @@ msgstr "" "ανανέωσης στο freedns." "afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Πελάτης δυναμικού DNS" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Δυναμικό όνομα διαδικτύου" @@ -2019,97 +2032,74 @@ msgstr "" "πρόσβασής σας." #: 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)." -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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Προαιρετική τιμή. Εάν το {box_name} δεν είναι συνδεδεμένο απευθείας στο " -"Internet (δηλ. συνδεδεμένο σε δρομολογητή NAT), αυτή η διεύθυνση URL " -"χρησιμοποιείται για τον προσδιορισμό της πραγματικής διεύθυνσης IP. Η " -"διεύθυνση URL θα πρέπει απλά να επιστρέψει την IP από την οποία προέρχεται ο " -"πελάτης (παράδειγμα: http://myip.datasystems24.de)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" "Το όνομα χρήστη που χρησιμοποιήθηκε κατά τη δημιουργία του λογαριασμού." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 #, fuzzy #| msgid "Update URL" msgid "Other update URL" msgstr "Διεύθυνση URL ενημέρωσης" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Τύπος υπηρεσίας" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "Διεύθυνση διακομιστή GnuDIP" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Μη έγκυρο όνομα διακομιστή" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "Διεύθυνση URL ενημέρωσης" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Αποδοχή όλων των πιστοποιητικών SSL" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Χρήση βασικού ελέγχου ταυτότητας HTTP" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Όνομα διαδικτύου" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Μη έγκυρο όνομα διαδικτύου" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Όνομα χρήστη" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Εμφάνιση κωδικού" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "Διεύθυνση URL για να αναζητήσετε δημόσια IP" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2125,43 +2115,43 @@ msgstr "" msgid "Needs public IP" msgstr "Επιλογή εξακριβωμένου δημόσιου κλειδιού SSH" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Κατάσταση" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Τελευταία ενημέρωση" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "IP address" msgid "IP Address" msgstr "Διεύθυνση IP" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 #, fuzzy #| msgid "Access" msgid "Success" msgstr "Πρόσβαση" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 #, fuzzy #| msgid "Setup failed." msgid "Failed" msgstr "Η εγκατάσταση απέτυχε." -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 #, fuzzy #| msgid "No repositories available." msgid "No status available." @@ -2338,7 +2328,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2354,7 +2344,7 @@ msgstr "" "username@%(domainname)s. Μπορείτε να ρυθμίσετε το όνομα της υπηρεσίας " "στο Ρυθμίστε page." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2410,18 +2400,20 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Manage Repositories" msgid "My Email Aliases" msgstr "Διαχείριση αποθετηρίων" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Manage Repositories" -msgid "Manage Aliases for Mailbox" -msgstr "Διαχείριση αποθετηρίων" - #: modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" @@ -2510,45 +2502,96 @@ msgstr "Δημιουργία νέου αντιγράφου ασφαλείας" msgid "Add" msgstr "Προσθήκη" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "Server domain" +msgid "DNS Records for domain:" +msgstr "Όνομα διαδικτύου διακομιστή" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "Θύρα" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "Όνομα διακομιστή ή διεύθυνση IP" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Όνομα υπολογιστή" + #: modules/email/templates/email.html:10 #, fuzzy #| msgid "Manage Snapshots" msgid "Manage Spam" msgstr "Διαχείριση στιγμιότυπων" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Ονόματα διαδικτύου" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email.html:23 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." msgstr "" -#: modules/email/templates/email.html:36 -msgid "TTL" -msgstr "" - -#: modules/email/templates/email.html:37 -msgid "Class" -msgstr "" - -#: modules/email/templates/email.html:39 -msgid "Priority" -msgstr "" - -#: modules/email/templates/email.html:40 -msgid "Weight" -msgstr "" - -#: modules/email/templates/email.html:41 -#: modules/minetest/templates/minetest.html:18 -msgid "Port" -msgstr "Θύρα" - -#: modules/email/templates/email.html:42 -msgid "Host/Target/Value" +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" msgstr "" #: modules/featherwiki/__init__.py:25 @@ -2831,7 +2874,7 @@ msgstr "Η θύρα {name} ({details}) είναι διαθέσιμη για εξ msgid "Port {name} ({details}) unavailable for external networks" msgstr "Η θύρα {name} ({details}) δεν είναι διαθέσιμη για εξωτερικά δίκτυα" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Θύρες" @@ -3194,9 +3237,9 @@ msgstr "Υποβάλετε σχόλια" msgid "Contribute" msgstr "Συνεισφέρετε" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Σχετικά με" @@ -3371,7 +3414,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Μάθε περισσότερα..." @@ -3769,7 +3812,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "Πληροφορίες άδειας χρήσης JavaScript" @@ -4219,7 +4262,7 @@ msgstr "" "Διαμορφώστε τουλάχιστον ένα όνομα για να μπορέσετε να χρησιμοποιήσετε " "το Matrix Synapse." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4231,7 +4274,7 @@ msgstr "" "%(domain_name)s. Αλλαγή του ονόματος διαδικτύου δεν υποστηρίζεται μετά " "την αρχική εγκατάσταση." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4239,43 +4282,43 @@ msgstr "" "Οι νέοι χρήστες μπορούν να καταχωρούνται από οποιονδήποτε υπολογιστή-πελάτη, " "εάν είναι ενεργοποιημένη η δημόσια εγγραφή." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 #, fuzzy #| msgid "Skip Registration" msgid "Registration Token" msgstr "Παράλειψη εγγραφής" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Skip Registration" msgid "Pending Registrations" msgstr "Παράλειψη εγγραφής" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 #, fuzzy #| msgid "Skip Registration" msgid "Completed Registrations" msgstr "Παράλειψη εγγραφής" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4785,7 +4828,7 @@ msgstr "Μη έγκυρο όνομα χρήστη: {username}" msgid "An error occurred during password reset: {error}." msgstr "Παρουσιάστηκε σφάλμα κατά τη ρύθμιση παραμέτρων." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4793,7 +4836,7 @@ msgstr "" "Το mumble είναι ένα ανοικτού πηγαίου κώδικα, χαμηλής καθυστέρησης, " "κρυπτογραφημένο και υπηλής ποιότητας προγραμμα φωνητικής συνομιλίας." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 #, fuzzy #| msgid "" #| "You can connect to your Mumble server on the regular Mumble port 64738. " @@ -4808,10 +4851,14 @@ msgstr "" "href=\"http://mumble.info\"> Πελάτες για να συνδεθείτε με το Mumble από " "τον υπολογιστή και τις συσκευές Android είναι διαθέσιμες." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "Ορισμός κωδικού πρόσβασης SuperUser" @@ -4964,10 +5011,6 @@ msgstr "" "λιγότερο από 63 χαρακτήρες. Το συνολικό μήκος πρέπει να είναι λιγότερο από " "253 χαρακτήρες." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Ονόματα διαδικτύου" - #: modules/names/manifest.py:13 #, fuzzy #| msgid "Evolution" @@ -5519,7 +5562,7 @@ msgstr "Επεξεργασία σύνδεσης" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Επεξεργασία" @@ -5572,7 +5615,7 @@ msgstr "Ιnterface" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Περιγραφή" @@ -5650,8 +5693,8 @@ msgstr "Αυτή η σύνδεση δεν είναι ενεργή." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 #, fuzzy #| msgid "Privoxy" msgid "Privacy" @@ -5744,7 +5787,7 @@ msgstr "Εσωτερική" msgid "Computer" msgstr "Υπολογιστής" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Επεξεργασία σύνδεσης" @@ -5755,7 +5798,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5853,7 +5896,7 @@ msgstr "Ενημερωμένη έκδοση" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Υποβολή" @@ -6314,11 +6357,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 #, fuzzy #| msgid "Next" @@ -6549,7 +6588,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "Όνομα διαδικτύου Pagekite" @@ -6756,8 +6795,8 @@ msgstr "" msgid "Shutdown" msgstr "ΤΕΡΜΑΤΙΣΜΟΣ ΛΕΙΤΟΥΡΓΙΑΣ" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Κάνετε επανεκκίνηση" @@ -6803,23 +6842,33 @@ msgstr "" msgid "Shut Down Now" msgstr "Τερματισμός τώρα" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6830,11 +6879,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6842,10 +6891,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "Διεύθυνση URL για να αναζητήσετε δημόσια IP" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Onion Service" +msgid "External services" +msgstr "Υπηρεσία κρεμμυδιού" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS Server" @@ -8025,40 +8086,40 @@ msgid "Delete the following snapshots permanently?" msgstr "Να διαγραφούν οριστικά τα παρακάτω στιγμιότυπα;" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Αριθμός" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Ημερομηνία" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Διαγραφή στιγμιότυπων" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Δημιουργία στιγμιότυπου" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "Επαναφορά" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Επαναφορά στο στιγμιότυπο #%(number)s" @@ -8677,27 +8738,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Υπηρεσία κρεμυδιού Tor" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Γέφυρα/μεσολαβητής Tor" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Θύρα μεσολαβητή Tor διαθέσιμη" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Obfs3 μεταφορά καταχωρήθηκε" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Obfs4 μεταφορά καταχωρήθηκε" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 #, fuzzy #| msgid "Onion Service" msgid "Onion service is version 3" @@ -8821,7 +8882,7 @@ msgstr "Μεσολαβητής" msgid "Anonymity network" msgstr "Δίκτυο ανωνυμίας" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Υπηρεσία κρεμμυδιού" @@ -9509,13 +9570,13 @@ msgstr "Χρήστες" msgid "Edit user %(username)s" msgstr "Επεξεργασία χρήστη %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, fuzzy, python-format #| msgid "Edit user %(username)s" msgid "Edit User %(username)s" msgstr "Επεξεργασία χρήστη %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9524,30 +9585,30 @@ msgstr "" "Χρησιμοποιήστε τη φόρμα αλλαγής κωδικού " "πρόσβασης για να αλλάξετε τον κωδικό πρόσβασης." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Αποθήκευση αλλαγών" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Delete user %(username)s permanently?" msgid "Delete user %(username)s and all the user's files?" msgstr "Να διαγραφεί οριστικά ο χρήστης %(username)s ;" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete User" msgid "Delete user and files" msgstr "Διαγραφή χρήστη" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Άκυρο" @@ -10288,13 +10349,13 @@ msgstr "Εγκατάσταση" msgid "Service %(service_name)s is not running." msgstr "Η υπηρεσία %(service_name)s δεν εκτελείται." -#: templates/apps.html:29 +#: templates/apps.html:33 #, fuzzy #| msgid "Search the web" msgid "Search with tags" msgstr "Αναζήτηση στο διαδίκτυο" -#: templates/apps.html:42 +#: templates/apps.html:46 #, fuzzy #| msgid "Search the web" msgid "Clear all tags" @@ -10306,35 +10367,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Κεντρική σελίδα" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Εφαρμογές" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " Σύστημα" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Αλλαγή κωδικού πρόσβασης" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "ΤΕΡΜΑΤΙΣΜΟΣ ΛΕΙΤΟΥΡΓΙΑΣ" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Αποσύνδεση" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Επιλογή γλώσσας" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Σύνδεση" @@ -10570,23 +10631,46 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Οι ρυθμίσεις δεν άλλαξαν" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gujarati" +#, 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)." +#~ 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Προαιρετική τιμή. Εάν το {box_name} δεν είναι συνδεδεμένο απευθείας στο " +#~ "Internet (δηλ. συνδεδεμένο σε δρομολογητή NAT), αυτή η διεύθυνση URL " +#~ "χρησιμοποιείται για τον προσδιορισμό της πραγματικής διεύθυνσης IP. Η " +#~ "διεύθυνση URL θα πρέπει απλά να επιστρέψει την IP από την οποία " +#~ "προέρχεται ο πελάτης (παράδειγμα: http://myip.datasystems24.de)." + +#, fuzzy +#~| msgid "Manage Repositories" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Διαχείριση αποθετηρίων" + #, fuzzy #~| msgid "File Sharing" #~ msgid "File & Snippet Sharing" diff --git a/plinth/locale/es/LC_MESSAGES/django.po b/plinth/locale/es/LC_MESSAGES/django.po index 1e9ec758d..8c9dacb00 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2024-11-01 17:00+0000\n" "Last-Translator: gallegonovato \n" "Language-Team: Spanish user@host:~/path/to/repo/" @@ -455,11 +457,11 @@ msgstr "" "Ruta al repositorio nuevo o existente. Ejemplo: usuario@host:~/ruta/al/" "repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "Contraseña del servidor SSH" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -467,18 +469,18 @@ msgstr "" "Contraseña del servidor SSH.
La autenticación basada en clave SSH aún no " "es posible." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "El repositorio de copias de seguridad remoto ya existe." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Seleccione una clave pública SSH verificada" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Restaurar" @@ -562,16 +564,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "El repositorio existente no está cifrado." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "Almacenamiento en {box_name}" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Crear una copia de seguridad nueva" @@ -615,10 +621,9 @@ msgstr "Copias de seguridad existentes" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -781,111 +786,111 @@ msgstr "" msgid "Verify Host" msgstr "Verificar anfitrión" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Calendario de respaldos actualizado." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Agendar respaldos" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Archivo creado." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Borrar archivo" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Archivo borrado." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Subir y restaurar una copia de seguridad" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Logged out successfully." msgid "Upload successful." msgstr "Desconectado con éxito." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "No se encontraron copias de seguridad." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Restaurar desde la copia de seguridad subida" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Archivos restaurados desde la copia de seguridad." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "No hay más discos disponibles para añadir un repositorio." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Crear repositorio de copias de seguridad" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "Añadido nuevo repositorio SSH remoto." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Crear repositorio de copias de seguridad remotas" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Añadido nuevo repositorio SSH remoto." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Verificar la clave de anfitrión SSH" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "Clave SSH de anfitrión verificada." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "Anfitrión SSH verificado." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "No se pudo verificar la clave pública SSH del anfitrión." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Ha fallado la autenticación en el servidor remoto." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Error al conectar con el servidor: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Repositorio eliminado." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Eliminar repositorio" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Repositorio dado de baja. Las copias de seguridad no se han borrado." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "¡No se pudo desmontar!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Montaje fallido" @@ -1009,7 +1014,7 @@ msgstr "Añadir contraseña" msgid "No passwords currently configured." msgstr "Actualmente no hay contraseñas configuradas." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1140,8 +1145,10 @@ msgstr "Estado de la resolución" msgid "Serving Domains" msgstr "Dominios en servicio" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1171,7 +1178,7 @@ msgstr "Actualizar direcciones IP y dominios" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1831,7 +1838,7 @@ msgid "Test" msgstr "Test" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Resultado" @@ -1844,7 +1851,7 @@ msgstr "Test de diagnóstico" msgid "App {app_id} is not installed, cannot repair" msgstr "La aplicación {app_id} no está instalada, no se puede reparar" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1855,7 +1862,7 @@ msgstr "" "24h) será muy difícil para los demás encontrarle en Internet. Este servicio " "permitirá a otros encontrar los servicios que ofrece {box_name}." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1872,7 +1879,7 @@ msgstr "" "asigna su nombre DNS a esta nueva IP de forma que cualquiera que pida su " "nombre DNS obtendrá la dirección IP actualizada." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1885,11 +1892,17 @@ msgstr "" "en URL de actualización en freedns.afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Cliente de DNS dinámico" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Nombre de dominio dinámico" @@ -1944,88 +1957,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "Deje vacío este campo si quiere conservar su clave actual." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Valor opcional. Si su {box_name} no está conectado directamente a Internet " -"(p.e. está conectado a un router NAT), esta URL se usará para obtener su " -"número IP real. La URL debería devolver simplemente el número IP del cliente " -"(p.ej. https://ddns.freedombox.org/ip/)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "El nombre de usuaria/o que empleó al crear la cuenta." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "Otra URL de actualización" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Tipo de servicio" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "Dirección del servidor GnuDIP" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Nombre de servidor no válido" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "URL de actualización" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Aceptar todos los certificados SSL" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Usar autenticación básica de HTTP" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Nombre de dominio" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Nombre de dominio no válido" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Nombre de usuaria/o" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Mostrar clave de acceso" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "URL para consultar la IP pública" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "Use IPv6 en vez de IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "Este es un campo obligatorio." #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2041,37 +2037,37 @@ msgstr "" msgid "Needs public IP" msgstr "Clave pública del servidor:" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Estado" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Última actualización" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "Dirección IP" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "Éxito" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "Falló" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "Estado de actualización No disponible." @@ -2246,7 +2242,7 @@ msgstr "Sala de vídeo" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2258,7 +2254,7 @@ msgstr "" "Puede configurar su dominio en la página del sistema Nombre del servicio." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2327,14 +2323,18 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "Mis alias de correo electrónico" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "Administrar Alias para el buzón de correo electronico" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "Dominio principal" @@ -2415,47 +2415,103 @@ msgstr "Crear un nuevo alias de correo electrónico" msgid "Add" msgstr "Añadir" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "Administrar correo no deseado (SPAM)" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "Registros DNS" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" "Los siguientes registros DNS deben agregarse manualmente en su Dominio " "principal para que el servidor de correo funcione correctamente." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "TTL" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "Clase" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "Prioridad" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "Peso/Puntos" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "Puerto" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "Host/Objetivo/Valor" +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "Nombre del servidor o dirección IP" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Nombre de anfitrión" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "Administrar correo no deseado (SPAM)" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Dominios" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, fuzzy, python-format +#| msgid "Resolve domain name: {domain}" +msgid "View domain: %(domain)s" +msgstr "Resolver nombre de dominio: {domain}" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2721,7 +2777,7 @@ msgstr "Puerto {name} ({details}) disponible para redes externas" msgid "Port {name} ({details}) unavailable for external networks" msgstr "Puerto {name} ({details}) no disponible para redes externas" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Puertos" @@ -3075,9 +3131,9 @@ msgstr "Enviar Comentarios" msgid "Contribute" msgstr "Contribuír" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Acerca de" @@ -3253,7 +3309,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Aprenda más..." @@ -3634,7 +3690,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "Información de licencia de JavaScript" @@ -4094,7 +4150,7 @@ msgstr "" "No hay dominios disponibles. Configure al " "menos un dominio para poder usar Matrix/Synapse." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4105,7 +4161,7 @@ msgstr "" "usuaria/o será parecida a @username:%(domain_name)s. Actualmente no " "se puede cambiar el nombre de dominio una vez ha sido configurado." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4113,7 +4169,7 @@ msgstr "" "Si el registro público está habilitado se pueden registrar nuevas/os " "usuarias/os desde cualquier cliente." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" @@ -4121,31 +4177,31 @@ msgstr "" "Los nuevos usuarios deben usar uno de los siguientes tokens para la " "verificación durante el registro de la cuenta:" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "Registrar un token" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "Usos Permitidos" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "Registros pendientes" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "Registros completados" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "Tiempo de expiración" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "Ilimitado" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4633,7 +4689,7 @@ msgstr "Contraseña restablecida para: {username}" msgid "An error occurred during password reset: {error}." msgstr "Ha habido un error al restablecerla contraseña: {error}." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4641,7 +4697,7 @@ msgstr "" "Mumble es un software libre de gran calidad para chat de voz, de baja " "latencia y con cifrado." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4651,10 +4707,16 @@ msgstr "" "disponibles Clientes para conectar desde " "sus dispositivos de escritorio o móviles." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Mumble server is running" +msgid "Mumble server is configured" +msgstr "El servidor Mumble se está ejecutando" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "Definir clave para administración" @@ -4799,10 +4861,6 @@ msgstr "" "La longitud de cada palabra puede ser de hasta 63 caracteres y la del nombre " "de dominio de hasta 253." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Dominios" - #: modules/names/manifest.py:13 #, fuzzy #| msgid "Evolution" @@ -5395,7 +5453,7 @@ msgstr "Editar conexión" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Editar" @@ -5448,7 +5506,7 @@ msgstr "Interfaz" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Descripción" @@ -5526,8 +5584,8 @@ msgstr "Esta conexión no está activa." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "Privacidad" @@ -5619,7 +5677,7 @@ msgstr "Interna" msgid "Computer" msgstr "Ordenador" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Editar conexión" @@ -5632,7 +5690,7 @@ msgid "Error:" msgstr "Error" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Cerrar" @@ -5730,7 +5788,7 @@ msgstr "Ajustar..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Enviar" @@ -6174,11 +6232,7 @@ msgstr "" "{box_name} . Las actualizaciones se realizan siguiendo un ciclo " "independiente." -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "Esta aplicación es experimental." - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "Nextcloud" @@ -6388,7 +6442,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "Dominio PageKite" @@ -6593,8 +6647,8 @@ msgstr "" msgid "Shutdown" msgstr "Apagar" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Reiniciar" @@ -6636,24 +6690,34 @@ msgstr "" msgid "Shut Down Now" msgstr "Apagar ahora" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "Gestionar la configuración de la privacidad de todo el sistema." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "Por favor, compruebe la configuración de privacidad." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "Revisar la configuración de la privacidad" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" "Presentar periódicamente una lista de las aplicaciones utilizadas (sugerido)" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6671,11 +6735,11 @@ msgstr "" "target=\"_blank\">popcon.debian.org. La transmisión se realiza a través " "de la red Tor para mayor anonimato cuando la aplicación Tor está habilitada." -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "Permitir el uso de servidores DNS alternativos" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6687,10 +6751,22 @@ msgstr "" "pero se dispone de conectividad a Internet. Puede desactivarse en la mayoría " "de los casos si la conectividad de red es estable y fiable." +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "URL para consultar la IP pública" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Standard Services" +msgid "External services" +msgstr "Servicios estándar" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "Fallback DNS Servers" @@ -7816,40 +7892,40 @@ msgid "Delete the following snapshots permanently?" msgstr "¿Eliminar las siguientes instantáneas definitivamente?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Número" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Fecha" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Eliminar instantáneas" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Crear instantánea" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "Restaurar" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "se usará en el siguiente reinicio" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "en uso" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Restaurar a instantánea %(number)s" @@ -8467,27 +8543,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Servicio Tor Onion" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Puente de retransmisión Tor" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Puerto de servidor Tor disponible" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Transporte Obfs3 registrado" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Transporte Obfs4 registrado" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "Versión 3 para los servicios de Onion" @@ -8601,7 +8677,7 @@ msgstr "Retransmisión" msgid "Anonymity network" msgstr "Red anónima" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Servicio Onion" @@ -9270,12 +9346,12 @@ msgstr "Usuarias/os" msgid "Edit user %(username)s" msgstr "Editar el usuario %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Editar el usuario %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9284,30 +9360,30 @@ msgstr "" "Use el formulario para cambio de clave " "de acceso para cambiarla." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Guardar cambios" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Delete user %(username)s permanently?" msgid "Delete user %(username)s and all the user's files?" msgstr "¿Eliminar usuaria/o %(username)s definitivamente?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "Eliminar archivos" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Cancelar" @@ -10011,13 +10087,13 @@ msgstr "Instalación" msgid "Service %(service_name)s is not running." msgstr "El servidor %(service_name)s no se está ejecutando." -#: templates/apps.html:29 +#: templates/apps.html:33 #, fuzzy #| msgid "Search the web" msgid "Search with tags" msgstr "Buscar en la web" -#: templates/apps.html:42 +#: templates/apps.html:46 #, fuzzy #| msgid "Search the web" msgid "Clear all tags" @@ -10032,35 +10108,35 @@ msgstr "" "propiedad de los datos. Es un software gratuito que te permite instalar y " "gestionar aplicaciones de un servidor con facilidad." -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Inicio" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Aplicaciones" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " Sistema" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Cambiar clave de acceso" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Apagar" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Cerrar sesión" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Seleccionar idioma" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Iniciar sesión" @@ -10279,23 +10355,44 @@ msgstr "" "Todos los datos de la aplicación y la configuración se perderán " "permanentemente. La aplicación se puede instalar de nuevo." -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Configuración sin cambio" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "antes de desinstalar {app_id}" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gujarati" +#~ msgid "In 24 hour format." +#~ msgstr "En formato 24 horas." + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Valor opcional. Si su {box_name} no está conectado directamente a " +#~ "Internet (p.e. está conectado a un router NAT), esta URL se usará para " +#~ "obtener su número IP real. La URL debería devolver simplemente el número " +#~ "IP del cliente (p.ej. https://ddns.freedombox.org/ip/)." + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Administrar Alias para el buzón de correo electronico" + +#~ msgid "This app is experimental." +#~ msgstr "Esta aplicación es experimental." + #~ msgid "File & Snippet Sharing" #~ msgstr "Compartir archivos y recortes" @@ -11826,9 +11923,6 @@ msgstr "Gujarati" #~ msgid "You don't have any Custom Services enabled" #~ msgstr "No tiene ningún servicio personalizado activado" -#~ msgid "Standard Services" -#~ msgstr "Servicios estándar" - #, fuzzy #~| msgid "" #~| "When enabled, Syncthing's web interface will be available from \n" "Language-Team: Persian user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 #, fuzzy #| msgid "Please provide a password" msgid "SSH server password" msgstr "لطفاً یک رمز وارد کنید" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "" @@ -550,17 +552,21 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, fuzzy, python-brace-format #| msgid "{box_name} Manual" msgid "{box_name} storage" msgstr "کتاب راهنمای {box_name}" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 #, fuzzy #| msgid "Create Connection" msgid "Create a new backup" @@ -616,10 +622,9 @@ msgstr "" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -775,121 +780,121 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 #, fuzzy #| msgid "Create Connection" msgid "Schedule Backups" msgstr "ساختن اتصال" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 #, fuzzy #| msgid "Delete" msgid "Delete Archive" msgstr "پاک‌کردن" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 #, fuzzy #| msgid "{name} deleted." msgid "Archive deleted." msgstr "{name} پاک شد." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Partition expanded successfully." msgid "Upload successful." msgstr "پارتیشن با موفقیت بزرگ شد." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 #, fuzzy #| msgid "Create Connection" msgid "Create backup repository" msgstr "ساختن اتصال" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Create Connection" msgid "Added new repository." msgstr "ساختن اتصال" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 #, fuzzy #| msgid "Error installing application: {error}" msgid "Error establishing connection to server: {}" msgstr "خطا هنگام نصب برنامه: {error}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -1006,7 +1011,7 @@ msgstr "رمز را نشان بده" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1138,8 +1143,10 @@ msgstr "" msgid "Serving Domains" msgstr "دامنه‌های افزوده‌شده" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1175,7 +1182,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1839,7 +1846,7 @@ msgid "Test" msgstr "آزمون" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "نتیجه‌ها" @@ -1852,7 +1859,7 @@ msgstr "آزمون عیب‌یابی" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1863,7 +1870,7 @@ msgstr "" "می‌دهد، دیگران نمی‌توانند شما را به راحتی در اینترنت پیدا کنند. این باعث می‌شود " "که دیگران نتوانند سرویس‌هایی را که {box_name} شما ارائه می‌دهد پیدا کنند." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1880,7 +1887,7 @@ msgstr "" "نام DNS شما را به نشانی IP شما مرتبط می‌کند، و اگر کسی در اینترنت نام DNS شما " "را جستجو کرد، نشانی IP شما را در پاسخ خواهد گرفت." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 #, fuzzy #| msgid "" #| "If you are looking for a free dynamic DNS account, you may find a free " @@ -1899,12 +1906,18 @@ msgstr "" "datasystems24.net
یا سرویس رایگان به‌روزرسانی نشانی را در freedns.afraid.org به کار ببرید." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 #, fuzzy msgid "Dynamic DNS Client" msgstr "برنامهٔ DNS متغیر (Dynamic DNS Client)" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 #, fuzzy #| msgid "Domain Name" msgid "Dynamic Domain Name" @@ -1964,94 +1977,73 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "اگر نمی‌خواهید رمزتان را عوض کنید، این‌جا را خالی بگذارید." #: 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)." -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: https://ddns.freedombox.org/ip/)." -msgstr "" -"گزینهٔ اختیاری. اگر {box_name} شما مستقیماً به اینترنت وصل نباشد (یعنی به یک " -"روتر NAT وصل باشد) این نشانی برای تعیین IP واقعی به‌کار می‌رود. این نشانی باید " -"صرفاً IP را برگرداند (مثال: http://myip.datasystems24.de)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "نام کاربری که هنگام ساختن حساب به‌کار برده شد." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 #, fuzzy #| msgid "Update URL" msgid "Other update URL" msgstr "نشانی به‌روزرسانی" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "نوع سرویس" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "نشانی سرور GnuDIP" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "نام کاربری معتبر نیست" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "نشانی به‌روزرسانی" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "همهٔ گواهی‌نامه‌های SSL را بپذیر" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "به‌کاربردن تأیید هویت سادهٔ تحت وب" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "نام دامنه" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "نام دامنه معتبر نیست" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "نام کاربری" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "رمز را نشان بده" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "نشانی برای دیدن آی‌پی عمومی" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2065,14 +2057,14 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 @@ -2080,27 +2072,27 @@ msgstr "" msgid "Status" msgstr "وضعیت" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "آخرین به‌روزرسانی" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "IP address" msgid "IP Address" msgstr "نشانی آی‌پی" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 #, fuzzy #| msgid "Access Point" msgid "Success" msgstr "نقطهٔ دسترسی" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 #, fuzzy #| msgid "No wikis or blogs available." msgid "No status available." @@ -2264,7 +2256,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2272,7 +2264,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2320,18 +2312,20 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Create Connection" msgid "My Email Aliases" msgstr "ساختن اتصال" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Create Connection" -msgid "Manage Aliases for Mailbox" -msgstr "ساختن اتصال" - #: modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" @@ -2420,45 +2414,91 @@ msgstr "ساختن اتصال" msgid "Add" msgstr "نشانی" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" +msgstr "" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +msgid "Host" +msgstr "نام میزبان (hostname)" + #: modules/email/templates/email.html:10 #, fuzzy #| msgid "Delete %(name)s" msgid "Manage Spam" msgstr "پاک‌کردن %(name)s" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "دامنه‌ها" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email.html:23 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." msgstr "" -#: modules/email/templates/email.html:36 -msgid "TTL" -msgstr "" - -#: modules/email/templates/email.html:37 -msgid "Class" -msgstr "" - -#: modules/email/templates/email.html:39 -msgid "Priority" -msgstr "" - -#: modules/email/templates/email.html:40 -msgid "Weight" -msgstr "" - -#: modules/email/templates/email.html:41 -#: modules/minetest/templates/minetest.html:18 -msgid "Port" -msgstr "" - -#: modules/email/templates/email.html:42 -msgid "Host/Target/Value" +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" msgstr "" #: modules/featherwiki/__init__.py:25 @@ -2729,7 +2769,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -3092,9 +3132,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "درباره" @@ -3248,7 +3288,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 #, fuzzy msgid "Learn more..." msgstr "بیشتر بدانید »" @@ -3602,7 +3642,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -4023,7 +4063,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4031,49 +4071,49 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 #, fuzzy #| msgid "Skip Registration" msgid "Registration Token" msgstr "رد کردن ثبت نام" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Skip Registration" msgid "Pending Registrations" msgstr "رد کردن ثبت نام" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 #, fuzzy #| msgid "Skip Registration" msgid "Completed Registrations" msgstr "رد کردن ثبت نام" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4536,13 +4576,13 @@ msgstr "نام کاربری معتبر نیست" msgid "An error occurred during password reset: {error}." msgstr "هنگام انتشار کلید خطایی رخ داد." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "مامبل (Mumble) یک نرم‌افزار چت صوتی متن‌باز، کم‌تأخیر، و باکیفیت است." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 #, fuzzy #| msgid "" #| "You can connect to your Mumble server on the regular Mumble port 64738. " @@ -4557,10 +4597,16 @@ msgstr "" "href=\"http://mumble.info\">نرم‌افزارهایی برای اتصال به سرور مامبل برای " "کامپیوتر رومیزی و دستگاه‌های اندروید در دسترس است." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Configuration updated" +msgid "Mumble server is configured" +msgstr "پیکربندی به‌روز شد" + #: modules/mumble/forms.py:30 #, fuzzy #| msgid "Please provide a password" @@ -4699,10 +4745,6 @@ msgstr "" "میانی‌اش هم تنها از حرف، رقم، یا خط تیره تشکیل شده باشد. بلندی هر واژه باید " "۶۳ نویسه یا کمتر باشد. بلندی کل نام دامنه باید ۲۵۳ نویسه یا کمتر باشد." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "دامنه‌ها" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -5244,7 +5286,7 @@ msgstr "ویرایش اتصال" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "ویرایش" @@ -5297,7 +5339,7 @@ msgstr "واسط" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "شرح" @@ -5375,8 +5417,8 @@ msgstr "این اتصال فعال نیست." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -5467,7 +5509,7 @@ msgstr "" msgid "Computer" msgstr "کامپیوتر" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "ویرایش اتصال" @@ -5478,7 +5520,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "بستن" @@ -5576,7 +5618,7 @@ msgstr "ساختن..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 #, fuzzy msgid "Submit" msgstr "فرستادن" @@ -6025,11 +6067,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -6215,7 +6253,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 #, fuzzy #| msgid "Available Domains" msgid "PageKite Domain" @@ -6396,8 +6434,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -6433,23 +6471,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6460,11 +6508,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6472,10 +6520,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "نشانی برای دیدن آی‌پی عمومی" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Service" +msgid "External services" +msgstr "سرویس" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS Server" @@ -7470,42 +7530,42 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 #, fuzzy #| msgid "Delete %(name)s" msgid "Delete Snapshots" msgstr "پاک‌کردن %(name)s" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -8086,27 +8146,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 #, fuzzy #| msgid "Service" msgid "Onion service is version 3" @@ -8203,7 +8263,7 @@ msgstr "" msgid "Anonymity network" msgstr "رفتن به تنظیمات شبکه" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 #, fuzzy #| msgid "Service" msgid "Onion Service" @@ -8808,43 +8868,43 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, fuzzy, python-format #| msgid "Delete Wiki or Blog %(name)s" msgid "Edit User %(username)s" msgstr "پاک‌کردن ویکی یا وبلاگ %(name)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Delete Wiki or Blog %(name)s" msgid "Delete user %(username)s and all the user's files?" msgstr "پاک‌کردن ویکی یا وبلاگ %(name)s" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete" msgid "Delete user and files" msgstr "پاک‌کردن" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "انصراف" @@ -9532,11 +9592,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -9546,38 +9606,38 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 #, fuzzy msgid " Apps" msgstr "برنامه‌ها" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 #, fuzzy #| msgid "Language" msgid "Select language" msgstr "زبان" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -9788,23 +9848,44 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" +#, 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)." +#~ 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "گزینهٔ اختیاری. اگر {box_name} شما مستقیماً به اینترنت وصل نباشد (یعنی به " +#~ "یک روتر NAT وصل باشد) این نشانی برای تعیین IP واقعی به‌کار می‌رود. این " +#~ "نشانی باید صرفاً IP را برگرداند (مثال: http://myip.datasystems24.de)." + +#, fuzzy +#~| msgid "Create Connection" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "ساختن اتصال" + #, fuzzy #~| msgid "Domain Name" #~ msgid "Domain Name Server" @@ -10650,11 +10731,6 @@ msgstr "" #~ msgid "Enable DNSSEC configuration updated" #~ msgstr "پیکربندی به‌روز شد" -#, fuzzy -#~| msgid "Configuration updated" -#~ msgid "DNS server configuration updated" -#~ msgstr "پیکربندی به‌روز شد" - #, fuzzy #~| msgid "Invalid domain name" #~ msgid "Select the domain name to be used for diaspora*" diff --git a/plinth/locale/fake/LC_MESSAGES/django.po b/plinth/locale/fake/LC_MESSAGES/django.po index 935c92284..8a77baf2a 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2016-01-31 22:24+0530\n" "Last-Translator: Sunil Mohan Adapa \n" "Language-Team: Plinth Developers user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 #, fuzzy #| msgid "Save Password" msgid "SSH server password" msgstr "SAVE PASSWORD" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 #, fuzzy #| msgid "reStore" @@ -569,17 +571,21 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, fuzzy, python-brace-format #| msgid "{box_name} Manual" msgid "{box_name} storage" msgstr "{box_name} MANUAL" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 #, fuzzy #| msgid "PageKite Account" msgid "Create a new backup" @@ -639,10 +645,9 @@ msgstr "EXISTING CUSTOM SERVICES" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -804,125 +809,125 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 #, fuzzy #| msgid "PageKite Account" msgid "Schedule Backups" msgstr "PAGEKITE ACCOUNT" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 #, fuzzy #| msgid "Delete" msgid "Delete Archive" msgstr "DELETE" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 #, fuzzy #| msgid "{name} deleted." msgid "Archive deleted." msgstr "{name} DELETED." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Password changed successfully." msgid "Upload successful." msgstr "PASSWORD CHANGED SUCCESSFULLY." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 #, fuzzy #| msgid "Create User" msgid "Create backup repository" msgstr "CREATE USER" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Create User" msgid "Added new repository." msgstr "CREATE USER" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 #, fuzzy #| msgid "Create User" msgid "Added new remote SSH repository." msgstr "CREATE USER" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 #, fuzzy #| msgid "Error installing packages: {string} {details}" msgid "Error establishing connection to server: {}" msgstr "ERROR INSTALLING PACKAGES: {string} {details}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 #, fuzzy #| msgid "packages not found" msgid "Repository removed." msgstr "PACKAGES NOT FOUND" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -1043,7 +1048,7 @@ msgstr "SHOW PASSWORD" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1179,8 +1184,10 @@ msgstr "" msgid "Serving Domains" msgstr "SERVER DOMAIN" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1216,7 +1223,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1900,7 +1907,7 @@ msgid "Test" msgstr "TEST" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "RESULT" @@ -1913,7 +1920,7 @@ msgstr "DIAGNOSTIC TEST" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, fuzzy, python-brace-format #| msgid "" #| "If your internet provider changes your IP address periodic (i.e. every " @@ -1929,7 +1936,7 @@ msgstr "" "IT MAY BE HARD FOR OTHERS TO FIND YOU IN THE WEB. AND FOR THIS REASON NOBODY " "MAY FIND THE SERVICES WHICH ARE PROVIDED BY %(box_name)s, SUCH AS OWNCLOUD." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 #, fuzzy #| msgid "" #| "The solution is to assign a DNS name to your IP address and update the " @@ -1955,7 +1962,7 @@ msgstr "" "THE SERVER WILL ASSIGN YOUR DNS NAME WITH THE NEW IP AND IF SOMEONE FROM THE " "INTERNET ASKS FOR YOUR DNS NAME HE WILL GET YOUR CURRENT IP ANSWERED." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 #, fuzzy #| msgid "" #| "If you are looking for a free dynamic DNS account, you may find a free " @@ -1975,11 +1982,17 @@ msgstr "" "BASED SERVICES ON " "FREEDNS.AFRAID.ORG." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "DYNAMIC DNS CLIENT" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 #, fuzzy #| msgid "Domain Name" msgid "Dynamic Domain Name" @@ -2046,99 +2059,77 @@ msgstr "" "LEAVE THIS FIELD EMPTY IF YOU WANT TO KEEP YOUR PREVIOUS CONFIGURED PASSWORD." #: 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 figure out " -#| "the real Internet IP. The URL should simply return the IP where the " -#| "client comes from (example: http://myip.datasystems24.de)." -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: https://ddns.freedombox.org/ip/)." -msgstr "" -"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 FIGURE OUT THE REAL " -"INTERNET IP. THE URL SHOULD SIMPLY RETURN THE IP WHERE THE CLIENT COMES FROM " -"(EXAMPLE: HTTP://MYIP.DATASYSTEMS24.DE)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 #, fuzzy #| msgid "Update URL" msgid "Other update URL" msgstr "UPDATE URL" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 #, fuzzy #| msgid "Service type" msgid "Service Type" msgstr "SERVICE TYPE" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 #, fuzzy #| msgid "GnudIP Server Address" msgid "GnuDIP Server Address" msgstr "GNUDIP SERVER ADDRESS" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "INVALID SERVER NAME" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "UPDATE URL" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "ACCEPT ALL SSL CERTIFICATES" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "USE HTTP BASIC AUTHENTICATION" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "DOMAIN NAME" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "INVALID DOMAIN NAME" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "USERNAME" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "SHOW PASSWORD" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2154,43 +2145,43 @@ msgstr "" msgid "Needs public IP" msgstr "SERVER PORT" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "STATUS" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "LAST UPDATE" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "IP address" msgid "IP Address" msgstr "IP ADDRESS" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 #, fuzzy #| msgid "Publish Key" msgid "Success" msgstr "PUBLISH KEY" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 #, fuzzy #| msgid "Setup failed." msgid "Failed" msgstr "SETUP FAILED." -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 #, fuzzy #| msgid "Tor relay port available" msgid "No status available." @@ -2363,7 +2354,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2378,7 +2369,7 @@ msgstr "" "LIKE USERNAME@%(domainname)s. YOU CAN SETUP YOUR DOMAIN ON THE SYSTEM " "CONFIGURE PAGE." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2433,18 +2424,20 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Create User" msgid "My Email Aliases" msgstr "CREATE USER" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Create User" -msgid "Manage Aliases for Mailbox" -msgstr "CREATE USER" - #: modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" @@ -2535,45 +2528,96 @@ msgstr "PAGEKITE ACCOUNT" msgid "Add" msgstr "ADDRESS" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "Server domain" +msgid "DNS Records for domain:" +msgstr "SERVER DOMAIN" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "PORT" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "HOSTNAME" + #: modules/email/templates/email.html:10 #, fuzzy #| msgid "Create User" msgid "Manage Spam" msgstr "CREATE USER" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +#, fuzzy +#| msgid "Domain" +msgid "Domains" +msgstr "DOMAIN" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email.html:23 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." msgstr "" -#: modules/email/templates/email.html:36 -msgid "TTL" -msgstr "" - -#: modules/email/templates/email.html:37 -msgid "Class" -msgstr "" - -#: modules/email/templates/email.html:39 -msgid "Priority" -msgstr "" - -#: modules/email/templates/email.html:40 -msgid "Weight" -msgstr "" - -#: modules/email/templates/email.html:41 -#: modules/minetest/templates/minetest.html:18 -msgid "Port" -msgstr "PORT" - -#: modules/email/templates/email.html:42 -msgid "Host/Target/Value" +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" msgstr "" #: modules/featherwiki/__init__.py:25 @@ -2864,7 +2908,7 @@ msgstr "SERVICE DISCOVERY SERVER IS NOT RUNNING" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 #, fuzzy #| msgid "Port" msgid "Ports" @@ -3241,9 +3285,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "ABOUT" @@ -3398,7 +3442,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 #, fuzzy #| msgid "Learn more »" msgid "Learn more..." @@ -3755,7 +3799,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -4184,7 +4228,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -4199,49 +4243,49 @@ msgstr "" "LIKE USERNAME@%(domainname)s. YOU CAN SETUP YOUR DOMAIN ON THE SYSTEM " "CONFIGURE PAGE." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 #, fuzzy #| msgid "Applications" msgid "Registration Token" msgstr "APPLICATIONS" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Applications" msgid "Pending Registrations" msgstr "APPLICATIONS" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 #, fuzzy #| msgid "Applications" msgid "Completed Registrations" msgstr "APPLICATIONS" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4712,7 +4756,7 @@ msgstr "INVALID SERVER NAME" msgid "An error occurred during password reset: {error}." msgstr "AN ERROR OCCURRED DURING CONFIGURATION." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4720,7 +4764,7 @@ msgstr "" "MUMBLE IS AN OPEN SOURCE, LOW-LATENCY, ENCRYPTED, HIGH QUALITY VOICE CHAT " "SOFTWARE." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 #, fuzzy #| msgid "" #| "You can connect to your Mumble server on the regular Mumble port 64738. " @@ -4735,10 +4779,16 @@ msgstr "" "href=\"http://mumble.info\">CLIENTS TO CONNECT TO MUMBLE FROM YOUR " "DESKTOP AND ANDROID DEVICES ARE AVAILABLE." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Mumble server is running" +msgid "Mumble server is configured" +msgstr "MUMBLE SERVER IS RUNNING" + #: modules/mumble/forms.py:30 #, fuzzy #| msgid "Save Password" @@ -4883,12 +4933,6 @@ msgstr "" "63 CHARACTERS OR LESS. TOTAL LENGTH OF DOMAIN NAME MUST BE 253 CHARACTERS " "OR LESS." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -#, fuzzy -#| msgid "Domain" -msgid "Domains" -msgstr "DOMAIN" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -5434,7 +5478,7 @@ msgstr "EDIT CONNECTION" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "EDIT" @@ -5487,7 +5531,7 @@ msgstr "INTERFACE" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "DESCRIPTION" @@ -5565,8 +5609,8 @@ msgstr "THIS CONNECTION IS NOT ACTIVE." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 #, fuzzy #| msgid "Enable Privoxy" msgid "Privacy" @@ -5658,7 +5702,7 @@ msgstr "INTERNAL" msgid "Computer" msgstr "COMPUTER" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "EDIT CONNECTION" @@ -5669,7 +5713,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5767,7 +5811,7 @@ msgstr "UPDATE URL" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "SUBMIT" @@ -6218,11 +6262,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 #, fuzzy #| msgid "Next" @@ -6472,7 +6512,7 @@ msgstr "" msgid "PageKite" msgstr "PAGEKITE" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 #, fuzzy #| msgid "PageKite Account" msgid "PageKite Domain" @@ -6681,8 +6721,8 @@ msgstr "" msgid "Shutdown" msgstr "SHUT DOWN NOW" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 #, fuzzy #| msgid "Restart Now" msgid "Restart" @@ -6726,23 +6766,33 @@ msgstr "" msgid "Shut Down Now" msgstr "SHUT DOWN NOW" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6753,11 +6803,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6765,10 +6815,20 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Enable repro service" +msgid "External services" +msgstr "ENABLE REPRO SERVICE" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS Server" @@ -7863,44 +7923,44 @@ msgid "Delete the following snapshots permanently?" msgstr "DELETE USER PERMANENTLY?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 #, fuzzy #| msgid "Delete %(name)s" msgid "Delete Snapshots" msgstr "DELETE %(name)s" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 #, fuzzy #| msgid "Create User" msgid "Create Snapshot" msgstr "CREATE USER" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -8498,29 +8558,29 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 #, fuzzy #| msgid "Tor Hidden Service" msgid "Tor Onion Service" msgstr "TOR HIDDEN SERVICE" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "TOR BRIDGE RELAY" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "TOR RELAY PORT AVAILABLE" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "OBFS3 TRANSPORT REGISTERED" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "OBFS4 TRANSPORT REGISTERED" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 #, fuzzy #| msgid "Hidden Service" msgid "Onion service is version 3" @@ -8627,7 +8687,7 @@ msgstr "" msgid "Anonymity network" msgstr "TOR ANONYMITY NETWORK" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 #, fuzzy #| msgid "Hidden Service" msgid "Onion Service" @@ -9294,12 +9354,12 @@ msgstr "USERS" msgid "Edit user %(username)s" msgstr "EDIT USER %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "EDIT USER %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9308,30 +9368,30 @@ msgstr "" "USE THE CHANGE PASSWORD FORM TO " "CHANGE THE PASSWORD." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "SAVE CHANGES" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Delete user %(username)s permanently?" msgid "Delete user %(username)s and all the user's files?" msgstr "DELETE USER %(username)s PERMANENTLY?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete User" msgid "Delete user and files" msgstr "DELETE USER" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "CANCEL" @@ -10060,11 +10120,11 @@ msgstr "INSTALLATION" msgid "Service %(service_name)s is not running." msgstr "SERVICE DISCOVERY SERVER IS NOT RUNNING" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -10074,43 +10134,43 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 #, fuzzy #| msgid "Apps" msgid " Apps" msgstr "APPS" -#: templates/base.html:133 +#: templates/base.html:135 #, fuzzy #| msgid "System" msgid " System" msgstr "SYSTEM" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "CHANGE PASSWORD" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 #, fuzzy #| msgid "Shut Down Now" msgid "Shut down" msgstr "SHUT DOWN NOW" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "LOG OUT" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 #, fuzzy #| msgid "Language" msgid "Select language" msgstr "LANGUAGE" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "LOG IN" @@ -10341,23 +10401,45 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "SETTING UNCHANGED" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" +#, 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 figure out " +#~| "the real Internet IP. The URL should simply return the IP where the " +#~| "client comes from (example: http://myip.datasystems24.de)." +#~ 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "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 FIGURE OUT " +#~ "THE REAL INTERNET IP. THE URL SHOULD SIMPLY RETURN THE IP WHERE THE " +#~ "CLIENT COMES FROM (EXAMPLE: HTTP://MYIP.DATASYSTEMS24.DE)." + +#, fuzzy +#~| msgid "Create User" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "CREATE USER" + #, fuzzy #~| msgid "Enable Shaarli" #~ msgid "File & Snippet Sharing" @@ -11838,9 +11920,6 @@ msgstr "" #~ msgid "Minetest server is not running" #~ msgstr "MUMBLE SERVER IS NOT RUNNING" -#~ msgid "Mumble server is running" -#~ msgstr "MUMBLE SERVER IS RUNNING" - #~ msgid "Mumble server is not running" #~ msgstr "MUMBLE SERVER IS NOT RUNNING" @@ -11948,9 +12027,6 @@ msgstr "" #~ msgid "repro SIP Server" #~ msgstr "REPRO SIP SERVER" -#~ msgid "Enable repro service" -#~ msgstr "ENABLE REPRO SERVICE" - #~ msgid "Tor Control Panel" #~ msgstr "TOR CONTROL PANEL" diff --git a/plinth/locale/fr/LC_MESSAGES/django.po b/plinth/locale/fr/LC_MESSAGES/django.po index 06dfe0e76..43c42548b 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2025-01-05 16:52+0000\n" "Last-Translator: Coucouf \n" "Language-Team: French user@host:~/path/to/repo/" @@ -453,11 +455,11 @@ msgstr "" "Chemin d’un dépôt, nouveau ou existant. Exemple : utilisateur@machine:~/" "chemin/vers/le/dépôt/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "Mot de passe du serveur SSH" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -465,18 +467,18 @@ msgstr "" "Mot de passe du serveur SSH.
L’authentification par clé SSH n’est pas " "encore prise en charge." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Ce dépôt de sauvegarde distant existe déjà." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Sélectionnez une clé publique SSH vérifiée" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Restaurer" @@ -550,16 +552,20 @@ msgstr "Aucune archive portant ce nom n’a pu être trouvée dans le dépôt." msgid "Backup system is busy with another operation." msgstr "Le système de sauvegarde est occupé à une autre opération." +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Le dépôt existant n’est pas chiffré." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "Stockage de la {box_name}" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Créer une nouvelle sauvegarde" @@ -603,10 +609,9 @@ msgstr "Sauvegardes existantes" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -771,107 +776,107 @@ msgstr "" msgid "Verify Host" msgstr "Vérifier le serveur" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Planification des sauvegardes mise à jour." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Planifier des sauvegardes" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Archive créée." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Supprimer l’archive" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Archive supprimée." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Téléverser et restaurer une sauvegarde" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "Téléversement réussi." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Aucun fichier de sauvegarde n’a été trouvé." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Restaurer du fichier téléversé" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Les fichiers ont été restaurés de la sauvegarde." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Aucun disque supplémentaire n’est disponible pour ajouter un dépôt." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Créer un dépôt de sauvegarde" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "Nouveau dépôt ajouté." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Créer un dépôt de sauvegarde distant" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Ajouter un nouveau dépôt SSH distant." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Vérifier la clé d’authenticité du serveur SSH" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "Serveur SSH déjà vérifié." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "Serveur SSH vérifié." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "La clé publique d’authenticité du serveur SSH n’a pu être vérifiée." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "L’authentification sur le serveur distant a échoué." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Erreur lors de la connexion au serveur : {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Dépôt supprimé." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Supprimer ce dépôt" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Dépôt supprimé. Les sauvegardes n’ont pas été supprimées." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Le démontage a échoué !" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Le montage a échoué" @@ -1000,7 +1005,7 @@ msgstr "Ajouter un mot de passe" msgid "No passwords currently configured." msgstr "Aucun mot de passe actuellement configuré." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1127,8 +1132,10 @@ msgstr "Résolveur" msgid "Serving Domains" msgstr "Domaines servis" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1158,7 +1165,7 @@ msgstr "Actualiser l’adresse IP et les domaines" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1815,7 +1822,7 @@ msgid "Test" msgstr "Test" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Résultat" @@ -1828,7 +1835,7 @@ msgstr "Test de diagnostic" msgid "App {app_id} is not installed, cannot repair" msgstr "L'application {app_id} n'est pas installée, impossible de réparer" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1840,7 +1847,7 @@ msgstr "" "Et ceci empêchera d’autres utilisateurs de découvrir les services proposés " "par cette {box_name}." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1858,7 +1865,7 @@ msgstr "" "d’assigner votre nom DNS à la nouvelle IP, de sorte que si quelqu’un sur " "Internet demande votre nom DNS, il obtiendra bien votre adresse IP courante." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1871,11 +1878,17 @@ msgstr "" "d’actualisation sur freedns.afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Client DNS dynamique" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Nom de domaine dynamique" @@ -1934,91 +1947,72 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "Laissez ce champ vide pour conserver le mot de passe précédent." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Paramètre optionnel. Entrer l’URL d’un service qui détecte automatiquement " -"votre adresse IP publique réelle et la retourne en réponse (par exemple : " -"https://ddns.freedombox.org/ip/). Cette URL sera utilisée si votre " -"{box_name} n’est pas connectée directement à Internet (par exemple " -"lorsqu’elle est connectée à un routeur à traduction d’adresses réseau " -"« NAT »)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" "Le nom d’utilisateur choisi lors de la création du compte DNS dynamique." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "URL de mise à jour alternative" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Type de service" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "Adresse du serveur GnuDIP" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Nom de serveur invalide" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "URL d’actualisation" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Accepter tous les certificats SSL" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Utiliser l’authentification HTTP basique" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Nom de domaine" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Nom de domaine invalide" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Nom d’utilisateur" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Afficher le mot de passe" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "URL pour rechercher l’IP publique" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "Utiliser IPv6 au lieu d’IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "Ce champ est requis." #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2032,37 +2026,37 @@ msgstr "Gratuit" msgid "Needs public IP" msgstr "A besoin d'une IP publique" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "État" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Dernière mise à jour" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "Adresse IP" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "Succès" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "Échec" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "Aucun statut disponible." @@ -2234,7 +2228,7 @@ msgstr "Tchat vidéo" msgid "XMPP" msgstr "XMPP" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2246,7 +2240,7 @@ msgstr "" "Vous pouvez configurer le domaine de votre système depuis la page Services de nommage." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2314,14 +2308,18 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "Mes alias de courriel" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "Gérer les alias pour la boîte aux lettres" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "Domaine principal" @@ -2400,47 +2398,103 @@ msgstr "Créer un nouvel alias de courriel" msgid "Add" msgstr "Ajouter" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "Configurer le filtrage des pourriels" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "Enregistrements DNS" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" "Les enregistrement DNS suivants doivent être ajoutés manuellement à votre " "domaine primaire pour que le serveur de courriel fonctionne correctement." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "TTL" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "Classe" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "Priorité" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "Poids" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "Port" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "Hôte/Cible/Valeur" +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "Nom ou adresse IP du serveur" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Nom de machine" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "Configurer le filtrage des pourriels" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Domaines" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, fuzzy, python-format +#| msgid "Resolve domain name: {domain}" +msgid "View domain: %(domain)s" +msgstr "Résoudre le nom de domaine : {domain}" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2706,7 +2760,7 @@ msgstr "Port {name} ({details}) disponible pour les réseaux externes" msgid "Port {name} ({details}) unavailable for external networks" msgstr "Port {name} ({details}) non disponible pour les réseaux externes" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Ports" @@ -3068,9 +3122,9 @@ msgstr "Partager vos impressions" msgid "Contribute" msgstr "Participer" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "À propos" @@ -3249,7 +3303,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "En savoir plus…" @@ -3633,7 +3687,7 @@ msgid "Web conference" msgstr "Conférence Web" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "Information de licence JavaScript" @@ -4070,7 +4124,7 @@ msgstr "" "Aucun domaine disponible. Configurez au " "moins un domaine pour pouvoir utiliser Matrix Synapse." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4082,7 +4136,7 @@ msgstr "" "em>. Le changement du nom de domaine après l’installation initiale n’est " "actuellement pas pris en charge." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4090,7 +4144,7 @@ msgstr "" "De nouveaux utilisateurs peuvent créer un compte depuis n’importe quel " "client si l’inscription publique est activée." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" @@ -4098,31 +4152,31 @@ msgstr "" "Les nouveaux utilisateurs doivent utiliser l'un des jetons suivants à des " "fins de vérification lors de l'enregistrement de leur compte :" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "Jeton d'inscription" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "Usages autorisés" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "Inscriptions en attente" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "Inscriptions terminées" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "Date d'expiration" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "Illimité" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4608,7 +4662,7 @@ msgstr "" "Une erreur est survenue pendant la réinitialisation du mot de passe : " "{error}." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4616,7 +4670,7 @@ msgstr "" "Mumble est un logiciel de tchat vocal haute qualité, open source, à faible " "latence et avec chiffrement des communications." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4626,10 +4680,16 @@ msgstr "" "64738. Utilisez l’un des clients Mumble " "pour vous connecter depuis votre ordinateur ou un appareil mobile." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Mumble server is running" +msgid "Mumble server is configured" +msgstr "Le serveur Mumble est actif" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "Définir le mot de passe du super utilisateur" @@ -4779,10 +4839,6 @@ msgstr "" "d’union « - ». La longueur maximum d’un mot est de 63 signes. La longueur " "totale du nom de domaine ne doit pas excéder 253 signes." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Domaines" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "Résolution DNS" @@ -5386,7 +5442,7 @@ msgstr "Modifier la connexion" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Modifier" @@ -5439,7 +5495,7 @@ msgstr "Interface" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Description" @@ -5517,8 +5573,8 @@ msgstr "Cette connexion n’est pas active." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "Confidentialité" @@ -5611,7 +5667,7 @@ msgstr "Interne" msgid "Computer" msgstr "Machine" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Modifier la connexion" @@ -5622,7 +5678,7 @@ msgid "Error:" msgstr "Erreur :" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Fermer" @@ -5724,7 +5780,7 @@ msgstr "Modifier…" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Valider" @@ -6173,11 +6229,7 @@ msgstr "" "en amont et pas par Debian/{box_name}. Les mises à jour sont effectuées en " "fonction d'un cycle indépendant." -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "Cette application est expérimentale." - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "Nextcloud" @@ -6387,7 +6439,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "Domaine PageKite" @@ -6582,8 +6634,8 @@ msgstr "Redémarrer" msgid "Shutdown" msgstr "Éteindre" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Redémarrer" @@ -6625,23 +6677,33 @@ msgstr "" msgid "Shut Down Now" msgstr "Éteindre immédiatement" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "Gérér les paramètres de confidentialité globaux." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "Veuillez vérifier les paramètres de confidentialité." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "Paramètres de confidentialité" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "Envoyer périodiquement la liste des applis utilisées (recommandé)" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6660,11 +6722,11 @@ msgstr "" "transmission a lieu au travers du réseau Tor pourvu que l’appli Tor soit " "activée." -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "Autoriser l'utilisation des serveurs DNS de repli" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6676,10 +6738,22 @@ msgstr "" "connu mais où la connectivité Internet est disponible. Peut être désactivé " "dans la plupart des cas si la connectivité est stable et fiable." +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "URL pour rechercher l’IP publique" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "Rapports d’utilisation" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Enable repro service" +msgid "External services" +msgstr "Activer le service repro" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "DNS alternatif" @@ -6785,10 +6859,10 @@ msgstr "" "Radicale est un serveur pour les protocoles de gestion de calendriers en " "ligne CalDAV et de carnets d’adresses CardDAV. Il permet de synchroniser ses " "rendez-vous et ses contacts entre plusieurs appareils et de les partager. " -"Pour utiliser Radicale, vous devrez passer par une application cliente " -"compatible. Tous les utilisateur disposant d’un compte sur la {box_name} " -"ont accès à Radicale." +"Pour utiliser Radicale, vous devrez passer par une application cliente compatible. Tous les utilisateur disposant d’un compte sur la {box_name} ont accès à " +"Radicale." #: modules/radicale/__init__.py:31 msgid "" @@ -7787,40 +7861,40 @@ msgid "Delete the following snapshots permanently?" msgstr "Supprimer définitivement ces instantanés ?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Numéro" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Date" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Supprimer les instantanés" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Créer un instantané" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "Revenir en arrière" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "sera utilisé au prochain démarrage" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "en utilisation" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Revenir à l’instantané n° %(number)s" @@ -8438,27 +8512,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Service onion Tor" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Relais Tor de type pont (« bridge relay »)" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Le port du relais Tor est disponible" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Abonné au transport obfs3" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Abonné au transport obfs4" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "Le service Onion est de version 3" @@ -8568,7 +8642,7 @@ msgstr "Relais" msgid "Anonymity network" msgstr "Réseau d’anonymisation" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Service Onion" @@ -9245,12 +9319,12 @@ msgstr "Utilisateurs" msgid "Edit user %(username)s" msgstr "Paramètres du compte %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Modifier l’utilisateur %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9259,19 +9333,19 @@ msgstr "" "Utiliser le formulaire de changement de " "mot de passe pour changer votre mot de passe." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Appliquer les changements" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" "Supprimer l’utilisateur %(username)s et tous les fichiers de " "l'utilisateur ?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." @@ -9280,11 +9354,11 @@ msgstr "" "répertoire personnel de l'utilisateur. Si vous voulez conserver ces " "fichiers, désactivez plutôt le compte de l'utilisateur." -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "Supprimer l'utilisateur et les fichiers" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Annuler" @@ -9993,11 +10067,11 @@ msgstr "Installation" msgid "Service %(service_name)s is not running." msgstr "Le service %(service_name)s n’est pas actif." -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "Recherches avec des étiquettes" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "Supprimer toutes les étiquettes" @@ -10010,35 +10084,35 @@ msgstr "" "et de la maîtrise de vos données. C’est un logiciel libre qui vous laisse " "installer et gérer facilement des applis de serveur." -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Accueil" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Applis" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " Système" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Changer le mot de passe" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Éteindre" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Se déconnecter" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Choisir la langue" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "S’identifier" @@ -10262,23 +10336,46 @@ msgstr "" "L’ensemble données de l’appli et sa configuration seront définitivement " "perdus. Un appli peut toujours être réinstallée de zéro." -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "Ici" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Paramètre inchangé" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "avant la désinstallation de {app_id}" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gujarati" +#~ msgid "In 24 hour format." +#~ msgstr "Au format 24 heures." + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Paramètre optionnel. Entrer l’URL d’un service qui détecte " +#~ "automatiquement votre adresse IP publique réelle et la retourne en " +#~ "réponse (par exemple : https://ddns.freedombox.org/ip/). Cette URL sera " +#~ "utilisée si votre {box_name} n’est pas connectée directement à Internet " +#~ "(par exemple lorsqu’elle est connectée à un routeur à traduction " +#~ "d’adresses réseau « NAT »)." + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Gérer les alias pour la boîte aux lettres" + +#~ msgid "This app is experimental." +#~ msgstr "Cette application est expérimentale." + #~ msgid "File & Snippet Sharing" #~ msgstr "Partage de fichiers et de bribes de texte" @@ -12536,9 +12633,6 @@ msgstr "Gujarati" #~ msgid "Minetest server is not running" #~ msgstr "Le serveur Minetest n'est pas actif" -#~ msgid "Mumble server is running" -#~ msgstr "Le serveur Mumble est actif" - #~ msgid "Mumble server is not running" #~ msgstr "Le serveur Mumble n'est pas actif" @@ -12645,10 +12739,6 @@ msgstr "Gujarati" #~ msgid "repro SIP Server" #~ msgstr "Serveur SIP repro" -#~| msgid "Enable Quassel core service" -#~ msgid "Enable repro service" -#~ msgstr "Activer le service repro" - #~ msgid "Enable Shaarli" #~ msgstr "Activer Shaarli" diff --git a/plinth/locale/gl/LC_MESSAGES/django.po b/plinth/locale/gl/LC_MESSAGES/django.po index 1976b577f..3811d26d2 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2022-12-30 10:51+0000\n" "Last-Translator: gallegonovato \n" "Language-Team: Galician user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "" @@ -512,16 +514,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "" @@ -565,10 +571,9 @@ msgstr "" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -707,107 +712,107 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -916,7 +921,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1034,8 +1039,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1065,7 +1072,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1652,7 +1659,7 @@ msgid "Test" msgstr "" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "" @@ -1665,7 +1672,7 @@ msgstr "" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1673,7 +1680,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1684,7 +1691,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1692,11 +1699,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "" @@ -1740,84 +1753,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1831,37 +1831,37 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -2009,7 +2009,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2017,7 +2017,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2065,12 +2065,16 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 -msgid "My Email Aliases" +#: modules/email/__init__.py:80 +msgid "More emails" msgstr "" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 +msgid "My Email Aliases" msgstr "" #: modules/email/forms.py:25 @@ -2151,45 +2155,90 @@ msgstr "" msgid "Add" msgstr "" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" msgstr "" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" - -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +msgid "Host" +msgstr "" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2432,7 +2481,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2761,9 +2810,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Acerca de" @@ -2896,7 +2945,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3220,7 +3269,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3588,7 +3637,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3596,43 +3645,43 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4049,23 +4098,27 @@ msgstr "" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4190,10 +4243,6 @@ msgid "" "or less." msgstr "" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4692,7 +4741,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -4745,7 +4794,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -4823,8 +4872,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -4908,7 +4957,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -4919,7 +4968,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5011,7 +5060,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "" @@ -5407,11 +5456,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5581,7 +5626,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5760,8 +5805,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -5797,23 +5842,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -5824,11 +5879,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -5836,10 +5891,20 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Service Discovery" +msgid "External services" +msgstr "Descubrimento de servizo" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -6753,40 +6818,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7319,27 +7384,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7431,7 +7496,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -7999,39 +8064,39 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -8669,11 +8734,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8683,35 +8748,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -8915,20 +8980,20 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" diff --git a/plinth/locale/gu/LC_MESSAGES/django.po b/plinth/locale/gu/LC_MESSAGES/django.po index f419cf5b7..4b9304416 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2021-01-18 12:32+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Gujarati user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 #, fuzzy #| msgid "Please provide a password" msgid "SSH server password" msgstr "કૃપા કરીને પાસવર્ડ આપો" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "" @@ -529,16 +531,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "" @@ -586,10 +592,9 @@ msgstr "" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -742,111 +747,111 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Documentation" msgid "Added new repository." msgstr "દસ્તાવેજીકરણ" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 #, fuzzy #| msgid "Error installing application: {error}" msgid "Error establishing connection to server: {}" msgstr "એપ્લીકેશન પ્રસ્થાપિત કરતાં ભૂલ થઇ છે: {error}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -959,7 +964,7 @@ msgstr "પાસવર્ડ બતાવો" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1092,8 +1097,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1125,7 +1132,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1772,7 +1779,7 @@ msgid "Test" msgstr "પરીક્ષણ" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "પરિણામ" @@ -1785,7 +1792,7 @@ msgstr "તપાસકીય પરિક્ષણ" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, fuzzy, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1796,7 +1803,7 @@ msgstr "" "અન્ય લોકો માટે તમને ઇન્ટરનેટ પર શોધવા માટે મુશ્કેલ હોઈ શકે છે. આ અન્ય લોકો જે આ દ્વારા " "પ્રદાન કરવામાં આવે છે તે સેવાઓ શોધવાનું અટકાવશે {box_name}" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1813,7 +1820,7 @@ msgstr "" "પર સોંપી દેશે, અને જો ઇન્ટરનેટમાંથી કોઈ વ્યક્તિ તમારા DNS નામ માટે પૂછે, તેઓને તમારા " "વર્તમાન IP સરનામા સાથે પ્રતિસાદ મળશે." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 #, fuzzy #| msgid "" #| "If you are looking for a free dynamic DNS account, you may find a free " @@ -1832,11 +1839,17 @@ msgstr "" "net અથવા તમે મફત અપડેટ URL આધારિત સેવાઓને અહીંથી શોધી શકો છો freedns.afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "ડાયનેમિક DNS ક્લાયન્ટ" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 #, fuzzy #| msgid "Domain Name" msgid "Dynamic Domain Name" @@ -1891,94 +1904,73 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "જો તમે તમારા વર્તમાન પાસવર્ડને રાખવા માંગતા હો તો આ ક્ષેત્ર ખાલી રાખો." #: 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)." -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: https://ddns.freedombox.org/ip/)." -msgstr "" -"વૈકલ્પિક મૂલ્ય. જો તમારું {box_name} ઇન્ટરનેટ સાથે સીધું જ કનેક્ટેડ નથી (એટલે કે એનએટી રાઉટર " -"સાથે જોડાયેલું છે) તો આ URL વાસ્તવિક IP એડ્રેસને નક્કી કરવા માટે વપરાય છે. URL IP ને જ્યાં " -"ક્લાઈન્ટમાંથી આવે છે ત્યાં જ પાછો મોકલવો જોઈએ (દા.ત http://myip.datasystems24.de)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "વપરાશકર્તાનામ જેનો ઉપયોગ એકાઉન્ટ બનાવવામાં આવ્યો હતો ત્યારે થયો હતો." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 #, fuzzy #| msgid "Update URL" msgid "Other update URL" msgstr "URL અપડેટ કરો" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "સેવા પ્રકાર" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "GnuDIP સર્વર સરનામું" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "અમાન્ય સર્વર નામ" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "URL અપડેટ કરો" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "બધા SSL પ્રમાણપત્રો સ્વીકારો" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "HTTP મૂળભૂત પ્રમાણીકરણનો ઉપયોગ કરો" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "ક્ષેત્રનું નામ" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "અમાન્ય ક્ષેત્રીય નામ" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "વપરાશકર્તા નામ" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "પાસવર્ડ બતાવો" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "જાહેર IP જોવા URL" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1992,39 +1984,39 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "સ્થિતિ" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "છેલ્લો સુધારો" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "GnuDIP Server Address" msgid "IP Address" msgstr "GnuDIP સર્વર સરનામું" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -2201,7 +2193,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2216,7 +2208,7 @@ msgstr "" "દેખાશે username@%(domainname)s. તમે સિસ્ટમ પર તમારા ડોમેન સેટ કરી શકો છો રૂપરેખાંકિત કરો પાનું." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2271,18 +2263,20 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Documentation" msgid "My Email Aliases" msgstr "દસ્તાવેજીકરણ" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Documentation" -msgid "Manage Aliases for Mailbox" -msgstr "દસ્તાવેજીકરણ" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "" @@ -2365,45 +2359,94 @@ msgstr "" msgid "Add" msgstr "" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" +msgstr "" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "હોસ્ટનું નામ" + #: modules/email/templates/email.html:10 #, fuzzy #| msgid "Documentation" msgid "Manage Spam" msgstr "દસ્તાવેજીકરણ" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +#, fuzzy +#| msgid "Domain Name" +msgid "Domains" +msgstr "ક્ષેત્રનું નામ" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email.html:23 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." msgstr "" -#: modules/email/templates/email.html:36 -msgid "TTL" -msgstr "" - -#: modules/email/templates/email.html:37 -msgid "Class" -msgstr "" - -#: modules/email/templates/email.html:39 -msgid "Priority" -msgstr "" - -#: modules/email/templates/email.html:40 -msgid "Weight" -msgstr "" - -#: modules/email/templates/email.html:41 -#: modules/minetest/templates/minetest.html:18 -msgid "Port" -msgstr "" - -#: modules/email/templates/email.html:42 -msgid "Host/Target/Value" +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" msgstr "" #: modules/featherwiki/__init__.py:25 @@ -2655,7 +2698,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -3010,9 +3053,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "વિશે" @@ -3145,7 +3188,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3469,7 +3512,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3843,7 +3886,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3851,49 +3894,49 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 #, fuzzy #| msgid "User registrations enabled" msgid "Registration Token" msgstr "વપરાશકર્તા રજીસ્ટ્રેશન સક્ષમ" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Enable application" msgid "Pending Registrations" msgstr "એપ્લીકેશનને પ્રસ્થાપિત કરો" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 #, fuzzy #| msgid "Enable new user registrations" msgid "Completed Registrations" msgstr "નવા વપરાશકર્તા રજીસ્ટ્રેશનને સક્ષમ કરો" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4346,23 +4389,27 @@ msgstr "અમાન્ય સર્વર નામ" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 #, fuzzy #| msgid "Please provide a password" @@ -4500,12 +4547,6 @@ msgstr "" "મૂળાક્ષરો, આંકડા અને હાયફન હોવા જોઈએ.…દરેક લેબલની કુલ લંબાઈ ૬૩ અક્ષરો કે તેથી ઓછી હોવી " "જોઈએ.…ક્ષેત્રીય નામની કુલ લંબાઈ ૨૫૩ અક્ષરો કે તેથી ઓછી હોવી જોઈએ." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -#, fuzzy -#| msgid "Domain Name" -msgid "Domains" -msgstr "ક્ષેત્રનું નામ" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -5017,7 +5058,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -5070,7 +5111,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -5148,8 +5189,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -5233,7 +5274,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -5244,7 +5285,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5340,7 +5381,7 @@ msgstr "URL અપડેટ કરો" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "સમર્પિત કરો" @@ -5747,11 +5788,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5927,7 +5964,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -6108,8 +6145,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -6145,23 +6182,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6172,11 +6219,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6184,10 +6231,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "જાહેર IP જોવા URL" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Dynamic DNS Service" +msgid "External services" +msgstr "ડાયનેમિક DNS સેવા" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -7109,40 +7168,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7689,27 +7748,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 #, fuzzy #| msgid "Dynamic DNS Service" msgid "Onion service is version 3" @@ -7805,7 +7864,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 #, fuzzy #| msgid "Dynamic DNS Service" msgid "Onion Service" @@ -8403,39 +8462,39 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -9103,11 +9162,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -9117,39 +9176,39 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 #, fuzzy #| msgid "BitTorrent Web Client" msgid " Apps" msgstr "બીટ ટોરેન્ટ વેબ ક્લાયન્ટ" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 #, fuzzy #| msgid "Language" msgid "Select language" msgstr "ભાષા" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -9364,23 +9423,45 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "સેટિંગ યથાવત" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" +#, 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)." +#~ 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "વૈકલ્પિક મૂલ્ય. જો તમારું {box_name} ઇન્ટરનેટ સાથે સીધું જ કનેક્ટેડ નથી (એટલે કે એનએટી " +#~ "રાઉટર સાથે જોડાયેલું છે) તો આ URL વાસ્તવિક IP એડ્રેસને નક્કી કરવા માટે વપરાય છે. URL " +#~ "IP ને જ્યાં ક્લાઈન્ટમાંથી આવે છે ત્યાં જ પાછો મોકલવો જોઈએ (દા.ત http://myip." +#~ "datasystems24.de)." + +#, fuzzy +#~| msgid "Documentation" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "દસ્તાવેજીકરણ" + #~ msgid "Domain Name Server" #~ msgstr "ક્ષેત્રીય નામ સર્વર" diff --git a/plinth/locale/hi/LC_MESSAGES/django.po b/plinth/locale/hi/LC_MESSAGES/django.po index 26cf5f631..514af7407 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2023-10-19 06:30+0000\n" "Last-Translator: Shaik \n" "Language-Team: Hindi user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 #, fuzzy #| msgid "Save Password" msgid "SSH server password" msgstr "पासवर्ड सहेजें" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 #, fuzzy #| msgid "reStore" @@ -558,17 +560,21 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, fuzzy, python-brace-format #| msgid "{box_name} Manual" msgid "{box_name} storage" msgstr "{box_name} मैनुअल" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 #, fuzzy #| msgid "Create Account" msgid "Create a new backup" @@ -630,10 +636,9 @@ msgstr "मौजूदा कस्टम सर्विसस" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -788,123 +793,123 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 #, fuzzy #| msgid "Create Account" msgid "Schedule Backups" msgstr "अकाउंट बनाएँ" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "पुरालेख बनाया गया." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "पुरालेख हटाईये" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "पुरालेख हटा गया है." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 #, fuzzy #| msgid "Name for new backup archive." msgid "Upload and restore a backup" msgstr "नया बैकअप पुरालेख के लिये नाम." -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Password changed successfully." msgid "Upload successful." msgstr "पासवर्ड सफलतापूर्वक बदल गया." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 #, fuzzy #| msgid "Name for new backup archive." msgid "No backup file found." msgstr "नया बैकअप पुरालेख के लिये नाम." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 #, fuzzy #| msgid "Create Snapshot" msgid "Create backup repository" msgstr "स्नैपशॉट बनाइये" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Add new introducer" msgid "Added new repository." msgstr "नया इंट्रोड्यूसर जोड़ें" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 #, fuzzy #| msgid "Add new introducer" msgid "Added new remote SSH repository." msgstr "नया इंट्रोड्यूसर जोड़ें" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 #, fuzzy #| msgid "Error installing application: {error}" msgid "Error establishing connection to server: {}" msgstr "एप्लिकेशन नहीं इंस्टॉल जा सकता: {error}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 #, fuzzy #| msgid "The operation failed." msgid "Mounting failed" @@ -1027,7 +1032,7 @@ msgstr "शो पासवर्ड" msgid "No passwords currently configured." msgstr "वर्तमान में कोई शेयर कॉन्फ़िगर नहीं किया गया है." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1162,8 +1167,10 @@ msgstr "" msgid "Serving Domains" msgstr "सर्वर डोमेन" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1199,7 +1206,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1887,7 +1894,7 @@ msgid "Test" msgstr "परीक्षा" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "परिणाम" @@ -1900,7 +1907,7 @@ msgstr "निदान परिक्षा" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1910,7 +1917,7 @@ msgstr "" "अगर अापका इंटरनेट प्रदाता अक्सर अपना आईपी एड्रसॅ बदलता है (i.e. हर चौबीस) दूसरे लोग " "अपसे मिलकर मुश्किल हेगा. यह दूसरे को यह {box_name} से प्रदान वाले सेवाएं खोजने से रोक देगे." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1927,7 +1934,7 @@ msgstr "" "डिएनएस नाम नया आईपी पर आवंटित करेगा और अगर इंटरनेट से कोई अपना डिएनएस नाम पूछता " "है, अपना वर्तमान एड्रसॅ से जवाब मिलेगा." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 #, fuzzy #| msgid "" #| "If you are looking for a free dynamic DNS account, you may find a free " @@ -1947,11 +1954,17 @@ msgstr "" "यहाँ मिलें freedns.afraid." "org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "डायनेमिक डिएनएस ग्राहक" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 #, fuzzy #| msgid "Domain Name" msgid "Dynamic Domain Name" @@ -2007,94 +2020,73 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "अगर आपको आपना वर्तमान पासवर्ड रखना चाहिये, यह खाली छोडिये." #: 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)." -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: https://ddns.freedombox.org/ip/)." -msgstr "" -"वैकल्पिक मूल्य. अगर आपना {box_name} इंटरनेट से सीघे कनेक्ट नहीं है (i.e. एनऐटि रूटर से " -"कनेक्टईडॅ है) यह यूआरएल असली आईपी एड्रसॅ चुनने के लिये उपयोग करता है. यह यूआरएल ग्राहक आने " -"से जगह को वापस जाना चाहिये ( उदाहरण:http://myip.datasystems24.de)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "जाब अकाउंट बनाया गया था, वो यूसरनाम." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 #, fuzzy #| msgid "Update URL" msgid "Other update URL" msgstr "यूआरएल अपडेट करें" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "सेवा टाइप" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "गिएनयुडिपॅ सर्वर एड्रसॅ" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "सर्वर नाम अमान्य है" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "यूआरएल अपडेट करें" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "सब एसएसएल सिटिफ़िकट स्वीकर करें" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "एचटिटिपि बेसिकॅ प्रमाणीकरण उपयोग करें" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "डोमेन नाम" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "अमान्य डोमेन नाम" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "युसरनाम" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "शो पासवर्ड" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "सार्वजनिक आईपी देखने के लियो यूआरएल" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2110,43 +2102,43 @@ msgstr "" msgid "Needs public IP" msgstr "सर्वर पोर्ट नंबर" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "स्थिति" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "अंतिम अपडेट" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "IP address" msgid "IP Address" msgstr "आइपी एेड्रैस" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 #, fuzzy #| msgid "Access Point" msgid "Success" msgstr "अभिगम केंद्र" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 #, fuzzy #| msgid "Setup failed." msgid "Failed" msgstr "सेटअप विफल." -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 #, fuzzy #| msgid "Tor relay port available" msgid "No status available." @@ -2324,7 +2316,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2339,7 +2331,7 @@ msgstr "" "दिखेगा username@%(domainname)s. आपका डोमेन सिसटेम पर सेटअप कर सकता है कॉन्फ़िगर पेजॅ." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2394,18 +2386,20 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Create User" msgid "My Email Aliases" msgstr "यूसर बनाये" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Create User" -msgid "Manage Aliases for Mailbox" -msgstr "यूसर बनाये" - #: modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" @@ -2494,45 +2488,96 @@ msgstr "अकाउंट बनाएँ" msgid "Add" msgstr "जोड़ें" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "Server domain" +msgid "DNS Records for domain:" +msgstr "सर्वर डोमेन" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "पोर्ट" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "सर्वर होस्ट नाम या IP एड्रेस" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "होस्टनाम" + #: modules/email/templates/email.html:10 #, fuzzy #| msgid "Manage Snapshots" msgid "Manage Spam" msgstr "स्नैपशॉटस प्रबंधित करें" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "डोमेन्स" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email.html:23 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." msgstr "" -#: modules/email/templates/email.html:36 -msgid "TTL" -msgstr "" - -#: modules/email/templates/email.html:37 -msgid "Class" -msgstr "" - -#: modules/email/templates/email.html:39 -msgid "Priority" -msgstr "" - -#: modules/email/templates/email.html:40 -msgid "Weight" -msgstr "" - -#: modules/email/templates/email.html:41 -#: modules/minetest/templates/minetest.html:18 -msgid "Port" -msgstr "पोर्ट" - -#: modules/email/templates/email.html:42 -msgid "Host/Target/Value" +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" msgstr "" #: modules/featherwiki/__init__.py:25 @@ -2818,7 +2863,7 @@ msgstr "%(service_name)s सिर्फ आंतरिक नेट msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "पोर्टस" @@ -3195,9 +3240,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 #, fuzzy msgid "About" msgstr "के बारे में" @@ -3350,7 +3395,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "और सीखिये..." @@ -3722,7 +3767,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "जावास्क्रिप्ट लाइसेंस जानकारी" @@ -4160,7 +4205,7 @@ msgstr "" "कोई डोमेन उपलब्ध नहीं हैं. कॉन्फ़िगर एक डोमेन मैट्रिक्स " "सिनापसॅ उपयोग करने के लिए." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4171,49 +4216,49 @@ msgstr "" "दिखाई देगा @username:%(domain_name)s. प्रारंभिक सेटअप के बाद डोमेन नाम " "बदलना करना वर्तमान मे समर्थित नहीं है." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 #, fuzzy #| msgid "Skip Registration" msgid "Registration Token" msgstr "रजिस्ट्रेशन छोड़ें" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Skip Registration" msgid "Pending Registrations" msgstr "रजिस्ट्रेशन छोड़ें" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 #, fuzzy #| msgid "Skip Registration" msgid "Completed Registrations" msgstr "रजिस्ट्रेशन छोड़ें" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4693,13 +4738,13 @@ msgstr "सर्वर नाम अमान्य है" msgid "An error occurred during password reset: {error}." msgstr "कॉंफ़िगरेशन के दौरान कूछ त्रुटि हुई." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "ममबल एक खुला सोरस, कम विलंबता, एन्क्रिप्टेड अच्छा गुणवत्ता आवाज चैट सॉफ्टवेयर है." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 #, fuzzy #| msgid "" #| "You can connect to your Mumble server on the regular Mumble port 64738. " @@ -4714,10 +4759,14 @@ msgstr "" "mumble.info\">Clients अापके डेस्कटॉप और एंड्रॉयड डिवाइस से ममबल से कनेक्ट होने के " "लिए उपलब्ध हैं." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "ममबल" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 #, fuzzy #| msgid "Save Password" @@ -4861,10 +4910,6 @@ msgstr "" "करना पड़ता है आैर इसमे सिर्फ आल्फ़बेट,संख्या आैर हैफ़ेन होना पड़ता है.हर लेबल का लंबाई ६३ अक्षर " "या कम होनी पड़ती है. डोमेन नाम कि कुल लंबाई २५३ अक्षर या कम होनी पड़ती है." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "डोमेन्स" - #: modules/names/manifest.py:13 #, fuzzy #| msgid "Evolution" @@ -5404,7 +5449,7 @@ msgstr "कनेक्शन संपादित करें" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "संपादन" @@ -5457,7 +5502,7 @@ msgstr "इंटरफ़ेस" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "विवरण" @@ -5535,8 +5580,8 @@ msgstr "यह कनेक्शन सक्रिय नहीं है." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 #, fuzzy #| msgid "Privoxy" msgid "Privacy" @@ -5628,7 +5673,7 @@ msgstr "आंतरिक" msgid "Computer" msgstr "कंप्यूटर" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "कनेक्शन संपादित करें" @@ -5639,7 +5684,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5739,7 +5784,7 @@ msgstr "अपडेट" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "जमा करें" @@ -6198,11 +6243,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -6432,7 +6473,7 @@ msgstr "" msgid "PageKite" msgstr "पेजकइट" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 #, fuzzy #| msgid "PageKite Account" msgid "PageKite Domain" @@ -6640,8 +6681,8 @@ msgstr "" msgid "Shutdown" msgstr "शट डाउन" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "रीस्टार्ट" @@ -6684,23 +6725,33 @@ msgstr "" msgid "Shut Down Now" msgstr "अब शट डाउन करें" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6711,11 +6762,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6723,10 +6774,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "सार्वजनिक आईपी देखने के लियो यूआरएल" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Standard Services" +msgid "External services" +msgstr "स्टैण्डर्ड सर्विसस" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS Server" @@ -7852,40 +7915,40 @@ msgid "Delete the following snapshots permanently?" msgstr "इन स्नैपशॉटस स्थाई रूप से हटाएं?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "संख्या" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "तिथि" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "स्नैपशॉटस हटाएँ" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "स्नैपशॉट बनाइये" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "रोलबैक" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "स्नैपशॉट से रोलबैक करें #%(number)s" @@ -8500,29 +8563,29 @@ msgstr "" msgid "Tor" msgstr "टोर" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 #, fuzzy #| msgid "Tor Hidden Service" msgid "Tor Onion Service" msgstr "टोर हिडन सर्विस" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "टो ब्रिज रीले" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "टोर रीले पोर्ट उपलब्ध है" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Obfs3 ट्रांसपोर्ट पंजीकृत" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Obfs4 ट्रांसपोर्ट पंजीकृत" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 #, fuzzy #| msgid "Hidden Service" msgid "Onion service is version 3" @@ -8639,7 +8702,7 @@ msgstr "रीले" msgid "Anonymity network" msgstr "गुमनामी नेटवर्क" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 #, fuzzy #| msgid "Hidden Service" msgid "Onion Service" @@ -9318,13 +9381,13 @@ msgstr "यूसरस" msgid "Edit user %(username)s" msgstr "यूसर संपादित करें %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, fuzzy, python-format #| msgid "Edit user %(username)s" msgid "Edit User %(username)s" msgstr "यूसर संपादित करें %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9333,30 +9396,30 @@ msgstr "" "पासवर्ड बदलने के लिये यइ पासवर्ड बदलना फोम्र का उपयोग करें." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "बदलाव संचयित कीजिये" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Delete user %(username)s permanently?" msgid "Delete user %(username)s and all the user's files?" msgstr "यूसर %(username)s स्थाई रूप से हटाइये?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete User" msgid "Delete user and files" msgstr "यूसर हटाइये" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "कैंसिल" @@ -10090,13 +10153,13 @@ msgstr "इंस्टालेशन" msgid "Service %(service_name)s is not running." msgstr "सर्विस %(service_name)s नहीं चल रहा है." -#: templates/apps.html:29 +#: templates/apps.html:33 #, fuzzy #| msgid "Search the web" msgid "Search with tags" msgstr "वेब सरच किजिये" -#: templates/apps.html:42 +#: templates/apps.html:46 #, fuzzy #| msgid "Search the web" msgid "Clear all tags" @@ -10108,35 +10171,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " होम" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " ऐप्स" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " सिस्टम" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "पासवर्ड बदलें" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "शट डाउन" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "लॉग आउट" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "भाषा चुनें" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "लॉग इन" @@ -10357,23 +10420,44 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "सेटिंग स्थिर है" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" +#, 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)." +#~ 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "वैकल्पिक मूल्य. अगर आपना {box_name} इंटरनेट से सीघे कनेक्ट नहीं है (i.e. एनऐटि रूटर से " +#~ "कनेक्टईडॅ है) यह यूआरएल असली आईपी एड्रसॅ चुनने के लिये उपयोग करता है. यह यूआरएल ग्राहक " +#~ "आने से जगह को वापस जाना चाहिये ( उदाहरण:http://myip.datasystems24.de)." + +#, fuzzy +#~| msgid "Create User" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "यूसर बनाये" + #, fuzzy #~| msgid "File Sharing" #~ msgid "File & Snippet Sharing" @@ -11634,9 +11718,6 @@ msgstr "" #~ msgid "You don't have any Custom Services enabled" #~ msgstr "अाप कोई कस्टम सर्विसस सक्षम नहीं हैं" -#~ msgid "Standard Services" -#~ msgstr "स्टैण्डर्ड सर्विसस" - #, fuzzy #~| msgid "" #~| "When enabled, Syncthing's web interface will be available from \n" "Language-Team: Hungarian user@host:~/path/to/repo/" @@ -452,29 +454,29 @@ msgstr "" "Új vagy már létező tároló elérési útja. Például: felhasznalo@hoszt:~/" "eleresi/ut/az/adattarhoz/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "SSH-szerver jelszava" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" "Jelszó az SSH-szerverhez.
SSH-kulcs alapú azonosítás még nem lehetséges." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "A távoli biztonsági mentési tároló már létezik." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Válaszd ki az ellenőrzött SSH nyilvános kulcsot" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Visszaállítás" @@ -558,16 +560,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "A meglévő tároló nem titkosított." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "{box_name} Tárhely" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Új biztonsági mentés létrehozása" @@ -611,10 +617,9 @@ msgstr "Meglévő biztonsági mentések" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -778,111 +783,111 @@ msgstr "" msgid "Verify Host" msgstr "Állomás ellenőrzése" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "A biztonsági mentések készítésének ütemezése frissítve." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Biztonsági mentések ütemezése" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Archívum létrehozva." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Archívum törlése" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Archívum törölve." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Biztonsági mentések feltöltése és visszaállítása" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Logged out successfully." msgid "Upload successful." msgstr "Sikeres kijelentkezés." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Nem található biztonsági mentési fájl." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Visszaállítás a feltöltött fájlból" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Visszaállított fájlok a biztonsági mentésből." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Nincs további lemez amit a tárolóhoz lehetne adni." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Biztonsági mentési tároló létrehozása" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "Új távoli SSH tároló hozzáadva." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Távoli biztonsági mentési tároló létrehozása" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Új távoli SSH tároló hozzáadva." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "SSH-állomáskulcs ellenőrzése" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "Az SSH-állomás már ellenőrzött." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH-állomás leellenőrizve." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "SSH-állomás nyilvános kulcsa nem ellenőrizhető le." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "A távoli szerverrel végzett hitelesítés sikertelen." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Hiba lépett fel a szerverhez kapcsolódás során: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Tároló eltávolítva." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Tároló eltávolítása" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Tároló eltávolítva. A biztonsági mentések nem lettek törölve." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Lecsatolás sikertelen!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Felcsatolás sikertelen" @@ -1009,7 +1014,7 @@ msgstr "Jelszó hozzáadása" msgid "No passwords currently configured." msgstr "Jelenleg nincs beállítva jelszó." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1137,8 +1142,10 @@ msgstr "" msgid "Serving Domains" msgstr "Kiszolgált tartományok" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1168,7 +1175,7 @@ msgstr "IP-címek és tartományok frissítése" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1859,7 +1866,7 @@ msgid "Test" msgstr "Teszt" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Eredmény" @@ -1872,7 +1879,7 @@ msgstr "Ellenőrző teszt" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1884,7 +1891,7 @@ msgstr "" "Ez megakadályozza, hogy mások megtalálják a {box_name} által biztosított " "szolgáltatásokat." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1902,7 +1909,7 @@ msgstr "" "rendelni a DNS-neved az új IP-címedhez, és ha valaki az Interneten lekérdezi " "a DNS-neved, válaszként az aktuális IP-címedet fogja megkapni." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at
ddns." @@ -1915,11 +1922,17 @@ msgstr "" "URL alapú szolgáltatást a freedns.afraid.org címen." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Dinamikus DNS ügyfél" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Dinamikus domainnév" @@ -1977,89 +1990,71 @@ msgstr "" "Hagyd ezt a mezőt üresen, ha szeretnéd megtartani a jelenlegi jelszavad." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Opcionális. Ha a {box_name} eszközöd nem közvetlenül kapcsolódik az " -"Internethez (pl. NAT-routerhez van kapcsolódva), ennek az URL-nek a " -"segítségével válik lehetővé nyilvános IP-címed meghatározása. Egy ilyen URL " -"egyszerűen visszaadja a kliens IP-címét (pl.: https://ddns.freedombox.org/" -"ip/)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "A felhasználónév, amely a fiók létrehozása során lett megadva." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "Egyéb frissítési URL" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Szolgáltatás típusa" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "GnuDIP-szerver címe" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Érvénytelen szervernév" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "Frissítési URL" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Minden SSL-tanúsítvány elfogadása" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "HTTP alap hitelesítés használata" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Domainnév" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Érvénytelen domainnév" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Felhasználónév" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Jelszó mutatása" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "URL a nyilvános IP-cím felderítéséhez" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "IPv6 használata IPv4 helyett" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "Ezt a mezőt ki kell tölteni." #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2075,37 +2070,37 @@ msgstr "" msgid "Needs public IP" msgstr "Szerver nyilvános kulcsa:" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Állapot" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Legutolsó frissítés" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "IP-cím" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "Rendben" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "Sikertelen" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "Nincs elérhető állapot." @@ -2284,7 +2279,7 @@ msgstr "Videószoba" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2299,7 +2294,7 @@ msgstr "" "fognak kinézni: username@%(domainname)s. Beállíthatod a rendszered " "domainnevét a Beállítások lapon." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2372,14 +2367,18 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "E-mail álneveim" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "A Mailbox álneveinek kezelése" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "Elsődleges domain" @@ -2460,47 +2459,102 @@ msgstr "Új e-mail álnév létrehozása" msgid "Add" msgstr "Hozzáadás" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "Spam kezelése" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "DNS-rekordok" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" "Az e-mail szerver helyes működéséhez a következő DNS-rekordokat kézileg " "hozzá kell adnod az elsődleges domained beállításaihoz." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "TTL" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "Osztály" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "Prioritás" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "Súly" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "Port" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "Állomás/Cél/Érték" +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "A szerver állomásneve vagy IP-címe" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Állomásnév" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "Spam kezelése" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Domainek" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2780,7 +2834,7 @@ msgstr "{name} port ({details}) elérhető a külső hálózaton" msgid "Port {name} ({details}) unavailable for external networks" msgstr "{name} port ({details}) nem érhető el külső hálózaton" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Portok" @@ -3137,9 +3191,9 @@ msgstr "Visszajelzés küldése" msgid "Contribute" msgstr "Hozzájárulás" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Névjegy" @@ -3310,7 +3364,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Bővebben..." @@ -3700,7 +3754,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "JavaScript licencinformáció" @@ -4153,7 +4207,7 @@ msgstr "" "Nincs elérhető domain. Állíts be legalább egy " "domaint, hogy használni tudd a Matrix Synapse-t." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4165,7 +4219,7 @@ msgstr "" "%(domain_name)s. A domainnév megváltoztatása a kezdeti beállítás után " "jelenleg nem lehetséges." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4173,45 +4227,45 @@ msgstr "" "Ha a szabad regisztráció engedélyezett, bármely kliensről lehet új " "felhasználót regisztrálni." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 #, fuzzy #| msgid "Skip Registration" msgid "Registration Token" msgstr "Regisztráció kihagyása" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 #, fuzzy #| msgid "Allowed IPs" msgid "Uses Allowed" msgstr "Engedélyezett IP-címek" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Skip Registration" msgid "Pending Registrations" msgstr "Regisztráció kihagyása" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 #, fuzzy #| msgid "Skip Registration" msgid "Completed Registrations" msgstr "Regisztráció kihagyása" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4715,7 +4769,7 @@ msgstr "Érvénytelen felhasználónév: {username}" msgid "An error occurred during password reset: {error}." msgstr "Hiba történt a beállítás során." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4723,7 +4777,7 @@ msgstr "" "A Mumble egy nyílt forráskódú, alacsony késéssel működő, titkosított, magas " "hangminőségű audiókonferencia-szoftver." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4733,10 +4787,14 @@ msgstr "" "kapcsolódhatsz. A Mumble-kliensek " "elérhetők az asztali és mobil eszközökhöz." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "SuperUser jelszavának beállítása" @@ -4883,10 +4941,6 @@ msgstr "" "egy címke hossza nem lehet több 63 karakternél. A domainnév teljes hossza " "pedig nem lehet több 253 karakternél." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Domainek" - #: modules/names/manifest.py:13 #, fuzzy #| msgid "Evolution" @@ -5504,7 +5558,7 @@ msgstr "Kapcsolat szerkesztése" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Szerkesztés" @@ -5557,7 +5611,7 @@ msgstr "Interfész" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Leírás" @@ -5635,8 +5689,8 @@ msgstr "Ez a kapcsolat nem aktív." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 #, fuzzy #| msgid "Privoxy" msgid "Privacy" @@ -5731,7 +5785,7 @@ msgstr "Belső" msgid "Computer" msgstr "Számítógép" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Kapcsolat szerkesztése" @@ -5744,7 +5798,7 @@ msgid "Error:" msgstr "hiba" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Bezárás" @@ -5847,7 +5901,7 @@ msgstr "Frissítés…" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Küldés" @@ -6285,11 +6339,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 #, fuzzy #| msgid "Next" @@ -6529,7 +6579,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "PageKite domain" @@ -6735,8 +6785,8 @@ msgstr "" msgid "Shutdown" msgstr "Leállítás" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Újraindítás" @@ -6778,25 +6828,35 @@ msgstr "" msgid "Shut Down Now" msgstr "Leállítás most" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "Rendszerszintű adatvédelmi beállítások kezelése." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" "Kérjük, frissítsd az adatvédelmi beállításokat, a preferenciáidnak " "megfelelően." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "Adatvédelmi beállítások kezelése" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6807,11 +6867,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6819,10 +6879,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "URL a nyilvános IP-cím felderítéséhez" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Standard Services" +msgid "External services" +msgstr "Szabványos szolgáltatások" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS Server" @@ -7954,40 +8026,40 @@ msgid "Delete the following snapshots permanently?" msgstr "Véglegesen törlöd az alábbi pillanatképeket?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Sorszám" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Dátum" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Pillanatképek törlése" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Pillanatkép létrehozása" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "Visszaállít" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "a következő indításkor lesz használva" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "használatban" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Visszaállítás erre a pillanatképre: %(number)s" @@ -8596,27 +8668,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Tor Onion szolgáltatás" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Tor híd relay" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Tor relay port elérhető" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Obfs3 átvitel regisztrálva" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Obfs4 átvitel regisztrálva" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 #, fuzzy #| msgid "Onion Service" msgid "Onion service is version 3" @@ -8738,7 +8810,7 @@ msgstr "Relay" msgid "Anonymity network" msgstr "Anonim hálózat" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Onion-szolgáltatás" @@ -9417,12 +9489,12 @@ msgstr "Felhasználók" msgid "Edit user %(username)s" msgstr "%(username)s felhasználó szerkesztése" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "%(username)s felhasználó szerkesztése" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9431,30 +9503,30 @@ msgstr "" "A jelszó a jelszómódosítási űrlap " "kitöltésével változtatható meg." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Változtatások mentése" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Delete user %(username)s permanently?" msgid "Delete user %(username)s and all the user's files?" msgstr "%(username)s nevű felhasználó végleges törlése?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "Fájlok törlése" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Mégse" @@ -10182,13 +10254,13 @@ msgstr "Telepítés" msgid "Service %(service_name)s is not running." msgstr "A szolgáltatás nem fut (%(service_name)s)." -#: templates/apps.html:29 +#: templates/apps.html:33 #, fuzzy #| msgid "Search the web" msgid "Search with tags" msgstr "Keresés a weben" -#: templates/apps.html:42 +#: templates/apps.html:46 #, fuzzy #| msgid "Search the web" msgid "Clear all tags" @@ -10200,35 +10272,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Kezdőlap" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Alkalmazások" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " Rendszer" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Jelszómódosítás" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Leállítás" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Kijelentkezés" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Válassz nyelvet" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Bejelentkezés" @@ -10457,23 +10529,42 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "A beállítás változatlan" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gudzsaráti" +#~ msgid "In 24 hour format." +#~ msgstr "24 órás formátumban." + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Opcionális. Ha a {box_name} eszközöd nem közvetlenül kapcsolódik az " +#~ "Internethez (pl. NAT-routerhez van kapcsolódva), ennek az URL-nek a " +#~ "segítségével válik lehetővé nyilvános IP-címed meghatározása. Egy ilyen " +#~ "URL egyszerűen visszaadja a kliens IP-címét (pl.: https://ddns.freedombox." +#~ "org/ip/)." + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "A Mailbox álneveinek kezelése" + #~ msgid "File & Snippet Sharing" #~ msgstr "Fájl és kódrészlet megosztása" @@ -11994,9 +12085,6 @@ msgstr "Gudzsaráti" #~ msgid "You don't have any Custom Services enabled" #~ msgstr "Nincs engedélyezett egyedi szolgáltatás" -#~ msgid "Standard Services" -#~ msgstr "Szabványos szolgáltatások" - #, fuzzy #~| msgid "" #~| "When enabled, Syncthing's web interface will be available from \n" "Language-Team: Indonesian user@host:~/path/to/repo/" @@ -446,29 +448,29 @@ msgstr "" "Path dari repositori baru atau yang sudah ada. Contoh: user @ host: ~ / " "path / to / repo / " -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "SSH Server Kata Sandi" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" "Kata sandi server SSH.
Otentikasi berbasis kunci SSH belum mungkin." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Repositori cadangan jarak jauh sudah ada." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Pilih kunci publik SSH Terverifikasi" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Mengembalikan" @@ -551,16 +553,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Repositori yang ada tidak dienkripsi." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "{box_name} Penyimpanan" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Buat cadangan baru" @@ -604,10 +610,9 @@ msgstr "Cadangan yang ada" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -770,111 +775,111 @@ msgstr "" msgid "Verify Host" msgstr "Verifikasi Host" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Jadwal cadangan diperbarui." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Jadwalkan cadangan" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Arsip dibuat." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Hapus Arsip" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Arsip dihapus." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Unggah dan kembalikan cadangan" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Upload file" msgid "Upload successful." msgstr "Unggah data" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Tidak ditemukan file cadangan." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Kembalikan dari file yang diunggah" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "File yang dipulihkan dari cadangan." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Tidak ada disk tambahan yang tersedia untuk menambahkan repositori." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Buat Repositori Cadangan" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "Menambahkan repositori SSH jarak jauh baru." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Buat Repositori Cadangan Jarak Jauh" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Menambahkan repositori SSH jarak jauh baru." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Verifikasi SSH Hostkey" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "Tuan rumah SSH sudah diverifikasi." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "Tuan rumah SSH diverifikasi." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "Kunci publik tuan rumah SSH tidak dapat diverifikasi." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Otentikasi ke server jarak jauh gagal." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Kesalahan menetapkan koneksi ke server: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Repositori dihapus." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Hapus Repositori" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Repositori dihapus. Pencadangan tidak dihapus." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Unmounting gagal!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Pemasangan gagal" @@ -998,7 +1003,7 @@ msgstr "Tambahkan Kata Sandi" msgid "No passwords currently configured." msgstr "Tidak ada kata sandi yang saat ini dikonfigurasi." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1125,8 +1130,10 @@ msgstr "" msgid "Serving Domains" msgstr "Melayani Domain" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1156,7 +1163,7 @@ msgstr "Refresh Alamat IP dan Domain" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1841,7 +1848,7 @@ msgid "Test" msgstr "Pengujian" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Hasil" @@ -1854,7 +1861,7 @@ msgstr "Tes Diagnostik" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1866,7 +1873,7 @@ msgstr "" "internet. Ini akan mencegah orang lain menemukan layanan yang disediakan " "oleh {box_name} ini." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1884,7 +1891,7 @@ msgstr "" "jika seseorang dari Internet meminta nama DNS Anda, mereka akan mendapatkan " "Tanggapan dengan alamat IP Anda saat ini." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 #, fuzzy #| msgid "" #| "If you are looking for a free dynamic DNS account, you may find a free " @@ -1904,11 +1911,17 @@ msgstr "" "layanan berbasis URL pembaruan gratis di
freedns.afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Klien DNS Dinamis" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Nama Domain Dinamis" @@ -1966,95 +1979,73 @@ msgstr "" "Biarkan bidang ini kosong jika Anda ingin menyimpan kata sandi Anda saat ini." #: 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)." -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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Nilai opsional. Jika {box_name} Anda tidak terhubung langsung ke Internet " -"(yaitu terhubung ke router NAT) URL ini digunakan untuk menentukan alamat IP " -"asli. URL harus mengembalikan IP di mana klien berasal (Contoh: http://myip." -"datasystems24.de)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Nama pengguna yang digunakan ketika akun diciptakan." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnudiP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 #, fuzzy #| msgid "other update URL" msgid "Other update URL" msgstr "URL pembaruan lainnya" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Tipe Layanan" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "Alamat Server Gnudip" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Nama server tidak valid" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "Perbaharui URL" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Terima semua sertifikat SSL" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Gunakan autentikasi dasar HTTP" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Nama domain" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Nama Domain Tidak Valid" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Nama Pengguna" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Tampilkan kata sandi" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "URL untuk mencari IP publik" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "Gunakan IPv6 bukan IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2068,43 +2059,43 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Status" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Pembaharuan Terakhir" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "IP address" msgid "IP Address" msgstr "Alamat IP" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 #, fuzzy #| msgid "Access" msgid "Success" msgstr "Mengakses" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 #, fuzzy #| msgid "failed" msgid "Failed" msgstr "gagal" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 #, fuzzy #| msgid "No libraries available." msgid "No status available." @@ -2282,7 +2273,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2297,7 +2288,7 @@ msgstr "" "terlihat seperti nama pengguna @%(domainname)s. Anda dapat mengatur " "domain Anda pada sistem Konfigurasi halaman." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2352,18 +2343,20 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Manage Libraries" msgid "My Email Aliases" msgstr "Kelola Perpustakaan" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Manage Libraries" -msgid "Manage Aliases for Mailbox" -msgstr "Kelola Perpustakaan" - #: modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" @@ -2452,45 +2445,96 @@ msgstr "Buat cadangan baru" msgid "Add" msgstr "Tambah" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "Server domain" +msgid "DNS Records for domain:" +msgstr "Domain peladen" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "Port" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "Alamat IP atau hostname Peladen" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Hostname" + #: modules/email/templates/email.html:10 #, fuzzy #| msgid "Manage Snapshots" msgid "Manage Spam" msgstr "Kelola Snapshot" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Domain" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email.html:23 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." msgstr "" -#: modules/email/templates/email.html:36 -msgid "TTL" -msgstr "" - -#: modules/email/templates/email.html:37 -msgid "Class" -msgstr "" - -#: modules/email/templates/email.html:39 -msgid "Priority" -msgstr "" - -#: modules/email/templates/email.html:40 -msgid "Weight" -msgstr "" - -#: modules/email/templates/email.html:41 -#: modules/minetest/templates/minetest.html:18 -msgid "Port" -msgstr "Port" - -#: modules/email/templates/email.html:42 -msgid "Host/Target/Value" +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" msgstr "" #: modules/featherwiki/__init__.py:25 @@ -2770,7 +2814,7 @@ msgstr "Port {name} ({details}) tersedia untuk jaringan eksternal" msgid "Port {name} ({details}) unavailable for external networks" msgstr "Port {name} ({details}) tidak tersedia untuk jaringan eksternal" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Port" @@ -3124,9 +3168,9 @@ msgstr "Berikan umpan balik" msgid "Contribute" msgstr "Kontribusi" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Tentang" @@ -3294,7 +3338,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Belajarlah lagi..." @@ -3672,7 +3716,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "Informasi Lisensi JavaScript" @@ -4101,7 +4145,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4109,49 +4153,49 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 #, fuzzy #| msgid "Skip Registration" msgid "Registration Token" msgstr "Batalkan Pendaftaran" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Skip Registration" msgid "Pending Registrations" msgstr "Batalkan Pendaftaran" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 #, fuzzy #| msgid "Skip Registration" msgid "Completed Registrations" msgstr "Batalkan Pendaftaran" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4602,23 +4646,27 @@ msgstr "Nama pengguna tidak valid: {username}" msgid "An error occurred during password reset: {error}." msgstr "Terjadi kesalahan selama konfigurasi." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "Atur Kata sandi PenggunaSuper" @@ -4755,10 +4803,6 @@ msgstr "" "harus 63 karakter atau kurang. Total panjang nama domain harus 253 karakter " "atau kurang." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Domain" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -5275,7 +5319,7 @@ msgstr "Sunting Koneksi" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Sunting" @@ -5328,7 +5372,7 @@ msgstr "Antarmuka" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Deskripsi" @@ -5406,8 +5450,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 #, fuzzy #| msgid "Privoxy" msgid "Privacy" @@ -5493,7 +5537,7 @@ msgstr "" msgid "Computer" msgstr "Komputer" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Sunting Koneksi" @@ -5506,7 +5550,7 @@ msgid "Error:" msgstr "kesalahan" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Tutup" @@ -5598,7 +5642,7 @@ msgstr "Perbaharui..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Kirimkan" @@ -5994,11 +6038,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -6180,7 +6220,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "Domain PageKite" @@ -6365,8 +6405,8 @@ msgstr "" msgid "Shutdown" msgstr "Matikan" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Mulai ulang" @@ -6402,23 +6442,33 @@ msgstr "" msgid "Shut Down Now" msgstr "Matikan Sekarang" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6429,11 +6479,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6441,10 +6491,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "URL untuk mencari IP publik" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Standard Services" +msgid "External services" +msgstr "Layanan Standar" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS Server" @@ -7423,40 +7485,40 @@ msgid "Delete the following snapshots permanently?" msgstr "Hapus snapshot berikut secara permanen?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Nomor" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Tanggal" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Hapus Snapshot" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Buat Snapshot" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "sedang digunakan" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -8011,27 +8073,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 #, fuzzy #| msgid "Service" msgid "Onion service is version 3" @@ -8129,7 +8191,7 @@ msgstr "Relay" msgid "Anonymity network" msgstr "Jaringan Anonimitas" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 #, fuzzy #| msgid "Service" msgid "Onion Service" @@ -8740,42 +8802,42 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Hapus Wiki atau Blog %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Edit User %(username)s" msgid "Delete user %(username)s and all the user's files?" msgstr "Hapus Wiki atau Blog %(username)s" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "Hapus file" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Batal" @@ -9445,13 +9507,13 @@ msgstr "Pemasangan" msgid "Service %(service_name)s is not running." msgstr "Layanan %(service_name)s tidak berjalan." -#: templates/apps.html:29 +#: templates/apps.html:33 #, fuzzy #| msgid "Search the web" msgid "Search with tags" msgstr "Jelajahi web" -#: templates/apps.html:42 +#: templates/apps.html:46 #, fuzzy #| msgid "Search the web" msgid "Clear all tags" @@ -9463,35 +9525,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Beranda" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Aplikasi" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " sistem" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Ganti kata sandi" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Matikan" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Keluar" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Pilih bahasa" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Masuk" @@ -9706,23 +9768,48 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Bahasa Gujarat" +#~ msgid "In 24 hour format." +#~ msgstr "Dalam format 24 jam." + +#, 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)." +#~ 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Nilai opsional. Jika {box_name} Anda tidak terhubung langsung ke Internet " +#~ "(yaitu terhubung ke router NAT) URL ini digunakan untuk menentukan alamat " +#~ "IP asli. URL harus mengembalikan IP di mana klien berasal (Contoh: http://" +#~ "myip.datasystems24.de)." + +#, fuzzy +#~| msgid "Manage Libraries" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Kelola Perpustakaan" + #~ msgid "File & Snippet Sharing" #~ msgstr "Berbagi File & Cuplikan" @@ -10496,9 +10583,6 @@ msgstr "Bahasa Gujarat" #~ msgid "Add Service" #~ msgstr "Tambah Layanan" -#~ msgid "Standard Services" -#~ msgstr "Layanan Standar" - #~ msgid "Create a Wiki or Blog" #~ msgstr "Membuat Wiki atau Blog" diff --git a/plinth/locale/it/LC_MESSAGES/django.po b/plinth/locale/it/LC_MESSAGES/django.po index 41feabbcf..65cb637d2 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Italian user@host:~/path/to/repo/" @@ -436,11 +438,11 @@ msgstr "" "Percorso di un deposito nuovo o esistente. Esempio: user@host:~/path/to/" "repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "Password server SSH" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -448,18 +450,18 @@ msgstr "" "La password del Server SSH.
L'autenticazione basata su chiave SSH non è " "ancora possibile." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Il repository di backup remoto esiste già." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Selezionare la chiave pubblica SSH verificata" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 #, fuzzy msgid "Restore" @@ -542,16 +544,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Il repository esistente non è criptato." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Creare un nuovo backup" @@ -595,10 +601,9 @@ msgstr "Backups esistenti" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -765,111 +770,111 @@ msgstr "" msgid "Verify Host" msgstr "Verificare l'host" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Archivio creato." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Cancella archivio" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Archivio cancellato." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Caricare e ripristinare un backup" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Upload file" msgid "Upload successful." msgstr "Carica file" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Nessun file di backup trovato." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Ripristina dal file caricato" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "File ripristinati da backup." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Non sono disponibili dischi aggiuntivi per aggiungere un repository." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Creare un repository di backup" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "Aggiunto nuovo repository SSH remoto." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Creare un repository di backup remoto" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Aggiunto nuovo repository SSH remoto." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Verificare la chiave host SSH" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "Host SSH già verificato." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "Host SSH verificato." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "Non è stato possibile verificare la chiave pubblica dell'host SSH." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Autenticazione al server remoto fallita." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Errore di connessione al server: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Deposito rimosso." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Rimuovere il repository" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Deposito rimosso. I backup non sono stati cancellati." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Smontaggio fallito!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Montaggio fallito" @@ -993,7 +998,7 @@ msgstr "Aggiungi la password" msgid "No passwords currently configured." msgstr "Nessuna password attualmente configurata." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1122,8 +1127,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1153,7 +1160,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1810,7 +1817,7 @@ msgid "Test" msgstr "Test" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Risultato" @@ -1823,7 +1830,7 @@ msgstr "Test Diagnostica" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1834,7 +1841,7 @@ msgstr "" "24 ore), può essere difficile per gli altri trovarti in Internet. Questo " "impedirà altri di raggiungere i servizi forniti da questo {box_name}." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1851,7 +1858,7 @@ msgstr "" "tuo nome DNS al nuovo IP, e se qualcuno cercherà il tuo nome DNS in " "Internet, riceverà come risposta l'indirizzo IP corrente." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 #, fuzzy #| msgid "" #| "If you are looking for a free dynamic DNS account, you may find a free " @@ -1871,11 +1878,17 @@ msgstr "" "gratuito basato su URL d'aggiornamento su freedns.afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Client DNS Dinamico" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Nome Dominio Dinamico" @@ -1930,92 +1943,74 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "Lascia vuoto questo campo se vuoi mantenere la password corrente." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Valore Opzionale. Se il tuo {box_name} non è connesso direttamente alla rete " -"Internet (p.e. connesso ad un router NAT) questo URL viene usato per " -"determinare l'indirizzo IP reale. L'URL dovrebbe semplicemente restituire " -"l'IP da cui proviene il client (esempio: https://ddns.freedombox.org/ip/)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Il nome utente usato quando è stato creato il profilo." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 #, fuzzy #| msgid "other update URL" msgid "Other update URL" msgstr "URL aggiornamento alternativo" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Tipo Servizio" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "Indirizzo Server GnuDIP" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Nome Server Invalido" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "Aggiorna URL" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Accetta tutti i certificati SSL" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 #, fuzzy msgid "Use HTTP basic authentication" msgstr "Usa l'autenticazione HTTP base" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Nome dominio" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Nome dominio non valido" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Nome utente" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Mostra password" -#: modules/dynamicdns/forms.py:99 -#, fuzzy -msgid "URL to look up public IP" -msgstr "URL di cui cercare l'IP pubblico" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 #, fuzzy @@ -2030,43 +2025,43 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Stato" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Ultimo aggiornamento" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "IP address" msgid "IP Address" msgstr "Indirizso IP" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 #, fuzzy #| msgid "Access" msgid "Success" msgstr "Accesso" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 #, fuzzy #| msgid "failed" msgid "Failed" msgstr "fallito" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 #, fuzzy #| msgid "No libraries available." msgid "No status available." @@ -2241,7 +2236,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2257,7 +2252,7 @@ msgstr "" "impostare il tuo dominio nel sistema . Configura " "la pagina ." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2313,18 +2308,20 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Manage Aliases" msgid "My Email Aliases" msgstr "Gestire gli alias" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Manage Aliases" -msgid "Manage Aliases for Mailbox" -msgstr "Gestire gli alias" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "Dominio primario" @@ -2403,45 +2400,94 @@ msgstr "Creare un nuovo alias e-mail" msgid "Add" msgstr "" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "Gestire lo spam" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "Server domain" +msgid "DNS Records for domain:" +msgstr "Dominio server" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" - -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "Porta" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Hostname" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "Gestire lo spam" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Domini" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2720,7 +2766,7 @@ msgstr "Porta {name} ({details}) disponibile per reti esterne" msgid "Port {name} ({details}) unavailable for external networks" msgstr "Porta {name} ({details}) non disponibile per reti esterne" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Ports" @@ -3077,9 +3123,9 @@ msgstr "Invia feedback" msgid "Contribute" msgstr "Contribuire" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Su" @@ -3251,7 +3297,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Impara di più..." @@ -3635,7 +3681,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "Informazioni sulla licenza JavaScript" @@ -4065,7 +4111,7 @@ msgstr "" "Non ci sono domini disponibili. Configura " "almeno un dominio per poter usare Matrix Synapse." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4077,7 +4123,7 @@ msgstr "" "del nome di dominio dopo la prima configurazione, attualmente, non è " "supportato." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 #, fuzzy msgid "" "New users can be registered from any client if public registration is " @@ -4086,43 +4132,43 @@ msgstr "" "I nuovi utenti possono essere registrati da qualsiasi cliente se la " "registrazione pubblica è abilitata." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 #, fuzzy #| msgid "Skip Registration" msgid "Registration Token" msgstr "Salta Registrazione" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Skip Registration" msgid "Pending Registrations" msgstr "Salta Registrazione" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 #, fuzzy #| msgid "Skip Registration" msgid "Completed Registrations" msgstr "Salta Registrazione" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4606,7 +4652,7 @@ msgstr "Nome utente non valido: {username}" msgid "An error occurred during password reset: {error}." msgstr "Si è verificato un errore durante la configurazione." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4614,7 +4660,7 @@ msgstr "" "Mumble è un software di chat vocale ad alta qualità, a bassa latenza, " "cifrato e open source." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 #, fuzzy #| msgid "" #| "You can connect to your Mumble server on the regular Mumble port 64738. " @@ -4629,10 +4675,14 @@ msgstr "" "64738 Sono disponibili dei client da " "connettere a Mumble dai tuoi dispositivi desktop e android." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4778,10 +4828,6 @@ msgstr "" "ogni etichetta non deve essere superiore a 63 caratteri. La lunghezza totale " "del nome di dominio non deve superare i 253 caratreri." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Domini" - #: modules/names/manifest.py:13 #, fuzzy #| msgid "Evolution" @@ -5324,7 +5370,7 @@ msgstr "Modifica Connessione" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Modifica" @@ -5377,7 +5423,7 @@ msgstr "Interfaccia" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Descrizione" @@ -5456,8 +5502,8 @@ msgstr "Questa connessione non è attiva." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 #, fuzzy #| msgid "Privoxy" msgid "Privacy" @@ -5550,7 +5596,7 @@ msgstr "Interna" msgid "Computer" msgstr "Computer" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Modifica Concessione" @@ -5561,7 +5607,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5653,7 +5699,7 @@ msgstr "Cambiare..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Invia" @@ -6057,11 +6103,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -6277,7 +6319,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "Dominio PageKite" @@ -6475,8 +6517,8 @@ msgstr "" msgid "Shutdown" msgstr "Spegni Ora" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -6519,23 +6561,33 @@ msgstr "" msgid "Shut Down Now" msgstr "Spegni Ora" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6546,11 +6598,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6558,10 +6610,21 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +msgid "URL to look up public IP address" +msgstr "URL di cui cercare l'IP pubblico" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Standard Services" +msgid "External services" +msgstr "Servizi Standard" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS Server" @@ -7547,40 +7610,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -8129,27 +8192,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 #, fuzzy #| msgid "Onion Service" msgid "Onion service is version 3" @@ -8246,7 +8309,7 @@ msgstr "" msgid "Anonymity network" msgstr "Rete di anonimato" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Servizio Onion" @@ -8830,42 +8893,42 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Modifica utente %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Edit User %(username)s" msgid "Delete user %(username)s and all the user's files?" msgstr "Modifica utente %(username)s" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "Cancellare file" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Cancella" @@ -9516,11 +9579,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -9530,35 +9593,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -9767,23 +9830,40 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Impostazioni invariate" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gujarati" +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Valore Opzionale. Se il tuo {box_name} non è connesso direttamente alla " +#~ "rete Internet (p.e. connesso ad un router NAT) questo URL viene usato per " +#~ "determinare l'indirizzo IP reale. L'URL dovrebbe semplicemente restituire " +#~ "l'IP da cui proviene il client (esempio: https://ddns.freedombox.org/ip/)." + +#, fuzzy +#~| msgid "Manage Aliases" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Gestire gli alias" + #~ msgid "File & Snippet Sharing" #~ msgstr "Condivisione di file e frammenti di text" @@ -10766,9 +10846,6 @@ msgstr "Gujarati" #~ msgid "You don't have any Custom Services enabled" #~ msgstr "Non hai nessun Servizi Personalizzati abilitati" -#~ msgid "Standard Services" -#~ msgstr "Servizi Standard" - #~ msgid "Secret" #~ msgstr "Segreto" diff --git a/plinth/locale/ja/LC_MESSAGES/django.po b/plinth/locale/ja/LC_MESSAGES/django.po index 19a60752f..a7162efa9 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2023-05-07 23:50+0000\n" "Last-Translator: Nobuhiro Iwamatsu \n" "Language-Team: Japanese user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "" @@ -504,16 +506,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "" @@ -557,10 +563,9 @@ msgstr "" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -699,107 +704,107 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -908,7 +913,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1026,8 +1031,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1057,7 +1064,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1642,7 +1649,7 @@ msgid "Test" msgstr "" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "" @@ -1655,7 +1662,7 @@ msgstr "" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1663,7 +1670,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1674,7 +1681,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1682,11 +1689,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "" @@ -1730,84 +1743,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1821,37 +1821,37 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -1999,7 +1999,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2007,7 +2007,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2055,12 +2055,16 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 -msgid "My Email Aliases" +#: modules/email/__init__.py:80 +msgid "More emails" msgstr "" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 +msgid "My Email Aliases" msgstr "" #: modules/email/forms.py:25 @@ -2139,45 +2143,90 @@ msgstr "" msgid "Add" msgstr "" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" msgstr "" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" - -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +msgid "Host" +msgstr "" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2420,7 +2469,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2747,9 +2796,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "" @@ -2882,7 +2931,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3204,7 +3253,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3568,7 +3617,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3576,43 +3625,43 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4021,23 +4070,27 @@ msgstr "" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4162,10 +4215,6 @@ msgid "" "or less." msgstr "" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4662,7 +4711,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -4715,7 +4764,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -4793,8 +4842,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -4878,7 +4927,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -4889,7 +4938,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -4981,7 +5030,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "" @@ -5375,11 +5424,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5545,7 +5590,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5724,8 +5769,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -5761,23 +5806,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -5788,11 +5843,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -5800,10 +5855,18 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +msgid "External services" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -6711,40 +6774,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7275,27 +7338,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7385,7 +7448,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -7946,39 +8009,39 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -8601,11 +8664,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8615,35 +8678,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -8843,20 +8906,20 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" diff --git a/plinth/locale/kn/LC_MESSAGES/django.po b/plinth/locale/kn/LC_MESSAGES/django.po index 5c2de293b..1fcb6b51c 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2020-07-16 16:41+0000\n" "Last-Translator: Yogesh \n" "Language-Team: Kannada user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "" @@ -504,16 +506,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "" @@ -557,10 +563,9 @@ msgstr "" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -699,107 +704,107 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -908,7 +913,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1026,8 +1031,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1057,7 +1064,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1640,7 +1647,7 @@ msgid "Test" msgstr "" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "" @@ -1653,7 +1660,7 @@ msgstr "" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1661,7 +1668,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1672,7 +1679,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1680,11 +1687,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "" @@ -1728,84 +1741,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1819,37 +1819,37 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -1997,7 +1997,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2005,7 +2005,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2053,12 +2053,16 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 -msgid "My Email Aliases" +#: modules/email/__init__.py:80 +msgid "More emails" msgstr "" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 +msgid "My Email Aliases" msgstr "" #: modules/email/forms.py:25 @@ -2137,45 +2141,90 @@ msgstr "" msgid "Add" msgstr "" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" msgstr "" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" - -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +msgid "Host" +msgstr "" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2418,7 +2467,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2745,9 +2794,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "ಬಗ್ಗೆ" @@ -2880,7 +2929,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3202,7 +3251,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3566,7 +3615,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3574,43 +3623,43 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4019,23 +4068,27 @@ msgstr "" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4160,10 +4213,6 @@ msgid "" "or less." msgstr "" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4660,7 +4709,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -4713,7 +4762,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -4791,8 +4840,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -4876,7 +4925,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -4887,7 +4936,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -4979,7 +5028,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "" @@ -5373,11 +5422,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5543,7 +5588,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5722,8 +5767,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -5759,23 +5804,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -5786,11 +5841,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -5798,10 +5853,18 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +msgid "External services" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -6711,40 +6774,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7275,27 +7338,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7385,7 +7448,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -7946,39 +8009,39 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -8601,11 +8664,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8615,35 +8678,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -8843,19 +8906,19 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" diff --git a/plinth/locale/lt/LC_MESSAGES/django.po b/plinth/locale/lt/LC_MESSAGES/django.po index 0b5fe322e..3aeced1ef 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Lithuanian user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "" @@ -508,16 +510,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "" @@ -561,10 +567,9 @@ msgstr "" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -703,107 +708,107 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -912,7 +917,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1030,8 +1035,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1061,7 +1068,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1646,7 +1653,7 @@ msgid "Test" msgstr "" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "" @@ -1659,7 +1666,7 @@ msgstr "" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1667,7 +1674,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1678,7 +1685,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1686,11 +1693,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "" @@ -1734,84 +1747,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1825,37 +1825,37 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -2003,7 +2003,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2011,7 +2011,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2059,12 +2059,16 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 -msgid "My Email Aliases" +#: modules/email/__init__.py:80 +msgid "More emails" msgstr "" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 +msgid "My Email Aliases" msgstr "" #: modules/email/forms.py:25 @@ -2143,45 +2147,90 @@ msgstr "" msgid "Add" msgstr "" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" msgstr "" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" - -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +msgid "Host" +msgstr "" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2428,7 +2477,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2755,9 +2804,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Apie" @@ -2890,7 +2939,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3212,7 +3261,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3580,7 +3629,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3588,43 +3637,43 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4035,23 +4084,27 @@ msgstr "" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4176,10 +4229,6 @@ msgid "" "or less." msgstr "" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4678,7 +4727,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -4731,7 +4780,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -4809,8 +4858,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -4894,7 +4943,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -4905,7 +4954,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -4997,7 +5046,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "" @@ -5391,11 +5440,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5561,7 +5606,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5740,8 +5785,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -5777,23 +5822,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -5804,11 +5859,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -5816,10 +5871,18 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +msgid "External services" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -6729,40 +6792,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7293,27 +7356,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7403,7 +7466,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -7966,39 +8029,39 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -8621,11 +8684,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8635,35 +8698,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -8863,20 +8926,20 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" diff --git a/plinth/locale/lv/LC_MESSAGES/django.po b/plinth/locale/lv/LC_MESSAGES/django.po index 8508009b8..a6481e894 100644 --- a/plinth/locale/lv/LC_MESSAGES/django.po +++ b/plinth/locale/lv/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2022-09-14 17:20+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Latvian user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "" @@ -507,16 +509,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "" @@ -560,10 +566,9 @@ msgstr "" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -702,107 +707,107 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -911,7 +916,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1029,8 +1034,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1060,7 +1067,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1645,7 +1652,7 @@ msgid "Test" msgstr "" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "" @@ -1658,7 +1665,7 @@ msgstr "" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1666,7 +1673,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1677,7 +1684,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1685,11 +1692,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "" @@ -1733,84 +1746,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1824,37 +1824,37 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -2002,7 +2002,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2010,7 +2010,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2058,12 +2058,16 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 -msgid "My Email Aliases" +#: modules/email/__init__.py:80 +msgid "More emails" msgstr "" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 +msgid "My Email Aliases" msgstr "" #: modules/email/forms.py:25 @@ -2142,45 +2146,90 @@ msgstr "" msgid "Add" msgstr "" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" msgstr "" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" - -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +msgid "Host" +msgstr "" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2427,7 +2476,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2754,9 +2803,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "" @@ -2889,7 +2938,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3211,7 +3260,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3579,7 +3628,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3587,43 +3636,43 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4034,23 +4083,27 @@ msgstr "" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4175,10 +4228,6 @@ msgid "" "or less." msgstr "" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4677,7 +4726,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -4730,7 +4779,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -4808,8 +4857,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -4893,7 +4942,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -4904,7 +4953,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -4996,7 +5045,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "" @@ -5390,11 +5439,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5560,7 +5605,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5739,8 +5784,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -5776,23 +5821,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -5803,11 +5858,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -5815,10 +5870,18 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +msgid "External services" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -6728,40 +6791,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7292,27 +7355,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7402,7 +7465,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -7965,39 +8028,39 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -8620,11 +8683,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8634,35 +8697,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -8862,20 +8925,20 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" diff --git a/plinth/locale/nb/LC_MESSAGES/django.po b/plinth/locale/nb/LC_MESSAGES/django.po index eb8919746..35e693f81 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2024-10-27 23:30+0000\n" "Last-Translator: Sunil Mohan Adapa \n" "Language-Team: Norwegian Bokmål user@host:~/path/to/repo/" @@ -450,11 +452,11 @@ msgstr "" "Sti til et nytt eller eksisterende kodelager. Eksempelvis: user@vert:~/" "sti/til/kodelager/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "SSH-tjenermaskinpassord" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -462,18 +464,18 @@ msgstr "" "Passord til SSH-tjeneren.
Nøkkelbasert SSH-autentisering er foreløbig " "ikke mulig." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Kodelager annensteds hen for sikkerhetskopi finnes allerede." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Velg bekreftet offentlig SSH-nøkkel" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Gjenopprett" @@ -557,16 +559,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Eksisterende pakkebrønn er ikke kryptert." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "{box_name} lager" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Lag ny sikkerhetskopi" @@ -610,10 +616,9 @@ msgstr "Eksisterende sikkerhetskopier" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -776,111 +781,111 @@ msgstr "" msgid "Verify Host" msgstr "Bekreft vert" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Sikkerhetskopieringstidsplan oppdatert." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Tidsplan for sikkerhetskopiering" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Arkiv opprettet." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Slett arkiv" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Arkiv slettet." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Last opp og tilbakefør en sikkerhetskopi" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Password changed successfully." msgid "Upload successful." msgstr "Vellykket passordbytte." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Fant ingen sikkerhetskopifiler." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Gjenopprett fra opplastet fil" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Gjenopprettede filer fra sikkerhetskopi." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Ingen ytterligere disker tilgjengelig for opprettelse av kodelager." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Opprett kodelager for sikkerhetskopier" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "La til nytt SSH-kodelager annensteds fra." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Opprett kodelager annensteds hen for sikkerhetskopi" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "La til nytt SSH-kodelager annensteds fra." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Bekreft SSH-vertsnøkkel" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "SSH-vert allerede bekreftet." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH-vert bekreftet." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "Offentlig nøkkel tilhørende SSH-vert kunne ikke bekreftes." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Identitetsbekreftelse til fjerntjener mislyktes." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Klarte ikke å koble til tjener: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Kodelager fjernet." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Fjern kodelager" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Kodelager fjernet. Sikkerhetskopier ble ikke slettet." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Klarte ikke å avmontere!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Montering feilet" @@ -1006,7 +1011,7 @@ msgstr "Legg til passord" msgid "No passwords currently configured." msgstr "Ingen passord er foreløpig satt opp." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1134,8 +1139,10 @@ msgstr "" msgid "Serving Domains" msgstr "Betjener domener" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1165,7 +1172,7 @@ msgstr "Oppdater IP-adresse og domener" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1850,7 +1857,7 @@ msgid "Test" msgstr "Test" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Resultat" @@ -1863,7 +1870,7 @@ msgstr "Diagnostikktest" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1874,7 +1881,7 @@ msgstr "" "eks. hver 24 t), kan det være vanskelig for andre å finne deg på Internett. " "Dette vil hindre andre i å finne tjenester som tilbys av dette {box_name}et." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1891,7 +1898,7 @@ msgstr "" "tjeneren tildele DNS-navnet ditt til den nye IP-en. Hvis noen fra Internett " "ber om ditt DNS-navn, vil de da få svar med din gjeldende IP-adresse." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 #, fuzzy #| msgid "" #| "If you are looking for a free dynamic DNS account, you may find a free " @@ -1911,11 +1918,17 @@ msgstr "" "URL-baserte oppdateringstjenester her freedns.afraid.org ." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Dynamisk DNS-klient" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Dynamisk domenenavn" @@ -1972,95 +1985,73 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "La dette feltet stå tomt hvis du vil beholde ditt nåværende passord." #: 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)." -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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Valgfri verdi. Hvis ditt {box_name} ikke er koblet direkte til Internett " -"(dvs. koblet til en NAT-ruter), blir denne nettadressen brukt til å finne " -"den virkelige Internett-IP-en. Nettadressen skal bare returnere IP-en som " -"tjeneren kommer fra (eksempelvis: http://myip.datasystems24.de)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Brukernavnet som ble benyttet da kontoen ble opprettet." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 #, fuzzy #| msgid "Update URL" msgid "Other update URL" msgstr "Oppdater URL" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Type tjeneste" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "GnuDIP-tjeneradresse" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Ugyldig tjenernavn" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "Oppdater URL" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Godta alle SSL-sertifikater" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Bruk HTTP-basisgodkjenning" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Domenenavn" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Ugyldig domenenavn" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Brukernavn" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Vis passord" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "URL for å slå opp offentlig IP" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "Bruk IPv6 istedenfor IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2076,43 +2067,43 @@ msgstr "" msgid "Needs public IP" msgstr "Offentlig tjener-nøkkel:" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Status" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Siste oppdatering" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "IP address" msgid "IP Address" msgstr "IP-adresse" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 #, fuzzy #| msgid "Access Point" msgid "Success" msgstr "Aksesspunkt" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 #, fuzzy #| msgid "failed" msgid "Failed" msgstr "feilet" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 #, fuzzy #| msgid "No libraries available." msgid "No status available." @@ -2289,7 +2280,7 @@ msgstr "Videorom" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2304,7 +2295,7 @@ msgstr "" "se slik ut: username@%(domainname)s. Du kan sette opp ditt domene på " "systemsiden Configure ." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2366,18 +2357,20 @@ msgstr "Enhver annen e-posttjener vil bli avinstallert under installasjonen." msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Manage Libraries" msgid "My Email Aliases" msgstr "Håndter biblioteker" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Manage Libraries" -msgid "Manage Aliases for Mailbox" -msgstr "Håndter biblioteker" - #: modules/email/forms.py:25 #, fuzzy #| msgid "Primary connection" @@ -2466,45 +2459,96 @@ msgstr "Lag ny sikkerhetskopi" msgid "Add" msgstr "Legg til" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "Server domain" +msgid "DNS Records for domain:" +msgstr "Tjenerdomene" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "Port" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "Tjernens vertsnavn eller IP-adresse" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Vertsnavn" + #: modules/email/templates/email.html:10 #, fuzzy #| msgid "Manage Snapshots" msgid "Manage Spam" msgstr "Behandle avbildninger" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Domener" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email.html:23 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." msgstr "" -#: modules/email/templates/email.html:36 -msgid "TTL" -msgstr "" - -#: modules/email/templates/email.html:37 -msgid "Class" -msgstr "" - -#: modules/email/templates/email.html:39 -msgid "Priority" -msgstr "" - -#: modules/email/templates/email.html:40 -msgid "Weight" -msgstr "" - -#: modules/email/templates/email.html:41 -#: modules/minetest/templates/minetest.html:18 -msgid "Port" -msgstr "Port" - -#: modules/email/templates/email.html:42 -msgid "Host/Target/Value" +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" msgstr "" #: modules/featherwiki/__init__.py:25 @@ -2784,7 +2828,7 @@ msgstr "Port {name} ({details}) tilgjengelig på eksterne nettverk" msgid "Port {name} ({details}) unavailable for external networks" msgstr "Port {name} ({details}) er utilgjengelig for eksterne nettverk" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Porter" @@ -3155,9 +3199,9 @@ msgstr "Send inn tilbakemeldinger" msgid "Contribute" msgstr "Bidra" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Om" @@ -3326,7 +3370,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Lær mer…" @@ -3711,7 +3755,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "JavaScript lisensinformasjon" @@ -4153,7 +4197,7 @@ msgstr "" "Det finnes ingen domener. Configure (Konfigurer) minst ett domene for å kunne bruke Matrix Synapse." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4164,7 +4208,7 @@ msgstr "" "se slik ut @username:%(domain_name)s. Endring av domenenavnet etter " "det første oppsettet støttes ikke for øyeblikket." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4172,45 +4216,45 @@ msgstr "" "Nye brukere kan registrere seg fra enhver klient hvis offentlig registrering " "er påskrudd." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 #, fuzzy #| msgid "Skip Registration" msgid "Registration Token" msgstr "Sløyf registering (Registration)" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 #, fuzzy #| msgid "Allowed IPs" msgid "Uses Allowed" msgstr "Tillatte IP-er" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Skip Registration" msgid "Pending Registrations" msgstr "Sløyf registering (Registration)" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 #, fuzzy #| msgid "Skip Registration" msgid "Completed Registrations" msgstr "Sløyf registering (Registration)" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4710,7 +4754,7 @@ msgstr "Ugyldig brukernavn: {username}" msgid "An error occurred during password reset: {error}." msgstr "En feil oppsto under konfigureringen." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4718,7 +4762,7 @@ msgstr "" "Mumble er en åpen kildekode, rask, kryptert, høy kvalitets programvare for " "nettprat." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 #, fuzzy #| msgid "" #| "You can connect to your Mumble server on the regular Mumble port 64738. " @@ -4733,10 +4777,16 @@ msgstr "" "href=\"http://mumble.info\">Klienter for å koble til Mumble når " "skrivebordet og/eller Android-enheter er tilgjengelige." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Mumble server is running" +msgid "Mumble server is configured" +msgstr "Mumble-tjener kjører" + #: modules/mumble/forms.py:30 #, fuzzy #| msgid "SSH server password" @@ -4893,10 +4943,6 @@ msgstr "" "bare bokstaver, tall og bindestreker. Lengden på hver merkelapp må være 63 " "tegn, eller mindre. Lengden på domenenavnet må være 253 tegn, eller mindre." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Domener" - #: modules/names/manifest.py:13 #, fuzzy #| msgid "Evolution" @@ -5457,7 +5503,7 @@ msgstr "Rediger tilkobling" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Rediger" @@ -5510,7 +5556,7 @@ msgstr "Grensesnitt" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Beskrivelse" @@ -5588,8 +5634,8 @@ msgstr "Denne forbindelsen er ikke aktiv." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 #, fuzzy #| msgid "Privoxy" msgid "Privacy" @@ -5682,7 +5728,7 @@ msgstr "Intern" msgid "Computer" msgstr "Datamaskin" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Endre oppkobling" @@ -5695,7 +5741,7 @@ msgid "Error:" msgstr "feil" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Lukk" @@ -5798,7 +5844,7 @@ msgstr "Oppdater..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Send inn" @@ -6258,11 +6304,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 #, fuzzy #| msgid "Next" @@ -6494,7 +6536,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "PageKite-domene" @@ -6705,8 +6747,8 @@ msgstr "" msgid "Shutdown" msgstr "Slå av" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Omstart" @@ -6750,23 +6792,33 @@ msgstr "" msgid "Shut Down Now" msgstr "Slå av nå" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6777,11 +6829,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6789,10 +6841,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "URL for å slå opp offentlig IP" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Standard Services" +msgid "External services" +msgstr "Standardtjenester" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS Server" @@ -7908,41 +7972,41 @@ msgid "Delete the following snapshots permanently?" msgstr "Slett denne avbildningen for godt?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Nummer" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Dato" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Slett avbildninger" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Opprett øyeblikksbilde" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "Rull tilbake" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 #, fuzzy msgid "will be used at next boot" msgstr "vil bli brukt ved neste oppstart" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "i bruk" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Rull tilbake til øyeblikksbilde #%(number)s" @@ -8563,27 +8627,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Tor-løktjeneste" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Tor bro-stafettvideresendingsoppsett" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Tor relay-port tilgjengelig" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Obfs3-transport registrert" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Obfs4-transport registrert" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 #, fuzzy #| msgid "Onion Service" msgid "Onion service is version 3" @@ -8702,7 +8766,7 @@ msgstr "Videresending" msgid "Anonymity network" msgstr "Anonymitetsnettverk" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Løktjeneste" @@ -9348,12 +9412,12 @@ msgstr "Brukere" msgid "Edit user %(username)s" msgstr "Endre bruker %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Rediger bruker %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9362,30 +9426,30 @@ msgstr "" "Bruk passordsendringsskjemaet for å " "endre passordet." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Lagre endringer" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Delete user %(username)s permanently?" msgid "Delete user %(username)s and all the user's files?" msgstr "Slett bruker %(username)s for godt?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "Slett filer" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Kanseller" @@ -10106,13 +10170,13 @@ msgstr "Installasjon" msgid "Service %(service_name)s is not running." msgstr "Tjenesten %(service_name)s kjører ikke." -#: templates/apps.html:29 +#: templates/apps.html:33 #, fuzzy #| msgid "Search the web" msgid "Search with tags" msgstr "Søk på nettet" -#: templates/apps.html:42 +#: templates/apps.html:46 #, fuzzy #| msgid "Search the web" msgid "Clear all tags" @@ -10124,35 +10188,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Hjem" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Programmer" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " System" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Endre passord" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Slå av" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Logg ut" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Velg språk" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Logg inn" @@ -10378,23 +10442,48 @@ msgstr "" "All programdata og oppsett blir permanent borte. Programmet kan installeres " "på nytt igjen." -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Oppsett uendret" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "før avinstallering av {app_id}" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gujarati" +#~ msgid "In 24 hour format." +#~ msgstr "I 24-timersformat." + +#, 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)." +#~ 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Valgfri verdi. Hvis ditt {box_name} ikke er koblet direkte til Internett " +#~ "(dvs. koblet til en NAT-ruter), blir denne nettadressen brukt til å finne " +#~ "den virkelige Internett-IP-en. Nettadressen skal bare returnere IP-en som " +#~ "tjeneren kommer fra (eksempelvis: http://myip.datasystems24.de)." + +#, fuzzy +#~| msgid "Manage Libraries" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Håndter biblioteker" + #~ msgid "File & Snippet Sharing" #~ msgstr "Deling av filer og snutter" @@ -11863,9 +11952,6 @@ msgstr "Gujarati" #~ msgid "You don't have any Custom Services enabled" #~ msgstr "Du har ikke noen selvvalgte tjenester aktivert" -#~ msgid "Standard Services" -#~ msgstr "Standardtjenester" - #, fuzzy #~| msgid "" #~| "When enabled, Syncthing's web interface will be available from \n" "Language-Team: Dutch user@host:~/path/to/repo/" @@ -451,11 +453,11 @@ msgstr "" "Pad naar een nieuwe of bestaande repository.Voorbeeld: user@host:~/pad/" "naar/repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "SSH-server wachtwoord" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -463,18 +465,18 @@ msgstr "" "Wachtwoord van de SSH Server.
SSH-sleutel-gebaseerde authenticatie is " "nog niet mogelijk." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Externe backup repository bestaat al." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Selecteer geverifieerde SSH openbare sleutel" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Herstellen" @@ -556,16 +558,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Bestaande repository is niet versleuteld." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "{box_name} opslag" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Maak een nieuwe back-up" @@ -609,10 +615,9 @@ msgstr "Bestaande back-ups" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -776,112 +781,112 @@ msgstr "" msgid "Verify Host" msgstr "Host verifiëren" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Back-upschema bijgewerkt." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Back-ups plannen" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Archief aangemaakt." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Archief verwijderen" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Archief verwijderd." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Een back-up uploaden en herstellen" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Logged out successfully." msgid "Upload successful." msgstr "Succesvol uitgelogd." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Er is geen back-upbestand gevonden." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Herstellen vanuit geüpload bestand" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Herstelde bestanden van de back-up." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" "Er zijn geen extra schijven beschikbaar om een opslagplaats toe te voegen." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Maak een back-up repository" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "Nieuwe externe SSH-repository toegevoegd." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Maak een back-up repository" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Nieuwe externe SSH-repository toegevoegd." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "SSH-hostkey verifiëren" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "SSH-host is al geverifieerd." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH-host geverifieerd." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "De openbare sleutel van de SSH-host kan niet worden geverifieerd." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Authenticatie naar externe server is mislukt." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Fout bij het tot stand brengen van een verbinding met de server: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Repository verwijderd." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Verwijder Repository" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Repository verwijderd. Back-ups zijn niet verwijderd." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Ontkoppelen is mislukt!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Aankoppelen is mislukt" @@ -1008,7 +1013,7 @@ msgstr "Wachtwoord toevoegen" msgid "No passwords currently configured." msgstr "Er zijn momenteel geen wachwoorden ingesteld." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1135,8 +1140,10 @@ msgstr "" msgid "Serving Domains" msgstr "Bediende domeinen" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1166,7 +1173,7 @@ msgstr "IP adressen en domeinen verversen" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1834,7 +1841,7 @@ msgid "Test" msgstr "Test" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Resultaat" @@ -1847,7 +1854,7 @@ msgstr "Diagnostische test" msgid "App {app_id} is not installed, cannot repair" msgstr "Toepassing {app_id} is niet geïnstalleerd, kan niet herstellen" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1859,7 +1866,7 @@ msgstr "" "internet. Daardoor is het gebruik van de diensten van {box_name} vaak " "onmogelijk van buiten het lokale netwerk." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1877,7 +1884,7 @@ msgstr "" "naamswijziging doorvoeren, en als iemand op het internet om deze DNS naam " "vraagt wordt dit beantwoord met het juiste IP adres." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at
ddns." @@ -1890,11 +1897,17 @@ msgstr "" "gebaseerde diensten van freedns.afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Dynamic DNS Cliënt" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Dynamische domeinnaam" @@ -1951,88 +1964,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "Laat dit veld leeg om het huidige wachtwoord te behouden." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Optionele waarde. Als {box_name} niet direct is verbonden met het internet " -"(maar verbonden met een NAT router), wordt deze URL gebruikt om het echte " -"Internet IP adres te bepalen. Het antwoord op het aanroepen van deze URL zou " -"het IP adres moeten zijn (Voorbeeld: https://ddns.freedombox.org/ip/)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "De gebruikersnaam die werd gebruikt toen de account werd gemaakt." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "Andere update-URL" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Dienst Type" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "GnuDIP Serveradres" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Foute servernaam" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "URL bijwerken" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Accepteer alle SSL certificaten" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Gebruik HTTP-basisverificatie" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Domeinnaam" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Foutieve domeinnaam" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Gebruikersnaam" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Toon wachtwoord" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "URL voor controle van het IP-adres" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "Gebruik IPv6 in plaats van IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "Dit veld is vereist." #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2048,37 +2044,37 @@ msgstr "" msgid "Needs public IP" msgstr "Openbare sleutel van de server:" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Status" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Laatste bijwerking" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "IP Adres" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "Succes" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "Mislukt" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "Geen status beschikbaar." @@ -2254,7 +2250,7 @@ msgstr "Video Ruimte" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2269,7 +2265,7 @@ msgstr "" "eruit als username@%(domainname)s. Het domein kan worden ingesteld op " "de Instellingen pagina." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2340,14 +2336,18 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "Mijn e-mail aliassen" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "Aliassen voor postvak beheren" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "Primair domein" @@ -2428,47 +2428,102 @@ msgstr "Nieuwe e-mailalias maken" msgid "Add" msgstr "Toevoegen" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "Spam beheren" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "DNS Records" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" "De volgende DNS-records moeten handmatig worden toegevoegd aan het primaire " "domein om de e-mailserver goed te laten werken." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "TTL" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "Klasse" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "Prioriteit" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "Gewicht" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "Poort" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "Host/Target/Value" +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "Server hostnaam of IP adres" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Hostnaam" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "Spam beheren" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Domeinen" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2725,7 +2780,7 @@ msgstr "Poort {name} ({details})is beschikbaar voor externe netwerken" msgid "Port {name} ({details}) unavailable for external networks" msgstr "Poort {name} ({details}) is niet beschikbaar voor externe netwerken" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Poorten" @@ -3082,9 +3137,9 @@ msgstr "Feedback indienen" msgid "Contribute" msgstr "Bijdragen" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Over ons" @@ -3265,7 +3320,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Lees meer..." @@ -3648,7 +3703,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "JavaScript licentie-informatie" @@ -4105,7 +4160,7 @@ msgstr "" "Er zijn geen domeinen beschikbaar. Configureer tenminste één domein om Matrix Synapse te kunnen gebruiken." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4117,7 +4172,7 @@ msgstr "" "%(domain_name)s. Het veranderen van de domeinnaam na de eerste " "configuratie wordt op het moment niet ondersteund." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4125,7 +4180,7 @@ msgstr "" "Nieuwe gebruikers kunnen worden geregistreerd vanaf elke client als de " "openbare registratie is ingeschakeld." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" @@ -4133,31 +4188,31 @@ msgstr "" "Nieuwe gebruikers moeten een van de volgende tokens gebruiken voor " "verificatie tijdens accountregistratie:" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "Registratie Token" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "Toegestaan gebruik" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "Wachtende Registraties" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "Voltooide Registraties" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "Vervaltijd" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "Ongelimiteerd" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4631,7 +4686,7 @@ msgstr "Paswoord reset voor gebruiker: {username}" msgid "An error occurred during password reset: {error}." msgstr "Er is een fout opgetreden tijdens de wachtwoord reset: {error}." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4639,7 +4694,7 @@ msgstr "" "Mumble is een Open Source, snelle, versleutelde, hoge kwaliteit " "groepsgespreksserver." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4650,10 +4705,16 @@ msgstr "" "programma's waarmee de Mumble dienst gebruikt kan worden. Er zijn " "programma's voor zowel desktop en mobiele apparaten." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Mumble server is running" +msgid "Mumble server is configured" +msgstr "Mumble server draait" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "Wachtwoord van de Supergebruiker vastleggen" @@ -4799,10 +4860,6 @@ msgstr "" "per naam mag niet langer zijn dan 63 tekens. De totale domeinnaamlengte mag " "niet langer zijn dan 253 tekens." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Domeinen" - #: modules/names/manifest.py:13 #, fuzzy #| msgid "Evolution" @@ -5410,7 +5467,7 @@ msgstr "Wijzig verbinding" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Wijzig" @@ -5463,7 +5520,7 @@ msgstr "Interface" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Omschrijving" @@ -5541,8 +5598,8 @@ msgstr "Deze verbinding is niet actief." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "Privacy" @@ -5635,7 +5692,7 @@ msgstr "Intern" msgid "Computer" msgstr "Computer" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Wijzig verbinding" @@ -5648,7 +5705,7 @@ msgid "Error:" msgstr "Foutmelding" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Sluiten" @@ -5748,7 +5805,7 @@ msgstr "Update..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Invoeren" @@ -6182,11 +6239,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "Deze toepassing is een experiment." - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "Nextcloud" @@ -6399,7 +6452,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "PageKite domein" @@ -6607,8 +6660,8 @@ msgstr "" msgid "Shutdown" msgstr "Uitschakelen" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Herstarten" @@ -6650,24 +6703,34 @@ msgstr "" msgid "Shut Down Now" msgstr "Nu Uitschakelen" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "Beheer de privacy-instellingen voor het hele systeem." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" "Werk de privacy-instellingen bij zodat ze overeenkomen met uw voorkeuren." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "Privacy-instelling bekijken" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "Periodiek een lijst van gebruikte apps laten zien (aanbevolen)" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6685,11 +6748,11 @@ msgstr "" "De insturen gebeurt via het Tor-netwerk voor extra anonimiteit als de Tor-" "app is ingeschakeld." -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "Sta fallback DNS servers toe" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6697,10 +6760,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "URL voor controle van het IP-adres" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Enable Quassel core service" +msgid "External services" +msgstr "Quassel-core service inschakelen" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "Fallback DNS Servers" @@ -7820,40 +7895,40 @@ msgid "Delete the following snapshots permanently?" msgstr "De volgende snapshots permanent verwijderen?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Nummer" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Datum" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Snapshots verwijderen" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Maak Snapshot" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "Terugdraaien" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "zal worden gebruikt bij de volgende herstart" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "in gebruik" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Terugdraaien tot snapshot #%(number)s" @@ -8464,27 +8539,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Tor-Onion Dienst" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Tor Bridge Relay" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Tor relay poort beschikbaar" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Obfs3 transport geregistreerd" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Obfs4 transport geregistreerd" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "Onion service is versie 3" @@ -8600,7 +8675,7 @@ msgstr "Relay" msgid "Anonymity network" msgstr "Anonimiteitsnetwerk" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Onion Service" @@ -9265,12 +9340,12 @@ msgstr "Gebruikers" msgid "Edit user %(username)s" msgstr "Gebruiker %(username)s wijzigen" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Gebruiker %(username)s wijzigen" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9279,30 +9354,30 @@ msgstr "" "Gebruik het wachtwoord wijzigingsformulier " " om het wachtwoord te veranderen." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Wijzigingen opslaan" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Delete user %(username)s permanently?" msgid "Delete user %(username)s and all the user's files?" msgstr "Gebruiker %(username)s permanent verwijderen?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "Bestanden verwijderen" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Annuleer" @@ -10011,13 +10086,13 @@ msgstr "Installatie" msgid "Service %(service_name)s is not running." msgstr "Service %(service_name)s is niet actief." -#: templates/apps.html:29 +#: templates/apps.html:33 #, fuzzy #| msgid "Search the web" msgid "Search with tags" msgstr "Zoeken op internet" -#: templates/apps.html:42 +#: templates/apps.html:46 #, fuzzy #| msgid "Search the web" msgid "Clear all tags" @@ -10032,35 +10107,35 @@ msgstr "" "gegevenseigendom. Het is gratis software waarmee u eenvoudig server-apps " "kunt installeren en beheren." -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Startpagina" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Toepassingen" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " Systeem" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Wijzig wachtwoord" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Uitschakelen" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Afmelden" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Selecteer taal" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Aanmelden" @@ -10280,23 +10355,45 @@ msgstr "" "Alle toepassings-gegevens en configuratie gaan permanent verloren. de " "toepassing kan opnieuw vers worden geïnstalleerd." -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Instelling onveranderd" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "voor het verwijderen van {app_id}" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gujarati" +#~ msgid "In 24 hour format." +#~ msgstr "In 24-uurs formaat." + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Optionele waarde. Als {box_name} niet direct is verbonden met het " +#~ "internet (maar verbonden met een NAT router), wordt deze URL gebruikt om " +#~ "het echte Internet IP adres te bepalen. Het antwoord op het aanroepen van " +#~ "deze URL zou het IP adres moeten zijn (Voorbeeld: https://ddns.freedombox." +#~ "org/ip/)." + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Aliassen voor postvak beheren" + +#~ msgid "This app is experimental." +#~ msgstr "Deze toepassing is een experiment." + #~ msgid "File & Snippet Sharing" #~ msgstr "Delen van bestanden en fragmenten" @@ -12560,9 +12657,6 @@ msgstr "Gujarati" #~ msgid "Minetest server is not running" #~ msgstr "Minetest server draait niet" -#~ msgid "Mumble server is running" -#~ msgstr "Mumble server draait" - #~ msgid "Mumble server is not running" #~ msgstr "Mumble server draait niet" @@ -12665,11 +12759,6 @@ msgstr "Gujarati" #~ msgid "repro SIP Server" #~ msgstr "Tweede DNS Server" -#, fuzzy -#~| msgid "Enable Quassel core service" -#~ msgid "Enable repro service" -#~ msgstr "Quassel-core service inschakelen" - #~ msgid "Enable Shaarli" #~ msgstr "Shaarli Inschakelen" diff --git a/plinth/locale/pl/LC_MESSAGES/django.po b/plinth/locale/pl/LC_MESSAGES/django.po index acfeb7c00..01a490f36 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2024-07-13 12:09+0000\n" "Last-Translator: Monika \n" "Language-Team: Polish user@host:~/path/to/repo/" @@ -435,11 +437,11 @@ msgstr "" "Ścieżka nowego lub istniejącego repozytorium, np.: user@host:~/sciezka/do/" "repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "Hasło do serwera SSH" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -447,18 +449,18 @@ msgstr "" "Hasło do serwera SSH.
Autoryzacja z użyciem klucza SSH nie jest jeszcze " "możliwa." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Zdalne repozytorium już istnieje." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Wybierz zweryfikowany klucz publiczny SSH" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Odtwórz" @@ -539,16 +541,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Istniejące repozytorium nie jest zaszyfrowane." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "Dysk na {box_name}" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Utwórz nową kopię zapasową" @@ -592,10 +598,9 @@ msgstr "Istniejące kopie zapasowe" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -765,115 +770,115 @@ msgstr "" msgid "Verify Host" msgstr "Zweryfikuj hosta" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 #, fuzzy #| msgid "Create Backup" msgid "Schedule Backups" msgstr "Utwórz kopię zapasową" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Archiwum zostało utworzone." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Usuń archiwum" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Archiwum zostało usunięte." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Prześlij i odtwórz kopię zapasową" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Partition expanded successfully." msgid "Upload successful." msgstr "Partycja rozszerzona." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Brak kopii zapasowych." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Odtwórz z przesłanego pliku" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Odtworzono dane z kopii zapasowej." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Nie ma dysków, na których można dodać repozytorium." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Utwórz repozytorium kopii zapasowych" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "Dodano nowe zdalne repozytorium SSH." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Utwórz zdalne repozytorium kopii zapasowych" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Dodano nowe zdalne repozytorium SSH." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Zweryfikuj klucz hosta SSH" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "Host SSH został już zweryfikowany." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "Zweryfikowano hosta SSH." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "Nie można zweryfikować klucza publicznego hosta SSH." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Nie powiodła się autoryzacja na zdalnym serwerze." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Błąd podczas ustanawiania połączenia z serwerem: {error}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Usunięto repozytorium." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Usuń repozytorium" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" "Usunięto repozytorium. Umieszczone w nim kopie bezpieczeństwa nie zostały " "usunięte." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Nie udało się odmontować!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Montowanie nie udało się" @@ -997,7 +1002,7 @@ msgstr "Dodaj hasło" msgid "No passwords currently configured." msgstr "Obecnie nie ma ustawionych żadnych haseł." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1127,8 +1132,10 @@ msgstr "" msgid "Serving Domains" msgstr "Obsługiwane domeny" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1160,7 +1167,7 @@ msgstr "Odśwież adres IP i domeny" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1836,7 +1843,7 @@ msgid "Test" msgstr "Test" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Wynik" @@ -1849,7 +1856,7 @@ msgstr "Test diagnostyczny" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1860,7 +1867,7 @@ msgstr "" "twój numer IP, innym użytkownikom może być trudno cię odnaleźć. Uniemożliwia " "to znajdowanie usług świadczonych przez {box_name}." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1878,7 +1885,7 @@ msgstr "" "nowego adresu IP i gdy ktoś zapyta o twoją nazwę DNS, otrzyma w odpowiedzi " "twój aktualny adres IP." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 #, fuzzy #| msgid "" #| "If you are looking for a free dynamic DNS account, you may find a free " @@ -1898,11 +1905,17 @@ msgstr "" "pod adresem freedns." "afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Klient Dynamic DNS" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Dynamiczna nazwa domeny" @@ -1957,95 +1970,73 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "Zostaw puste jeśli chcesz używać aktualnego hasła." #: 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)." -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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Opcjonalne. Jeśli twój {box_name} nie jest podłączony bezpośrednio do " -"internetu (np. podłączont poprzez NAT) ten adres URL będzie używany do " -"określenia twojego prawdziwego adresu IP. URL powinien zwrócić IP z którego " -"klient pochodzi. (przykład: http://myip.datasystems24.de)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Użytkownik który był używany podczas zakladania konta." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 #, fuzzy #| msgid "Update URL" msgid "Other update URL" msgstr "Uaktualnij URL" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Typ usługi" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "Adres serwera GnuGIP" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Niewłaściwa nazwa użytkownika" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "Uaktualnij URL" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Akceptuj wszystkie certyfikaty SSL" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Użyj podstawowej autentyfikacji HTTP" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Nazwa domeny" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Niewłaściwa nazwa domeny" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Nazwa użytkownika" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Pokaż hasło" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "Adres URL do wyszukiwania publicznego IP" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "Użyj IPv6 zamiast IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2061,43 +2052,43 @@ msgstr "" msgid "Needs public IP" msgstr "Klucz publiczny serwera:" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Stan" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Ostatnie uaktualnienie" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "IP addresses" msgid "IP Address" msgstr "Adresy IP" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 #, fuzzy #| msgid "Access" msgid "Success" msgstr "Dostęp" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 #, fuzzy #| msgid "failed" msgid "Failed" msgstr "nie udało się" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "Brak dostępnego statusu." @@ -2267,7 +2258,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2283,7 +2274,7 @@ msgstr "" "i>. Możesz ustawić swoją domenę na stronie Konfiguruj." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2339,18 +2330,20 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Create Repository" msgid "My Email Aliases" msgstr "Utwórz repozytorium" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Create Repository" -msgid "Manage Aliases for Mailbox" -msgstr "Utwórz repozytorium" - #: modules/email/forms.py:25 #, fuzzy #| msgid "Domain" @@ -2437,45 +2430,94 @@ msgstr "Utwórz nową kopię zapasową" msgid "Add" msgstr "" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" +msgstr "" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Nazwa hosta" + #: modules/email/templates/email.html:10 #, fuzzy #| msgid "Delete %(name)s" msgid "Manage Spam" msgstr "Usuń %(name)s" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +#, fuzzy +#| msgid "Domain" +msgid "Domains" +msgstr "Domena" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email.html:23 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." msgstr "" -#: modules/email/templates/email.html:36 -msgid "TTL" -msgstr "" - -#: modules/email/templates/email.html:37 -msgid "Class" -msgstr "" - -#: modules/email/templates/email.html:39 -msgid "Priority" -msgstr "" - -#: modules/email/templates/email.html:40 -msgid "Weight" -msgstr "" - -#: modules/email/templates/email.html:41 -#: modules/minetest/templates/minetest.html:18 -msgid "Port" -msgstr "" - -#: modules/email/templates/email.html:42 -msgid "Host/Target/Value" +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" msgstr "" #: modules/featherwiki/__init__.py:25 @@ -2755,7 +2797,7 @@ msgstr "Port {name} ({details}) jest dostępny dla sieci zewnętrznych" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -3130,9 +3172,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "O FreedomBox" @@ -3278,7 +3320,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Dowiedz się więcej..." @@ -3620,7 +3662,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "Informacje o licencji JavaScript" @@ -4008,7 +4050,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4016,49 +4058,49 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 #, fuzzy #| msgid "Skip Registration" msgid "Registration Token" msgstr "Pomiń rejstrację" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Skip Registration" msgid "Pending Registrations" msgstr "Pomiń rejstrację" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 #, fuzzy #| msgid "Skip Registration" msgid "Completed Registrations" msgstr "Pomiń rejstrację" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4523,23 +4565,29 @@ msgstr "Niepoprawna nazwa użytkownika: {username}" msgid "An error occurred during password reset: {error}." msgstr "Podczas konfiguracji wystąpił błąd." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "DNS server configuration updated" +msgid "Mumble server is configured" +msgstr "Zmieniono konfigurację DNS" + #: modules/mumble/forms.py:30 #, fuzzy #| msgid "SSH server password" @@ -4682,12 +4730,6 @@ msgstr "" "zawierać tylko litery, cyfry i myślnik. Maksymalna długość to 63 znaki. " "Maksymalna nazwa domeny to 253 znaki." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -#, fuzzy -#| msgid "Domain" -msgid "Domains" -msgstr "Domena" - #: modules/names/manifest.py:13 #, fuzzy #| msgid "Evolution" @@ -5206,7 +5248,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -5259,7 +5301,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -5337,8 +5379,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 #, fuzzy #| msgid "Privoxy" msgid "Privacy" @@ -5424,7 +5466,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -5437,7 +5479,7 @@ msgid "Error:" msgstr "błąd" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5531,7 +5573,7 @@ msgstr "Uaktualnij..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Wyślij" @@ -5947,11 +5989,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -6127,7 +6165,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -6310,8 +6348,8 @@ msgstr "" msgid "Shutdown" msgstr "Wyłącz" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Uruchom ponownie" @@ -6352,23 +6390,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6379,11 +6427,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6391,10 +6439,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "Adres URL do wyszukiwania publicznego IP" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Dynamic DNS Service" +msgid "External services" +msgstr "Usługa dynamicznego DNS" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS Server" @@ -7365,42 +7425,42 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 #, fuzzy #| msgid "Delete %(name)s" msgid "Delete Snapshots" msgstr "Usuń %(name)s" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7971,27 +8031,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 #, fuzzy #| msgid "Dynamic DNS Service" msgid "Onion service is version 3" @@ -8089,7 +8149,7 @@ msgstr "" msgid "Anonymity network" msgstr "Przejdź do sieci" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 #, fuzzy #| msgid "Dynamic DNS Service" msgid "Onion Service" @@ -8709,42 +8769,42 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Edytuj Użytkownika %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Edit User %(username)s" msgid "Delete user %(username)s and all the user's files?" msgstr "Edytuj Użytkownika %(username)s" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "Usuń pliki" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Anuluj" @@ -9455,11 +9515,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "Usługa %(service_name)s nie jest uruchomiona." -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -9469,37 +9529,37 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Dom" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Aplikacje" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Zmień hasło" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Wyłącz" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Wyloguj się" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 #, fuzzy #| msgid "Language" msgid "Select language" msgstr "Język" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Zaloguj się" @@ -9727,23 +9787,45 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Ustawienie bez zmian" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gujarati" +#, 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)." +#~ 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Opcjonalne. Jeśli twój {box_name} nie jest podłączony bezpośrednio do " +#~ "internetu (np. podłączont poprzez NAT) ten adres URL będzie używany do " +#~ "określenia twojego prawdziwego adresu IP. URL powinien zwrócić IP z " +#~ "którego klient pochodzi. (przykład: http://myip.datasystems24.de)." + +#, fuzzy +#~| msgid "Create Repository" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Utwórz repozytorium" + #~ msgid "File & Snippet Sharing" #~ msgstr "Udostępnianie tekstu i plików" @@ -10574,9 +10656,6 @@ msgstr "Gujarati" #~ msgid "Enable DNSSEC configuration updated" #~ msgstr "Włączono DNSSEC" -#~ msgid "DNS server configuration updated" -#~ msgstr "Zmieniono konfigurację DNS" - #~ msgid "Enable forwarding to set forwarding DNS servers" #~ msgstr "Włącz aby ustawić przekazywanie serwerów DNS" diff --git a/plinth/locale/pt/LC_MESSAGES/django.po b/plinth/locale/pt/LC_MESSAGES/django.po index 6dbb530c3..e80ab35cd 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2023-05-22 15:50+0000\n" "Last-Translator: Frederico Gomes \n" "Language-Team: Portuguese user@host:~/path/to/repo/" @@ -454,11 +456,11 @@ msgstr "" "Caminho de um repositório novo ou existente. Exemplo: user@host:~/path/to/" "repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "Palavra-passe do servidor SSH" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -466,18 +468,18 @@ msgstr "" "Palavra-passe do Servidor SSH.
A autenticação baseada em chave SSH ainda " "não é possível." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "O repositório remoto de cópias de segurança já existe." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Seleccione a chave pública de SSH verificada" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Restaurar" @@ -557,16 +559,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Repositório existente não está encriptado." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "{box_name} armazenamento" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Criar nova cópia de segurança" @@ -610,10 +616,9 @@ msgstr "Cópias de segurança existentes" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -777,113 +782,113 @@ msgstr "" msgid "Verify Host" msgstr "Verificar Hospedeiro" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Agendamento de cópias de segurança atualizado." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 #, fuzzy #| msgid "Create Backup" msgid "Schedule Backups" msgstr "Criar backup" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Arquivo criado." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Eliminar Arquivo" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Arquivo eliminado." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Enviar e restaurar uma cópia de segurança" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Logged out successfully." msgid "Upload successful." msgstr "Sessão terminada com sucesso." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Ficheiro de cópias de segurança não encontrado." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Restaurar de um ficheiro enviado" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Ficheiros da cópia de segurança restaurados." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Nenhum disco adicional disponível para adicionar um repositório." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Criar repositório de cópias de segurança" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "Adicionar novo repositório de SSH remoto." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Criar repositório remoto de cópias de segurança" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Adicionar novo repositório de SSH remoto." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Verificar chave de anfitrião SSH" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "Anfitrião SSH já verificado." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "Anfitrião SSH verificado." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "A chave pública do anfitrião SSH não pôde ser verificada." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Falha na autenticação no servidor remoto." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Erro a estabelecer ligação ao servidor: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Repositório removido." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Remover Repositório" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Repositório removido. As cópias de segurança não foram eliminadas." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Remoção falhou!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Criação falhou" @@ -1007,7 +1012,7 @@ msgstr "Palavra-passe de Envio" msgid "No passwords currently configured." msgstr "Atualmente, não existe nenhum arquivo." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1138,8 +1143,10 @@ msgstr "" msgid "Serving Domains" msgstr "Domínios em Serviço" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1169,7 +1176,7 @@ msgstr "Atualizar endereço de IP e domínios" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1801,7 +1808,7 @@ msgid "Test" msgstr "Teste" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Resultado" @@ -1814,7 +1821,7 @@ msgstr "Teste de diagnóstico" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1822,7 +1829,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1833,7 +1840,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1841,11 +1848,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 #, fuzzy #| msgid "Domain Name" msgid "Dynamic Domain Name" @@ -1897,86 +1910,73 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 #, fuzzy #| msgid "Service Discovery" msgid "Service Type" msgstr "Descoberta do Serviço" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Nome de servidor inválido" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "URL de atualização" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Nome de Domínio" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Nome de domínio inválido" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Nome de utilizador" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Mostrar palavra-passe" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 #, fuzzy @@ -1994,41 +1994,41 @@ msgstr "" msgid "Needs public IP" msgstr "Chave pública do servidor:" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Estado" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Última atualização" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "IP addresses" msgid "IP Address" msgstr "Endereços de IP" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 #, fuzzy #| msgid "Access" msgid "Success" msgstr "Aceder" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -2186,7 +2186,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2194,7 +2194,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2242,18 +2242,20 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Create new repository" msgid "My Email Aliases" msgstr "Criar novo repositório" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Create new repository" -msgid "Manage Aliases for Mailbox" -msgstr "Criar novo repositório" - #: modules/email/forms.py:25 #, fuzzy #| msgid "Domain Name" @@ -2340,45 +2342,96 @@ msgstr "Criar novo backup" msgid "Add" msgstr "" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "Server domain" +msgid "DNS Records for domain:" +msgstr "Domínio do servidor" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Nome do anfitrião" + #: modules/email/templates/email.html:10 #, fuzzy #| msgid "Create new repository" msgid "Manage Spam" msgstr "Criar novo repositório" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +#, fuzzy +#| msgid "Domain Name" +msgid "Domains" +msgstr "Nome de Domínio" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email.html:23 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." msgstr "" -#: modules/email/templates/email.html:36 -msgid "TTL" -msgstr "" - -#: modules/email/templates/email.html:37 -msgid "Class" -msgstr "" - -#: modules/email/templates/email.html:39 -msgid "Priority" -msgstr "" - -#: modules/email/templates/email.html:40 -msgid "Weight" -msgstr "" - -#: modules/email/templates/email.html:41 -#: modules/minetest/templates/minetest.html:18 -msgid "Port" -msgstr "" - -#: modules/email/templates/email.html:42 -msgid "Host/Target/Value" +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" msgstr "" #: modules/featherwiki/__init__.py:25 @@ -2651,7 +2704,7 @@ msgstr "Porta {name} ({details}) disponível para redes externas" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -3004,9 +3057,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Sobre" @@ -3150,7 +3203,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3480,7 +3533,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3870,7 +3923,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3878,50 +3931,50 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" "Novos utilizadores podem registar-se se o registo público estiver activado." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 #, fuzzy #| msgid "Applications" msgid "Registration Token" msgstr "Aplicações" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Enable application" msgid "Pending Registrations" msgstr "Ativar aplicação" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 #, fuzzy #| msgid "Enable application" msgid "Completed Registrations" msgstr "Ativar aplicação" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4380,7 +4433,7 @@ msgstr "Nome de utilizador inválido: {username}" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4388,17 +4441,23 @@ msgstr "" "O Mumble é um software de chat de voz de código aberto, de baixa latência, " "criptografado e de alta qualidade." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Configuration updated" +msgid "Mumble server is configured" +msgstr "Configuração atualizada" + #: modules/mumble/forms.py:30 #, fuzzy #| msgid "SSH server password" @@ -4537,12 +4596,6 @@ msgstr "" "comprimento de cada etiqueta deve ser de 63 carateres ou inferior. O " "comprimento total do nome de domínio deve ser de 253 carateres ou inferior." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -#, fuzzy -#| msgid "Domain Name" -msgid "Domains" -msgstr "Nome de Domínio" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -5065,7 +5118,7 @@ msgstr "Editar ligação" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Editar" @@ -5118,7 +5171,7 @@ msgstr "Interface" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Descrição" @@ -5196,8 +5249,8 @@ msgstr "Esta ligação não está ativa." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -5281,7 +5334,7 @@ msgstr "Interna" msgid "Computer" msgstr "Computador" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Editar ligação" @@ -5292,7 +5345,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5386,7 +5439,7 @@ msgstr "Atualização..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Submeter" @@ -5808,11 +5861,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5990,7 +6039,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -6182,8 +6231,8 @@ msgstr "" msgid "Shutdown" msgstr "Desligar" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -6219,23 +6268,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6246,11 +6305,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6258,10 +6317,20 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Service discovery server is running" +msgid "External services" +msgstr "O Servidor da descoberta do serviço está a correr" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS server" @@ -7205,40 +7274,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7788,27 +7857,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 #, fuzzy #| msgid "Service discovery server is running" msgid "Onion service is version 3" @@ -7906,7 +7975,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -8496,42 +8565,42 @@ msgstr "" msgid "Edit user %(username)s" msgstr "Editar utilizador %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Editar utilizador %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Edit User %(username)s" msgid "Delete user %(username)s and all the user's files?" msgstr "Editar utilizador %(username)s" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "Apagar ficheiros" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -9202,11 +9271,11 @@ msgstr "Instalação" msgid "Service %(service_name)s is not running." msgstr "O serviço %(service_name)s não está em execução." -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -9216,35 +9285,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Início" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Aplicações" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " Sistema" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Alterar palavra-passe" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Desligar" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Terminar sessão" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Selecionar idioma" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Iniciar sessão" @@ -9454,23 +9523,31 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Definição inalterada" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gujarati" +#~ msgid "In 24 hour format." +#~ msgstr "Em formato de 24 horas." + +#, fuzzy +#~| msgid "Create new repository" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Criar novo repositório" + #, fuzzy #~| msgid "File Sharing" #~ msgid "File & Snippet Sharing" @@ -9899,11 +9976,6 @@ msgstr "Gujarati" #~ msgid "Enable DNSSEC configuration updated" #~ msgstr "Configuração atualizada" -#, fuzzy -#~| msgid "Configuration updated" -#~ msgid "DNS server configuration updated" -#~ msgstr "Configuração atualizada" - #, fuzzy #~| msgid "Invalid domain name" #~ msgid "Select the domain name to be used for diaspora*" diff --git a/plinth/locale/ru/LC_MESSAGES/django.po b/plinth/locale/ru/LC_MESSAGES/django.po index cb5c46c32..534071464 100644 --- a/plinth/locale/ru/LC_MESSAGES/django.po +++ b/plinth/locale/ru/LC_MESSAGES/django.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-30 20:05-0500\n" -"PO-Revision-Date: 2024-12-06 03:13+0000\n" -"Last-Translator: Sunil Mohan Adapa \n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" +"PO-Revision-Date: 2025-01-14 01:32+0000\n" +"Last-Translator: gfbdrgng \n" "Language-Team: Russian \n" "Language: ru\n" @@ -18,14 +18,14 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Weblate 5.9-dev\n" +"X-Generator: Weblate 5.10-dev\n" #: config.py:103 #, python-brace-format msgid "Static configuration {etc_path} is setup properly" msgstr "Статическая конфигурация {etc_path} правильно настроена" -#: context_processors.py:21 views.py:169 +#: context_processors.py:21 views.py:168 msgid "FreedomBox" msgstr "FreedomBox" @@ -102,32 +102,32 @@ msgstr "Язык, используемый для представления д msgid "Use the language preference set in the browser" msgstr "Использовать языковые настройки браузера" -#: menu.py:112 templates/base.html:119 +#: menu.py:116 templates/base.html:121 msgid "Home" msgstr "Домой" -#: menu.py:113 templates/base.html:128 +#: menu.py:117 templates/base.html:130 msgid "Apps" msgstr "Приложения" -#: menu.py:115 menu.py:122 templates/base.html:137 +#: menu.py:119 menu.py:126 templates/base.html:139 msgid "System" msgstr "Система" -#: menu.py:118 +#: menu.py:122 msgid "Visibility" msgstr "Видимость" -#: menu.py:120 +#: menu.py:124 msgid "Data" msgstr "Данные" -#: menu.py:124 modules/networks/templates/connection_show.html:274 +#: menu.py:128 modules/networks/templates/connection_show.html:274 #: modules/security/__init__.py:35 modules/upgrades/manifest.py:10 msgid "Security" msgstr "Безопасность" -#: menu.py:126 +#: menu.py:130 msgid "Administration" msgstr "Администрирование" @@ -138,22 +138,17 @@ msgstr "" "позже." #: middleware.py:147 -#, fuzzy, python-brace-format -#| msgid "Page not found - %(box_name)s" +#, python-brace-format msgid "Page not found: {url}" -msgstr "Страница не найдена - %(box_name)s" +msgstr "Страница не найдена: {url}" #: middleware.py:150 -#, fuzzy -#| msgid "Error During Backup" msgid "Error running operation." -msgstr "Ошибка во время резервного копирования" +msgstr "Ошибка при выполнении операции." #: middleware.py:152 -#, fuzzy -#| msgid "Error During Backup" msgid "Error loading page." -msgstr "Ошибка во время резервного копирования" +msgstr "Ошибка при загрузке страницы." #: modules/apache/__init__.py:32 msgid "Apache HTTP Server" @@ -205,15 +200,16 @@ msgstr "Домен локальной сети" #: modules/avahi/manifest.py:14 msgid "Auto-discovery" -msgstr "" +msgstr "Автоматическое обнаружение" #: modules/avahi/manifest.py:14 modules/backups/manifest.py:17 msgid "Local" -msgstr "" +msgstr "Местный" #: modules/avahi/manifest.py:14 +#, fuzzy msgid "mDNS" -msgstr "" +msgstr "mDNS" #: modules/backups/__init__.py:24 msgid "Backups allows creating and managing backup archives." @@ -239,7 +235,7 @@ msgid "Enable a Backup Schedule" msgstr "Включить расписание резервного копирования" #: modules/backups/__init__.py:181 modules/backups/__init__.py:228 -#: modules/privacy/__init__.py:79 modules/storage/__init__.py:326 +#: modules/privacy/__init__.py:84 modules/storage/__init__.py:326 #: modules/upgrades/__init__.py:149 #, python-brace-format msgid "Go to {app_name}" @@ -320,23 +316,25 @@ msgstr "" msgid "Hour of the day to trigger backup operation" msgstr "Час дня для запуска операции резервного копирования" -#: modules/backups/forms.py:80 -msgid "In 24 hour format." -msgstr "В 24-часовом формате." +#: modules/backups/forms.py:81 +msgid "" +"In 24 hour format. Services may become temporarily unavailable while running " +"backup operation at this time of the day." +msgstr "" -#: modules/backups/forms.py:83 modules/backups/forms.py:105 +#: modules/backups/forms.py:85 modules/backups/forms.py:107 msgid "Included apps" msgstr "Включённые приложения" -#: modules/backups/forms.py:83 modules/backups/forms.py:105 +#: modules/backups/forms.py:85 modules/backups/forms.py:107 msgid "Apps to include in the backup" msgstr "Приложения, включённые в резервное сохранение" -#: modules/backups/forms.py:99 +#: modules/backups/forms.py:101 msgid "Repository" msgstr "Репозиторий" -#: modules/backups/forms.py:101 +#: modules/backups/forms.py:103 #: modules/backups/templates/backups_delete.html:17 modules/ikiwiki/forms.py:15 #: modules/networks/templates/connection_show.html:75 #: modules/samba/templates/samba.html:66 @@ -344,23 +342,23 @@ msgstr "Репозиторий" msgid "Name" msgstr "Имя" -#: modules/backups/forms.py:102 +#: modules/backups/forms.py:104 msgid "(Optional) Set a name for this backup archive" msgstr "(Необязательно) задайте имя для этого резервного архива" -#: modules/backups/forms.py:123 +#: modules/backups/forms.py:125 msgid "Select the apps you want to restore" msgstr "Выберите приложения, которые вы хотите восстановить" -#: modules/backups/forms.py:139 modules/kiwix/forms.py:21 +#: modules/backups/forms.py:141 modules/kiwix/forms.py:21 msgid "Upload File" msgstr "Загрузить файл" -#: modules/backups/forms.py:141 +#: modules/backups/forms.py:143 msgid "Backup files have to be in .tar.gz format" msgstr "Файлы резервного сохранения должны быть в формате .tar.gz" -#: modules/backups/forms.py:143 +#: modules/backups/forms.py:145 #, python-brace-format msgid "" "Select the backup file to upload from the local computer. This must be a " @@ -371,30 +369,30 @@ msgstr "" "должен быть файл, ранее загруженный в результате успешного резервного " "копирования на {box_name}. Он должен иметь расширение .tar.gz." -#: modules/backups/forms.py:152 +#: modules/backups/forms.py:154 msgid "Repository path format incorrect." msgstr "Неправильный формат пути репозитория." -#: modules/backups/forms.py:159 +#: modules/backups/forms.py:161 #, python-brace-format msgid "Invalid username: {username}" msgstr "Неверное имя пользователя: {username}" -#: modules/backups/forms.py:169 +#: modules/backups/forms.py:171 #, python-brace-format msgid "Invalid hostname: {hostname}" msgstr "Неверное имя хоста: {hostname}" -#: modules/backups/forms.py:173 +#: modules/backups/forms.py:175 #, python-brace-format msgid "Invalid directory path: {dir_path}" msgstr "Неправильный путь к каталогу: {dir_path}" -#: modules/backups/forms.py:179 modules/letsencrypt/manifest.py:11 +#: modules/backups/forms.py:181 modules/letsencrypt/manifest.py:11 msgid "Encryption" msgstr "Шифрование" -#: modules/backups/forms.py:180 +#: modules/backups/forms.py:182 msgid "" "\"Key in Repository\" means that a password-protected key is stored with the " "backup." @@ -402,53 +400,53 @@ msgstr "" "«Ключ в репозитории» подразумевает, что защищённый паролем ключ сохранен " "вместе с резервным копированием." -#: modules/backups/forms.py:182 +#: modules/backups/forms.py:184 msgid "Key in Repository" msgstr "Ключ в репозитории" -#: modules/backups/forms.py:182 -#: modules/matrixsynapse/templates/matrix-synapse.html:62 +#: modules/backups/forms.py:184 +#: modules/matrixsynapse/templates/matrix-synapse.html:67 #: modules/searx/forms.py:14 msgid "None" msgstr "нет" -#: modules/backups/forms.py:184 modules/networks/forms.py:340 +#: modules/backups/forms.py:186 modules/networks/forms.py:340 msgid "Passphrase" msgstr "Парольная фраза" -#: modules/backups/forms.py:185 +#: modules/backups/forms.py:187 msgid "Passphrase; Only needed when using encryption." msgstr "Парольная фраза; нужна только если используется шифрование." -#: modules/backups/forms.py:188 +#: modules/backups/forms.py:190 msgid "Confirm Passphrase" msgstr "Подтвердите парольную фразу" -#: modules/backups/forms.py:188 +#: modules/backups/forms.py:190 msgid "Repeat the passphrase." msgstr "Повторите парольную фразу." -#: modules/backups/forms.py:199 +#: modules/backups/forms.py:201 msgid "The entered encryption passphrases do not match" msgstr "Введённые парольные фразы шифрования неправильные" -#: modules/backups/forms.py:203 +#: modules/backups/forms.py:205 msgid "Passphrase is needed for encryption." msgstr "Парольная фраза необходима для шифрования." -#: modules/backups/forms.py:238 +#: modules/backups/forms.py:240 msgid "Select Disk or Partition" msgstr "Выберите диск или раздел" -#: modules/backups/forms.py:239 +#: modules/backups/forms.py:241 msgid "Backups will be stored in the directory FreedomBoxBackups" msgstr "Резервные копии сохраняются в директорию FreedomBoxBackups" -#: modules/backups/forms.py:248 +#: modules/backups/forms.py:250 msgid "SSH Repository Path" msgstr "Путь к репозиторию SSH" -#: modules/backups/forms.py:249 +#: modules/backups/forms.py:251 msgid "" "Path of a new or existing repository. Example: user@host:~/path/to/repo/" @@ -456,11 +454,11 @@ msgstr "" "Путь к новому или существующему репозиторию. Например: user@host:~/path/" "to/repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "Пароль SSH-сервера" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -468,45 +466,37 @@ msgstr "" "Пароль для сервера SSH.
Аутентификация на основе SSH-ключа пока не " "поддерживается." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Удалённое хранилище резервных копий уже существует." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Выберите проверенный открытый ключ SSH" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Восстановить" #: modules/backups/manifest.py:15 -#, fuzzy -#| msgid "Encryption" msgid "Encrypted" -msgstr "Шифрование" +msgstr "Зашифрованно" #: modules/backups/manifest.py:16 -#, fuzzy -#| msgid "Schedule" msgid "Schedules" msgstr "Расписание" #: modules/backups/manifest.py:18 -#, fuzzy -#| msgid "Remove" msgid "Remote" -msgstr "Удалить" +msgstr "Удаленный" #: modules/backups/manifest.py:19 -#, fuzzy -#| msgid "App updated" msgid "App data" -msgstr "Приложение обновлено" +msgstr "Данные приложения" #: modules/backups/manifest.py:20 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:15 @@ -516,8 +506,9 @@ msgid "Configuration" msgstr "Конфигурация" #: modules/backups/manifest.py:21 +#, fuzzy msgid "Borg" -msgstr "" +msgstr "Borg" #: modules/backups/privileged.py:31 msgid "" @@ -550,29 +541,31 @@ msgstr "" "копий." #: modules/backups/privileged.py:74 -#, fuzzy -#| msgid "A share with this name already exists." msgid "An archive with given name already exists in the repository." -msgstr "Общий ресурс с таким именем уже существует." +msgstr "Архив с заданным именем уже существует в хранилище." #: modules/backups/privileged.py:81 msgid "Archive with given name was not found in the repository." -msgstr "" +msgstr "Архив с указанным именем не найден в хранилище." #: modules/backups/privileged.py:87 msgid "Backup system is busy with another operation." +msgstr "Резервная система занята другой операцией." + +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." msgstr "" #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Имеющийся репозиторий не зашифрован." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "Сохранение данных {box_name}" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Создать новую резервную копию" @@ -616,10 +609,9 @@ msgstr "Существующие резервные копии" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -781,111 +773,107 @@ msgstr "" msgid "Verify Host" msgstr "Проверить хост" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Расписание резервного копирования обновлено." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Расписание резервного копирования" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Архив создан." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Удалить архив" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Архив удалён." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Загрузить и восстановить резервную копию" -#: modules/backups/views.py:218 -#, fuzzy -#| msgid "Logged out successfully." +#: modules/backups/views.py:216 msgid "Upload successful." -msgstr "Выход выполнен успешно." +msgstr "Загрузка прошла успешно." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Резервных копий не найдено." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Восстановить из загруженного файла" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Восстановленные файлы из резервного копирования." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Нет дополнительных дисков, чтобы добавить репозиторий." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Создать репозиторий резервных копий" -#: modules/backups/views.py:352 -#, fuzzy -#| msgid "Added new remote SSH repository." +#: modules/backups/views.py:350 msgid "Added new repository." -msgstr "Добавлен новый удалённый SSH-репозиторий." +msgstr "Добавлен новый репозиторий." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Создать удаленный репозиторий резервного сохранения" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Добавлен новый удалённый SSH-репозиторий." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Проверить ключ SSH хоста" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "SSH хост уже проверен." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH хост проверен." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "Открытый ключ SSH хоста не может быть проверен." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Аутентификация на удалённый сервер не прошла." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Ошибка при установке соединения с сервером: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Репозиторий удалён." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Удалить репозиторий" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Репозиторий удален. Бэкапы не удалялись." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Размонтирование не удалось!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Монтирование не удалась" @@ -1010,7 +998,7 @@ msgstr "Добавить пароль" msgid "No passwords currently configured." msgstr "В настоящее время пароли не настроены." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1121,7 +1109,7 @@ msgstr "" #, fuzzy #| msgid "Enable DNSSEC" msgid "DNS" -msgstr "DNSSEC" +msgstr "DNS" #: modules/bind/manifest.py:17 modules/mumble/manifest.py:67 #: modules/radicale/manifest.py:91 modules/shadowsocks/forms.py:24 @@ -1129,17 +1117,17 @@ msgid "Server" msgstr "Сервер" #: modules/bind/manifest.py:18 -#, fuzzy -#| msgid "Resolver Status" msgid "Resolver" -msgstr "Состояние резольвера" +msgstr "Резолвер" #: modules/bind/templates/bind.html:11 msgid "Serving Domains" msgstr "Обслуживание доменов" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1169,7 +1157,7 @@ msgstr "Обновите IP-адреса и домены" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1355,16 +1343,12 @@ msgid "Cockpit" msgstr "Cockpit" #: modules/cockpit/manifest.py:23 -#, fuzzy -#| msgid "Administration" msgid "Advanced administration" -msgstr "Администрирование" +msgstr "Расширенное администрирование" #: modules/cockpit/manifest.py:24 -#, fuzzy -#| msgid "Web sharing" msgid "Web terminal" -msgstr "Совместное использование веб-страниц" +msgstr "Веб-терминал" #: modules/cockpit/manifest.py:25 modules/storage/__init__.py:47 #: modules/storage/__init__.py:319 modules/storage/__init__.py:350 @@ -1373,10 +1357,8 @@ msgid "Storage" msgstr "Хранилище" #: modules/cockpit/manifest.py:26 -#, fuzzy -#| msgid "Networks" msgid "Networking" -msgstr "Сети" +msgstr "Сеть" #: modules/cockpit/manifest.py:27 modules/names/templates/names.html:20 msgid "Services" @@ -1384,7 +1366,7 @@ msgstr "Службы" #: modules/cockpit/manifest.py:28 msgid "Logs" -msgstr "" +msgstr "Журналы" #: modules/cockpit/manifest.py:29 modules/performance/__init__.py:16 #: modules/performance/__init__.py:40 @@ -1481,13 +1463,11 @@ msgstr "Домашняя страница" #: modules/config/manifest.py:8 msgid "Logging" -msgstr "" +msgstr "Журнал" #: modules/config/manifest.py:8 -#, fuzzy -#| msgid "Advanced" msgid "Advanced apps" -msgstr "Дополнительные" +msgstr "Расширенные приложения" #: modules/config/views.py:41 #, python-brace-format @@ -1600,14 +1580,10 @@ msgid "-- no time zone set --" msgstr "-- не выбран часовой пояс --" #: modules/datetime/manifest.py:15 -#, fuzzy -#| msgid "Network drive" msgid "Network time" -msgstr "Сетевой диск" +msgstr "Время сети" #: modules/datetime/manifest.py:15 -#, fuzzy -#| msgid "Time Zone" msgid "Timezone" msgstr "Часовой пояс" @@ -1768,7 +1744,7 @@ msgstr "Если проблемы обнаружены, попробуйте у #: modules/diagnostics/manifest.py:10 msgid "Detect problems" -msgstr "" +msgstr "Обнаружение проблем" #: modules/diagnostics/manifest.py:10 msgid "Repair" @@ -1776,7 +1752,7 @@ msgstr "Исправление" #: modules/diagnostics/manifest.py:10 msgid "Daily" -msgstr "" +msgstr "Ежедневно" #: modules/diagnostics/templates/diagnostics.html:11 msgid "Diagnostics Run" @@ -1830,7 +1806,7 @@ msgid "Test" msgstr "Тест" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Результат" @@ -1843,7 +1819,7 @@ msgstr "Диагностический тест" msgid "App {app_id} is not installed, cannot repair" msgstr "Приложение {app_id} не установлено, невозможно восстановить" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1854,7 +1830,7 @@ msgstr "" "адрес, другим может быть трудно найти вас в Интернете. Это помешает другим " "найти службы, предоставляемые {box_name}." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1872,7 +1848,7 @@ msgstr "" "из Интернета запросит ваше DNS-имя, он получит ответ с вашим текущим IP-" "адресом." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1885,11 +1861,17 @@ msgstr "" "службу обновления URL-адреса на freedns.afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Клиент динамического DNS" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Динамическое доменное имя" @@ -1945,88 +1927,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "Оставьте это поле пустым, если вы хотите сохранить ваш текущий пароль." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Необязательное значение. Если ваш {box_name} не подключен непосредственно к " -"Интернету, (т.е. подключенный к маршрутизатору) этот URL-адрес используется " -"для определения настоящего IP адреса. URL-адрес должен просто вернуть IP " -"(пример: https://ddns.freedombox.org/ip/)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Имя пользователя, которое использовалось при создании учетной записи." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "Другой URL-адрес обновления" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Тип службы" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "Адрес сервера GnuDIP" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Недопустимое имя сервера" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "Обновление URL-адреса" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Принимать все SSL-сертификаты" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Использовать базовую аутентификацию HTTP" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Доменное имя" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Недопустимое имя домена" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Имя пользователя" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Показать пароль" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "URL-адрес для поиска публичного IP" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "Использовать IPv6 вместо IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "Это поле обязательно." #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2034,45 +1999,43 @@ msgstr "Домен" #: modules/dynamicdns/manifest.py:17 msgid "Free" -msgstr "" +msgstr "Бесплатно" #: modules/dynamicdns/manifest.py:17 -#, fuzzy -#| msgid "Server public key:" msgid "Needs public IP" -msgstr "Открытый ключ сервера:" +msgstr "Нужен публичный IP" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Статус" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Последнее обновление" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "IP-адреса" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "Успешно" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "Неудачно" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "Статус недоступен." @@ -2242,7 +2205,7 @@ msgstr "Видео чат" msgid "XMPP" msgstr "XMPP" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2254,7 +2217,7 @@ msgstr "" "пользователя@%(domain_name)s
. Вы можете настроить свой домен на странице " "системы Name Services." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2322,14 +2285,18 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "Переадресация" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "Управление переадресацией" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "Основной домен" @@ -2409,47 +2376,103 @@ msgstr "Создать новый псевдоним электронной по msgid "Add" msgstr "Добавить" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "Управление спамом" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "Записи DNS" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" "Данные записи DNS должны быть добавлены для вашего домена для правильной " "работы почтового сервера." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "TTL" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "Класс" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "Приоритет" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "Вес" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "Порт" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "Хост/Цель/Значение" +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "Имя или IP адрес сервера" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Имя хоста" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "Управление спамом" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Домены" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, fuzzy, python-format +#| msgid "Resolve domain name: {domain}" +msgid "View domain: %(domain)s" +msgstr "Разрешить доменное имя: {domain}" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2714,15 +2737,13 @@ msgstr "Порт {name} ({details}) доступен для внешних се msgid "Port {name} ({details}) unavailable for external networks" msgstr "Порт {name} ({details}) недоступен для внешних сетей" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Порты" #: modules/firewall/manifest.py:10 -#, fuzzy -#| msgid "Blocked" msgid "Blocking" -msgstr "Заблокировано" +msgstr "Блокировка" #: modules/firewall/manifest.py:10 modules/networks/forms.py:319 #: modules/upgrades/manifest.py:10 @@ -3078,17 +3099,15 @@ msgstr "Отправить отзыв" msgid "Contribute" msgstr "Помощь проекту" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "О проекте" #: modules/help/templates/help_about.html:25 templates/messages.html:23 -#, fuzzy -#| msgid "Success" msgid "Success:" -msgstr "Успешно" +msgstr "Успех:" #: modules/help/templates/help_about.html:29 #: modules/upgrades/templates/upgrades_configure.html:26 @@ -3250,7 +3269,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Подробнее..." @@ -3421,16 +3440,12 @@ msgstr "" "прикрепите этот журнал состояния к отчету об ошибке." #: modules/help/templates/statuslog.html:27 -#, fuzzy -#| msgid "" -#| "Please remove any passwords or other personal information from the log " -#| "before submitting the bug report." msgid "" "Please remove any personal information from the log before submitting the " "bug report." msgstr "" -"Удалите любые пароли или другую личную информацию из журнала перед отправкой " -"отчета об ошибке." +"Перед отправкой сообщения об ошибке удалите из журнала любую личную " +"информацию." #: modules/help/views.py:29 msgid "Documentation and FAQ" @@ -3631,7 +3646,7 @@ msgid "Web conference" msgstr "Веб-конференция" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "Информация о лицензии JavaScript" @@ -3739,10 +3754,8 @@ msgid "Censorship resistance" msgstr "Противодействие цензуре" #: modules/kiwix/manifest.py:26 -#, fuzzy -#| msgid "Offline Wikipedia" msgid "Wikipedia" -msgstr "Wikipedia" +msgstr "Википедия" #: modules/kiwix/templates/kiwix-add-package.html:29 #, python-format @@ -3843,10 +3856,8 @@ msgid "HTTPS" msgstr "HTTPS" #: modules/letsencrypt/manifest.py:11 -#, fuzzy -#| msgid "Website Security" msgid "Web security" -msgstr "Безопасность Веб-сайта" +msgstr "Веб-безопасность" #: modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" @@ -4052,24 +4063,13 @@ msgstr "" "domainname." #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:31 -#, fuzzy -#| msgid "" -#| "\n" -#| " Warning! Changing the domain name after this step " -#| "will\n" -#| " require uninstalling and reinstalling the app which will wipe app's " -#| "data.\n" -#| " " msgid "" "Warning! Changing the domain name after this step will " "require uninstalling and reinstalling the app which will wipe app's data." msgstr "" -"\n" -" Предупреждение! Изменение доменного имени после этого " -"шага\n" -" потребуется удалить и переустановить приложение, что приведет к " -"стиранию данных приложения.\n" -" " +"Предупреждение! Изменение доменного имени после этого шага " +"потребует удаления и переустановки приложения, что приведет к стиранию " +"данных приложения." #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:42 #, python-format @@ -4080,7 +4080,7 @@ msgstr "" "Нет доступных доменов. Настройтепо крайней " "мере один домен, чтобы иметь возможность использовать Matrix." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4092,7 +4092,7 @@ msgstr "" "em>. Изменение имени домена после первоначальной настройки в настоящее время " "не поддерживается." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4100,7 +4100,7 @@ msgstr "" "Новые пользователи могут быть зарегистрированы с любого клиента, если " "включена публичная регистрация." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" @@ -4108,31 +4108,31 @@ msgstr "" "Новые пользователи должны использовать один из следующих токенов для " "проверки во время регистрации учетной записи:" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "Регистрационный токен" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "Разрешенные виды использования" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "Ожидающие регистрации" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "Завершенные регистрации" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "Время истечения" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "Неограниченное" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4617,7 +4617,7 @@ msgstr "Сброс пароля для пользователя: {username}" msgid "An error occurred during password reset: {error}." msgstr "Во время сброса пароля произошла ошибка: {error}." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4625,7 +4625,7 @@ msgstr "" "Mumble это шифрованый чат с высоким качеством голоса, низкой задержкой и " "открытым исходным кодом." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4635,10 +4635,16 @@ msgstr "" "href=\"http://mumble.info\">Клиенты для подключения к Mumble с " "настольных и мобильных устройств так же доступны." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Mumble server is running" +msgid "Mumble server is configured" +msgstr "Mumble сервер запущен" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "Установить пароль суперпользователя" @@ -4783,15 +4789,9 @@ msgstr "" "должны быть 63 символов или меньше. Общая длина имени домена должно быть 253 " "символов или меньше." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Домены" - #: modules/names/manifest.py:13 -#, fuzzy -#| msgid "Evolution" msgid "DNS Resolution" -msgstr "Evolution" +msgstr "Разрешение DNS" #: modules/names/resolved.py:91 modules/names/resolved.py:101 #: modules/networks/forms.py:28 @@ -5363,7 +5363,7 @@ msgstr "Локальная сеть" #: modules/networks/manifest.py:8 msgid "Topology" -msgstr "" +msgstr "Топология" #: modules/networks/templates/connection_show.html:27 #, python-format @@ -5385,7 +5385,7 @@ msgstr "Редактирование подключения" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Редактировать" @@ -5438,7 +5438,7 @@ msgstr "Интерфейс" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Описание" @@ -5516,8 +5516,8 @@ msgstr "Это подключение не активно." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "Конфиденциальность" @@ -5532,7 +5532,7 @@ msgstr "Зона Брандмауэра" #: modules/networks/templates/connection_show.html:338 #: templates/internal-zone.html:13 templates/messages.html:20 msgid "Info:" -msgstr "" +msgstr "Информация:" #: modules/networks/templates/connection_show.html:292 msgid "" @@ -5608,20 +5608,18 @@ msgstr "Внутренний" msgid "Computer" msgstr "Компьютер" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Редактирование подключения" #: modules/networks/templates/connections_fields.html:13 #: templates/messages.html:14 -#, fuzzy -#| msgid "Error" msgid "Error:" -msgstr "Ошибка" +msgstr "Ошибка:" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Закрыть" @@ -5722,7 +5720,7 @@ msgstr "Обновление…" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Отправить" @@ -6162,11 +6160,7 @@ msgstr "" "качества, конфиденциальности и юридические проверки осуществляются проектом, " "а не Debian/{box_name}. Обновления выполняются по независимому циклу." -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "Это приложение является экспериментальным." - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 #, fuzzy #| msgid "Next" @@ -6373,7 +6367,7 @@ msgstr "" msgid "PageKite" msgstr "PаgeKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "PageKite Домен" @@ -6455,13 +6449,11 @@ msgstr "Эта служба уже существует" #: modules/pagekite/manifest.py:16 msgid "Reachability" -msgstr "" +msgstr "Достигаемость" #: modules/pagekite/manifest.py:18 -#, fuzzy -#| msgid "Tunnelblick" msgid "Tunneling" -msgstr "Tunnelblick" +msgstr "Туннели" #: modules/pagekite/templates/pagekite_configure.html:13 msgid "Custom Services" @@ -6487,19 +6479,14 @@ msgid "Add custom PageKite service" msgstr "Добавить собственный сервис PageKite" #: modules/pagekite/templates/pagekite_custom_services.html:19 -#, fuzzy -#| msgid "" -#| "Warning:
Your PageKite frontend server may not support all the " -#| "protocol/port combinations that you are able to define here. For example, " -#| "HTTPS on ports other than 443 is known to cause problems." msgid "" "Your PageKite frontend server may not support all the protocol/port " "combinations that you are able to define here. For example, HTTPS on ports " "other than 443 is known to cause problems." msgstr "" -"Предупреждение:
Ваш PageKite frontend сервер может поддерживать не " -"все комбинации протокол/порт, которые вы можете здесь задать. Например, " -"HTTPS на портах, отличных от 443, может вызывать проблемы." +"Ваш внешний сервер PageKite может поддерживать не все комбинации протоколов/" +"портов, которые вы можете задать здесь. Например, известно, что HTTPS на " +"портах, отличных от 443, может вызывать проблемы." #: modules/pagekite/utils.py:45 msgid "Web Server (HTTP)" @@ -6551,14 +6538,12 @@ msgstr "" "просмотрены с помощью приложения Cockpit." #: modules/performance/manifest.py:18 -#, fuzzy -#| msgid "System Monitoring" msgid "Monitoring" -msgstr "Системный мониторинг" +msgstr "Контроль" #: modules/performance/manifest.py:18 msgid "Resource utilization" -msgstr "" +msgstr "Использование ресурсов" #: modules/power/__init__.py:14 msgid "Restart or shut down the system." @@ -6570,16 +6555,14 @@ msgstr "Питание" #: modules/power/manifest.py:10 msgid "Reboot" -msgstr "" +msgstr "Перезагрузка" #: modules/power/manifest.py:10 -#, fuzzy -#| msgid "Shut down" msgid "Shutdown" -msgstr "Завершить работу" +msgstr "Выключить" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Перезапустить" @@ -6621,25 +6604,35 @@ msgstr "" msgid "Shut Down Now" msgstr "Завершить работу сейчас" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "Управление общесистемными настройками приватности." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" "Пожалуйста, обновляйте настройки приватности чтобы соответствовать вашим " "предпочтениям." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "Проверьте настройки приватности" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "Периодически отсылать список используемых приложений (предлагаемых)" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6656,11 +6649,11 @@ msgstr "" "target=\"_blank\">popcon.debian.org. Отправка происходит через сеть Tor " "для дополнительной анонимности, если приложение Tor включено." -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "Разрешите использовать резервные DNS серверы" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6672,15 +6665,25 @@ msgstr "" "к Интернету. В большинстве случаев может быть отключено, если подключение к " "сети стабильно и надежно." +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "URL-адрес для поиска публичного IP" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" -msgstr "" +msgstr "Отчетность об использовании" #: modules/privacy/manifest.py:10 #, fuzzy -#| msgid "Fallback DNS Servers" +#| msgid "Enable repro service" +msgid "External services" +msgstr "Включить службу repro" + +#: modules/privacy/manifest.py:10 msgid "Fallback DNS" -msgstr "Резервные серверы DNS" +msgstr "Падение DNS" #: modules/privoxy/__init__.py:25 msgid "" @@ -7261,16 +7264,12 @@ msgstr "" "сервера и других включенных защищенных паролем интернет-служб." #: modules/security/manifest.py:10 -#, fuzzy -#| msgid "Automatic" msgid "Automatic bans" -msgstr "Автоматически" +msgstr "Автоматические запреты" #: modules/security/manifest.py:10 -#, fuzzy -#| msgid "Ports" msgid "Reports" -msgstr "Порты" +msgstr "Отчёты" #: modules/security/templates/security.html:12 #: modules/security/templates/security.html:14 @@ -7756,55 +7755,56 @@ msgstr "" #: modules/snapshot/manifest.py:14 msgid "Periodic" -msgstr "" +msgstr "Периодические" #: modules/snapshot/manifest.py:14 msgid "Known good state" -msgstr "" +msgstr "Заведомо исправное состояние" #: modules/snapshot/manifest.py:14 +#, fuzzy msgid "Btrfs" -msgstr "" +msgstr "Btrfs" #: modules/snapshot/templates/snapshot_delete_selected.html:12 msgid "Delete the following snapshots permanently?" msgstr "Окончательно удалить этот снапшот?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Номер" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Дата" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Удалить снапшот" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Создать снимок" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "Откат" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "будет использоваться при следующей загрузке" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "в использовании" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Откат к снимку #%(number)s" @@ -7898,10 +7898,8 @@ msgstr "" "другие службы с использованием таких соединений." #: modules/ssh/__init__.py:42 -#, fuzzy -#| msgid "Secure Shell (SSH) Server" msgid "Secure Shell Server" -msgstr "Secure Shell (SSH) сервер" +msgstr "Сервер защищенной оболочки" #: modules/ssh/__init__.py:75 msgid "Remotely login using Secure Shell (SSH)" @@ -7939,19 +7937,15 @@ msgstr "" #, fuzzy #| msgid "SSH" msgid "SSH" -msgstr "RSS" +msgstr "SSH" #: modules/ssh/manifest.py:22 -#, fuzzy -#| msgid "Remove Location" msgid "Remote terminal" -msgstr "Удаление местоположения" +msgstr "Удаленный терминал" #: modules/ssh/manifest.py:22 -#, fuzzy -#| msgid "Fingerprint" msgid "Fingerprints" -msgstr "Отпечаток" +msgstr "Отпечатки" #: modules/ssh/templates/ssh.html:11 msgid "Server Fingerprints" @@ -8168,26 +8162,20 @@ msgid "Other directory (specify below)" msgstr "Другой каталог (укажите ниже)" #: modules/storage/manifest.py:9 -#, fuzzy -#| msgid "Disk" msgid "Disks" -msgstr "Диск" +msgstr "Диски" #: modules/storage/manifest.py:9 msgid "Usage" -msgstr "" +msgstr "Использование" #: modules/storage/manifest.py:9 -#, fuzzy -#| msgid "Automatic" msgid "Auto-mount" -msgstr "Автоматически" +msgstr "Автоматическое монтирование" #: modules/storage/manifest.py:9 -#, fuzzy -#| msgid "Expand Root Partition" msgid "Expand partition" -msgstr "Расширить корневой раздел" +msgstr "Расширение раздела" #: modules/storage/templates/storage.html:17 msgid "The following storage devices are in use:" @@ -8427,27 +8415,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Сервис Tor Onion" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Ретранслятор Tor типа мост" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Доступен порт трансляции Tor" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Obfs3 транспорт зарегестрирован" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Obfs4 транспорт зарегистрирован" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "Луковый сервис версии 3" @@ -8555,7 +8543,7 @@ msgstr "Ретранслятор" msgid "Anonymity network" msgstr "Сеть анонимности" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Onion сервис" @@ -8825,13 +8813,11 @@ msgstr "Активировать частые обновления функци #: modules/upgrades/manifest.py:10 msgid "Reboots" -msgstr "" +msgstr "Перезагрузка" #: modules/upgrades/manifest.py:10 -#, fuzzy -#| msgid "Backups" msgid "New features" -msgstr "Резервные копии" +msgstr "Новые функции" #: modules/upgrades/templates/backports-firstboot.html:26 msgid "" @@ -8935,13 +8921,12 @@ msgid "Test Distribution Upgrade" msgstr "Модернизация тестового распределения" #: modules/upgrades/templates/upgrades_configure.html:146 -#, fuzzy msgid "" "This will attempt to upgrade the system from stable to testing. It " "is meant only for development use." msgstr "" -"This will attempt to upgrade the system from stable to testing. It " -"is meant only for development use." +"Это позволит обновить систему со стабильной до тестовой. Это " +"предназначено только для использования в разработке." #: modules/upgrades/templates/upgrades_configure.html:156 msgid "Test distribution upgrade now" @@ -9142,16 +9127,12 @@ msgid "User account created, you are now logged in" msgstr "Учетная запись пользователя создана, теперь вы вошли" #: modules/users/manifest.py:8 -#, fuzzy -#| msgid "Manage Snapshots" msgid "Manage accounts" -msgstr "Управление снапшотами" +msgstr "Управление аккаунтами" #: modules/users/manifest.py:8 -#, fuzzy -#| msgid "Permissions" msgid "App permissions" -msgstr "Разрешения" +msgstr "Разрешения приложения" #: modules/users/templates/users_change_password.html:11 #, python-format @@ -9224,12 +9205,12 @@ msgstr "Пользователи" msgid "Edit user %(username)s" msgstr "Редактирование пользователя %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Редактировать пользователя %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9238,17 +9219,17 @@ msgstr "" "Для смены пароля используйте форму изменить пароль ." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Сохранить изменения" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "Удалить пользователя %(username)s и все его файлы?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." @@ -9257,11 +9238,11 @@ msgstr "" "домашнего каталога. Если вы хотите сохранить эти файлы, отключите учетную " "запись пользователя." -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "Удаление пользователя и файлов" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Отмена" @@ -9958,15 +9939,13 @@ msgstr "Установка" msgid "Service %(service_name)s is not running." msgstr "Служба %(service_name)s не запущена." -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "Поиск по тегам" -#: templates/apps.html:42 -#, fuzzy -#| msgid "Search with tags" +#: templates/apps.html:46 msgid "Clear all tags" -msgstr "Поиск по тегам" +msgstr "Очистить все теги" #: templates/base.html:31 msgid "" @@ -9978,35 +9957,35 @@ msgstr "" "обеспечение, позволяющее легко устанавливать серверные приложения и " "управлять ими." -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Домой" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Приложения" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " Система" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Изменить пароль" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Завершить работу" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Выход" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Выберите язык" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Войти" @@ -10227,23 +10206,44 @@ msgstr "" "Все данные и настройки приложения будут безвозвратно утеряны. Приложение " "можно установить заново." -#: views.py:85 +#: views.py:84 msgid "Here" -msgstr "" +msgstr "Вот здесь" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Настройки без изменений" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "перед удалением {app_id}" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Гуджарати" +#~ msgid "In 24 hour format." +#~ msgstr "В 24-часовом формате." + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Необязательное значение. Если ваш {box_name} не подключен непосредственно " +#~ "к Интернету, (т.е. подключенный к маршрутизатору) этот URL-адрес " +#~ "используется для определения настоящего IP адреса. URL-адрес должен " +#~ "просто вернуть IP (пример: https://ddns.freedombox.org/ip/)." + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Управление переадресацией" + +#~ msgid "This app is experimental." +#~ msgstr "Это приложение является экспериментальным." + #~ msgid "File & Snippet Sharing" #~ msgstr "Обмен файлами и фрагментами" @@ -12420,9 +12420,6 @@ msgstr "Гуджарати" #~ msgid "Minetest server is not running" #~ msgstr "Minetest сервер не запущен" -#~ msgid "Mumble server is running" -#~ msgstr "Mumble сервер запущен" - #~ msgid "Mumble server is not running" #~ msgstr "Mumble сервер не запущен" @@ -12520,9 +12517,6 @@ msgstr "Гуджарати" #~ msgid "repro SIP Server" #~ msgstr "repro SIP Сервер" -#~ msgid "Enable repro service" -#~ msgstr "Включить службу repro" - #~ msgid "Enable Shaarli" #~ msgstr "Включить Shaarli" diff --git a/plinth/locale/si/LC_MESSAGES/django.po b/plinth/locale/si/LC_MESSAGES/django.po index 35e2b256a..bdc28a0f2 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2021-04-27 13:32+0000\n" "Last-Translator: HelaBasa \n" "Language-Team: Sinhala user@host:~/path/to/repo/" msgstr "" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "" @@ -504,16 +506,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "" @@ -557,10 +563,9 @@ msgstr "" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -699,107 +704,107 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "" @@ -908,7 +913,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1026,8 +1031,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1057,7 +1064,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1640,7 +1647,7 @@ msgid "Test" msgstr "" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "" @@ -1653,7 +1660,7 @@ msgstr "" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1661,7 +1668,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1672,7 +1679,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1680,11 +1687,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "" @@ -1728,84 +1741,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1819,37 +1819,37 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -1997,7 +1997,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2005,7 +2005,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2053,12 +2053,16 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 -msgid "My Email Aliases" +#: modules/email/__init__.py:80 +msgid "More emails" msgstr "" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 +msgid "My Email Aliases" msgstr "" #: modules/email/forms.py:25 @@ -2137,45 +2141,90 @@ msgstr "" msgid "Add" msgstr "" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" msgstr "" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" - -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +msgid "Host" +msgstr "" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2418,7 +2467,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2745,9 +2794,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "පිළිබඳව" @@ -2880,7 +2929,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3202,7 +3251,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3566,7 +3615,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3574,43 +3623,43 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4019,23 +4068,27 @@ msgstr "" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4160,10 +4213,6 @@ msgid "" "or less." msgstr "" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4660,7 +4709,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -4713,7 +4762,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -4791,8 +4840,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -4876,7 +4925,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -4887,7 +4936,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -4979,7 +5028,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "" @@ -5373,11 +5422,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5543,7 +5588,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5722,8 +5767,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -5759,23 +5804,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -5786,11 +5841,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -5798,10 +5853,18 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +msgid "External services" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -6709,40 +6772,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7273,27 +7336,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7383,7 +7446,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -7944,39 +8007,39 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -8599,11 +8662,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8613,35 +8676,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -8841,19 +8904,19 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" diff --git a/plinth/locale/sl/LC_MESSAGES/django.po b/plinth/locale/sl/LC_MESSAGES/django.po index ae88ded3e..eb7953e0b 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Slovenian user@host:~/path/to/repo/" @@ -447,11 +449,11 @@ msgstr "" "Pot do novega ali obstoječega skladišča. Npr. uporabnik@gostitelj:~/pot/" "do/skladišča/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "Geslo strežnika SSH" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -459,20 +461,20 @@ msgstr "" "Geslo strežnika SSH.
Preverjanje pristnosti na osnovi ključev SSH še " "ni omogočeno." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 #, fuzzy #| msgid "Create remote backup repository" msgid "Remote backup repository already exists." msgstr "Ustvari oddaljeno skladišče za rezervne kopije" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Obnovitev" @@ -552,16 +554,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "Shramba {box_name}" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 #, fuzzy #| msgid "Create remote backup repository" msgid "Create a new backup" @@ -619,10 +625,9 @@ msgstr "Obstoječe rezervne kopije" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -798,123 +803,123 @@ msgstr "" msgid "Verify Host" msgstr "" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 #, fuzzy #| msgid "Create" msgid "Schedule Backups" msgstr "Ustvari" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Arhiv je ustvarjen." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Izbriši arhiv" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Arhiv je izbrisan." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Upload file" msgid "Upload successful." msgstr "Nalaganje datoteke" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Ne najdem datoteke z rezervno kopijo." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Obnavljanje iz naložene datoteke" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Datoteke iz rezervne kopije so obnovljene." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 #, fuzzy #| msgid "Create remote backup repository" msgid "Create backup repository" msgstr "Ustvari oddaljeno skladišče za rezervne kopije" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new repository." msgid "Added new repository." msgstr "Dodano je novo skladišče." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Ustvari oddaljeno skladišče za rezervne kopije" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 #, fuzzy #| msgid "Added new repository." msgid "Added new remote SSH repository." msgstr "Dodano je novo skladišče." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 #, fuzzy #| msgid "Error installing application: {error}" msgid "Error establishing connection to server: {}" msgstr "Napaka ob nameščanju aplikacije: {error}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 #, fuzzy #| msgid "Repository not found" msgid "Repository removed." msgstr "Ne najdem skladišča" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Odstrani skladišče" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 #, fuzzy #| msgid "Repository removed. The remote backup itself was not deleted." msgid "Repository removed. Backups were not deleted." msgstr "Skladišče je odstranjeno. Oddaljena rezervna kopija ni izbrisana." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Odklapljanje ni uspelo!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Priklapljanje ni uspelo" @@ -1029,7 +1034,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1160,8 +1165,10 @@ msgstr "" msgid "Serving Domains" msgstr "" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1193,7 +1200,7 @@ msgstr "" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1814,7 +1821,7 @@ msgid "Test" msgstr "" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "" @@ -1827,7 +1834,7 @@ msgstr "" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1835,7 +1842,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1846,7 +1853,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1854,11 +1861,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 #, fuzzy #| msgid "Domain Name" msgid "Dynamic Domain Name" @@ -1904,84 +1917,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Ime domene" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Neveljavno ime domene" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1995,37 +1995,37 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -2179,7 +2179,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2187,7 +2187,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2235,18 +2235,20 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Create new repository" msgid "My Email Aliases" msgstr "Ustvari novo skladišče" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Create new repository" -msgid "Manage Aliases for Mailbox" -msgstr "Ustvari novo skladišče" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "" @@ -2331,45 +2333,94 @@ msgstr "Ustvari oddaljeno skladišče za rezervne kopije" msgid "Add" msgstr "" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" +msgstr "" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Ime gostitelja" + #: modules/email/templates/email.html:10 #, fuzzy #| msgid "Create new repository" msgid "Manage Spam" msgstr "Ustvari novo skladišče" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +#, fuzzy +#| msgid "Domain Name" +msgid "Domains" +msgstr "Ime domene" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email.html:23 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." msgstr "" -#: modules/email/templates/email.html:36 -msgid "TTL" -msgstr "" - -#: modules/email/templates/email.html:37 -msgid "Class" -msgstr "" - -#: modules/email/templates/email.html:39 -msgid "Priority" -msgstr "" - -#: modules/email/templates/email.html:40 -msgid "Weight" -msgstr "" - -#: modules/email/templates/email.html:41 -#: modules/minetest/templates/minetest.html:18 -msgid "Port" -msgstr "" - -#: modules/email/templates/email.html:42 -msgid "Host/Target/Value" +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" msgstr "" #: modules/featherwiki/__init__.py:25 @@ -2632,7 +2683,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2984,9 +3035,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "" @@ -3119,7 +3170,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3442,7 +3493,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3820,7 +3871,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3828,45 +3879,45 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Server Administration" msgid "Pending Registrations" msgstr "Skrbništvo strežnika" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4301,23 +4352,27 @@ msgstr "" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 #, fuzzy #| msgid "SSH server password" @@ -4454,12 +4509,6 @@ msgstr "" "presegati 63 znakov. Skupna dolžina imena domene ne sme presegati 253 " "znakov." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -#, fuzzy -#| msgid "Domain Name" -msgid "Domains" -msgstr "Ime domene" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4968,7 +5017,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -5021,7 +5070,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -5099,8 +5148,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -5184,7 +5233,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -5195,7 +5244,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5289,7 +5338,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Oddaj" @@ -5695,11 +5744,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5873,7 +5918,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -6052,8 +6097,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -6089,23 +6134,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6116,11 +6171,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6128,10 +6183,20 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Service Discovery" +msgid "External services" +msgstr "Odkrivanje storitev" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -7068,40 +7133,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7644,27 +7709,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7756,7 +7821,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -8356,41 +8421,41 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete Archive" msgid "Delete user and files" msgstr "Izbriši arhiv" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Prekliči" @@ -9063,11 +9128,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -9077,35 +9142,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -9312,23 +9377,28 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" +#, fuzzy +#~| msgid "Create new repository" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Ustvari novo skladišče" + #~ msgid "Domain Name Server" #~ msgstr "Strežnik z imenom domene" diff --git a/plinth/locale/sq/LC_MESSAGES/django.po b/plinth/locale/sq/LC_MESSAGES/django.po index b338f79d2..ce55aa909 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2025-01-01 08:00+0000\n" "Last-Translator: Besnik Bleta \n" "Language-Team: Albanian user@host:~/path/to/repo/" @@ -448,11 +450,11 @@ msgstr "" "Shteg për te një depo e re ose ekzistuese. Shembull: user@host:~/shteg/" "për/te/depoja/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "Fjalëkalim shërbyesi SSH" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -460,18 +462,18 @@ msgstr "" "Fjalëkalim i Shërbyesit SSH.
Mirëfilltësimi SSH me bazë kyçe s’është ende " "i mundur." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Depoja e largët e kopjeruajtjeve ekziston tashmë." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Përzgjidhni kyç SSH publik të verifikuar" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Riktheje" @@ -545,16 +547,20 @@ msgstr "Te depoja s’u gjet arkiv me emrin e dhënë." msgid "Backup system is busy with another operation." msgstr "Sistemi i kojeruajtjeve është i zënë me një tjetër veprim." +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Depoja ekzistuese s’është e fshehtëzuar." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "Depozitë {box_name}" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Krijoni një kopjeruajtje të re" @@ -598,10 +604,9 @@ msgstr "Kopjeruajtje Ekzistuese" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -763,107 +768,107 @@ msgstr "" msgid "Verify Host" msgstr "Verifikoni Strehë" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Orari i kopjeruajtjeve u përditësua." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Planifikoni Kopjeruajtje" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Arkivi u krijua." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Fshini Arkiv" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Arkivi u fshi." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Ngarkoni dhe riktheni një kopjeruajtje" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "Ngarkim i suksesshëm." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "S’u gjet kartelë kopjeruajtje." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Riktheni prej kartele të ngarkuar" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "U rikthyen kartela prej kopjeruajtjeje." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "S’ka disqe shtesë ku të shtohet një depo." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Krijoni depo kopjeruajtesh" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "U shtua depo e re." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Krijoni depo të largët kopjeruajtjesh" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Shtoni depo SSH të re të largët." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Verifikoni kyç strehe SSH" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "Strehë SSH e verifikuar tashmë." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "Streha SSH u verifikua." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "S’u verifikua dot kyç publik strehe SSH." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Mirëfilltësimi te shërbyesi i largët dështoi." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Gabim gjatë vendosjes së lidhjes me shërbyesin: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Depoja u hoq." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Hiqni Depo" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Depoja u hoq. Kopjeruajtjet s’u fshinë." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Çmontimi dështoi!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Montimi dështoi" @@ -985,7 +990,7 @@ msgstr "Shtoni fjalëkalim" msgid "No passwords currently configured." msgstr "S’ka fjalëkalime aktualisht të formësuar." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1111,8 +1116,10 @@ msgstr "Zgjidhës" msgid "Serving Domains" msgstr "Shërbim Përkatësish" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1142,7 +1149,7 @@ msgstr "Rifresko adresë IP dhe përkatësi" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1785,7 +1792,7 @@ msgid "Test" msgstr "Provë" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Përfundim" @@ -1798,7 +1805,7 @@ msgstr "Test Diagnostikimesh" msgid "App {app_id} is not installed, cannot repair" msgstr "Aplikacioni {app_id} s’është i instaluar, s’mund të riparohet" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1810,7 +1817,7 @@ msgstr "" "në Internet. Kjo do t’u pengojë të tjerëve të gjejnë shërbime të cilat " "ofrohen nga ky {box_name}." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1828,7 +1835,7 @@ msgstr "" "emrin tuaj DNS me IP-në e re, dhe nëse dikush në Internet kërkon për emrin " "tuaj DNS, do të marrë një përgjigje me adresën tuaj aktuale IP." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1836,16 +1843,22 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" "Nëse po kërkoni për një llogari falas DNS-je dinamike, mund të gjeni një " -"shërbim GnuDIP të lirë, te ddns.freedombox.org, ose mund të gjeni shërbime të lira me " -"bazë përditësim URL-je, te freedns.afraid.org." +"shërbim GnuDIP të lirë, te ddns.freedombox.org, ose mund të gjeni shërbime të " +"lira me bazë përditësim URL-je, te freedns.afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Klient DNS Dinamik" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Emër Dinamik Përkatësie" @@ -1904,88 +1917,71 @@ msgstr "" "Nëse doni të mbahet fjalëkalimi i tanishëm, lëreni të zbrazët këtë fushë." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Vlerë Opsionale. Nëse {box_name} juaj s’lidhet drejtpërsëdrejti në Internet " -"(p.sh., i lidhur me një rrugëzues NAT), kjo URL përdoret për të përcaktuar " -"adresën e njëmendtë IP. URL-ja thjesht duhet të japë IP-në prej nga vjen " -"klienti (shembull: https://ddns.freedombox.org/ip/)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Emri i përdoruesit që u përdor kur u krijua llogaria." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "Tjetër URL përditësimesh" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Lloj Shërbimi" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "Adresë Shërbyesi GnuDIP" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Emër i pavlefshëm shërbyesi" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "URL Përditësimi" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Prano krejt dëshmitë SSL" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Përdor mirëfilltësim elementar HTTP" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Emër Përkatësie" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Emër i pavlefshëm përkatësie" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Emër përdoruesi" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Shfaq fjalëkalim" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "URL ku të kërkohet IP publike" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "Përdor IPv6, në vend se IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "Kjo fushë është e domosdoshme." #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1999,37 +1995,37 @@ msgstr "" msgid "Needs public IP" msgstr "Lyp IP publike" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Gjendje" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Përditësimi i fundit më" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "Adresë IP" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "Sukses" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "Dështoi" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "S’ka gjendje të ditur." @@ -2202,7 +2198,7 @@ msgstr "Fjalosje me video" msgid "XMPP" msgstr "XMPP" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2214,7 +2210,7 @@ msgstr "" "Përkatësinë tuaj mund ta ujdisni te faqja Shërbime " "Emrash e sistemit." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2256,11 +2252,12 @@ msgid "" "address. Necessary aliases such as \"postmaster\" are automatically created " "pointing to the first admin user." msgstr "" -"Çdo përdorues në {box_name} merr një adresë email të ngjashme me përdorues@" -"përkatësiaime.shembull. Do të marrë gjithashtu email nga krejt adresat që " -"duken si përdorues+foo@përkatësiaime.shembull. Më tej, mund të shtojë aliase " -"te adresa e tij email. Aliase të nevojshëm, të tillë si “postmaster”, " -"krijohen automatikisht dhe shpien te i pari përdorues përgjegjës." +"Çdo përdorues në {box_name} merr një adresë email të ngjashme me " +"përdorues@përkatësiaime.shembull. Do të marrë gjithashtu email nga krejt " +"adresat që duken si përdorues+foo@përkatësiaime.shembull. Më tej, mund të " +"shtojë aliase te adresa e tij email. Aliase të nevojshëm, të tillë si " +"“postmaster”, krijohen automatikisht dhe shpien te i pari përdorues " +"përgjegjës." #: modules/email/__init__.py:41 msgid "" @@ -2281,14 +2278,18 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "Aliaset e Mi Email" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "Administroni Aliase për Kuti postare" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "Përkatësi parësore" @@ -2367,47 +2368,103 @@ msgstr "Krijoni një alias të ri email-i" msgid "Add" msgstr "Shtoje" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "Administroni Të Padëshiruarat" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "Zëra DNS" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" "Që shërbyesi i postës të funksionojë si duhet, zërat DNS vijues duhen shtuar " "dorazi te përkatësia juaj parësore." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "TTL" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "Klasë" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "Përparësi" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "Madhësi" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "Portë" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "Strehë/Objektiv/Vlerë" +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "Strehëemër ose adresë IP shërbyesi" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Strehëemër" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "Administroni Të Padëshiruarat" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Përkatësi" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, fuzzy, python-format +#| msgid "Resolve domain name: {domain}" +msgid "View domain: %(domain)s" +msgstr "Ftillo emër përkatësie: {domain}" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2448,9 +2505,10 @@ msgid "" "supported." msgstr "" "Wiki-t, si parazgjedhje, s’janë publike, por mund të shkarkohen, për t’i " -"ndarë me të tjerët apo për botim. Mund të përpunohen nga cilido përdorues në {box_name} që është pjesë e grupit " -"wiki. S’mbulohet përpunim në të njëjtën kohë nga më tepër se një përdorues." +"ndarë me të tjerët apo për botim. Mund të përpunohen nga cilido përdorues në {box_name} që është pjesë e " +"grupit wiki. S’mbulohet përpunim në të njëjtën kohë nga më tepër se një " +"përdorues." #: modules/featherwiki/__init__.py:56 modules/ikiwiki/__init__.py:79 #: modules/tiddlywiki/__init__.py:61 @@ -2670,7 +2728,7 @@ msgstr "Portë {name} ({details}) e përdorshme për rrjete të jashtëm" msgid "Port {name} ({details}) unavailable for external networks" msgstr "Portë {name} ({details}) jo e përdorshme për rrjete të brendshëm" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Porta" @@ -3030,9 +3088,9 @@ msgstr "Parashtroni Përshtypjet" msgid "Contribute" msgstr "Jepni Ndihmesë" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Mbi" @@ -3120,12 +3178,11 @@ msgid "" "\"apt source package_name\" in a terminal (using Cockpit or SSH)." msgstr "" "%(box_name)s është software, i licencuar sipas GNU Affero General Public " -"License. Kodi burim gjendet në internet në depon %(box_name)s. Veç kësaj, kodi burim i cilësdo paketë Debian mund të merret nga sajti " -"i Burimeve Debian, ose duke " -"xhiruar “apt source emër_pakete” në një terminal (duke përdorur " -"Cockpit, ose SSH)." +"License. Kodi burim gjendet në internet në depon %(box_name)s. Veç kësaj, kodi " +"burim i cilësdo paketë Debian mund të merret nga sajti i Burimeve Debian, ose duke xhiruar “apt source " +"emër_pakete” në një terminal (duke përdorur Cockpit, ose SSH)." #: modules/help/templates/help_about.html:97 msgid "Learn" @@ -3205,7 +3262,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Mësoni më tepër…" @@ -3586,7 +3643,7 @@ msgid "Web conference" msgstr "Konferencë Web" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "Hollësi licence JavaScript" @@ -4018,7 +4075,7 @@ msgstr "" "S’ka përkatësi. Formësoni të paktën një " "përkatësi, që të jeni në gjendje të përdorni Matrix Synapse." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4030,7 +4087,7 @@ msgstr "" "em>. Ndryshimi i emrit të përkatësisë, pas ujdisjes fillestare, aktualisht " "s’mbulohet." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4038,7 +4095,7 @@ msgstr "" "Përdorues të rinj mund të regjistrohen prej cilitdo klient, nëse është " "aktivizuar regjistrimi publik." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" @@ -4046,31 +4103,31 @@ msgstr "" "Përdoruesit e rinj mund të përdorin një nga token-ët vijues për verifikim " "gjatë regjistrimit të llogarisë:" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "Token regjistrimi" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "Përdorime të Lejuara" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "Regjistrime Pezull" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "Regjistrime të Plotësuara" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "Kohë Skadimi" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "E pakufizuar" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4264,8 +4321,8 @@ msgstr "" "Minetest është një bankëprovë blloqesh lojërash “botë e pafundme” me shumë " "lojtarë. Ky modul i bën të mundur shërbyesit Minetest të xhirojë mbi këtë " "{box_name}, në portën parazgjedhje (30000). Që të lidheni me shërbyesin, " -"lypset një klient " -"Minetest." +"lypset një klient Minetest." #: modules/minetest/__init__.py:56 modules/minetest/manifest.py:9 msgid "Minetest" @@ -4550,7 +4607,7 @@ msgstr "Ricaktim fjalëkalimi për përdoruesin: {username}" msgid "An error occurred during password reset: {error}." msgstr "Ndodhi një gabim gjatë ricaktimit të fjalëkalimit: {error}." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4558,7 +4615,7 @@ msgstr "" "Mumble është një <em>software</em> me burim të hapur, për " "fjalosje me zë, të fshehtëzuar, <em>low-latency</em>." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4568,10 +4625,16 @@ msgstr "" "64738. Ka klientë klientë të gatshëm për " "t’u lidhur me Mumble-in që nga desktopi apo pajisjet tuaja celulare." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "grub package is configured" +msgid "Mumble server is configured" +msgstr "paketa grub është e formësuar" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "Caktoni Fjalëkalim Superpërdoruesi" @@ -4719,10 +4782,6 @@ msgstr "" "mes. Gjatësia e çdo etikete duhet të jetë 63 shenja ose më pak. Gjatësia " "gjithsej e emrit të përkatësisë duhet të jetë 253 shenja ose më pak." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Përkatësi" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "Ftillim DNS-je" @@ -5253,12 +5312,12 @@ msgid "" "ports 80 and 443 to work. Each of the other applications will suggest which " "port(s) need to be forwarded for that application to work.

" msgstr "" -"Përcill trafik specifik, sipas nevojave të secilit aplikacion

Mundet edhe të zgjidhni të përcillni te {box_name}-i juaj " -"vetëm trafik specifik. Kjo është ideale, nëse në rrjetin tuaj keni shërbyes " -"të tjerë si {box_name}-i, ose nëse rrugëzuesi juaj s’e mbulon veçorinë DMZ. " -"Krejt aplikacionet që furnizojnë një ndërfaqe web duan prej jush të " -"përcillni trafik prej portash 80 dhe 443, që të punojnë. Secili prej " +"Përcill trafik specifik, sipas nevojave të secilit aplikacion

Mundet edhe të zgjidhni të përcillni te {box_name}-i " +"juaj vetëm trafik specifik. Kjo është ideale, nëse në rrjetin tuaj keni " +"shërbyes të tjerë si {box_name}-i, ose nëse rrugëzuesi juaj s’e mbulon " +"veçorinë DMZ. Krejt aplikacionet që furnizojnë një ndërfaqe web duan prej " +"jush të përcillni trafik prej portash 80 dhe 443, që të punojnë. Secili prej " "aplikacioneve të tjera do të sugjerojnë te cila portë(a) duhet bërë " "përcjellja që ai aplikacion të funksionojë.

" @@ -5315,7 +5374,7 @@ msgstr "Përpunoni lidhjen" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Përpunoni" @@ -5368,7 +5427,7 @@ msgstr "Ndërfaqe" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Përshkrim" @@ -5446,8 +5505,8 @@ msgstr "Kjo lidhje s’është aktive." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "Privatësi" @@ -5540,7 +5599,7 @@ msgstr "E brendshme" msgid "Computer" msgstr "Kompjuter" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Përpunoni Lidhje" @@ -5551,7 +5610,7 @@ msgid "Error:" msgstr "Gabim:" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Mbylle" @@ -5651,7 +5710,7 @@ msgstr "Përditësojeni…" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Parashtrojeni" @@ -6090,11 +6149,7 @@ msgstr "" "dhe shqyrtimet ligjore bëhen nga projekti përkatës dhe jo nga Debian/" "{box_name}. Përditësimet kryhen duke ndjekur një cikël të pavarur." -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "Ky aplikacion është eksperimental." - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "Nextcloud" @@ -6300,7 +6355,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "Përkatësi PageKite" @@ -6496,8 +6551,8 @@ msgstr "Rinisu" msgid "Shutdown" msgstr "Fike" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Rinise" @@ -6539,27 +6594,37 @@ msgstr "" msgid "Shut Down Now" msgstr "Fike Tani" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "Administroni rregullime privatësie për krejt sistemin." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" "Ju lutemi, përditësoni rregullime privatësie që të përputhen me parapëlqimet " "tuaja." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "Shqyrtoni rregullim privatësie" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" "Parashtroni në mënyrë periodike një listë aplikacionesh të përdorur (e " "sugjeruar)" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6573,15 +6638,15 @@ msgstr "" "Konkurs Popullariteti programesh. Kur aktivizohet, te Debian do të " "parashtrohet në mënyrë anonime çdo javë një listë e aplikacioneve të " "përdorura në këtë sistem. Statistikat për të dhënat e grumbulluara janë " -"publike, te popcon.debian.org. Parashtrimi bëhet përmes rrjetit Tor, për anonimitet " -"shtesë, nëse është i aktivizuar aplikacioni Tor." +"publike, te popcon." +"debian.org. Parashtrimi bëhet përmes rrjetit Tor, për anonimitet shtesë, " +"nëse është i aktivizuar aplikacioni Tor." -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "Lejo përdorim shërbyesish DNS rrugëdalje" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6593,10 +6658,22 @@ msgstr "" "çaktivizohet në shumicën e rasteve, nëse lidhja në rrjet është qëndrueshme " "dhe e besueshme." +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "URL ku të kërkohet IP publike" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "Raportim përdorimi" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Onion services" +msgid "External services" +msgstr "Shërbime Onion" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "DNS rrugëdalje" @@ -7209,8 +7286,8 @@ msgid "" "community." msgstr "" "Përditësimet e shpeshta të veçorive lejojnë Shërbimin %(box_name)s Service, " -"plus një grup shumë të kufizuar software-i, të marrin përditësime më shpesh (" -"që nga depoja <em>backports</em>). Kjo sjell marrjen e disa " +"plus një grup shumë të kufizuar software-i, të marrin përditësime më shpesh " +"(që nga depoja <em>backports</em>). Kjo sjell marrjen e disa " "veçorive të reja brenda javësh, në vend se çdo 2 vjet pak a shumë. Kini " "parasysh se software-i me përditësime të shpeshta veçorish s’ka asistencë " "nga Ekipi i Sigurisë së Debian-it. Në vend të kësaj, ato mirëmbahen nga " @@ -7572,9 +7649,9 @@ msgid "" "backups\">backups since they can only be stored on the same partition. " msgstr "" "Fotografimet aktualisht funksionojnë vetëm në sisteme btrfs kartelash dhe " -"vetëm në pjesë rrënjë. Fotografimet s’janë zëvendësim për kopjeruajtjet, ngaqë mund të rikthehen vetëm në " -"të njëjtën pjesë. " +"vetëm në pjesë rrënjë. Fotografimet s’janë zëvendësim për kopjeruajtjet, ngaqë mund të rikthehen vetëm në të njëjtën " +"pjesë. " #: modules/snapshot/__init__.py:50 msgid "Storage Snapshots" @@ -7678,40 +7755,40 @@ msgid "Delete the following snapshots permanently?" msgstr "Të fshihen përgjithmonë fotografimet vijuese?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Numër" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Datë" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Fshi Fotografime" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Krijoni Fotografim" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "Prapakthim" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "do të përdoret gjatë nisjes pasuese" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "në përdorim" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Prapaktheje te fotografimi #%(number)s" @@ -8316,27 +8393,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Shërbim Onion Tor" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Rele Ure Tor" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Portë releje Tor e gatshme" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "U regjistruar transport Obfs3" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "U regjistruar transport Obfs3" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "Shërbimi Onion është në versionin 3" @@ -8447,7 +8524,7 @@ msgstr "Rele" msgid "Anonymity network" msgstr "Rrjet anonimiteti" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Shërbim Onion" @@ -9115,12 +9192,12 @@ msgstr "Përdorues" msgid "Edit user %(username)s" msgstr "Përpunoni përdoruesin %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Përpunoni Përdoruesin %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9130,17 +9207,17 @@ msgstr "" "href=\"%(change_password_url)s\">formularin e ndryshimit të fjalëkalimeve." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Ruaji Ndryshimet" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "Të fshihet përdoruesi %(username)s dhe krejt kartelat e përdoruesit?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." @@ -9149,11 +9226,11 @@ msgstr "" "të përdoruesit. Nëse dëshironi t’i mbani këto kartela, më mirë çaktivizoni " "llogarinë e përdoruesit." -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "Fshini përdorues dhe kartela" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Anuloje" @@ -9850,11 +9927,11 @@ msgstr "Instalim" msgid "Service %(service_name)s is not running." msgstr "Shërbimi %(service_name)s s’po xhiron." -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "Kërkoni me etiketa" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "Spastroji krejt etiketat" @@ -9867,35 +9944,35 @@ msgstr "" "pronësi të dhënash. Është software i lirë, që ju lejon të instaloni dhe " "administroni kollaj aplikacione shërbyesi." -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Kreu" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Aplikacione" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " Sistem" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Ndryshoni fjalëkalimin" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Fike" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Dil" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Përzgjidhni gjuhën" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Hyni" @@ -10115,23 +10192,44 @@ msgstr "" "Krejt të dhënat dhe formësimi i aplikacionit do të humbin përgjithnjë. " "Aplikacioni mund të instalohet sërish nga e para." -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "Këtu" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Rregullim i pandryshuar" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "para çinstalimit të {app_id}" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gujaratase" +#~ msgid "In 24 hour format." +#~ msgstr "Në format 24 orësh." + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Vlerë Opsionale. Nëse {box_name} juaj s’lidhet drejtpërsëdrejti në " +#~ "Internet (p.sh., i lidhur me një rrugëzues NAT), kjo URL përdoret për të " +#~ "përcaktuar adresën e njëmendtë IP. URL-ja thjesht duhet të japë IP-në " +#~ "prej nga vjen klienti (shembull: https://ddns.freedombox.org/ip/)." + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Administroni Aliase për Kuti postare" + +#~ msgid "This app is experimental." +#~ msgstr "Ky aplikacion është eksperimental." + #~ msgid "File & Snippet Sharing" #~ msgstr "Dhënie Kartelash & Copëzash" diff --git a/plinth/locale/sr/LC_MESSAGES/django.po b/plinth/locale/sr/LC_MESSAGES/django.po index 5ea40b7f2..38a986a16 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2022-09-14 17:20+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Serbian user@host:~/path/to/repo/" @@ -443,11 +445,11 @@ msgstr "" "Putanja novog ili postojećeg repozitorijuma: Primer: user@host:~/path/to/" "repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "SSH serverska lozinka" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -455,18 +457,18 @@ msgstr "" "SSH serverska lozinka.
Autentifikacija sa SSH ključem još uvek nije " "moguća." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Remote rezervni repozitorijum već postoji." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Izaberi provereni SSH javni ključ" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Vrati" @@ -540,16 +542,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Postojeći repozitorijum nije enkriptovan." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "{box_name} skladište" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Kreiraj novu rezervnu kopiju" @@ -593,10 +599,9 @@ msgstr "Postojeće rezervne kopije" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -760,113 +765,113 @@ msgstr "" msgid "Verify Host" msgstr "Potvrdi host mašinu" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 #, fuzzy #| msgid "Create Backup" msgid "Schedule Backups" msgstr "Kreiraj rezervnu kopiju" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Arhiva kreirana." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Izbriši arhivu" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Arhiva izbrisana." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Otpremi ili vrati rezervnu arhivsku kopiju" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Upload file" msgid "Upload successful." msgstr "Otpremi fajl" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Nije pronađena rezervna datoteka." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Povrati podatke iz otpremljenog fajla" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Restorovane datoteke." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Nema dodatnih hard diskova , da dodate repozitorijum." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Kreirajte rezervni repozitorij" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "Novi remote SSH repozitorij dodat." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Kreirajte remote rezervni repozitorij" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Novi remote SSH repozitorij dodat." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Verifikujte SSH hostkey" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "SSH je već verifikovan." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH host je verifikovan." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "SSH host public key nije verifikovan." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Remote server autentifikacija je neuspešna." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Greška prilikom uspostavljanja veze sa serverom: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Repozitorij obrisan." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Obriši repozitorij" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Repzitorij obrisan. Rezervne kopije nisu izbrisane." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Neuspešno unmountovanje!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Mountovanje neuspešno" @@ -981,7 +986,7 @@ msgstr "" msgid "No passwords currently configured." msgstr "Trenutno nema arhiva." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1113,8 +1118,10 @@ msgstr "" msgid "Serving Domains" msgstr "Domeni" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1144,7 +1151,7 @@ msgstr "Osveži listu IP adresa i domena" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1753,7 +1760,7 @@ msgid "Test" msgstr "" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "" @@ -1766,7 +1773,7 @@ msgstr "" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1774,7 +1781,7 @@ msgid "" "prevent others from finding services which are provided by this {box_name}." msgstr "" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1785,7 +1792,7 @@ msgid "" "IP address." msgstr "" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1793,11 +1800,17 @@ msgid "" "href='http://freedns.afraid.org/' target='_blank'>freedns.afraid.org." msgstr "" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "" @@ -1841,84 +1854,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1932,41 +1932,41 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "IP addresses" msgid "IP Address" msgstr "IP adrese" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 #, fuzzy #| msgid "Access" msgid "Success" msgstr "Pristup" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "" @@ -2120,7 +2120,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2128,7 +2128,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2176,12 +2176,16 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 -msgid "My Email Aliases" +#: modules/email/__init__.py:80 +msgid "More emails" msgstr "" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 +msgid "My Email Aliases" msgstr "" #: modules/email/forms.py:25 @@ -2264,45 +2268,92 @@ msgstr "Kreiraj novu rezervnu kopiju" msgid "Add" msgstr "" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" msgstr "" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" - -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +msgid "Host" +msgstr "" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +#, fuzzy +#| msgid "Domain Names" +msgid "Domains" +msgstr "Domeni" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2561,7 +2612,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2888,9 +2939,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "" @@ -3025,7 +3076,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3349,7 +3400,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3727,7 +3778,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3735,45 +3786,45 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Server Administration" msgid "Pending Registrations" msgstr "Administracija Servera" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4208,23 +4259,27 @@ msgstr "Pogrešno korisničko ime: {username}" msgid "An error occurred during password reset: {error}." msgstr "" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4349,12 +4404,6 @@ msgid "" "or less." msgstr "" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -#, fuzzy -#| msgid "Domain Names" -msgid "Domains" -msgstr "Domeni" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4863,7 +4912,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -4916,7 +4965,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -4994,8 +5043,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -5079,7 +5128,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -5090,7 +5139,7 @@ msgid "Error:" msgstr "" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5182,7 +5231,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Pošalji" @@ -5586,11 +5635,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5762,7 +5807,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5941,8 +5986,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -5978,23 +6023,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6005,11 +6060,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6017,10 +6072,20 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +msgid "URL to look up public IP address" +msgstr "" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Serving" +msgid "External services" +msgstr "Služi" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -6951,40 +7016,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7521,27 +7586,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7633,7 +7698,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -8211,41 +8276,41 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete Archive" msgid "Delete user and files" msgstr "Izbriši arhivu" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -8880,11 +8945,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8894,35 +8959,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -9128,20 +9193,20 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" diff --git a/plinth/locale/sv/LC_MESSAGES/django.po b/plinth/locale/sv/LC_MESSAGES/django.po index fd8cd2b40..d6cc13a3a 100644 --- a/plinth/locale/sv/LC_MESSAGES/django.po +++ b/plinth/locale/sv/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2024-07-30 01:31+0000\n" "Last-Translator: bittin1ddc447d824349b2 \n" "Language-Team: Swedish user@host:~/path/to/repo/" @@ -447,11 +449,11 @@ msgstr "" "Sökväg till ett nytt eller befintligt arkiv. Exempel: user@host:~/path/to/" "repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "SSH server lösenord" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -459,18 +461,18 @@ msgstr "" "Lösenord för SSH-servern.
SSH-nyckelbaserad autentisering är ännu inte " "möjligt." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Fjärrbackup respository finns redan." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Välj verifierad Offentlig SSH-nyckel" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Återställa" @@ -552,16 +554,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Befintlig respository är inte krypterad." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "{box_name} lagring" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Skapa en ny säkerhetskopia" @@ -605,10 +611,9 @@ msgstr "Befintliga säkerhetskopior" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -770,113 +775,113 @@ msgstr "" msgid "Verify Host" msgstr "Verifiera Host" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Backup schema uppdaterat." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Schemalägg säkerhetskopior" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Arkiv skapat." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Ta bort Archiv" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Archiv borttagen." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Ladda upp och återställ en säkerhetskopia" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Logged out successfully." msgid "Upload successful." msgstr "Du har loggat ut framgångsrikt." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Ingen backup-fil hittades." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Återställ från uppladdad fil" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Återställda filer från säkerhetskopian." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "" "Det finns inga ytterligare diskar tillgängliga för att lägga till ett " "repository." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Skapa backup repository" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "Lade till ett nytt remote SSH-repository." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Skapa remote backup repository" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Lade till ett nytt remote SSH-repository." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Verifiera SSH hostkey" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "SSH host redan verifierat." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH host verifierade." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "SSH hosts offentliga nyckel kunde inte verifieras." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Autentisering till remote servern misslyckades." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Fel vid upprättande av anslutning till servern: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Repository raderad." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Radera Repository" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Repository tas bort.Säkerhetskopior raderades inte." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Avmontering misslyckas!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Avmontering misslyckades" @@ -1004,7 +1009,7 @@ msgstr "Lägg till lösenord" msgid "No passwords currently configured." msgstr "Inga lösenord har för närvarande konfigurerats." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1131,8 +1136,10 @@ msgstr "" msgid "Serving Domains" msgstr "Betjäna domäner" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1162,7 +1169,7 @@ msgstr "Uppdatera IP-adress och domäner" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1825,7 +1832,7 @@ msgid "Test" msgstr "Test" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Resultat" @@ -1838,7 +1845,7 @@ msgstr "Diagnostiktest" msgid "App {app_id} is not installed, cannot repair" msgstr "App {app_id} är inte installerad, kan inte repareras" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1849,7 +1856,7 @@ msgstr "" "kan det vara svårt för andra att hitta dig på nätet. Detta förhindrar andra " "att nå de tjänster som tillhandahålls av denna {box_name}." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1866,7 +1873,7 @@ msgstr "" "ihopkopplar servern ditt DNS-namn till din nya IP, och om någon från " "Internet ber om ditt DNS-namn, kommer hen att få din aktuella IP som svar." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1878,11 +1885,17 @@ msgstr "" "du hitta gratis uppdaterings-URL-baserade tjänster på freedns.afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Klient för Dynamisk DNS" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Dynamiskt Domännamn" @@ -1938,88 +1951,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "Lämna fältet tomt om du vill behålla ditt nuvarande lösenord." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Tillval. Om din {box_name} inte är direkt ansluten till Internet (dvs " -"anslutna via en NAT-router) används denna webbadress för att hitta din " -"verkliga IP. Webbadressen ska helt enkelt returnera det IP som klienten " -"kommer från. (example: https://ddns.freedombox.org/ip/)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Användarnamnet som användes när konton skapades." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "Annan uppdaterings-URL" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Servicetype" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "GnuDIP-serveradress" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Du har angett ett ogiltigt servernamn" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "Adress för uppdateringar" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Acceptera alla SSL-certifikat" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Använd grundläggande HTTP-autentisering" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Domännamn" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Ogiltigt domännamn" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Användarnamn" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Visa lösenord" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "URL för att hitta publik IP" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "Använda IPv6 i stället för IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "Detta fält krävs." #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2035,37 +2031,37 @@ msgstr "" msgid "Needs public IP" msgstr "Serverns offentliga nyckel:" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Status" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Senaste uppdatering" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "IP Adress" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "Lyckades" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "Misslyckades" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "Ingen status tillgänglig." @@ -2239,7 +2235,7 @@ msgstr "Videorum" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2254,7 +2250,7 @@ msgstr "" "kommer att se ut som användarnamn@%(domainname)s. Du kan ställa in " "din domän på systemet Konfigurera sidan." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2326,14 +2322,18 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "Mina E-postalias" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "Hantera alias för Brevlåda" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "Primär domän" @@ -2414,47 +2414,102 @@ msgstr "Skapa ett nytt e -postalias" msgid "Add" msgstr "Lägg till" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "Hantera skräppost" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "DNS-poster" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" "Följande DNS-poster måste läggas till manuellt på din primära domän för att " "e-postservern ska fungera korrekt." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "TTL" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "Klass" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "Prioritet" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "Vikt" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "Port" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "Värd/Mål/Värde" +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "Serverns värdnamn eller IP-adress" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Värdnamn" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "Hantera skräppost" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Domäner" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2736,7 +2791,7 @@ msgstr "Port {name} ({details}) tillgängligt för externa nätverk" msgid "Port {name} ({details}) unavailable for external networks" msgstr "Port {name} ({details}) är inte tillgängligt för externa nätverk" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Portar" @@ -3089,9 +3144,9 @@ msgstr "Skicka feedback" msgid "Contribute" msgstr "Bidrar" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Om" @@ -3268,7 +3323,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Läs mer..." @@ -3648,7 +3703,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "JavaScript-licensinformation" @@ -4107,7 +4162,7 @@ msgstr "" "Inga domän (er) är tillgängliga. Konfigurera " "minst en domän för att kunna använda Matrix Synapse." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4118,7 +4173,7 @@ msgstr "" "kommer att se ut som @användarnamn:%(domain_name)s . Ändring av " "domännamn efter den första installationen stöds för närvarande inte." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4126,7 +4181,7 @@ msgstr "" "Nya användare kan registreras från valfri klient om offentlig registrering " "är aktiverad." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" @@ -4134,31 +4189,31 @@ msgstr "" "Nya användare måste använda en av följande tokens för verifiering under " "kontoregistrering:" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "Registreringstoken" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "Tillåten användning" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "Pågående registreringar" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "Genomförda registreringar" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "Utgångstid" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "Obegränsat" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4655,7 +4710,7 @@ msgstr "Ogiltigt användernamn: {username}" msgid "An error occurred during password reset: {error}." msgstr "Ett fel inträffade under konfiguration." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4663,7 +4718,7 @@ msgstr "" "Mumble är ett program för röstchatt med öppen källkod, låg latens, " "kryptering och hög ljudkvalitet." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4673,10 +4728,16 @@ msgstr "" "href=\"http://mumble.info\"> Appar finns för att ansluta till Mumble " "från din dator- och Android-enheter." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Mumble server is running" +msgid "Mumble server is configured" +msgstr "Mumble-servern är aktiverad" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "Ange SuperUser lösenord" @@ -4821,10 +4882,6 @@ msgstr "" "sluta med bindestreck. Varje ord får vara max 63 tecken. Total längd på " "domännamnet får max vara 253 tecken." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Domäner" - #: modules/names/manifest.py:13 #, fuzzy #| msgid "Evolution" @@ -5440,7 +5497,7 @@ msgstr "Redigera anslutning" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Redigera" @@ -5493,7 +5550,7 @@ msgstr "Gränssnitt" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Beskrivning" @@ -5571,8 +5628,8 @@ msgstr "Den här anslutningen är inte aktiv." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "Integritet" @@ -5665,7 +5722,7 @@ msgstr "Interna" msgid "Computer" msgstr "Dator" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Redigera Anslutning" @@ -5678,7 +5735,7 @@ msgid "Error:" msgstr "Fel" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Stäng" @@ -5779,7 +5836,7 @@ msgstr "Uppdatering..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Sänd" @@ -6227,11 +6284,7 @@ msgstr "" "juridiska granskningar görs av uppströmsprojektet och inte av Debian/" "{box_name}. Uppdateringar utförs enligt en oberoende cykel." -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "Denna app är experimentell." - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "Nextcloud" @@ -6439,7 +6492,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "PageKite domän" @@ -6648,8 +6701,8 @@ msgstr "" msgid "Shutdown" msgstr "Stänga ner" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Starta om" @@ -6691,25 +6744,35 @@ msgstr "" msgid "Shut Down Now" msgstr "Stäng av nu" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "Hantera systemomfattande sekretessinställningar." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" "Vänligen uppdatera sekretessinställningar för att matcha dina preferenser." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "Granska sekretessinställningen" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" "Skicka med jämna mellanrum en lista över appar som används (föreslagna)" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6727,11 +6790,11 @@ msgstr "" "target=\"_blank\">popcon.debian.org. Inlämningen sker via Tor-nätverket " "för ytterligare anonymitet om Tor-appen är aktiverad." -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6739,10 +6802,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "URL för att hitta publik IP" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Enable repro service" +msgid "External services" +msgstr "Aktivera tjänsten repro" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS Server" @@ -7850,40 +7925,40 @@ msgid "Delete the following snapshots permanently?" msgstr "Vill du ta bort följande ögonblicksbilder permanent?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Nummer" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Datum" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Ta bort ögonblicksbilder" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Skapa ögonblicksbild" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "Återställning" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "kommer att användas vid nästa uppstart" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "används" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Återställning till ögonblicksbild #%(number)s" @@ -8483,27 +8558,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Tor Onion service" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Tor Bridge Relay" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Tor relä port tillgänglig" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Obfs3 transport registrerad" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Obfs4 transport registrerad" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "Onion tjänst är version 3" @@ -8616,7 +8691,7 @@ msgstr "Relay" msgid "Anonymity network" msgstr "Anonymitetsnätverk" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Onion tjänst" @@ -9283,12 +9358,12 @@ msgstr "Användare" msgid "Edit user %(username)s" msgstr "Redigera användare %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Redigera användare %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9297,30 +9372,30 @@ msgstr "" "Använd formuläret ändra lösenord för " "att ändra lösenordet." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Spara ändringar" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Delete user %(username)s permanently?" msgid "Delete user %(username)s and all the user's files?" msgstr "Ta bort användare %(username)s permanent?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "Ta bort filer" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Avbryt" @@ -10024,13 +10099,13 @@ msgstr "Installation" msgid "Service %(service_name)s is not running." msgstr "Tjänsten %(service_name)s körs inte." -#: templates/apps.html:29 +#: templates/apps.html:33 #, fuzzy #| msgid "Search the web" msgid "Search with tags" msgstr "Sök på webben" -#: templates/apps.html:42 +#: templates/apps.html:46 #, fuzzy #| msgid "Search the web" msgid "Clear all tags" @@ -10045,35 +10120,35 @@ msgstr "" "Det är gratis programvara som låter dig enkelt installera och hantera " "serverappar." -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Hem" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Appar" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " System" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Ändra lösenord" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Stänga ner" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Logga ut" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Välj språk" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Logga in" @@ -10295,23 +10370,44 @@ msgstr "" "All appdata och konfiguration kommer att gå förlorad permanent. Appen kan " "installeras på nytt igen." -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Instänllningar oförändrade" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "innan du avinstallerar {app_id}" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gujarati" +#~ msgid "In 24 hour format." +#~ msgstr "I 24-timmarsformat." + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Tillval. Om din {box_name} inte är direkt ansluten till Internet (dvs " +#~ "anslutna via en NAT-router) används denna webbadress för att hitta din " +#~ "verkliga IP. Webbadressen ska helt enkelt returnera det IP som klienten " +#~ "kommer från. (example: https://ddns.freedombox.org/ip/)." + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Hantera alias för Brevlåda" + +#~ msgid "This app is experimental." +#~ msgstr "Denna app är experimentell." + #~ msgid "File & Snippet Sharing" #~ msgstr "Fil & Snippet Sharing" @@ -12100,9 +12196,6 @@ msgstr "Gujarati" #~ msgid "Minetest server is not running" #~ msgstr "Mumble-servern är inaktiverad" -#~ msgid "Mumble server is running" -#~ msgstr "Mumble-servern är aktiverad" - #~ msgid "Mumble server is not running" #~ msgstr "Mumble-servern är inaktiverad" @@ -12164,9 +12257,5 @@ msgstr "Gujarati" #~ msgid "Enable Mumble daemon" #~ msgstr "Aktivera Mumble-demon" -#~| msgid "Enable service discovery" -#~ msgid "Enable repro service" -#~ msgstr "Aktivera tjänsten repro" - #~ msgid "show password" #~ msgstr "Visa lösenord" diff --git a/plinth/locale/ta/LC_MESSAGES/django.po b/plinth/locale/ta/LC_MESSAGES/django.po index b26367a90..005bef880 100644 --- a/plinth/locale/ta/LC_MESSAGES/django.po +++ b/plinth/locale/ta/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2024-12-27 01:03+0000\n" "Last-Translator: James Valleroy \n" "Language-Team: Tamil user@host:~/path/to/repo/" @@ -447,11 +449,11 @@ msgstr "" "புதிய அல்லது இருக்கும் களஞ்சியத்தின் பாதை. எடுத்துக்காட்டு: பயனர்@ஓச்ட்: ~/பாதை/to/" "repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "பாஓடு சேவையக கடவுச்சொல்" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -459,18 +461,18 @@ msgstr "" "பாஓடு சேவையகத்தின் கடவுச்சொல்.
பாஓடு விசை அடிப்படையிலான ஏற்பு இன்னும் " "சாத்தியமில்லை." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "தொலைநிலை காப்புப்பிரதி களஞ்சியம் ஏற்கனவே உள்ளது." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "சரிபார்க்கப்பட்ட பாஓடு பொது விசையைத் தேர்ந்தெடுக்கவும்" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "மீட்டமை" @@ -552,16 +554,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "தற்போதுள்ள களஞ்சியம் குறியாக்கம் செய்யப்படவில்லை." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "{box_name} சேமிப்பு" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "புதிய காப்புப்பிரதியை உருவாக்கவும்" @@ -605,10 +611,9 @@ msgstr "இருக்கும் காப்புப்பிரதிக #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -767,111 +772,111 @@ msgstr "" msgid "Verify Host" msgstr "ஓச்டை சரிபார்க்கவும்" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "காப்பு அட்டவணை புதுப்பிக்கப்பட்டது." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "காப்புப்பிரதிகளை திட்டமிடுங்கள்" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "காப்பகம் உருவாக்கப்பட்டது." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "காப்பகத்தை நீக்கு" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "காப்பகம் நீக்கப்பட்டது." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "பதிவேற்றி காப்புப்பிரதியை மீட்டெடுக்கவும்" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Logged out successfully." msgid "Upload successful." msgstr "வெற்றிகரமாக உள்நுழைந்தது." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "காப்புப்பிரதி கோப்பு எதுவும் கிடைக்கவில்லை." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "பதிவேற்றிய கோப்பிலிருந்து மீட்டமைக்கவும்" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "காப்புப்பிரதியிலிருந்து மீட்டெடுக்கப்பட்ட கோப்புகள்." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "களஞ்சியத்தைச் சேர்க்க கூடுதல் வட்டுகள் எதுவும் கிடைக்கவில்லை." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "காப்பு களஞ்சியத்தை உருவாக்கவும்" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "புதிய தொலைநிலை பாஓடு களஞ்சியத்தை சேர்க்கப்பட்டது." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "தொலைதூர காப்புப்பிரதி களஞ்சியத்தை உருவாக்கவும்" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "புதிய தொலைநிலை பாஓடு களஞ்சியத்தை சேர்க்கப்பட்டது." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "பாஓடு ஓச்ட்கியை சரிபார்க்கவும்" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "பாஓடு புரவலன் ஏற்கனவே சரிபார்க்கப்பட்டது." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "பாஓடு புரவலன் சரிபார்க்கப்பட்டது." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "பாஓடு புரவலன் பொது விசையை சரிபார்க்க முடியவில்லை." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "தொலை சேவையகத்திற்கான ஏற்பு தோல்வியடைந்தது." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "சேவையகத்துடன் இணைப்பை நிறுவுவதில் பிழை: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "களஞ்சியம் அகற்றப்பட்டது." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "களஞ்சியத்தை அகற்று" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "களஞ்சியம் அகற்றப்பட்டது. காப்புப்பிரதிகள் நீக்கப்படவில்லை." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "அன்யூனிங் தோல்வியுற்றது!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "பெருகிவரும் தோல்வியுற்றது" @@ -991,7 +996,7 @@ msgstr "கடவுச்சொல்லைச் சேர்க்கவு msgid "No passwords currently configured." msgstr "கடவுச்சொற்கள் தற்போது கட்டமைக்கப்படவில்லை." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1120,8 +1125,10 @@ msgstr "தீர்வி நிலை" msgid "Serving Domains" msgstr "பரிமாறும் களங்கள்" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1151,7 +1158,7 @@ msgstr "ஐபி முகவரி மற்றும் களங்களை #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1797,7 +1804,7 @@ msgid "Test" msgstr "தேர்வு" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "முடிவு" @@ -1810,7 +1817,7 @@ msgstr "கண்டறியும் சோதனை" msgid "App {app_id} is not installed, cannot repair" msgstr "பயன்பாடு {app_id} நிறுவப்படவில்லை, சரிசெய்ய முடியாது" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1821,7 +1828,7 @@ msgstr "" "மணிநேரமும்), மற்றவர்கள் உங்களை இணையத்தில் கண்டுபிடிப்பது கடினமாக இருக்கலாம். இது " "{box_name} by ஆல் வழங்கப்படும் சேவைகளைக் கண்டுபிடிப்பதைத் தடுக்கும்." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1838,7 +1845,7 @@ msgstr "" "ஒதுக்கும், மேலும் இணையத்திலிருந்து யாராவது உங்கள் டிஎன்எச் பெயரைக் கேட்டால், அவர்கள் உங்கள் " "தற்போதைய ஐபி முகவரியுடன் பதிலைப் பெறுவார்கள்." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1849,11 +1856,17 @@ msgstr "" "a> இலவச புதுப்பிப்பு முகவரி அடிப்படையிலான சேவைகளை redns." "afraid.org இல் நீங்கள் காணலாம்." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "மாறும் டிஎன்எச் கிளையன்ட்" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "மாறும் டொமைன் பெயர்" @@ -1910,88 +1923,71 @@ msgstr "" "உங்கள் தற்போதைய கடவுச்சொல்லை வைத்திருக்க விரும்பினால் இந்த புலத்தை காலியாக விடவும்." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"விருப்ப மதிப்பு. உங்கள் {box_name} நேரடியாக இணையத்துடன் இணைக்கப்படாவிட்டால் (அதாவது " -"NAT திசைவியுடன் இணைக்கப்பட்டுள்ளது) உண்மையான ஐபி முகவரியை தீர்மானிக்க இந்த முகவரி " -"பயன்படுத்தப்படுகிறது. கிளையன்ட் வரும் இடத்தை முகவரி வெறுமனே திருப்பித் தர வேண்டும் " -"(எடுத்துக்காட்டு: https://ddns.freedombox.org/ip/)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "கணக்கு உருவாக்கப்பட்டபோது பயன்படுத்தப்பட்ட பயனர்பெயர்." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "க்ருடிப்" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "பிற புதுப்பிப்பு முகவரி" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "பணி வகை" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "GNUDIP சேவையக முகவரி" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "தவறான சேவையக பெயர்" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "முகவரி ஐப் புதுப்பிக்கவும்" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "அனைத்து எச்எச்எல் சான்றிதழ்களையும் ஏற்றுக்கொள்ளுங்கள்" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "HTTP அடிப்படை அங்கீகாரத்தைப் பயன்படுத்தவும்" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "டொமைன் பெயர்" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "தவறான டொமைன் பெயர்" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "பயனர்பெயர்" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "கடவுச்சொல்லைக் காட்டு" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "பொது ஐபி பார்க்க முகவரி" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "IPv4 க்கு பதிலாக IPv6 ஐப் பயன்படுத்தவும்" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "இந்த புலம் தேவை." #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2007,37 +2003,37 @@ msgstr "" msgid "Needs public IP" msgstr "சேவையக பொது விசை:" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "நிலை" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "கடைசி புதுப்பிப்பு" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "ஐபி முகவரி" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "செய்" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "தோல்வியுற்றது" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "நிலை எதுவும் கிடைக்கவில்லை." @@ -2206,7 +2202,7 @@ msgstr "வீடியோ அரட்டை" msgid "XMPP" msgstr "Xmpp" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2217,7 +2213,7 @@ msgstr "" " பயனர்பெயர்@%(domain_name)s போல இருக்கும். உங்கள் டொமைனை கணினியில் பெயர் சேவைகள் பக்கத்தில் அமைக்கலாம்." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2283,14 +2279,18 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "போச்ட்ஃபிக்ச்/டோவ்கோட்" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "எனது மின்னஞ்சல் மாற்றுப்பெயர்கள்" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "அஞ்சல் பெட்டிக்கான மாற்றுப்பெயர்களை நிர்வகிக்கவும்" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "முதன்மை களம்" @@ -2369,47 +2369,103 @@ msgstr "புதிய மின்னஞ்சல் மாற்றுப் msgid "Add" msgstr "கூட்டு" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "ச்பேமை நிர்வகிக்கவும்" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "டிஎன்எச் பதிவுகள்" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" "அஞ்சல் சேவையகம் சரியாக வேலை செய்ய பின்வரும் டிஎன்எச் பதிவுகள் உங்கள் முதன்மை களத்தில் " "கைமுறையாக சேர்க்கப்பட வேண்டும்." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "Ttl" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "வகுப்பு" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "முன்னுரிமை" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "எடை" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "துறைமுகம்" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "ஓச்ட்/இலக்கு/மதிப்பு" +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "சேவையக ஓச்ட்பெயர் அல்லது ஐபி முகவரி" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "புரவலன்பெயர்" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "ச்பேமை நிர்வகிக்கவும்" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "களங்கள்" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, fuzzy, python-format +#| msgid "Resolve domain name: {domain}" +msgid "View domain: %(domain)s" +msgstr "டொமைன் பெயரைத் தீர்க்கவும்: {domain}" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2671,7 +2727,7 @@ msgstr "துறைமுகம் {name} ({details}) வெளிப்பு msgid "Port {name} ({details}) unavailable for external networks" msgstr "துறைமுகம் {name} ({details}) வெளிப்புற நெட்வொர்க்குகளுக்கு கிடைக்கவில்லை" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "துறைமுகங்கள்" @@ -3026,9 +3082,9 @@ msgstr "கருத்துக்களை சமர்ப்பிக்க msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "" @@ -3196,7 +3252,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "மேலும் அறிக ..." @@ -3566,7 +3622,7 @@ msgid "Web conference" msgstr "வலை மாநாடு" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "சாவாச்கிரிப்ட் உரிம செய்தி" @@ -3995,7 +4051,7 @@ msgstr "" "டொமைன் (கள்) எதுவும் கிடைக்கவில்லை. உள்ளமைக்கவும் " "மேட்ரிக்ச் சினாப்சைப் பயன்படுத்த குறைந்தபட்சம் ஒரு டொமைன்." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4006,7 +4062,7 @@ msgstr "" " @username:%(domain_name)s போல இருக்கும். ஆரம்ப அமைப்புக்குப் பிறகு " "டொமைன் பெயரை மாற்றுவது தற்போது ஆதரிக்கப்படவில்லை." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4014,7 +4070,7 @@ msgstr "" "பொது பதிவு இயக்கப்பட்டால் புதிய பயனர்கள் எந்தவொரு வாடிக்கையாளரிடமிருந்தும் பதிவு " "செய்யப்படலாம்." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" @@ -4022,31 +4078,31 @@ msgstr "" "புதிய பயனர்கள் கணக்கு பதிவின் போது சரிபார்ப்புக்கு பின்வரும் டோக்கன்களில் ஒன்றைப் பயன்படுத்த " "வேண்டும்:" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "பதிவு கிள்ளாக்கு" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "அனுமதிக்கப்பட்ட பயன்பாடுகள்" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "நிலுவையில் உள்ள பதிவுகள்" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "நிறைவு செய்யப்பட்ட பதிவுகள்" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "காலாவதி நேரம்" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "வரம்பற்றது" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4511,7 +4567,7 @@ msgstr "பயனருக்கான கடவுச்சொல் மீட msgid "An error occurred during password reset: {error}." msgstr "கடவுச்சொல் மீட்டமைப்பின் போது பிழை ஏற்பட்டது: {error}." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4519,7 +4575,7 @@ msgstr "" "Mummble என்பது ஒரு திறந்த மூலமாகும், குறைந்த லேட்டென்சி, மறைகுறியாக்கப்பட்ட, உயர்தர " "குரல் அரட்டை மென்பொருள்." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4527,10 +4583,16 @@ msgid "" msgstr "" "வழக்கமான முணுமுணுப்பு துறைமுகம் 64738 இல் உங்கள் முணுமுணுப்பு சேவையகத்துடன் இணைக்கலாம்." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "முணுமுணுப்பு" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "grub package is configured" +msgid "Mumble server is configured" +msgstr "க்ரப் தொகுப்பு கட்டமைக்கப்பட்டுள்ளது" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "சூப்பர் யூசர் கடவுச்சொல்லை அமைக்கவும்" @@ -4676,10 +4738,6 @@ msgstr "" "லேபிளின் நீளமும் 63 எழுத்துக்கள் அல்லது அதற்கும் குறைவாக இருக்க வேண்டும். டொமைன் பெயரின் " "மொத்த நீளம் 253 எழுத்துக்கள் அல்லது அதற்கும் குறைவாக இருக்க வேண்டும்." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "களங்கள்" - #: modules/names/manifest.py:13 #, fuzzy #| msgid "Evolution" @@ -5261,7 +5319,7 @@ msgstr "இணைப்பைத் திருத்து" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "தொகு" @@ -5314,7 +5372,7 @@ msgstr "இடைமுகம்" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "விவரம்" @@ -5392,8 +5450,8 @@ msgstr "இந்த இணைப்பு செயலில் இல்லை #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "தனியுரிமை" @@ -5484,7 +5542,7 @@ msgstr "உள்" msgid "Computer" msgstr "கணிப்பொறி, கணிணி" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "இணைப்பைத் திருத்து" @@ -5495,7 +5553,7 @@ msgid "Error:" msgstr "பிழை:" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "மூடு" @@ -5591,7 +5649,7 @@ msgstr "புதுப்பிப்பு ..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "சமர்ப்பிக்கவும்" @@ -6027,11 +6085,7 @@ msgstr "" "திட்டத்தால் செய்யப்படுகின்றன, ஆனால் டெபியன்/{box_name} ஆல் அல்ல. சுயாதீன சுழற்சியைத் " "தொடர்ந்து புதுப்பிப்புகள் செய்யப்படுகின்றன." -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "இந்த பயன்பாடு சோதனை." - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "அடுத்த முகில்" @@ -6231,7 +6285,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "பேச் கைட் டொமைன்" @@ -6431,8 +6485,8 @@ msgstr "" msgid "Shutdown" msgstr "மூடு" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "மறுதொடக்கம்" @@ -6474,24 +6528,34 @@ msgstr "" msgid "Shut Down Now" msgstr "இப்போது மூடு" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "கணினி அளவிலான தனியுரிமை அமைப்புகளை நிர்வகிக்கவும்." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "உங்கள் விருப்பங்களுடன் பொருந்துமாறு தனியுரிமை அமைப்புகளைப் புதுப்பிக்கவும்." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "தனியுரிமை அமைப்பை மதிப்பாய்வு செய்யவும்" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" "பயன்படுத்தப்பட்ட பயன்பாடுகளின் பட்டியலை அவ்வப்போது சமர்ப்பிக்கவும் (பரிந்துரைக்கப்பட்டது)" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6508,11 +6572,11 @@ msgstr "" "popcon.debian.org இல் கிடைக்கின்றன. TOR பயன்பாடு இயக்கப்பட்டிருந்தால் கூடுதல் " "அநாமதேயத்திற்கு TOR நெட்வொர்க்கில் சமர்ப்பிப்பு நிகழ்கிறது." -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "குறைவடையும் டிஎன்எச் சேவையகங்களைப் பயன்படுத்த அனுமதிக்கவும்" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6524,10 +6588,22 @@ msgstr "" "பயன்படுத்தவும். பிணையம் இணைப்பு நிலையானது மற்றும் நம்பகமானதாக இருந்தால் பெரும்பாலான " "சந்தர்ப்பங்களில் முடக்கப்படலாம்." +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "பொது ஐபி பார்க்க முகவரி" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Onion services" +msgid "External services" +msgstr "வெங்காய சேவைகள்" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "Fallback DNS Servers" @@ -7592,40 +7668,40 @@ msgid "Delete the following snapshots permanently?" msgstr "பின்வரும் ச்னாப்சாட்களை நிரந்தரமாக நீக்கவா?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "எண்" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "திகதி" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "ச்னாப்சாட்களை நீக்கு" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "ச்னாப்சாட்டை உருவாக்கவும்" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "மறுசீரமைப்பு" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "அடுத்த துவக்கத்தில் பயன்படுத்தப்படும்" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "பயன்பாட்டில்" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "ச்னாப்சாட்டுக்கு ரோல்பேக் #%(number)s" @@ -8234,27 +8310,27 @@ msgstr "" msgid "Tor" msgstr "டோர்" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "டோர் வெங்காய பணி" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "டோர் பிரிட்ச் ரிலே" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "டோர் ரிலே துறைமுகம் கிடைக்கிறது" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "OBFS3 போக்குவரத்து பதிவு செய்யப்பட்டது" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "OBFS4 போக்குவரத்து பதிவு செய்யப்பட்டது" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "வெங்காய பணி பதிப்பு 3 ஆகும்" @@ -8361,7 +8437,7 @@ msgstr "அஞ்சல் சுருள்" msgid "Anonymity network" msgstr "அநாமதேய பிணையம்" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "வெங்காய பணி" @@ -9015,12 +9091,12 @@ msgstr "பயனர்கள்" msgid "Edit user %(username)s" msgstr "பயனர் %(username)s திருத்து" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "பயனர் %(username)s ஐத் திருத்தவும்" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9029,17 +9105,17 @@ msgstr "" "கடவுச்சொல்லை மாற்ற கடவுச்சொல் படிவத்தை " "மாற்றவும் ஐப் பயன்படுத்தவும்." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "மாற்றங்களைச் சேமிக்கவும்" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "பயனர் %(username)s மற்றும் பயனரின் அனைத்து கோப்புகளையும் நீக்கு?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." @@ -9047,11 +9123,11 @@ msgstr "" "ஒரு பயனர் கணக்கை நீக்குவது பயனரின் வீட்டு அடைவு அனைத்து கோப்புகளையும் நீக்குகிறது. இந்த " "கோப்புகளை வைத்திருக்க விரும்பினால், அதற்கு பதிலாக பயனர் கணக்கை முடக்கவும்." -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "பயனர் மற்றும் கோப்புகளை நீக்கவும்" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "ரத்துசெய்" @@ -9739,11 +9815,11 @@ msgstr "நிறுவல்" msgid "Service %(service_name)s is not running." msgstr "பணி %(service_name)s இயங்கவில்லை." -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "குறிச்சொற்களுடன் தேடுங்கள்" -#: templates/apps.html:42 +#: templates/apps.html:46 #, fuzzy #| msgid "Search with tags" msgid "Clear all tags" @@ -9758,35 +9834,35 @@ msgstr "" "சேவையகமாகும். இது இலவச மென்பொருளாகும், இது சேவையக பயன்பாடுகளை எளிதாக நிறுவவும் " "நிர்வகிக்கவும் உங்களை அனுமதிக்கிறது." -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " வீடு" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " பயன்பாடுகள்" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " அமைப்பு" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "கடவுச்சொல்லை மாற்றவும்" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "மூடு" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "விடுபதிகை" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "மொழியைத் தேர்ந்தெடுக்கவும்" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "புகுபதிகை" @@ -10003,23 +10079,44 @@ msgstr "" "அனைத்து பயன்பாட்டு தரவு மற்றும் உள்ளமைவும் நிரந்தரமாக இழக்கப்படும். பயன்பாடு மீண்டும் " "புதிதாக நிறுவப்படலாம்." -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "மாறாமல் அமைத்தல்" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "{app_id} ஐ நிறுவல் நீக்குவதற்கு முன்" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "குசராத்தி" +#~ msgid "In 24 hour format." +#~ msgstr "24 மணி நேர வடிவத்தில்." + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "விருப்ப மதிப்பு. உங்கள் {box_name} நேரடியாக இணையத்துடன் இணைக்கப்படாவிட்டால் (அதாவது " +#~ "NAT திசைவியுடன் இணைக்கப்பட்டுள்ளது) உண்மையான ஐபி முகவரியை தீர்மானிக்க இந்த முகவரி " +#~ "பயன்படுத்தப்படுகிறது. கிளையன்ட் வரும் இடத்தை முகவரி வெறுமனே திருப்பித் தர வேண்டும் " +#~ "(எடுத்துக்காட்டு: https://ddns.freedombox.org/ip/)." + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "அஞ்சல் பெட்டிக்கான மாற்றுப்பெயர்களை நிர்வகிக்கவும்" + +#~ msgid "This app is experimental." +#~ msgstr "இந்த பயன்பாடு சோதனை." + #~ msgid "File & Snippet Sharing" #~ msgstr "கோப்பு மற்றும் துணுக்கை பகிர்வு" diff --git a/plinth/locale/te/LC_MESSAGES/django.po b/plinth/locale/te/LC_MESSAGES/django.po index 13cbc9581..2b5fa2450 100644 --- a/plinth/locale/te/LC_MESSAGES/django.po +++ b/plinth/locale/te/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: FreedomBox UI\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2024-12-26 01:00+0000\n" "Last-Translator: Joseph Nuthalapati \n" "Language-Team: Telugu user@host:~/path/to/repo/" msgstr "" "కొత్త లేదా ఇప్పటికే ఉన్న రిపోజిటరీ యొక్క మార్గం. ఉదాహరణ: user@host:~/path/to/repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "SSH సర్వర్ పాస్ వర్డ్" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "SSH సర్వర్ యొక్క పాస్వర్డ్.
SSH కీ-ఆధారిత ప్రామాణీకరణ ఇంకా సాధ్యం కాదు." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "రిమోట్ బ్యాకప్ రిపోజిటరీ ఇప్పటికే ఉంది." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "ధృవీకరించబడిన SSH పబ్లిక్ కీని ఎంచుకోండి" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "పునరుద్ధరించు" @@ -543,16 +545,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "ఇప్పటికే ఉన్న రిపోజిటరీ గుప్తీకరించబడలేదు." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "{box_name} నిల్వ" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "క్రొత్త బ్యాకప్‌ను సృష్టించండి" @@ -596,10 +602,9 @@ msgstr "ఇప్పటికే ఉన్న బ్యాకప్‌లు" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -756,111 +761,111 @@ msgstr "" msgid "Verify Host" msgstr "హోస్ట్ ను నిర్ధారించండి" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "బ్యాకప్ షెడ్యూల్ నవీకరించబడింది." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "ఖాతా సృష్టించు" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "భాండాగారాము సృజింపబడింది." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "ఆర్కైవ్ తొలగించు" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "ఆర్కైవ్ తొలగించబడింది." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "బ్యాకప్‌ను అప్‌లోడ్ చేసి పునరుద్ధరించండి" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Logged out successfully." msgid "Upload successful." msgstr "విజయవంతంగా లాగ్ అవుట్ చేయబడింది." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "ఏ బ్యాకప్ ఫైల్ దొరకలేదు." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "అప్‌లోడ్ చేసిన ఫైల్ నుండి పునరుద్ధరించండి" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "బ్యాకప్ నుండి పునరుద్ధరించబడిన ఫైళ్లు." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "రిపోజిటరీని జోడించడానికి అదనపు డిస్కులు అందుబాటులో లేవు." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "బ్యాకప్ రిపోజిటరీని సృష్టించండి" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "కొత్త రిమోట్ SSH రిపోజిటరీ జోడించబడింది." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "రిమోట్ బ్యాకప్ రిపోజిటరీని సృష్టించండి" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "కొత్త రిమోట్ SSH రిపోజిటరీ జోడించబడింది." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "SSH హోస్ట్‌కీని ధృవీకరించండి" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "SSH హోస్ట్ ఇప్పటికే ధృవీకరించబడింది." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH హోస్ట్ ధృవీకరించబడింది." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "SSH హోస్ట్ పబ్లిక్ కీని ధృవీకరించడం సాధ్యం కాలేదు." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "రిమోట్ సర్వర్‌కు ప్రామాణీకరణ విఫలమైంది." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "సర్వర్‌కు కనెక్షన్‌ని ఏర్పాటు చేయడంలో లోపం: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "రిపోజిటరీ తొలగించబడింది." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "రిపోజిటరీని తొలగించండి" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "రిపోజిటరీ తొలగించబడింది. బ్యాకప్‌లు తొలగించబడలేదు." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "అన్‌మౌంటింగ్ విఫలమైంది!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "మౌంటింగ్ విఫలమైంది" @@ -981,7 +986,7 @@ msgstr "రహస్యపదం జోడించండి" msgid "No passwords currently configured." msgstr "ప్రస్తుతం రహస్యపదాలను ఏవీ కాన్ఫిగర్ చేయబడలేదు." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1106,8 +1111,10 @@ msgstr "" msgid "Serving Domains" msgstr "అధికారకక్షేత్రాలను అందిస్తోంది" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1137,7 +1144,7 @@ msgstr "IP చిరునామా మరియు డొమైన్‌లన #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1792,7 +1799,7 @@ msgid "Test" msgstr "పరీక్ష" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "ఫలితం" @@ -1805,7 +1812,7 @@ msgstr "లక్షణాల పరీక్ష" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1816,7 +1823,7 @@ msgstr "" "అప్పుడు ఇతరులు అంతర్జాలంలో మిమల్ని కనుగొనడానికి కష్టం ఆవతుంది. అప్పుడు వారు ఈ {box_name} " "అందించే సేవలను కనుగోనలేరు." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1832,7 +1839,7 @@ msgstr "" "అనుమతిస్తుంది. తరువాత, సర్వర్ కొత్త IP మీ DNS పేరు కేటాయిస్తుంది, మరియు ఇంటర్నెట్ నుండి ఎవరైనా మీ " "DNS పేరు అడుగుతాడు ఉంటే, వారు మీ ప్రస్తుత ఐ.పీ. చిరునామాతో సమాధానం పొందుతారు." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1845,11 +1852,17 @@ msgstr "" "\" target=\"_blank\"> 3 freedns.afraid.org 4 ఉచిత నవీకరణ URL ఆధారిత సేవలు " "కనుగొనవచ్చు." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "గతిక DNS కక్షిదారు" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "డైనమిక్ డొమైన్ పేరు" @@ -1901,87 +1914,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "మీరు మీ ప్రస్తుత పాస్‌వర్డ్ ను ఉంచుకోవాలనుకుంటే ఈ ఫీల్డ్ ఖాళీగా వదిలివేయండి." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"ఐచ్ఛిక విలువ. మీ {box_name} అంతర్జాలానికి నేరుగా కనెక్ట్ అయ్యీ ఉండకపోయినట్లైతే (ఒక ఎన్.ఏ.టి రూటర్ కి " -"కనెక్ట్ అయ్యి ఉంటే) మీ వాస్తవమైన ఐ.పి తెలుసుకునేందుకు ఈ యూ.ఆర్.ఎల్ ఉపయోగపడుతుంది. క్లయింట్ ఎక్కడ " -"నుండి వస్తుంది అనే ఐపీ మాత్రమే ఈ యూ.ఆర్.ఎల్ తిరిగివ్వాలి (ఉ.దా: ఏచ్.టి.టి.పి.://మైఐపి.డాటాసిస్టమ్స్24.దే)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "మీరు మీ ఖాతాను సృష్టించినప్పుడు వాడిన వాడుకరి పేరు ." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "జ్ఞుడిప్" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "ఇతర నవీకరణ URL" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "సేవా రకం" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "GnudIP సేవకం చిరునామా" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "సేవిక పేరు చెలదు" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "URL నవీకరణ" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "అన్ని ఎస్.ఎస్.ఎల్ సర్టిఫికెట్లు అంగీకరించు" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "HTTP ప్రాథమిక ప్రమాణీకరణ ఉపయోగించు" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "డొమైను పేరు" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "డొమైన్ పేరు చెల్లదు" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "వినియోగి పేరు" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "రహస్యపదం కనబర్చు" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "పబ్లిక్ IP చూసేందుకు URL" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "ఇప్ప్4 బదులు ఇప్ప్6 వినియోగించండి" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "ఇది అవసరమేయిన్న క్షేత్రం." #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1997,37 +1994,37 @@ msgstr "" msgid "Needs public IP" msgstr "సర్వర్ పబ్లిక్ కీ:" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "స్థితి" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "చివరి నవీకరణ" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "IP చిరునామా" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "విజయం" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "విఫలమైంది" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "స్థితి అందుబాటులో లేదు." @@ -2197,7 +2194,7 @@ msgstr "వీడియొ రూమ్" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2212,7 +2209,7 @@ msgstr "" "username@%(domainname)s లాగా కనిపిస్తాయి. మీరు మీ డొమైన్ను కాన్ఫిగర్ పేజీలో సెటప్ చేయవచ్చు." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, fuzzy, python-format #| msgid "" #| "Your XMPP server domain is set to %(domainname)s. User IDs will " @@ -2279,14 +2276,18 @@ msgstr "ఇన్‌స్టాలేషన్ సమయంలో, సిస్ msgid "Postfix/Dovecot" msgstr "పోస్ట్ ఫిక్స్/డోవ్ కాట్" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "మై ఇమెయిల్ అలియాసిస్" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "మేనేజ్ అలియాసిస్ ఫర్ మైలబోస్" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "ప్రాథమిక అనుసంధానం" @@ -2365,46 +2366,101 @@ msgstr "కొత్త ఇమెయిల్ అలియాస్‌ని స msgid "Add" msgstr "జోడించు" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "స్పామ్‌ని నిర్వహించండి" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "ద్న్స్ , రికార్డ్ లు" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" "మెయిల్ సర్వర్ సక్రమంగా పనిచేయడం కొరకు దిగువ ద్న్స్ రికార్డులను మీ ప్రాథమిక డొమైన్ లో మాన్యువల్ గా జోడించాలి." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "టిటిఎల్" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "తరగతి" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "ప్రాధాన్యత" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "వెయిట్" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "పోర్టు" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "హోస్ట్/టార్గెట్/వేల్యూ" +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "సర్వర్ హోస్ట్ పేరు లేదా ఐపి చిరునామా" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "అతిథ్యనామం" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "స్పామ్‌ని నిర్వహించండి" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "డొమైన్లు" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2681,7 +2737,7 @@ msgstr "అంతర్గత నెట్‌వర్క్‌ల కోసం msgid "Port {name} ({details}) unavailable for external networks" msgstr "Port {name} ({details})బాహ్య నెట్‌వర్క్‌లకు అందుబాటులో లేదు" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "పోర్ట్స్" @@ -3033,9 +3089,9 @@ msgstr "అభిప్రాయాన్ని సమర్పించండ msgid "Contribute" msgstr "దోహదం చేయండి" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "గురించి" @@ -3204,7 +3260,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "మరింత తెలుసుకోండి.." @@ -3576,7 +3632,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "జావాస్క్రిప్ట్ లైసెన్స్ సమాచరం" @@ -4018,7 +4074,7 @@ msgstr "" "ఏ డొమైన్(లు) అందుబాటులో లేవు. మ్యాట్రిక్స్ సినాప్స్‌ని ఉపయోగించడానికి కనీసం ఒక డొమైన్‌ను ఆక్రుతీకరించండి ." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4029,43 +4085,43 @@ msgstr "" "@వినియోగదారిడి పేరు:%(domain_name)sఇలా కనిపిస్తుంది. ప్రారంభ సెట్టింగు తర్వాత డొమైన్ పేరు " "మార్చడం ప్రస్తుతం మద్దతు లేదు." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "పబ్లిక్ రిజిస్ట్రేషన్ ప్రారంభించబడితే ఏదైనా క్లయింట్ నుండి క్రొత్త వినియోగదారులను నమోదు చేసుకోవచ్చు." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "న్యూ ఉసెర్స్ మస్ట్ ఉస్ ఇన్ అఫ్ ది ఫాలోయింగ్ లోకేష్ ఫర్ వెరిఫికేషన్ డురింగ్ అకౌంట్ రెజిస్ట్రేషన్స్:" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "నమోదు టోకెన్" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "ఉసెస్ అలోవెద్" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "పెండింగ్ రేగిస్తారేషన్స్" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "కంప్లీటెడ్ రేగిస్తారేషన్స్" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "ఎక్సపీరి టైం" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "అన్లిమిటెడ్" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4544,7 +4600,7 @@ msgstr "చెల్లని వినియోగదారు పేరు: {u msgid "An error occurred during password reset: {error}." msgstr "అక్రుతీకరణలో ఒక పొరపాటు జరిగింది." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4552,7 +4608,7 @@ msgstr "" "మంబుల్ అనేది తక్కువ-జాప్యత, ఎన్క్రిప్టెడ్, అధిక నాణ్యతా వంటి విశిష్టలతో కూడిన ఒక ఓపెన్ సోర్స్ స్వర సంభాషణా " "సాఫ్ట్‌వేర్." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4562,10 +4618,16 @@ msgstr "" "పరికరాల నుండి Mumbleకి బంధించడానికి క్లయింట్లు " "అందుబాటులో ఉన్నాయి." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "మంబుల్" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Mumble server is running" +msgid "Mumble server is configured" +msgstr "మంబుల్ సేవకం నడుస్తోంది" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "సూపర్‌యూజర్ రహస్యపదంని సెట్ చేయండి" @@ -4704,10 +4766,6 @@ msgstr "" "అక్షరాలు లేదా అంత కన్నా తక్కువే కలిగి ఉండాలి. మొత్తం డోమైన్ పేరు పొడవు ౨౫౩ అక్షరాలు లేదా అంత అత కంటే " "తక్కువే ఉండాలి." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "డొమైన్లు" - #: modules/names/manifest.py:13 #, fuzzy #| msgid "Evolution" @@ -5294,7 +5352,7 @@ msgstr "అనుసంధానాన్ని సవరించు" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "సవరించు" @@ -5347,7 +5405,7 @@ msgstr "అంతర్ముఖం" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "వివరణ" @@ -5425,8 +5483,8 @@ msgstr "ఈ అనుసంధానం చురుకుగాలేదు." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "అంతరంగికత" @@ -5517,7 +5575,7 @@ msgstr "అంతర్గత" msgid "Computer" msgstr "కంప్యూటర్" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "అనుసంధానాన్ని సవరించండి" @@ -5530,7 +5588,7 @@ msgid "Error:" msgstr "లోపం" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "దగ్గరగా" @@ -5628,7 +5686,7 @@ msgstr "నవీకరించు..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "సమర్పించు" @@ -6056,11 +6114,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 #, fuzzy #| msgid "Next" @@ -6281,7 +6335,7 @@ msgstr "" msgid "PageKite" msgstr "పేజ్‌కైట్" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "పేజ్‌కైట్ అధికారక్షేత్రం" @@ -6481,8 +6535,8 @@ msgstr "" msgid "Shutdown" msgstr "మూసివేయి" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "పునఃప్రారంభించండి" @@ -6523,23 +6577,33 @@ msgstr "" msgid "Shut Down Now" msgstr "ఇపుడు మూసివేయండి" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "సిస్టమ్-వైడ్ గోప్యతా సెట్టింగ్‌లను నిర్వహించండి." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "మీ అభిరుచులకు అనుగుణంగా అంతరంగిక సెట్టింగులను మార్చుకోండి." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "అంతరంగిక సెట్టింగ్‌ని సమీక్షించండి" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "ఉపయోగించిన యాప్‌ల జాబితాను కాలానుగుణంగా సమర్పించండి (సూచించబడింది)" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6555,11 +6619,11 @@ msgstr "" "target=\"_blank\">popcon.debian.orgలో పబ్లిక్‌గా అందుబాటులో ఉన్నాయి. టోర్ యాప్ " "ప్రారంభించబడితే అదనపు అజ్ఞాతం కోసం టోర్ నెట్‌వర్క్ ద్వారా సమర్పణ జరుగుతుంది." -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6567,10 +6631,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "పబ్లిక్ IP చూసేందుకు URL" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Enable OpenVPN server" +msgid "External services" +msgstr "సేవిక తెరవండిVPN అమలుచెయ్యి" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS Server" @@ -7668,40 +7744,40 @@ msgid "Delete the following snapshots permanently?" msgstr "క్రింది స్నాప్షాట్‌లను శాశ్వతంగా తొలగించు ?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "సంఖ్య" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "తేదీ" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "స్నాప్షాట్‌లను తొలగించు" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "స్నాప్షాట్‌ని సృష్టించు" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "యథాస్థితి" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "తదుపరి బూట్‌లో ఉపయోగించబడుతుంది" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "వాడుకలోఉంది" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "స్నాప్షాట్కు రోల్బ్యాక్ చేయండి #%(number)s" @@ -8294,27 +8370,27 @@ msgstr "" msgid "Tor" msgstr "టార్" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "టోర్ ఉల్లిపాయ సేవ" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "టార్ బ్రిడ్జ్ రిలే" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "టార్ రిలే పోర్ట్ అందుబాటులో ఉంది" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Obfs3 రవాణా నమోదు చేయబడింది" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Obfs4 రవాణా నమోదు చేయబడింది" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 #, fuzzy #| msgid "Onion Service" msgid "Onion service is version 3" @@ -8426,7 +8502,7 @@ msgstr "రిలే" msgid "Anonymity network" msgstr "అజ్ఞాత జాలిక" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "ఉల్లిపాయ సేవ" @@ -9072,12 +9148,12 @@ msgstr "వినియోగదారులు" msgid "Edit user %(username)s" msgstr "%(username)s వినియోగదారుని మార్చు" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "వినియోగదారు%(username)sని సవరించండి" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9086,30 +9162,30 @@ msgstr "" "పాస్వర్డ్ను మార్చడానికి పాస్వర్డ్ మాచ్రు ఫారంని " "ఉపయోగించండి." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "మార్పులను భద్రపరుచు" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Delete user %(username)s permanently?" msgid "Delete user %(username)s and all the user's files?" msgstr "%(username)s వినియోగదారుని శాశ్వతంగా తొలగించు?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "ఫైళ్లను తొలగించండి" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "రద్దుచేయి" @@ -9812,13 +9888,13 @@ msgstr "నిక్షిప్తం" msgid "Service %(service_name)s is not running." msgstr "%(service_name)s సేవ నడవడం లేదు." -#: templates/apps.html:29 +#: templates/apps.html:33 #, fuzzy #| msgid "Search the web" msgid "Search with tags" msgstr "అంతర్జాలమును శోధింపుము" -#: templates/apps.html:42 +#: templates/apps.html:46 #, fuzzy #| msgid "Search the web" msgid "Clear all tags" @@ -9832,35 +9908,35 @@ msgstr "" "FreedomBox అనేది గోప్యత మరియు డేటా యాజమాన్యం కోసం రూపొందించబడిన వ్యక్తిగత సర్వర్. ఇది సర్వర్ యాప్‌లను " "సులభంగా ఇన్‌స్టాల్ చేయడానికి మరియు నిర్వహించడానికి మిమ్మల్ని అనుమతించే ఉచిత సాఫ్ట్‌వేర్." -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " నివాసం" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " కార్యక్షేత్రం" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " కార్యవ్యవస్థ" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "రహస్యపదాన్ని మార్చు" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "మూసివేయి" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "నిష్క్రమించు" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "బాషను ఎంచుకోండి" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "లోనికి ప్రవేశించండి" @@ -10082,24 +10158,42 @@ msgid "" "installed freshly again." msgstr "మొత్తం యాప్ డేటా మరియు కాన్ఫిగరేషన్ శాశ్వతంగా పోతాయి. యాప్ను మళ్లీ తాజాగా ఇన్‌స్టాల్ చేయవచ్చు." -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "మారకుండా అమర్చుతోంది" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "{app_id} ని అన్ఇన్‌స్టాల్ చేయడానికి ముందు" -#: web_framework.py:114 +#: web_framework.py:122 #, fuzzy msgid "Gujarati" msgstr "గుజరాతీ" +#~ msgid "In 24 hour format." +#~ msgstr "24 గంటల ఆకృతిలో." + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "ఐచ్ఛిక విలువ. మీ {box_name} అంతర్జాలానికి నేరుగా కనెక్ట్ అయ్యీ ఉండకపోయినట్లైతే (ఒక ఎన్.ఏ.టి రూటర్ " +#~ "కి కనెక్ట్ అయ్యి ఉంటే) మీ వాస్తవమైన ఐ.పి తెలుసుకునేందుకు ఈ యూ.ఆర్.ఎల్ ఉపయోగపడుతుంది. క్లయింట్ " +#~ "ఎక్కడ నుండి వస్తుంది అనే ఐపీ మాత్రమే ఈ యూ.ఆర్.ఎల్ తిరిగివ్వాలి (ఉ.దా: ఏచ్.టి.టి.పి.://మైఐపి." +#~ "డాటాసిస్టమ్స్24.దే)." + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "మేనేజ్ అలియాసిస్ ఫర్ మైలబోస్" + #~ msgid "File & Snippet Sharing" #~ msgstr "ఫైల్ & స్నిప్పెట్ భాగస్వామ్యం" @@ -12158,9 +12252,6 @@ msgstr "గుజరాతీ" #~ msgid "Minetest server is not running" #~ msgstr "మంబ్లు సేవిక నడవంలేదు" -#~ msgid "Mumble server is running" -#~ msgstr "మంబుల్ సేవకం నడుస్తోంది" - #~ msgid "Mumble server is not running" #~ msgstr "మంబుల్ సేవకం నడవంలేదు" @@ -12225,11 +12316,6 @@ msgstr "గుజరాతీ" #~ msgid "repro SIP Server" #~ msgstr "సేవిక" -#, fuzzy -#~| msgid "Enable OpenVPN server" -#~ msgid "Enable repro service" -#~ msgstr "సేవిక తెరవండిVPN అమలుచెయ్యి" - #~ msgid "show password" #~ msgstr "రహస్యపదం చూపించు" diff --git a/plinth/locale/tr/LC_MESSAGES/django.po b/plinth/locale/tr/LC_MESSAGES/django.po index d8ebfe066..03cc19bd7 100644 --- a/plinth/locale/tr/LC_MESSAGES/django.po +++ b/plinth/locale/tr/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2025-01-01 08:00+0000\n" "Last-Translator: Burak Yavuz \n" "Language-Team: Turkish user@host:~/path/to/repo/" msgstr "" "Yeni veya varolan bir depo yolu. Örnek: user@host:~/path/to/repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "SSH Sunucu Parolası" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -454,18 +456,18 @@ msgstr "" "SSH sunucusunun parolası.
SSH anahtar tabanlı kimlik doğrulaması henüz " "mümkün değildir." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Uzak yedekleme deposu zaten var." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Doğrulanmış SSH ortak anahtarını seçin" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Geri Yükle" @@ -537,16 +539,20 @@ msgstr "Verilen ada sahip arşiv depoda bulunamadı." msgid "Backup system is busy with another operation." msgstr "Yedekleme sistemi başka bir işlemle meşgul." +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Varolan depo şifrelenmemiş." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "{box_name} depolaması" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Yeni bir yedek oluşturun" @@ -590,10 +596,9 @@ msgstr "Varolan Yedekler" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -754,107 +759,107 @@ msgstr "" msgid "Verify Host" msgstr "Anamakineyi Doğrula" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Yedekleme planı güncellendi." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Yedeklemeleri Zamanla" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Arşiv oluşturuldu." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Arşivi Sil" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Arşiv silindi." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Yedeklemeyi karşıya yükleyin ve geri yükleyin" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "Yükleme başarılı oldu." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Yedekleme dosyası bulunamadı." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Karşıya yüklenen dosyadan geri yükle" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Dosyalar yedekten geri yüklendi." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Bir depo eklemek için mevcut ek diskler yok." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Yedekleme deposu oluşturun" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "Yeni depo eklendi." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Uzak yedekleme deposu oluşturun" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Yeni uzak SSH deposu eklendi." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "SSH anamakine anahtarını doğrula" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "SSH anamakinesi zaten doğrulandı." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH anamakinesi doğrulandı." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "SSH anamakinesi ortak anahtarı doğrulanamadı." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Uzak sunucuya kimlik doğrulama başarısız oldu." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Sunucuyla bağlantı kurulurken hata oldu: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Depo kaldırıldı." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Depoyu Kaldır" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Depo kaldırıldı. Yedekler silinmedi." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Bağlantıyı kaldırma başarısız oldu!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Bağlama başarısız oldu" @@ -976,7 +981,7 @@ msgstr "Parola ekle" msgid "No passwords currently configured." msgstr "Şu anda yapılandırılmış parolalar yok." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1101,8 +1106,10 @@ msgstr "Çözümleyici" msgid "Serving Domains" msgstr "Hizmet Veren Etki Alanları" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1132,7 +1139,7 @@ msgstr "IP adresi ve etki alanlarını yenile" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1771,7 +1778,7 @@ msgid "Test" msgstr "Deneme" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Sonuç" @@ -1784,7 +1791,7 @@ msgstr "Tanı Denemesi" msgid "App {app_id} is not installed, cannot repair" msgstr "{app_id} uygulaması yüklü değil, onarılamıyor" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1796,7 +1803,7 @@ msgstr "" "başkalarının bu {box_name} tarafından sağlanan hizmetleri bulmasını " "engelleyecektir." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1813,7 +1820,7 @@ msgstr "" "sunucu DNS adınızı yeni IP'ye atayacaktır ve İnternet'ten birisi sizin DNS " "adınızı sorarsa, şu anki IP adresinizle bir yanıt alacaktır." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1826,11 +1833,17 @@ msgstr "" "freedns.afraid." "org adresinde bulabilirsiniz." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Değişken DNS İstemcisi" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Değişken Etki Alanı Adı" @@ -1887,88 +1900,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "Şu anki parolanızı korumak istiyorsanız bu alanı boş bırakın." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"İsteğe Bağlı Değer. Eğer {box_name} cihazınız doğrudan İnternet'e bağlı " -"değilse (yani bir NAT yönlendiricisine bağlıysa), bu URL gerçek IP adresini " -"belirlemek için kullanılır. URL, istemcinin geldiği IP'yi döndürmelidir " -"(örnek: https://ddns.freedombox.org/ip/)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Hesap oluşturulduğunda kullanılan kullanıcı adı." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "Diğer güncelleme URL'si" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Hizmet Türü" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "GnuDIP Sunucu Adresi" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Geçersiz sunucu adı" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "Güncelleme URL'si" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Tüm SSL sertifikalarını kabul et" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "HTTP temel kimlik doğrulamasını kullan" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Etki Alanı Adı" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Geçersiz etki alanı adı" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Kullanıcı adı" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Parolayı göster" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "Dış IP'yi aramak için URL" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "IPv4 yerine IPv6 kullan" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "Bu alan gereklidir." #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1982,37 +1978,37 @@ msgstr "Ücretsiz" msgid "Needs public IP" msgstr "Ortak IP'ye ihtiyaç var" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Durum" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Son güncelleme" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "IP Adresi" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "Başarılı" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "Başarısız" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "Mevcut durum yok." @@ -2187,7 +2183,7 @@ msgstr "Görüntülü sohbet" msgid "XMPP" msgstr "XMPP" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2199,7 +2195,7 @@ msgstr "" "görünecek. Etki alanınızı sistemdeki Ad " "Hizmetleri sayfasında ayarlayabilirsiniz." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2264,14 +2260,18 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "E-posta Kod Adlarım" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "Posta Kutusu için Kod Adlarını Yönet" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "Birincil etki alanı" @@ -2350,47 +2350,103 @@ msgstr "Yeni bir e-posta kod adı oluşturun" msgid "Add" msgstr "Ekle" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "İstenmeyen İletiyi Yönet" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "DNS Kayıtları" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." 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." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "TTL" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "Sınıf" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "Öncelik" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "Ağırlık" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "Bağlantı noktası" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "Anamakine/Hedef/Değer" +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "Sunucu anamakine adı veya IP adresi" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Anamakine Adı" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "İstenmeyen İletiyi Yönet" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Etki Alanları" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, fuzzy, python-format +#| msgid "Resolve domain name: {domain}" +msgid "View domain: %(domain)s" +msgstr "Etki alanı adını çözümle: {domain}" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2654,7 +2710,7 @@ msgstr "Harici ağlar için {name} ({details}) bağlantı noktası kullanılabil msgid "Port {name} ({details}) unavailable for external networks" msgstr "Harici ağlar için {name} ({details}) bağlantı noktası kullanılamaz" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Bağlantı Noktaları" @@ -3017,9 +3073,9 @@ msgstr "Geri Bildirim Gönder" msgid "Contribute" msgstr "Katkıda Bulun" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Hakkında" @@ -3188,7 +3244,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Daha fazla bilgi edinin..." @@ -3564,7 +3620,7 @@ msgid "Web conference" msgstr "Web görüşme" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "JavaScript lisans bilgileri" @@ -3997,7 +4053,7 @@ msgstr "" "Kullanılabilir etki alan(ları)ı yok. Matrix Synapse'ı kullanabilmek için en " "az bir etki alanı yapılandırın." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4009,7 +4065,7 @@ msgstr "" "görünecek. İlk ayarlamadan sonra etki alanı adının değiştirilmesi şu anda " "desteklenmiyor." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4017,7 +4073,7 @@ msgstr "" "Herkese açık kayıt etkinleştirilirse, herhangi bir istemciden yeni " "kullanıcılar kaydedilebilir." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" @@ -4025,31 +4081,31 @@ msgstr "" "Yeni kullanıcılar, hesap kaydı sırasında doğrulama için aşağıdaki " "belirteçlerden birini kullanmak zorundadır:" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "Kayıt Belirteci" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "İzin Verilen Kullanımlar" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "Bekleyen Kayıtlar" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "Tamamlanan Kayıtlar" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "Sona Erme Zamanı" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "Sınırsız" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4523,7 +4579,7 @@ msgstr "Kullanıcı için parola sıfırlama: {username}" msgid "An error occurred during password reset: {error}." msgstr "Parola sıfırlama sırasında bir hata meydana geldi: {error}." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4531,7 +4587,7 @@ msgstr "" "Mumble, açık kaynaklı, düşük gecikmeli, şifreli, yüksek kaliteli bir sesli " "sohbet yazılımıdır." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4541,10 +4597,16 @@ msgstr "" "bağlanabilirsiniz. Masaüstünüzden ve mobil cihazlarınızdan Mumble'a " "bağlanmak için istemciler mevcuttur." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Mumble server is running" +msgid "Mumble server is configured" +msgstr "Mumble sunucusu çalışmaktadır" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "Süper Kullanıcı Parolası Ayarlayın" @@ -4691,10 +4753,6 @@ msgstr "" "etiketin uzunluğu 63 karakter veya daha az olmak zorundadır. Etki alanı " "adının toplam uzunluğu 253 karakter veya daha az olmak zorundadır." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Etki Alanları" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "DNS Çözünürlüğü" @@ -5285,7 +5343,7 @@ msgstr "Bağlantıyı düzenle" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Düzenle" @@ -5338,7 +5396,7 @@ msgstr "Arayüz" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Açıklama" @@ -5416,8 +5474,8 @@ msgstr "Bu bağlantı etkin değil." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "Gizlilik" @@ -5509,7 +5567,7 @@ msgstr "Dahili" msgid "Computer" msgstr "Bilgisayar" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Bağlantıyı Düzenle" @@ -5520,7 +5578,7 @@ msgid "Error:" msgstr "Hata:" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Kapat" @@ -5617,7 +5675,7 @@ msgstr "Güncelle..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Gönder" @@ -6057,11 +6115,7 @@ msgstr "" "yöndeki proje tarafından yapılır. Güncellemeler bağımsız bir döngünün " "ardından gerçekleştirilir." -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "Bu uygulama deneyseldir." - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "Nextcloud" @@ -6261,7 +6315,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "PageKite Etki Alanı" @@ -6458,8 +6512,8 @@ msgstr "Baştan başlat" msgid "Shutdown" msgstr "Kapat" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Yeniden başlat" @@ -6501,24 +6555,34 @@ msgstr "" msgid "Shut Down Now" msgstr "Şimdi Kapat" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "Sistem genelinde gizlilik ayarlarını yönetin." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "Lütfen gizlilik ayarlarını tercihlerinize uyacak şekilde güncelleyin." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "Gizlilik ayarlarını gözden geçirin" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" "Düzenli olarak kullanılan (önerilen) uygulamaların bir listesini gönderin" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6536,11 +6600,11 @@ msgstr "" "herkese açıktır. Tor uygulaması etkinleştirilirse, ek isimsizlik için " "gönderme Tor ağı üzerinden gerçekleşir." -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "Yedek DNS sunucularının kullanılmasına izin ver" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6552,10 +6616,22 @@ msgstr "" "halka açık DNS sunucularını kullanın. Ağ bağlantısı sağlam ve güvenilirse " "çoğu durumda etkisizleştirilebilir." +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "Dış IP'yi aramak için URL" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "Kullanım raporlama" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Enable repro service" +msgid "External services" +msgstr "repro servisini etkinleştir" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "Yedek DNS" @@ -7633,40 +7709,40 @@ msgid "Delete the following snapshots permanently?" msgstr "Aşağıdaki anlık görüntüler kalıcı olarak silinsin mi?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Sayı" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Tarih" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Anlık Görüntüleri Sil" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Anlık Görüntü Oluştur" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "Geri Al" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "sonraki önyüklemede kullanılacaktır" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "kullanımda" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "#%(number)s nolu anlık görüntüye geri al" @@ -8271,27 +8347,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Tor Onion Hizmeti" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Tor Köprüsü Aktarımı" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Tor aktarma bağlantı noktası kullanılabilir" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Obfs3 taşıma kayıtlı" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Obfs4 taşıma kayıtlı" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "Onion hizmeti sürüm 3'tür" @@ -8400,7 +8476,7 @@ msgstr "Aktarım" msgid "Anonymity network" msgstr "İsim gizliliği ağı" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Onion Hizmeti" @@ -9062,12 +9138,12 @@ msgstr "Kullanıcılar" msgid "Edit user %(username)s" msgstr "%(username)s kullanıcısını düzenle" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "%(username)s Kullanıcısını Düzenleyin" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9076,18 +9152,18 @@ msgstr "" "Parolayı değiştirmek için parola " "değiştirme formunu kullanın." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Değişiklikleri Kaydet" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" "%(username)s kullanıcısı ve kullanıcının tüm dosyaları silinsin mi?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." @@ -9096,11 +9172,11 @@ msgstr "" "tüm dosyaları da kaldırır. Eğer bu dosyaları saklamak istiyorsanız, bunun " "yerine kullanıcı hesabını etkisizleştirin." -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "Kullanıcı ve dosyaları sil" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "İptal" @@ -9793,11 +9869,11 @@ msgstr "Kurulum" msgid "Service %(service_name)s is not running." msgstr "%(service_name)s hizmeti çalışmıyor." -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "Etiketler ile ara" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "Tüm etiketleri temizle" @@ -9810,35 +9886,35 @@ msgstr "" "sunucudur. Sunucu uygulamalarını kolaylıkla yüklemenizi ve yönetmenizi " "sağlayan özgür bir yazılımdır." -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Giriş" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Uygulamalar" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " Sistem" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Parolayı değiştir" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Kapat" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Oturumu kapat" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Dil seçin" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Oturum aç" @@ -10057,23 +10133,44 @@ msgstr "" "Tüm uygulama verileri ve yapılandırması kalıcı olarak kaybolacaktır. " "Uygulama tekrar yeni olarak yüklenebilir." -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "Burada" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Ayar değişmedi" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "{app_id} kaldırılmadan önce" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gujarati" +#~ msgid "In 24 hour format." +#~ msgstr "24 saat biçiminde." + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "İsteğe Bağlı Değer. Eğer {box_name} cihazınız doğrudan İnternet'e bağlı " +#~ "değilse (yani bir NAT yönlendiricisine bağlıysa), bu URL gerçek IP " +#~ "adresini belirlemek için kullanılır. URL, istemcinin geldiği IP'yi " +#~ "döndürmelidir (örnek: https://ddns.freedombox.org/ip/)." + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Posta Kutusu için Kod Adlarını Yönet" + +#~ msgid "This app is experimental." +#~ msgstr "Bu uygulama deneyseldir." + #~ msgid "File & Snippet Sharing" #~ msgstr "Dosya ve Kod Parçacığı Paylaşımı" @@ -12302,9 +12399,6 @@ msgstr "Gujarati" #~ msgid "Minetest server is not running" #~ msgstr "Minetest sunucusu çalışmamaktadır" -#~ msgid "Mumble server is running" -#~ msgstr "Mumble sunucusu çalışmaktadır" - #~ msgid "Mumble server is not running" #~ msgstr "Mumble sunucusu çalışmamaktadır" @@ -12411,10 +12505,6 @@ msgstr "Gujarati" #~ msgid "repro SIP Server" #~ msgstr "repro SIP Sunucusu" -#~| msgid "Enable Quassel core service" -#~ msgid "Enable repro service" -#~ msgstr "repro servisini etkinleştir" - #~ msgid "Enable Shaarli" #~ msgstr "Shaarli'yi Etkinleştir" diff --git a/plinth/locale/uk/LC_MESSAGES/django.po b/plinth/locale/uk/LC_MESSAGES/django.po index 033a670c5..1e2c56546 100644 --- a/plinth/locale/uk/LC_MESSAGES/django.po +++ b/plinth/locale/uk/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2024-10-21 23:16+0000\n" "Last-Translator: Ihor Hordiichuk \n" "Language-Team: Ukrainian user@host:~/path/to/repo/" @@ -451,11 +453,11 @@ msgstr "" "Шлях до нового або наявного репозиторію. Приклад: user@host:~/path/to/" "repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "пароль сервера SSH" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -463,18 +465,18 @@ msgstr "" "Пароль для сервера SSH.
Автентифікація на основі SSH-ключа поки не " "підтримується." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Віддалений репозиторій резервних копій уже існує." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Вибрати перевірений публічний ключ SSH" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Відновити" @@ -557,16 +559,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Наявний репозиторій не зашифровано." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "Сховище {box_name}" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Створити нову резервну копію" @@ -610,10 +616,9 @@ msgstr "Наявні резервні копії" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -775,111 +780,111 @@ msgstr "" msgid "Verify Host" msgstr "Перевірити власника" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Планування резервного копіювання оновлено." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Спланувати резервне копіювання" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Архів створено." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Видалити архів" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Архів видалено." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Вивантажити і відновити резервну копію" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Logged out successfully." msgid "Upload successful." msgstr "Вийшли успішно." -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Не занйдено файлу резервної копії." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Відновити з вивантаженого файлу" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Відновлені файли з резервної копії." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Нема доступних дисків для додавання репозиторію." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Створити репозиторій резервних копій" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "Додано новий віддалений SSH-репозиторій." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Створити віддалений репозиторій резервних копій" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Додано новий віддалений SSH-репозиторій." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Перевірити ключ власника SSH" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "Власника SSH вже перевірено." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "Власника SSH перевірено." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "Публічний ключ власника SSH не можливо перевірити." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Не вдалося автентифікуватися на віддаленому сервері." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Помилка встановлення зʼєднання зі сервером: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Репозиторій вилучено." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Видалити репозиторій" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Репозиторій вилучено. Резервні копії не видалено." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Не вдалося відмонтувати!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Не вдалося змонтувати" @@ -1001,7 +1006,7 @@ msgstr "Додати пароль" msgid "No passwords currently configured." msgstr "Не налаштовано жодного пароля." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1127,8 +1132,10 @@ msgstr "" msgid "Serving Domains" msgstr "Обслуговування доменів" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1158,7 +1165,7 @@ msgstr "Оновити IP-адреси і домени" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1827,7 +1834,7 @@ msgid "Test" msgstr "Тест" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Результат" @@ -1840,7 +1847,7 @@ msgstr "Тест діагностики" msgid "App {app_id} is not installed, cannot repair" msgstr "Застосунок {app_id} не встановлено, неможливо полагодити" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1851,7 +1858,7 @@ msgstr "" "кожних 24год.), то іншим може бути важко знайти Вас в Інтернеті. Це " "перешкоджатиме іншим пошук сервісів, що надаються цим {box_name}." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1869,7 +1876,7 @@ msgstr "" "новому IP, і якщо хтось з Інтернету запитає ваше DNS-ім'я, він отримає " "відповідь з вашою поточною IP-адресою." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1882,11 +1889,17 @@ msgstr "" "служби на основі URL-адреси оновлення за адресою freedns.afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Клієнт динамічної DNS" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Динамічна доменна назва" @@ -1943,91 +1956,73 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "Залишіть це поле порожнім, якщо хочете зберегти поточний пароль." #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Необов'язкове значення. Якщо ваш {box_name} не під'єднаний безпосередньо до " -"Інтернету (тобто під'єднаний до NAT-маршрутизатора), ця URL-адреса " -"використовується для визначення реальної IP-адреси. URL-адреса повинна " -"просто повертати IP-адресу, з якої приходить клієнт (наприклад: https://ddns." -"freedombox.org/ip/)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" "Імʼя користувача, яке використовуватиметься після створення облікового " "запису." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "Інша URL-адреса оновлення" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Тип сервісу" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "Адреса сервера GnuDIP" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Невірна назва сервера" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "Оновити URL" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Приймати всі SSL-сертифікати" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Використовувати основну автентифікацію HTTP" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Доменна назва" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Неправильна доменна назва" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Ім’я користувача" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Показати пароль" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "URL для пошуку публічної IP" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "Використовувати IPv6 замість IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "Це поле обовʼязкове." #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2043,37 +2038,37 @@ msgstr "" msgid "Needs public IP" msgstr "Публічний ключ сервера:" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "Стан" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "Востаннє оновлено" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "IP-адреса" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "Успішно" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "Невдало" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "Стан недоступний." @@ -2248,7 +2243,7 @@ msgstr "Відеокімната" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2259,7 +2254,7 @@ msgstr "" "виглядатиме як username@%(domain_name)s. Ви можете налаштувати свій " "домен на системній сторінці Служби імен." -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2327,14 +2322,18 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "Postfix/Dovecot" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "Мої псевдоніми ел. пошти" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "Керування псевдонімами для скриньки" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "Основний домен" @@ -2415,47 +2414,102 @@ msgstr "Створити новий псевдонім ел. пошти" msgid "Add" msgstr "Додати" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "Керування спамом" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "Записи DNS" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" "Для коректної роботи на вашому основному домені поштового сервера потрібно " "вручну додати наступні записи DNS." -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "TTL" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "Клас" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "Пріоритет" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "Вага" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "Порт" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "Хост/ціль/значення" +#: modules/email/templates/email-dns.html:50 +#, fuzzy +#| msgid "Server hostname or IP address" +msgid "Reverse DNS Records for IP Addresses" +msgstr "Назва хоста сервера або IP-адреса" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Назва компʼютера" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "Керування спамом" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "Домени" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2732,7 +2786,7 @@ msgstr "Порт {name} ({details}) доступний для зовнішніх msgid "Port {name} ({details}) unavailable for external networks" msgstr "Порт {name} ({details}) недоступний для зовнішніх мереж" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "Порти" @@ -3085,9 +3139,9 @@ msgstr "Надіслати відгук" msgid "Contribute" msgstr "Співпрацювати" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "Про FreedomBox" @@ -3262,7 +3316,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "Дізнатися більше..." @@ -3646,7 +3700,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "Інформація про ліцензію JavaScript" @@ -4105,7 +4159,7 @@ msgstr "" "Нема доступних доменів. Налаштувати " "щонайменше один домен для використання Matrix Synapse." -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -4117,7 +4171,7 @@ msgstr "" "%(domain_name)s. Зміна доменного імені після початкового налаштування " "наразі не підтримується." -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." @@ -4125,7 +4179,7 @@ msgstr "" "Нові користувачі можуть реєструватися з будь-якого клієнта, якщо дозволена " "публічна реєстрація." -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" @@ -4133,31 +4187,31 @@ msgstr "" "Нові користувачі повинні використовувати один з таких токенів для " "верифікації під час реєстрації облікового запису:" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "Реєстраційний токен" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "Використання дозволено" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "Реєстрації в черзі" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "Завершені реєстрації" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "Термін дії" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "Необмежено" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4649,7 +4703,7 @@ msgstr "Некоректне імʼя користувача: {username}" msgid "An error occurred during password reset: {error}." msgstr "Під час скидання пароля сталася помилка: {error}." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." @@ -4657,7 +4711,7 @@ msgstr "" "Mumble — це високоякісне ПЗ для голосового чату з відкритим кодом, низькою " "затримкою і шифруванням." -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4667,10 +4721,14 @@ msgstr "" "Доступні клієнти для під'єднання до " "Mumble зі стаціонарного комп'ютера та мобільних пристроїв." -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "Mumble" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "Задати пароль суперкористувача" @@ -4817,10 +4875,6 @@ msgstr "" "кожної мітки не повинна перевищувати 63 знаки. Загальна довжина доменної " "назви не повинна перевищувати 253 знаки." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "Домени" - #: modules/names/manifest.py:13 #, fuzzy #| msgid "Evolution" @@ -5428,7 +5482,7 @@ msgstr "Змінити зʼєднання" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "Зміни" @@ -5481,7 +5535,7 @@ msgstr "Інтерфейс" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "Опис" @@ -5559,8 +5613,8 @@ msgstr "Це зʼєднання неактивне." #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "Приватність" @@ -5653,7 +5707,7 @@ msgstr "Внутрішня" msgid "Computer" msgstr "Компʼютер" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "Змінити зʼєднання" @@ -5666,7 +5720,7 @@ msgid "Error:" msgstr "Помилка" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "Закрити" @@ -5769,7 +5823,7 @@ msgstr "Оновити..." #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Надіслати" @@ -6213,11 +6267,7 @@ msgstr "" "перевірки здійснюються проєктом, а не Debian/{box_name}. Оновлення " "виконуються за незалежним циклом." -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "Це експериментальний застосунок." - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "Nextcloud" @@ -6425,7 +6475,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "Домен PageKite" @@ -6630,8 +6680,8 @@ msgstr "" msgid "Shutdown" msgstr "Вимкнути" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "Перезапустити" @@ -6673,25 +6723,35 @@ msgstr "" msgid "Shut Down Now" msgstr "Вимкнути зараз" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "Керування загальносистемними налаштуваннями приватності." -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" "Будь ласка, оновіть налаштування приватності відповідно до ваших уподобань." -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "Переогляд налаштувань приватності" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" "Періодично подавати перелік застосунків, що використовуються (пропонуються)" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6709,11 +6769,11 @@ msgstr "" "org. Передача відбувається через мережу Tor для додаткової анонімності, " "якщо у вас увімкнено програму Tor." -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6721,10 +6781,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "URL для пошуку публічної IP" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Onion Service" +msgid "External services" +msgstr "Сервіс Onion" + #: modules/privacy/manifest.py:10 #, fuzzy #| msgid "DNS Server" @@ -7840,40 +7912,40 @@ msgid "Delete the following snapshots permanently?" msgstr "Видалити наступні зрізи назавжди?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "Номер" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "Дата" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "Видалити зріз" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "Створити зріз" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "Відкат" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "використовуватиметься після наступного завантаження" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "використовується" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "Відкотити до зрізу #%(number)s" @@ -8470,27 +8542,27 @@ msgstr "" msgid "Tor" msgstr "Tor" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Сервіс Tor Onion" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Ретранслятор Tor типу міст" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Доступний порт ретрансляції Tor" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "Зареєстровано транспорт Obfs3" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "Зареєстровано транспорт Obfs4" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "Служба Onion версії 3" @@ -8602,7 +8674,7 @@ msgstr "" msgid "Anonymity network" msgstr "Мережа анонімності" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "Сервіс Onion" @@ -9266,12 +9338,12 @@ msgstr "Користувачі" msgid "Edit user %(username)s" msgstr "Зміни користувача %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "Зміни користувача %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " @@ -9280,30 +9352,30 @@ msgstr "" "Щоб змінити пароль використовуйте форму " "зміни пароля." -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "Зберегти зміни" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, fuzzy, python-format #| msgid "Delete user %(username)s permanently?" msgid "Delete user %(username)s and all the user's files?" msgstr "Видалити користувача %(username)s назавжди?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "Видалити файли" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "Скасувати" @@ -10003,13 +10075,13 @@ msgstr "Встановлення" msgid "Service %(service_name)s is not running." msgstr "Сервіс %(service_name)s не запущено." -#: templates/apps.html:29 +#: templates/apps.html:33 #, fuzzy #| msgid "Search the web" msgid "Search with tags" msgstr "Пошук в Інтернеті" -#: templates/apps.html:42 +#: templates/apps.html:46 #, fuzzy #| msgid "Search the web" msgid "Clear all tags" @@ -10024,35 +10096,35 @@ msgstr "" "конфіденційності та володіння даними. Це безплатне програмне забезпечення, " "яке дозволяє легко встановлювати та керувати серверними програмами." -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " Домівка" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " Застосунки" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " Система" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "Змінити пароль" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "Вимкнути" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "Вийти" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "Вибрати мову" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "Увійти" @@ -10272,23 +10344,45 @@ msgstr "" "Усі дані програми та налаштування буде втрачено назавжди. Застосунок можна " "встановити начисто ще раз." -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "Налаштування не змінено" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "перед видаленням {app_id}" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "Gujarati" +#~ msgid "In 24 hour format." +#~ msgstr "У форматі 24-години." + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Необов'язкове значення. Якщо ваш {box_name} не під'єднаний безпосередньо " +#~ "до Інтернету (тобто під'єднаний до NAT-маршрутизатора), ця URL-адреса " +#~ "використовується для визначення реальної IP-адреси. URL-адреса повинна " +#~ "просто повертати IP-адресу, з якої приходить клієнт (наприклад: https://" +#~ "ddns.freedombox.org/ip/)." + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Керування псевдонімами для скриньки" + +#~ msgid "This app is experimental." +#~ msgstr "Це експериментальний застосунок." + #~ msgid "File & Snippet Sharing" #~ msgstr "Обмін файлами і фрагментами коду" diff --git a/plinth/locale/vi/LC_MESSAGES/django.po b/plinth/locale/vi/LC_MESSAGES/django.po index cddb76b86..240c066d3 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2021-07-28 08:34+0000\n" "Last-Translator: bruh \n" "Language-Team: Vietnamese user@host:~/path/to/repo/" @@ -449,11 +451,11 @@ msgstr "" "Đường dẫn của một kho mới hoặc đang có. Ví dụ: user@host:~/path/to/repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "Mật khẩu máy chủ SSH" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." @@ -461,18 +463,18 @@ msgstr "" "Mật khẩu của máy chủ SSH.
Việc xác thực SSH dựa trên mã khoá là chưa thể " "làm được." -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "Kho sao lưu trên mạng đã tồn tại." -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "Chọn mã khoá SSH công khai đã xác minh" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "Khôi phục" @@ -552,16 +554,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "Kho đang tồn tại không được mã hoá." -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "Kho lưu trữ {box_name}" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "Tạo một bản sao lưu mới" @@ -605,10 +611,9 @@ msgstr "Bản sao lưu đang tồn tại" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -778,111 +783,111 @@ msgstr "" msgid "Verify Host" msgstr "Xác minh máy chủ" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "Đã cập nhật lịch trình sao lưu." -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "Lên lịch sao lưu" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "Đã tạo tệp." -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "Xoá tệp" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "Đã xoá tệp." -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "Tải lên và khôi phục một bản sao lưu" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Upload file" msgid "Upload successful." msgstr "Tải tệp lên" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "Không tìm thấy tệp sao lưu nào." -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "Khôi phục từ tệp đã tải lên" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "Đã khôi phục các tệp từ bản sao lưu." -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "Không có ổ đĩa bổ sung nào có sẵn để thêm một kho." -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "Tạo kho sao lưu" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "Đã thêm kho SSH trên mạng mới." -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "Tạo kho sao lưu trên mạng" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "Đã thêm kho SSH trên mạng mới." -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "Xác minh mã khoá máy chủ SSH" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "Máy chủ SSH đã được xác minh rồi." -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "Đã xác minh máy chủ SSH." -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "Mã khoá công khai của máy chủ SSH không thể được xác minh." -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "Xác thực đến máy chủ trên mạng thất bại." -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "Lỗi khi lập kết nối đến máy chủ: {}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "Đã xoá kho." -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "Xoá kho" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "Đã xoá kho. Các bản sao lưu đã không bị xoá." -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "Bỏ gắn thất bại!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "Gắn thất bại" @@ -1007,7 +1012,7 @@ msgstr "Thêm mật khẩu" msgid "No passwords currently configured." msgstr "Không có mật khẩu nào hiện được thiết lập." -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1135,8 +1140,10 @@ msgstr "" msgid "Serving Domains" msgstr "Miền phục vụ" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1166,7 +1173,7 @@ msgstr "Làm mới địa chỉ IP và các miền" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1832,7 +1839,7 @@ msgid "Test" msgstr "Kiểm tra" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "Kết quả" @@ -1845,7 +1852,7 @@ msgstr "Kiểm tra chẩn đoán" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1856,7 +1863,7 @@ msgstr "" "24h), những người khác có thể khó tìm bạn trên Internet. Việc này sẽ ngăn " "những người khác tìm các dịch vụ được {box_name} này cung cấp." -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1873,7 +1880,7 @@ msgstr "" "phân tên DNS của bạn cho IP mới, và nếu ai đó từ Internet hỏi tên DNS của " "bạn, họ sẽ nhận một phản hồi với địa chỉ IP hiện tại của bạn." -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 #, fuzzy #| msgid "" #| "If you are looking for a free dynamic DNS account, you may find a free " @@ -1893,11 +1900,17 @@ msgstr "" "vụ miễn phí dựa trên URL cập nhật tại freedns.afraid.org." -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "Ứng dụng khách DNS động" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "Tên miền động" @@ -1952,95 +1965,73 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "Bỏ trống ô này nếu bạn muốn giữ mật khẩu hiện tại." #: 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)." -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: https://ddns.freedombox.org/ip/)." -msgstr "" -"Giá trị không bắt buộc. Nếu {box_name} của bạn không được kết nối trực tiếp " -"đến Internet (vd: được kết nối đến một router NAT) URL này được sử dụng để " -"xác định địa chỉ IP thật. URL này nên chỉ đơn giản là trả về địa chỉ IP nơi " -"mà máy khách đến từ đó (vd: http://myip.datasystems24.de)." - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "Tên người dùng được sử dụng khi tài khoản được tạo." -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 #, fuzzy #| msgid "other update URL" msgid "Other update URL" msgstr "URL cập nhật khác" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "Loại dịch vụ" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "Địa chỉ máy chủ GnuDIP" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "Tên máy chủ không hợp lệ" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "URL cập nhật" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "Chấp nhận tất cả chứng chỉ SSL" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "Sử dụng xác thực HTTP cơ bản" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "Tên miền" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "Tên miền không hợp lệ" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "Tên người dùng" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "Hiện mật khẩu" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "URL để tra cứu IP công khai" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "Sử dụng IPv6 thay vì IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -2054,43 +2045,43 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "IP addresses" msgid "IP Address" msgstr "Địa chỉ IP" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 #, fuzzy #| msgid "Access" msgid "Success" msgstr "Truy cập" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 #, fuzzy #| msgid "failed" msgid "Failed" msgstr "đã trượt" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 #, fuzzy #| msgid "No libraries available." msgid "No status available." @@ -2246,7 +2237,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2254,7 +2245,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2302,18 +2293,20 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 #, fuzzy #| msgid "Manage Libraries" msgid "My Email Aliases" msgstr "Quản lý thư viện" -#: modules/email/__init__.py:84 -#, fuzzy -#| msgid "Manage Libraries" -msgid "Manage Aliases for Mailbox" -msgstr "Quản lý thư viện" - #: modules/email/forms.py:25 #, fuzzy #| msgid "TLS domain" @@ -2400,45 +2393,94 @@ msgstr "Tạo một bản sao lưu mới" msgid "Add" msgstr "" +#: modules/email/templates/email-dns.html:9 +msgid "DNS Records for domain:" +msgstr "" + +#: modules/email/templates/email-dns.html:12 +msgid "" +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." +msgstr "" + +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 +msgid "TTL" +msgstr "" + +#: modules/email/templates/email-dns.html:24 +msgid "Class" +msgstr "" + +#: modules/email/templates/email-dns.html:26 +msgid "Priority" +msgstr "" + +#: modules/email/templates/email-dns.html:27 +msgid "Weight" +msgstr "" + +#: modules/email/templates/email-dns.html:28 +#: modules/minetest/templates/minetest.html:18 +msgid "Port" +msgstr "" + +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 +msgid "Host/Target/Value" +msgstr "" + +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "Tên máy chủ" + #: modules/email/templates/email.html:10 #, fuzzy #| msgid "Manage Libraries" msgid "Manage Spam" msgstr "Quản lý thư viện" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +#, fuzzy +#| msgid "TLS domain" +msgid "Domains" +msgstr "Miền TLS" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email.html:23 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." msgstr "" -#: modules/email/templates/email.html:36 -msgid "TTL" -msgstr "" - -#: modules/email/templates/email.html:37 -msgid "Class" -msgstr "" - -#: modules/email/templates/email.html:39 -msgid "Priority" -msgstr "" - -#: modules/email/templates/email.html:40 -msgid "Weight" -msgstr "" - -#: modules/email/templates/email.html:41 -#: modules/minetest/templates/minetest.html:18 -msgid "Port" -msgstr "" - -#: modules/email/templates/email.html:42 -msgid "Host/Target/Value" +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" msgstr "" #: modules/featherwiki/__init__.py:25 @@ -2708,7 +2750,7 @@ msgstr "" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -3035,9 +3077,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "" @@ -3172,7 +3214,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3496,7 +3538,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3874,7 +3916,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3882,49 +3924,49 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 #, fuzzy #| msgid "User registrations enabled" msgid "Registration Token" msgstr "Đăng ký người dùng đã bật" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Server Administration" msgid "Pending Registrations" msgstr "Quản trị máy chủ" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 #, fuzzy #| msgid "Enable new user registrations" msgid "Completed Registrations" msgstr "Bật đăng ký người dùng mới" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4361,23 +4403,27 @@ msgstr "Tên người dùng không hợp lệ: {username}" msgid "An error occurred during password reset: {error}." msgstr "Đã xảy ra lỗi trong khi thiết lập." -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4514,12 +4560,6 @@ msgstr "" "63 ký tự hoặc ít hơn. Tổng độ dài của tên miền phải là 253 ký tự hoặc ít " "hơn." -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -#, fuzzy -#| msgid "TLS domain" -msgid "Domains" -msgstr "Miền TLS" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -5028,7 +5068,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -5081,7 +5121,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -5159,8 +5199,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -5244,7 +5284,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -5257,7 +5297,7 @@ msgid "Error:" msgstr "lỗi" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5349,7 +5389,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "Gửi đi" @@ -5743,11 +5783,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5921,7 +5957,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -6100,8 +6136,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -6137,23 +6173,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6164,11 +6210,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6176,10 +6222,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "URL để tra cứu IP công khai" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Domain Name Server" +msgid "External services" +msgstr "Máy chủ tên miền" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -7102,40 +7160,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7673,27 +7731,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7783,7 +7841,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -8363,41 +8421,41 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "Xoá tệp" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -9034,11 +9092,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -9048,35 +9106,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -9285,23 +9343,48 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" +#~ msgid "In 24 hour format." +#~ msgstr "Ở định dạng 24 giờ." + +#, 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)." +#~ 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "Giá trị không bắt buộc. Nếu {box_name} của bạn không được kết nối trực " +#~ "tiếp đến Internet (vd: được kết nối đến một router NAT) URL này được sử " +#~ "dụng để xác định địa chỉ IP thật. URL này nên chỉ đơn giản là trả về địa " +#~ "chỉ IP nơi mà máy khách đến từ đó (vd: http://myip.datasystems24.de)." + +#, fuzzy +#~| msgid "Manage Libraries" +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "Quản lý thư viện" + #~ msgid "File & Snippet Sharing" #~ msgstr "Chia sẻ tệp & đoạn ngắn" diff --git a/plinth/locale/zh_Hans/LC_MESSAGES/django.po b/plinth/locale/zh_Hans/LC_MESSAGES/django.po index a590a1e4c..e002f07ee 100644 --- a/plinth/locale/zh_Hans/LC_MESSAGES/django.po +++ b/plinth/locale/zh_Hans/LC_MESSAGES/django.po @@ -7,10 +7,10 @@ msgid "" msgstr "" "Project-Id-Version: Plinth\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2025-01-01 08:00+0000\n" -"Last-Translator: 大王叫我来巡山 " -"\n" +"Last-Translator: 大王叫我来巡山 \n" "Language-Team: Chinese (Simplified Han script) \n" "Language: zh_Hans\n" @@ -25,7 +25,7 @@ msgstr "" msgid "Static configuration {etc_path} is setup properly" msgstr "" -#: context_processors.py:21 views.py:169 +#: context_processors.py:21 views.py:168 msgid "FreedomBox" msgstr "FreedomBox" @@ -98,32 +98,32 @@ msgstr "此 web 管理界面的语言" msgid "Use the language preference set in the browser" msgstr "使用浏览器中设置的语言首选项" -#: menu.py:112 templates/base.html:119 +#: menu.py:116 templates/base.html:121 msgid "Home" msgstr "主页" -#: menu.py:113 templates/base.html:128 +#: menu.py:117 templates/base.html:130 msgid "Apps" msgstr "应用程序" -#: menu.py:115 menu.py:122 templates/base.html:137 +#: menu.py:119 menu.py:126 templates/base.html:139 msgid "System" msgstr "系统" -#: menu.py:118 +#: menu.py:122 msgid "Visibility" msgstr "可见性" -#: menu.py:120 +#: menu.py:124 msgid "Data" msgstr "" -#: menu.py:124 modules/networks/templates/connection_show.html:274 +#: menu.py:128 modules/networks/templates/connection_show.html:274 #: modules/security/__init__.py:35 modules/upgrades/manifest.py:10 msgid "Security" msgstr "安全" -#: menu.py:126 +#: menu.py:130 msgid "Administration" msgstr "管理" @@ -222,7 +222,7 @@ msgid "Enable a Backup Schedule" msgstr "启用备份计划" #: modules/backups/__init__.py:181 modules/backups/__init__.py:228 -#: modules/privacy/__init__.py:79 modules/storage/__init__.py:326 +#: modules/privacy/__init__.py:84 modules/storage/__init__.py:326 #: modules/upgrades/__init__.py:149 #, python-brace-format msgid "Go to {app_name}" @@ -296,23 +296,25 @@ msgstr "" msgid "Hour of the day to trigger backup operation" msgstr "触发备份操作的时间" -#: modules/backups/forms.py:80 -msgid "In 24 hour format." -msgstr "24小时制。" +#: modules/backups/forms.py:81 +msgid "" +"In 24 hour format. Services may become temporarily unavailable while running " +"backup operation at this time of the day." +msgstr "" -#: modules/backups/forms.py:83 modules/backups/forms.py:105 +#: modules/backups/forms.py:85 modules/backups/forms.py:107 msgid "Included apps" msgstr "包括的应用" -#: modules/backups/forms.py:83 modules/backups/forms.py:105 +#: modules/backups/forms.py:85 modules/backups/forms.py:107 msgid "Apps to include in the backup" msgstr "包括于备份中的应用" -#: modules/backups/forms.py:99 +#: modules/backups/forms.py:101 msgid "Repository" msgstr "存储库" -#: modules/backups/forms.py:101 +#: modules/backups/forms.py:103 #: modules/backups/templates/backups_delete.html:17 modules/ikiwiki/forms.py:15 #: modules/networks/templates/connection_show.html:75 #: modules/samba/templates/samba.html:66 @@ -320,23 +322,23 @@ msgstr "存储库" msgid "Name" msgstr "名称" -#: modules/backups/forms.py:102 +#: modules/backups/forms.py:104 msgid "(Optional) Set a name for this backup archive" msgstr "(可选)为此备份档案设置名称" -#: modules/backups/forms.py:123 +#: modules/backups/forms.py:125 msgid "Select the apps you want to restore" msgstr "选择您想恢复的应用" -#: modules/backups/forms.py:139 modules/kiwix/forms.py:21 +#: modules/backups/forms.py:141 modules/kiwix/forms.py:21 msgid "Upload File" msgstr "上传文件" -#: modules/backups/forms.py:141 +#: modules/backups/forms.py:143 msgid "Backup files have to be in .tar.gz format" msgstr "备份文件必须为 .tar.gz 格式" -#: modules/backups/forms.py:143 +#: modules/backups/forms.py:145 #, python-brace-format msgid "" "Select the backup file to upload from the local computer. This must be a " @@ -344,109 +346,109 @@ msgid "" "{box_name}. It must have a .tar.gz extension." msgstr "" -#: modules/backups/forms.py:152 +#: modules/backups/forms.py:154 msgid "Repository path format incorrect." msgstr "存储库路径格式错误。" -#: modules/backups/forms.py:159 +#: modules/backups/forms.py:161 #, python-brace-format msgid "Invalid username: {username}" msgstr "无效用户名:{username}" -#: modules/backups/forms.py:169 +#: modules/backups/forms.py:171 #, python-brace-format msgid "Invalid hostname: {hostname}" msgstr "无效的主机名:{hostname}" -#: modules/backups/forms.py:173 +#: modules/backups/forms.py:175 #, python-brace-format msgid "Invalid directory path: {dir_path}" msgstr "无效的目录路径:{dir_path}" -#: modules/backups/forms.py:179 modules/letsencrypt/manifest.py:11 +#: modules/backups/forms.py:181 modules/letsencrypt/manifest.py:11 msgid "Encryption" msgstr "加密" -#: modules/backups/forms.py:180 +#: modules/backups/forms.py:182 msgid "" "\"Key in Repository\" means that a password-protected key is stored with the " "backup." msgstr "\"存储库中的密钥\"表示受密码保护的密钥与备份一起存储。" -#: modules/backups/forms.py:182 +#: modules/backups/forms.py:184 msgid "Key in Repository" msgstr "存储库中的密钥" -#: modules/backups/forms.py:182 -#: modules/matrixsynapse/templates/matrix-synapse.html:62 +#: modules/backups/forms.py:184 +#: modules/matrixsynapse/templates/matrix-synapse.html:67 #: modules/searx/forms.py:14 msgid "None" msgstr "空" -#: modules/backups/forms.py:184 modules/networks/forms.py:340 +#: modules/backups/forms.py:186 modules/networks/forms.py:340 msgid "Passphrase" msgstr "密码" -#: modules/backups/forms.py:185 +#: modules/backups/forms.py:187 msgid "Passphrase; Only needed when using encryption." msgstr "密码;只在用加密时需要。" -#: modules/backups/forms.py:188 +#: modules/backups/forms.py:190 msgid "Confirm Passphrase" msgstr "确认密码" -#: modules/backups/forms.py:188 +#: modules/backups/forms.py:190 msgid "Repeat the passphrase." msgstr "重复密码。" -#: modules/backups/forms.py:199 +#: modules/backups/forms.py:201 msgid "The entered encryption passphrases do not match" msgstr "输入的加密密码不匹配" -#: modules/backups/forms.py:203 +#: modules/backups/forms.py:205 msgid "Passphrase is needed for encryption." msgstr "加密需要使用密码。" -#: modules/backups/forms.py:238 +#: modules/backups/forms.py:240 msgid "Select Disk or Partition" msgstr "选择磁盘或分区" -#: modules/backups/forms.py:239 +#: modules/backups/forms.py:241 msgid "Backups will be stored in the directory FreedomBoxBackups" msgstr "备份将存储在FreedomBoxBackups目录中" -#: modules/backups/forms.py:248 +#: modules/backups/forms.py:250 msgid "SSH Repository Path" msgstr "SSH 存储库路径" -#: modules/backups/forms.py:249 +#: modules/backups/forms.py:251 msgid "" "Path of a new or existing repository. Example: user@host:~/path/to/repo/" msgstr "新的或已有存储库的路径。例如:user@host:~/path/to/repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "SSH 服务器密码" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "SSH 服务器的密码。
基于 SSH 密钥的身份验证尚不可能。" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "远程备份存储库已存在。" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "选择经过验证的 SSH 公钥" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "恢复" @@ -516,16 +518,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "现有存储库未加密。" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "{box_name} 存储" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "创建新备份" @@ -569,10 +575,9 @@ msgstr "现有的备份" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -726,107 +731,107 @@ msgstr "" msgid "Verify Host" msgstr "核实本地计算机" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "备份计划已更新。" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "计划备份" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "文档已创建。" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "删除文档" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "归档已删除。" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "上传并且储存一个备份" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 msgid "Upload successful." msgstr "上传成功。" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "没有找到备份文件。" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "从已上传的文件中恢复" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "从备份中恢复了文件。" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "没有可增加到信息库的额外可用磁盘。" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "创建备份存储库" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 msgid "Added new repository." msgstr "添加新存储库。" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "创建远程备份存储库" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "已添加新的远程 SSH 存储库。" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "验证 SSH hostkey" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "SSH 主机已经验证过了。" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH 主机已验证。" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "SSH 主机的公钥无法被验证。" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "远程服务器认证失败。" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "启用到服务器的连接时错误:{}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "储存库被移除。" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "移除存储" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "存储库被删除,备份并没有被删除。" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "卸载失败!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "安装失败" @@ -942,7 +947,7 @@ msgstr "添加密码" msgid "No passwords currently configured." msgstr "目前没有配置密码。" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1064,8 +1069,10 @@ msgstr "" msgid "Serving Domains" msgstr "服务域" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1095,7 +1102,7 @@ msgstr "刷新 IP 地址和域" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1703,7 +1710,7 @@ msgid "Test" msgstr "测试" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "结果" @@ -1716,7 +1723,7 @@ msgstr "诊断测试" msgid "App {app_id} is not installed, cannot repair" msgstr "" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1726,7 +1733,7 @@ msgstr "" "如果您的互联网提供商定期(例如每24小时)更改您的IP地址,其他人可能很难在互联" "网上找到您。这会阻止其他人找到由此 {box_name} 提供的服务。" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1742,7 +1749,7 @@ msgstr "" "器会将您的 DNS 名称分配给新的 IP,如果互联网上的某人要求您的 DNS 名称,他们将" "从您当前 IP 地址收到响应。" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1754,11 +1761,17 @@ msgstr "" "服务,或您可以在freedns.afraid.org 找到免费更新网址服务。" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "动态 DNS 客户端" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "动态域名" @@ -1808,87 +1821,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "如果你想保持你的当前密码,请将此字段留空。" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" -"可选的值。如果您的 {box_name} 未直接连接到互联网(即连接到 NAT 路由器),则" -"此 URL 用于确定真实的IP地址。URL应该简单地返回客户端来自的 IP (例如:" -"https://ddns.freedombox.org/ip/)。" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "创建账户时使用的用户名。" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "GnuDIP" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "其他更新 URL" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "服务类型" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "GnuDIP 服务器地址" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "服务器名称无效" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "更新 URL" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "接受所有 SSL 证书" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "使用 HTTP 基本身份验证" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "域名" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "无效的域名" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "用户名" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "显示密码" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "查寻公开 IP 的 URL" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "使用IPv6而不是IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1902,37 +1899,37 @@ msgstr "" msgid "Needs public IP" msgstr "需要公共 IP" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "状态" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "最后一次更新" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 msgid "IP Address" msgstr "IP 地址" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 msgid "Success" msgstr "成功" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "失败" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 msgid "No status available." msgstr "无状态可用。" @@ -2093,7 +2090,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2104,7 +2101,7 @@ msgstr "" "username@%(domain_name)s。 你可以在系统名称" "服务器 页面设置你的域名。" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2154,14 +2151,18 @@ msgstr "" msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "我的邮箱别名" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "管理邮箱别名" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "主域名" @@ -2238,45 +2239,94 @@ msgstr "创建新的电子邮件别名" msgid "Add" msgstr "添加" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "管理垃圾邮件" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "Server domain" +msgid "DNS Records for domain:" +msgstr "服务器域" -#: modules/email/templates/email.html:22 -msgid "DNS Records" -msgstr "" - -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "端口" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "主机名" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "管理垃圾邮件" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +msgid "Domains" +msgstr "域名" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2521,7 +2571,7 @@ msgstr "外网端口 {name}({details})可用" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "端口" @@ -2850,9 +2900,9 @@ msgstr "" msgid "Contribute" msgstr "贡献" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "关于" @@ -2996,7 +3046,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "了解更多……" @@ -3336,7 +3386,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3708,7 +3758,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3718,43 +3768,43 @@ msgstr "" "Matrix 服务器域名已设置为 %(domain_name)s 。用户 ID 看起来像是这样 " "@username:%(domain_name)s。尚不支持在初始设置后更改域名。" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "注册令牌" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Pending Registrations" msgstr "待完成的注册" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "已完成的注册" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4166,13 +4216,13 @@ msgstr "已重置以下用户的密码:{username}" msgid "An error occurred during password reset: {error}." msgstr "密码重置过程中出错:{error}。" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "Mumble 是一个开放源码的低延迟、 加密、 高品质语音聊天软件。" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " @@ -4181,10 +4231,16 @@ msgstr "" "您可以使用常规端口 64738 连接到您的 Mumble 服务器。您可以从桌面和移动设备连" "接 Mumble 客户端。" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +#, fuzzy +#| msgid "Mumble server is running" +msgid "Mumble server is configured" +msgstr "Mumble 服务器正在运行" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "设置超级用户密码" @@ -4316,10 +4372,6 @@ msgstr "" "为内部字符。每个标签的长度必须为 63 个字符或更少。域名总长度不得超过 253 个字" "符。" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -msgid "Domains" -msgstr "域名" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4826,7 +4878,7 @@ msgstr "编辑连接" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "編輯" @@ -4879,7 +4931,7 @@ msgstr "接口" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "描述" @@ -4957,8 +5009,8 @@ msgstr "此连接未处于激活状态。" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "隐私" @@ -5046,7 +5098,7 @@ msgstr "内网" msgid "Computer" msgstr "计算机" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "编辑连接" @@ -5057,7 +5109,7 @@ msgid "Error:" msgstr "错误:" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5149,7 +5201,7 @@ msgstr "更新…" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "提交" @@ -5543,11 +5595,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5726,7 +5774,7 @@ msgstr "" msgid "PageKite" msgstr "PageKite" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "PageKite 域名" @@ -5911,8 +5959,8 @@ msgstr "" msgid "Shutdown" msgstr "关闭" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "重新启动" @@ -5949,23 +5997,33 @@ msgstr "你确定要关闭? 关闭以后将不能访问此 web 界面。" msgid "Shut Down Now" msgstr "现在关闭" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -5976,11 +6034,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -5988,10 +6046,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "查寻公开 IP 的 URL" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Enable repro service" +msgid "External services" +msgstr "启用 repro 服务" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "备选 DNS" @@ -6932,40 +7002,40 @@ msgid "Delete the following snapshots permanently?" msgstr "永久删除以下快照?" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "编号" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "日期" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "删除快照" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "创建快照" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "回滚" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "回滚到快照 #%(number)s" @@ -7506,27 +7576,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "Tor 洋葱服务" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "Tor 网桥中继" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "Tor 中继端口可用" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "已注册 Obfs3 传输" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "已注册 Obfs4 传输" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "Onion 服务版本为 3" @@ -7622,7 +7692,7 @@ msgstr "网桥" msgid "Anonymity network" msgstr "匿名网络" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "洋葱服务" @@ -8200,39 +8270,39 @@ msgstr "用户" msgid "Edit user %(username)s" msgstr "编辑用户 %(username)s" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "编辑用户 %(username)s" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "使用 更改密码表单 更改密码。" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "保存更改" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "删除用户 %(username)s 及该用户所有文件?" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 msgid "Delete user and files" msgstr "删除用户和文件" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "取消" @@ -8862,11 +8932,11 @@ msgstr "安装" msgid "Service %(service_name)s is not running." msgstr "服务 %(service_name)s 未在运行。" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8876,35 +8946,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr " 主页" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr " 应用程序" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr " 系统" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "更改密码" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "关闭" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "登出" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "选择语言" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "登录" @@ -9107,23 +9177,40 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "设置未改变" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "古吉拉特语" +#~ msgid "In 24 hour format." +#~ msgstr "24小时制。" + +#, 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: https://ddns.freedombox.org/ip/)." +#~ msgstr "" +#~ "可选的值。如果您的 {box_name} 未直接连接到互联网(即连接到 NAT 路由器)," +#~ "则此 URL 用于确定真实的IP地址。URL应该简单地返回客户端来自的 IP (例如:" +#~ "https://ddns.freedombox.org/ip/)。" + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "管理邮箱别名" + #~ msgid "File & Snippet Sharing" #~ msgstr "文件和片段共享" @@ -10656,9 +10743,6 @@ msgstr "古吉拉特语" #~ msgid "Minetest server is not running" #~ msgstr "Minetest 服务器未运行" -#~ msgid "Mumble server is running" -#~ msgstr "Mumble 服务器正在运行" - #~ msgid "Mumble server is not running" #~ msgstr "Mumble 服务器未运行" @@ -10758,9 +10842,6 @@ msgstr "古吉拉特语" #~ msgid "repro SIP Server" #~ msgstr "repro SIP 服务器" -#~ msgid "Enable repro service" -#~ msgstr "启用 repro 服务" - #~ msgid "Tor Control Panel" #~ msgstr "Tor 控制面板" diff --git a/plinth/locale/zh_Hant/LC_MESSAGES/django.po b/plinth/locale/zh_Hant/LC_MESSAGES/django.po index ec5fee33c..b297143e1 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: 2024-12-30 20:05-0500\n" +"POT-Creation-Date: 2025-01-13 20:33-0500\n" "PO-Revision-Date: 2024-07-26 08:09+0000\n" "Last-Translator: Ricky From Hong Kong \n" "Language-Team: Chinese (Traditional) user@host:~/path/to/repo/" msgstr "新的或現有的儲存庫路徑。例如:user@host:~/path/to/repo/" -#: modules/backups/forms.py:253 +#: modules/backups/forms.py:255 msgid "SSH server password" msgstr "SSH 伺服器密碼" -#: modules/backups/forms.py:254 +#: modules/backups/forms.py:256 msgid "" "Password of the SSH Server.
SSH key-based authentication is not yet " "possible." msgstr "SSH 伺服器的密碼。
採金鑰的 SSH 認證機制目前無法使用。" -#: modules/backups/forms.py:273 +#: modules/backups/forms.py:275 msgid "Remote backup repository already exists." msgstr "異地備份儲存庫已存在。" -#: modules/backups/forms.py:279 +#: modules/backups/forms.py:281 msgid "Select verified SSH public key" msgstr "選擇已認證的 SSH 公鑰" #: modules/backups/manifest.py:14 #: modules/backups/templates/backups_repository.html:92 #: modules/backups/templates/backups_restore.html:27 -#: modules/backups/views.py:240 modules/snapshot/manifest.py:14 +#: modules/backups/views.py:238 modules/snapshot/manifest.py:14 #: templates/toolbar.html:44 templates/toolbar.html:45 msgid "Restore" msgstr "備份還原" @@ -528,16 +530,20 @@ msgstr "" msgid "Backup system is busy with another operation." msgstr "" +#: modules/backups/privileged.py:92 +msgid "Not enough space left on the disk or remote location." +msgstr "" + #: modules/backups/repository.py:94 msgid "Existing repository is not encrypted." msgstr "現有儲存庫未加密。" -#: modules/backups/repository.py:266 +#: modules/backups/repository.py:289 #, python-brace-format msgid "{box_name} storage" msgstr "{box_name} 儲存空間" -#: modules/backups/templates/backups.html:17 modules/backups/views.py:125 +#: modules/backups/templates/backups.html:17 modules/backups/views.py:124 msgid "Create a new backup" msgstr "建立一個新的備份檔" @@ -581,10 +587,9 @@ msgstr "現有的備份檔" #: modules/help/templates/statuslog.html:24 #: modules/kiwix/templates/kiwix-add-package.html:26 #: modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:28 -#: modules/matrixsynapse/templates/matrix-synapse.html:76 +#: modules/matrixsynapse/templates/matrix-synapse.html:81 #: modules/names/templates/names.html:128 #: modules/networks/templates/connection_show.html:24 -#: modules/nextcloud/__init__.py:48 #: modules/pagekite/templates/pagekite_custom_services.html:16 #: modules/power/templates/power_busy_warning.html:11 #: modules/snapshot/templates/snapshot_not_supported.html:13 @@ -741,111 +746,111 @@ msgstr "" msgid "Verify Host" msgstr "校驗主機" -#: modules/backups/views.py:69 +#: modules/backups/views.py:68 msgid "Backup schedule updated." msgstr "備份排程已更新。" -#: modules/backups/views.py:88 +#: modules/backups/views.py:87 msgid "Schedule Backups" msgstr "排程備份" -#: modules/backups/views.py:150 +#: modules/backups/views.py:148 msgid "Archive created." msgstr "封存已建立。" -#: modules/backups/views.py:162 +#: modules/backups/views.py:160 msgid "Delete Archive" msgstr "刪除封存" -#: modules/backups/views.py:175 +#: modules/backups/views.py:173 msgid "Archive deleted." msgstr "封存已刪除。" -#: modules/backups/views.py:189 +#: modules/backups/views.py:187 msgid "Upload and restore a backup" msgstr "上傳和恢復備份檔" -#: modules/backups/views.py:218 +#: modules/backups/views.py:216 #, fuzzy #| msgid "Upload file" msgid "Upload successful." msgstr "上傳檔案" -#: modules/backups/views.py:256 +#: modules/backups/views.py:254 msgid "No backup file found." msgstr "沒有找到備份檔。" -#: modules/backups/views.py:264 +#: modules/backups/views.py:262 msgid "Restore from uploaded file" msgstr "從上傳的檔案中恢復" -#: modules/backups/views.py:278 modules/backups/views.py:299 +#: modules/backups/views.py:276 modules/backups/views.py:297 msgid "Restored files from backup." msgstr "從備份中恢復檔案。" -#: modules/backups/views.py:329 +#: modules/backups/views.py:327 msgid "No additional disks available to add a repository." msgstr "無多餘的磁碟可取得用以新增資料庫。" -#: modules/backups/views.py:337 +#: modules/backups/views.py:335 msgid "Create backup repository" msgstr "建立備份資料庫" -#: modules/backups/views.py:352 +#: modules/backups/views.py:350 #, fuzzy #| msgid "Added new remote SSH repository." msgid "Added new repository." msgstr "新增遠端 SSH 資料庫。" -#: modules/backups/views.py:366 +#: modules/backups/views.py:364 msgid "Create remote backup repository" msgstr "建立遠端備份資料庫" -#: modules/backups/views.py:388 +#: modules/backups/views.py:386 msgid "Added new remote SSH repository." msgstr "新增遠端 SSH 資料庫。" -#: modules/backups/views.py:410 +#: modules/backups/views.py:408 msgid "Verify SSH hostkey" msgstr "校驗 SSH 主機密鑰" -#: modules/backups/views.py:436 +#: modules/backups/views.py:434 msgid "SSH host already verified." msgstr "SSH 主機已驗證。" -#: modules/backups/views.py:447 +#: modules/backups/views.py:445 msgid "SSH host verified." msgstr "SSH 主機較驗成功。" -#: modules/backups/views.py:463 +#: modules/backups/views.py:461 msgid "SSH host public key could not be verified." msgstr "SSH 主機公鑰無法被校驗。" -#: modules/backups/views.py:465 +#: modules/backups/views.py:463 msgid "Authentication to remote server failed." msgstr "俺端主機認證失敗。" -#: modules/backups/views.py:467 +#: modules/backups/views.py:465 msgid "Error establishing connection to server: {}" msgstr "建立連絡到伺服器時發生錯誤︰{}" -#: modules/backups/views.py:478 +#: modules/backups/views.py:476 msgid "Repository removed." msgstr "資料庫已移除。" -#: modules/backups/views.py:492 +#: modules/backups/views.py:490 msgid "Remove Repository" msgstr "移除資料庫" -#: modules/backups/views.py:502 +#: modules/backups/views.py:500 msgid "Repository removed. Backups were not deleted." msgstr "資料庫已移除。 備份並未被刪除。" -#: modules/backups/views.py:513 +#: modules/backups/views.py:511 msgid "Unmounting failed!" msgstr "取消掛載失敗!" -#: modules/backups/views.py:529 modules/backups/views.py:533 +#: modules/backups/views.py:527 modules/backups/views.py:531 msgid "Mounting failed" msgstr "掛載失敗" @@ -963,7 +968,7 @@ msgstr "新增密碼" msgid "No passwords currently configured." msgstr "目前沒有設定密碼。" -#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:91 +#: modules/bepasty/templates/bepasty.html:29 modules/dynamicdns/forms.py:83 #: modules/miniflux/forms.py:14 modules/networks/forms.py:282 #: modules/shadowsocks/forms.py:32 modules/shadowsocksserver/forms.py:37 msgid "Password" @@ -1087,8 +1092,10 @@ msgstr "" msgid "Serving Domains" msgstr "提供網域" -#: modules/bind/templates/bind.html:17 modules/email/templates/email.html:38 -#: modules/ikiwiki/forms.py:12 modules/names/templates/names.html:18 +#: modules/bind/templates/bind.html:17 +#: modules/email/templates/email-dns.html:25 +#: modules/email/templates/email-dns.html:78 modules/ikiwiki/forms.py:12 +#: modules/names/templates/names.html:18 #: modules/networks/templates/connection_show.html:95 #: modules/samba/templates/samba.html:65 #: modules/storage/templates/storage.html:26 @@ -1118,7 +1125,7 @@ msgstr "更新 IP 位址與網域名稱" #: modules/minetest/views.py:55 modules/mumble/views.py:37 #: modules/names/views.py:66 modules/names/views.py:95 #: modules/names/views.py:129 modules/pagekite/forms.py:74 -#: modules/privacy/views.py:50 modules/quassel/views.py:29 +#: modules/privacy/views.py:55 modules/quassel/views.py:29 #: modules/roundcube/views.py:32 modules/rssbridge/views.py:31 #: modules/shadowsocks/views.py:52 modules/shadowsocksserver/views.py:48 #: modules/ssh/views.py:62 modules/transmission/views.py:43 @@ -1747,7 +1754,7 @@ msgid "Test" msgstr "測試" #: modules/diagnostics/templates/diagnostics_results.html:12 -#: modules/dynamicdns/templates/dynamicdns.html:20 +#: modules/dynamicdns/templates/dynamicdns.html:25 msgid "Result" msgstr "結果" @@ -1760,7 +1767,7 @@ msgstr "診斷測試" msgid "App {app_id} is not installed, cannot repair" msgstr "應用程式{app_id}未安裝,無法修復" -#: modules/dynamicdns/__init__.py:28 +#: modules/dynamicdns/__init__.py:29 #, python-brace-format msgid "" "If your Internet provider changes your IP address periodically (i.e. every " @@ -1770,7 +1777,7 @@ msgstr "" "如果您的網路服務供應商定期更改您的 IP 地址(即每 24 小時一次),其他人可能很" "難在互聯網上找到您。這將阻止其他人找到由此 {box_name} 提供的服務。" -#: modules/dynamicdns/__init__.py:32 +#: modules/dynamicdns/__init__.py:33 msgid "" "The solution is to assign a DNS name to your IP address and update the DNS " "name every time your IP is changed by your Internet provider. Dynamic DNS " @@ -1786,7 +1793,7 @@ msgstr "" "器。之後,伺服器將將您的 DNS 名稱分配給新的 IP,如果有人從網路上詢問您的 DNS " "名稱,他們將收到包含您當前 IP 地址的回應。" -#: modules/dynamicdns/__init__.py:40 +#: modules/dynamicdns/__init__.py:41 msgid "" "If you are looking for a free dynamic DNS account, you may find a free " "GnuDIP service at ddns." @@ -1798,11 +1805,17 @@ msgstr "" "服務,或者您也可以在 freedns.afraid.org 找到基於更新 URL 的免費服務。" -#: modules/dynamicdns/__init__.py:61 +#: modules/dynamicdns/__init__.py:46 +msgid "" +"This service uses an external service to lookup public IP address. This can " +"be configured in the privacy app." +msgstr "" + +#: modules/dynamicdns/__init__.py:64 msgid "Dynamic DNS Client" msgstr "動態 DNS 客戶端" -#: modules/dynamicdns/__init__.py:75 +#: modules/dynamicdns/__init__.py:78 msgid "Dynamic Domain Name" msgstr "動態域名" @@ -1852,84 +1865,71 @@ msgid "Leave this field empty if you want to keep your current password." msgstr "" #: modules/dynamicdns/forms.py:43 -#, 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: https://ddns.freedombox.org/ip/)." -msgstr "" - -#: modules/dynamicdns/forms.py:51 msgid "The username that was used when the account was created." msgstr "" -#: modules/dynamicdns/forms.py:54 +#: modules/dynamicdns/forms.py:46 msgid "GnuDIP" msgstr "" -#: modules/dynamicdns/forms.py:57 +#: modules/dynamicdns/forms.py:49 msgid "Other update URL" msgstr "" -#: modules/dynamicdns/forms.py:59 +#: modules/dynamicdns/forms.py:51 msgid "Service Type" msgstr "" -#: modules/dynamicdns/forms.py:64 +#: modules/dynamicdns/forms.py:56 msgid "GnuDIP Server Address" msgstr "" -#: modules/dynamicdns/forms.py:67 +#: modules/dynamicdns/forms.py:59 msgid "Invalid server name" msgstr "" -#: modules/dynamicdns/forms.py:70 +#: modules/dynamicdns/forms.py:62 msgid "Update URL" msgstr "" -#: modules/dynamicdns/forms.py:74 +#: modules/dynamicdns/forms.py:66 msgid "Accept all SSL certificates" msgstr "" -#: modules/dynamicdns/forms.py:78 +#: modules/dynamicdns/forms.py:70 msgid "Use HTTP basic authentication" msgstr "" -#: modules/dynamicdns/forms.py:82 modules/names/__init__.py:68 +#: modules/dynamicdns/forms.py:74 modules/names/__init__.py:68 #: modules/names/forms.py:106 modules/names/templates/names.html:19 msgid "Domain Name" msgstr "網域名稱" -#: modules/dynamicdns/forms.py:85 modules/names/forms.py:99 +#: modules/dynamicdns/forms.py:77 modules/names/forms.py:99 #: modules/names/forms.py:117 msgid "Invalid domain name" msgstr "無效的網域名稱" -#: modules/dynamicdns/forms.py:88 modules/miniflux/forms.py:11 +#: modules/dynamicdns/forms.py:80 modules/miniflux/forms.py:11 #: modules/networks/forms.py:281 modules/users/forms.py:130 msgid "Username" msgstr "使用者名稱" -#: modules/dynamicdns/forms.py:95 modules/networks/forms.py:284 +#: modules/dynamicdns/forms.py:87 modules/networks/forms.py:284 msgid "Show password" msgstr "顯示密碼" -#: modules/dynamicdns/forms.py:99 -msgid "URL to look up public IP" -msgstr "用於查找公共IP的URL" - -#: modules/dynamicdns/forms.py:104 +#: modules/dynamicdns/forms.py:91 msgid "Use IPv6 instead of IPv4" msgstr "使用 IPv6 而不是 IPv4" -#: modules/dynamicdns/forms.py:123 +#: modules/dynamicdns/forms.py:110 msgid "This field is required." msgstr "此欄位為必填項。" #: modules/dynamicdns/manifest.py:17 -#: modules/dynamicdns/templates/dynamicdns.html:18 -#: modules/email/templates/email.html:35 +#: modules/dynamicdns/templates/dynamicdns.html:23 +#: modules/email/templates/email-dns.html:22 #: modules/letsencrypt/templates/letsencrypt.html:24 #: modules/mediawiki/forms.py:64 msgid "Domain" @@ -1943,41 +1943,41 @@ msgstr "" msgid "Needs public IP" msgstr "" -#: modules/dynamicdns/templates/dynamicdns.html:11 -#: modules/ejabberd/templates/ejabberd.html:13 modules/firewall/manifest.py:10 +#: modules/dynamicdns/templates/dynamicdns.html:16 +#: modules/ejabberd/templates/ejabberd.html:18 modules/firewall/manifest.py:10 #: modules/firewall/templates/firewall.html:16 #: modules/firewall/templates/firewall.html:22 #: modules/letsencrypt/templates/letsencrypt.html:17 -#: modules/matrixsynapse/templates/matrix-synapse.html:12 +#: modules/matrixsynapse/templates/matrix-synapse.html:17 #: modules/networks/templates/connection_show.html:258 -#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:19 +#: modules/samba/templates/samba.html:67 modules/tor/templates/tor.html:24 #: modules/upgrades/templates/upgrades_configure.html:14 #: modules/wireguard/templates/wireguard_show_client.html:48 #: modules/wireguard/templates/wireguard_show_server.html:47 msgid "Status" msgstr "狀態" -#: modules/dynamicdns/templates/dynamicdns.html:19 +#: modules/dynamicdns/templates/dynamicdns.html:24 msgid "Last update" msgstr "最後更新" -#: modules/dynamicdns/templates/dynamicdns.html:21 +#: modules/dynamicdns/templates/dynamicdns.html:26 #, fuzzy #| msgid "IP addresses" msgid "IP Address" msgstr "IP 地址" -#: modules/dynamicdns/templates/dynamicdns.html:32 +#: modules/dynamicdns/templates/dynamicdns.html:37 #, fuzzy #| msgid "Access" msgid "Success" msgstr "存取" -#: modules/dynamicdns/templates/dynamicdns.html:36 +#: modules/dynamicdns/templates/dynamicdns.html:41 msgid "Failed" msgstr "失敗" -#: modules/dynamicdns/templates/dynamicdns.html:52 +#: modules/dynamicdns/templates/dynamicdns.html:57 #, fuzzy #| msgid "No libraries available." msgid "No status available." @@ -2143,7 +2143,7 @@ msgstr "" msgid "XMPP" msgstr "" -#: modules/ejabberd/templates/ejabberd.html:18 +#: modules/ejabberd/templates/ejabberd.html:23 #, python-format msgid "" "Your XMPP server domain is set to %(domain_name)s. User IDs will look " @@ -2151,7 +2151,7 @@ msgid "" "system Name Services page." msgstr "" -#: modules/ejabberd/templates/ejabberd.html:25 +#: modules/ejabberd/templates/ejabberd.html:30 #, python-format msgid "" "Your XMPP server domain is not set. You can setup your domain on the system " @@ -2201,14 +2201,18 @@ msgstr "在安裝過程中,系統中的任何其他電子郵件伺服器都將 msgid "Postfix/Dovecot" msgstr "" -#: modules/email/__init__.py:83 +#: modules/email/__init__.py:80 +msgid "More emails" +msgstr "" + +#: modules/email/__init__.py:80 +msgid "Same mailbox" +msgstr "" + +#: modules/email/__init__.py:82 msgid "My Email Aliases" msgstr "電子郵件別名" -#: modules/email/__init__.py:84 -msgid "Manage Aliases for Mailbox" -msgstr "管理信箱別名" - #: modules/email/forms.py:25 msgid "Primary domain" msgstr "主域" @@ -2287,45 +2291,100 @@ msgstr "建立一個新的電子郵件別名" msgid "Add" msgstr "增加" -#: modules/email/templates/email.html:10 -msgid "Manage Spam" -msgstr "管理垃圾郵件" - -#: modules/email/templates/email.html:22 -msgid "DNS Records" +#: modules/email/templates/email-dns.html:9 +#, fuzzy +#| msgid "DNS Records" +msgid "DNS Records for domain:" msgstr "DNS 記錄" -#: modules/email/templates/email.html:25 +#: modules/email/templates/email-dns.html:12 +#, fuzzy +#| msgid "" +#| "The following DNS records must be added manually on your primary domain " +#| "for the mail server to work properly." msgid "" -"The following DNS records must be added manually on your primary domain for " -"the mail server to work properly." +"The following DNS records must be added manually on this domain for the mail " +"server to work properly for this domain." msgstr "必須在您的主網域上手動新增下列 DNS 記錄,郵件伺服器才能正常運作。" -#: modules/email/templates/email.html:36 +#: modules/email/templates/email-dns.html:23 +#: modules/email/templates/email-dns.html:77 msgid "TTL" msgstr "" -#: modules/email/templates/email.html:37 +#: modules/email/templates/email-dns.html:24 msgid "Class" msgstr "類別" -#: modules/email/templates/email.html:39 +#: modules/email/templates/email-dns.html:26 msgid "Priority" msgstr "優先" -#: modules/email/templates/email.html:40 +#: modules/email/templates/email-dns.html:27 msgid "Weight" msgstr "權重" -#: modules/email/templates/email.html:41 +#: modules/email/templates/email-dns.html:28 #: modules/minetest/templates/minetest.html:18 msgid "Port" msgstr "埠" -#: modules/email/templates/email.html:42 +#: modules/email/templates/email-dns.html:29 +#: modules/email/templates/email-dns.html:79 msgid "Host/Target/Value" msgstr "主機/目標/值" +#: modules/email/templates/email-dns.html:50 +msgid "Reverse DNS Records for IP Addresses" +msgstr "" + +#: modules/email/templates/email-dns.html:53 +#, python-format +msgid "" +"If your %(box_name)s runs on a cloud service infrastructure, you should " +"configure " +"Reverse DNS lookup. This isn't mandatory, however, it greatly improves " +"email deliverability. Reverse DNS isn't configured where your regular DNS " +"is. You should look for it in the settings of your VPS/ISP. Some providers " +"preconfigure the IP address part for you and you only have to set the domain " +"part. Only one of your domains can have Revese DNS lookup configured unless " +"you have multiple public IP addresses." +msgstr "" + +#: modules/email/templates/email-dns.html:66 +msgid "" +"An external service is used to lookup public IP address to show in the " +"following section. This can be configured in the privacy app." +msgstr "" + +#: modules/email/templates/email-dns.html:76 +#, fuzzy +#| msgid "Hostname" +msgid "Host" +msgstr "主機名稱" + +#: modules/email/templates/email.html:10 +msgid "Manage Spam" +msgstr "管理垃圾郵件" + +#: modules/email/templates/email.html:20 modules/names/manifest.py:11 +#: modules/names/templates/names.html:12 +#, fuzzy +#| msgid "Domain" +msgid "Domains" +msgstr "域" + +#: modules/email/templates/email.html:23 +msgid "" +"The following domains are configured. View details to see the list of DNS " +"entries to be made for the domain." +msgstr "" + +#: modules/email/templates/email.html:35 +#, python-format +msgid "View domain: %(domain)s" +msgstr "" + #: modules/featherwiki/__init__.py:25 #, python-brace-format msgid "" @@ -2595,7 +2654,7 @@ msgstr "連接埠 {name} ({details}) 可用於外部網絡" msgid "Port {name} ({details}) unavailable for external networks" msgstr "" -#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:20 +#: modules/firewall/manifest.py:10 modules/tor/templates/tor.html:25 msgid "Ports" msgstr "" @@ -2922,9 +2981,9 @@ msgstr "" msgid "Contribute" msgstr "" -#: modules/help/__init__.py:53 templates/base.html:215 templates/base.html:218 +#: modules/help/__init__.py:53 templates/base.html:217 templates/base.html:220 #: templates/help-menu.html:46 templates/help-menu.html:47 -#: templates/index.html:98 +#: templates/index.html:96 msgid "About" msgstr "關於" @@ -3059,7 +3118,7 @@ msgstr "" #: modules/help/templates/help_contribute.html:42 #: modules/power/templates/power_restart.html:27 -#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:68 +#: modules/power/templates/power_shutdown.html:26 templates/app-header.html:65 msgid "Learn more..." msgstr "" @@ -3383,7 +3442,7 @@ msgid "Web conference" msgstr "" #: modules/janus/templates/janus_video_room.html:205 -#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:271 +#: modules/jsxc/templates/jsxc_launch.html:117 templates/base.html:273 msgid "JavaScript license information" msgstr "" @@ -3763,7 +3822,7 @@ msgid "" "least one domain to be able to use Matrix Synapse." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:15 +#: modules/matrixsynapse/templates/matrix-synapse.html:20 #, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " @@ -3771,45 +3830,45 @@ msgid "" "the initial setup is currently not supported." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:22 +#: modules/matrixsynapse/templates/matrix-synapse.html:27 msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:29 +#: modules/matrixsynapse/templates/matrix-synapse.html:34 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:38 +#: modules/matrixsynapse/templates/matrix-synapse.html:43 msgid "Registration Token" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:39 +#: modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Uses Allowed" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:40 +#: modules/matrixsynapse/templates/matrix-synapse.html:45 #, fuzzy #| msgid "Server Administration" msgid "Pending Registrations" msgstr "伺服器管理" -#: modules/matrixsynapse/templates/matrix-synapse.html:41 +#: modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Completed Registrations" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:42 +#: modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Expiry Time" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:51 +#: modules/matrixsynapse/templates/matrix-synapse.html:56 msgid "Unlimited" msgstr "" -#: modules/matrixsynapse/templates/matrix-synapse.html:80 +#: modules/matrixsynapse/templates/matrix-synapse.html:85 #, python-format msgid "" "The configured domain name is using a self-signed certificate. Federation " @@ -4246,23 +4305,27 @@ msgstr "無效的使用者名稱:{username}" msgid "An error occurred during password reset: {error}." msgstr "設置過程中發生錯誤。" -#: modules/mumble/__init__.py:25 +#: modules/mumble/__init__.py:27 msgid "" "Mumble is an open source, low-latency, encrypted, high quality voice chat " "software." msgstr "" -#: modules/mumble/__init__.py:27 +#: modules/mumble/__init__.py:29 msgid "" "You can connect to your Mumble server on the regular Mumble port 64738. Clients to connect to Mumble from your " "desktop and mobile devices are available." msgstr "" -#: modules/mumble/__init__.py:45 modules/mumble/manifest.py:9 +#: modules/mumble/__init__.py:47 modules/mumble/manifest.py:9 msgid "Mumble" msgstr "" +#: modules/mumble/__init__.py:158 +msgid "Mumble server is configured" +msgstr "" + #: modules/mumble/forms.py:30 msgid "Set SuperUser Password" msgstr "" @@ -4396,12 +4459,6 @@ msgstr "" "包含字母、數字和連字符。每個標籤的長度必須低於 63 字元。網域名稱的總長度必須" "低於 253 字元。" -#: modules/names/manifest.py:11 modules/names/templates/names.html:12 -#, fuzzy -#| msgid "Domain" -msgid "Domains" -msgstr "域" - #: modules/names/manifest.py:13 msgid "DNS Resolution" msgstr "" @@ -4912,7 +4969,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:40 #: modules/wireguard/templates/wireguard_show_client.html:72 #: modules/wireguard/templates/wireguard_show_server.html:73 -#: templates/base.html:165 templates/base.html:166 +#: templates/base.html:167 templates/base.html:168 msgid "Edit" msgstr "" @@ -4965,7 +5022,7 @@ msgstr "" #: modules/networks/templates/connection_show.html:107 #: modules/snapshot/templates/snapshot_delete_selected.html:19 -#: modules/snapshot/templates/snapshot_manage.html:29 +#: modules/snapshot/templates/snapshot_manage.html:34 #: modules/snapshot/templates/snapshot_rollback.html:27 msgid "Description" msgstr "" @@ -5043,8 +5100,8 @@ msgstr "" #: modules/networks/templates/connection_show.html:264 #: modules/networks/templates/connections_fields_privacy.html:15 -#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:32 -#: modules/privacy/__init__.py:72 modules/wireguard/manifest.py:45 +#: modules/openvpn/manifest.py:60 modules/privacy/__init__.py:38 +#: modules/privacy/__init__.py:77 modules/wireguard/manifest.py:45 msgid "Privacy" msgstr "" @@ -5128,7 +5185,7 @@ msgstr "" msgid "Computer" msgstr "" -#: modules/networks/templates/connections_edit.html:19 +#: modules/networks/templates/connections_edit.html:24 #: modules/networks/views.py:253 modules/networks/views.py:341 msgid "Edit Connection" msgstr "" @@ -5141,7 +5198,7 @@ msgid "Error:" msgstr "錯誤" #: modules/networks/templates/connections_fields.html:20 -#: modules/users/templates/users_update.html:46 templates/messages.html:30 +#: modules/users/templates/users_update.html:51 templates/messages.html:30 msgid "Close" msgstr "" @@ -5233,7 +5290,7 @@ msgstr "" #: modules/networks/templates/network_topology_update.html:18 #: modules/networks/templates/router_configuration_update.html:19 #: modules/pagekite/templates/pagekite_custom_services.html:33 -#: modules/sharing/templates/sharing_add_edit.html:20 templates/form.html:19 +#: modules/sharing/templates/sharing_add_edit.html:25 templates/form.html:19 msgid "Submit" msgstr "送出" @@ -5627,11 +5684,7 @@ msgid "" "performed following an independent cycle." msgstr "" -#: modules/nextcloud/__init__.py:48 -msgid "This app is experimental." -msgstr "" - -#: modules/nextcloud/__init__.py:66 modules/nextcloud/manifest.py:11 +#: modules/nextcloud/__init__.py:65 modules/nextcloud/manifest.py:11 #: modules/nextcloud/manifest.py:18 msgid "Nextcloud" msgstr "" @@ -5805,7 +5858,7 @@ msgstr "" msgid "PageKite" msgstr "" -#: modules/pagekite/__init__.py:73 +#: modules/pagekite/__init__.py:72 msgid "PageKite Domain" msgstr "" @@ -5984,8 +6037,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: modules/power/templates/power.html:15 templates/base.html:180 -#: templates/base.html:181 +#: modules/power/templates/power.html:15 templates/base.html:182 +#: templates/base.html:183 msgid "Restart" msgstr "" @@ -6021,23 +6074,33 @@ msgstr "" msgid "Shut Down Now" msgstr "" -#: modules/privacy/__init__.py:15 +#: modules/privacy/__init__.py:21 msgid "Manage system-wide privacy settings." msgstr "" -#: modules/privacy/__init__.py:70 +#: modules/privacy/__init__.py:75 msgid "Please update privacy settings to match your preferences." msgstr "" -#: modules/privacy/__init__.py:75 +#: modules/privacy/__init__.py:80 msgid "Review privacy setting" msgstr "" -#: modules/privacy/forms.py:16 +#: modules/privacy/forms.py:17 +#, python-brace-format +msgid "" +"Optional Value. This URL is used to determine the publicly visible IP " +"address of your {box_name}. The URL should simply return the IPv4 or IPv6 " +"address where the client request comes from. Default is to use the service " +"provided by the FreedomBox Foundation at https://ddns.freedombox.org/ip/. If " +"empty, lookups are disabled and some functionality will fail." +msgstr "" + +#: modules/privacy/forms.py:25 msgid "Periodically submit a list of apps used (suggested)" msgstr "" -#: modules/privacy/forms.py:18 +#: modules/privacy/forms.py:27 #, python-brace-format msgid "" "Help Debian/{box_name} developers by participating in the Popularity Contest " @@ -6048,11 +6111,11 @@ msgid "" "network for additional anonymity if Tor app is enabled." msgstr "" -#: modules/privacy/forms.py:28 +#: modules/privacy/forms.py:37 msgid "Allow using fallback DNS servers" msgstr "" -#: modules/privacy/forms.py:30 +#: modules/privacy/forms.py:39 msgid "" "Use well-known public DNS servers to resolve domain names in unusual " "circumstances where no DNS servers are known but internet connectivity is " @@ -6060,10 +6123,22 @@ msgid "" "and reliable." msgstr "" +#: modules/privacy/forms.py:45 +#, fuzzy +#| msgid "URL to look up public IP" +msgid "URL to look up public IP address" +msgstr "用於查找公共IP的URL" + #: modules/privacy/manifest.py:10 msgid "Usage reporting" msgstr "" +#: modules/privacy/manifest.py:10 +#, fuzzy +#| msgid "Email Server" +msgid "External services" +msgstr "郵件伺服器" + #: modules/privacy/manifest.py:10 msgid "Fallback DNS" msgstr "" @@ -6986,40 +7061,40 @@ msgid "Delete the following snapshots permanently?" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:17 -#: modules/snapshot/templates/snapshot_manage.html:27 +#: modules/snapshot/templates/snapshot_manage.html:32 #: modules/snapshot/templates/snapshot_rollback.html:25 msgid "Number" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:18 -#: modules/snapshot/templates/snapshot_manage.html:28 +#: modules/snapshot/templates/snapshot_manage.html:33 #: modules/snapshot/templates/snapshot_rollback.html:26 msgid "Date" msgstr "" #: modules/snapshot/templates/snapshot_delete_selected.html:42 -#: modules/snapshot/templates/snapshot_manage.html:20 +#: modules/snapshot/templates/snapshot_manage.html:25 #: modules/snapshot/views.py:197 msgid "Delete Snapshots" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:17 +#: modules/snapshot/templates/snapshot_manage.html:22 msgid "Create Snapshot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:30 +#: modules/snapshot/templates/snapshot_manage.html:35 msgid "Rollback" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:40 +#: modules/snapshot/templates/snapshot_manage.html:45 msgid "will be used at next boot" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:45 +#: modules/snapshot/templates/snapshot_manage.html:50 msgid "in use" msgstr "" -#: modules/snapshot/templates/snapshot_manage.html:54 +#: modules/snapshot/templates/snapshot_manage.html:59 #, python-format msgid "Rollback to snapshot #%(number)s" msgstr "" @@ -7556,27 +7631,27 @@ msgstr "" msgid "Tor" msgstr "" -#: modules/tor/__init__.py:78 +#: modules/tor/__init__.py:77 msgid "Tor Onion Service" msgstr "" -#: modules/tor/__init__.py:82 +#: modules/tor/__init__.py:81 msgid "Tor Bridge Relay" msgstr "" -#: modules/tor/__init__.py:140 +#: modules/tor/__init__.py:139 msgid "Tor relay port available" msgstr "" -#: modules/tor/__init__.py:152 +#: modules/tor/__init__.py:151 msgid "Obfs3 transport registered" msgstr "" -#: modules/tor/__init__.py:163 +#: modules/tor/__init__.py:162 msgid "Obfs4 transport registered" msgstr "" -#: modules/tor/__init__.py:176 +#: modules/tor/__init__.py:175 msgid "Onion service is version 3" msgstr "" @@ -7666,7 +7741,7 @@ msgstr "" msgid "Anonymity network" msgstr "" -#: modules/tor/templates/tor.html:18 +#: modules/tor/templates/tor.html:23 msgid "Onion Service" msgstr "" @@ -8246,41 +8321,41 @@ msgstr "" msgid "Edit user %(username)s" msgstr "" -#: modules/users/templates/users_update.html:12 +#: modules/users/templates/users_update.html:17 #, python-format msgid "Edit User %(username)s" msgstr "" -#: modules/users/templates/users_update.html:20 +#: modules/users/templates/users_update.html:25 #, python-format msgid "" "Use the change password form to " "change the password." msgstr "" -#: modules/users/templates/users_update.html:32 +#: modules/users/templates/users_update.html:37 #: templates/language-selection.html:17 msgid "Save Changes" msgstr "" -#: modules/users/templates/users_update.html:41 +#: modules/users/templates/users_update.html:46 #, python-format msgid "Delete user %(username)s and all the user's files?" msgstr "" -#: modules/users/templates/users_update.html:51 +#: modules/users/templates/users_update.html:56 msgid "" "Deleting a user account also removes all the files user's home directory. If " "you wish to keep these files, disable the user account instead." msgstr "" -#: modules/users/templates/users_update.html:60 +#: modules/users/templates/users_update.html:65 #, fuzzy #| msgid "Delete files" msgid "Delete user and files" msgstr "刪除檔案" -#: modules/users/templates/users_update.html:63 +#: modules/users/templates/users_update.html:68 msgid "Cancel" msgstr "" @@ -8917,11 +8992,11 @@ msgstr "" msgid "Service %(service_name)s is not running." msgstr "" -#: templates/apps.html:29 +#: templates/apps.html:33 msgid "Search with tags" msgstr "" -#: templates/apps.html:42 +#: templates/apps.html:46 msgid "Clear all tags" msgstr "" @@ -8931,35 +9006,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: templates/base.html:116 +#: templates/base.html:118 msgid " Home" msgstr "" -#: templates/base.html:124 +#: templates/base.html:126 msgid " Apps" msgstr "" -#: templates/base.html:133 +#: templates/base.html:135 msgid " System" msgstr "" -#: templates/base.html:172 templates/base.html:173 +#: templates/base.html:174 templates/base.html:175 msgid "Change password" msgstr "" -#: templates/base.html:186 templates/base.html:187 +#: templates/base.html:188 templates/base.html:189 msgid "Shut down" msgstr "" -#: templates/base.html:197 templates/base.html:235 +#: templates/base.html:199 templates/base.html:237 msgid "Log out" msgstr "" -#: templates/base.html:206 templates/base.html:209 +#: templates/base.html:208 templates/base.html:211 msgid "Select language" msgstr "" -#: templates/base.html:224 templates/base.html:226 +#: templates/base.html:226 templates/base.html:228 msgid "Log in" msgstr "" @@ -9165,23 +9240,29 @@ msgid "" "installed freshly again." msgstr "" -#: views.py:85 +#: views.py:84 msgid "Here" msgstr "" -#: views.py:374 +#: views.py:376 msgid "Setting unchanged" msgstr "" -#: views.py:609 +#: views.py:610 #, python-brace-format msgid "before uninstall of {app_id}" msgstr "" -#: web_framework.py:114 +#: web_framework.py:122 msgid "Gujarati" msgstr "" +#~ msgid "In 24 hour format." +#~ msgstr "使用 24 小時格式。" + +#~ msgid "Manage Aliases for Mailbox" +#~ msgstr "管理信箱別名" + #~ msgid "File & Snippet Sharing" #~ msgstr "檔案 & 字條分享" diff --git a/plinth/menu.py b/plinth/menu.py index a66c31725..8f1fdc4ad 100644 --- a/plinth/menu.py +++ b/plinth/menu.py @@ -13,15 +13,16 @@ class Menu(app.FollowerComponent): _all_menus: ClassVar[set['Menu']] = set() - def __init__(self, component_id, name=None, short_description=None, - icon=None, url_name=None, url_args=None, url_kwargs=None, - parent_url_name=None, order=50, advanced=False): + def __init__(self, component_id: str, name: str | None = None, + icon: str | None = None, tags: list[str] | None = None, + url_name: str | None = None, url_args: list | None = None, + url_kwargs: dict | None = None, + parent_url_name: str | None = None, order: int = 50, + advanced: bool = False): """Initialize a new menu item with basic properties. name is the label of the menu item. - short_description is an optional description shown on the menu item. - icon is the icon to be displayed for the menu item. Icon can be the name of a glyphicon from the Fork Awesome font's icon set: https://forkawesome.github.io/Fork-Awesome/icons/. In this case, the @@ -33,6 +34,9 @@ class Menu(app.FollowerComponent): icons files plinth/modules/myapp/static/icons/myicon.svg and plinth/modules/myapp/static/icons/myicon.png are used in the interface. + tags is a list of tags that describe the app. Tags help users to find + similar apps or alternatives and discover use cases. + url_name is the name of url location that will be activated when the menu item is selected. This is not optional. url_args and url_kwargs are sent to reverse() when resolving url from url_name. @@ -56,8 +60,8 @@ class Menu(app.FollowerComponent): url = reverse_lazy(url_name, args=url_args, kwargs=url_kwargs) self.name = name - self.short_description = short_description self.icon = icon + self.tags = tags self.url = url self.order = order self.advanced = advanced diff --git a/plinth/modules/api/views.py b/plinth/modules/api/views.py index 8f6e873b3..b6e968fa6 100644 --- a/plinth/modules/api/views.py +++ b/plinth/modules/api/views.py @@ -48,10 +48,10 @@ def _get_shortcut_data(shortcut): """Return detailed information about a shortcut.""" shortcut_data = { 'name': shortcut.name, - 'short_description': shortcut.short_description, 'description': shortcut.description, 'icon_url': _get_icon_url(shortcut.app_id, shortcut.icon), 'clients': copy.deepcopy(shortcut.clients), + 'tags': copy.deepcopy(shortcut.tags), } # XXX: Fix the hardcoding if shortcut.name.startswith('shortcut-ikiwiki-'): diff --git a/plinth/modules/avahi/__init__.py b/plinth/modules/avahi/__init__.py index e320cfec8..7d258a5c7 100644 --- a/plinth/modules/avahi/__init__.py +++ b/plinth/modules/avahi/__init__.py @@ -50,7 +50,7 @@ class AvahiApp(app_module.App): tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-avahi', info.name, None, info.icon, + menu_item = menu.Menu('menu-avahi', info.name, info.icon, info.tags, 'avahi:index', parent_url_name='system:visibility', order=50) self.add(menu_item) diff --git a/plinth/modules/backups/__init__.py b/plinth/modules/backups/__init__.py index 82c841df9..6b1542055 100644 --- a/plinth/modules/backups/__init__.py +++ b/plinth/modules/backups/__init__.py @@ -47,7 +47,7 @@ class BackupsApp(app_module.App): tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-backups', info.name, None, info.icon, + menu_item = menu.Menu('menu-backups', info.name, info.icon, info.tags, 'backups:index', parent_url_name='system:data', order=20) self.add(menu_item) diff --git a/plinth/modules/backups/errors.py b/plinth/modules/backups/errors.py index 70d4f0601..2792f6741 100644 --- a/plinth/modules/backups/errors.py +++ b/plinth/modules/backups/errors.py @@ -33,3 +33,7 @@ class BorgArchiveDoesNotExist(BorgError): class BorgBusy(BorgError): """Borg could not acquire lock being busy with another operation.""" + + +class BorgNoSpace(BorgError): + """There is not enough space left on the device to perform operation.""" diff --git a/plinth/modules/backups/forms.py b/plinth/modules/backups/forms.py index 7b382f607..5e037bb8b 100644 --- a/plinth/modules/backups/forms.py +++ b/plinth/modules/backups/forms.py @@ -77,7 +77,9 @@ class ScheduleForm(forms.Form): run_at_hour = forms.IntegerField( label=_('Hour of the day to trigger backup operation'), required=True, - min_value=0, max_value=23, help_text=_('In 24 hour format.')) + min_value=0, max_value=23, help_text=_( + 'In 24 hour format. Services may become temporarily unavailable ' + 'while running backup operation at this time of the day.')) selected_apps = forms.MultipleChoiceField( label=_('Included apps'), help_text=_('Apps to include in the backup'), diff --git a/plinth/modules/backups/privileged.py b/plinth/modules/backups/privileged.py index bc3cf6b02..2a8118978 100644 --- a/plinth/modules/backups/privileged.py +++ b/plinth/modules/backups/privileged.py @@ -87,6 +87,11 @@ KNOWN_ERRORS = [ 'message': _('Backup system is busy with another operation.'), 'raise_as': errors.BorgBusy, }, + { + 'errors': ['No space left on device'], + 'message': _('Not enough space left on the disk or remote location.'), + 'raise_as': errors.BorgNoSpace, + }, ] diff --git a/plinth/modules/backups/repository.py b/plinth/modules/backups/repository.py index c642e2f04..63ac75c6b 100644 --- a/plinth/modules/backups/repository.py +++ b/plinth/modules/backups/repository.py @@ -196,6 +196,9 @@ class BaseBorgRepository(abc.ABC): """Override to call read() instead of readline().""" chunk = self.read(io.DEFAULT_BUFFER_SIZE) if not chunk: + if getattr(self, 'cleanup_func'): + self.cleanup_func() + raise StopIteration return chunk @@ -204,12 +207,27 @@ class BaseBorgRepository(abc.ABC): self._get_archive_path(archive_name), self._get_encryption_passpharse(), _raw_output=True) - os.close(read_fd) # Don't use the pipe for communication, just stdout + # Write the method request with args to the process proc.stdin.write(input_) proc.stdin.close() - proc.stderr.close() # writing to stderr in child will cause SIGPIPE - return BufferedReader(proc.stdout) + def _cleanup_func(): + """After the process has been read from, cleanup the process.""" + try: + if proc.stdout: + proc.stdout.close() + + if proc.stderr: + proc.stderr.close() + + proc.wait(30) + os.close(read_fd) + except Exception: + logger.exception('Closing process failed after download') + + reader = BufferedReader(proc.stdout) + reader.cleanup_func = _cleanup_func + return reader def _get_archive_path(self, archive_name): """Return full borg path for an archive.""" @@ -223,6 +241,11 @@ class BaseBorgRepository(abc.ABC): return None + def generate_archive_name(self): + """Return a name to create a backup archive with using time.""" + return datetime.datetime.now().astimezone().replace( + microsecond=0).isoformat() + def get_archive_apps(self, archive_name): """Get list of apps included in an archive.""" archive_path = self._get_archive_path(archive_name) diff --git a/plinth/modules/backups/schedule.py b/plinth/modules/backups/schedule.py index 1d89a0e73..42f501bc2 100644 --- a/plinth/modules/backups/schedule.py +++ b/plinth/modules/backups/schedule.py @@ -274,12 +274,14 @@ class Schedule: logger.info('Running backup for repository %s, periods %s', self.repository_uuid, periods) + repository = self._get_repository() + from . import api periods = list(periods) periods.sort() - name = 'scheduled: {periods}: {datetime}'.format( + name = 'scheduled: {periods}: {name}'.format( periods=', '.join(periods), - datetime=datetime.now().strftime('%Y-%m-%d:%H:%M')) + name=repository.generate_archive_name()) comment = self._serialize_comment({ 'type': 'scheduled', 'periods': periods @@ -290,7 +292,6 @@ class Schedule: if component.app_id not in self.unselected_apps ] - repository = self._get_repository() repository.create_archive(name, app_ids, archive_comment=comment) def _run_cleanup(self, repository): diff --git a/plinth/modules/backups/tests/test_schedule.py b/plinth/modules/backups/tests/test_schedule.py index 092a2f396..d8520f438 100644 --- a/plinth/modules/backups/tests/test_schedule.py +++ b/plinth/modules/backups/tests/test_schedule.py @@ -9,7 +9,7 @@ from unittest.mock import MagicMock, call, patch import pytest -import plinth.modules.backups.repository # noqa, pylint: disable=unused-import +import plinth.modules.backups.repository as repository_module from plinth.app import App from ..components import BackupRestore @@ -431,15 +431,19 @@ def test_run_schedule(get_instance, get_setup_state, schedule_params, repository.list_archives.side_effect = \ lambda: _get_archives_from_test_data(archives_data) get_instance.return_value = repository + repository.generate_archive_name = lambda: \ + repository_module.BaseBorgRepository.generate_archive_name(None) with patch('plinth.modules.backups.schedule.datetime') as mock_datetime, \ - patch('plinth.app.App.list') as app_list: + patch('plinth.modules.backups.repository.datetime') \ + as repo_datetime, patch('plinth.app.App.list') as app_list: app_list.return_value = [ _get_test_app('test-app1'), _get_test_app('test-app2'), _get_test_app('test-app3') ] + repo_datetime.datetime.now.return_value = test_now mock_datetime.now.return_value = test_now mock_datetime.strptime = datetime.strptime mock_datetime.min = datetime.min @@ -458,7 +462,8 @@ def test_run_schedule(get_instance, get_setup_state, schedule_params, run_periods.sort() name = 'scheduled: {periods}: {datetime}'.format( periods=', '.join(run_periods), - datetime=mock_datetime.now().strftime('%Y-%m-%d:%H:%M')) + datetime=repo_datetime.datetime.now().astimezone().replace( + microsecond=0).isoformat()) app_ids = ['test-app1', 'test-app3'] archive_comment = json.dumps({ 'type': 'scheduled', diff --git a/plinth/modules/backups/views.py b/plinth/modules/backups/views.py index 856abedff..56d8968c3 100644 --- a/plinth/modules/backups/views.py +++ b/plinth/modules/backups/views.py @@ -7,7 +7,6 @@ import contextlib import logging import os import subprocess -from datetime import datetime from urllib.parse import unquote from django.contrib import messages @@ -141,8 +140,7 @@ class CreateArchiveView(FormView): name = form.cleaned_data['name'] if not name: - name = datetime.now().astimezone().replace( - microsecond=0).isoformat() + name = repository.generate_archive_name() selected_apps = form.cleaned_data['selected_apps'] with handle_common_errors(self.request): diff --git a/plinth/modules/bepasty/__init__.py b/plinth/modules/bepasty/__init__.py index d14a3d0de..fea754764 100644 --- a/plinth/modules/bepasty/__init__.py +++ b/plinth/modules/bepasty/__init__.py @@ -60,15 +60,14 @@ class BepastyApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-bepasty', info.name, - info.short_description, info.icon_filename, - 'bepasty:index', parent_url_name='apps') + menu_item = menu.Menu('menu-bepasty', info.name, info.icon_filename, + info.tags, 'bepasty:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-bepasty', info.name, - info.short_description, info.icon_filename, '/bepasty', - clients=manifest.clients) + clients=manifest.clients, tags=info.tags) self.add(shortcut) packages = Packages('packages-bepasty', ['bepasty']) diff --git a/plinth/modules/bind/__init__.py b/plinth/modules/bind/__init__.py index 46df17235..213b5b401 100644 --- a/plinth/modules/bind/__init__.py +++ b/plinth/modules/bind/__init__.py @@ -42,8 +42,8 @@ class BindApp(app_module.App): tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-bind', info.name, info.short_description, - info.icon, 'bind:index', + menu_item = menu.Menu('menu-bind', info.name, info.icon, info.tags, + 'bind:index', parent_url_name='system:visibility', order=30) self.add(menu_item) diff --git a/plinth/modules/calibre/__init__.py b/plinth/modules/calibre/__init__.py index 85462d463..27a5da627 100644 --- a/plinth/modules/calibre/__init__.py +++ b/plinth/modules/calibre/__init__.py @@ -59,15 +59,14 @@ class CalibreApp(app_module.App): donation_url='https://calibre-ebook.com/donate') self.add(info) - menu_item = menu.Menu('menu-calibre', info.name, - info.short_description, info.icon_filename, - 'calibre:index', parent_url_name='apps') + menu_item = menu.Menu('menu-calibre', info.name, info.icon_filename, + info.tags, 'calibre:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-calibre', info.name, - short_description=info.short_description, icon=info.icon_filename, url='/calibre', - clients=info.clients, + clients=info.clients, tags=info.tags, login_required=True, allowed_groups=list(groups)) self.add(shortcut) diff --git a/plinth/modules/cockpit/__init__.py b/plinth/modules/cockpit/__init__.py index 806a66644..466716a39 100644 --- a/plinth/modules/cockpit/__init__.py +++ b/plinth/modules/cockpit/__init__.py @@ -56,18 +56,16 @@ class CockpitApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-cockpit', info.name, - info.short_description, info.icon, + menu_item = menu.Menu('menu-cockpit', info.name, info.icon, info.tags, 'cockpit:index', parent_url_name='system:administration', order=20) self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-cockpit', info.name, - short_description=info.short_description, icon=info.icon_filename, url='/_cockpit/', clients=info.clients, - login_required=True, + tags=info.tags, login_required=True, allowed_groups=['admin']) self.add(shortcut) diff --git a/plinth/modules/config/__init__.py b/plinth/modules/config/__init__.py index 34e1d3de1..519d4d675 100644 --- a/plinth/modules/config/__init__.py +++ b/plinth/modules/config/__init__.py @@ -42,9 +42,9 @@ class ConfigApp(app_module.App): manual_page='Configure', tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-config', _('Configure'), None, info.icon, - 'config:index', parent_url_name='system:system', - order=30) + menu_item = menu.Menu('menu-config', _('Configure'), info.icon, + info.tags, 'config:index', + parent_url_name='system:system', order=30) self.add(menu_item) packages = Packages('packages-config', ['zram-tools']) diff --git a/plinth/modules/coturn/__init__.py b/plinth/modules/coturn/__init__.py index 06f41f34e..a4625491f 100644 --- a/plinth/modules/coturn/__init__.py +++ b/plinth/modules/coturn/__init__.py @@ -54,8 +54,8 @@ class CoturnApp(app_module.App): tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-coturn', info.name, info.short_description, - info.icon_filename, 'coturn:index', + menu_item = menu.Menu('menu-coturn', info.name, info.icon_filename, + info.tags, 'coturn:index', parent_url_name='apps') self.add(menu_item) diff --git a/plinth/modules/datetime/__init__.py b/plinth/modules/datetime/__init__.py index bfc2e1f57..fde7a2d39 100644 --- a/plinth/modules/datetime/__init__.py +++ b/plinth/modules/datetime/__init__.py @@ -70,7 +70,7 @@ class DateTimeApp(app_module.App): manual_page='DateTime', tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-datetime', info.name, None, info.icon, + menu_item = menu.Menu('menu-datetime', info.name, info.icon, info.tags, 'datetime:index', parent_url_name='system:system', order=40) self.add(menu_item) diff --git a/plinth/modules/deluge/__init__.py b/plinth/modules/deluge/__init__.py index 4f56655ba..58d25ea69 100644 --- a/plinth/modules/deluge/__init__.py +++ b/plinth/modules/deluge/__init__.py @@ -64,15 +64,14 @@ class DelugeApp(app_module.App): tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-deluge', info.name, info.short_description, - info.icon_filename, 'deluge:index', + menu_item = menu.Menu('menu-deluge', info.name, info.icon_filename, + info.tags, 'deluge:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-deluge', info.name, - short_description=info.short_description, url='/deluge', icon=info.icon_filename, - clients=info.clients, + clients=info.clients, tags=info.tags, login_required=True, allowed_groups=list(groups)) self.add(shortcut) diff --git a/plinth/modules/deluge/tests/test_functional.py b/plinth/modules/deluge/tests/test_functional.py index d6918fa0a..56ce7d5ac 100644 --- a/plinth/modules/deluge/tests/test_functional.py +++ b/plinth/modules/deluge/tests/test_functional.py @@ -83,7 +83,6 @@ def _ensure_logged_in(browser): def logged_in(): active_window_title = _get_active_window_title(browser) - # Change Default Password window appears once. if active_window_title == 'Change Default Password': _click_active_window_button(browser, 'No') @@ -92,7 +91,8 @@ def _ensure_logged_in(browser): browser.find_by_id('_password').first.fill('deluge') _click_active_window_button(browser, 'Login') - return browser.is_element_not_present_by_css('#add .x-item-disabled') + return browser.is_element_present_by_css( + '.x-deluge-statusbar.x-connected') functional.eventually(logged_in) diff --git a/plinth/modules/diagnostics/__init__.py b/plinth/modules/diagnostics/__init__.py index 13056d72f..f86280da9 100644 --- a/plinth/modules/diagnostics/__init__.py +++ b/plinth/modules/diagnostics/__init__.py @@ -55,8 +55,8 @@ class DiagnosticsApp(app_module.App): manual_page='Diagnostics', tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-diagnostics', info.name, None, info.icon, - 'diagnostics:index', + menu_item = menu.Menu('menu-diagnostics', info.name, info.icon, + info.tags, 'diagnostics:index', parent_url_name='system:administration', order=30) self.add(menu_item) diff --git a/plinth/modules/dynamicdns/__init__.py b/plinth/modules/dynamicdns/__init__.py index e29c5a65e..9b8cf640f 100644 --- a/plinth/modules/dynamicdns/__init__.py +++ b/plinth/modules/dynamicdns/__init__.py @@ -15,6 +15,7 @@ from plinth import app as app_module from plinth import cfg, glib, kvstore, menu from plinth.modules.backups.components import BackupRestore from plinth.modules.names.components import DomainType +from plinth.modules.privacy import lookup_public_address from plinth.modules.users.components import UsersAndGroups from plinth.signals import domain_added, domain_removed from plinth.utils import format_lazy @@ -42,6 +43,8 @@ _description = [ 'target=\'_blank\'>ddns.freedombox.org or you may find free update ' 'URL based services at freedns.afraid.org.'), + _('This service uses an external service to lookup public IP address. ' + 'This can be configured in the privacy app.'), ] @@ -63,8 +66,8 @@ class DynamicDNSApp(app_module.App): manual_page='DynamicDNS', tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-dynamicdns', info.name, None, info.icon, - 'dynamicdns:index', + menu_item = menu.Menu('menu-dynamicdns', info.name, info.icon, + info.tags, 'dynamicdns:index', parent_url_name='system:visibility', order=20) self.add(menu_item) @@ -112,21 +115,12 @@ class DynamicDNSApp(app_module.App): privileged.clean() -def _query_external_address(domain): +def _lookup_public_address(domain): """Return the IP address by querying an external server.""" - if not domain['ip_lookup_url']: - return None - - ip_option = '-6' if domain['use_ipv6'] else '-4' try: - ip_address = subprocess.check_output([ - 'wget', ip_option, '-o', '/dev/null', '-t', '3', '-T', '3', '-O', - '-', domain['ip_lookup_url'] - ]) - return ip_address.decode().strip().lower() - except subprocess.CalledProcessError as exception: - logger.warning('Unable to lookup external IP with URL %s: %s', - domain['ip_lookup_url'], exception) + ip_type = 'ipv6' if domain['use_ipv6'] else 'ipv4' + return lookup_public_address(ip_type) + except Exception: return None @@ -186,7 +180,7 @@ def _update_dns_for_domain(domain): try: dns_address = _query_dns_address(domain) - external_address = _query_external_address(domain) + external_address = _lookup_public_address(domain) if dns_address == external_address and dns_address is not None: logger.info('Dynamic domain %s is up-to-date: %s', domain['domain'], dns_address) diff --git a/plinth/modules/dynamicdns/forms.py b/plinth/modules/dynamicdns/forms.py index 51693af62..22c62dee7 100644 --- a/plinth/modules/dynamicdns/forms.py +++ b/plinth/modules/dynamicdns/forms.py @@ -39,14 +39,6 @@ class ConfigureForm(forms.Form): help_password = \ gettext_lazy('Leave this field empty if you want to keep your ' 'current password.') - help_ip_lookup_url = format_lazy( - gettext_lazy('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: ' - 'https://ddns.freedombox.org/ip/).'), - box_name=gettext_lazy(cfg.box_name)) help_username = \ gettext_lazy('The username that was used when the account was ' 'created.') @@ -95,11 +87,6 @@ class ConfigureForm(forms.Form): show_password = forms.BooleanField(label=gettext_lazy('Show password'), required=False) - ip_lookup_url = forms.CharField( - label=gettext_lazy('URL to look up public IP'), required=False, - help_text=help_ip_lookup_url, - validators=[validators.URLValidator(schemes=['http', 'https'])]) - use_ipv6 = forms.BooleanField( label=gettext_lazy('Use IPv6 instead of IPv4'), required=False) @@ -129,8 +116,7 @@ class ConfigureForm(forms.Form): if not update_url: self.add_error('update_url', message) - param_map = (('username', ''), ('password', ''), - ('ip_lookup_url', '')) + param_map = (('username', ''), ('password', '')) for field_name, param in param_map: if (update_url and param in update_url and not cleaned_data.get(field_name)): diff --git a/plinth/modules/dynamicdns/privileged.py b/plinth/modules/dynamicdns/privileged.py index f5e8c090f..2b23d9164 100644 --- a/plinth/modules/dynamicdns/privileged.py +++ b/plinth/modules/dynamicdns/privileged.py @@ -53,7 +53,6 @@ def export_config() -> dict[str, bool | dict[str, dict[str, str | None]]]: 'server': input_config.get('server'), 'username': input_config.get('user', '').split(':')[0] or None, 'password': input_config.get('user', '').split(':')[-1] or None, - 'ip_lookup_url': helper.get('IPURL'), 'update_url': _clean(helper.get('POSTURL')) or None, 'use_http_basic_auth': _clean(helper.get('POSTAUTH')), 'disable_ssl_cert_check': _clean(helper.get('POSTSSLIGNORE')), diff --git a/plinth/modules/dynamicdns/templates/dynamicdns.html b/plinth/modules/dynamicdns/templates/dynamicdns.html index 052f697a5..0a517321f 100644 --- a/plinth/modules/dynamicdns/templates/dynamicdns.html +++ b/plinth/modules/dynamicdns/templates/dynamicdns.html @@ -7,6 +7,11 @@ {% load i18n %} {% load static %} +{% block page_js %} + +{% endblock %} + {% block extra_content %}

{% trans "Status" %}

@@ -52,7 +57,3 @@ {% trans "No status available." %} {% endif %} {% endblock %} - -{% block page_js %} - -{% endblock %} diff --git a/plinth/modules/dynamicdns/tests/test_functional.py b/plinth/modules/dynamicdns/tests/test_functional.py index 5643734af..cd0363e26 100644 --- a/plinth/modules/dynamicdns/tests/test_functional.py +++ b/plinth/modules/dynamicdns/tests/test_functional.py @@ -19,7 +19,6 @@ _configs = { 'domain': 'freedombox.example.com', 'username': 'tester', 'password': 'testingtesting', - 'ip_lookup_url': 'https://ddns.freedombox.org/ip/', }, 'gnudip2': { 'service_type': 'gnudip', @@ -27,7 +26,6 @@ _configs = { 'domain': 'freedombox2.example.com', 'username': 'tester2', 'password': 'testingtesting2', - 'ip_lookup_url': 'https://ddns2.freedombox.org/ip/', }, 'noip.com': { 'service_type': 'noip.com', @@ -37,7 +35,6 @@ _configs = { 'domain': 'freedombox3.example.com', 'username': 'tester3', 'password': 'testingtesting3', - 'ip_lookup_url': 'https://ddns3.freedombox.org/ip/', 'use_ipv6': True, }, 'freedns.afraid.org': { @@ -48,7 +45,6 @@ _configs = { 'domain': 'freedombox5.example.com', 'username': '', 'password': '', - 'ip_lookup_url': '', 'use_ipv6': False, }, 'other': { @@ -59,7 +55,6 @@ _configs = { 'domain': 'freedombox6.example.com', 'username': 'tester6', 'password': 'testingtesting6', - 'ip_lookup_url': 'https://ddns6.freedombox.org/ip/', 'use_ipv6': False, }, } diff --git a/plinth/modules/ejabberd/__init__.py b/plinth/modules/ejabberd/__init__.py index 313eb27d0..965fa22b8 100644 --- a/plinth/modules/ejabberd/__init__.py +++ b/plinth/modules/ejabberd/__init__.py @@ -64,17 +64,16 @@ class EjabberdApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-ejabberd', info.name, - info.short_description, info.icon_filename, - 'ejabberd:index', parent_url_name='apps') + menu_item = menu.Menu('menu-ejabberd', info.name, info.icon_filename, + info.tags, 'ejabberd:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-ejabberd', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-ejabberd', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, configure_url=reverse_lazy('ejabberd:index'), clients=info.clients, - login_required=True) + tags=info.tags, login_required=True) self.add(shortcut) packages = Packages('packages-ejabberd', ['ejabberd']) diff --git a/plinth/modules/ejabberd/templates/ejabberd.html b/plinth/modules/ejabberd/templates/ejabberd.html index 4e9c6333b..6e2c02f65 100644 --- a/plinth/modules/ejabberd/templates/ejabberd.html +++ b/plinth/modules/ejabberd/templates/ejabberd.html @@ -7,6 +7,11 @@ {% load i18n %} {% load static %} +{% block page_js %} + +{% endblock %} + {% block status %} {{ block.super }} @@ -30,8 +35,3 @@

{% endblock %} - -{% block page_js %} - -{% endblock %} diff --git a/plinth/modules/email/__init__.py b/plinth/modules/email/__init__.py index 475e1ffb9..f7763c3e5 100644 --- a/plinth/modules/email/__init__.py +++ b/plinth/modules/email/__init__.py @@ -18,7 +18,7 @@ from plinth.modules.letsencrypt.components import LetsEncrypt from plinth.package import Packages from plinth.privileged import service as service_privileged from plinth.signals import domain_added, domain_removed -from plinth.utils import format_lazy +from plinth.utils import format_lazy, gettext_noop from . import aliases, manifest, privileged @@ -66,24 +66,23 @@ class EmailApp(plinth.app.App): 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') + menu_item = menu.Menu('menu-email', info.name, info.icon_filename, + info.tags, 'email:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-email', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-email', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, configure_url=reverse_lazy('email:index'), clients=info.clients, - login_required=True) + tags=info.tags, 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) + tags = [gettext_noop('More emails'), gettext_noop('Same mailbox')] + shortcut = frontpage.Shortcut('shortcut-email-aliases', + _('My Email Aliases'), + icon=info.icon_filename, tags=tags, + url=reverse_lazy('email:aliases'), + login_required=True) self.add(shortcut) # Other likely install conflicts have been discarded: diff --git a/plinth/modules/email/dns.py b/plinth/modules/email/dns.py index 2540fc8f9..095ea071d 100644 --- a/plinth/modules/email/dns.py +++ b/plinth/modules/email/dns.py @@ -7,10 +7,17 @@ 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 +See: https://en.wikipedia.org/wiki/Reverse_DNS_lookup """ +import ipaddress +import typing from dataclasses import dataclass +from plinth.modules.privacy import lookup_public_address + +from . import privileged + @dataclass class Entry: # pylint: disable=too-many-instance-attributes @@ -39,11 +46,8 @@ class Entry: # pylint: disable=too-many-instance-attributes return ' '.join(pieces) -def get_entries(): - """Return the list of DNS entries to make.""" - from . import privileged - - domain = privileged.domain.get_domains()['primary_domain'] +def get_entries(domain: str) -> list[Entry]: + """Return the list of DNS entries to be set in DNS server for domain.""" mx_spam_entries = [ Entry(type_='MX', value=f'{domain}.'), Entry(type_='TXT', value='v=spf1 mx a ~all'), @@ -70,3 +74,20 @@ def get_entries(): port=995, value=f'{domain}.'), ] return mx_spam_entries + dkim_entries + autoconfig_entries + + +def get_reverse_entries(domain: str) -> list[Entry]: + """Return the list of reverse DNS entries to make.""" + entries = [] + for ip_type in typing.get_args(typing.Literal['ipv4', 'ipv6']): + try: + ip_address = lookup_public_address(ip_type) + reverse_pointer = ipaddress.ip_address(ip_address).reverse_pointer + except Exception as exception: + reverse_pointer = \ + f'Error querying external {ip_type} address: {exception}' + + entry = Entry(domain=reverse_pointer, type_='PTR', value=f'{domain}.') + entries.append(entry) + + return entries diff --git a/plinth/modules/email/privileged/domain.py b/plinth/modules/email/privileged/domain.py index b24d98933..643e19792 100644 --- a/plinth/modules/email/privileged/domain.py +++ b/plinth/modules/email/privileged/domain.py @@ -38,7 +38,8 @@ def set_all_domains(primary_domain=None): # Update configuration and don't restart daemons set_domains(primary_domain, list(all_domains)) - dkim.setup_dkim(primary_domain) + for domain in all_domains: + dkim.setup_dkim(domain) # Copy certificates (self-signed if needed) and restart daemons app = App.get('email') diff --git a/plinth/modules/email/templates/email-dns.html b/plinth/modules/email/templates/email-dns.html new file mode 100644 index 000000000..9ecc939b9 --- /dev/null +++ b/plinth/modules/email/templates/email-dns.html @@ -0,0 +1,95 @@ +{% extends "base.html" %} +{% comment %} +# SPDX-License-Identifier: AGPL-3.0-or-later +{% endcomment %} + +{% load i18n %} + +{% block content %} +

{% trans "DNS Records for domain:" %} {{ domain }}

+ +

+ {% blocktrans trimmed %} + The following DNS records must be added manually on this domain for the + mail server to work properly for this domain. + {% 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 }}
+
+ + {% if domain == primary_domain %} +

{% trans "Reverse DNS Records for IP Addresses" %}

+ +

+ {% blocktrans trimmed %} + If your {{ box_name }} runs on a cloud service infrastructure, you + should configure + Reverse DNS lookup. This isn't mandatory, however, it greatly improves + email deliverability. Reverse DNS isn't configured where your regular DNS + is. You should look for it in the settings of your VPS/ISP. Some providers + preconfigure the IP address part for you and you only have to set the + domain part. Only one of your domains can have Revese DNS lookup + configured unless you have multiple public IP addresses. + {% endblocktrans %} +

+ +

+ {% blocktrans trimmed %} + An external service is used to lookup public IP address to show in the + following section. This can be configured in the privacy app. + {% endblocktrans %} +

+ +
+ + + + + + + + + + + {% for dns_entry in reverse_dns_entries %} + + + + + + + {% endfor %} + +
{% trans "Host" %}{% trans "TTL" %}{% trans "Type" %}{% trans "Host/Target/Value" %}
{{ dns_entry.domain|default_if_none:"" }}{{ dns_entry.ttl }}{{ dns_entry.type_ }}{{ dns_entry.get_split_value }}
+
+ {% endif %} +{% endblock %} diff --git a/plinth/modules/email/templates/email.html b/plinth/modules/email/templates/email.html index 9af501d41..d0ff370c4 100644 --- a/plinth/modules/email/templates/email.html +++ b/plinth/modules/email/templates/email.html @@ -17,45 +17,28 @@ {% endblock %} {% block extra_content %} - {{ block.super }} - -

{% trans "DNS Records" %}

+

{% trans "Domains" %}

{% blocktrans trimmed %} - The following DNS records must be added manually on your primary domain - for the mail server to work properly. + The following domains are configured. View details to see the list of DNS + entries to be made for the domain. {% endblocktrans %}

-
- - - - - - - - - - - - - - - {% for dns_entry in dns_entries %} - - - - - - - - - - +
+
+
+ {% for domain in all_domains %} +
+ + {{ domain }} + {% if domain == primary_domain %}
{% endif %} +
{% 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/urls.py b/plinth/modules/email/urls.py index e1e919b98..7c74adb5d 100644 --- a/plinth/modules/email/urls.py +++ b/plinth/modules/email/urls.py @@ -3,7 +3,7 @@ URLs for the email module. """ -from django.urls import path +from django.urls import path, re_path from stronghold.decorators import public from plinth.utils import non_admin_view @@ -12,6 +12,8 @@ from . import views urlpatterns = [ path('apps/email/', views.EmailAppView.as_view(), name='index'), + re_path('apps/email/dns/(?P[^/]+)/$', views.DnsView.as_view(), + name='dns'), 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/views.py b/plinth/modules/email/views.py index bac67c3b2..29e7fb46a 100644 --- a/plinth/modules/email/views.py +++ b/plinth/modules/email/views.py @@ -25,7 +25,7 @@ class EmailAppView(AppView): 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() + context.update(privileged.domain.get_domains()) return context def get_initial(self): @@ -50,6 +50,21 @@ class EmailAppView(AppView): return super().form_valid(form) +class DnsView(TemplateView): + """Show the DNS records to configure on a given domain.""" + template_name = 'email-dns.html' + + def get_context_data(self, **kwargs): + """Add additional context data for rendering the template.""" + domain = self.kwargs['domain'] + context = super().get_context_data(**kwargs) + primary_domain = privileged.domain.get_domains()['primary_domain'] + context['primary_domain'] = primary_domain + context['dns_entries'] = dns.get_entries(domain) + context['reverse_dns_entries'] = dns.get_reverse_entries(domain) + return context + + class AliasView(FormView): """View to create, list, enable, disable and delete aliases. diff --git a/plinth/modules/featherwiki/__init__.py b/plinth/modules/featherwiki/__init__.py index b2fec418d..30fd0de1a 100644 --- a/plinth/modules/featherwiki/__init__.py +++ b/plinth/modules/featherwiki/__init__.py @@ -64,7 +64,7 @@ class FeatherWikiApp(app_module.App): self.add(info) menu_item = menu.Menu('menu-featherwiki', info.name, - info.short_description, info.icon_filename, + info.icon_filename, info.tags, 'featherwiki:index', parent_url_name='apps') self.add(menu_item) @@ -72,11 +72,10 @@ class FeatherWikiApp(app_module.App): # Expecting a large number of wiki files, so creating a shortcut for # each file (like in ikiwiki's case) will crowd the front page. shortcut = frontpage.Shortcut( - 'shortcut-featherwiki', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-featherwiki', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, - url='/featherwiki/', clients=info.clients, login_required=True, - allowed_groups=list(groups)) + url='/featherwiki/', clients=info.clients, tags=info.tags, + login_required=True, allowed_groups=list(groups)) self.add(shortcut) dropin_configs = DropinConfigs('dropin-configs-featherwiki', [ diff --git a/plinth/modules/firewall/__init__.py b/plinth/modules/firewall/__init__.py index a6f09b46c..d76f59968 100644 --- a/plinth/modules/firewall/__init__.py +++ b/plinth/modules/firewall/__init__.py @@ -63,7 +63,7 @@ class FirewallApp(app_module.App): manual_page='Firewall', tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-firewall', info.name, None, info.icon, + menu_item = menu.Menu('menu-firewall', info.name, info.icon, info.tags, 'firewall:index', parent_url_name='system:security', order=30) self.add(menu_item) diff --git a/plinth/modules/gitweb/__init__.py b/plinth/modules/gitweb/__init__.py index 7309980e7..59e350318 100644 --- a/plinth/modules/gitweb/__init__.py +++ b/plinth/modules/gitweb/__init__.py @@ -50,15 +50,14 @@ class GitwebApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-gitweb', info.name, info.short_description, - info.icon_filename, 'gitweb:index', + menu_item = menu.Menu('menu-gitweb', info.name, info.icon_filename, + info.tags, 'gitweb:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-gitweb', info.name, - short_description=info.short_description, icon=info.icon_filename, url='/gitweb/', - clients=info.clients, + clients=info.clients, tags=info.tags, login_required=True, allowed_groups=list(groups)) self.add(shortcut) diff --git a/plinth/modules/help/__init__.py b/plinth/modules/help/__init__.py index f8582a528..f57924a5b 100644 --- a/plinth/modules/help/__init__.py +++ b/plinth/modules/help/__init__.py @@ -30,27 +30,27 @@ class HelpApp(app_module.App): is_essential=True) self.add(info) - menu_item = menu.Menu('menu-help', _('Help'), None, 'fa-book', + menu_item = menu.Menu('menu-help', _('Help'), 'fa-book', None, 'help:index', parent_url_name='index') self.add(menu_item) menu_item = menu.Menu('menu-help-manual', - pgettext_lazy('User guide', 'Manual'), None, - 'fa-info-circle', 'help:manual', + pgettext_lazy('User guide', 'Manual'), + 'fa-info-circle', None, 'help:manual', parent_url_name='help:index', order=10) self.add(menu_item) - menu_item = menu.Menu('menu-help-support', _('Get Support'), None, - 'fa-life-ring', 'help:support', + menu_item = menu.Menu('menu-help-support', _('Get Support'), + 'fa-life-ring', None, 'help:support', parent_url_name='help:index', order=20) self.add(menu_item) - menu_item = menu.Menu('menu-help-feedback', _('Submit Feedback'), None, - 'fa-comments', 'help:feedback', + menu_item = menu.Menu('menu-help-feedback', _('Submit Feedback'), + 'fa-comments', None, 'help:feedback', parent_url_name='help:index', order=25) self.add(menu_item) - menu_item = menu.Menu('menu-help-contribute', _('Contribute'), None, - 'fa-wrench', 'help:contribute', + menu_item = menu.Menu('menu-help-contribute', _('Contribute'), + 'fa-wrench', None, 'help:contribute', parent_url_name='help:index', order=30) self.add(menu_item) - menu_item = menu.Menu('menu-help-about', _('About'), None, 'fa-star', + menu_item = menu.Menu('menu-help-about', _('About'), 'fa-star', None, 'help:about', parent_url_name='help:index', order=100) self.add(menu_item) diff --git a/plinth/modules/ikiwiki/__init__.py b/plinth/modules/ikiwiki/__init__.py index 3a5886c4d..dac1d284d 100644 --- a/plinth/modules/ikiwiki/__init__.py +++ b/plinth/modules/ikiwiki/__init__.py @@ -48,9 +48,9 @@ class IkiwikiApp(app_module.App): donation_url='https://ikiwiki.info/tipjar/') self.add(info) - menu_item = menu.Menu('menu-ikiwiki', info.name, - info.short_description, info.icon_filename, - 'ikiwiki:index', parent_url_name='apps') + menu_item = menu.Menu('menu-ikiwiki', info.name, info.icon_filename, + info.tags, 'ikiwiki:index', + parent_url_name='apps') self.add(menu_item) packages = Packages('packages-ikiwiki', [ diff --git a/plinth/modules/infinoted/__init__.py b/plinth/modules/infinoted/__init__.py index 108dc734a..17fb6d430 100644 --- a/plinth/modules/infinoted/__init__.py +++ b/plinth/modules/infinoted/__init__.py @@ -44,17 +44,16 @@ class InfinotedApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-infinoted', info.name, - info.short_description, info.icon_filename, - 'infinoted:index', parent_url_name='apps') + menu_item = menu.Menu('menu-infinoted', info.name, info.icon_filename, + info.tags, 'infinoted:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-infinoted', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-infinoted', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, configure_url=reverse_lazy('infinoted:index'), - clients=info.clients, login_required=False) + clients=info.clients, tags=info.tags, login_required=False) self.add(shortcut) packages = Packages('packages-infinoted', ['infinoted']) diff --git a/plinth/modules/janus/__init__.py b/plinth/modules/janus/__init__.py index 2a8a1ed02..64a1d0f39 100644 --- a/plinth/modules/janus/__init__.py +++ b/plinth/modules/janus/__init__.py @@ -45,16 +45,14 @@ class JanusApp(app_module.App): tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-janus', info.name, info.short_description, - info.icon_filename, 'janus:index', - parent_url_name='apps') + menu_item = menu.Menu('menu-janus', info.name, info.icon_filename, + info.tags, 'janus:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-janus', info.name, - info.short_description, info.icon_filename, reverse_lazy('janus:room'), - clients=manifest.clients) + clients=manifest.clients, tags=info.tags) self.add(shortcut) packages = Packages('packages-janus', [ diff --git a/plinth/modules/jsxc/__init__.py b/plinth/modules/jsxc/__init__.py index 0f9d21f04..b51e3cd93 100644 --- a/plinth/modules/jsxc/__init__.py +++ b/plinth/modules/jsxc/__init__.py @@ -40,19 +40,17 @@ class JSXCApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-jsxc', info.name, info.short_description, - info.icon_filename, 'jsxc:index', - parent_url_name='apps') + menu_item = menu.Menu('menu-jsxc', info.name, info.icon_filename, + info.tags, 'jsxc:index', parent_url_name='apps') self.add(menu_item) enable_state = app_module.EnableState('enable-state-jsxc') self.add(enable_state) shortcut = frontpage.Shortcut('shortcut-jsxc', name=info.name, - short_description=info.short_description, icon=info.icon_filename, url=reverse_lazy('jsxc:jsxc'), - clients=info.clients) + clients=info.clients, tags=info.tags) self.add(shortcut) packages = Packages('packages-jsxc', ['libjs-jsxc']) diff --git a/plinth/modules/kiwix/__init__.py b/plinth/modules/kiwix/__init__.py index c7e048653..36b0a60ca 100644 --- a/plinth/modules/kiwix/__init__.py +++ b/plinth/modules/kiwix/__init__.py @@ -59,15 +59,13 @@ class KiwixApp(app_module.App): donation_url='https://www.kiwix.org/en/support-us/') self.add(info) - menu_item = menu.Menu('menu-kiwix', info.name, info.short_description, - info.icon_filename, 'kiwix:index', - parent_url_name='apps') + menu_item = menu.Menu('menu-kiwix', info.name, info.icon_filename, + info.tags, 'kiwix:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-kiwix', info.name, - short_description=info.short_description, icon=info.icon_filename, url='/kiwix', - clients=info.clients, + clients=info.clients, tags=info.tags, login_required=False, allowed_groups=list(groups)) self.add(shortcut) diff --git a/plinth/modules/letsencrypt/__init__.py b/plinth/modules/letsencrypt/__init__.py index 9175318ba..e86ab4d48 100644 --- a/plinth/modules/letsencrypt/__init__.py +++ b/plinth/modules/letsencrypt/__init__.py @@ -63,9 +63,8 @@ class LetsEncryptApp(app_module.App): donation_url='https://letsencrypt.org/donate/') self.add(info) - menu_item = menu.Menu('menu-letsencrypt', info.name, - info.short_description, info.icon, - 'letsencrypt:index', + menu_item = menu.Menu('menu-letsencrypt', info.name, info.icon, + info.tags, 'letsencrypt:index', parent_url_name='system:security', order=20) self.add(menu_item) diff --git a/plinth/modules/matrixsynapse/__init__.py b/plinth/modules/matrixsynapse/__init__.py index d5c06de4b..46f917374 100644 --- a/plinth/modules/matrixsynapse/__init__.py +++ b/plinth/modules/matrixsynapse/__init__.py @@ -59,16 +59,15 @@ class MatrixSynapseApp(app_module.App): self.add(info) menu_item = menu.Menu('menu-matrixsynapse', info.name, - info.short_description, 'matrixsynapse', + info.icon_filename, info.tags, 'matrixsynapse:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-matrixsynapse', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-matrixsynapse', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, configure_url=reverse_lazy('matrixsynapse:index'), - clients=info.clients, login_required=True) + clients=info.clients, tags=info.tags, login_required=True) self.add(shortcut) # Include python3-psycopg2 to prevent accidental uninstall diff --git a/plinth/modules/matrixsynapse/templates/matrix-synapse.html b/plinth/modules/matrixsynapse/templates/matrix-synapse.html index f2b3134d6..42b4dc67e 100644 --- a/plinth/modules/matrixsynapse/templates/matrix-synapse.html +++ b/plinth/modules/matrixsynapse/templates/matrix-synapse.html @@ -6,6 +6,11 @@ {% load i18n %} {% load static %} +{% block page_js %} + +{% endblock %} + {% block status %} {{ block.super }} @@ -87,8 +92,3 @@ {% endif %} {% endblock %} - -{% block page_js %} - -{% endblock %} diff --git a/plinth/modules/mediawiki/__init__.py b/plinth/modules/mediawiki/__init__.py index 968a1f7ad..18bf69ed7 100644 --- a/plinth/modules/mediawiki/__init__.py +++ b/plinth/modules/mediawiki/__init__.py @@ -54,15 +54,15 @@ class MediaWikiApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-mediawiki', info.name, - info.short_description, info.icon_filename, - 'mediawiki:index', parent_url_name='apps') + menu_item = menu.Menu('menu-mediawiki', info.name, info.icon_filename, + info.tags, 'mediawiki:index', + parent_url_name='apps') self.add(menu_item) shortcut = Shortcut('shortcut-mediawiki', info.name, - short_description=info.short_description, icon=info.icon_filename, url='/mediawiki', - clients=info.clients, login_required=True) + clients=info.clients, tags=info.tags, + login_required=True) self.add(shortcut) packages = Packages('packages-mediawiki', diff --git a/plinth/modules/mediawiki/templates/mediawiki.html b/plinth/modules/mediawiki/templates/mediawiki.html index 0e39685c8..843c29470 100644 --- a/plinth/modules/mediawiki/templates/mediawiki.html +++ b/plinth/modules/mediawiki/templates/mediawiki.html @@ -7,5 +7,6 @@ {% load static %} {% block page_js %} - + {% endblock %} diff --git a/plinth/modules/minetest/__init__.py b/plinth/modules/minetest/__init__.py index 5261fd51e..c4924d74a 100644 --- a/plinth/modules/minetest/__init__.py +++ b/plinth/modules/minetest/__init__.py @@ -60,17 +60,16 @@ class MinetestApp(app_module.App): donation_url='https://www.minetest.net/get-involved/#donate') self.add(info) - menu_item = menu.Menu('menu-minetest', info.name, - info.short_description, info.icon_filename, - 'minetest:index', parent_url_name='apps') + menu_item = menu.Menu('menu-minetest', info.name, info.icon_filename, + info.tags, 'minetest:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-minetest', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-minetest', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, configure_url=reverse_lazy('minetest:index'), clients=info.clients, - login_required=False) + tags=info.tags, login_required=False) self.add(shortcut) packages = Packages('packages-minetest', ['minetest-server'] + _mods) diff --git a/plinth/modules/minidlna/__init__.py b/plinth/modules/minidlna/__init__.py index bf2c93e4c..2d27309ee 100644 --- a/plinth/modules/minidlna/__init__.py +++ b/plinth/modules/minidlna/__init__.py @@ -48,21 +48,17 @@ class MiniDLNAApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu( - 'menu-minidlna', - name=info.name, - short_description=info.short_description, - url_name='minidlna:index', - parent_url_name='apps', - icon=info.icon_filename, - ) + menu_item = menu.Menu('menu-minidlna', name=info.name, + icon=info.icon_filename, tags=info.tags, + url_name='minidlna:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-minidlna', info.name, - short_description=info.short_description, - description=info.description, icon=info.icon_filename, - configure_url=reverse_lazy('minidlna:index'), login_required=True) + 'shortcut-minidlna', info.name, description=info.description, + icon=info.icon_filename, + configure_url=reverse_lazy('minidlna:index'), tags=info.tags, + login_required=True) self.add(shortcut) packages = Packages('packages-minidlna', ['minidlna']) diff --git a/plinth/modules/miniflux/__init__.py b/plinth/modules/miniflux/__init__.py index b08caa451..223cc1d72 100644 --- a/plinth/modules/miniflux/__init__.py +++ b/plinth/modules/miniflux/__init__.py @@ -47,15 +47,14 @@ class MinifluxApp(app_module.App): donation_url='https://miniflux.app/#donations') self.add(info) - menu_item = menu.Menu('menu-miniflux', info.name, - info.short_description, info.icon_filename, - 'miniflux:index', parent_url_name='apps') + menu_item = menu.Menu('menu-miniflux', info.name, info.icon_filename, + info.tags, 'miniflux:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-miniflux', info.name, - info.short_description, info.icon_filename, url='/miniflux', - clients=manifest.clients, + clients=manifest.clients, tags=info.tags, login_required=True) self.add(shortcut) diff --git a/plinth/modules/miniflux/privileged.py b/plinth/modules/miniflux/privileged.py index 4e8cb4669..09ad35cab 100644 --- a/plinth/modules/miniflux/privileged.py +++ b/plinth/modules/miniflux/privileged.py @@ -83,7 +83,7 @@ def _run_miniflux_interactively(command: str, username: str, child.sendline(password) child.expect(pexpect.EOF) - raw_message = child.before.decode() + raw_message = child.before.decode() # type: ignore try: json_message = json.loads(raw_message) except (KeyError, json.JSONDecodeError): diff --git a/plinth/modules/mumble/__init__.py b/plinth/modules/mumble/__init__.py index 39427e6e1..54de7f0d4 100644 --- a/plinth/modules/mumble/__init__.py +++ b/plinth/modules/mumble/__init__.py @@ -50,15 +50,16 @@ class MumbleApp(app_module.App): donation_url='https://wiki.mumble.info/wiki/Donate') self.add(info) - menu_item = menu.Menu('menu-mumble', info.name, info.short_description, - 'mumble', 'mumble:index', parent_url_name='apps') + menu_item = menu.Menu('menu-mumble', info.name, info.icon_filename, + info.tags, 'mumble:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-mumble', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-mumble', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, - configure_url=reverse_lazy('mumble:index'), clients=info.clients) + configure_url=reverse_lazy('mumble:index'), clients=info.clients, + tags=info.tags) self.add(shortcut) packages = Packages('packages-mumble', ['mumble-server']) diff --git a/plinth/modules/names/__init__.py b/plinth/modules/names/__init__.py index 476e03e56..3a9883fab 100644 --- a/plinth/modules/names/__init__.py +++ b/plinth/modules/names/__init__.py @@ -56,7 +56,7 @@ class NamesApp(app_module.App): manual_page='NameServices', tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-names', info.name, None, info.icon, + menu_item = menu.Menu('menu-names', info.name, info.icon, info.tags, 'names:index', parent_url_name='system:visibility', order=10) self.add(menu_item) diff --git a/plinth/modules/networks/__init__.py b/plinth/modules/networks/__init__.py index 2ad055c50..879e95451 100644 --- a/plinth/modules/networks/__init__.py +++ b/plinth/modules/networks/__init__.py @@ -44,7 +44,7 @@ class NetworksApp(app_module.App): manual_page='Networks', tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-networks', info.name, None, info.icon, + menu_item = menu.Menu('menu-networks', info.name, info.icon, info.tags, 'networks:index', parent_url_name='system:system', order=20) self.add(menu_item) diff --git a/plinth/modules/networks/templates/connections_edit.html b/plinth/modules/networks/templates/connections_edit.html index 4a3725592..59bb64073 100644 --- a/plinth/modules/networks/templates/connections_edit.html +++ b/plinth/modules/networks/templates/connections_edit.html @@ -6,6 +6,11 @@ {% load i18n %} {% load static %} +{% block page_js %} + +{% endblock %} + {% block content %}

{{ title }}

@@ -20,9 +25,3 @@ {% endblock %} - -{% block page_js %} - - - -{% endblock %} diff --git a/plinth/modules/nextcloud/__init__.py b/plinth/modules/nextcloud/__init__.py index 4160b3158..97d4a4bad 100644 --- a/plinth/modules/nextcloud/__init__.py +++ b/plinth/modules/nextcloud/__init__.py @@ -68,16 +68,15 @@ class NextcloudApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-nextcloud', info.name, - info.short_description, info.icon_filename, - 'nextcloud:index', parent_url_name='apps') + menu_item = menu.Menu('menu-nextcloud', info.name, info.icon_filename, + info.tags, 'nextcloud:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-nextcloud', info.name, - short_description=info.short_description, icon=info.icon_filename, url='/nextcloud/', clients=info.clients, - login_required=True) + tags=info.tags, login_required=True) self.add(shortcut) packages = Packages('packages-nextcloud', [ diff --git a/plinth/modules/openvpn/__init__.py b/plinth/modules/openvpn/__init__.py index b83f1e796..3811f504a 100644 --- a/plinth/modules/openvpn/__init__.py +++ b/plinth/modules/openvpn/__init__.py @@ -48,9 +48,9 @@ class OpenVPNApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-openvpn', info.name, - info.short_description, info.icon_filename, - 'openvpn:index', parent_url_name='apps') + menu_item = menu.Menu('menu-openvpn', info.name, info.icon_filename, + info.tags, 'openvpn:index', + parent_url_name='apps') self.add(menu_item) download_profile = \ @@ -58,12 +58,11 @@ class OpenVPNApp(app_module.App): 'Download Profile'), link=reverse_lazy('openvpn:profile')) shortcut = frontpage.Shortcut( - 'shortcut-openvpn', info.name, - short_description=info.short_description, icon=info.icon_filename, - description=info.description + [download_profile], + 'shortcut-openvpn', info.name, icon=info.icon_filename, + description=(info.description or []) + [download_profile], manual_page=info.manual_page, - configure_url=reverse_lazy('openvpn:index'), login_required=True, - allowed_groups=['vpn']) + configure_url=reverse_lazy('openvpn:index'), tags=info.tags, + login_required=True, allowed_groups=['vpn']) self.add(shortcut) packages = Packages('packages-openvpn', diff --git a/plinth/modules/pagekite/__init__.py b/plinth/modules/pagekite/__init__.py index b1d5e1b10..037d45eb6 100644 --- a/plinth/modules/pagekite/__init__.py +++ b/plinth/modules/pagekite/__init__.py @@ -61,8 +61,7 @@ class PagekiteApp(app_module.App): donation_url='https://pagekite.net/support/faq/#donate') self.add(info) - menu_item = menu.Menu('menu-pagekite', info.name, - info.short_description, info.icon, + menu_item = menu.Menu('menu-pagekite', info.name, info.icon, info.tags, 'pagekite:index', parent_url_name='system:visibility', order=40) self.add(menu_item) diff --git a/plinth/modules/performance/__init__.py b/plinth/modules/performance/__init__.py index 6c48c9f34..ced77abd4 100644 --- a/plinth/modules/performance/__init__.py +++ b/plinth/modules/performance/__init__.py @@ -43,9 +43,8 @@ class PerformanceApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-performance', info.name, - info.short_description, info.icon, - 'performance:index', + menu_item = menu.Menu('menu-performance', info.name, info.icon, + info.tags, 'performance:index', parent_url_name='system:administration', order=40) self.add(menu_item) diff --git a/plinth/modules/power/__init__.py b/plinth/modules/power/__init__.py index 144cde9bc..b14ddabf3 100644 --- a/plinth/modules/power/__init__.py +++ b/plinth/modules/power/__init__.py @@ -33,7 +33,7 @@ class PowerApp(app_module.App): manual_page='Power', tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-power', info.name, None, info.icon, + menu_item = menu.Menu('menu-power', info.name, info.icon, info.tags, 'power:index', parent_url_name='system:administration', order=50) diff --git a/plinth/modules/privacy/__init__.py b/plinth/modules/privacy/__init__.py index 1b0910fab..7b5567954 100644 --- a/plinth/modules/privacy/__init__.py +++ b/plinth/modules/privacy/__init__.py @@ -1,17 +1,23 @@ # SPDX-License-Identifier: AGPL-3.0-or-later """FreedomBox app to the Privacy app.""" +import logging +import subprocess +from typing import Literal + from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_noop from plinth import app as app_module -from plinth import menu +from plinth import kvstore, menu from plinth.config import DropinConfigs from plinth.modules.backups.components import BackupRestore from plinth.package import Packages from . import manifest, privileged +logger = logging.getLogger(__name__) + _description = [_('Manage system-wide privacy settings.')] @@ -20,7 +26,7 @@ class PrivacyApp(app_module.App): app_id = 'privacy' - _version = 3 + _version = 4 can_be_disabled = False @@ -34,8 +40,7 @@ class PrivacyApp(app_module.App): manual_page=None, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-privacy', info.name, - info.short_description, info.icon, + menu_item = menu.Menu('menu-privacy', info.name, info.icon, info.tags, 'privacy:index', parent_url_name='system:data', order=10) self.add(menu_item) @@ -59,7 +64,7 @@ class PrivacyApp(app_module.App): if old_version == 0: privileged.set_configuration(enable_popcon=True) - if old_version < 3: + if old_version < 4: _show_privacy_notification() @@ -85,3 +90,39 @@ def _show_privacy_notification(): severity='info', title=title, message=message, actions=actions_, data=data, group='admin', dismissed=False) + + +def get_ip_lookup_url(): + """Return the URL to use to lookup external IP address.""" + return kvstore.get_default('ip_lookup_url', + 'https://ddns.freedombox.org/ip/') + + +def set_ip_lookup_url(ip_lookup_url: str): + """Set the URL to use to lookup external IP address.""" + kvstore.set('ip_lookup_url', ip_lookup_url) + + +def lookup_public_address(ip_type: Literal['ipv4', 'ipv6']) -> str: + """Return the IP of this server/network by querying an external server.""" + lookup_url = get_ip_lookup_url() + if not lookup_url: + raise RuntimeError('Lookup URL not configured') + + ip_option = '-6' if ip_type == 'ipv6' else '-4' + try: + ip_address = subprocess.check_output([ + 'wget', ip_option, '-o', '/dev/null', '-t', '3', '-T', '3', '-O', + '-', lookup_url + ]) + return ip_address.decode().strip().lower() + except subprocess.CalledProcessError as exception: + logger.warning('Unable to lookup external IP with URL %s: %s', + lookup_url, exception) + message_map = { + 4: 'Network failure', + 5: 'SSL error', + 8: 'Server reponded with error' + } + raise RuntimeError( + message_map.get(exception.returncode, 'Unknown error')) diff --git a/plinth/modules/privacy/forms.py b/plinth/modules/privacy/forms.py index 1bcebe0fc..7312e2835 100644 --- a/plinth/modules/privacy/forms.py +++ b/plinth/modules/privacy/forms.py @@ -2,6 +2,7 @@ """FreedomBox privacy app.""" from django import forms +from django.core import validators from django.utils.translation import gettext_lazy as _ from plinth import cfg @@ -12,6 +13,14 @@ from plinth.utils import format_lazy class PrivacyForm(forms.Form): """Privacy configuration form.""" + help_ip_lookup_url = format_lazy( + _('Optional Value. This URL is used to determine the publicly visible ' + 'IP address of your {box_name}. The URL should simply return the ' + 'IPv4 or IPv6 address where the client request comes from. Default ' + 'is to use the service provided by the FreedomBox Foundation at ' + 'https://ddns.freedombox.org/ip/. If empty, lookups are disabled ' + 'and some functionality will fail.'), box_name=_(cfg.box_name)) + enable_popcon = forms.BooleanField( label=_('Periodically submit a list of apps used (suggested)'), required=False, help_text=format_lazy( @@ -32,6 +41,11 @@ class PrivacyForm(forms.Form): 'internet connectivity is available. Can be disabled in most ' 'cases if network connectivity is stable and reliable.')) + ip_lookup_url = forms.CharField( + label=_('URL to look up public IP address'), required=False, + help_text=help_ip_lookup_url, + validators=[validators.URLValidator(schemes=['http', 'https'])]) + def __init__(self, *args, **kwargs): """Disable DNS fallback field if necessary.""" super().__init__(*args, **kwargs) diff --git a/plinth/modules/privacy/manifest.py b/plinth/modules/privacy/manifest.py index a0019680e..9b31f5e07 100644 --- a/plinth/modules/privacy/manifest.py +++ b/plinth/modules/privacy/manifest.py @@ -7,4 +7,4 @@ from . import privileged backup = {'config': {'files': [str(privileged.CONFIG_FILE)]}} -tags = [_('Usage reporting'), _('Fallback DNS')] +tags = [_('Usage reporting'), _('External services'), _('Fallback DNS')] diff --git a/plinth/modules/privacy/views.py b/plinth/modules/privacy/views.py index 5dd7c6f65..b6fb7490d 100644 --- a/plinth/modules/privacy/views.py +++ b/plinth/modules/privacy/views.py @@ -5,7 +5,7 @@ from django.contrib import messages from django.utils.translation import gettext as _ import plinth.modules.names.privileged as names_privileged -from plinth.modules import names +from plinth.modules import names, privacy from plinth.modules.privacy.forms import PrivacyForm from plinth.views import AppView @@ -22,6 +22,7 @@ class PrivacyAppView(AppView): """Return the values to fill in the form.""" initial = super().get_initial() initial.update(privileged.get_configuration()) + initial['ip_lookup_url'] = privacy.get_ip_lookup_url() if names.is_resolved_installed(): initial.update(names_privileged.get_resolved_configuration()) @@ -43,6 +44,10 @@ class PrivacyAppView(AppView): dns_fallback=new_config['dns_fallback']) is_changed = True + if old_config['ip_lookup_url'] != new_config['ip_lookup_url']: + privacy.set_ip_lookup_url(new_config['ip_lookup_url']) + is_changed = True + if changes: privileged.set_configuration(**changes) diff --git a/plinth/modules/privoxy/__init__.py b/plinth/modules/privoxy/__init__.py index 3ab6c1965..c909a9734 100644 --- a/plinth/modules/privoxy/__init__.py +++ b/plinth/modules/privoxy/__init__.py @@ -57,16 +57,16 @@ class PrivoxyApp(app_module.App): tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-privoxy', info.name, - info.short_description, info.icon_filename, - 'privoxy:index', parent_url_name='apps') + menu_item = menu.Menu('menu-privoxy', info.name, info.icon_filename, + info.tags, 'privoxy:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-privoxy', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-privoxy', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, - configure_url=reverse_lazy('privoxy:index'), login_required=True) + configure_url=reverse_lazy('privoxy:index'), tags=info.tags, + login_required=True) self.add(shortcut) packages = Packages('packages-privoxy', ['privoxy']) diff --git a/plinth/modules/quassel/__init__.py b/plinth/modules/quassel/__init__.py index 78ec3a591..3ae0de6f0 100644 --- a/plinth/modules/quassel/__init__.py +++ b/plinth/modules/quassel/__init__.py @@ -53,17 +53,16 @@ class QuasselApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-quassel', info.name, - info.short_description, info.icon_filename, - 'quassel:index', parent_url_name='apps') + menu_item = menu.Menu('menu-quassel', info.name, info.icon_filename, + info.tags, 'quassel:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-quassel', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-quassel', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, configure_url=reverse_lazy('quassel:index'), clients=info.clients, - login_required=True) + tags=info.tags, login_required=True) self.add(shortcut) packages = Packages('packages-quassel', ['quassel-core']) diff --git a/plinth/modules/radicale/__init__.py b/plinth/modules/radicale/__init__.py index b9d416bcf..cc312ac98 100644 --- a/plinth/modules/radicale/__init__.py +++ b/plinth/modules/radicale/__init__.py @@ -56,16 +56,15 @@ class RadicaleApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-radicale', info.name, - info.short_description, info.icon_filename, - 'radicale:index', parent_url_name='apps') + menu_item = menu.Menu('menu-radicale', info.name, info.icon_filename, + info.tags, 'radicale:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-radicale', info.name, - short_description=info.short_description, icon=info.icon_filename, url='/radicale/', clients=info.clients, - login_required=True) + tags=info.tags, login_required=True) self.add(shortcut) packages = Packages('packages-radicale', ['radicale']) diff --git a/plinth/modules/roundcube/__init__.py b/plinth/modules/roundcube/__init__.py index bfc08c6d0..cc3ab1040 100644 --- a/plinth/modules/roundcube/__init__.py +++ b/plinth/modules/roundcube/__init__.py @@ -53,16 +53,15 @@ class RoundcubeApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-roundcube', info.name, - info.short_description, info.icon_filename, - 'roundcube:index', parent_url_name='apps') + menu_item = menu.Menu('menu-roundcube', info.name, info.icon_filename, + info.tags, 'roundcube:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-roundcube', info.name, - short_description=info.short_description, icon=info.icon_filename, url='/roundcube/', clients=info.clients, - login_required=True) + tags=info.tags, login_required=True) self.add(shortcut) packages = Packages( diff --git a/plinth/modules/rssbridge/__init__.py b/plinth/modules/rssbridge/__init__.py index 31d34d8dc..e29833db2 100644 --- a/plinth/modules/rssbridge/__init__.py +++ b/plinth/modules/rssbridge/__init__.py @@ -54,15 +54,15 @@ class RSSBridgeApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-rssbridge', info.name, - info.short_description, info.icon_filename, - 'rssbridge:index', parent_url_name='apps') + menu_item = menu.Menu('menu-rssbridge', info.name, info.icon_filename, + info.tags, 'rssbridge:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-rssbridge', name=info.name, - short_description=info.short_description, icon=info.icon_filename, - url='/rss-bridge/', login_required=True, + url='/rss-bridge/', tags=info.tags, + login_required=True, allowed_groups=list(groups)) self.add(shortcut) diff --git a/plinth/modules/samba/__init__.py b/plinth/modules/samba/__init__.py index 3cf817589..f1ed37f3a 100644 --- a/plinth/modules/samba/__init__.py +++ b/plinth/modules/samba/__init__.py @@ -57,17 +57,15 @@ class SambaApp(app_module.App): donation_url='https://www.samba.org/samba/donations.html') self.add(info) - menu_item = menu.Menu('menu-samba', info.name, info.short_description, - info.icon_filename, 'samba:index', - parent_url_name='apps') + menu_item = menu.Menu('menu-samba', info.name, info.icon_filename, + info.tags, 'samba:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-samba', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-samba', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, configure_url=reverse_lazy('samba:index'), clients=info.clients, - login_required=True, allowed_groups=list(groups)) + tags=info.tags, login_required=True, allowed_groups=list(groups)) self.add(shortcut) packages = Packages('packages-samba', ['samba', 'acl']) diff --git a/plinth/modules/searx/__init__.py b/plinth/modules/searx/__init__.py index fb3fa6afd..44bab52ed 100644 --- a/plinth/modules/searx/__init__.py +++ b/plinth/modules/searx/__init__.py @@ -44,15 +44,13 @@ class SearxApp(app_module.App): donation_url='https://searx.me/static/donate.html') self.add(info) - menu_item = menu.Menu('menu-searx', info.name, info.short_description, - info.icon_filename, 'searx:index', - parent_url_name='apps') + menu_item = menu.Menu('menu-searx', info.name, info.icon_filename, + info.tags, 'searx:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-searx', info.name, - short_description=info.short_description, icon=info.icon_filename, - url='/searx/', clients=info.clients, + 'shortcut-searx', info.name, icon=info.icon_filename, + url='/searx/', clients=info.clients, tags=info.tags, login_required=(not is_public_access_enabled()), allowed_groups=list(groups)) self.add(shortcut) diff --git a/plinth/modules/security/__init__.py b/plinth/modules/security/__init__.py index f366e057b..b692f27a3 100644 --- a/plinth/modules/security/__init__.py +++ b/plinth/modules/security/__init__.py @@ -37,7 +37,7 @@ class SecurityApp(app_module.App): tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-security', info.name, None, info.icon, + menu_item = menu.Menu('menu-security', info.name, info.icon, info.tags, 'security:index', parent_url_name='system:security', order=10) self.add(menu_item) diff --git a/plinth/modules/shaarli/__init__.py b/plinth/modules/shaarli/__init__.py index 1db43ea33..c26d61596 100644 --- a/plinth/modules/shaarli/__init__.py +++ b/plinth/modules/shaarli/__init__.py @@ -38,15 +38,14 @@ class ShaarliApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-shaarli', info.name, - info.short_description, info.icon_filename, - 'shaarli:index', parent_url_name='apps') + menu_item = menu.Menu('menu-shaarli', info.name, info.icon_filename, + info.tags, 'shaarli:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-shaarli', info.name, - short_description=info.short_description, icon=info.icon_filename, url='/shaarli', - clients=info.clients, + clients=info.clients, tags=info.tags, login_required=True) self.add(shortcut) diff --git a/plinth/modules/shadowsocks/__init__.py b/plinth/modules/shadowsocks/__init__.py index 908bd3e65..e08819ed8 100644 --- a/plinth/modules/shadowsocks/__init__.py +++ b/plinth/modules/shadowsocks/__init__.py @@ -54,15 +54,14 @@ class ShadowsocksApp(app_module.App): self.add(info) menu_item = menu.Menu('menu-shadowsocks', info.name, - info.short_description, info.icon_filename, + info.icon_filename, info.tags, 'shadowsocks:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-shadowsocks', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-shadowsocks', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, - configure_url=reverse_lazy('shadowsocks:index'), + configure_url=reverse_lazy('shadowsocks:index'), tags=info.tags, login_required=True) self.add(shortcut) diff --git a/plinth/modules/shadowsocksserver/__init__.py b/plinth/modules/shadowsocksserver/__init__.py index 52073f770..49df83ee4 100644 --- a/plinth/modules/shadowsocksserver/__init__.py +++ b/plinth/modules/shadowsocksserver/__init__.py @@ -51,17 +51,16 @@ class ShadowsocksServerApp(app_module.App): self.add(info) menu_item = menu.Menu('menu-shadowsocks-server', info.name, - info.short_description, info.icon_filename, + info.icon_filename, info.tags, 'shadowsocksserver:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-shadowsocks-server', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-shadowsocks-server', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, configure_url=reverse_lazy('shadowsocksserver:index'), - login_required=True) + tags=info.tags, login_required=True) self.add(shortcut) packages = Packages('packages-shadowsocks-server', diff --git a/plinth/modules/sharing/__init__.py b/plinth/modules/sharing/__init__.py index 8650a899e..3836c6073 100644 --- a/plinth/modules/sharing/__init__.py +++ b/plinth/modules/sharing/__init__.py @@ -36,8 +36,8 @@ class SharingApp(app_module.App): tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-sharing', info.name, None, - info.icon_filename, 'sharing:index', + menu_item = menu.Menu('menu-sharing', info.name, info.icon_filename, + info.tags, 'sharing:index', parent_url_name='apps') self.add(menu_item) diff --git a/plinth/modules/sharing/templates/sharing_add_edit.html b/plinth/modules/sharing/templates/sharing_add_edit.html index e48a265bb..e38fffc39 100644 --- a/plinth/modules/sharing/templates/sharing_add_edit.html +++ b/plinth/modules/sharing/templates/sharing_add_edit.html @@ -7,6 +7,11 @@ {% load i18n %} {% load static %} +{% block page_js %} + +{% endblock %} + {% block content %}

{{ title }}

@@ -21,7 +26,3 @@ {% endblock %} - -{% block page_js %} - -{% endblock %} diff --git a/plinth/modules/snapshot/__init__.py b/plinth/modules/snapshot/__init__.py index edf0d4aff..6b211c938 100644 --- a/plinth/modules/snapshot/__init__.py +++ b/plinth/modules/snapshot/__init__.py @@ -52,7 +52,7 @@ class SnapshotApp(app_module.App): manual_page='Snapshots', tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-snapshot', info.name, None, info.icon, + menu_item = menu.Menu('menu-snapshot', info.name, info.icon, info.tags, 'snapshot:index', parent_url_name='system:data', order=40) self.add(menu_item) diff --git a/plinth/modules/snapshot/templates/snapshot_manage.html b/plinth/modules/snapshot/templates/snapshot_manage.html index ab7a5c670..24be26f8a 100644 --- a/plinth/modules/snapshot/templates/snapshot_manage.html +++ b/plinth/modules/snapshot/templates/snapshot_manage.html @@ -7,6 +7,11 @@ {% load i18n %} {% load static %} +{% block page_js %} + +{% endblock %} + {% block configuration %}
@@ -71,8 +76,3 @@
{% endblock %} - -{% block page_js %} - -{% endblock %} - diff --git a/plinth/modules/ssh/__init__.py b/plinth/modules/ssh/__init__.py index 1e2120175..bd0cfe8db 100644 --- a/plinth/modules/ssh/__init__.py +++ b/plinth/modules/ssh/__init__.py @@ -44,7 +44,7 @@ class SSHApp(app_module.App): manual_page='SecureShell', tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-ssh', info.name, None, info.icon, + menu_item = menu.Menu('menu-ssh', info.name, info.icon, info.tags, 'ssh:index', parent_url_name='system:administration', order=10) diff --git a/plinth/modules/storage/__init__.py b/plinth/modules/storage/__init__.py index ccf9fd06b..526049146 100644 --- a/plinth/modules/storage/__init__.py +++ b/plinth/modules/storage/__init__.py @@ -49,7 +49,7 @@ class StorageApp(app_module.App): manual_page='Storage', tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-storage', info.name, None, info.icon, + menu_item = menu.Menu('menu-storage', info.name, info.icon, info.tags, 'storage:index', parent_url_name='system:data', order=30) self.add(menu_item) diff --git a/plinth/modules/syncthing/__init__.py b/plinth/modules/syncthing/__init__.py index 5c70779f6..57a789d83 100644 --- a/plinth/modules/syncthing/__init__.py +++ b/plinth/modules/syncthing/__init__.py @@ -64,16 +64,15 @@ class SyncthingApp(app_module.App): tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-syncthing', info.name, - info.short_description, info.icon_filename, - 'syncthing:index', parent_url_name='apps') + menu_item = menu.Menu('menu-syncthing', info.name, info.icon_filename, + info.tags, 'syncthing:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-syncthing', info.name, - short_description=info.short_description, icon=info.icon_filename, url='/syncthing/', clients=info.clients, - login_required=True, + tags=info.tags, login_required=True, allowed_groups=list(self.groups)) self.add(shortcut) diff --git a/plinth/modules/tiddlywiki/__init__.py b/plinth/modules/tiddlywiki/__init__.py index 24a2556eb..e4de62ffd 100644 --- a/plinth/modules/tiddlywiki/__init__.py +++ b/plinth/modules/tiddlywiki/__init__.py @@ -68,20 +68,19 @@ class TiddlyWikiApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-tiddlywiki', info.name, - info.short_description, info.icon_filename, - 'tiddlywiki:index', parent_url_name='apps') + menu_item = menu.Menu('menu-tiddlywiki', info.name, info.icon_filename, + info.tags, 'tiddlywiki:index', + parent_url_name='apps') self.add(menu_item) # The shortcut is a simple directory listing provided by Apache server. # Expecting a large number of wiki files, so creating a shortcut for # each file (like in ikiwiki's case) will crowd the front page. shortcut = frontpage.Shortcut( - 'shortcut-tiddlywiki', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-tiddlywiki', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, - url='/tiddlywiki/', clients=info.clients, login_required=True, - allowed_groups=list(groups)) + url='/tiddlywiki/', clients=info.clients, tags=info.tags, + login_required=True, allowed_groups=list(groups)) self.add(shortcut) dropin_configs = DropinConfigs('dropin-configs-tiddlywiki', [ diff --git a/plinth/modules/tor/__init__.py b/plinth/modules/tor/__init__.py index c3ebc8a42..6592f236b 100644 --- a/plinth/modules/tor/__init__.py +++ b/plinth/modules/tor/__init__.py @@ -66,9 +66,8 @@ class TorApp(app_module.App): donation_url='https://donate.torproject.org/') self.add(info) - menu_item = menu.Menu('menu-tor', info.name, info.short_description, - info.icon_filename, 'tor:index', - parent_url_name='apps') + menu_item = menu.Menu('menu-tor', info.name, info.icon_filename, + info.tags, 'tor:index', parent_url_name='apps') self.add(menu_item) packages = Packages('packages-tor', diff --git a/plinth/modules/tor/templates/tor.html b/plinth/modules/tor/templates/tor.html index 812cf7c6a..ece5c5f5f 100644 --- a/plinth/modules/tor/templates/tor.html +++ b/plinth/modules/tor/templates/tor.html @@ -7,6 +7,11 @@ {% load i18n %} {% load static %} +{% block page_js %} + +{% endblock %} + {% block status %} {{ block.super }} @@ -37,7 +42,3 @@ {% block internal_zone %} {{ block.super }} {% endblock %} - -{% block page_js %} - -{% endblock %} diff --git a/plinth/modules/torproxy/__init__.py b/plinth/modules/torproxy/__init__.py index 14f353c40..53ca2aaf7 100644 --- a/plinth/modules/torproxy/__init__.py +++ b/plinth/modules/torproxy/__init__.py @@ -61,16 +61,16 @@ class TorProxyApp(app_module.App): donation_url='https://donate.torproject.org/') self.add(info) - menu_item = menu.Menu('menu-torproxy', info.name, - info.short_description, info.icon_filename, - 'torproxy:index', parent_url_name='apps') + menu_item = menu.Menu('menu-torproxy', info.name, info.icon_filename, + info.tags, 'torproxy:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-torproxy', info.name, - short_description=info.short_description, icon=info.icon_filename, + 'shortcut-torproxy', info.name, icon=info.icon_filename, description=info.description, manual_page=info.manual_page, - configure_url=reverse_lazy('torproxy:index'), login_required=True) + configure_url=reverse_lazy('torproxy:index'), tags=info.tags, + login_required=True) self.add(shortcut) packages = Packages('packages-torproxy', [ diff --git a/plinth/modules/torproxy/templates/torproxy.html b/plinth/modules/torproxy/templates/torproxy.html index fdfb9fde3..4466771ba 100644 --- a/plinth/modules/torproxy/templates/torproxy.html +++ b/plinth/modules/torproxy/templates/torproxy.html @@ -6,5 +6,6 @@ {% load static %} {% block page_js %} - + {% endblock %} diff --git a/plinth/modules/transmission/__init__.py b/plinth/modules/transmission/__init__.py index f3d5d5b30..eee46cebd 100644 --- a/plinth/modules/transmission/__init__.py +++ b/plinth/modules/transmission/__init__.py @@ -79,15 +79,16 @@ class TransmissionApp(app_module.App): self.add(info) menu_item = menu.Menu('menu-transmission', info.name, - info.short_description, info.icon_filename, + info.icon_filename, info.tags, 'transmission:index', parent_url_name='apps') self.add(menu_item) - shortcut = frontpage.Shortcut( - 'shortcut-transmission', info.name, - short_description=info.short_description, icon=info.icon_filename, - url='/transmission', clients=info.clients, login_required=True, - allowed_groups=list(groups)) + shortcut = frontpage.Shortcut('shortcut-transmission', info.name, + icon=info.icon_filename, + url='/transmission', + clients=info.clients, tags=info.tags, + login_required=True, + allowed_groups=list(groups)) self.add(shortcut) packages = Packages('packages-transmission', ['transmission-daemon']) diff --git a/plinth/modules/ttrss/__init__.py b/plinth/modules/ttrss/__init__.py index 520404860..a5900e9cf 100644 --- a/plinth/modules/ttrss/__init__.py +++ b/plinth/modules/ttrss/__init__.py @@ -54,15 +54,13 @@ class TTRSSApp(app_module.App): donation_url='https://www.patreon.com/cthulhoo') self.add(info) - menu_item = menu.Menu('menu-ttrss', info.name, info.short_description, - info.icon_filename, 'ttrss:index', - parent_url_name='apps') + menu_item = menu.Menu('menu-ttrss', info.name, info.icon_filename, + info.tags, 'ttrss:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-ttrss', info.name, - short_description=info.short_description, icon=info.icon_filename, url='/tt-rss', - clients=info.clients, + clients=info.clients, tags=info.tags, login_required=True, allowed_groups=list(groups)) self.add(shortcut) diff --git a/plinth/modules/upgrades/__init__.py b/plinth/modules/upgrades/__init__.py index f14fd69ec..12f532e9e 100644 --- a/plinth/modules/upgrades/__init__.py +++ b/plinth/modules/upgrades/__init__.py @@ -66,7 +66,7 @@ class UpgradesApp(app_module.App): manual_page='Upgrades', tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-upgrades', info.name, None, info.icon, + menu_item = menu.Menu('menu-upgrades', info.name, info.icon, info.tags, 'upgrades:index', parent_url_name='system:system', order=50) self.add(menu_item) diff --git a/plinth/modules/users/__init__.py b/plinth/modules/users/__init__.py index 82feb4cbe..71e6418cb 100644 --- a/plinth/modules/users/__init__.py +++ b/plinth/modules/users/__init__.py @@ -61,7 +61,7 @@ class UsersApp(app_module.App): manual_page='Users', tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-users', info.name, None, info.icon, + menu_item = menu.Menu('menu-users', info.name, info.icon, info.tags, 'users:index', parent_url_name='system:system', order=10) self.add(menu_item) diff --git a/plinth/modules/users/templates/users_update.html b/plinth/modules/users/templates/users_update.html index 1600f843d..2eb84bb85 100644 --- a/plinth/modules/users/templates/users_update.html +++ b/plinth/modules/users/templates/users_update.html @@ -7,6 +7,11 @@ {% load i18n %} {% load static %} +{% block page_js %} + +{% endblock %} + {% block content %}

{% blocktrans trimmed with username=object.username %} @@ -67,7 +72,3 @@ {% endblock %} - -{% block page_js %} - -{% endblock %} diff --git a/plinth/modules/wireguard/__init__.py b/plinth/modules/wireguard/__init__.py index 3648489be..5b17cfbd2 100644 --- a/plinth/modules/wireguard/__init__.py +++ b/plinth/modules/wireguard/__init__.py @@ -51,15 +51,15 @@ class WireguardApp(app_module.App): donation_url='https://www.wireguard.com/donations/') self.add(info) - menu_item = menu.Menu('menu-wireguard', info.name, - info.short_description, info.icon_filename, - 'wireguard:index', parent_url_name='apps') + menu_item = menu.Menu('menu-wireguard', info.name, info.icon_filename, + info.tags, 'wireguard:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut( - 'shortcut-wireguard', info.name, - short_description=info.short_description, icon=info.icon_filename, - description=info.description, manual_page=info.manual_page, + 'shortcut-wireguard', info.name, icon=info.icon_filename, + tags=info.tags, description=info.description, + manual_page=info.manual_page, configure_url=reverse_lazy('wireguard:index'), login_required=True, clients=info.clients) self.add(shortcut) diff --git a/plinth/modules/wordpress/__init__.py b/plinth/modules/wordpress/__init__.py index 1fba940fd..c416abc70 100644 --- a/plinth/modules/wordpress/__init__.py +++ b/plinth/modules/wordpress/__init__.py @@ -57,15 +57,15 @@ class WordPressApp(app_module.App): donation_url='https://wordpressfoundation.org/donate/') self.add(info) - menu_item = menu.Menu('menu-wordpress', info.name, - info.short_description, info.icon_filename, - 'wordpress:index', parent_url_name='apps') + menu_item = menu.Menu('menu-wordpress', info.name, info.icon_filename, + info.tags, 'wordpress:index', + parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-wordpress', info.name, - short_description=info.short_description, icon=info.icon_filename, - url='/wordpress/', clients=info.clients) + url='/wordpress/', clients=info.clients, + tags=info.tags) self.add(shortcut) # Add php to avoid wordpress package bringing in lib-apache2-mod-php. diff --git a/plinth/modules/zoph/__init__.py b/plinth/modules/zoph/__init__.py index 2f6adabed..5526da95f 100644 --- a/plinth/modules/zoph/__init__.py +++ b/plinth/modules/zoph/__init__.py @@ -58,15 +58,13 @@ class ZophApp(app_module.App): clients=manifest.clients, tags=manifest.tags) self.add(info) - menu_item = menu.Menu('menu-zoph', info.name, info.short_description, - info.icon_filename, 'zoph:index', - parent_url_name='apps') + menu_item = menu.Menu('menu-zoph', info.name, info.icon_filename, + info.tags, 'zoph:index', parent_url_name='apps') self.add(menu_item) shortcut = frontpage.Shortcut('shortcut-zoph', info.name, - short_description=info.short_description, icon=info.icon_filename, url='/zoph/', - clients=info.clients, + clients=info.clients, tags=info.tags, login_required=True) self.add(shortcut) diff --git a/plinth/templates/app-header.html b/plinth/templates/app-header.html index 26d451577..e584a6f2f 100644 --- a/plinth/templates/app-header.html +++ b/plinth/templates/app-header.html @@ -27,9 +27,6 @@ {% else %}

{{ app_info.name }}

{% endif %} - {% if app_info.short_description %} -

{{ app_info.short_description }}

- {% endif %} {% endblock %} {% if app_enable_disable_form %} diff --git a/plinth/templates/apps.html b/plinth/templates/apps.html index d4f5106d8..098be288b 100644 --- a/plinth/templates/apps.html +++ b/plinth/templates/apps.html @@ -6,6 +6,10 @@ {% load static %} {% load i18n %} +{% block page_js %} + +{% endblock %} + {% block body_class %}apps-page{% endblock %} {% block tags %} @@ -46,7 +50,3 @@ {% endif %} {% endblock %} - -{% block page_js %} - -{% endblock %} diff --git a/plinth/templates/base.html b/plinth/templates/base.html index 813a476e5..c32e8f0fd 100644 --- a/plinth/templates/base.html +++ b/plinth/templates/base.html @@ -64,6 +64,8 @@ + {% block app_js %}{% endblock %} + {% block page_js %}{% endblock %} {% if refresh_page_sec is not None %}