mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-10-18 07:31:55 +00:00
Release v20.15 to unstable
-----BEGIN PGP SIGNATURE----- iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAl97sOEWHGp2YWxsZXJv eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICOTLEADMMYYYpDVZQYiFA9Os70I8xhGa btc0WPqbPd1FmLZbxZgeen3Oi2d5ijD2Kl5hPW6hGw1+UeeHtvgj7DA1HEMlofIH 9AXXdOiz4rhASbcZTPrfFUuOrpmgEIMNXy53sFiD44OgRaC1iRq7asuT7OVu5YTv i+dnQp99B9hXLqLu8kzNfRB1umb5NBmFx76p2d/JUw4HpAIPEKGbcpRKZ7KiweDX h80ZCnyeFTNjAo+AEv5BetXd8wnHYZ8Z+/S+lfuR8alcsPnlXcAYsFZ+Y6VKEeI3 XOPsfBaAS7WZJi/kWz+GTRxMu7CC1W59AlzPhNvqzL0yHDUpk+SfpV1sB4wlRic1 9naPUv8ys40sevUDuLYjkb1WgjHAcYKSrZ4QySjzTdmdby7pS1zgAoY7kt7XfFnl NUkdwdihdZSPS5Uftho2DgvNEJht2FIn19mQoJzehEL76IaVcmFRAHe+r5Zz5zE6 V6A4VcX9BZ0EsyANmAaXnNYGTIrDvDL2SZE8qTyamxxsy3xTFubQcm43/cCR5jml YihnrHdNR4Ec/+2dKVRN06K/aLJJ8VShhAAc7Q/pjY2HGZ2FUSeCQzrNVRwhLwOh JKCF4ALrreCknCqaKf69y4TKYqAhKdtH2DzdW0Z7O7ZtXQ45SzX+DgQtz7mA794g Bik1z+W/2DBt7TzmwA== =iWRL -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQJKBAABCgA0FiEEfWrbdQ+RCFWJSEvmd8DHXntlCAgFAl9/kIgWHGp2YWxsZXJv eUBtYWlsYm94Lm9yZwAKCRB3wMdee2UICBUXEACLpqG9bmnO+vgJzDAUBn5ppRZo sC2MFjJzsKYep23VpNndw5Xk9xRhGKdu08IOoNy1J7epKRJv4EY2naFjBWeRQzdO kTIaMDsEWRyrvK6s8XBif5rhdZ250Bk6s8VBobGFtNJQcSSlzFyIXrxt9FkUTo0P DOzdDLVWLxt/WiCzdGjbUQ3Cih35GTPVXbphUKvAD08aFsrEjNgulZV8ghrerRYx N1h6W3UTjP3t9DChR0EJo5Bro762y+PG+/mUmMgcoHgbZbm0tcFObtDl805yY9ak c9NT0zhx1vcuOH96YrwUBp6Y8OFAukEh241aFuED8UrF2SaAnsNa6QpHijCleWj9 LDRwqsGrs17Rl4QkD4aj2ole9walYlAOj/P+iiX2ZXVttywJenHGFpN4Jq7uNkP4 81X5SHQyomTQ3/7nb3KDGvpx7XWaSbrMyhS0ZYDEZOVkMYtyn3xe426Oy7DFuP5o xg2mmgzLSLg6iI4RrfEbc2/6pPM3s83D2gCME9H+9q3NHYyHAtdS/FH5w3QPbnS5 SDI2pgkkrGIaDRacxdFWPzFeXFjrDKEo2ePiNnQw99wQ8E6wIFpjMMn/8zsHQvgH gl1PLF9NnSYcYKM7vDs+pwTJ3+Es7NCxnYN7k5wlDEv4TJvy9EQbvjH+WQr4SeRU pIiQyQPFQKUMhdeDKw== =6Q8s -----END PGP SIGNATURE----- Merge tag 'v20.15' into debian/buster-backports Release v20.15 to unstable Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
commit
3e4ebcefd4
@ -31,7 +31,7 @@ Naming conventions:
|
||||
repository.
|
||||
* Before committing your changes ensure that your code conforms to base code
|
||||
hygiene by running tests (see HACKING.md) and the automatic code formatting
|
||||
tools `yapf` and `isort`.
|
||||
tools `yapf` and `isort`. Please check also with `flake8`.
|
||||
* Please include one single feature per merge request, to keep the review simple
|
||||
and focused on one topic. (This might still mean hundreds of lines of code.)
|
||||
Use a branch other than `master`, so you can create multiple merge requests
|
||||
|
||||
192
HACKING.md
192
HACKING.md
@ -1,17 +1,51 @@
|
||||
# Hacking
|
||||
|
||||
## Requirements for Development OS
|
||||
This document provides reference information for FreedomBox **contribution** hacking **procedures**:
|
||||
1. [Picking a task to work on](#picking-a-task-to-work-on)
|
||||
1. [Setting up and using development environments](#development-environments-setting-up-and-their-usage)
|
||||
1. [Contributing translations + how to make/keep FreedomBox international](#makingkeeping-freedombox-international)
|
||||
1. [Testing](#testing)
|
||||
1. [Building user documentation](#building-the-user-documentation-separately)
|
||||
1. [Submitting your changes](#submitting-your-changes)
|
||||
1. [Other related stuff](#miscelanea)
|
||||
|
||||
It doesn't cover arquitecture, design choices, or other product internals.
|
||||
|
||||
## Picking a task to work on
|
||||
|
||||
You can report bugs on FreedomBox Service's (Plinth's) [issue
|
||||
tracker](https://salsa.debian.org/freedombox-team/freedombox/issues).
|
||||
Newcomers will find easy, self-contained tasks tagged as "beginner".
|
||||
|
||||
Source code for FreedomBox Service is available from
|
||||
[salsa.debian.org](https://salsa.debian.org/freedombox-team/freedombox).
|
||||
|
||||
|
||||
|
||||
## Development environments: setting up and their usage
|
||||
|
||||
### Requirements for Development OS
|
||||
|
||||
FreedomBox is built as part of Debian GNU/Linux. However, you don't need to
|
||||
install Debian to do development for FreedomBox. FreedomBox development is
|
||||
typically done on a container or a Virtual Machine.
|
||||
typically done with a container or a Virtual Machine.
|
||||
|
||||
* For running a container, you need systemd containers, Git, Python and a
|
||||
* For running a container, you need systemd containers, Git, Python3 and a
|
||||
sudo-enabled user. This approach is recommended.
|
||||
* For running a VM, you can work on any operating system that can install latest
|
||||
versions of Git, Vagrant and VirtualBox.
|
||||
|
||||
## Using Containers
|
||||
In addition:
|
||||
|
||||
- To run code quality checks you need flake8 and yapf. These may be installed
|
||||
inside the container with Python3 and pip but installing them on host leads to
|
||||
smoother development experience.
|
||||
- To update translation strings on the host machine, you need Django and gettext
|
||||
to be installed on host machine. These can be installed with Python3 and pip.
|
||||
- You need Mumble voice chat software to participate in bi-weekly live
|
||||
development discussions.
|
||||
|
||||
### Using Containers
|
||||
|
||||
The `./container` script shipped with FreedomBox source code can manage the
|
||||
development environment inside a systemd-nspawn container.
|
||||
@ -43,7 +77,7 @@ development environment inside a systemd-nspawn container.
|
||||
host$ ./container ssh
|
||||
```
|
||||
|
||||
### Using after Setup
|
||||
#### Using after Setup
|
||||
|
||||
After logging into the container, the source code is available in `/freedombox`
|
||||
directory:
|
||||
@ -71,7 +105,7 @@ guest$ sudo ./setup.py install
|
||||
|
||||
Note: This development container has automatic upgrades disabled by default.
|
||||
|
||||
### Troubleshooting
|
||||
#### Troubleshooting
|
||||
|
||||
* Sometimes `host$ ./container destroy && ./container up` doesn't work. In such
|
||||
cases, try to delete the hidden `.container` folder and then `host$
|
||||
@ -79,13 +113,17 @@ Note: This development container has automatic upgrades disabled by default.
|
||||
* Not all kinds of changes are automatically updated. Try `guest$ sudo mount -o
|
||||
remount /freedombox`.
|
||||
|
||||
## Using Vagrant
|
||||
|
||||
[back to index](#hacking)
|
||||
|
||||
|
||||
### Using Vagrant
|
||||
|
||||
Use VirtualBox and Vagrant if for some reason the container option is not
|
||||
suitable, such as when you are running non-GNU/Linux machine or a non-systemd
|
||||
machine.
|
||||
|
||||
### For Debian GNU/Linux and Derivatives
|
||||
#### For Debian GNU/Linux and Derivatives
|
||||
|
||||
1. Install Git, Vagrant and VirtualBox using apt.
|
||||
|
||||
@ -93,7 +131,7 @@ machine.
|
||||
$ sudo apt install git virtualbox vagrant
|
||||
```
|
||||
|
||||
#### Installing VirtualBox manually
|
||||
##### Installing VirtualBox manually
|
||||
|
||||
1. Add Oracle's key to apt's list of accepted keys.
|
||||
|
||||
@ -126,11 +164,11 @@ Example for Buster:
|
||||
$ sudo apt install virtualbox-6.1
|
||||
```
|
||||
|
||||
### For Other GNU/Linux Distributions or *BSDs
|
||||
#### For Other GNU/Linux Distributions or *BSDs
|
||||
|
||||
1. Install Git, Vagrant and VirtualBox using your favourite package manager.
|
||||
|
||||
### For macOS
|
||||
#### For macOS
|
||||
|
||||
1. Install [Homebrew](https://brew.sh/).
|
||||
|
||||
@ -142,7 +180,7 @@ Example for Buster:
|
||||
$ brew cask install vagrant
|
||||
```
|
||||
|
||||
### For Windows
|
||||
#### For Windows
|
||||
|
||||
1. Install [Git](https://git-scm.com/download/windows),
|
||||
[VirtualBox](https://www.virtualbox.org/wiki/Downloads) and
|
||||
@ -157,7 +195,7 @@ Example for Buster:
|
||||
|
||||
3. Run all the following commands inside Git Bash.
|
||||
|
||||
### Setting Up Development Environment Using Vagrant
|
||||
#### Setting Up Development Environment Using Vagrant
|
||||
|
||||
Vagrant is a free software command line utility for managing the life cycle of
|
||||
virtual machines. The FreedomBox project provides ready-made virtual machines
|
||||
@ -187,7 +225,7 @@ and requires about 4.5 GB of disk space.
|
||||
host$ vagrant ssh
|
||||
```
|
||||
|
||||
### Using the Virtual Machine
|
||||
#### Using the Virtual Machine
|
||||
|
||||
After logging into the virtual machine (VM), the source code is available in
|
||||
/vagrant directory:
|
||||
@ -216,7 +254,48 @@ vm$ sudo ./setup.py install
|
||||
Note: This development virtual machine has automatic upgrades disabled by
|
||||
default.
|
||||
|
||||
## Running Tests
|
||||
|
||||
[back to index](#hacking)
|
||||
|
||||
|
||||
## Making/keeping FreedomBox international
|
||||
|
||||
### Marking text for translation
|
||||
|
||||
To mark text for translation, FreedomBox uses Django's translation strings. A
|
||||
module should e.g. `from django.utils.translation import ugettext as _` and wrap
|
||||
user-facing text with `_()`. Use it like this:
|
||||
|
||||
```python
|
||||
message = _('Application successfully installed and configured.')
|
||||
```
|
||||
|
||||
See [Django
|
||||
documentation](https://docs.djangoproject.com/en/3.1/topics/i18n/translation/)
|
||||
for more details.
|
||||
|
||||
### Translating literals (contributing translations)
|
||||
|
||||
The easiest way to start translating is with your browser, by using
|
||||
[Weblate](https://hosted.weblate.org/projects/freedombox/plinth/).
|
||||
Your changes will automatically get pushed to the code repository.
|
||||
|
||||
Alternatively, you can directly edit the `.po` file in your language directory
|
||||
`Plinth/plinth/locale/` and create a pull request (see [CONTRIBUTING.md](CONTRIBUTING.md)).
|
||||
In that case, consider introducing yourself on #freedombox IRC (irc.debian.org),
|
||||
because some work may have been done already on the [Debian translators
|
||||
discussion lists](https://www.debian.org/MailingLists/subscribe)
|
||||
or the Weblate localization platform.
|
||||
|
||||
For more information on translations: https://wiki.debian.org/FreedomBox/Translate
|
||||
|
||||
|
||||
[back to index](#hacking)
|
||||
|
||||
|
||||
## Testing
|
||||
|
||||
### Running Tests
|
||||
|
||||
To run all the tests in the container/VM:
|
||||
|
||||
@ -249,7 +328,7 @@ guest$ py.test-3 plinth/tests/test_actions.py::TestActions
|
||||
guest$ py.test-3 plinth/tests/test_actions.py::TestActions::test_is_package_manager_busy
|
||||
```
|
||||
|
||||
## Running the Test Coverage Analysis
|
||||
### Running the Test Coverage Analysis
|
||||
|
||||
To run the coverage tool in the container/VM:
|
||||
|
||||
@ -271,11 +350,15 @@ with color-coding in the left margin to indicate which statements or branches
|
||||
were executed via the tests (green) and which statements or branches were not
|
||||
executed (red).
|
||||
|
||||
## Running Functional Tests
|
||||
|
||||
### Install Dependencies
|
||||
[back to index](#hacking)
|
||||
|
||||
#### For running tests inside the container
|
||||
|
||||
### Functional Tests
|
||||
|
||||
#### Install Dependencies
|
||||
|
||||
##### For running tests inside the container
|
||||
|
||||
Inside the container run
|
||||
|
||||
@ -283,7 +366,7 @@ Inside the container run
|
||||
guest$ cd /freedombox ; sudo plinth/tests/functional/install.sh
|
||||
```
|
||||
|
||||
#### For running tests inside the VM
|
||||
##### For running tests inside the VM
|
||||
|
||||
From the host, provision the virtual machine with tests:
|
||||
|
||||
@ -291,7 +374,7 @@ From the host, provision the virtual machine with tests:
|
||||
host$ vagrant provision --provision-with tests
|
||||
```
|
||||
|
||||
#### For running tests on host machine
|
||||
##### For running tests on host machine
|
||||
|
||||
Follow the instructions below to run the tests on host machine. If you wish
|
||||
perform the tests on host machine, the host machine must be based on Debian
|
||||
@ -311,7 +394,7 @@ host$ sudo apt install smbclient # optional, to test samba
|
||||
you can place at /usr/local/bin/geckodriver . Geckodriver will use whichever
|
||||
binary is named 'firefox' for launching the browser and interacting with it.
|
||||
|
||||
### Run FreedomBox Service
|
||||
#### Run FreedomBox Service
|
||||
|
||||
*Warning*: Functional tests will change the configuration of the system
|
||||
under test, including changing the hostname and users. Therefore you
|
||||
@ -324,7 +407,7 @@ interface of FreedomBox should be accessible at https://localhost:4430/.
|
||||
To run samba tests, port 4450 on the host should be forwarded to port 445
|
||||
on the guest.
|
||||
|
||||
### Setup FreedomBox Service for tests
|
||||
#### Setup FreedomBox Service for tests
|
||||
|
||||
Via Plinth, create a new user as follows:
|
||||
|
||||
@ -334,12 +417,12 @@ Via Plinth, create a new user as follows:
|
||||
This step is optional if a fresh install of Plinth is being tested. Functional
|
||||
tests will create the required user using FreedomBox's first boot process.
|
||||
|
||||
### Run Functional Tests
|
||||
#### Running Functional Tests
|
||||
|
||||
**When inside a container/VM you will need to target the guest**
|
||||
|
||||
```bash
|
||||
guest$ export FREEDOMBOX_URL=https://localhost FREEDOMBOX_SAMBA_PORT=445
|
||||
guest$ export FREEDOMBOX_URL=https://localhost FREEDOMBOX_SSH_PORT=22 FREEDOMBOX_SAMBA_PORT=445
|
||||
```
|
||||
|
||||
You will be running `py.test-3`.
|
||||
@ -370,7 +453,11 @@ installed.
|
||||
$ py.test-3 -n 4 --dist=loadfile --include-functional -m essential
|
||||
```
|
||||
|
||||
## Building the Documentation Separately
|
||||
|
||||
[back to index](#hacking)
|
||||
|
||||
|
||||
## Building the User Documentation Separately
|
||||
|
||||
FreedomBox Service (Plinth) man page is built from DocBook source in the `doc/`
|
||||
directory. FreedomBox manual is downloaded from the wiki is also available
|
||||
@ -382,47 +469,24 @@ To build the documentation separately, run:
|
||||
guest$ make -C doc
|
||||
```
|
||||
|
||||
## Repository
|
||||
|
||||
FreedomBox Service (Plinth) is available from
|
||||
[salsa.debian.org](https://salsa.debian.org/freedombox-team/freedombox).
|
||||
[back to index](#hacking)
|
||||
|
||||
## Bugs & TODO
|
||||
|
||||
You can report bugs on FreedomBox Service's (Plinth's) [issue
|
||||
tracker](https://salsa.debian.org/freedombox-team/freedombox/issues).
|
||||
## Submitting your changes
|
||||
|
||||
See CONTRIBUTING.md for information how to best contribute code.
|
||||
See [CONTRIBUTING.md](CONTRIBUTING.md) for information how to best contribute code.
|
||||
|
||||
## Internationalization
|
||||
|
||||
To mark text for translation, FreedomBox Service (Plinth) uses Django's
|
||||
translation strings. A module should e.g. `from django.utils.translation import
|
||||
ugettext as _` and wrap user-facing text with `_()`. Use it like this:
|
||||
[back to index](#hacking)
|
||||
|
||||
```python
|
||||
message = _('Application successfully installed and configured.')
|
||||
```
|
||||
|
||||
## Translations
|
||||
## Miscelanea
|
||||
|
||||
The easiest way to start translating is with your browser, by using
|
||||
[Weblate](https://hosted.weblate.org/projects/freedombox/plinth/).
|
||||
Your changes will automatically get pushed to the code repository.
|
||||
|
||||
Alternatively, you can directly edit the `.po` file in your language directory
|
||||
`Plinth/plinth/locale/` and create a pull request (see CONTRIBUTING.md).
|
||||
In that case, consider introducing yourself on #freedombox IRC (irc.debian.org),
|
||||
because some work may have been done already on the [Debian translators
|
||||
discussion lists](https://www.debian.org/MailingLists/subscribe)
|
||||
or the Weblate localization platform.
|
||||
|
||||
For more information on translations: https://wiki.debian.org/FreedomBox/Translate
|
||||
|
||||
## Application Icons
|
||||
### Application Icons
|
||||
|
||||
When adding a new App into FreedomBox, an icon is needed to represent the app in
|
||||
the application view and for shortcuts in the front page. The following the
|
||||
the application view and for shortcuts in the front page. Follow these
|
||||
guidelines for creating an app icon:
|
||||
|
||||
- Use SVG format.
|
||||
@ -433,3 +497,19 @@ guidelines for creating an app icon:
|
||||
- Background should be transparent.
|
||||
- Leave no margins and prefer a square icon. If the icon is wide, leave top and
|
||||
bottom margins. If the icon is tall, leave left and right margins.
|
||||
|
||||
### Team Coordination
|
||||
|
||||
The project team coordinates by means of bi-weekly [audio
|
||||
calls](https://wiki.debian.org/FreedomBox/ProgressCalls) and IRC discussions on
|
||||
#freedombox-dev at oftc.net.
|
||||
|
||||
### Other Development Informations
|
||||
|
||||
* Generic [contribution overview](https://wiki.debian.org/FreedomBox/Contribute)
|
||||
* [How to create apps for FreedomBox (Developer Manual)](https://docs.freedombox.org)
|
||||
* User Experience [design](https://wiki.debian.org/FreedomBox/Design)
|
||||
* [Code contribution](https://wiki.debian.org/FreedomBox/Contribute/Code)
|
||||
|
||||
|
||||
[back to index](#hacking)
|
||||
|
||||
@ -148,7 +148,7 @@ def subcommand_setup(arguments):
|
||||
passwords[1]: 'editor',
|
||||
passwords[2]: 'viewer',
|
||||
},
|
||||
'DEFAULT_PERMISSIONS': '',
|
||||
'DEFAULT_PERMISSIONS': 'read',
|
||||
}
|
||||
conf_file_write(conf)
|
||||
CONF_FILE.chmod(0o640)
|
||||
|
||||
76
actions/calibre
Executable file
76
actions/calibre
Executable file
@ -0,0 +1,76 @@
|
||||
#!/usr/bin/python3
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""
|
||||
Configuration helper for calibre.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import pathlib
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from plinth.modules import calibre
|
||||
|
||||
LIBRARIES_PATH = pathlib.Path('/var/lib/calibre-server-freedombox/libraries')
|
||||
|
||||
|
||||
def parse_arguments():
|
||||
"""Return parsed command line arguments as dictionary."""
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest='subcommand', help='Sub command')
|
||||
|
||||
subparsers.add_parser('list-libraries',
|
||||
help='Return the list of libraries setup')
|
||||
subparser = subparsers.add_parser('create-library',
|
||||
help='Create an empty library')
|
||||
subparser.add_argument('name', help='Name of the new library')
|
||||
subparser = subparsers.add_parser('delete-library',
|
||||
help='Delete a library and its contents')
|
||||
subparser.add_argument('name', help='Name of the library to delete')
|
||||
|
||||
subparsers.required = True
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def subcommand_list_libraries(_):
|
||||
"""Return the list of libraries setup."""
|
||||
libraries = []
|
||||
for library in LIBRARIES_PATH.glob('*/metadata.db'):
|
||||
libraries.append(str(library.parent.name))
|
||||
|
||||
print(json.dumps({'libraries': libraries}))
|
||||
|
||||
|
||||
def subcommand_create_library(arguments):
|
||||
"""Create an empty library."""
|
||||
calibre.validate_library_name(arguments.name)
|
||||
library = LIBRARIES_PATH / arguments.name
|
||||
library.mkdir(mode=0o755) # Raise exception if already exists
|
||||
subprocess.call(
|
||||
['calibredb', '--with-library', library, 'list_categories'],
|
||||
stdout=subprocess.DEVNULL)
|
||||
|
||||
# Force systemd StateDirectory= logic to assign proper ownership to the
|
||||
# DynamicUser=
|
||||
shutil.chown(LIBRARIES_PATH.parent, 'root', 'root')
|
||||
|
||||
|
||||
def subcommand_delete_library(arguments):
|
||||
"""Delete a library and its contents."""
|
||||
calibre.validate_library_name(arguments.name)
|
||||
library = LIBRARIES_PATH / arguments.name
|
||||
shutil.rmtree(library)
|
||||
|
||||
|
||||
def main():
|
||||
"""Parse arguments and perform all duties."""
|
||||
arguments = parse_arguments()
|
||||
|
||||
subcommand = arguments.subcommand.replace('-', '_')
|
||||
subcommand_method = globals()['subcommand_' + subcommand]
|
||||
subcommand_method(arguments)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@ -1,14 +1,19 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
"""
|
||||
Configure Mumble server.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import pathlib
|
||||
import sys
|
||||
from subprocess import Popen, PIPE
|
||||
from subprocess import PIPE, Popen
|
||||
|
||||
import augeas
|
||||
|
||||
CONFIG_FILE = '/etc/mumble-server.ini'
|
||||
DATA_DIR = '/var/lib/mumble-server'
|
||||
|
||||
|
||||
def parse_arguments():
|
||||
@ -17,24 +22,38 @@ def parse_arguments():
|
||||
parser = argparse.ArgumentParser()
|
||||
subparsers = parser.add_subparsers(dest='subcommand', help='Sub command')
|
||||
|
||||
subparsers.add_parser('setup', help='Setup Mumble server')
|
||||
subparsers.add_parser('create-password',
|
||||
help='Setup mumble superuser password')
|
||||
|
||||
subparsers.add_parser('get-domain', help='Print Mumble domain')
|
||||
subparser = subparsers.add_parser('set-domain', help='Setup Mumble domain')
|
||||
subparser.add_argument('domain_name', help='Domain name to be allowed')
|
||||
|
||||
subparsers.required = True
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def subcommand_setup(_):
|
||||
"""Setup Mumble server."""
|
||||
aug = load_augeas()
|
||||
aug.set('.anon/sslCert', DATA_DIR + '/fullchain.pem')
|
||||
aug.set('.anon/sslKey', DATA_DIR + '/privkey.pem')
|
||||
aug.save()
|
||||
|
||||
|
||||
def read_from_stdin():
|
||||
"""Read password from stdin"""
|
||||
|
||||
return (''.join(sys.stdin)).strip()
|
||||
|
||||
|
||||
def subcommand_create_password(arguments):
|
||||
def subcommand_create_password(_):
|
||||
"""Save superuser password with murmurd command"""
|
||||
|
||||
password = read_from_stdin()
|
||||
|
||||
cmd = ['murmurd', '-ini', '/etc/mumble-server.ini', '-readsupw']
|
||||
cmd = ['murmurd', '-ini', CONFIG_FILE, '-readsupw']
|
||||
proc = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=False)
|
||||
|
||||
# The exit code of the command above seems to be 1 when successful!
|
||||
@ -45,12 +64,36 @@ def subcommand_create_password(arguments):
|
||||
|
||||
phrase = "Superuser password set on server"
|
||||
if phrase not in err:
|
||||
print(
|
||||
"Error occured while saving password: %s" % err
|
||||
)
|
||||
print("Error occured while saving password: %s" % err)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def subcommand_get_domain(_):
|
||||
"""Print the file containing domain name or empty string."""
|
||||
domain_file = pathlib.Path('/var/lib/mumble-server/domain-freedombox')
|
||||
try:
|
||||
print(domain_file.read_text())
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
|
||||
def subcommand_set_domain(arguments):
|
||||
"""Write a file containing domain name."""
|
||||
domain_file = pathlib.Path('/var/lib/mumble-server/domain-freedombox')
|
||||
domain_file.write_text(arguments.domain_name)
|
||||
|
||||
|
||||
def load_augeas():
|
||||
"""Initialize Augeas."""
|
||||
aug = augeas.Augeas(flags=augeas.Augeas.NO_LOAD +
|
||||
augeas.Augeas.NO_MODL_AUTOLOAD)
|
||||
aug.transform('Php', CONFIG_FILE)
|
||||
aug.set('/augeas/context', '/files' + CONFIG_FILE)
|
||||
aug.load()
|
||||
|
||||
return aug
|
||||
|
||||
|
||||
def main():
|
||||
"""Parse arguments and perform all duties."""
|
||||
arguments = parse_arguments()
|
||||
|
||||
@ -14,7 +14,7 @@ def parse_arguments():
|
||||
subparsers = parser.add_subparsers(dest='subcommand', help='Sub command')
|
||||
|
||||
subparser = subparsers.add_parser('set-domain',
|
||||
help='Setup Cockpit configuration')
|
||||
help='Setup Quassel configuration')
|
||||
subparser.add_argument('domain_name', help='Domain name to be allowed')
|
||||
|
||||
subparsers.required = True
|
||||
|
||||
31
actions/ssh
31
actions/ssh
@ -5,6 +5,7 @@ Configuration helper for SSH server.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import grp
|
||||
import os
|
||||
import pwd
|
||||
import shutil
|
||||
@ -14,7 +15,7 @@ import sys
|
||||
|
||||
import augeas
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth import action_utils, utils
|
||||
|
||||
|
||||
def parse_arguments():
|
||||
@ -32,6 +33,7 @@ def parse_arguments():
|
||||
help='Set SSH authorized keys')
|
||||
set_keys.add_argument('--username', required=True, type=_managed_user)
|
||||
set_keys.add_argument('--keys', required=True)
|
||||
set_keys.add_argument('--auth-user', required=True)
|
||||
|
||||
subparsers.add_parser('get-password-config',
|
||||
help='Get SSH password auth configuration')
|
||||
@ -44,6 +46,24 @@ def parse_arguments():
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def _validate_user(username, must_be_admin=True):
|
||||
"""Validate a user."""
|
||||
if must_be_admin:
|
||||
try:
|
||||
admins = grp.getgrnam('admin').gr_mem
|
||||
except KeyError:
|
||||
admins = []
|
||||
|
||||
if username not in admins:
|
||||
msg = '"{}" is not authorized to perform this action'.format(
|
||||
username)
|
||||
raise argparse.ArgumentTypeError(msg)
|
||||
|
||||
password = _read_password()
|
||||
if not utils.is_authenticated_user(username, password):
|
||||
raise argparse.ArgumentTypeError("Invalid credentials")
|
||||
|
||||
|
||||
def _managed_user(username):
|
||||
"""Raise an error if the user is root."""
|
||||
if pwd.getpwnam(username).pw_gid == 0:
|
||||
@ -52,6 +72,11 @@ def _managed_user(username):
|
||||
return username
|
||||
|
||||
|
||||
def _read_password():
|
||||
"""Read the password from stdin."""
|
||||
return ''.join(sys.stdin)
|
||||
|
||||
|
||||
def subcommand_setup(arguments):
|
||||
"""Setup Open SSH server.
|
||||
|
||||
@ -91,6 +116,10 @@ def subcommand_get_keys(arguments):
|
||||
def subcommand_set_keys(arguments):
|
||||
"""Set SSH authorized keys."""
|
||||
user = arguments.username
|
||||
auth_user = arguments.auth_user
|
||||
|
||||
must_be_admin = user != auth_user
|
||||
_validate_user(auth_user, must_be_admin=must_be_admin)
|
||||
|
||||
ssh_folder = os.path.join(get_user_homedir(user), '.ssh')
|
||||
key_file_path = os.path.join(ssh_folder, 'authorized_keys')
|
||||
|
||||
184
actions/upgrades
184
actions/upgrades
@ -11,16 +11,16 @@ import re
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
from plinth.action_utils import run_apt_command
|
||||
from plinth.action_utils import run_apt_command, service_restart
|
||||
from plinth.modules.apache.components import check_url
|
||||
from plinth.modules.upgrades import (get_current_release, is_backports_current,
|
||||
SOURCES_LIST)
|
||||
from plinth.modules.upgrades import (BACKPORTS_SOURCES_LIST, SOURCES_LIST,
|
||||
get_current_release, is_backports_current)
|
||||
|
||||
AUTO_CONF_FILE = '/etc/apt/apt.conf.d/20auto-upgrades'
|
||||
LOG_FILE = '/var/log/unattended-upgrades/unattended-upgrades.log'
|
||||
DPKG_LOG_FILE = '/var/log/unattended-upgrades/unattended-upgrades-dpkg.log'
|
||||
BACKPORTS_RELEASE_FILE_URL = \
|
||||
'https://deb.debian.org/debian/dists/{}-backports/Release'
|
||||
RELEASE_FILE_URL = \
|
||||
'https://deb.debian.org/debian/dists/{}/Release'
|
||||
|
||||
APT_PREFERENCES_FREEDOMBOX = '''Explanation: This file is managed by FreedomBox, do not edit.
|
||||
Explanation: Allow carefully selected updates to 'freedombox' from backports.
|
||||
@ -75,6 +75,9 @@ Pin: release a=buster-backports
|
||||
Pin-Priority: 500
|
||||
'''
|
||||
|
||||
dist_upgrade_flag = pathlib.Path(
|
||||
'/var/lib/freedombox/dist-upgrade-in-progress')
|
||||
|
||||
|
||||
def parse_arguments():
|
||||
"""Return parsed command line arguments as dictionary"""
|
||||
@ -95,20 +98,28 @@ def parse_arguments():
|
||||
setup_repositories.add_argument('--develop', required=False, default=False,
|
||||
action='store_true',
|
||||
help='Development mode')
|
||||
setup_repositories.add_argument(
|
||||
'--test-upgrade', required=False, default=False, action='store_true',
|
||||
help='Test dist-upgrade from stable to testing')
|
||||
|
||||
subparsers.required = True
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def subcommand_run(_):
|
||||
def _run():
|
||||
"""Run unattended-upgrades"""
|
||||
subprocess.run(['dpkg', '--configure', '-a'])
|
||||
run_apt_command(['--fix-broken', 'install'])
|
||||
subprocess.Popen(['systemctl', 'start', 'freedombox-manual-upgrade'],
|
||||
stdin=subprocess.DEVNULL, stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL, close_fds=True,
|
||||
start_new_session=True)
|
||||
|
||||
|
||||
def subcommand_run(_):
|
||||
"""Run unattended-upgrades"""
|
||||
try:
|
||||
subprocess.Popen(['systemctl', 'start', 'freedombox-manual-upgrade'],
|
||||
stdin=subprocess.DEVNULL, stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL, close_fds=True,
|
||||
start_new_session=True)
|
||||
_run()
|
||||
except FileNotFoundError:
|
||||
print('Error: systemctl is not available.', file=sys.stderr)
|
||||
sys.exit(2)
|
||||
@ -117,24 +128,28 @@ def subcommand_run(_):
|
||||
sys.exit(3)
|
||||
|
||||
|
||||
def subcommand_check_auto(_):
|
||||
"""Check if automatic upgrades are enabled"""
|
||||
def _check_auto():
|
||||
"""Check if automatic upgrades are enabled."""
|
||||
arguments = [
|
||||
'apt-config', 'shell', 'UpdateInterval',
|
||||
'APT::Periodic::Update-Package-Lists'
|
||||
]
|
||||
try:
|
||||
output = subprocess.check_output(arguments).decode()
|
||||
except subprocess.CalledProcessError as error:
|
||||
print('Error: {0}'.format(error), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
output = subprocess.check_output(arguments).decode()
|
||||
update_interval = 0
|
||||
match = re.match(r"UpdateInterval='(.*)'", output)
|
||||
if match:
|
||||
update_interval = int(match.group(1))
|
||||
|
||||
print(bool(update_interval))
|
||||
return bool(update_interval)
|
||||
|
||||
|
||||
def subcommand_check_auto(_):
|
||||
"""Check if automatic upgrades are enabled"""
|
||||
try:
|
||||
print(_check_auto())
|
||||
except subprocess.CalledProcessError as error:
|
||||
print('Error: {0}'.format(error), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def subcommand_enable_auto(_):
|
||||
@ -180,14 +195,16 @@ def _get_protocol():
|
||||
return 'http'
|
||||
|
||||
|
||||
def _is_release_file_available(protocol, dist):
|
||||
"""Return whether the release for backports is available."""
|
||||
def _is_release_file_available(protocol, dist, backports=False):
|
||||
"""Return whether the release for dist[-backports] is available."""
|
||||
wrapper = None
|
||||
if protocol == 'tor+http':
|
||||
wrapper = 'torsocks'
|
||||
|
||||
result = check_url(BACKPORTS_RELEASE_FILE_URL.format(dist),
|
||||
wrapper=wrapper)
|
||||
if backports:
|
||||
dist += '-backports'
|
||||
|
||||
result = check_url(RELEASE_FILE_URL.format(dist), wrapper=wrapper)
|
||||
return result == 'passed'
|
||||
|
||||
|
||||
@ -238,12 +255,12 @@ def _check_and_backports_sources(develop=False):
|
||||
if protocol == 'tor+http':
|
||||
print('Package download over Tor is enabled.')
|
||||
|
||||
if not _is_release_file_available(protocol, dist):
|
||||
if not _is_release_file_available(protocol, dist, backports=True):
|
||||
print(f'Release file for {dist}-backports is not available yet.')
|
||||
return
|
||||
|
||||
print(f'{dist}-backports is now available. Adding to sources.')
|
||||
_add_backports_sources(SOURCES_LIST, protocol, dist)
|
||||
_add_backports_sources(BACKPORTS_SOURCES_LIST, protocol, dist)
|
||||
# In case of dist upgrade, rewrite the preferences file.
|
||||
_add_apt_preferences()
|
||||
|
||||
@ -271,6 +288,120 @@ def _add_apt_preferences():
|
||||
file_handle.write(APT_PREFERENCES_APPS)
|
||||
|
||||
|
||||
def _check_and_dist_upgrade(develop=False, test_upgrade=False):
|
||||
"""Check for new stable release. If there is one, and updates are
|
||||
enabled, perform dist-upgrade.
|
||||
|
||||
If develop is True, check for possible upgrade from stable to testing.
|
||||
If test_upgrade is True, also perform the upgrade to testing.
|
||||
"""
|
||||
if dist_upgrade_flag.exists():
|
||||
print('Continuing previously interrupted dist-upgrade.')
|
||||
_perform_dist_upgrade()
|
||||
return
|
||||
|
||||
release, dist = get_current_release()
|
||||
if release in ['unstable', 'testing']:
|
||||
print(f'System release is {release}. Skip checking for new stable '
|
||||
'release.')
|
||||
return
|
||||
|
||||
check_dists = ['stable']
|
||||
if develop:
|
||||
check_dists.append('testing')
|
||||
|
||||
codename = None
|
||||
for check_dist in check_dists:
|
||||
url = RELEASE_FILE_URL.format(check_dist)
|
||||
command = ['curl', '--silent', '--location', '--fail', url]
|
||||
protocol = _get_protocol()
|
||||
if protocol == 'tor+http':
|
||||
command.insert(0, 'torsocks')
|
||||
print('Package download over Tor is enabled.')
|
||||
|
||||
try:
|
||||
output = subprocess.check_output(command).decode()
|
||||
except (subprocess.CalledProcessError, FileNotFoundError):
|
||||
print(f'Error while checking for new {check_dist} release')
|
||||
else:
|
||||
for line in output.split('\n'):
|
||||
if line.startswith('Codename:'):
|
||||
codename = line.split()[1]
|
||||
|
||||
if not codename:
|
||||
print('"Codename:" not found in release file.')
|
||||
return
|
||||
|
||||
if codename == dist:
|
||||
print(f'{dist} is already the latest release.')
|
||||
return
|
||||
|
||||
if not _check_auto():
|
||||
print('Automatic updates are not enabled.')
|
||||
return
|
||||
|
||||
if check_dist == 'testing' and not test_upgrade:
|
||||
print(f'Skipping dist-upgrade to {check_dist} since --test-upgrade is '
|
||||
'not set.')
|
||||
return
|
||||
|
||||
output = subprocess.check_output(['df', '--output=avail,pcent', '/'])
|
||||
output = output.decode().split('\n')[1].split()
|
||||
free_space, free_percent = int(output[0]), int(output[1][:-1])
|
||||
if free_space < 1000000 or free_percent < 10:
|
||||
print('Not enough free space in /.')
|
||||
return
|
||||
|
||||
print(f'Upgrading from {dist} to {codename}...')
|
||||
if check_dist == 'testing':
|
||||
with open(SOURCES_LIST, 'r') as sources_list:
|
||||
lines = sources_list.readlines()
|
||||
|
||||
with open(SOURCES_LIST, 'w') as sources_list:
|
||||
for line in lines:
|
||||
new_line = line.replace('stable', codename)
|
||||
if 'security' in new_line:
|
||||
new_line = new_line.replace('/updates', '-security')
|
||||
|
||||
sources_list.write(new_line)
|
||||
|
||||
print('Dist upgrade in progress. Setting flag.')
|
||||
dist_upgrade_flag.touch(mode=0o660)
|
||||
_perform_dist_upgrade()
|
||||
|
||||
|
||||
def _perform_dist_upgrade():
|
||||
"""Perform upgrade to next release of Debian."""
|
||||
run_apt_command(['update'])
|
||||
run_apt_command(['install', 'base-files'])
|
||||
run_apt_command(['install', 'unattended-upgrades'])
|
||||
subprocess.run(['unattended-upgrade', '--verbose'])
|
||||
|
||||
# Remove obsolete packages that may prevent other packages from
|
||||
# upgrading.
|
||||
run_apt_command(['remove', 'libgcc1'])
|
||||
|
||||
# Hold packages known to have conffile prompts. FreedomBox service
|
||||
# will handle their upgrade later.
|
||||
HOLD_PACKAGES = ['firewalld', 'radicale']
|
||||
try:
|
||||
subprocess.run(['apt-mark', 'hold'] + HOLD_PACKAGES)
|
||||
run_apt_command(['full-upgrade'])
|
||||
finally:
|
||||
subprocess.run(['apt-mark', 'unhold'] + HOLD_PACKAGES)
|
||||
|
||||
run_apt_command(['autoremove'])
|
||||
|
||||
print('Dist upgrade complete. Removing flag.')
|
||||
if dist_upgrade_flag.exists():
|
||||
dist_upgrade_flag.unlink()
|
||||
|
||||
# FreedomBox Service may have tried to restart several times
|
||||
# during the upgrade, but failed. It will stop trying after 5
|
||||
# retries. Restart it once more to ensure it is running.
|
||||
service_restart('plinth')
|
||||
|
||||
|
||||
def subcommand_setup(_):
|
||||
"""Setup apt preferences."""
|
||||
_add_apt_preferences()
|
||||
@ -282,8 +413,11 @@ def subcommand_setup_repositories(arguments):
|
||||
Repositories list for now only contains the backports. If the file exists,
|
||||
assume that it contains backports.
|
||||
|
||||
Check if a new stable release is available, and perform
|
||||
dist-upgrade if updates are enabled.
|
||||
"""
|
||||
_check_and_backports_sources(arguments.develop)
|
||||
_check_and_dist_upgrade(arguments.develop, arguments.test_upgrade)
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
176
actions/users
176
actions/users
@ -14,8 +14,9 @@ import sys
|
||||
|
||||
import augeas
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth import action_utils, utils
|
||||
|
||||
INPUT_LINES = None
|
||||
ACCESS_CONF = '/etc/security/access.conf'
|
||||
LDAPSCRIPTS_CONF = '/etc/ldapscripts/freedombox-ldapscripts.conf'
|
||||
|
||||
@ -31,10 +32,13 @@ def parse_arguments():
|
||||
subparser = subparsers.add_parser('create-user',
|
||||
help='Create an LDAP user')
|
||||
subparser.add_argument('username', help='Name of the LDAP user to create')
|
||||
subparser.add_argument('--auth-user', required=True)
|
||||
|
||||
subparser = subparsers.add_parser('remove-user',
|
||||
help='Delete an LDAP user')
|
||||
subparser.add_argument('username', help='Name of the LDAP user to delete')
|
||||
subparser.add_argument(
|
||||
'username', help='Name of the LDAP user to delete. If the username is '
|
||||
'the last admin user, a password should be provided through STDIN.')
|
||||
|
||||
subparser = subparsers.add_parser('rename-user',
|
||||
help='Rename an LDAP user')
|
||||
@ -45,6 +49,7 @@ def parse_arguments():
|
||||
help='Set the password of an LDAP user')
|
||||
subparser.add_argument(
|
||||
'username', help='Name of the LDAP user to set the password for')
|
||||
subparser.add_argument('--auth-user', required=True)
|
||||
|
||||
subparser = subparsers.add_parser('create-group',
|
||||
help='Create an LDAP group')
|
||||
@ -65,12 +70,14 @@ def parse_arguments():
|
||||
help='Add an LDAP user to an LDAP group')
|
||||
subparser.add_argument('username', help='LDAP user to add to group')
|
||||
subparser.add_argument('groupname', help='LDAP group to add the user to')
|
||||
subparser.add_argument('--auth-user', required=False)
|
||||
|
||||
subparser = subparsers.add_parser('set-user-status',
|
||||
help='Set user as active or inactive')
|
||||
subparser.add_argument('username', help='User to change status')
|
||||
subparser.add_argument('status', choices=['active', 'inactive'],
|
||||
help='New status of the user')
|
||||
subparser.add_argument('--auth-user', required=True)
|
||||
|
||||
subparser = subparsers.add_parser(
|
||||
'remove-user-from-group',
|
||||
@ -78,6 +85,7 @@ def parse_arguments():
|
||||
subparser.add_argument('username', help='LDAP user to remove from group')
|
||||
subparser.add_argument('groupname',
|
||||
help='LDAP group to remove the user from')
|
||||
subparser.add_argument('--auth-user', required=False)
|
||||
|
||||
help_get_group_users = 'Get the list of all users in an LDAP group'
|
||||
subparser = subparsers.add_parser('get-group-users',
|
||||
@ -90,6 +98,38 @@ def parse_arguments():
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def validate_user(username, must_be_admin=True):
|
||||
"""Validate a user."""
|
||||
if must_be_admin:
|
||||
admins = get_admin_users()
|
||||
|
||||
if not admins:
|
||||
# any user is valid
|
||||
return
|
||||
|
||||
if not username:
|
||||
msg = 'Argument --auth-user is required'
|
||||
raise argparse.ArgumentTypeError(msg)
|
||||
|
||||
if username not in admins:
|
||||
msg = '"{}" is not authorized to perform this action'.format(
|
||||
username)
|
||||
raise argparse.ArgumentTypeError(msg)
|
||||
|
||||
if not username:
|
||||
msg = 'Argument --auth-user is required'
|
||||
raise argparse.ArgumentTypeError(msg)
|
||||
|
||||
validate_password(username)
|
||||
|
||||
|
||||
def validate_password(username):
|
||||
"""Raise an error if the user password is invalid."""
|
||||
password = read_password(last=True)
|
||||
if not utils.is_authenticated_user(username, password):
|
||||
raise argparse.ArgumentTypeError("Invalid credentials")
|
||||
|
||||
|
||||
def subcommand_first_setup(_):
|
||||
"""Perform initial setup of LDAP."""
|
||||
# Avoid reconfiguration of slapd during module upgrades, because
|
||||
@ -243,18 +283,36 @@ def disconnect_samba_user(username):
|
||||
raise
|
||||
|
||||
|
||||
def read_password():
|
||||
"""Read the password from stdin."""
|
||||
return ''.join(sys.stdin)
|
||||
def get_input_lines():
|
||||
"""Return list of input lines from stdin."""
|
||||
global INPUT_LINES
|
||||
if INPUT_LINES is None:
|
||||
INPUT_LINES = [line.strip() for line in sys.stdin]
|
||||
return INPUT_LINES
|
||||
|
||||
|
||||
def read_password(last=False):
|
||||
"""Return the password.
|
||||
|
||||
Set last=True to read password from last line of the input.
|
||||
|
||||
"""
|
||||
line = -1 if last else 0
|
||||
return get_input_lines()[line]
|
||||
|
||||
|
||||
def subcommand_create_user(arguments):
|
||||
"""Create an LDAP user, set password and flush cache."""
|
||||
_run(['ldapadduser', arguments.username, 'users'])
|
||||
username = arguments.username
|
||||
auth_user = arguments.auth_user
|
||||
|
||||
validate_user(auth_user)
|
||||
|
||||
_run(['ldapadduser', username, 'users'])
|
||||
password = read_password()
|
||||
set_user_password(arguments.username, password)
|
||||
set_user_password(username, password)
|
||||
flush_cache()
|
||||
set_samba_user(arguments.username, password)
|
||||
set_samba_user(username, password)
|
||||
|
||||
|
||||
def subcommand_remove_user(arguments):
|
||||
@ -262,6 +320,10 @@ def subcommand_remove_user(arguments):
|
||||
username = arguments.username
|
||||
groups = get_user_groups(username)
|
||||
|
||||
# require authentication if the user is last admin user
|
||||
if get_group_users('admin') == [username]:
|
||||
validate_password(username)
|
||||
|
||||
delete_samba_user(username)
|
||||
|
||||
for group in groups:
|
||||
@ -314,9 +376,58 @@ def set_samba_user(username, password):
|
||||
|
||||
def subcommand_set_user_password(arguments):
|
||||
"""Set a user's password."""
|
||||
username = arguments.username
|
||||
auth_user = arguments.auth_user
|
||||
|
||||
must_be_admin = username != auth_user
|
||||
validate_user(auth_user, must_be_admin=must_be_admin)
|
||||
|
||||
password = read_password()
|
||||
set_user_password(arguments.username, password)
|
||||
set_samba_user(arguments.username, password)
|
||||
set_user_password(username, password)
|
||||
set_samba_user(username, password)
|
||||
|
||||
|
||||
def get_admin_users():
|
||||
"""Returns list of members in the admin group.
|
||||
|
||||
Raises an error if the slapd service is not running.
|
||||
|
||||
"""
|
||||
admin_users = []
|
||||
|
||||
try:
|
||||
output = subprocess.check_output([
|
||||
'ldapsearch', '-LLL', '-Q', '-Y', 'EXTERNAL', '-H', 'ldapi:///',
|
||||
'-o', 'ldif-wrap=no', '-s', 'base', '-b',
|
||||
'cn=admin,ou=groups,dc=thisbox', 'memberUid'
|
||||
]).decode()
|
||||
except subprocess.CalledProcessError as error:
|
||||
if error.returncode == 32:
|
||||
# no entries found
|
||||
return []
|
||||
raise
|
||||
|
||||
for line in output.splitlines():
|
||||
if line.startswith('memberUid: '):
|
||||
user = line.split('memberUid: ', 1)[1].strip()
|
||||
admin_users.append(user)
|
||||
|
||||
return admin_users
|
||||
|
||||
|
||||
def get_group_users(groupname):
|
||||
"""Returns list of members in the group."""
|
||||
try:
|
||||
process = _run(['ldapgid', '-P', groupname], stdout=subprocess.PIPE)
|
||||
except subprocess.CalledProcessError:
|
||||
return [] # Group does not exist
|
||||
|
||||
output = process.stdout.decode()
|
||||
# extract users from output, example: 'admin:*:10001:user1,user2'
|
||||
users = output.rsplit(':')[-1].strip().split(',')
|
||||
if users == ['']:
|
||||
return []
|
||||
return users
|
||||
|
||||
|
||||
def get_user_groups(username):
|
||||
@ -371,10 +482,14 @@ def subcommand_create_group(arguments):
|
||||
|
||||
def subcommand_remove_group(arguments):
|
||||
"""Remove an LDAP group."""
|
||||
if group_exists(arguments.groupname):
|
||||
_run(['ldapdeletegroup', arguments.groupname])
|
||||
groupname = arguments.groupname
|
||||
|
||||
flush_cache()
|
||||
if groupname == 'admin':
|
||||
raise argparse.ArgumentTypeError("Can't remove the group 'admin'")
|
||||
|
||||
if group_exists(groupname):
|
||||
_run(['ldapdeletegroup', groupname])
|
||||
flush_cache()
|
||||
|
||||
|
||||
def add_user_to_group(username, groupname):
|
||||
@ -385,7 +500,12 @@ def add_user_to_group(username, groupname):
|
||||
|
||||
def subcommand_add_user_to_group(arguments):
|
||||
"""Add an LDAP user to an LDAP group."""
|
||||
add_user_to_group(arguments.username, arguments.groupname)
|
||||
groupname = arguments.groupname
|
||||
|
||||
if groupname == 'admin':
|
||||
validate_user(arguments.auth_user)
|
||||
|
||||
add_user_to_group(arguments.username, groupname)
|
||||
flush_cache()
|
||||
|
||||
|
||||
@ -396,31 +516,31 @@ def remove_user_from_group(username, groupname):
|
||||
|
||||
def subcommand_remove_user_from_group(arguments):
|
||||
"""Remove an LDAP user from an LDAP group."""
|
||||
remove_user_from_group(arguments.username, arguments.groupname)
|
||||
username = arguments.username
|
||||
groupname = arguments.groupname
|
||||
|
||||
if groupname == 'admin':
|
||||
validate_user(arguments.auth_user)
|
||||
|
||||
remove_user_from_group(username, groupname)
|
||||
flush_cache()
|
||||
if arguments.groupname == 'freedombox-share':
|
||||
disconnect_samba_user(arguments.username)
|
||||
if groupname == 'freedombox-share':
|
||||
disconnect_samba_user(username)
|
||||
|
||||
|
||||
def subcommand_get_group_users(arguments):
|
||||
"""Get the list of users of an LDAP group."""
|
||||
try:
|
||||
process = _run(['ldapgid', '-P', arguments.groupname],
|
||||
stdout=subprocess.PIPE)
|
||||
except subprocess.CalledProcessError:
|
||||
return # Group does not exist, return empty list
|
||||
|
||||
output = process.stdout.decode()
|
||||
users = output.rsplit(':')[-1]
|
||||
if users:
|
||||
for user in users.strip().split(','):
|
||||
print(user)
|
||||
for user in get_group_users(arguments.groupname):
|
||||
print(user)
|
||||
|
||||
|
||||
def subcommand_set_user_status(arguments):
|
||||
"""Set the status of the user."""
|
||||
username = arguments.username
|
||||
status = arguments.status
|
||||
auth_user = arguments.auth_user
|
||||
|
||||
validate_user(auth_user)
|
||||
|
||||
if status == 'active':
|
||||
flag = '-e'
|
||||
|
||||
24
container
24
container
@ -286,11 +286,11 @@ def _get_systemd_nspawn_version():
|
||||
|
||||
def _download_file(url, target_file, force=False):
|
||||
"""Download a file from remote URL."""
|
||||
if target_file.exists() and not force:
|
||||
return
|
||||
|
||||
if force:
|
||||
os.remove(target_file)
|
||||
if target_file.exists():
|
||||
if force:
|
||||
os.remove(target_file)
|
||||
else:
|
||||
return
|
||||
|
||||
partial_file = target_file.with_suffix(target_file.suffix + '.partial')
|
||||
|
||||
@ -480,6 +480,7 @@ def _setup_nm_connection(distribution):
|
||||
'connection.type': '802-3-ethernet',
|
||||
'connection.interface-name': _get_interface_name(distribution),
|
||||
'connection.autoconnect': 'yes',
|
||||
'connection.zone': 'trusted',
|
||||
'ipv4.method': 'shared',
|
||||
}
|
||||
subprocess.run(['sudo', 'nmcli', 'connection', 'add'] +
|
||||
@ -695,6 +696,11 @@ def _destroy(distribution):
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
connection_name = f'fbx-{distribution}-shared'
|
||||
logger.info('Removing Network Manager connection %s', connection_name)
|
||||
subprocess.run(['sudo', 'nmcli', 'connection', 'delete', connection_name],
|
||||
stdout=subprocess.DEVNULL)
|
||||
|
||||
logger.info('Keeping downloaded image: %s',
|
||||
_get_compressed_image_path(distribution))
|
||||
|
||||
@ -805,8 +811,12 @@ def _get_latest_image_timestamp(distribution):
|
||||
|
||||
def _is_update_required(distribution):
|
||||
"""Compare local image timestamp against the latest image timestamp."""
|
||||
filename = URLS[distribution].split('/')[-1]
|
||||
local_image_timestamp = os.path.getmtime(work_directory / filename)
|
||||
file_path = work_directory / URLS[distribution].split('/')[-1]
|
||||
|
||||
if not file_path.exists():
|
||||
return True
|
||||
|
||||
local_image_timestamp = os.path.getmtime(file_path)
|
||||
one_day = datetime.timedelta(days=1).total_seconds()
|
||||
latest_image_timestamp = _get_latest_image_timestamp(distribution)
|
||||
return latest_image_timestamp - local_image_timestamp > one_day
|
||||
|
||||
71
debian/changelog
vendored
71
debian/changelog
vendored
@ -1,3 +1,74 @@
|
||||
plinth (20.15) unstable; urgency=medium
|
||||
|
||||
[ Coucouf ]
|
||||
* Translated using Weblate (French)
|
||||
* Translated using Weblate (French)
|
||||
* Translated using Weblate (French)
|
||||
* Translated using Weblate (French)
|
||||
|
||||
[ Joseph Nuthalapati ]
|
||||
* bepasty: Change default permissions to 'read'
|
||||
* calibre: Add new e-book library app
|
||||
* calibre: Minor changes to app description
|
||||
* container: Handle edge cases with container update
|
||||
|
||||
[ Fioddor Superconcentrado ]
|
||||
* HACKING: Add extra development requirements
|
||||
* CONTRIBUTING: Require flake8 compliance
|
||||
* Translated using Weblate (Spanish)
|
||||
* HACKING.md: Re-organised contents according to onboarding journey
|
||||
* Translated using Weblate (Spanish)
|
||||
|
||||
[ Sunil Mohan Adapa ]
|
||||
* module_loader, web_framework: Update console log messages
|
||||
* dynamicdns: Drop unnecessary code to set app as enabled
|
||||
* pagekite: Don't announce unconfigured kite as a valid domain
|
||||
* pagekite: Don't update names module if not installed
|
||||
* tor: Don't check if enabled when not installed
|
||||
* tests: functional: Simplify calling the login helper
|
||||
* doc: Before fetching, drop all old to cleanup deleted pages/images
|
||||
* coturn: Don't handle certificates if not installed
|
||||
* quassel: Don't handle certificates if not installed
|
||||
* quassel: Fix minor typo
|
||||
* mumble: Store and use a single domain for TLS certificate setup
|
||||
* doc: dev: Link to list of potential apps from tutorial
|
||||
* coturn: Don't handle certificates if not installed
|
||||
* quassel: Don't handle certificates if not installed
|
||||
* users: Deal with admin user already existing during first boot
|
||||
* users: cosmetic: Yapf refactoring
|
||||
* *: Minor flake8 fixes
|
||||
* debian/control: Add sshpass as build dependency
|
||||
|
||||
[ Michael Breidenbach ]
|
||||
* Translated using Weblate (Swedish)
|
||||
|
||||
[ ssantos ]
|
||||
* Translated using Weblate (Portuguese)
|
||||
|
||||
[ Phil Morrell ]
|
||||
* mumble: configure letsencrypt component
|
||||
|
||||
[ Burak Yavuz ]
|
||||
* Translated using Weblate (Turkish)
|
||||
|
||||
[ Petter Reinholdtsen ]
|
||||
* Translated using Weblate (Norwegian Bokmål)
|
||||
|
||||
[ Veiko Aasa ]
|
||||
* ssh: action script: Require user credentials when editing ssh keys
|
||||
* users: Require admin credentials when creating or editing a user
|
||||
* container: Assign virtual network interface to trusted firewall zone
|
||||
|
||||
[ James Valleroy ]
|
||||
* upgrades: Extend function to check for normal dist availability
|
||||
* upgrades: Detect and upgrade to next stable release
|
||||
* upgrades: Set a flag so interrupted dist-upgrade can be continued
|
||||
* upgrades: Check free space before dist-upgrade
|
||||
* locale: Update translation strings
|
||||
* doc: Fetch latest manual
|
||||
|
||||
-- James Valleroy <jvalleroy@mailbox.org> Mon, 05 Oct 2020 19:25:41 -0400
|
||||
|
||||
plinth (20.14.1~bpo10+1) buster-backports; urgency=high
|
||||
|
||||
* Rebuild for buster-backports.
|
||||
|
||||
3
debian/control
vendored
3
debian/control
vendored
@ -32,6 +32,7 @@ Build-Depends:
|
||||
python3-flake8,
|
||||
python3-gi,
|
||||
python3-markupsafe,
|
||||
python3-pampy,
|
||||
python3-paramiko,
|
||||
python3-psutil,
|
||||
python3-pytest,
|
||||
@ -43,6 +44,7 @@ Build-Depends:
|
||||
python3-setuptools,
|
||||
python3-setuptools-git,
|
||||
python3-yaml,
|
||||
sshpass,
|
||||
xmlto,
|
||||
xsltproc
|
||||
Standards-Version: 4.5.0
|
||||
@ -104,6 +106,7 @@ Depends:
|
||||
python3-django-stronghold,
|
||||
python3-gi,
|
||||
python3-markupsafe,
|
||||
python3-pampy,
|
||||
python3-paramiko,
|
||||
python3-psutil,
|
||||
python3-requests,
|
||||
|
||||
14
doc/Makefile
14
doc/Makefile
@ -60,13 +60,21 @@ install: all
|
||||
# require further reviews.
|
||||
fetch-main-list:=$(foreach lang,$(MANUAL_LANGUAGES),fetch-main-$(lang))
|
||||
fetch-pages-list:=$(foreach lang,$(MANUAL_LANGUAGES),fetch-pages-$(lang))
|
||||
fetch-cleanup-list:=$(foreach lang,$(MANUAL_LANGUAGES),fetch-cleanup-$(lang))
|
||||
|
||||
.PHONY: fetch $(fetch-main-list) $(fetch-pages-list)
|
||||
.PHONY: fetch $(fetch-main-list) $(fetch-pages-list) $(fetch-cleanup-list)
|
||||
fetch: $(fetch-main-list) $(fetch-pages-list)
|
||||
|
||||
# Remove raw wiki pages and images before fetching to drop items deleted
|
||||
# upstream.
|
||||
featch-cleanup-%: lang = $*
|
||||
$(fetch-cleanup-list): fetch-cleanup-%:
|
||||
rm -f manual/$(lang)/*.raw.wiki
|
||||
rm -f manual/$(lang)/images/*.png manual/$(lang)/images/*.jpg
|
||||
|
||||
fetch-main-%: lang = $*
|
||||
fetch-main-%: lang-fragment = $(subst en/,,$*/)
|
||||
$(fetch-main-list): fetch-main-%:
|
||||
$(fetch-main-list): fetch-main-%: fetch-cleanup-%
|
||||
MANUAL_URL_RAW_LANG=$(subst {lang-fragment},$(lang-fragment),$(MANUAL_URL_RAW)) ; \
|
||||
wget --quiet --user-agent=Firefox \
|
||||
-O manual/$(lang)/freedombox-manual.raw.wiki $${MANUAL_URL_RAW_LANG}
|
||||
@ -82,7 +90,7 @@ $(fetch-main-list): fetch-main-%:
|
||||
|
||||
fetch-pages-%: lang = $*
|
||||
fetch-pages-%: lang-fragment = $(subst en/,,$*/)
|
||||
$(fetch-pages-list): fetch-pages-%:
|
||||
$(fetch-pages-list): fetch-pages-%: fetch-cleanup-%
|
||||
MANUAL_URL_LANG=$(subst {lang-fragment},$(lang-fragment),$(MANUAL_URL_RAW)) ; \
|
||||
PAGES=$$(wget --quiet --user-agent=Firefox -O - $${MANUAL_URL_LANG} | \
|
||||
sed -n -e "s|.*<<Include(\([a-zA-Z0-9_/+-]*\),.*|\1|p" | sort -u) ; \
|
||||
|
||||
@ -18,7 +18,9 @@ be built.
|
||||
Picking an app
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
We must first, of course, pick an application to add to FreedomBox. For the
|
||||
We must first, of course, pick an application to add to FreedomBox. Many
|
||||
potential applications that can be added to FreedomBox have been listed on the
|
||||
`FreedomBox wiki <https://wiki.debian.org/FreedomBox/LeavingTheCloud>`. For the
|
||||
purpose of this tutorial, let us pick Transmission. Transmission daemon handles
|
||||
Bitorrent file sharing. BitTorrent is a peer-to-peer file sharing protocol.
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#language en
|
||||
|
||||
~- [[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[FreedomBox/Manual/Cockpit|Español]] -~
|
||||
~- [[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[es/FreedomBox/Manual/Cockpit|Español]] -~
|
||||
|
||||
<<TableOfContents()>>
|
||||
|
||||
@ -26,7 +26,7 @@ Ensure that the user account on !FreedomBox that will used for Cockpit is part o
|
||||
|
||||
{{attachment:cockpit-admin-user.png}}
|
||||
|
||||
Launch the Cockpit web interface. Login using the configured user account.
|
||||
Launch the Cockpit web interface. Login using the configured user account. Be sure to check the box to "reuse my password for privileged tasks", otherwise you will not be able to perform various tasks such as configuring raid, or editing users, once logged in.
|
||||
|
||||
{{attachment:cockpit-login.png}}
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ Please check next [[FreedomBox/ProgressCalls|progress calls]] to keep yourself o
|
||||
|
||||
=== Add an Application ===
|
||||
|
||||
If you are a developer and wish to see an application available in !FreedomBox, you can contribute by adding the application to !FreedomBox. See the [[https://docs.freedombox.org/|FreedomBox Developer Manual]].
|
||||
If you are a developer and wish to see an application available in !FreedomBox, you can contribute by adding the application to !FreedomBox. See the [[https://docs.freedombox.org/|FreedomBox Developer Manual]]. Many applications that can be added to !FreedomBox have been identified on the [[FreedomBox/LeavingTheCloud|leaving the cloud]] page.
|
||||
|
||||
=== Bugs ===
|
||||
|
||||
|
||||
@ -24,13 +24,6 @@ The following services are offered via I2P in !FreedomBox by default. Additional
|
||||
* '''IRC network''': I2P network contains an IRC network called Irc2P. This network hosts the I2P project's official IRC channel among other channels. This service is enabled by default in !FreedomBox. To use it, open your favourite IRC client. Then configure it to connect to host ''freedombox.local'' (or your !FreedomBox's local IP address) with port number ''6668''. This service is available only when you are reaching !FreedomBox using local network (networks in internal zone) and not available when connecting to !FreedomBox from the Internet. One exception to this is when you connect to !FreedomBox's VPN service from Internet you can still use this service.
|
||||
* '''I2P router console''': This is the central management interface for I2P. It shows the current status of I2P, bandwidth statistics and allows modifying various configuration settings. You can tune your participation in the I2P network and use/edit a list of your favourite I2P sites (eepsites). Only logged-in users belonging to 'Manage I2P application' group can use this service.
|
||||
|
||||
=== Port Forwarding ===
|
||||
|
||||
If your !FreedomBox is behind a router, you will need to set up port forwarding on your router. You should forward the following ports for I2P:
|
||||
* TCP 4444
|
||||
* TCP 4445
|
||||
* TCP 6668
|
||||
|
||||
## END_INCLUDE
|
||||
|
||||
Back to [[FreedomBox/Features|Features introduction]] or [[FreedomBox/Manual|manual]] pages.
|
||||
|
||||
@ -12,7 +12,7 @@ Please do not expect any output on a monitor connected via HDMI to this device a
|
||||
|
||||
Before downloading and using !FreedomBox you need to ensure that latest [[https://github.com/pftf/RPi4|Raspberry Pi 4 UEFI Firmware]] is available on an SD card. See [[https://github.com/pftf/RPi4#installation|instructions]] on how to create an SD card with this firmware. The gist is that you download the firmware zip files, erase the SD card, create a FAT partition, unzip the files to SD card and finally insert the SD card into the board.
|
||||
|
||||
!FreedomBox images meant for all "arm64" hardware work well for this device. Currently only "testing" images work and "stable" images. However, the firmware must present in SD card. This means that !FreedomBox itself must be present on a different disk such as a USB flash disk or USB SATA disk. Follow the instructions on the download page to create a !FreedomBox USB disk and boot the device. These images also work well for USB 2.0 and USB 3.0 disk drives and the process for preparing them is same as for an SD card.
|
||||
!FreedomBox images meant for all "arm64" hardware work well for this device. Currently only "testing" images work and not "stable" images. However, the firmware must be present in an SD card. This means that !FreedomBox itself must be present on a different disk such as a USB flash disk or USB SATA disk. Follow the instructions on the download page to create a !FreedomBox USB disk and boot the device. These images also work well for USB 2.0 and USB 3.0 disk drives and the process for preparing them is same as for an SD card.
|
||||
|
||||
An alternative to downloading these images is to install Debian on the device and then install !FreedomBox on it.
|
||||
|
||||
|
||||
@ -10,6 +10,39 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
|
||||
|
||||
The following are the release notes for each !FreedomBox version.
|
||||
|
||||
== FreedomBox 20.15 (2020-10-05) ==
|
||||
|
||||
=== Highlights ===
|
||||
|
||||
* calibre: Add new e-book library app
|
||||
* mumble: configure letsencrypt component
|
||||
* upgrades: Detect and upgrade to next stable release
|
||||
|
||||
=== Other Changes ===
|
||||
|
||||
* bepasty: Change default permissions to 'read'
|
||||
* container: Assign virtual network interface to trusted firewall zone
|
||||
* container: Handle edge cases with container update
|
||||
* coturn: Don't handle certificates if not installed
|
||||
* debian/control: Add sshpass as build dependency
|
||||
* doc: Before fetching, drop all old to cleanup deleted pages/images
|
||||
* doc: dev: Link to list of potential apps from tutorial
|
||||
* dynamicdns: Drop unnecessary code to set app as enabled
|
||||
* locale: Update translations for French, Norwegian Bokmål, Portuguese, Spanish, Swedish, Turkish
|
||||
* module_loader, web_framework: Update console log messages
|
||||
* mumble: Store and use a single domain for TLS certificate setup
|
||||
* pagekite: Don't announce unconfigured kite as a valid domain
|
||||
* pagekite: Don't update names module if not installed
|
||||
* quassel: Don't handle certificates if not installed
|
||||
* ssh: action script: Require user credentials when editing ssh keys
|
||||
* tests: functional: Simplify calling the login helper
|
||||
* tor: Don't check if enabled when not installed
|
||||
* upgrades: Check free space before dist-upgrade
|
||||
* upgrades: Extend function to check for normal dist availability
|
||||
* upgrades: Set a flag so interrupted dist-upgrade can be continued
|
||||
* users: Deal with admin user already existing during first boot
|
||||
* users: Require admin credentials when creating or editing a user
|
||||
|
||||
== FreedomBox 20.14.1 (2020-09-23) ==
|
||||
|
||||
* cockpit: Don't show home page icon to non-admin users
|
||||
|
||||
@ -26,7 +26,7 @@ Asegúrate de que la cuenta de usuario de !FreedomBox que se empleará con Cockp
|
||||
|
||||
{{attachment:cockpit-admin-user.png}}
|
||||
|
||||
Arranca el interfaz web de Cockpit. Ingresa con la cuenta de usuario configurada.
|
||||
Arranca el interfaz web de Cockpit. Ingresa con la cuenta de usuario configurada. Asegúrate de marcar la caja "reusar mi contraseña para tareas restrigidas", de otro modo una vez dentro no podrás realizas algunas tareas como configurar RAID o editar usuarios.
|
||||
|
||||
{{attachment:cockpit-login.png}}
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ Please do not expect any output on a monitor connected via HDMI to this device a
|
||||
|
||||
Before downloading and using !FreedomBox you need to ensure that latest [[https://github.com/pftf/RPi4|Raspberry Pi 4 UEFI Firmware]] is available on an SD card. See [[https://github.com/pftf/RPi4#installation|instructions]] on how to create an SD card with this firmware. The gist is that you download the firmware zip files, erase the SD card, create a FAT partition, unzip the files to SD card and finally insert the SD card into the board.
|
||||
|
||||
!FreedomBox images meant for all "arm64" hardware work well for this device. Currently only "testing" images work and "stable" images. However, the firmware must present in SD card. This means that !FreedomBox itself must be present on a different disk such as a USB flash disk or USB SATA disk. Follow the instructions on the download page to create a !FreedomBox USB disk and boot the device. These images also work well for USB 2.0 and USB 3.0 disk drives and the process for preparing them is same as for an SD card.
|
||||
!FreedomBox images meant for all "arm64" hardware work well for this device. Currently only "testing" images work and not "stable" images. However, the firmware must be present in an SD card. This means that !FreedomBox itself must be present on a different disk such as a USB flash disk or USB SATA disk. Follow the instructions on the download page to create a !FreedomBox USB disk and boot the device. These images also work well for USB 2.0 and USB 3.0 disk drives and the process for preparing them is same as for an SD card.
|
||||
|
||||
An alternative to downloading these images is to install Debian on the device and then install !FreedomBox on it.
|
||||
|
||||
|
||||
@ -10,6 +10,39 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f
|
||||
|
||||
The following are the release notes for each !FreedomBox version.
|
||||
|
||||
== FreedomBox 20.15 (2020-10-05) ==
|
||||
|
||||
=== Highlights ===
|
||||
|
||||
* calibre: Add new e-book library app
|
||||
* mumble: configure letsencrypt component
|
||||
* upgrades: Detect and upgrade to next stable release
|
||||
|
||||
=== Other Changes ===
|
||||
|
||||
* bepasty: Change default permissions to 'read'
|
||||
* container: Assign virtual network interface to trusted firewall zone
|
||||
* container: Handle edge cases with container update
|
||||
* coturn: Don't handle certificates if not installed
|
||||
* debian/control: Add sshpass as build dependency
|
||||
* doc: Before fetching, drop all old to cleanup deleted pages/images
|
||||
* doc: dev: Link to list of potential apps from tutorial
|
||||
* dynamicdns: Drop unnecessary code to set app as enabled
|
||||
* locale: Update translations for French, Norwegian Bokmål, Portuguese, Spanish, Swedish, Turkish
|
||||
* module_loader, web_framework: Update console log messages
|
||||
* mumble: Store and use a single domain for TLS certificate setup
|
||||
* pagekite: Don't announce unconfigured kite as a valid domain
|
||||
* pagekite: Don't update names module if not installed
|
||||
* quassel: Don't handle certificates if not installed
|
||||
* ssh: action script: Require user credentials when editing ssh keys
|
||||
* tests: functional: Simplify calling the login helper
|
||||
* tor: Don't check if enabled when not installed
|
||||
* upgrades: Check free space before dist-upgrade
|
||||
* upgrades: Extend function to check for normal dist availability
|
||||
* upgrades: Set a flag so interrupted dist-upgrade can be continued
|
||||
* users: Deal with admin user already existing during first boot
|
||||
* users: Require admin credentials when creating or editing a user
|
||||
|
||||
== FreedomBox 20.14.1 (2020-09-23) ==
|
||||
|
||||
* cockpit: Don't show home page icon to non-admin users
|
||||
|
||||
@ -3,4 +3,4 @@
|
||||
Package init file.
|
||||
"""
|
||||
|
||||
__version__ = '20.14'
|
||||
__version__ = '20.15'
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-06-10 15:41+0000\n"
|
||||
"Last-Translator: aiman an <an1f3@hotmail.com>\n"
|
||||
"Language-Team: Arabic (Saudi Arabia) <https://hosted.weblate.org/projects/"
|
||||
@ -389,6 +389,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@ -655,7 +656,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -813,12 +814,114 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
msgid "Administer calibre application"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
msgid "Name of the new library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, python-format
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
msgid "Manage Libraries"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
msgid "Create Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
msgid "Library created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1015,11 +1118,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1337,7 +1442,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@ -1786,12 +1891,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -1808,16 +1907,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2283,7 +2372,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -2930,32 +3019,32 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -2973,7 +3062,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3365,7 +3454,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3632,6 +3721,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4085,29 +4175,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5468,24 +5558,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5674,11 +5764,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
msgid "FreedomBox Updated"
|
||||
msgstr ""
|
||||
|
||||
@ -5819,20 +5909,32 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
msgid "Enter a valid username."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
msgid "Invalid password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -5841,63 +5943,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -5910,15 +6015,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -5936,19 +6042,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -5962,46 +6086,51 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6412,28 +6541,28 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2019-10-12 14:52+0000\n"
|
||||
"Last-Translator: Nevena Mircheva <nevena.mircheva@gmail.com>\n"
|
||||
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -394,6 +394,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@ -660,7 +661,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -818,12 +819,114 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
msgid "Administer calibre application"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
msgid "Name of the new library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, python-format
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
msgid "Manage Libraries"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
msgid "Create Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
msgid "Library created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1020,11 +1123,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1342,7 +1447,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@ -1791,12 +1896,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -1813,16 +1912,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2288,7 +2377,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -2935,32 +3024,32 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -2978,7 +3067,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3370,7 +3459,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3637,6 +3726,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4090,29 +4180,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5475,24 +5565,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5681,11 +5771,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -5828,20 +5918,32 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
msgid "Enter a valid username."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
msgid "Invalid password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -5850,63 +5952,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -5919,15 +6024,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -5945,19 +6051,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -5971,46 +6095,51 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6423,28 +6552,28 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -387,6 +387,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@ -653,7 +654,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -811,12 +812,114 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
msgid "Administer calibre application"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
msgid "Name of the new library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, python-format
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
msgid "Manage Libraries"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
msgid "Create Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
msgid "Library created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1013,11 +1116,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1335,7 +1440,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@ -1784,12 +1889,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -1806,16 +1905,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2281,7 +2370,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -2928,32 +3017,32 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -2971,7 +3060,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3363,7 +3452,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3630,6 +3719,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4083,29 +4173,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5466,24 +5556,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5672,11 +5762,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
msgid "FreedomBox Updated"
|
||||
msgstr ""
|
||||
|
||||
@ -5817,20 +5907,32 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
msgid "Enter a valid username."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
msgid "Invalid password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -5839,63 +5941,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -5908,15 +6013,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -5934,19 +6040,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -5960,46 +6084,51 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6410,28 +6539,28 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-06-24 11:41+0000\n"
|
||||
"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>\n"
|
||||
"Language-Team: Czech <https://hosted.weblate.org/projects/freedombox/plinth/"
|
||||
@ -414,6 +414,7 @@ msgstr "Smazat archiv %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Potvrdit"
|
||||
|
||||
@ -708,7 +709,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr "Oprávnění"
|
||||
|
||||
@ -894,12 +895,132 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Nastavení aktualizováno"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Administer Syncthing application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Spravovat aplikaci Syncthing"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Name of the repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Název repozitáře"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "Sdílení s tímto názvem už existuje."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Git Repository <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Smazat Git repozitář <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Smazat %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Manage Repositories"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Spravovat repozitáře"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Vytvořit repozitář"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "No repositories available."
|
||||
msgid "No libraries available."
|
||||
msgstr "Nejsou k dispozici žádné repozitáře."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "Smazat stránku %(site)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository created."
|
||||
msgid "Library created."
|
||||
msgstr "Repozitář vytvořen."
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred during configuration."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "Při nastavování se vyskytla chyba."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} smazáno."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "{name} se nepodařilo smazat: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1126,11 +1247,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr "TLS doména"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1513,7 +1636,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "Použít základní HTTP ověřování"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "Uživatelské jméno"
|
||||
|
||||
@ -2041,12 +2164,6 @@ msgstr "Smazat Git repozitář <em>%(name)s</em>"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Nevratně smazat tento repozitář?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Smazat %(name)s"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr "Repozitář vytvořen."
|
||||
@ -2065,16 +2182,6 @@ msgstr "Repozitář upraven."
|
||||
msgid "Edit repository"
|
||||
msgstr "Upravit repozitář"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} smazáno."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "{name} se nepodařilo smazat: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "Dokumentace"
|
||||
@ -2646,7 +2753,7 @@ msgid "Chat Client"
|
||||
msgstr "Chatovací klient"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr "Licenční informace o JavaScriptu"
|
||||
|
||||
@ -3400,7 +3507,7 @@ msgstr "Klíč zveřejněn na server s klíči."
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "Při zveřejňování klíče došlo k chybě."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
@ -3408,7 +3515,7 @@ msgstr ""
|
||||
"Mumble je open source software pro šifrovanou, vysoce kvalitní hlasovou "
|
||||
"komunikaci s nízkou prodlevou."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3418,21 +3525,21 @@ msgstr ""
|
||||
"dispozici jsou <a href=\"http://mumble.info\">klienti</a> pro připojení z "
|
||||
"desktopu a Android zařízení."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr "Mumble"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr "Hlasový chat"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "SSH server password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "Heslo SSH serveru"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3450,7 +3557,7 @@ msgstr "Mumblefly"
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Password changed successfully."
|
||||
msgid "SuperUser password successfully updated."
|
||||
@ -3890,7 +3997,7 @@ msgstr "Upravit připojení"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "Upravit"
|
||||
|
||||
@ -4163,6 +4270,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4687,29 +4795,29 @@ msgstr ""
|
||||
"kombinace protokol/port, které zde můžete určit. Například o HTTPS na portu "
|
||||
"jiném, než 443 je známo, že způsobuje problémy."
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "Webový server (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr "Stránky budou k dispozici na <a href=\"http://{0}\">http://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "Webový server (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr "Stránky budou k dispozici na <a href=\"https://{0}\">https://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "Zabezpečený shell (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -6335,24 +6443,24 @@ msgstr "Tor Socks proxy"
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr "Předávájící Tor most"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr "Port Tor předávání k dispozici"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr "Obfs3 transport zaregistrován"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr "Obfs4 transport zaregistrován"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr "Přistoupit k URL adrese {url} na tcp{kind} prostřednictvím Tor"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr "Potvrdit použití Tor na {url} na tcp{kind}"
|
||||
@ -6590,11 +6698,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr "Aktualizovat"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox Foundation"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6750,23 +6858,39 @@ msgstr "Přístup ke všem službám a nastavení systému"
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Zkontrolujte LDAP položku „{search_item}“"
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
"Toto uživatelské jméno je už používáno někým jiným nebo vyhrazeno pro systém."
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Neplatný název serveru"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Password"
|
||||
msgid "Authorization Password"
|
||||
msgstr "Heslo k účtu správce"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Zobrazit heslo"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Select which services should be available to the new user. The user will "
|
||||
@ -6787,20 +6911,23 @@ msgstr ""
|
||||
"skupině správců (admin) se budou moci přihlásit všude. Mohou se k systému "
|
||||
"přihlásit také prostřednictvím SSH a mají práva správy (sudo)."
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "Vytvoření LDAP uživatele se nezdařilo."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to {group} group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "Přidání nového uživatele do skupiny {group} se nezdařilo."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr "Pověřené SSH klíče"
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
@ -6810,45 +6937,49 @@ msgstr ""
|
||||
"systému i bez zadávání hesla. Klíčů je možné vložit vícero, každý na vlastní "
|
||||
"řádek. Prázdné řádky a ty, které začínají na znak # budou ignorovány."
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr "Přejmenování LDAP uživatele se nezdařilo."
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr "Odebrání uživatele ze skupiny se nezdařilo."
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr "Přidání uživatele do skupiny se nezdařilo."
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr "Nepodařilo se vložit SSH klíče."
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
#, fuzzy
|
||||
#| msgid "Failed to add user to group."
|
||||
msgid "Failed to change user status."
|
||||
msgstr "Přidání uživatele do skupiny se nezdařilo."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr "Není možné smazat účet jediného zbývajícího správce systému."
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr "Změna hesla LDAP uživatele se nezdařila."
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "Přidání nového uživatele do skupiny správců (admin) se nezdařilo."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to restrict console access."
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "Omezení přístupu ke konzoli se nezdařilo."
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "Uživatelský účet vytvořen, není jste jím přihlášeni"
|
||||
|
||||
@ -6861,15 +6992,16 @@ msgstr "Změna hesla pro <em>%(username)s</em>"
|
||||
msgid "Save Password"
|
||||
msgstr "Uložit heslo"
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr "Vytvořit uživatele"
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr "Smazat uživatele"
|
||||
|
||||
@ -6887,7 +7019,7 @@ msgstr "Smazat %(username)s"
|
||||
msgid "Administrator Account"
|
||||
msgstr "Účet správce"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -6897,12 +7029,34 @@ msgstr ""
|
||||
"možné později změnit. Tomuto uživateli budou dána práva správy. Později je "
|
||||
"možné přidat další uživatele."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr "Vytvořit účet"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "Účet správce"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
#, fuzzy
|
||||
#| msgid "Cannot delete the only administrator in the system."
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr "Není možné smazat účet jediného zbývajícího správce systému."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr "Uživatelé"
|
||||
|
||||
@ -6916,7 +7070,13 @@ msgstr "Smazat uživatele %(username)s"
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr "Upravit uživatele %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Edit user %(username)s"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "Upravit uživatele %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
@ -6925,39 +7085,39 @@ msgstr ""
|
||||
"Heslo změníte pomocí <a href='%(change_password_url)s'>formuláře pro změnu "
|
||||
"hesla</a>."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr "Uložit změny"
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr "Uživatel %(username)s vytvořen."
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr "Uživatel %(username)s aktualizován."
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr "Upravit uživatele"
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr "Uživatel {user} smazán."
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr "Smazání LDAP uživatele se nezdařilo."
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr "Změnit heslo"
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Heslo úspěšně změněno."
|
||||
|
||||
@ -7454,28 +7614,28 @@ msgstr "Aplikace"
|
||||
msgid "System"
|
||||
msgstr "Systém"
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "Změnit heslo"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr "Restartovat"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr "Vypnout"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "Odhlásit"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr "Vyberte jazyk"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "Přihlásit"
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-08-18 20:32+0000\n"
|
||||
"Last-Translator: Jens Molgaard <subscriptions@zete.tk>\n"
|
||||
"Language-Team: Danish <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -415,6 +415,7 @@ msgstr "Slet arkivet %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Send"
|
||||
|
||||
@ -706,7 +707,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
#, fuzzy
|
||||
#| msgid "Transmission BitTorrent"
|
||||
msgid "Permissions"
|
||||
@ -887,12 +888,132 @@ msgstr "Opfrisk IP-adresse og domæner"
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Konfiguration opdateret"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Install this application?"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Installer denne applikation?"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Create User"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Opret Bruger"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "This service already exists"
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "Denne tjeneste eksisterer allerede"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Wiki or Blog <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Slet Wiki eller Blog <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Slet %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Create User"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Opret Bruger"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Opret lager"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "Tor relay port available"
|
||||
msgid "No libraries available."
|
||||
msgstr "Tor videresendelsesport tilgængelig"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "Slet sitet %(site)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "packages not found"
|
||||
msgid "Library created."
|
||||
msgstr "pakker ikke fundet"
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred during configuration."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "Der opstod en fejl under konfigurationen."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} slettet."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Kunne ikke slette {name}: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1130,13 +1251,15 @@ msgstr "Coturn"
|
||||
msgid "VoIP Helper"
|
||||
msgstr "VoIP-hjælper"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
#, fuzzy
|
||||
#| msgid "Subdomain"
|
||||
msgid "TLS domain"
|
||||
msgstr "Subdomæne"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1532,7 +1655,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "Brug basal (\"basic\") HTTP-autentifikation"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "Brugernavn"
|
||||
|
||||
@ -2077,12 +2200,6 @@ msgstr "Slet Wiki eller Blog <em>%(name)s</em>"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Slet bruger permanent?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Slet %(name)s"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
#, fuzzy
|
||||
#| msgid "packages not found"
|
||||
@ -2107,16 +2224,6 @@ msgstr "pakker ikke fundet"
|
||||
msgid "Edit repository"
|
||||
msgstr "Opret Bruger"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} slettet."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Kunne ikke slette {name}: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "Dokumentation"
|
||||
@ -2666,7 +2773,7 @@ msgid "Chat Client"
|
||||
msgstr "IRC-klient (Quassel)"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -3436,7 +3543,7 @@ msgstr "Nøgle distribueret til nøgleserver."
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "Fejl under distribuering af nøgle."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
@ -3444,7 +3551,7 @@ msgstr ""
|
||||
"Mumble er open source software der tilbyder en højkvalitets tale-tjeneste "
|
||||
"med lav forsinkelse og kryptering."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3454,23 +3561,23 @@ msgstr ""
|
||||
"<a href=\"http://mumble.info\">Klienter</a> til computere og Android-enheder "
|
||||
"er tilgængelige."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
#, fuzzy
|
||||
#| msgid "Voice Chat (Mumble)"
|
||||
msgid "Voice Chat"
|
||||
msgstr "Tale-tjeneste (Mumble)"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "Save Password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "Gem Kodeord"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3488,7 +3595,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Password changed successfully."
|
||||
msgid "SuperUser password successfully updated."
|
||||
@ -3940,7 +4047,7 @@ msgstr "Rediger Forbindelse"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "Rediger"
|
||||
|
||||
@ -4216,6 +4323,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4758,29 +4866,29 @@ msgstr ""
|
||||
"her. For eksempel er HTTPS på andre porte end 443 kendt for at give "
|
||||
"problemer."
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "Webserver (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr "Siden vil være tilgængelig på <a href=\"http://{0}\">http://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "Webserver (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr "Siden vil være tilgængelig på <a href=\"https://{0}\">https://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "Secure Shell (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -6370,24 +6478,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr "Tor Bridge Relay"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr "Tor videresendelsesport tilgængelig"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr "Obfs3 transport registreret"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr "Obfs4 transport registreret"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr "Tilgå URL {url} ved brug af tcp{kind} via Tor"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr "Bekræft brug af Tor på {url} ved brug af tcp{kind}"
|
||||
@ -6615,11 +6723,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr "Opdater"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox Manual"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6781,22 +6889,38 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Kontrol af LDAP-konfiguration \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Ugyldigt servernavn"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "Authorization Password"
|
||||
msgstr "Administratorkonto"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Vis kodeord"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Select which services should be available to the new user. The user will "
|
||||
@ -6818,20 +6942,23 @@ msgstr ""
|
||||
"tjenester. De kan også logge ind på systemet gennem SSH og har "
|
||||
"administratorprivilegier (sudo)."
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "Kunne ikke oprette LDAP-bruger."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to {group} group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "Kunne ikke tilføje ny bruger til gruppen {group}."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
@ -6841,45 +6968,50 @@ msgstr ""
|
||||
"sikkert ind på systemet uden et kodeord. Der kan defineres flere nøgler, en "
|
||||
"på hver linje. Tomme linjer og linjer som starter med # bliver ignoreret."
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr "Kunne ikke omdøbe LDAP-bruger."
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr "Kunne ikke fjerne bruger fra gruppe."
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr "Kunne ikke tilføje bruger til gruppe."
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
#, fuzzy
|
||||
#| msgid "Failed to add user to group."
|
||||
msgid "Failed to change user status."
|
||||
msgstr "Kunne ikke tilføje bruger til gruppe."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr "Kunne ikke ændre LDAP-kodeord."
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "Kunne ikke tilføje ny bruger til admin-gruppen."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to obtain certificate for domain {domain}: {error}"
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
"Fejl ved forsøg på at erhverve certifikatet for domænet {domain}: {error}"
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "Brugerkonto oprettet, du er nu logget ind"
|
||||
|
||||
@ -6892,15 +7024,16 @@ msgstr "Ændr Kodeord for <em>%(username)s</em>"
|
||||
msgid "Save Password"
|
||||
msgstr "Gem Kodeord"
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr "Opret Bruger"
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr "Slet Bruger"
|
||||
|
||||
@ -6918,7 +7051,7 @@ msgstr "Slet %(username)s"
|
||||
msgid "Administrator Account"
|
||||
msgstr "Administratorkonto"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -6928,14 +7061,34 @@ msgstr ""
|
||||
"Kodeordet kan ændres senere. Brugeren vil få tildelt "
|
||||
"administratorrettigheder. Andre brugere kan tilføjes senere."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
#, fuzzy
|
||||
#| msgid "PageKite Account"
|
||||
msgid "Create Account"
|
||||
msgstr "PageKite-konto"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "Administratorkonto"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr "Brugere"
|
||||
|
||||
@ -6949,7 +7102,12 @@ msgstr "Slet bruger %(username)s"
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr "Rediger Bruger %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "Rediger Bruger <em>%(username)s</em>"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
@ -6958,39 +7116,39 @@ msgstr ""
|
||||
"Brug <a href='%(change_password_url)s'>siden til kodeordsændring </a> for at "
|
||||
"ændre kodeord."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr "Gem Ændringer"
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr "Bruger %(username)s oprettet."
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr "Bruger %(username)s opdateret."
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr "Rediger Bruger"
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr "Brugeren {user} slettet."
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr "Kunne ikke slette LDAP-bruger."
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr "Ændr kodeord"
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Kodeord blev ændret."
|
||||
|
||||
@ -7470,34 +7628,34 @@ msgstr "Apps"
|
||||
msgid "System"
|
||||
msgstr "System"
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "Ændr kodeord"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
#, fuzzy
|
||||
#| msgid "Restart Now"
|
||||
msgid "Restart"
|
||||
msgstr "Genstart Nu"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
#, fuzzy
|
||||
#| msgid "Shut Down Now"
|
||||
msgid "Shut down"
|
||||
msgstr "Sluk Nu"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "Log ud"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
#, fuzzy
|
||||
#| msgid "Language"
|
||||
msgid "Select language"
|
||||
msgstr "Sprog"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "Log ind"
|
||||
|
||||
@ -8196,12 +8354,6 @@ msgstr ""
|
||||
#~ msgstr ""
|
||||
#~ "Fejl ved forsøg på at erhverve certifikatet for domænet {domain}: {error}"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Failed to obtain certificate for domain {domain}: {error}"
|
||||
#~ msgid "Failed to switch certificate use for app {module}: {error}"
|
||||
#~ msgstr ""
|
||||
#~ "Fejl ved forsøg på at erhverve certifikatet for domænet {domain}: {error}"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Failed to revoke certificate for domain {domain}: {error}"
|
||||
#~ msgid ""
|
||||
@ -8843,6 +8995,3 @@ msgstr ""
|
||||
|
||||
#~ msgid "Bittorrent (Transmission)"
|
||||
#~ msgstr "BitTorrent (Transmission)"
|
||||
|
||||
#~ msgid "Edit User <em>%(username)s</em>"
|
||||
#~ msgstr "Rediger Bruger <em>%(username)s</em>"
|
||||
|
||||
@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-09-23 11:08+0000\n"
|
||||
"Last-Translator: Dietmar <sagen@permondes.de>\n"
|
||||
"Language-Team: German <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -415,6 +415,7 @@ msgstr "Archiv %(name)s löschen"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Absenden"
|
||||
|
||||
@ -722,7 +723,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr "Berechtigungen"
|
||||
|
||||
@ -892,12 +893,132 @@ msgstr "IP-Adresse und Domänen aktualisieren"
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Konfiguration aktualisiert"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Administer Syncthing application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Syncthing-Anwendung einstellen"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Name of the repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Name des resositorys"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "Eine Freigabe mit diesem Namen existiert bereits."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Git Repository <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Git Repository <em>%(name)s</em> löschen"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "%(name)s löschen"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Manage Repositories"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Archive verwalten"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Archiv anlegen"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "No repositories available."
|
||||
msgid "No libraries available."
|
||||
msgstr "Keine Archive verfügbar."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "Seite %(site)s löschen"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository created."
|
||||
msgid "Library created."
|
||||
msgstr "Archiv erstellt."
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred while creating the repository."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "Beim Erstellen des Repository ist ein Fehler aufgetreten."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} gelöscht."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "{name} konnte nicht gelöscht werden: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1135,11 +1256,13 @@ msgstr "Coturn"
|
||||
msgid "VoIP Helper"
|
||||
msgstr "VoIP-Helfer"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr "TLS Domain"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1515,7 +1638,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "HTTP-Basisauthentifizierung verwenden"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "Benutzername"
|
||||
|
||||
@ -2043,12 +2166,6 @@ msgstr "Git Repository <em>%(name)s</em> löschen"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Dieses respository permanent löschen?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "%(name)s löschen"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr "Archiv erstellt."
|
||||
@ -2065,16 +2182,6 @@ msgstr "Archiv bearbeitet."
|
||||
msgid "Edit repository"
|
||||
msgstr "Archiv bearbeiten"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} gelöscht."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "{name} konnte nicht gelöscht werden: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "Dokumentation"
|
||||
@ -2645,7 +2752,7 @@ msgid "Chat Client"
|
||||
msgstr "Chatclient"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr "JavaScript-Lizenzinformation"
|
||||
|
||||
@ -3420,7 +3527,7 @@ msgstr "Veröffentlichte Schlüssel auf dem Server."
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "Fehler beim Veröffentlichen des Schlüssels."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
@ -3428,7 +3535,7 @@ msgstr ""
|
||||
"Mumble ist eine hochwertige quelloffene Software für Telefonie und Chat, mit "
|
||||
"Verschlüsselung und geringer Latenz."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3438,19 +3545,19 @@ msgstr ""
|
||||
"verbinden. Auf <a href=\"http://mumble.info\">Mumble</a> finden Sie "
|
||||
"Anwendungen, um sich vom Desktop oder Android-Gerät mit Mumble zu verbinden."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr "Mumble"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr "Sprachkonferenz"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "SuperUser-Kennwort festlegen"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3471,7 +3578,7 @@ msgstr "Mumblefly"
|
||||
msgid "Mumla"
|
||||
msgstr "Mumla"
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr "SuperUser-Kennwort wurde erfolgreich aktualisiert."
|
||||
|
||||
@ -3962,7 +4069,7 @@ msgstr "Verbindung bearbeiten"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "Bearbeiten"
|
||||
|
||||
@ -4240,6 +4347,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr "Überspringen Sie diesen Schritt"
|
||||
|
||||
@ -4782,31 +4890,31 @@ msgstr ""
|
||||
"Beispielsweise HTTPS auf anderen Ports als 443, ist bekannt dafür, Probleme "
|
||||
"zu verursachen."
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "Webserver (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
"Webseite wird unter <a href=\"http://{0}\">http://{0}</a> verfügbar sein"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "Webserver (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
"Webseite wird unter <a href=\"https://{0}\">https://{0}</a> verfügbar sein"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "Secure Shell (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -6418,24 +6526,24 @@ msgstr "Tor-Socks-Proxy"
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr "Tor-Bridge-Relay"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr "Tor-Relay-Port ist verfügbar"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr "Obfs3-Transport registriert"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr "Obfs4-Transport registriert"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr "Zugangs-URL {url} auf TCP{kind} über Tor"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr "Tor-Nutzung auf {url} über TCP{kind} bestätigen"
|
||||
@ -6670,11 +6778,11 @@ msgstr ""
|
||||
"erachtet wird, erfolgt dieser automatisch um 02:00 Uhr, so dass alle "
|
||||
"Anwendungen kurzzeitig nicht verfügbar sind."
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr "Aktualisieren"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
msgid "FreedomBox Updated"
|
||||
msgstr "FreedomBox aktualisiert"
|
||||
|
||||
@ -6844,22 +6952,38 @@ msgstr "Zugriff auf alle Anwendungen und Systemeinstellungen"
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "LDAP-Eintrag „{search_item}“ prüfen"
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr "Benutzername wird bereits verwendet oder ist reserviert."
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Einen gültigen Benutzernamen eingeben."
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
"Erforderlich. 150 Zeichen oder weniger. Nur englische Buchstaben, Ziffern "
|
||||
"und @/./-/_."
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Password"
|
||||
msgid "Authorization Password"
|
||||
msgstr "Administrator-Passwort"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Add password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Kennwort hinzufügen"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -6874,20 +6998,23 @@ msgstr ""
|
||||
"allen Diensten anmelden und sie können sich auch über SSH im System anmelden "
|
||||
"und besitzen Administratorrechte (sudo)."
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "Erstellen des LDAP-Benutzers ist fehlgeschlagen."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to {group} group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "Der Benutzer konnte nicht der Gruppe {group} hinzugefügt werden."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr "Autorisierte SSH-Schlüssel"
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
@ -6898,43 +7025,47 @@ msgstr ""
|
||||
"eingeben, einen pro Zeile. Leerzeilen und Zeilen, die mit # beginnen, werden "
|
||||
"ignoriert."
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr "Umbenennen des LDAP-Benutzers fehlgeschlagen."
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr "Entfernen des Benutzers von der Gruppe fehlgeschlagen."
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr "Hinzufügen eines Benutzers zur Gruppe ist fehlgeschlagen."
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr "SSH-Schlüssel kann nicht gesetzt werden."
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr "Fehler beim Ändern des Benutzerstatus."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr "Der einzige Administrator des Systems kann nicht gelöscht werden."
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr "Ändern des LDAP-Benutzerpassworts ist fehlgeschlagen."
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "Hinzufügen eines neuen Benutzers zur admin-Gruppe ist fehlgeschlagen."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to restrict console access."
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "Einschränken des Konsolenzugriffs fehlgeschlagen."
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "Benutzerkonto wurde erstellt, Sie sind jetzt angemeldet"
|
||||
|
||||
@ -6947,15 +7078,16 @@ msgstr "Passwort für <em>%(username)s</em> ändern"
|
||||
msgid "Save Password"
|
||||
msgstr "Passwort speichern"
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr "Benutzer anlegen"
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr "Benutzer löschen"
|
||||
|
||||
@ -6973,7 +7105,7 @@ msgstr "%(username)s löschen"
|
||||
msgid "Administrator Account"
|
||||
msgstr "Administratorkonto"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -6983,12 +7115,34 @@ msgstr ""
|
||||
"zugreifen. Das Passwort kann später geändert werden. Dieser Benutzer erhält "
|
||||
"Administrator-Rechte. Weitere Benutzer können später hinzugefügt werden."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr "Konto erstellen"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "Administratorkonto"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
#, fuzzy
|
||||
#| msgid "Cannot delete the only administrator in the system."
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr "Der einzige Administrator des Systems kann nicht gelöscht werden."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr "Benutzer"
|
||||
|
||||
@ -7002,7 +7156,12 @@ msgstr "Benutzer %(username)s löschen"
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr "Benutzer %(username)s bearbeiten"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "Benutzer <em>%(username)s</em> bearbeiten"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
@ -7012,39 +7171,39 @@ msgstr ""
|
||||
"href='%(change_password_url)s'>Passwortänderungsformular</a>, um das "
|
||||
"Passwort zu ändern."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr "Änderungen speichern"
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr "Benutzer %(username)s angelegt."
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr "Benutzer %(username)s geändert."
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr "Benutzer bearbeiten"
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr "Benutzer {user} gelöscht."
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr "Löschen von LDAP-Benutzer fehlgeschlagen."
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr "Passwort ändern"
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Passwort erfolgreich geändert."
|
||||
|
||||
@ -7502,28 +7661,28 @@ msgstr "Apps"
|
||||
msgid "System"
|
||||
msgstr "System"
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "Passwort ändern"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr "Neu starten"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr "Herunterfahren"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "Abmelden"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr "Sprache wählen"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "Anmelden"
|
||||
|
||||
@ -9193,8 +9352,5 @@ msgstr "Gujarati"
|
||||
#~ msgid "Bittorrent (Transmission)"
|
||||
#~ msgstr "Bittorrent (Transmission)"
|
||||
|
||||
#~ msgid "Edit User <em>%(username)s</em>"
|
||||
#~ msgstr "Benutzer <em>%(username)s</em> bearbeiten"
|
||||
|
||||
#~ msgid "Scramblesuit transport registered"
|
||||
#~ msgstr "Scramblesuit Transport registriert"
|
||||
|
||||
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -386,6 +386,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@ -652,7 +653,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -810,12 +811,114 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
msgid "Administer calibre application"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
msgid "Name of the new library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, python-format
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
msgid "Manage Libraries"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
msgid "Create Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
msgid "Library created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1012,11 +1115,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1334,7 +1439,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@ -1783,12 +1888,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -1805,16 +1904,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2280,7 +2369,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -2927,32 +3016,32 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -2970,7 +3059,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3362,7 +3451,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3629,6 +3718,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4082,29 +4172,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5465,24 +5555,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5671,11 +5761,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
msgid "FreedomBox Updated"
|
||||
msgstr ""
|
||||
|
||||
@ -5816,20 +5906,32 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
msgid "Enter a valid username."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
msgid "Invalid password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -5838,63 +5940,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -5907,15 +6012,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -5933,19 +6039,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -5959,46 +6083,51 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6409,28 +6538,28 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-05-29 18:41+0000\n"
|
||||
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
|
||||
"Language-Team: Greek <https://hosted.weblate.org/projects/freedombox/plinth/"
|
||||
@ -423,6 +423,7 @@ msgstr "Διαγραφή αρχείου %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Υποβολή"
|
||||
|
||||
@ -739,7 +740,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr "Δικαιώματα"
|
||||
|
||||
@ -929,12 +930,132 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Η ρύθμιση παραμέτρων Ενημερώθηκε"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Administer Syncthing application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Διαχειριστείτε την εφαρμογή Syncthing"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Name of the repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Όνομα του αποθετηρίου"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "Υπάρχει ήδη ένα μέρισμα με αυτό το όνομα."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Git Repository <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Διαγραφή αποθετηρίου Git <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Διαγραφή %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Manage Repositories"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Διαχείριση αποθετηρίων"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Δημιουργία Αποθετηρίου"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "No repositories available."
|
||||
msgid "No libraries available."
|
||||
msgstr "Δεν υπάρχουν διαθέσιμα αποθετήρια."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "Διαγραφή ιστότοπου %(site)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository created."
|
||||
msgid "Library created."
|
||||
msgstr "Το αποθετήριο δημιουργήθηκε."
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred while creating the repository."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "Παρουσιάστηκε σφάλμα κατά τη δημιουργία του αποθετηρίου."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "το {name} διαγράφηκε."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Δεν ήταν δυνατή η διαγραφή του {name}: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1167,11 +1288,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr "ΤLS όνομα διαδικτύου"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1554,7 +1677,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "Χρήση βασικού ελέγχου ταυτότητας HTTP"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "Όνομα χρήστη"
|
||||
|
||||
@ -2082,12 +2205,6 @@ msgstr "Διαγραφή αποθετηρίου Git <em>%(name)s</em>"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Να διαγραφεί μόνιμα αυτό το αποθετήριο;"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Διαγραφή %(name)s"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr "Το αποθετήριο δημιουργήθηκε."
|
||||
@ -2104,16 +2221,6 @@ msgstr "To αποθετήριο τροποποιήθηκε."
|
||||
msgid "Edit repository"
|
||||
msgstr "Τροποποίηση αποθετηρίου"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "το {name} διαγράφηκε."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Δεν ήταν δυνατή η διαγραφή του {name}: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "Boηθητικά έγγραφα"
|
||||
@ -2707,7 +2814,7 @@ msgid "Chat Client"
|
||||
msgstr "Πρόγραμμα-πελάτης συνομιλίας"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr "Πληροφορίες άδειας χρήσης JavaScript"
|
||||
|
||||
@ -3496,7 +3603,7 @@ msgstr "Δημοσιεύθηκε το κλειδί στο διακομιστή
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "Παρουσιάστηκε σφάλμα κατά τη δημοσίευση του κλειδιού."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
@ -3504,7 +3611,7 @@ msgstr ""
|
||||
"Το mumble είναι ένα ανοικτού πηγαίου κώδικα, χαμηλής καθυστέρησης, "
|
||||
"κρυπτογραφημένο και υπηλής ποιότητας προγραμμα φωνητικής συνομιλίας."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3514,19 +3621,19 @@ msgstr ""
|
||||
"href=\"http://mumble.info\"> Πελάτες </a> για να συνδεθείτε με το Mumble από "
|
||||
"τον υπολογιστή και τις συσκευές Android είναι διαθέσιμες."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr "Mumble"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr "Φωνητική συνομιλία"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "Ορισμός κωδικού πρόσβασης SuperUser"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3547,7 +3654,7 @@ msgstr "Mumblefly"
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr "Ο κωδικός πρόσβασης SuperUser Ενημερώθηκε με επιτυχία."
|
||||
|
||||
@ -3988,7 +4095,7 @@ msgstr "Επεξεργασία σύνδεσης"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "Επεξεργασία"
|
||||
|
||||
@ -4262,6 +4369,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4777,30 +4885,30 @@ msgstr ""
|
||||
"παράδειγμα, HTTPS, στις θύρες εκτός από 443 είναι γνωστό ότι προκαλούν "
|
||||
"προβλήματα."
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "Διακομιστής Διαδικτύου (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
"Η τοποθεσία θα είναι διαθέσιμη στο <a href =\"http://{0}\">http://{0} </a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "Διακομιστής Διαδικτύου (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr "Το Site θα είναι διαθέσιμο στο <a href=\"https://{0}\">https://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "Secure Shell (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -6465,24 +6573,24 @@ msgstr "Tor διακομιστής μεσολάβησης τύπου socks5"
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr "Γέφυρα/μεσολαβητής Tor"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr "Θύρα μεσολαβητή Tor διαθέσιμη"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr "Obfs3 μεταφορά καταχωρήθηκε"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr "Obfs4 μεταφορά καταχωρήθηκε"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr "Πρόσβαση στη διεύθυνση URL {url} με tcp {kind} μέσω του Tor"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr "Επιβεβαίωση χρήσης του Tor στο {url} στο προτόκολλο TCP {kind}"
|
||||
@ -6716,11 +6824,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr "Ενημερωμένη έκδοση"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox Foundation"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6889,22 +6997,38 @@ msgstr "Πρόσβαση σε όλες τις υπηρεσίες και τις
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Ελέγξτε την καταχώρηση LDAP \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr "Το όνομα χρήστη είναι δεσμευμένο."
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Μη έγκυρο όνομα διακομιστή"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Password"
|
||||
msgid "Authorization Password"
|
||||
msgstr "Κωδικός Πρόσβασης Διαχειριστή"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Εμφάνιση κωδικού"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Select which services should be available to the new user. The user will "
|
||||
@ -6926,20 +7050,23 @@ msgstr ""
|
||||
"υπηρεσίες. Μπορούν επίσης να συνδεθούν στο σύστημα μέσω του SSH και να έχουν "
|
||||
"δικαιώματα διαχειριστή (sudo)."
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "Η δημιουργία χρήστη LDAP απέτυχε."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to {group} group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "Απέτυχε η προσθήκη νέου χρήστη στην ομάδα {group}."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr "Εξουσιοδοτημένα κλειδιά SSH"
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
@ -6950,43 +7077,47 @@ msgstr ""
|
||||
"Μπορείτε να εισαγάγετε πολλαπλά κλειδιά, ένα σε κάθε γραμμή. Οι κενές "
|
||||
"γραμμές και οι γραμμές που ξεκινούν με # θα αγνοηθούν."
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr "Η μετονομασία του χρήστη LDAP απέτυχε."
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr "Απέτυχε η κατάργηση του χρήστη από την ομάδα."
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr "Απέτυχε η προσθήκη χρήστη στην ομάδα."
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr "Δεν ήταν δυνατό να προστεθούν τα κλειδιά SSH."
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr "Απέτυχε η αλλαγή της κατάστασης χρήστη."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr "Δεν είναι δυνατή η διαγραφή του μοναδικού διαχειριστή στο σύστημα."
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr "Η αλλαγή του κωδικού πρόσβασης χρήστη LDAP απέτυχε."
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "Αποτυχία προσθήκης νέου χρήστη στην ομάδα διαχειριστών."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to restrict console access."
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "Απέτυχε ο περιορισμός της πρόσβασης στην κονσόλα."
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "Ο λογαριασμός χρήστη δημιουργήθηκε, τώρα είστε συνδεδεμένοι"
|
||||
|
||||
@ -6999,15 +7130,16 @@ msgstr "Αλλαγή κωδικού πρόσβασης για το <em>%(usernam
|
||||
msgid "Save Password"
|
||||
msgstr "Αποθήκευση κωδικού πρόσβασης"
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr "Δημιουργία χρήστη"
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr "Διαγραφή χρήστη"
|
||||
|
||||
@ -7025,7 +7157,7 @@ msgstr "Διαγραφή %(username)s"
|
||||
msgid "Administrator Account"
|
||||
msgstr "Λογαριασμός διαχειριστή"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -7036,12 +7168,34 @@ msgstr ""
|
||||
"αυτόν το χρήστη θα εκχωρούνται δικαιώματα διαχείρισης. Άλλοι χρήστες μπορούν "
|
||||
"να προστεθούν αργότερα."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr "Δημιουργία λογαριασμού"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "Λογαριασμός διαχειριστή"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
#, fuzzy
|
||||
#| msgid "Cannot delete the only administrator in the system."
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr "Δεν είναι δυνατή η διαγραφή του μοναδικού διαχειριστή στο σύστημα."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr "Χρήστες"
|
||||
|
||||
@ -7055,7 +7209,13 @@ msgstr "Διαγραφή χρήστη %(username)s"
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr "Επεξεργασία χρήστη %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Edit user %(username)s"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "Επεξεργασία χρήστη %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
@ -7064,39 +7224,39 @@ msgstr ""
|
||||
"Χρησιμοποιήστε τη <a href='%(change_password_url)s'> φόρμα αλλαγής κωδικού "
|
||||
"πρόσβασης </a> για να αλλάξετε τον κωδικό πρόσβασης."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr "Αποθήκευση αλλαγών"
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr "Ο χρήστης %(username)s δημιουργήθηκε."
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr "O χρήστης %(username)s ενημερώθηκε."
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr "Επεξεργασία χρήστη"
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr "Ο χρήστης {user} διαγράφηκε."
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr "Η διαγραφή του χρήστη LDAP απέτυχε."
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr "Αλλαγή κωδικού πρόσβασης"
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Ο κωδικός πρόσβασης άλλαξε με επιτυχία."
|
||||
|
||||
@ -7593,28 +7753,28 @@ msgstr "Εφαρμογές"
|
||||
msgid "System"
|
||||
msgstr "Σύστημα"
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "Αλλαγή κωδικού πρόσβασης"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr "Κάνετε επανεκκίνηση"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr "ΤΕΡΜΑΤΙΣΜΟΣ ΛΕΙΤΟΥΡΓΙΑΣ"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "Αποσύνδεση"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr "Επιλογή γλώσσας"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "Σύνδεση"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2016-08-12 15:51+0000\n"
|
||||
"Last-Translator: Masoud Abkenar <ampbox@gmail.com>\n"
|
||||
"Language-Team: Persian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -436,6 +436,7 @@ msgstr "پاککردن %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
#, fuzzy
|
||||
msgid "Submit"
|
||||
msgstr "فرستادن"
|
||||
@ -723,7 +724,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -903,12 +904,127 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "پیکربندی بهروز شد"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
msgid "Administer calibre application"
|
||||
msgstr "فعالسازی برنامه"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Create Connection"
|
||||
msgid "Name of the new library"
|
||||
msgstr "ساختن اتصال"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Wiki or Blog <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "پاککردن ویکی یا وبلاگ <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "پاککردن %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Create Connection"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "ساختن اتصال"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Connection"
|
||||
msgid "Create Library"
|
||||
msgstr "ساختن اتصال"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "No wikis or blogs available."
|
||||
msgid "No libraries available."
|
||||
msgstr "ویکی یا وبلاگی موجود نیست."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "سایت %(site)s را پاک کنید"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
msgid "Library created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "Error occurred while publishing key."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "هنگام انتشار کلید خطایی رخ داد."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} پاک شد."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "نشد که {name} پاک شود: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1124,13 +1240,15 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
#, fuzzy
|
||||
#| msgid "Subdomain"
|
||||
msgid "TLS domain"
|
||||
msgstr "زیردامنه"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1508,7 +1626,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "بهکاربردن تأیید هویت سادهٔ تحت وب"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "نام کاربری"
|
||||
|
||||
@ -2014,12 +2132,6 @@ msgstr "پاککردن ویکی یا وبلاگ <em>%(name)s</em>"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "اتصال <strong>%(name)s</strong> را برای همیشه پاک میکنید؟"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "پاککردن %(name)s"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -2040,16 +2152,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr "ساختن اتصال"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} پاک شد."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "نشد که {name} پاک شود: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "راهنما"
|
||||
@ -2582,7 +2684,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -3316,13 +3418,13 @@ msgstr "کلید در پایگاه کلیدها منتشر شد."
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "هنگام انتشار کلید خطایی رخ داد."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr "مامبل (Mumble) یک نرمافزار چت صوتی متنباز، کمتأخیر، و باکیفیت است."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3332,23 +3434,23 @@ msgstr ""
|
||||
"\"http://mumble.info\">نرمافزارهایی</a> برای اتصال به سرور مامبل برای "
|
||||
"کامپیوتر رومیزی و دستگاههای اندروید در دسترس است."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
#, fuzzy
|
||||
#| msgid "Voice Chat (Mumble)"
|
||||
msgid "Voice Chat"
|
||||
msgstr "چت صوتی (Mumble)"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "Please provide a password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "لطفاً یک رمز وارد کنید"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3366,7 +3468,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3807,7 +3909,7 @@ msgstr "ویرایش اتصال"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "ویرایش"
|
||||
|
||||
@ -4083,6 +4185,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4546,29 +4649,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -6043,24 +6146,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -6251,11 +6354,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
msgid "FreedomBox Updated"
|
||||
msgstr "FreedomBox"
|
||||
@ -6403,22 +6506,38 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "نام کاربری معتبر نیست"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "Authorization Password"
|
||||
msgstr "حساب مدیر"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "رمز را نشان بده"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -6427,65 +6546,72 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "ساختن کاربر LDAP شکست خورد."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgstr ""
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "افزودن کاربر به گروه مدیران شکست خورد."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
#, fuzzy
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to change user status."
|
||||
msgstr "افزودن کاربر به گروه مدیران شکست خورد."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "افزودن کاربر به گروه مدیران شکست خورد."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
msgstr ""
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to obtain certificate for domain {domain}: {error}"
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "گرفتن گواهی برای دامنهٔ {domain} شکست خورد: {error}"
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "حساب کاربری ساخته شد، شما الان وارد سیستم هستید"
|
||||
|
||||
@ -6498,15 +6624,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -6524,7 +6651,7 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr "حساب مدیر"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -6534,14 +6661,34 @@ msgstr ""
|
||||
"میتوانید تغییر دهید. این نام کاربری دسترسی مدیریتی خواهد داشت. کاربران دیگر "
|
||||
"را بعداً میتوانید اضافه کنید."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
#, fuzzy
|
||||
#| msgid "Create Connection"
|
||||
msgid "Create Account"
|
||||
msgstr "ساختن اتصال"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "حساب مدیر"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -6555,46 +6702,52 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Wiki or Blog <em>%(name)s</em>"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "پاککردن ویکی یا وبلاگ <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -7046,30 +7199,30 @@ msgstr "برنامهها"
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
#, fuzzy
|
||||
#| msgid "Language"
|
||||
msgid "Select language"
|
||||
msgstr "زبان"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
@ -7351,10 +7504,6 @@ msgstr ""
|
||||
#~ msgid "Deleted all snapshots"
|
||||
#~ msgstr "پاککردن %(name)s"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Enable application"
|
||||
#~ msgstr "فعالسازی برنامه"
|
||||
|
||||
#~ msgid "Setup a freedombox.me subdomain with your voucher"
|
||||
#~ msgstr "با کوپنی که دارید، یک زیردامنهٔ freedombox.me بسازید"
|
||||
|
||||
@ -7507,11 +7656,6 @@ msgstr ""
|
||||
#~ "Failed to switch certificate renewal management for {domain}: {error}"
|
||||
#~ msgstr "گرفتن گواهی برای دامنهٔ {domain} شکست خورد: {error}"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Failed to obtain certificate for domain {domain}: {error}"
|
||||
#~ msgid "Failed to switch certificate use for app {module}: {error}"
|
||||
#~ msgstr "گرفتن گواهی برای دامنهٔ {domain} شکست خورد: {error}"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Failed to revoke certificate for domain {domain}: {error}"
|
||||
#~ msgid ""
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Plinth 0.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2016-01-31 22:24+0530\n"
|
||||
"Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n"
|
||||
"Language-Team: Plinth Developers <freedombox-discuss@lists.alioth.debian."
|
||||
@ -454,6 +454,7 @@ msgstr "DELETE %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "SUBMIT"
|
||||
|
||||
@ -754,7 +755,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
#, fuzzy
|
||||
#| msgid "Transmission BitTorrent"
|
||||
msgid "Permissions"
|
||||
@ -938,12 +939,132 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "CONFIGURATION UPDATED"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Installation"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "INSTALLATION"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Create User"
|
||||
msgid "Name of the new library"
|
||||
msgstr "CREATE USER"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "This service already exists"
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "THIS SERVICE ALREADY EXISTS"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Wiki or Blog <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "DELETE WIKI OR BLOG <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "DELETE %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Create User"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "CREATE USER"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create User"
|
||||
msgid "Create Library"
|
||||
msgstr "CREATE USER"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "Tor relay port available"
|
||||
msgid "No libraries available."
|
||||
msgstr "TOR RELAY PORT AVAILABLE"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "DELETE SITE %(site)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "packages not found"
|
||||
msgid "Library created."
|
||||
msgstr "PACKAGES NOT FOUND"
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred during configuration."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "AN ERROR OCCURRED DURING CONFIGURATION."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} DELETED."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "COULD NOT DELETE {name}: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1163,13 +1284,15 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
#, fuzzy
|
||||
#| msgid "Enable Subdomains"
|
||||
msgid "TLS domain"
|
||||
msgstr "ENABLE SUBDOMAINS"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1585,7 +1708,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "USE HTTP BASIC AUTHENTICATION"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "USERNAME"
|
||||
|
||||
@ -2140,12 +2263,6 @@ msgstr "DELETE WIKI OR BLOG <em>%(name)s</em>"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "DELETE USER PERMANENTLY?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "DELETE %(name)s"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
#, fuzzy
|
||||
#| msgid "packages not found"
|
||||
@ -2170,16 +2287,6 @@ msgstr "PACKAGES NOT FOUND"
|
||||
msgid "Edit repository"
|
||||
msgstr "CREATE USER"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} DELETED."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "COULD NOT DELETE {name}: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "DOCUMENTATION"
|
||||
@ -2716,7 +2823,7 @@ msgid "Chat Client"
|
||||
msgstr "IRC CLIENT (QUASSEL)"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -3521,7 +3628,7 @@ msgstr "PUBLISHED KEY TO KEYSERVER."
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "ERROR OCCURRED WHILE PUBLISHING KEY."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
@ -3529,7 +3636,7 @@ msgstr ""
|
||||
"MUMBLE IS AN OPEN SOURCE, LOW-LATENCY, ENCRYPTED, HIGH QUALITY VOICE CHAT "
|
||||
"SOFTWARE."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3539,23 +3646,23 @@ msgstr ""
|
||||
"href=\"http://mumble.info\">CLIENTS</a> TO CONNECT TO MUMBLE FROM YOUR "
|
||||
"DESKTOP AND ANDROID DEVICES ARE AVAILABLE."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
#, fuzzy
|
||||
#| msgid "Voice Chat (Mumble)"
|
||||
msgid "Voice Chat"
|
||||
msgstr "VOICE CHAT (MUMBLE)"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "Save Password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "SAVE PASSWORD"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3573,7 +3680,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Password changed successfully."
|
||||
msgid "SuperUser password successfully updated."
|
||||
@ -4008,7 +4115,7 @@ msgstr "EDIT CONNECTION"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "EDIT"
|
||||
|
||||
@ -4283,6 +4390,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4836,29 +4944,29 @@ msgstr ""
|
||||
"PROTOCOL/PORT COMBINATIONS THAT YOU ARE ABLE TO DEFINE HERE. FOR EXAMPLE, "
|
||||
"HTTPS ON PORTS OTHER THAN 443 IS KNOWN TO CAUSE PROBLEMS."
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "WEB SERVER (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr "SITE WILL BE AVAILABLE AT <a href=\"http://{0}\">HTTP://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "WEB SERVER (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr "SITE WILL BE AVAILABLE AT <a href=\\\"https://{0}\\\">HTTPS://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "SECURE SHELL (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -6455,24 +6563,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr "TOR BRIDGE RELAY"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr "TOR RELAY PORT AVAILABLE"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr "OBFS3 TRANSPORT REGISTERED"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr "OBFS4 TRANSPORT REGISTERED"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr "ACCESS URL {url} ON TCP{kind} VIA TOR"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr "CONFIRM TOR USAGE AT {url} ON TCP{kind}"
|
||||
@ -6697,13 +6805,13 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
#, fuzzy
|
||||
#| msgid "Update URL"
|
||||
msgid "Update"
|
||||
msgstr "UPDATE URL"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox Manual"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6863,22 +6971,38 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "CHECK LDAP ENTRY \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "INVALID SERVER NAME"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "Authorization Password"
|
||||
msgstr "ADMINISTRATOR ACCOUNT"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "SHOW PASSWORD"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Select which services should be available to the new user. The user will "
|
||||
@ -6899,20 +7023,23 @@ msgstr ""
|
||||
"ABLE TO LOG IN TO ALL SERVICES. THEY CAN ALSO LOG IN TO THE SYSTEM THROUGH "
|
||||
"SSH AND HAVE ADMINISTRATIVE PRIVILEGES (SUDO)."
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "CREATING LDAP USER FAILED."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to {group} group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "FAILED TO ADD NEW USER TO {group} GROUP."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
@ -6922,45 +7049,49 @@ msgstr ""
|
||||
"SYSTEM WITHOUT USING A PASSWORD. YOU MAY ENTER MULTIPLE KEYS, ONE ON EACH "
|
||||
"LINE. BLANK LINES AND LINES STARTING WITH # WILL BE IGNORED."
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr "RENAMING LDAP USER FAILED."
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr "FAILED TO REMOVE USER FROM GROUP."
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr "FAILED TO ADD USER TO GROUP."
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
#, fuzzy
|
||||
#| msgid "Failed to add user to group."
|
||||
msgid "Failed to change user status."
|
||||
msgstr "FAILED TO ADD USER TO GROUP."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr "CHANGING LDAP USER PASSWORD FAILED."
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "FAILED TO ADD NEW USER TO ADMIN GROUP."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
msgstr ""
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to obtain certificate for domain {domain}: {error}"
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "FAILED TO OBTAIN CERTIFICATE FOR DOMAIN {domain}: {error}"
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "USER ACCOUNT CREATED, YOU ARE NOW LOGGED IN"
|
||||
|
||||
@ -6973,15 +7104,16 @@ msgstr "CHANGE PASSWORD FOR <em>%(username)s</em>"
|
||||
msgid "Save Password"
|
||||
msgstr "SAVE PASSWORD"
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr "CREATE USER"
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr "DELETE USER"
|
||||
|
||||
@ -6999,7 +7131,7 @@ msgstr "DELETE %(username)s"
|
||||
msgid "Administrator Account"
|
||||
msgstr "ADMINISTRATOR ACCOUNT"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -7009,14 +7141,34 @@ msgstr ""
|
||||
"CAN BE CHANGED LATER. THIS USER WILL BE GRANTED ADMINISTRATIVE PRIVILEGES. "
|
||||
"OTHER USERS CAN BE ADDED LATER."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
#, fuzzy
|
||||
#| msgid "PageKite Account"
|
||||
msgid "Create Account"
|
||||
msgstr "PAGEKITE ACCOUNT"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "ADMINISTRATOR ACCOUNT"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr "USERS"
|
||||
|
||||
@ -7030,7 +7182,12 @@ msgstr "DELETE USER %(username)s"
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr "EDIT USER %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "EDIT USER <em>%(username)s</em>"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
@ -7039,39 +7196,39 @@ msgstr ""
|
||||
"USE THE <a href='%(change_password_url)s'>CHANGE PASSWORD FORM </a> TO "
|
||||
"CHANGE THE PASSWORD."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr "SAVE CHANGES"
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr "USER %(username)s CREATED."
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr "USER %(username)s UPDATED."
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr "EDIT USER"
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr "USER {user} DELETED."
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr "DELETING LDAP USER FAILED."
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr "CHANGE PASSWORD"
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr "PASSWORD CHANGED SUCCESSFULLY."
|
||||
|
||||
@ -7556,34 +7713,34 @@ msgstr "APPS"
|
||||
msgid "System"
|
||||
msgstr "SYSTEM"
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "CHANGE PASSWORD"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
#, fuzzy
|
||||
#| msgid "Restart Now"
|
||||
msgid "Restart"
|
||||
msgstr "RESTART NOW"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
#, fuzzy
|
||||
#| msgid "Shut Down Now"
|
||||
msgid "Shut down"
|
||||
msgstr "SHUT DOWN NOW"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "LOG OUT"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
#, fuzzy
|
||||
#| msgid "Language"
|
||||
msgid "Select language"
|
||||
msgstr "LANGUAGE"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "LOG IN"
|
||||
|
||||
@ -8203,11 +8360,6 @@ msgstr ""
|
||||
#~ "Failed to switch certificate renewal management for {domain}: {error}"
|
||||
#~ msgstr "FAILED TO OBTAIN CERTIFICATE FOR DOMAIN {domain}: {error}"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Failed to obtain certificate for domain {domain}: {error}"
|
||||
#~ msgid "Failed to switch certificate use for app {module}: {error}"
|
||||
#~ msgstr "FAILED TO OBTAIN CERTIFICATE FOR DOMAIN {domain}: {error}"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Failed to revoke certificate for domain {domain}: {error}"
|
||||
#~ msgid ""
|
||||
@ -8846,9 +8998,6 @@ msgstr ""
|
||||
#~ msgid "Bittorrent (Transmission)"
|
||||
#~ msgstr "BITTORRENT (TRANSMISSION)"
|
||||
|
||||
#~ msgid "Edit User <em>%(username)s</em>"
|
||||
#~ msgstr "EDIT USER <em>%(username)s</em>"
|
||||
|
||||
#~ msgid "Scramblesuit transport registered"
|
||||
#~ msgstr "SCRAMBLESUIT TRANSPORT REGISTERED"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-08-12 16:32+0000\n"
|
||||
"Last-Translator: Xosé M <xosem@disroot.org>\n"
|
||||
"Language-Team: Galician <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -390,6 +390,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@ -656,7 +657,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -814,12 +815,116 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Enable application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Activar o aplicativo"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
msgid "Name of the new library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, python-format
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
msgid "Manage Libraries"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
msgid "Create Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
msgid "Library created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1016,11 +1121,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1338,7 +1445,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@ -1787,12 +1894,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -1809,16 +1910,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2286,7 +2377,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -2933,32 +3024,32 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -2976,7 +3067,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3372,7 +3463,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3639,6 +3730,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4092,29 +4184,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5477,24 +5569,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5683,11 +5775,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -5832,20 +5924,32 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
msgid "Enter a valid username."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
msgid "Invalid password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -5854,63 +5958,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -5923,15 +6030,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -5949,19 +6057,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -5975,46 +6101,51 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6427,28 +6558,28 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
@ -6675,6 +6806,3 @@ msgstr ""
|
||||
#: plinth/web_framework.py:113
|
||||
msgid "Gujarati"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Enable application"
|
||||
#~ msgstr "Activar o aplicativo"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2018-02-05 18:37+0000\n"
|
||||
"Last-Translator: drashti kaushik <drashtipandya37@gmail.com>\n"
|
||||
"Language-Team: Gujarati <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -413,6 +413,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "સમર્પિત કરો"
|
||||
|
||||
@ -689,7 +690,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -864,12 +865,122 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "રૂપરેખાંકન સુધારાયુ"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Enable application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "એપ્લીકેશનને પ્રસ્થાપિત કરો"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Documentation"
|
||||
msgid "Name of the new library"
|
||||
msgstr "દસ્તાવેજીકરણ"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, python-format
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Documentation"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "દસ્તાવેજીકરણ"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Documentation"
|
||||
msgid "Create Library"
|
||||
msgstr "દસ્તાવેજીકરણ"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
msgid "Library created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1084,11 +1195,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1456,7 +1569,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "HTTP મૂળભૂત પ્રમાણીકરણનો ઉપયોગ કરો"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "વપરાશકર્તા નામ"
|
||||
|
||||
@ -1972,12 +2085,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -1996,16 +2103,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr "દસ્તાવેજીકરણ"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "દસ્તાવેજીકરણ"
|
||||
@ -2477,7 +2574,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -3144,34 +3241,34 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "Please provide a password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "કૃપા કરીને પાસવર્ડ આપો"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3189,7 +3286,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3588,7 +3685,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3857,6 +3954,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4313,29 +4411,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5711,24 +5809,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5923,11 +6021,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6076,22 +6174,36 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "અમાન્ય સર્વર નામ"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "પાસવર્ડ બતાવો"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -6100,63 +6212,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -6169,15 +6284,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -6195,19 +6311,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -6221,46 +6355,51 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6695,30 +6834,30 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
#, fuzzy
|
||||
#| msgid "Language"
|
||||
msgid "Select language"
|
||||
msgstr "ભાષા"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
@ -6962,9 +7101,6 @@ msgstr ""
|
||||
#~ msgid "Upload Password"
|
||||
#~ msgstr "પાસવર્ડ"
|
||||
|
||||
#~ msgid "Enable application"
|
||||
#~ msgstr "એપ્લીકેશનને પ્રસ્થાપિત કરો"
|
||||
|
||||
#~ msgid "Application enabled"
|
||||
#~ msgstr "એપ્લિકેશન સક્ષમ કરો"
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-04-03 20:11+0000\n"
|
||||
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
|
||||
"Language-Team: Hindi <https://hosted.weblate.org/projects/freedombox/plinth/"
|
||||
@ -436,6 +436,7 @@ msgstr "पुरालेख हटाईये %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "जमा करें"
|
||||
|
||||
@ -734,7 +735,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr "अनुमतियाँ"
|
||||
|
||||
@ -917,12 +918,132 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "कॉन्फ़िगरेशन अपडेट करें"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Administer Syncthing application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "सिंकतिन्ग एप्लिकेशन का प्रशासन करें"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Name of the share"
|
||||
msgid "Name of the new library"
|
||||
msgstr "शेयर का नाम"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "इस नाम का एक शयर पहले से मौजूद है."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Wiki or Blog <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "विकी और ब्लॉग हटाईये <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "%(name)s हटाईये"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Create User"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "यूसर बनाये"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create User"
|
||||
msgid "Create Library"
|
||||
msgstr "यूसर बनाये"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "Tor relay port available"
|
||||
msgid "No libraries available."
|
||||
msgstr "टोर रीले पोर्ट उपलब्ध है"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "साइट हटाएं %(site)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Archive created."
|
||||
msgid "Library created."
|
||||
msgstr "पुरालेख बनाया गया."
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred during configuration."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "कॉंफ़िगरेशन के दौरान कूछ त्रुटि हुई."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} हटा गया है."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "{name} नहीं हटा गया है: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1158,13 +1279,15 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
#, fuzzy
|
||||
#| msgid "Subdomain"
|
||||
msgid "TLS domain"
|
||||
msgstr "सबडोमेन"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1535,7 +1658,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "एचटिटिपि बेसिकॅ प्रमाणीकरण उपयोग करें"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "युसरनाम"
|
||||
|
||||
@ -2068,12 +2191,6 @@ msgstr "विकी और ब्लॉग हटाईये <em>%(name)s</em
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "इस स्नैपशॉट को स्थाई रूप से हटाएं?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "%(name)s हटाईये"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -2094,16 +2211,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr "यूसर बनाये"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} हटा गया है."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "{name} नहीं हटा गया है: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "प्रलेखन"
|
||||
@ -2641,7 +2748,7 @@ msgid "Chat Client"
|
||||
msgstr "चैट क्लाइंट"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr "जावास्क्रिप्ट लाइसेंस जानकारी"
|
||||
|
||||
@ -3379,13 +3486,13 @@ msgstr "चाबी किसर्वर पर प्रकाशित क
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "चाबी प्रकाशित करते समय एरर हो गया."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr "ममबल एक खुला सोरस, कम विलंबता, एन्क्रिप्टेड अच्छा गुणवत्ता आवाज चैट सॉफ्टवेयर है."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3395,21 +3502,21 @@ msgstr ""
|
||||
"mumble.info\">Clients</a> अापके डेस्कटॉप और एंड्रॉयड डिवाइस से ममबल से कनेक्ट होने के "
|
||||
"लिए उपलब्ध हैं."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr "ममबल"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr "वॉयस चैट"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "Save Password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "पासवर्ड सहेजें"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3427,7 +3534,7 @@ msgstr "ममबलफ्लाई"
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Password changed successfully."
|
||||
msgid "SuperUser password successfully updated."
|
||||
@ -3853,7 +3960,7 @@ msgstr "कनेक्शन संपादित करें"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "संपादन"
|
||||
|
||||
@ -4128,6 +4235,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4646,29 +4754,29 @@ msgstr ""
|
||||
"पोर्ट संयोजन का समर्थन नहीं कर सकते है. उदाहरण के लिए, ४४३ के अलावा पोर्ट पर HTTPS "
|
||||
"समस्याओं का कारण बनता है."
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "वेब सर्वर (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr "साइट <a href=\"http://{0}\">http://{0}</a> पर उपलब्ध होगा"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "वेब सर्वर (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr "साइट<a href=\"https://{0}\">https://{0}</a>पर उपलब्ध होगा"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "सुरक्षित शैल (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -6266,24 +6374,24 @@ msgstr "टोर सोक्स प्रॉक्सी"
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr "टो ब्रिज रीले"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr "टोर रीले पोर्ट उपलब्ध है"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr "Obfs3 ट्रांसपोर्ट पंजीकृत"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr "Obfs4 ट्रांसपोर्ट पंजीकृत"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr "यूआरएल एक्सेस करें {url} टीसीपी पर {kind} टोर के माध्यम से"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr "टोर उपयोग की पुष्टि करें {url} पर टीसीपी पर {kind}"
|
||||
@ -6517,11 +6625,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr "अपडेट"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox Foundation"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6680,22 +6788,38 @@ msgstr "सब सर्विसस और सिस्टम सेटिं
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "एलडीएपी प्रविष्टि चेक करें \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr "यूसरनाम लिया है या आरक्षित है."
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "सर्वर नाम अमान्य है"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Password"
|
||||
msgid "Authorization Password"
|
||||
msgstr "व्यवस्थापक पासवर्ड"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "शो पासवर्ड"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Select which services should be available to the new user. The user will "
|
||||
@ -6715,20 +6839,23 @@ msgstr ""
|
||||
"<br /><br /> एडमिन ग्रुप के यूसरस सब सर्विसस पर लॉग इन कर सकेगें. SSH के माध्यम से भी "
|
||||
"सिस्टम पर लॉग इन कर सकते है अाैर उनको प्रशासनिक विशेषाधिकार (sudo) है."
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "एलडीएपी यूसर बनाना विफल रहा."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to {group} group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "{group} समूह में नया यूसर जोड़ने में विफल."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
@ -6738,45 +6865,49 @@ msgstr ""
|
||||
"बिना सिस्टम में प्रवेश करने की अनुमति देगा. आप एकाधिक कीज़ दर्ज कर सकते हैं, हर लाइन रक "
|
||||
"एक. खाली लाइनस या # से प्रारंभ होने वाले लाइनस अनदेखा कर दिया जाएगा."
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr "एलडीएपी यूसर का नाम बदलना विफल रहा."
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr "समूह से यूसर को हटाने में विफल."
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr "समूह से यूसर को जोड़ने में विफल."
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr "एसएसएच कीज़ सेट करने में असमर्थ."
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
#, fuzzy
|
||||
#| msgid "Failed to add user to group."
|
||||
msgid "Failed to change user status."
|
||||
msgstr "समूह से यूसर को जोड़ने में विफल."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr "सिस्टम में केवल व्यवस्थापक को नहीं हटा सकता."
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr "एलडीएपी यूसर का पासवर्ड बदलना विफल रहा."
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "व्यवस्थापक समूह में नया यूसर जोड़ने में विफल."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to restrict console access."
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "कंसोल एक्सेस प्रतिबंधित करने में विफल."
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "युसर अकाउंट बनाया, अब आप लॉगड इन हैं"
|
||||
|
||||
@ -6789,15 +6920,16 @@ msgstr "<em>%(username)s</em> के लिया पासवर्ड बद
|
||||
msgid "Save Password"
|
||||
msgstr "पासवर्ड सहेजें"
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr "यूसर बनाये"
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr "यूसर हटाइये"
|
||||
|
||||
@ -6815,7 +6947,7 @@ msgstr "हटाइये %(username)s"
|
||||
msgid "Administrator Account"
|
||||
msgstr "व्यवस्थापक अकाउंट"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -6825,12 +6957,34 @@ msgstr ""
|
||||
"है. इस यूसर को व्यवस्थापकीय विशेषाधिकार प्रदान किए जाएंगे. दूसरे यूसरस बाद में जोड़ा जा "
|
||||
"सकता है."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr "अकाउंट बनाएँ"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "व्यवस्थापक अकाउंट"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
#, fuzzy
|
||||
#| msgid "Cannot delete the only administrator in the system."
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr "सिस्टम में केवल व्यवस्थापक को नहीं हटा सकता."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr "यूसरस"
|
||||
|
||||
@ -6844,7 +6998,13 @@ msgstr "यूसर हटाइये %(username)s"
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr "यूसर संपादित करें %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Edit user %(username)s"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "यूसर संपादित करें %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
@ -6853,39 +7013,39 @@ msgstr ""
|
||||
"पासवर्ड बदलने के लिये <a href='%(change_password_url)s'> यइ पासवर्ड बदलना फोम्र </"
|
||||
"a> का उपयोग करें."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr "बदलाव संचयित कीजिये"
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr "युसर %(username)s बनाया."
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr "युसर %(username)s अपडेट किया."
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr "यूसर संपादित करें"
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr "यूसर {user} हटाया."
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr "एलडीएपी यूसरको हटाने में असफल रहा."
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr "पासवर्ड बदलिये"
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr "पासवर्ड सफलतापूर्वक बदल गया."
|
||||
|
||||
@ -7375,28 +7535,28 @@ msgstr "ऐप्स"
|
||||
msgid "System"
|
||||
msgstr "सिस्टम"
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "पासवर्ड बदलें"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr "रीस्टार्ट"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr "शट डाउन"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "लॉग आउट"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr "भाषा चुनें"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "लॉग इन"
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-07-20 02:41+0000\n"
|
||||
"Last-Translator: Doma Gergő <domag02@gmail.com>\n"
|
||||
"Language-Team: Hungarian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -414,6 +414,7 @@ msgstr "%(name)s archívum törlése"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Küldés"
|
||||
|
||||
@ -707,7 +708,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr "Engedélyek"
|
||||
|
||||
@ -885,12 +886,132 @@ msgstr "IP címek és tartományok frissítése"
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "A beállítások frissültek"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Administer Syncthing application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "A Syncthing alkalmazás beállítása"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Name of the repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Tároló neve"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "Egy megosztás ezzel a névvel már létezik."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Git Repository <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "<em>%(name)s</em> Git tároló törlése"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "%(name)s törlése"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Manage Repositories"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Tárolók kezelése"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Tároló létrehozása"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "No repositories available."
|
||||
msgid "No libraries available."
|
||||
msgstr "Nincs elérhető tároló."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "%(site)s webhely törlése"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository created."
|
||||
msgid "Library created."
|
||||
msgstr "Tároló létrehozva."
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred while creating the repository."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "Hiba történt a tároló létrehozása közben."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} törölve."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "{name} nem törölhető: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1128,11 +1249,13 @@ msgstr "Coturn"
|
||||
msgid "VoIP Helper"
|
||||
msgstr "VoIP Segéd"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr "TLS tartomány"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1510,7 +1633,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "HTTP alap hitelesítés használata"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "Felhasználónév"
|
||||
|
||||
@ -2033,12 +2156,6 @@ msgstr "<em>%(name)s</em> Git tároló törlése"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Véglegesen törlöd ezt a tárolót?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "%(name)s törlése"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr "Tároló létrehozva."
|
||||
@ -2055,16 +2172,6 @@ msgstr "Tároló szerkesztve."
|
||||
msgid "Edit repository"
|
||||
msgstr "Tároló szerkesztése"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} törölve."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "{name} nem törölhető: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "Dokumentáció"
|
||||
@ -2638,7 +2745,7 @@ msgid "Chat Client"
|
||||
msgstr "Chat kliens"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr "JavaScript licencinformáció"
|
||||
|
||||
@ -3412,7 +3519,7 @@ msgstr "Kulcs közzétéve a kulcskiszolgálónak."
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "Hiba történt a kulcs közzététele során."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
@ -3420,7 +3527,7 @@ msgstr ""
|
||||
"A Mumble egy nyílt forráskódú, alacsony késéssel működő, titkosított, magas "
|
||||
"hangminőségű audiokonferencia szoftver."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3430,19 +3537,19 @@ msgstr ""
|
||||
"kapcsolódhatsz. Mumble <a href=\"http://mumble.info\">kliensek</a> "
|
||||
"elérhetőek az asztali és Android eszközökhöz."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr "Mumble"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr "Audiókonferencia"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "SuperUser jelszavának beállítása"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3463,7 +3570,7 @@ msgstr "Mumblefly"
|
||||
msgid "Mumla"
|
||||
msgstr "Mumla"
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr "A SuperUser jelszava sikeresen frissítve."
|
||||
|
||||
@ -3940,7 +4047,7 @@ msgstr "Kapcsolat szerkesztése"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "Szerkesztés"
|
||||
|
||||
@ -4216,6 +4323,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4745,29 +4853,29 @@ msgstr ""
|
||||
"támogatja az összes itt definiálható protokoll/port kombinációkat. Például "
|
||||
"ismert, hogy a HTTPS 443-tól eltérő porton problémákat okozhat."
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "Webkiszolgáló (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr "Az oldal itt lesz elérhető: <a href=\"http://{0}\">http://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "Webkiszolgáló (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr "Az oldal itt lesz elérhető: <a href=\"https://{0}\">https://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "Biztonságos parancsértelmező (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -6427,24 +6535,24 @@ msgstr "Tor Socks proxy"
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr "Tor híd relay"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr "Tor relay port elérhető"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr "Obfs3 átvitel regisztrálva"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr "Obfs4 átvitel regisztrálva"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr "Hozzáférés a {url} URL-hez tcp{kind}-on Tor használatával"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr "Hagyd jóvá a Tor használatát {url} célcímhez tcp{kind} protokollon"
|
||||
@ -6689,11 +6797,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr "Frissítés"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox Foundation"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6851,22 +6959,38 @@ msgstr "Hozzáférés az összes szolgáltatáshoz és rendszerbeállításhoz"
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "LDAP bejegyzés ellenőrzése: \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr "A felhasználói név (már) foglalt."
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Érvénytelen kiszolgálónév"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Password"
|
||||
msgid "Authorization Password"
|
||||
msgstr "Rendszergazdai jelszó"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Jelszó mutatása"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Select which services should be available to the new user. The user will "
|
||||
@ -6889,20 +7013,23 @@ msgstr ""
|
||||
"képesek bejelentkezni a rendszerbe, ahol adminisztrátori jogosultságokkal "
|
||||
"rendelkeznek (sudo)."
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "LDAP felhasználó létrehozása sikertelen."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to {group} group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "Nem sikerült hozzáadni az új felhasználót ehhez a csoporthoz: {group}."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr "Engedélyezett SSH kulcsok"
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
@ -6912,45 +7039,49 @@ msgstr ""
|
||||
"jelszó nélkül jelentkezzen be. Több kulcs is megadható; soronként egy. Az "
|
||||
"üres, illetve # jellel kezdődő sorok nem számítanak."
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr "LDAP felhasználó átnevezése sikertelen."
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr "Nem sikerült eltávolítani a felhasználót a csoportból."
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr "Nem sikerült hozzáadni a felhasználót a csoporthoz."
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr "SSH kulcsok beállítása sikertelen."
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
#, fuzzy
|
||||
#| msgid "Failed to add user to group."
|
||||
msgid "Failed to change user status."
|
||||
msgstr "Nem sikerült hozzáadni a felhasználót a csoporthoz."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr "Nem lehet törölni a rendszer egyetlen rendszergazdáját."
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr "LDAP felhasználó jelszavának megváltoztatása sikertelen."
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "Nem sikerült hozzáadni az új felhasználót a rendszergazda csoporthoz."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to restrict console access."
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "Nem sikerült a konzol hozzáférés korlátozása."
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "Felhasználói fiók létrehozva, bejelentkezés sikeres"
|
||||
|
||||
@ -6963,15 +7094,16 @@ msgstr "<em>%(username)s</em> jelszavának megváltoztatása"
|
||||
msgid "Save Password"
|
||||
msgstr "Jelszó mentése"
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr "Felhasználó létrehozása"
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr "Felhasználó törlése"
|
||||
|
||||
@ -6989,7 +7121,7 @@ msgstr "%(username)s törlése"
|
||||
msgid "Administrator Account"
|
||||
msgstr "Rendszergazda fiók"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -7000,12 +7132,34 @@ msgstr ""
|
||||
"rendszergazdai jogosultságokkal fog rendelkezni. Más felhasználók "
|
||||
"hozzáadhatóak később."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr "Fiók létrehozása"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "Rendszergazda fiók"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
#, fuzzy
|
||||
#| msgid "Cannot delete the only administrator in the system."
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr "Nem lehet törölni a rendszer egyetlen rendszergazdáját."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr "Felhasználók"
|
||||
|
||||
@ -7019,7 +7173,13 @@ msgstr "%(username)s felhasználó törlése"
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr "%(username)s felhasználó szerkesztése"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Edit user %(username)s"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "%(username)s felhasználó szerkesztése"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
@ -7028,39 +7188,39 @@ msgstr ""
|
||||
"A jelszó a <a href='%(change_password_url)s'>jelszómódosítás űrlap</a> "
|
||||
"kitöltésével változtatható meg."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr "Változtatások mentése"
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr "%(username)s nevű felhasználó létrehozva."
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr "%(username)s nevű felhasználó frissítve."
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr "Felhasználó szerkesztése"
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr "{user} nevű felhasználó törölve."
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr "LDAP felhasználó törlése sikertelen."
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr "Jelszómódosítás"
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr "A jelszó módosítása sikeres."
|
||||
|
||||
@ -7543,28 +7703,28 @@ msgstr "Alkalmazások"
|
||||
msgid "System"
|
||||
msgstr "Rendszer"
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "Jelszómódosítás"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr "Újraindítás"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr "Leállítás"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "Kijelentkezés"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr "Válassz nyelvet"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "Bejelentkezés"
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Indonesian (FreedomBox)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2018-11-02 00:44+0000\n"
|
||||
"Last-Translator: ButterflyOfFire <ButterflyOfFire@protonmail.com>\n"
|
||||
"Language-Team: Indonesian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -417,6 +417,7 @@ msgstr "Hapus %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@ -709,7 +710,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -888,12 +889,126 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Enable application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Aktifkan aplikasi"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Actions"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Aksi"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Wiki or Blog <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Hapus Wiki atau Blog <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Hapus %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Actions"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Aksi"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Actions"
|
||||
msgid "Create Library"
|
||||
msgstr "Aksi"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "No wikis or blogs available."
|
||||
msgid "No libraries available."
|
||||
msgstr "Tidak ada wiki atau blogs yang tersedia."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "Hapus situs %(site)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
msgid "Library created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} dihapus."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Tidak dapat menghapus {name}: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1098,13 +1213,15 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
#, fuzzy
|
||||
#| msgid "Subdomain"
|
||||
msgid "TLS domain"
|
||||
msgstr "Subdomain"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1428,7 +1545,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "Gunakan autentikasi dasar HTTP"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "Nama Pengguna"
|
||||
|
||||
@ -1900,12 +2017,6 @@ msgstr "Hapus Wiki atau Blog <em>%(name)s</em>"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Hapus %(name)s"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -1924,16 +2035,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr "Aksi"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} dihapus."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Tidak dapat menghapus {name}: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2425,7 +2526,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -3108,36 +3209,36 @@ msgstr "Publikasikan kunci ke keyserver."
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
#, fuzzy
|
||||
#| msgid "Voice Chat (Mumble)"
|
||||
msgid "Voice Chat"
|
||||
msgstr "Pesan Suara (Mumble)"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "Tampilkan kata sandi"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3155,7 +3256,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3558,7 +3659,7 @@ msgstr "Sunting Koneksi"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "Sunting"
|
||||
|
||||
@ -3829,6 +3930,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4296,29 +4398,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "Server Web (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "Web Server (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "Secure Shell (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5773,24 +5875,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5985,11 +6087,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6139,22 +6241,38 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Actions"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Aksi"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "Authorization Password"
|
||||
msgstr "Akun Administrator"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Tampilkan kata sandi"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -6163,65 +6281,71 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "Gagal membuat pengguna LDAP."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgstr ""
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "Gagal menambahkan pengguna baru ke kelompok admin."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
#, fuzzy
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to change user status."
|
||||
msgstr "Gagal menambahkan pengguna baru ke kelompok admin."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "Gagal menambahkan pengguna baru ke kelompok admin."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -6234,15 +6358,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -6260,21 +6385,41 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr "Akun Administrator"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "Create Account"
|
||||
msgstr "Akun Administrator"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "Akun Administrator"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -6288,46 +6433,52 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Wiki or Blog <em>%(name)s</em>"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "Hapus Wiki atau Blog <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6772,34 +6923,34 @@ msgstr "Apps"
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
#, fuzzy
|
||||
#| msgid "Restart Now"
|
||||
msgid "Restart"
|
||||
msgstr "Jalankan ulang Sekarang"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
#, fuzzy
|
||||
#| msgid "Shut Down Now"
|
||||
msgid "Shut down"
|
||||
msgstr "Matikan Sekarang"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
#, fuzzy
|
||||
#| msgid "Language"
|
||||
msgid "Select language"
|
||||
msgstr "Bahasa"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
@ -7061,9 +7212,6 @@ msgstr ""
|
||||
#~ msgid "Deleted all snapshots"
|
||||
#~ msgstr "Hapus %(name)s"
|
||||
|
||||
#~ msgid "Enable application"
|
||||
#~ msgstr "Aktifkan aplikasi"
|
||||
|
||||
#~ msgid "Register"
|
||||
#~ msgstr "Pendaftaran"
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-08-30 18:23+0000\n"
|
||||
"Last-Translator: Diego Roversi <diegor@tiscali.it>\n"
|
||||
"Language-Team: Italian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -418,6 +418,7 @@ msgstr "Cancella archivio %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Invia"
|
||||
|
||||
@ -720,7 +721,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -909,12 +910,132 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Configurazione caricata"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Enable application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Abilita applicazione"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Name of the repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Nome del deposito"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "A repository with this name already exists."
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "Esiste già un deposito con questo nome."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Git Repository <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Cancellare Git Repository <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Cancella %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Manage Repositories"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Gestire i repository"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Creare Repository"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "No repositories available."
|
||||
msgid "No libraries available."
|
||||
msgstr "Non ci sono depositi disponibili."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "Cancella sito %(site)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository created."
|
||||
msgid "Library created."
|
||||
msgstr "Repository creato."
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred while creating the repository."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "Si è verificato un errore durante la creazione del repository."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} cancellato."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Non è stato possibile cancellare {name}: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1148,13 +1269,15 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
#, fuzzy
|
||||
#| msgid "Subdomain"
|
||||
msgid "TLS domain"
|
||||
msgstr "Sottodominio"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1528,7 +1651,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "Usa l'autenticazione HTTP base"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "Nome utente"
|
||||
|
||||
@ -2061,12 +2184,6 @@ msgstr "Cancellare Git Repository <em>%(name)s</em>"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Cancellare questo repository in modo permanente?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Cancella %(name)s"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr "Repository creato."
|
||||
@ -2083,16 +2200,6 @@ msgstr "Repository modificato."
|
||||
msgid "Edit repository"
|
||||
msgstr "Modifica repository"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} cancellato."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Non è stato possibile cancellare {name}: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "Documentazione"
|
||||
@ -2689,7 +2796,7 @@ msgid "Chat Client"
|
||||
msgstr "Client"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr "Informazioni sulla licenza JavaScript"
|
||||
|
||||
@ -3451,7 +3558,7 @@ msgstr "Chiave pubblicata nel keyserver."
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "Errore sorto durante la pubblicazione della chiave."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
@ -3459,7 +3566,7 @@ msgstr ""
|
||||
"Mumble è un software di chat vocale ad alta qualità, a bassa latenza, "
|
||||
"cifrato e open source."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3469,19 +3576,19 @@ msgstr ""
|
||||
"64738 <a href=\"http://mumble.info\"> Sono disponibili dei client</a> da "
|
||||
"connettere a Mumble dai tuoi dispositivi desktop e android."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr "Mumble"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr "Voice Chat"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3499,7 +3606,7 @@ msgstr "Mumblefly"
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3929,7 +4036,7 @@ msgstr "Modifica Connessione"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "Modifica"
|
||||
|
||||
@ -4206,6 +4313,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4733,29 +4841,29 @@ msgstr ""
|
||||
"Per esempio, è noto che HTTPS, in porte diverse dalla 443, può causare "
|
||||
"problemi."
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "Server Web (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr "Il sito sarà disponibile su <a href=\"http://{0}\">http{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "Server Web (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr "Il sito sarà disponibile au <a href=\"https://{0}\">HTTPS://{0}{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "Secure Shell (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -6217,24 +6325,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -6432,11 +6540,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6582,22 +6690,38 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Nome Server Invalido"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Password"
|
||||
msgid "Authorization Password"
|
||||
msgstr "Password Amministratore"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Mostra password"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -6606,63 +6730,69 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to switch certificate use for app {module}: {error}"
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "Cambio uso del certificato fallito per {module}:{error}"
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
msgstr ""
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to obtain certificate for domain {domain}: {error}"
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "Rilascio certificato fallito per il dominio {domain}:{error}"
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
msgstr ""
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to switch certificate use for app {module}: {error}"
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "Cambio uso del certificato fallito per {module}:{error}"
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -6675,15 +6805,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -6701,19 +6832,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -6727,46 +6876,52 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Git Repository <em>%(name)s</em>"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "Cancellare Git Repository <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -7230,28 +7385,28 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
@ -7623,9 +7778,6 @@ msgstr ""
|
||||
#~ msgid "Enable OpenVPN server"
|
||||
#~ msgstr "Abilita server OpenVPN"
|
||||
|
||||
#~ msgid "Enable application"
|
||||
#~ msgstr "Abilita applicazione"
|
||||
|
||||
#~ msgid "Application enabled"
|
||||
#~ msgstr "Applicazione abilitata"
|
||||
|
||||
@ -7966,9 +8118,6 @@ msgstr ""
|
||||
#~ msgid "Switched use of certificate for app {module}"
|
||||
#~ msgstr "Cambiato uso del certificato per l'app {module}"
|
||||
|
||||
#~ msgid "Failed to switch certificate use for app {module}: {error}"
|
||||
#~ msgstr "Cambio uso del certificato fallito per {module}:{error}"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Failed to disable certificate renewal management for {domain}: {error}"
|
||||
#~ msgstr ""
|
||||
|
||||
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -387,6 +387,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@ -653,7 +654,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -811,12 +812,114 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
msgid "Administer calibre application"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
msgid "Name of the new library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, python-format
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
msgid "Manage Libraries"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
msgid "Create Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
msgid "Library created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1013,11 +1116,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1335,7 +1440,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@ -1784,12 +1889,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -1806,16 +1905,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2281,7 +2370,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -2928,32 +3017,32 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -2971,7 +3060,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3363,7 +3452,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3630,6 +3719,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4083,29 +4173,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5466,24 +5556,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5672,11 +5762,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
msgid "FreedomBox Updated"
|
||||
msgstr ""
|
||||
|
||||
@ -5817,20 +5907,32 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
msgid "Enter a valid username."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
msgid "Invalid password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -5839,63 +5941,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -5908,15 +6013,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -5934,19 +6040,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -5960,46 +6084,51 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6410,28 +6539,28 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-07-16 16:41+0000\n"
|
||||
"Last-Translator: Yogesh <yogesh@karnatakaeducation.org.in>\n"
|
||||
"Language-Team: Kannada <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -388,6 +388,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@ -654,7 +655,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -812,12 +813,114 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
msgid "Administer calibre application"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
msgid "Name of the new library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, python-format
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
msgid "Manage Libraries"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
msgid "Create Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
msgid "Library created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1014,11 +1117,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1336,7 +1441,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@ -1785,12 +1890,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -1807,16 +1906,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2282,7 +2371,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -2929,32 +3018,32 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -2972,7 +3061,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3364,7 +3453,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3631,6 +3720,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4084,29 +4174,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5467,24 +5557,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5673,11 +5763,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
msgid "FreedomBox Updated"
|
||||
msgstr ""
|
||||
|
||||
@ -5818,20 +5908,32 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
msgid "Enter a valid username."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
msgid "Invalid password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -5840,63 +5942,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -5909,15 +6014,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -5935,19 +6041,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -5961,46 +6085,51 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6411,28 +6540,28 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -388,6 +388,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@ -654,7 +655,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -812,12 +813,114 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
msgid "Administer calibre application"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
msgid "Name of the new library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, python-format
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
msgid "Manage Libraries"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
msgid "Create Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
msgid "Library created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1014,11 +1117,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1336,7 +1441,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@ -1785,12 +1890,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -1807,16 +1906,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2282,7 +2371,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -2929,32 +3018,32 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -2972,7 +3061,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3364,7 +3453,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3631,6 +3720,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4084,29 +4174,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5467,24 +5557,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5673,11 +5763,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
msgid "FreedomBox Updated"
|
||||
msgstr ""
|
||||
|
||||
@ -5818,20 +5908,32 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
msgid "Enter a valid username."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
msgid "Invalid password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -5840,63 +5942,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -5909,15 +6014,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -5935,19 +6041,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -5961,46 +6085,51 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6411,28 +6540,28 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -15,8 +15,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"PO-Revision-Date: 2020-09-22 09:39+0000\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-10-03 00:41+0000\n"
|
||||
"Last-Translator: Petter Reinholdtsen <pere-weblate@hungry.com>\n"
|
||||
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
|
||||
"freedombox/freedombox/nb_NO/>\n"
|
||||
@ -158,10 +158,8 @@ msgid "{app} (No data to backup)"
|
||||
msgstr "{app} (Ingen data å sikkerhetskopiere)"
|
||||
|
||||
#: plinth/modules/backups/forms.py:50
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Repository"
|
||||
msgstr "Opprett depot"
|
||||
msgstr "Depot"
|
||||
|
||||
#: plinth/modules/backups/forms.py:52
|
||||
#: plinth/modules/backups/templates/backups_delete.html:18
|
||||
@ -172,10 +170,8 @@ msgid "Name"
|
||||
msgstr "Navn"
|
||||
|
||||
#: plinth/modules/backups/forms.py:53
|
||||
#, fuzzy
|
||||
#| msgid "Name for new backup archive."
|
||||
msgid "(Optional) Set a name for this backup archive"
|
||||
msgstr "Navn på nytt sikkerhetskopiarkiv."
|
||||
msgstr "(Valgfritt) Sett navn på dette sikkerhetskopiarkivet"
|
||||
|
||||
#: plinth/modules/backups/forms.py:56
|
||||
msgid "Included apps"
|
||||
@ -233,10 +229,8 @@ msgstr ""
|
||||
"sikkerhetskopien."
|
||||
|
||||
#: plinth/modules/backups/forms.py:122
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Key in Repository"
|
||||
msgstr "Opprett depot"
|
||||
msgstr "Nøkkel i depot"
|
||||
|
||||
#: plinth/modules/backups/forms.py:122 plinth/modules/searx/forms.py:15
|
||||
msgid "None"
|
||||
@ -423,6 +417,7 @@ msgstr "Slett arkiv %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Send inn"
|
||||
|
||||
@ -479,15 +474,7 @@ msgid "Restore data from"
|
||||
msgstr "Gjenopprett data fra"
|
||||
|
||||
#: plinth/modules/backups/templates/backups_upload.html:17
|
||||
#, fuzzy, python-format
|
||||
#| msgid ""
|
||||
#| "\n"
|
||||
#| " Upload a backup file downloaded from another %(box_name)s to "
|
||||
#| "restore is\n"
|
||||
#| " contents. You can choose the apps you wish to restore after "
|
||||
#| "uploading a\n"
|
||||
#| " backup file.\n"
|
||||
#| " "
|
||||
#, python-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" Upload a backup file downloaded from another %(box_name)s to restore "
|
||||
@ -499,7 +486,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Last opp en sikkerhetskopi hentet fra en annen %(box_name)s for å "
|
||||
"tilbakeføre innholdet.\n"
|
||||
"tilbakeføre dens innhold.\n"
|
||||
" Du kan velge programmene du ønsker å importere etter å ha lastet opp "
|
||||
"en sikkerhetskopifil.\n"
|
||||
" "
|
||||
@ -587,9 +574,8 @@ msgid "Restore from uploaded file"
|
||||
msgstr "Gjenopprett fra opplastet fil"
|
||||
|
||||
#: plinth/modules/backups/views.py:238
|
||||
#, fuzzy
|
||||
msgid "No additional disks available to add a repository."
|
||||
msgstr "Ingen ytterligere disker å legge til i pakkebrønn."
|
||||
msgstr "Ingen ytterligere disker tilgjengelig for å opprette et depot."
|
||||
|
||||
#: plinth/modules/backups/views.py:246
|
||||
msgid "Create backup repository"
|
||||
@ -666,6 +652,10 @@ msgid ""
|
||||
"password, you can share it with the users who should have the associated "
|
||||
"permissions."
|
||||
msgstr ""
|
||||
"bepastery har ikke brukernavn for å logge in. Den bruker kun passord. Et "
|
||||
"sett med tillatelser kan velges for hvert passord. Når du har laget et "
|
||||
"passord så kan du dele det med brukerne som skal ha de tilhørende "
|
||||
"rettighetene."
|
||||
|
||||
#: plinth/modules/bepasty/__init__.py:33
|
||||
msgid ""
|
||||
@ -674,6 +664,10 @@ msgid ""
|
||||
"revoke access for a single person or group, by removing their password from "
|
||||
"the list."
|
||||
msgstr ""
|
||||
"Du kan også opprette flere passord med de samme rettighetene, og spre dem "
|
||||
"til ulike folk eller grupper. Dette vil la deg trekke tilbake tilgangen "
|
||||
"senere for en enkelt person eller gruppe, ved å fjerne passordet deres fra "
|
||||
"listen."
|
||||
|
||||
#: plinth/modules/bepasty/__init__.py:42 plinth/modules/bepasty/__init__.py:51
|
||||
msgid "Read a file, if a web link to the file is available"
|
||||
@ -727,7 +721,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr "Tilganger"
|
||||
|
||||
@ -911,12 +905,132 @@ msgstr "Oppdater IP-adresse og domener"
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Oppsett oppdatert"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Administer Syncthing application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Administrer Syncthing-programmet"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Name of the repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Navn på depot"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "En deling ved dette navnet finnes allerede."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Wiki or Blog <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Slette wiki eller blogg <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Slette %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Opprett depot"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Opprett depot"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "Tor relay port available"
|
||||
msgid "No libraries available."
|
||||
msgstr "Tor relay-port tilgjengelig"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "Slette nettstedet %(site)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository removed."
|
||||
msgid "Library created."
|
||||
msgstr "Depot fjernet."
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred during configuration."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "En feil oppsto under konfigureringen."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "Slettet {name}."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Kunne ikke slette {name}: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1144,11 +1258,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr "TLS-domene"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1529,7 +1645,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "Bruk HTTP-basisgodkjenning"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "Brukernavn"
|
||||
|
||||
@ -2070,12 +2186,6 @@ msgstr "Slette wiki eller blogg <em>%(name)s</em>"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Slett dette depotet for godt?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Slette %(name)s"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
#, fuzzy
|
||||
#| msgid "Repository removed."
|
||||
@ -2096,16 +2206,6 @@ msgstr "Depot opprettet."
|
||||
msgid "Edit repository"
|
||||
msgstr "Rediger depot"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "Slettet {name}."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Kunne ikke slette {name}: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "Dokumentasjon"
|
||||
@ -2686,7 +2786,7 @@ msgid "Chat Client"
|
||||
msgstr "Nettpratklient"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr "JavaScript lisensinformasjon"
|
||||
|
||||
@ -3438,7 +3538,7 @@ msgstr "Publisert nøkkel til nøkkeltjener."
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "Feil oppstått under utlegging av nøkkel."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
@ -3446,7 +3546,7 @@ msgstr ""
|
||||
"Mumble er en åpen kildekode, rask, kryptert, høy kvalitets programvare for "
|
||||
"nettprat."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3456,21 +3556,21 @@ msgstr ""
|
||||
"\"http://mumble.info\">Klienter</a> for å koble til Mumble når skrivebordet "
|
||||
"og/eller Android-enheter er tilgjengelige."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr "Mumble"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr "Talenettprat"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "SSH server password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "SSH-tjenermaskinpassord"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3488,7 +3588,7 @@ msgstr "Mumblefly"
|
||||
msgid "Mumla"
|
||||
msgstr "Mumla"
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Password changed successfully."
|
||||
msgid "SuperUser password successfully updated."
|
||||
@ -3934,7 +4034,7 @@ msgstr "Rediger tilkobling"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "Rediger"
|
||||
|
||||
@ -4210,6 +4310,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr "Hopp over dette steget"
|
||||
|
||||
@ -4730,31 +4831,31 @@ msgstr ""
|
||||
"alle protokoll-/portkombinasjoner som du kan definere her. For eksempel, "
|
||||
"HTTPS på andre ting enn 443 er kjent for å forårsake problemer."
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "Web-tjener (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
"Nettstedet vil være tilgjengelig på <a href=\"http://{0}\">http://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "Web-tjener (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
"Nettstedet vil bli tilgjengelig på <a href=\"https://{0}\">https://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "Secure Shell (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -6367,24 +6468,24 @@ msgstr "Tor Socks-mellomtjener"
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr "Tor bro-stafettvideresendingsoppsett"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr "Tor relay-port tilgjengelig"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr "Obfs3-transport registrert"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr "Obfs4-transport registrert"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr "Adgang til URL {url} på tcp{kind} via Tor"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr "Bekreft Tor-bruk på {url} via tcp{kind}"
|
||||
@ -6617,11 +6718,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr "Oppdater"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox Foundation"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6788,23 +6889,39 @@ msgstr "Tilgang til alle tjenester og systeminnstillinger"
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Sjekk LDAP-oppføring «{search_item}»"
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr "Brukernavnet er opptatt eller reservert."
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Ugyldig tjenernavn"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
"Påkrevd. 150 tegn eller mindre. Kun engelske bokstaver, tall og @/./-/_."
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Password"
|
||||
msgid "Authorization Password"
|
||||
msgstr "Administratorpassord"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Vis passord"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Select which services should be available to the new user. The user will "
|
||||
@ -6825,20 +6942,23 @@ msgstr ""
|
||||
"gruppen kan logge seg på alle tjenester. De kan også logge inn på systemet "
|
||||
"via SSH, og ha administrative rettigheter (sudo)."
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "Oppretting av LDAP-bruker feilet."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to {group} group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "Klarte ikke legge ny bruker til gruppe {group}."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr "Autoriserte SSH-nøkler"
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
@ -6848,45 +6968,49 @@ msgstr ""
|
||||
"på systemet uten å bruke passord. Du kan legge inn multiple (flere) nøkler, "
|
||||
"én på hver linje. Blanke linjer og linjer som starter med # vil bli ignorert."
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr "Klarte ikke å bytte navn på LDAP-bruker."
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr "Klarte ikke å slette bruker fra gruppe."
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr "Klarte ikke legge bruker til gruppe."
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr "Klarte ikke sette SSH-nøkler."
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
#, fuzzy
|
||||
#| msgid "Failed to add user to group."
|
||||
msgid "Failed to change user status."
|
||||
msgstr "Klarte ikke legge bruker til gruppe."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr "Kan ikke slette kun administratoren i systemet."
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr "Klarte ikke å bytte passord for LDAP-bruker."
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "Klarte ikke å legge til en ny bruker i admin-gruppen."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to restrict console access."
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "Klarte ikke begrense konsolltilgang."
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "Brukerkonto er opprettet, du er nå logget inn"
|
||||
|
||||
@ -6899,15 +7023,16 @@ msgstr "Endre passord for <em>%(username)s</em>"
|
||||
msgid "Save Password"
|
||||
msgstr "Lagre passord"
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr "Opprett bruker"
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr "Slett bruker"
|
||||
|
||||
@ -6925,7 +7050,7 @@ msgstr "Slette %(username)s"
|
||||
msgid "Administrator Account"
|
||||
msgstr "Administratorkonto"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -6935,12 +7060,34 @@ msgstr ""
|
||||
"nettgrensesnittet. Passordet kan endres senere. Denne brukeren vil bli "
|
||||
"innvilget administrative rettigheter. Andre brukere kan legges til senere."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr "Opprett konto"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "Administratorkonto"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
#, fuzzy
|
||||
#| msgid "Cannot delete the only administrator in the system."
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr "Kan ikke slette kun administratoren i systemet."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr "Brukere"
|
||||
|
||||
@ -6954,7 +7101,13 @@ msgstr "Slette bruker %(username)s"
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr "Endre bruker %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Edit user %(username)s"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "Endre bruker %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
@ -6963,39 +7116,39 @@ msgstr ""
|
||||
"Bruk <a href=\"%(change_password_url)s\">passordsendringsskjemaet</a> for å "
|
||||
"endre passordet."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr "Lagre endringer"
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr "Bruker %(username)s opprettet."
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr "Bruker %(username)s oppdatert."
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr "Rediger bruker"
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr "Bruker {user} slettet."
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr "Klarte ikke slette LDAP-bruker."
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr "Endre passord"
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Vellykket passordbytte."
|
||||
|
||||
@ -7491,28 +7644,28 @@ msgstr "Apps/Programmer"
|
||||
msgid "System"
|
||||
msgstr "System"
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "Endre passord"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr "Omstart"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr "Slå av"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "Logg ut"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr "Velg språk"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "Logg inn"
|
||||
|
||||
@ -7716,10 +7869,9 @@ msgid "From Router/WAN Ports"
|
||||
msgstr "Fra ruter/WAN-porter"
|
||||
|
||||
#: plinth/templates/port-forwarding-info.html:38
|
||||
#, fuzzy, python-format
|
||||
#| msgid "%(box_name)s Setup"
|
||||
#, python-format
|
||||
msgid "To %(box_name)s Ports"
|
||||
msgstr "Oppsett av %(box_name)s"
|
||||
msgstr "Til portene for %(box_name)s"
|
||||
|
||||
#: plinth/templates/setup.html:24
|
||||
msgid "Install this application?"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-09-15 20:54+0000\n"
|
||||
"Last-Translator: Reg Me <regmeplus@zoho.com>\n"
|
||||
"Language-Team: Dutch <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -415,6 +415,7 @@ msgstr "Archief %(name)s verwijderen"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Invoeren"
|
||||
|
||||
@ -696,7 +697,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr "Toegangsrechten"
|
||||
|
||||
@ -877,12 +878,132 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Configuratie bijgewerkt"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Administer Syncthing application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Beheer Syncthing toepassing"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Name of the repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Naam van de repository"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "Er bestaat reeds een gedeelde map met deze naam."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Wiki or Blog <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Verwijder Wiki of Blog <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "%(name)s verwijderen"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Manage Repositories"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Beheer repositories"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Maak Repository"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "No repositories available."
|
||||
msgid "No libraries available."
|
||||
msgstr "Geen repositories beschikbaar."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "Verwijder site %(site)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository created."
|
||||
msgid "Library created."
|
||||
msgstr "Repository aangemaakt."
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred during configuration."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "Er is een fout opgetreden tijdens de configuratie."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} verwijderd."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Verwijderen van {name} mislukt: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1096,11 +1217,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr "TLS domein"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1472,7 +1595,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "Gebruik HTTP-basisverificatie"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "Gebruikersnaam"
|
||||
|
||||
@ -1982,12 +2105,6 @@ msgstr "Verwijder Wiki of Blog <em>%(name)s</em>"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Deze repository permanent verwijderen?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "%(name)s verwijderen"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr "Repository aangemaakt."
|
||||
@ -2006,16 +2123,6 @@ msgstr "Repository gewijzigd."
|
||||
msgid "Edit repository"
|
||||
msgstr "Wijzig repository"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} verwijderd."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Verwijderen van {name} mislukt: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "Documentatie"
|
||||
@ -2549,7 +2656,7 @@ msgid "Chat Client"
|
||||
msgstr "Chat Cliënt"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr "JavaScript licentie-informatie"
|
||||
|
||||
@ -3297,7 +3404,7 @@ msgstr "Sleutel gepubliceerd op keyserver."
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "Er is een fout opgetreden tijdens het publiceren van de sleutel."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
@ -3305,7 +3412,7 @@ msgstr ""
|
||||
"Mumble is een Open Source, snelle, versleutelde, hoge kwaliteit "
|
||||
"groepsgespreksserver."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3316,21 +3423,21 @@ msgstr ""
|
||||
"programma's waarmee de Mumble dienst gebruikt kan worden. Er zijn "
|
||||
"programma's voor zowel desktop en Android machines."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr "Mumble"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr "Voice Chat"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "SSH server password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "SSH-server wachtwoord"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3348,7 +3455,7 @@ msgstr "Mumblefly"
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Password changed successfully."
|
||||
msgid "SuperUser password successfully updated."
|
||||
@ -3779,7 +3886,7 @@ msgstr "Wijzig verbinding"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "Wijzig"
|
||||
|
||||
@ -4053,6 +4160,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4574,31 +4682,31 @@ msgstr ""
|
||||
"bijvoorbeeld bekend dat HTTPS servers die niet op poort 443 worden ingesteld "
|
||||
"problemen opleveren."
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "Webserver (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
"De website zal beschikbaar zijn op <a href=\"http://{0}\">http://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "Webserver (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
"De website zal beschikbaar zijn op <a href=\"https://{0}\">https://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "Secure Shell (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -6198,24 +6306,24 @@ msgstr "Tor Socks Proxy"
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr "Tor Bridge Relay"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr "Tor relay poort beschikbaar"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr "Obfs3 transport geregistreerd"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr "Obfs4 transport geregistreerd"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr "Gebruik URL {url} op tcp{kind} via Tor"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr "Bevestig Tor gebruik met {url} via tcp{kind}"
|
||||
@ -6456,11 +6564,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr "Update"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox Foundation"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6613,22 +6721,38 @@ msgstr "Toegang tot alle diensten en systeeminstellingen"
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Zoek LDAP item \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr "Gebruikersnaam is in gebruik of is gereserveerd."
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Foute servernaam"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Password"
|
||||
msgid "Authorization Password"
|
||||
msgstr "Beheerderswachtwoord"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Toon wachtwoord"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Select which services should be available to the new user. The user will "
|
||||
@ -6650,20 +6774,23 @@ msgstr ""
|
||||
"ook op het systeem inloggen met SSH en kunnen systeemadministratie doen "
|
||||
"(sudo)."
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "LDAP gebruiker aanmaken mislukt."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to {group} group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "Nieuwe gebruiker aan groep {group} toevoegen mislukt."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr "Geautoriseerde SSH-sleutels"
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
@ -6674,45 +6801,49 @@ msgstr ""
|
||||
"sleutels toevoegen, één op elke regel. Lege regels en regels die beginnen "
|
||||
"met # worden genegeerd."
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr "LDAP gebruiker hernoemen mislukt."
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr "Gebruiker uit groep verwijderen mislukt."
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr "Gebruiker aan groep toevoegen mislukt."
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr "Kan de SSH-sleutels niet instellen."
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
#, fuzzy
|
||||
#| msgid "Failed to add user to group."
|
||||
msgid "Failed to change user status."
|
||||
msgstr "Gebruiker aan groep toevoegen mislukt."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr "Kan de enige beheerder in het systeem niet verwijderen."
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr "Wijzigen LDAP gebruikerswachtwoord mislukt."
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "Toevoegen van gebruiker aan admin groep mislukt."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to restrict console access."
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "Consoletoegang beperken is mislukt."
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "Gebruikersaccount aangemaakt, U bent nu ingelogd"
|
||||
|
||||
@ -6725,15 +6856,16 @@ msgstr "Wijzig wachtwoord van <em>%(username)s</em>"
|
||||
msgid "Save Password"
|
||||
msgstr "Wachtwoord Opslaan"
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr "Nieuwe gebruiker registreren"
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr "Gebruiker verwijderen"
|
||||
|
||||
@ -6751,7 +6883,7 @@ msgstr "Verwijder %(username)s"
|
||||
msgid "Administrator Account"
|
||||
msgstr "Beheerdersaccount"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -6761,12 +6893,34 @@ msgstr ""
|
||||
"wachtwoord kan later worden veranderd. Deze gebruiker krijgt administratieve "
|
||||
"rechten. Andere gebruikers kunnen later worden toegevoegd."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr "Account aanmaken"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "Beheerdersaccount"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
#, fuzzy
|
||||
#| msgid "Cannot delete the only administrator in the system."
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr "Kan de enige beheerder in het systeem niet verwijderen."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr "Gebruikers"
|
||||
|
||||
@ -6780,7 +6934,12 @@ msgstr "Verwijder gebruiker %(username)s"
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr "Gebruiker %(username)s wijzigen"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "Gebruiker <em>%(username)s</em> wijzigen"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
@ -6789,39 +6948,39 @@ msgstr ""
|
||||
"Gebruik het <a href='%(change_password_url)s'>wachtwoord wijzigingsformulier "
|
||||
"</a> om het wachtwoord te veranderen."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr "Wijzigingen opslaan"
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr "Gebruiker %(username)s aangemaakt."
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr "Gebruiker %(username)s bijgewerkt."
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr "Gebruiker wijzigen"
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr "Gebruiker {user} verwijderd."
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr "Verwijderen van LDAP gebruiker mislukt."
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr "Wijzig wachtwoord"
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Wachtwoord succesvol gewijzigd."
|
||||
|
||||
@ -7311,28 +7470,28 @@ msgstr "Apps"
|
||||
msgid "System"
|
||||
msgstr "Systeem"
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "Wijzig wachtwoord"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr "Herstarten"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr "Uitschakelen"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "Afmelden"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr "Selecteer taal"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "Aanmelden"
|
||||
|
||||
@ -9011,9 +9170,6 @@ msgstr "Gujarati"
|
||||
#~ msgid "Bittorrent (Transmission)"
|
||||
#~ msgstr "BitTorrent (Transmission)"
|
||||
|
||||
#~ msgid "Edit User <em>%(username)s</em>"
|
||||
#~ msgstr "Gebruiker <em>%(username)s</em> wijzigen"
|
||||
|
||||
#~ msgid "Scramblesuit transport registered"
|
||||
#~ msgstr "Scramblesuit transport geregisteerd"
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-06-10 15:41+0000\n"
|
||||
"Last-Translator: WaldiS <sto@tutanota.de>\n"
|
||||
"Language-Team: Polish <https://hosted.weblate.org/projects/freedombox/plinth/"
|
||||
@ -412,6 +412,7 @@ msgstr "Usuń archiwum %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Wyślij"
|
||||
|
||||
@ -711,7 +712,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -891,12 +892,127 @@ msgstr "Odśwież adres IP i domeny"
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Konfigurcja uaktualniona"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Enable application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Aktywuj aplikację"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Create new repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Utwórz nowe repozytorium"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "Remote backup repository already exists."
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "Zdalne repozytorium już istnieje."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Wiki or Blog <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Usuń wiki lub blog <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Usuń %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Utwórz repozytorium"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Utwórz repozytorium"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository removed."
|
||||
msgid "Library created."
|
||||
msgstr "Usunięto repozytorium."
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1120,11 +1236,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr "Asystent VoIP"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr "Domena TLS"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1492,7 +1610,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "Użyj podstawowej autentyfikacji HTTP"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "Nazwa użytkownika"
|
||||
|
||||
@ -2016,12 +2134,6 @@ msgstr "Usuń wiki lub blog <em>%(name)s</em>"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Usunąć trwale to archiwum?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Usuń %(name)s"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
#, fuzzy
|
||||
#| msgid "Repository removed."
|
||||
@ -2044,16 +2156,6 @@ msgstr "Usunięto repozytorium."
|
||||
msgid "Edit repository"
|
||||
msgstr "Utwórz repozytorium"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "Dokumentacja"
|
||||
@ -2563,7 +2665,7 @@ msgid "Chat Client"
|
||||
msgstr "Klient czatu"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr "Informacje o licencji JavaScript"
|
||||
|
||||
@ -3237,34 +3339,34 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "SSH server password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "Hasło do serwera SSH"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3282,7 +3384,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3681,7 +3783,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3950,6 +4052,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4407,29 +4510,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5858,24 +5961,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -6075,11 +6178,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox Foundation"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6229,22 +6332,38 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Niewłaściwa nazwa użytkownika"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "Authorization Password"
|
||||
msgstr "Konto Administratora"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Pokaż hasło"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -6253,65 +6372,71 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "Tworzenie użytkownika LDAP się nie udało."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgstr ""
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "Nieudane dodawanie użytkownika do grupy admin."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
#, fuzzy
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to change user status."
|
||||
msgstr "Nieudane dodawanie użytkownika do grupy admin."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "Nieudane dodawanie użytkownika do grupy admin."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "Utworzono konto użytkownika, możesz się teraz zalogować"
|
||||
|
||||
@ -6324,15 +6449,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -6350,7 +6476,7 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr "Konto Administratora"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -6360,12 +6486,32 @@ msgstr ""
|
||||
"zmienione. Użytkownik będzie miał przyznane uprawnienienia administracyjne. "
|
||||
"Innych użytkowników można dodać później."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr "Utwórz konto"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "Konto Administratora"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -6379,46 +6525,52 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Wiki or Blog <em>%(name)s</em>"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "Usuń wiki lub blog <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6900,30 +7052,30 @@ msgstr "Aplikacje"
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "Zmień hasło"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr "Uruchom ponownie"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr "Wyłącz"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "Wyloguj się"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
#, fuzzy
|
||||
#| msgid "Language"
|
||||
msgid "Select language"
|
||||
msgstr "Język"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "Zaloguj się"
|
||||
|
||||
@ -7250,9 +7402,6 @@ msgstr ""
|
||||
#~ msgid "Deleted all snapshots"
|
||||
#~ msgstr "Usuń %(name)s"
|
||||
|
||||
#~ msgid "Enable application"
|
||||
#~ msgstr "Aktywuj aplikację"
|
||||
|
||||
#~ msgid "Application enabled"
|
||||
#~ msgstr "Aplikacja włączona"
|
||||
|
||||
|
||||
@ -7,17 +7,17 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"PO-Revision-Date: 2020-04-08 13:55+0000\n"
|
||||
"Last-Translator: Manuela Silva <mmsrs@sky.com>\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-09-29 09:39+0000\n"
|
||||
"Last-Translator: ssantos <ssantos@web.de>\n"
|
||||
"Language-Team: Portuguese <https://hosted.weblate.org/projects/freedombox/"
|
||||
"plinth/pt/>\n"
|
||||
"freedombox/pt/>\n"
|
||||
"Language: pt\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.0-dev\n"
|
||||
"X-Generator: Weblate 4.3-dev\n"
|
||||
|
||||
#: doc/dev/_templates/layout.html:11
|
||||
msgid "Page source"
|
||||
@ -61,7 +61,7 @@ msgid ""
|
||||
"Warning! The application may not work properly if domain name is changed "
|
||||
"later."
|
||||
msgstr ""
|
||||
"Atenção! O aplicativo pode não responder corretamente se o nome de domínio "
|
||||
"Atenção! A aplicação pode não responder corretamente se o nome de domínio "
|
||||
"for alterado mais tarde."
|
||||
|
||||
#: plinth/forms.py:48
|
||||
@ -415,6 +415,7 @@ msgstr "Apagar ficheiro %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Submeter"
|
||||
|
||||
@ -696,7 +697,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -871,12 +872,125 @@ msgstr "Atualizar endereço de IP e domínios"
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Configuração atualizada"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Enable application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Ativar aplicação"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Create new repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Criar novo repositório"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Archive %(name)s"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Apagar ficheiro %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Create new repository"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Criar novo repositório"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Criar Repositório"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository not found"
|
||||
msgid "Library created."
|
||||
msgstr "Repositório não encontrado"
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1084,13 +1198,15 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
#, fuzzy
|
||||
#| msgid "Domain Name"
|
||||
msgid "TLS domain"
|
||||
msgstr "Nome de Domínio"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1416,7 +1532,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@ -1888,12 +2004,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Apagar este arquivo permanentemente?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
#, fuzzy
|
||||
#| msgid "Repository not found"
|
||||
@ -1916,16 +2026,6 @@ msgstr "Repositório não encontrado"
|
||||
msgid "Edit repository"
|
||||
msgstr "Criar novo repositório"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2409,7 +2509,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -3097,34 +3197,34 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "SSH server password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "Password do servidor SSH"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3142,7 +3242,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3542,7 +3642,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3811,6 +3911,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4266,29 +4367,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5685,24 +5786,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5897,11 +5998,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6050,22 +6151,36 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid domain name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Nome de domínio inválido"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Upload Password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Palavra-passe de Envio"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -6074,63 +6189,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -6143,15 +6261,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -6169,19 +6288,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -6195,46 +6332,52 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Service discovery server is running"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "O Servidor da descoberta do serviço está a correr"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6685,30 +6828,30 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
#, fuzzy
|
||||
#| msgid "Language"
|
||||
msgid "Select language"
|
||||
msgstr "Língua"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
@ -6969,9 +7112,6 @@ msgstr "Gujarati"
|
||||
#~ msgid "Restoring"
|
||||
#~ msgstr "A restaurar"
|
||||
|
||||
#~ msgid "Enable application"
|
||||
#~ msgstr "Ativar aplicação"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Setting unchanged"
|
||||
#~ msgid "Settings unchanged"
|
||||
@ -7002,11 +7142,6 @@ msgstr "Gujarati"
|
||||
#~ msgid "Internet connection type saved."
|
||||
#~ msgstr "Configuração atualizada"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Service discovery server is running"
|
||||
#~ msgid "Service <em>%(service_name)s</em> is running."
|
||||
#~ msgstr "O Servidor da descoberta do serviço está a correr"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "To make SIP calls, a client application is needed. Available clients "
|
||||
#~ "include <a href=\"https://jitsi.org/\">Jitsi</a> (for computers) and <a "
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-09-17 09:36+0000\n"
|
||||
"Last-Translator: Nikita Epifanov <nikgreens@protonmail.com>\n"
|
||||
"Language-Team: Russian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -410,6 +410,7 @@ msgstr "Удалить архив %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Отправить"
|
||||
|
||||
@ -708,7 +709,7 @@ msgstr "Разрешения для анонимных пользователе
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr "Разрешения"
|
||||
|
||||
@ -875,12 +876,132 @@ msgstr "Обновите IP-адреса и домены"
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Конфигурация обновлена"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Administer Syncthing application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Администрирование приложения Syncthing"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Name of the repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Имя репозитория"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "Общий ресурс с таким именем уже существует."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Git Repository <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Удалить репозиторий Git <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Удаление %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Manage Repositories"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Управление репозиториями"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Создать репозиторий"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "No repositories available."
|
||||
msgid "No libraries available."
|
||||
msgstr "Нет доступных репозиториев."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "Удаление узла %(site)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository created."
|
||||
msgid "Library created."
|
||||
msgstr "Репозиторий создан."
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred while creating the repository."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "Ошибка при создании репозитория."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} удален."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Не удалось удалить {name}: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1114,11 +1235,13 @@ msgstr "Coturn"
|
||||
msgid "VoIP Helper"
|
||||
msgstr "VoIP-помощник"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr "Домен TLS"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1482,7 +1605,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "Использовать базовую аутентификацию HTTP"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "Имя пользователя"
|
||||
|
||||
@ -2000,12 +2123,6 @@ msgstr "Удалить репозиторий Git <em>%(name)s</em>"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Удалить этот репозиторий навсегда?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "Удаление %(name)s"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr "Репозиторий создан."
|
||||
@ -2022,16 +2139,6 @@ msgstr "Репозиторий отредактирован."
|
||||
msgid "Edit repository"
|
||||
msgstr "Редактировать репозиторий"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} удален."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "Не удалось удалить {name}: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "Документация"
|
||||
@ -2596,7 +2703,7 @@ msgid "Chat Client"
|
||||
msgstr "Чат-клиент"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr "Информация о лицензии JavaScript"
|
||||
|
||||
@ -3360,7 +3467,7 @@ msgstr "Опубликованый ключ на сервере ключей."
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "Произошла ошибка при публикации ключа."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
@ -3368,7 +3475,7 @@ msgstr ""
|
||||
"Mumble это шифрованый чат с высоким качеством голоса, низкой задержкой и "
|
||||
"открытым исходным кодом."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3378,19 +3485,19 @@ msgstr ""
|
||||
"64738. На <a href=\"http://mumble.info\"> Клиенты</a> вы можете найти "
|
||||
"клиенты для вашего компьютера и Android устройств."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr "Mumble"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr "Голосовой чат"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "Установить пароль суперпользователя"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3410,7 +3517,7 @@ msgstr "Mumblefly"
|
||||
msgid "Mumla"
|
||||
msgstr "Mumla"
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr "Пароль суперпользователя успешно обновлён."
|
||||
|
||||
@ -3890,7 +3997,7 @@ msgstr "Редактирование подключения"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "Редактировать"
|
||||
|
||||
@ -4166,6 +4273,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr "Пропустить этот шаг"
|
||||
|
||||
@ -4702,29 +4810,29 @@ msgstr ""
|
||||
"все комбинации протокол/порт, которые вы можете здесь задать. Например, "
|
||||
"HTTPS на портах, отличных от 443, может вызывать проблемы."
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "Веб-сервер (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr "Сайт будет доступен на <a href=\"http://{0}\">http://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "Веб-сервер (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr "Сайт будет доступен на <a href=\"https://{0}\">https://{0}</a>"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "Sеcure Shell (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5355,8 +5463,8 @@ msgid ""
|
||||
"community."
|
||||
msgstr ""
|
||||
"Частые обновления функций позволяют службе %(box_name)s, а также очень "
|
||||
"ограниченному набору программного обеспечения, чаще получать новые функции ("
|
||||
"из репозитория backports). Это приводит к получению некоторых новых функций "
|
||||
"ограниченному набору программного обеспечения, чаще получать новые функции "
|
||||
"(из репозитория backports). Это приводит к получению некоторых новых функций "
|
||||
"в течение нескольких недель, а не раз в 2 года или около того. Обратите "
|
||||
"внимание, что программное обеспечение с частыми обновлениями функций не "
|
||||
"поддерживается командой безопасности Debian. Вместо этого они поддерживаются "
|
||||
@ -6305,24 +6413,24 @@ msgstr "Tor Socks прокси"
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr "Ретранслятор Tor типа мост"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr "Доступен порт трансляции Tor"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr "Obfs3 транспорт зарегестрирован"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr "Obfs4 транспорт зарегистрирован"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr "Доступ к {url} по tcp{kind} через Tor"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr "Подтверждение использования Tor в {url} по tcp {kind}"
|
||||
@ -6550,11 +6658,11 @@ msgstr ""
|
||||
"выполняется автоматически в 02:00, в результате чего все приложения на "
|
||||
"короткое время становятся недоступными."
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr "Обновление"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
msgid "FreedomBox Updated"
|
||||
msgstr "FreedomBox обновлён"
|
||||
|
||||
@ -6721,21 +6829,37 @@ msgstr "Доступ ко всем сервисам и настройкам си
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "Проверьте запись LDAP \"{search_item}\""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr "Имя пользователя уже занято."
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Введите действительное имя пользователя."
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
"Требуется. 150 символов или меньше. Только английские буквы, цифры и @/./-/_."
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Password"
|
||||
msgid "Authorization Password"
|
||||
msgstr "Пароль администратора"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Add password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Добавить пароль"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -6749,20 +6873,23 @@ msgstr ""
|
||||
"Пользователи в группе администратора имеют доступ ко всем службам. Они также "
|
||||
"могут войти в систему через SSH и иметь административные привилегии (sudo)."
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "Создание пользователя LDAP не удалось."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to {group} group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "Не удалось добавить нового пользователя в группу {group}."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr "Авторизованные SSH ключи"
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
@ -6773,43 +6900,47 @@ msgstr ""
|
||||
"на каждой строке. Пустые строки и строки, начинающиеся с # будут "
|
||||
"игнорироваться."
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr "Переименование пользователя LDAP не удалось."
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr "Не удалось удалить пользователя из группы."
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr "Не удалось добавить пользователя в группу."
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr "Не удалось задать ключи SSH."
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr "Не удалось изменить статус пользователя."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr "Невозможно удалить единственного администратора в системе."
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr "Изменение LDAP пароля пользователя не удалось."
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "Не удалось добавить нового пользователя в группу администратора."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to restrict console access."
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "Не удалось ограничить доступ к консоли."
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "Учетная запись пользователя создана, теперь вы вошли"
|
||||
|
||||
@ -6822,15 +6953,16 @@ msgstr "Изменение пароля для <em>%(username)s</em>"
|
||||
msgid "Save Password"
|
||||
msgstr "Сохранить пароль"
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr "Создать пользователя"
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr "Удаление пользователя"
|
||||
|
||||
@ -6848,7 +6980,7 @@ msgstr "Удаление %(username)s"
|
||||
msgid "Administrator Account"
|
||||
msgstr "Учетная запись администратора"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -6858,12 +6990,34 @@ msgstr ""
|
||||
"можно изменить позднее. Этому пользователю будут предоставляться "
|
||||
"административные привилегии. Другие пользователи могут быть добавлены позже."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr "Создать учетную запись"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "Учетная запись администратора"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
#, fuzzy
|
||||
#| msgid "Cannot delete the only administrator in the system."
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr "Невозможно удалить единственного администратора в системе."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr "Пользователи"
|
||||
|
||||
@ -6877,7 +7031,13 @@ msgstr "Удалить пользователя %(username)s"
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr "Редактирование пользователя %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Edit user %(username)s"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "Редактирование пользователя %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
@ -6886,39 +7046,39 @@ msgstr ""
|
||||
"Используйте <a href='%(change_password_url)s'>форму смены пароля</a> для "
|
||||
"смены пароля."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr "Сохранить изменения"
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr "Пользователь %(username)s создан."
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr "Пользователь %(username)s обновлен."
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr "Редактирование пользователя"
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr "Пользователь {user} удален."
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr "Сбой при удалении LDAP пользователя."
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr "Изменить пароль"
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Пароль успешно изменён."
|
||||
|
||||
@ -7366,28 +7526,28 @@ msgstr "Приложения"
|
||||
msgid "System"
|
||||
msgstr "Система"
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "Изменить пароль"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr "Перезапустить"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr "Завершить работу"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "Выход"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr "Выберите язык"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "Войти"
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2019-05-07 20:48+0000\n"
|
||||
"Last-Translator: Erik Ušaj <erikusaj@hotmail.com>\n"
|
||||
"Language-Team: Slovenian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -438,6 +438,7 @@ msgstr "Brisanje arhiva %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Oddaj"
|
||||
|
||||
@ -755,7 +756,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -927,12 +928,127 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Konfiguracija je posodobljena"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Enable application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Omogoči aplikacijo"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Create new repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Ustvari novo skladišče"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "Create remote backup repository"
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "Ustvari oddaljeno skladišče za rezervne kopije"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Archive %(name)s"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Brisanje arhiva %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Create new repository"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Ustvari novo skladišče"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create new repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Ustvari novo skladišče"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository not found"
|
||||
msgid "Library created."
|
||||
msgstr "Ne najdem skladišča"
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1151,11 +1267,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1475,7 +1593,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@ -1943,12 +2061,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Želite ta arhiv trajno izbrisati?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
#, fuzzy
|
||||
#| msgid "Repository not found"
|
||||
@ -1971,16 +2083,6 @@ msgstr "Ne najdem skladišča"
|
||||
msgid "Edit repository"
|
||||
msgstr "Ustvari novo skladišče"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2447,7 +2549,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -3094,34 +3196,34 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "SSH server password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "Geslo strežnika SSH"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3139,7 +3241,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3533,7 +3635,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3802,6 +3904,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4255,29 +4358,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5650,24 +5753,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5864,11 +5967,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6011,22 +6114,36 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid hostname"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Neveljavno ime gostitelja"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Invalid hostname"
|
||||
msgid "Invalid password."
|
||||
msgstr "Neveljavno ime gostitelja"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -6035,63 +6152,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -6104,15 +6224,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -6130,19 +6251,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -6156,46 +6295,51 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6638,28 +6782,28 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
@ -6895,9 +7039,6 @@ msgstr ""
|
||||
#~ msgid "Restoring"
|
||||
#~ msgstr "Obnavljanje"
|
||||
|
||||
#~ msgid "Enable application"
|
||||
#~ msgstr "Omogoči aplikacijo"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Connection refused"
|
||||
#~ msgid "Custom Section"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-04-13 05:34+0000\n"
|
||||
"Last-Translator: vihor <branislav.djalic@gmail.com>\n"
|
||||
"Language-Team: Serbian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -412,6 +412,7 @@ msgstr "Izbriši Arhivu %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Pošalji"
|
||||
|
||||
@ -696,7 +697,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -866,12 +867,121 @@ msgstr "Osveži listu IP adresa i domena"
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Konfiguracija sačuvana"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Enable application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Aktiviraj aplikaciju"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
msgid "Name of the new library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Archive %(name)s"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Izbriši Arhivu %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
msgid "Manage Libraries"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Kreirajte repozitorij"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Archive created."
|
||||
msgid "Library created."
|
||||
msgstr "Arhiva kreirana."
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1075,11 +1185,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1397,7 +1509,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@ -1846,12 +1958,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -1868,16 +1974,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2343,7 +2439,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -2990,32 +3086,32 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3033,7 +3129,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3427,7 +3523,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3694,6 +3790,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4147,29 +4244,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5532,24 +5629,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5738,11 +5835,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
msgid "FreedomBox Updated"
|
||||
msgstr ""
|
||||
|
||||
@ -5883,20 +5980,32 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
msgid "Enter a valid username."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
msgid "Invalid password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -5905,63 +6014,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -5974,15 +6086,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -6000,19 +6113,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -6026,46 +6157,51 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6476,28 +6612,28 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
@ -6732,6 +6868,3 @@ msgstr ""
|
||||
|
||||
#~ msgid "Restoring"
|
||||
#~ msgstr "Vraćanje podataka"
|
||||
|
||||
#~ msgid "Enable application"
|
||||
#~ msgstr "Aktiviraj aplikaciju"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -387,6 +387,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr ""
|
||||
|
||||
@ -653,7 +654,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -811,12 +812,114 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
msgid "Administer calibre application"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
msgid "Name of the new library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, python-format
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
msgid "Manage Libraries"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
msgid "Create Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
msgid "Library created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1013,11 +1116,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1335,7 +1440,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
@ -1784,12 +1889,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr ""
|
||||
@ -1806,16 +1905,6 @@ msgstr ""
|
||||
msgid "Edit repository"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2281,7 +2370,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -2928,32 +3017,32 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -2971,7 +3060,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3363,7 +3452,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3630,6 +3719,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4083,29 +4173,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5466,24 +5556,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5672,11 +5762,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
msgid "FreedomBox Updated"
|
||||
msgstr ""
|
||||
|
||||
@ -5817,20 +5907,32 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
msgid "Enter a valid username."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
msgid "Invalid password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -5839,63 +5941,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -5908,15 +6013,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -5934,19 +6040,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -5960,46 +6084,51 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6410,28 +6539,28 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-06-24 11:41+0000\n"
|
||||
"Last-Translator: Sunil Mohan Adapa <sunil@medhas.org>\n"
|
||||
"Language-Team: Telugu <https://hosted.weblate.org/projects/freedombox/plinth/"
|
||||
@ -423,6 +423,7 @@ msgstr "%(name)s తొలగించు"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "సమర్పించు"
|
||||
|
||||
@ -712,7 +713,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr "అనుమతులు"
|
||||
|
||||
@ -893,12 +894,131 @@ msgstr "IP చిరునామా మరియు డొమైన్లన
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "ఆకృతీకరణ నవీకరించబడింది"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Install this application?"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "ఈ అనువర్తనాన్ని నిక్షిప్తం చేయాలా?"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Name of the share"
|
||||
msgid "Name of the new library"
|
||||
msgstr "షేర్ యొక్క పేరు"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "ఈ సేవ ఇప్పటికే ఉంది"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Wiki or Blog <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "వికీ లేదా బ్లాగ్ తొలగించు <em>%(name)s</em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "%(name)s తొలగించు"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Create User"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "వినియోగదారుని సృష్టించు"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create User"
|
||||
msgid "Create Library"
|
||||
msgstr "వినియోగదారుని సృష్టించు"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "Tor relay port available"
|
||||
msgid "No libraries available."
|
||||
msgstr "టార్ రిలే పోర్ట్ అందుబాటులో ఉంది"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "ప్రదేశం తొలగించు %(site)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository created."
|
||||
msgid "Library created."
|
||||
msgstr "రిపోజిటరీ సృష్టించబడింది."
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred during configuration."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "అక్రుతీకరణలో ఒక పొరపాటు జరిగింది."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} తొలగించబడింది."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "{name} ను తొలగించలేము: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1121,13 +1241,15 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
#, fuzzy
|
||||
#| msgid "Subdomain"
|
||||
msgid "TLS domain"
|
||||
msgstr "ఉప డోమైన్ పేరు"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1500,7 +1622,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "HTTP ప్రాథమిక ప్రమాణీకరణ ఉపయోగించు"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "వినియోగి పేరు"
|
||||
|
||||
@ -2025,12 +2147,6 @@ msgstr "వికీ లేదా బ్లాగ్ తొలగించు <e
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "<strong>%(name)s</strong> అనుసంధానం శాశ్వతంగా తొలగించు ?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "%(name)s తొలగించు"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr "రిపోజిటరీ సృష్టించబడింది."
|
||||
@ -2051,16 +2167,6 @@ msgstr "రిపోజిటరీ సవరించబడింది."
|
||||
msgid "Edit repository"
|
||||
msgstr "వినియోగదారుని సృష్టించు"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} తొలగించబడింది."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "{name} ను తొలగించలేము: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "పత్రావళి"
|
||||
@ -2608,7 +2714,7 @@ msgid "Chat Client"
|
||||
msgstr "చాట్ క్లయింట్"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr "జావాస్క్రిప్ట్ లైసెన్స్ సమాచరం"
|
||||
|
||||
@ -3344,7 +3450,7 @@ msgstr "కీ కీసేవకానికి ప్రచురించబ
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "కీని ప్రచురించేటప్పుడు దోషం సంభవించింది."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
@ -3352,7 +3458,7 @@ msgstr ""
|
||||
"మంబుల్ అనేది తక్కువ-జాప్యత, ఎన్క్రిప్టెడ్, అధిక నాణ్యతా వంటి విశిష్టలతో కూడిన ఒక ఓపెన్ సోర్స్ స్వర సంభాషణా "
|
||||
"సాఫ్ట్వేర్."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
@ -3363,21 +3469,21 @@ msgstr ""
|
||||
"mumble.info\"> 1Clients </a> 2 మీ నమలు సర్వర్ కనెక్ట్ చేయవచ్చు మరియు Android పరికరాలు "
|
||||
"అందుబాటులో ఉన్నాయి."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr "మంబుల్"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr "స్వర సంభాషణ"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "SSH server password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "SSH సర్వర్ పాస్ వర్డ్"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3395,7 +3501,7 @@ msgstr "ముంబుల్ ఫ్లై"
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Password changed successfully."
|
||||
msgid "SuperUser password successfully updated."
|
||||
@ -3830,7 +3936,7 @@ msgstr "అనుసంధానాన్ని సవరించు"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "సవరించు"
|
||||
|
||||
@ -4105,6 +4211,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
#, fuzzy
|
||||
#| msgid "skip this step"
|
||||
msgid "Skip this step"
|
||||
@ -4623,29 +4730,29 @@ msgstr ""
|
||||
"<b>హెచ్చరిక:</b><br>మా PageKite ఫ్రంటెండ్ సర్వర్ మీరు ఇక్కడ నిర్వచించే చేయగల అన్ని ప్రోటోకాల్ / పోర్ట్ "
|
||||
"కాంబినేషన్ మద్దతు ఇవ్వకపోవచ్చు. ఉదాహరణకు, HTTPS 443 పోర్ట్లకు సమస్యలు కారణమవుతుంది."
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "వెబ్ సేవిక (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr "సైట్ <a href=\"http://{0}\">http://{0}</a> వద్ద అందుబాటులో ఉంటుంది"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "వెబ్ సేవిక (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr "సైట్ <a href=\"https://{0}\">https://{0}</a> వద్ద అందుబాటులో ఉంటుంది"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "సెక్యూర్ షెల్ (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -6216,24 +6323,24 @@ msgstr "సాక్స్5 ప్రాక్సీ"
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr "టార్ బ్రిడ్జ్ రిలే"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr "టార్ రిలే పోర్ట్ అందుబాటులో ఉంది"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr "Obfs3 రవాణా నమోదు చేయబడింది"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr "Obfs4 రవాణా నమోదు చేయబడింది"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr "టార్ ద్వారా {kind} లో {url} ను ఆక్సెస్ చెయ్యండి"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr "టోర్ వాడుకను నిర్ధారించండి{url} టీ సి పి పై{kind}"
|
||||
@ -6460,11 +6567,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr "నవీకరణ యూ.ఆర్.ఎల్"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox Manual"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6614,22 +6721,38 @@ msgstr "అన్ని సేవలకు మరియు వ్యవస్థ
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "LDAP నమోదు \"{search_item}\" తనిఖీ"
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr "యూజర్ పేరు తీసుకోబడింది లేదా రిజర్వ్ చేయబడింది."
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "సేవిక పేరు చెలదు"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Password"
|
||||
msgid "Authorization Password"
|
||||
msgstr "నిర్వాహకుని రహస్యపదం"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "రహస్యపదం కనబర్చు"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -6638,65 +6761,72 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "ఎల్.డి.ఏ.పి వాడుకరి సృష్టించడంలో విఫలమైంది."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to {group} group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "వినియోగదారుని {group} సముహానికి జోడించడంలో విఫలం."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr "అధీకృత SSH కీలు"
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr "ఎల్.డి.ఏ.పి వాడుకరి పేరుమార్పులో విఫలం."
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr "సమూహంలోంచి వినియోగదారుని తొలగించడంలో విఫలం."
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr "సమూహంలోకి వినియోగదారుని జోడించడంలో విఫలం."
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr "SSH కీలను సెట్ చేయడం సాధ్యం కాలేదు."
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
#, fuzzy
|
||||
#| msgid "Failed to add user to group."
|
||||
msgid "Failed to change user status."
|
||||
msgstr "సమూహంలోకి వినియోగదారుని జోడించడంలో విఫలం."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr "సిస్టమ్లోని ఏకైక నిర్వాహకుడిని తొలగించలేరు."
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr "ఎల్.డి.ఏ.పి వాడుకరి పాస్వర్డ్ మార్పిడి విఫలం."
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "కొత్త వాడుకరి ను అడ్మిన్ సమూహంలో జోడించడం విఫలమైనది."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to restrict console access."
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "console ప్రవేశమును పరిమితి చెయడంలొ విఫలమైంది."
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "వాడుకరి ఖాతా సృస్టించబడింది, మీరు లాగిన్ చేయబడ్డారు"
|
||||
|
||||
@ -6709,15 +6839,16 @@ msgstr "<em>%(username)s</em>కు పాస్వర్డ్ ను మా
|
||||
msgid "Save Password"
|
||||
msgstr "పాస్వర్డ్ను సేవ్ చేయి"
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr "వినియోగదారుని సృష్టించు"
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr "వినియోగదారుని తొలగించు"
|
||||
|
||||
@ -6735,7 +6866,7 @@ msgstr "%(username)s తొలగించు"
|
||||
msgid "Administrator Account"
|
||||
msgstr "నిర్వాహక ఖాతా"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -6744,12 +6875,34 @@ msgstr ""
|
||||
"దయచేసి ఈ సంవిదనం కోసం ఒక వాడుకరి పేరు మరియు పాస్వర్డ్ ను ఎంచుకోండి. తర్వాత పాస్వర్డ్ ను "
|
||||
"మార్చుకోగలరు. ఈ వినియోగడారునికి పరిపాలనా అధికారాలు ఇవ్వబడుతాయి. మిగిలిన వినియోగదారులను తరువాత జోడించగలరు."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr "ఖాతా సృష్టించు"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "నిర్వాహక ఖాతా"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
#, fuzzy
|
||||
#| msgid "Cannot delete the only administrator in the system."
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr "సిస్టమ్లోని ఏకైక నిర్వాహకుడిని తొలగించలేరు."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr "వినియోగదారులు"
|
||||
|
||||
@ -6763,7 +6916,13 @@ msgstr "వినియోగదారి %(username)s ను తొలగిం
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr "%(username)s వినియోగదారుని మార్చు"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Edit user %(username)s"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "%(username)s వినియోగదారుని మార్చు"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
@ -6772,39 +6931,39 @@ msgstr ""
|
||||
"పాస్వర్డ్ను మార్చడానికి <a href='%(change_password_url)s'> పాస్వర్డ్ రూపాన్ని మార్చండి </a> ని "
|
||||
"ఉపయోగించండి."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr "మార్పులను భద్రపరుచు"
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr "వినియోగదారి %(username)s సృష్టించబడ్డారు."
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr "వినియోగదారి %(username)s నావీకరించబడ్డాడు."
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr "వినియోగదారి మార్పు"
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr "వినియోగదారి {user} తొలగించబడ్డాడు."
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr "ఎల్.డి.ఏ.పి వినియోగదారి తొలగింపు విఫలం."
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr "పాస్వర్డ్ మార్చు"
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr "పాస్వర్డ్ విజయవంతంగా మార్చబడినది."
|
||||
|
||||
@ -7273,32 +7432,32 @@ msgstr "అనువర్తనాలు"
|
||||
msgid "System"
|
||||
msgstr "వ్యవస్థ"
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "సంకేతపదాన్ని మార్చు"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr "పునఃప్రారంభించండి"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
#, fuzzy
|
||||
#| msgid "Shut Down Now"
|
||||
msgid "Shut down"
|
||||
msgstr "ఇపుడు మూసివేయండి"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "నిష్క్రమించు"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
#, fuzzy
|
||||
#| msgid "Language"
|
||||
msgid "Select language"
|
||||
msgstr "భాష"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "లోనికి ప్రవేశించండి"
|
||||
|
||||
|
||||
@ -6,8 +6,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"PO-Revision-Date: 2020-09-17 09:36+0000\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-10-01 21:41+0000\n"
|
||||
"Last-Translator: Burak Yavuz <hitowerdigit@hotmail.com>\n"
|
||||
"Language-Team: Turkish <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/tr/>\n"
|
||||
@ -217,12 +217,12 @@ msgid ""
|
||||
"\"Key in Repository\" means that a password-protected key is stored with the "
|
||||
"backup."
|
||||
msgstr ""
|
||||
"\"Key in Repository\", parola korumalı bir anahtarın yedek ile saklanacağı "
|
||||
"\"Anahtar Depoda\", parola korumalı bir anahtarın yedek ile saklanacağı "
|
||||
"anlamına gelir."
|
||||
|
||||
#: plinth/modules/backups/forms.py:122
|
||||
msgid "Key in Repository"
|
||||
msgstr "Depodaki Anahtar"
|
||||
msgstr "Anahtar Depoda"
|
||||
|
||||
#: plinth/modules/backups/forms.py:122 plinth/modules/searx/forms.py:15
|
||||
msgid "None"
|
||||
@ -238,7 +238,7 @@ msgstr "Parola; Yalnızca şifreleme kullanırken gerekli."
|
||||
|
||||
#: plinth/modules/backups/forms.py:128
|
||||
msgid "Confirm Passphrase"
|
||||
msgstr "Parolayı Onayla"
|
||||
msgstr "Parolayı Onaylayın"
|
||||
|
||||
#: plinth/modules/backups/forms.py:128
|
||||
msgid "Repeat the passphrase."
|
||||
@ -273,7 +273,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/backups/forms.py:193
|
||||
msgid "SSH server password"
|
||||
msgstr "SSH sunucu parolası"
|
||||
msgstr "SSH Sunucu Parolası"
|
||||
|
||||
#: plinth/modules/backups/forms.py:194
|
||||
msgid ""
|
||||
@ -391,7 +391,7 @@ msgstr "Bu arşiv kalıcı olarak silinsin mi?"
|
||||
|
||||
#: plinth/modules/backups/templates/backups_delete.html:19
|
||||
msgid "Time"
|
||||
msgstr "Saat"
|
||||
msgstr "Zaman"
|
||||
|
||||
#: plinth/modules/backups/templates/backups_delete.html:36
|
||||
#, python-format
|
||||
@ -406,6 +406,7 @@ msgstr "%(name)s Arşivini Sil"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Gönder"
|
||||
|
||||
@ -703,7 +704,7 @@ msgstr "Bir parola girmemiş isimsiz kullanıcılar için izinler."
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr "İzinler"
|
||||
|
||||
@ -869,12 +870,132 @@ msgstr "IP adresi ve etki alanlarını yenile"
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Yapılandırma güncellendi"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Administer Syncthing application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Syncthing uygulamasını yönet"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Name of the repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Deponun adı"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "A share with this name already exists."
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "Bu ada sahip bir paylaşım zaten var."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Git Repository <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "<em>%(name)s</em> Git Deposunu Sil"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "%(name)s öğesini sil"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Manage Repositories"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Depoları Yönet"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Depo Oluştur"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "No repositories available."
|
||||
msgid "No libraries available."
|
||||
msgstr "Kullanılabilir depolar yok."
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "%(site)s sitesini sil"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository created."
|
||||
msgid "Library created."
|
||||
msgstr "Depo oluşturuldu."
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred while creating the repository."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "Depo oluşturulurken bir hata meydana geldi."
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} silindi."
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "{name} silinemedi: {error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1110,11 +1231,13 @@ msgstr "Coturn"
|
||||
msgid "VoIP Helper"
|
||||
msgstr "VoIP Yardımcısı"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr "TLS etki alanı"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1343,8 +1466,8 @@ msgid ""
|
||||
"24h), it may be hard for others to find you on the Internet. This will "
|
||||
"prevent others from finding services which are provided by this {box_name}."
|
||||
msgstr ""
|
||||
"Internet sağlayıcınız IP adresinizi düzenli olarak değiştirirse (yani her 24 "
|
||||
"saatte bir), başkalarının sizi Internet'te bulması zor olabilir. Bu, "
|
||||
"Eğer Internet sağlayıcınız IP adresinizi düzenli olarak değiştiriyorsa (yani "
|
||||
"her 24 saatte bir), başkalarının sizi Internet'te bulması zor olabilir. Bu, "
|
||||
"başkalarının bu {box_name} tarafından sağlanan hizmetleri bulmasını "
|
||||
"engelleyecektir."
|
||||
|
||||
@ -1479,7 +1602,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "HTTP temel kimlik doğrulamasını kullan"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "Kullanıcı adı"
|
||||
|
||||
@ -1999,12 +2122,6 @@ msgstr "<em>%(name)s</em> Git Deposunu Sil"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Bu depo kalıcı olarak silinsin mi?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "%(name)s öğesini sil"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
msgid "Repository created."
|
||||
msgstr "Depo oluşturuldu."
|
||||
@ -2021,16 +2138,6 @@ msgstr "Depo düzenlendi."
|
||||
msgid "Edit repository"
|
||||
msgstr "Depoyu düzenle"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} silindi."
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "{name} silinemedi: {error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "Belgeler"
|
||||
@ -2403,7 +2510,7 @@ msgid ""
|
||||
"For this, your browser, preferably a Tor Browser, needs to be configured for "
|
||||
"a proxy."
|
||||
msgstr ""
|
||||
"I2P, Interne'te ve gizli hizmetlerde (eep siteleri) isimsiz olarak "
|
||||
"I2P, Internet'te ve gizli hizmetlerde (eep siteleri) isimsiz olarak "
|
||||
"gezinmenize izin verir. Bunun için tarayıcınızın, tercihen bir Tor "
|
||||
"Tarayıcı'nın bir proksi için yapılandırılması gerekir."
|
||||
|
||||
@ -2596,7 +2703,7 @@ msgid "Chat Client"
|
||||
msgstr "Sohbet İstemcisi"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr "JavaScript lisans bilgileri"
|
||||
|
||||
@ -3363,7 +3470,7 @@ msgstr "Anahtar, anahtar sunucusuna yayınlandı."
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "Anahtar yayınlanırken bir hata meydana geldi."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
@ -3371,7 +3478,7 @@ msgstr ""
|
||||
"Mumble, açık kaynaklı, düşük gecikmeli, şifreli, yüksek kaliteli bir sesli "
|
||||
"sohbet yazılımıdır."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3381,19 +3488,19 @@ msgstr ""
|
||||
"bağlanabilirsiniz. Masaüstünüzden ve Android cihazlarınızdan Mumble'a "
|
||||
"bağlanmak için <a href=\"http://mumble.info\">istemciler</a> mevcuttur."
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr "Mumble"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr "Sesli Sohbet"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "Süper Kullanıcı Parolası Ayarlayın"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3413,7 +3520,7 @@ msgstr "Mumblefly"
|
||||
msgid "Mumla"
|
||||
msgstr "Mumla"
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr "Süper Kullanıcı parolası başarılı olarak güncellendi."
|
||||
|
||||
@ -3895,7 +4002,7 @@ msgstr "Bağlantıyı düzenle"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "Düzenle"
|
||||
|
||||
@ -4172,6 +4279,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr "Bu adımı atla"
|
||||
|
||||
@ -4700,32 +4808,32 @@ msgstr ""
|
||||
"dışındaki bağlantı noktalarında HTTPS'nin sorunlara neden olduğu "
|
||||
"bilinmektedir."
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "Web Sunucusu (HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
"Site <a href=\"http://{0}\">http://{0}</a> adresinde kullanılabilir olacaktır"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "Web Sunucusu (HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
"Site <a href=\"https://{0}\">https://{0}</a> adresinde kullanılabilir "
|
||||
"olacaktır"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "Güvenli Kabuk (SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5711,7 +5819,7 @@ msgstr "Yazılım Kurulum Anlık Görüntüleri"
|
||||
msgid "Enable or disable snapshots before and after software installation"
|
||||
msgstr ""
|
||||
"Yazılım kurulumundan önce ve sonra anlık görüntüleri etkinleştirin veya "
|
||||
"etkisizleştirin"
|
||||
"etkisizleştirin."
|
||||
|
||||
#: plinth/modules/snapshot/forms.py:32
|
||||
msgid "Hourly Snapshots Limit"
|
||||
@ -5719,7 +5827,7 @@ msgstr "Saatlik Anlık Görüntü Sınırı"
|
||||
|
||||
#: plinth/modules/snapshot/forms.py:33
|
||||
msgid "Keep a maximum of this many hourly snapshots."
|
||||
msgstr "Bu birçok saatlik anlık görüntüyü en fazlada tutun."
|
||||
msgstr "En fazla bu kadar tutulacak saatlik anlık görüntü."
|
||||
|
||||
#: plinth/modules/snapshot/forms.py:36
|
||||
msgid "Daily Snapshots Limit"
|
||||
@ -5727,7 +5835,7 @@ msgstr "Günlük Anlık Görüntü Sınırı"
|
||||
|
||||
#: plinth/modules/snapshot/forms.py:37
|
||||
msgid "Keep a maximum of this many daily snapshots."
|
||||
msgstr "Bu birçok günlük anlık görüntüyü en fazlada tutun."
|
||||
msgstr "En fazla bu kadar tutulacak günlük anlık görüntü."
|
||||
|
||||
#: plinth/modules/snapshot/forms.py:40
|
||||
msgid "Weekly Snapshots Limit"
|
||||
@ -5735,7 +5843,7 @@ msgstr "Haftalık Anlık Görüntü Sınırı"
|
||||
|
||||
#: plinth/modules/snapshot/forms.py:41
|
||||
msgid "Keep a maximum of this many weekly snapshots."
|
||||
msgstr "Bu birçok haftalık anlık görüntüyü en fazlada tutun."
|
||||
msgstr "En fazla bu kadar tutulacak haftalık anlık görüntü."
|
||||
|
||||
#: plinth/modules/snapshot/forms.py:44
|
||||
msgid "Monthly Snapshots Limit"
|
||||
@ -5743,7 +5851,7 @@ msgstr "Aylık Anlık Görüntü Sınırı"
|
||||
|
||||
#: plinth/modules/snapshot/forms.py:45
|
||||
msgid "Keep a maximum of this many monthly snapshots."
|
||||
msgstr "Bu birçok aylık anlık görüntüyü en fazlada tutun."
|
||||
msgstr "En fazla bu kadar tutulacak aylık anlık görüntü."
|
||||
|
||||
#: plinth/modules/snapshot/forms.py:48
|
||||
msgid "Yearly Snapshots Limit"
|
||||
@ -5754,8 +5862,8 @@ msgid ""
|
||||
"Keep a maximum of this many yearly snapshots. The default value is 0 (keep "
|
||||
"no yearly snapshot)."
|
||||
msgstr ""
|
||||
"Bu birçok yıllık anlık görüntüyü en fazlada tutun. Varsayılan değer 0'dır ("
|
||||
"yıllık anlık görüntü tutmayın)."
|
||||
"En fazla bu kadar tutulacak yıllık anlık görüntü. Varsayılan değer 0'dır "
|
||||
"(yıllık anlık görüntü tutma)."
|
||||
|
||||
#: plinth/modules/snapshot/templates/snapshot_delete_selected.html:12
|
||||
msgid "Delete the following snapshots permanently?"
|
||||
@ -6306,27 +6414,27 @@ msgstr "Tor Socks Proksi"
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr "Tor Köprüsü Aktarımı"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr "Tor aktarımı bağlantı noktası mevcut"
|
||||
msgstr "Tor aktarımı bağlantı noktası kullanılabilir"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr "Obfs3 taşıma kayıtlı"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr "Obfs4 taşıma kayıtlı"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr "Tor aracılığıyla tcp{kind} üzerindeki erişim URL'si {url}"
|
||||
msgstr "Tor aracılığıyla tcp{kind} üzerinde erişim URL'si {url}"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr "Tcp{kind} üzerinde {url} adresinde Tor kullanımını onayla"
|
||||
msgstr "Tcp{kind} üzerinde {url} adresinde Tor kullanımını onaylama"
|
||||
|
||||
#: plinth/modules/tor/forms.py:31
|
||||
msgid ""
|
||||
@ -6474,7 +6582,7 @@ msgstr "SOCKS"
|
||||
msgid "A Tor SOCKS port is available on your %(box_name)s on TCP port 9050."
|
||||
msgstr ""
|
||||
"9050 nolu TCP bağlantı noktası üzerindeki %(box_name)s cihazınızda bir Tor "
|
||||
"SOCKS bağlantı noktası mevcuttur."
|
||||
"SOCKS bağlantı noktası kullanılabilir."
|
||||
|
||||
#: plinth/modules/tor/views.py:137 plinth/views.py:216
|
||||
msgid "Setting unchanged"
|
||||
@ -6554,11 +6662,11 @@ msgstr ""
|
||||
"Eğer sistemin yeniden başlatılması gerekli görülürse, saat 02:00'da otomatik "
|
||||
"olarak yapılır ve tüm uygulamalar kısa bir süre için kullanılamaz hale gelir."
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr "Güncelle"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
msgid "FreedomBox Updated"
|
||||
msgstr "FreedomBox Güncellendi"
|
||||
|
||||
@ -6726,22 +6834,38 @@ msgstr "Tüm hizmetlere ve sistem ayarlarına erişim"
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "LDAP \"{search_item}\" girişini denetleme"
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr "Kullanıcı adı alınmış veya ayrılmış."
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Geçerli bir kullanıcı adı girin."
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
"Zorunlu. 150 veya daha az karakter. Sadece İngilizce harfler, rakamlar ve "
|
||||
"@/./-/_ karakterleri."
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Password"
|
||||
msgid "Authorization Password"
|
||||
msgstr "Yönetici Parolası"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Add password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Parola ekle"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -6755,20 +6879,23 @@ msgstr ""
|
||||
"kullanıcılar tüm hizmetlere oturum açabilecektir. Ayrıca SSH aracılığıyla "
|
||||
"sisteme oturum açabilir ve yönetici yetkilerine (sudo) sahip olabilirler."
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "LDAP kullanıcısının oluşturulması başarısız oldu."
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to {group} group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "{group} grubuna yeni kullanıcı ekleme başarısız oldu."
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr "Yetkili SSH Anahtarları"
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
@ -6779,43 +6906,47 @@ msgstr ""
|
||||
"tane olmak üzere birden çok anahtar girebilirsiniz. Boş satırlar ve # ile "
|
||||
"başlayan satırlar yoksayılacaktır."
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr "LDAP kullanıcısının yeniden adlandırılması başarısız oldu."
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr "Kullanıcıyı gruptan kaldırma başarısız oldu."
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr "Kullanıcıyı gruba ekleme başarısız oldu."
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr "SSH anahtarları ayarlanamıyor."
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr "Kullanıcı durumunu değiştirme başarısız oldu."
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr "Sistemdeki tek yönetici silinemez."
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr "LDAP kullanıcı parolasının değiştirilmesi başarısız oldu."
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "Admin grubuna yeni kullanıcı ekleme başarısız oldu."
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to restrict console access."
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "Konsol erişimini kısıtlama başarısız oldu."
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "Kullanıcı hesabı oluşturuldu, şu an oturum açtınız"
|
||||
|
||||
@ -6828,15 +6959,16 @@ msgstr "<em>%(username)s</em> için Parola Değiştirin"
|
||||
msgid "Save Password"
|
||||
msgstr "Parolayı Kaydet"
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr "Kullanıcı Oluştur"
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr "Kullanıcıyı Sil"
|
||||
|
||||
@ -6854,7 +6986,7 @@ msgstr "%(username)s kullanıcısını sil"
|
||||
msgid "Administrator Account"
|
||||
msgstr "Yönetici Hesabı"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -6864,12 +6996,34 @@ msgstr ""
|
||||
"sonra değiştirilebilir. Bu kullanıcıya yönetici yetkileri verilecektir. "
|
||||
"Diğer kullanıcılar daha sonra eklenebilir."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr "Hesap Oluştur"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "Yönetici Hesabı"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
#, fuzzy
|
||||
#| msgid "Cannot delete the only administrator in the system."
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr "Sistemdeki tek yönetici silinemez."
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr "Kullanıcılar"
|
||||
|
||||
@ -6883,7 +7037,13 @@ msgstr "%(username)s kullanıcısını sil"
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr "%(username)s kullanıcısını düzenle"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Edit user %(username)s"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "%(username)s kullanıcısını düzenle"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
@ -6892,39 +7052,39 @@ msgstr ""
|
||||
"Parolayı değiştirmek için <a href='%(change_password_url)s'>parola "
|
||||
"değiştirme formunu</a> kullanın."
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr "Değişiklikleri Kaydet"
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr "%(username)s kullanıcısı oluşturuldu."
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr "%(username)s kullanıcısı güncellendi."
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr "Kullanıcıyı Düzenle"
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr "{user} kullanıcısı silindi."
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr "LDAP kullanıcısının silinmesi başarısız oldu."
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr "Parolayı Değiştir"
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr "Parola başarılı olarak değiştirildi."
|
||||
|
||||
@ -7370,28 +7530,28 @@ msgstr "Uygulamalar"
|
||||
msgid "System"
|
||||
msgstr "Sistem"
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "Parolayı değiştir"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr "Yeniden başlat"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr "Kapat"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "Oturumu kapat"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr "Dil seçin"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "Oturum aç"
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2019-01-04 17:06+0000\n"
|
||||
"Last-Translator: prolinux ukraine <prolinux@ukr.net>\n"
|
||||
"Language-Team: Ukrainian <https://hosted.weblate.org/projects/freedombox/"
|
||||
@ -425,6 +425,7 @@ msgstr "Видалити архів %(name)s"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "Надіслати"
|
||||
|
||||
@ -709,7 +710,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
msgid "Permissions"
|
||||
msgstr ""
|
||||
|
||||
@ -881,12 +882,125 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "Конфігурацію оновлено"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Enable application"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "Влючити застосунок"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Remove Repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "Видалити сховище"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
msgid "A library with this name already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Archive %(name)s"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "Видалити архів %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Remove Repository"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "Видалити сховище"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Remove Repository"
|
||||
msgid "Create Library"
|
||||
msgstr "Видалити сховище"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
msgid "No libraries available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, python-format
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository not found"
|
||||
msgid "Library created."
|
||||
msgstr "Сховище не знайдено"
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1085,11 +1199,13 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
msgid "TLS domain"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1411,7 +1527,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "Ім’я користувача"
|
||||
|
||||
@ -1877,12 +1993,6 @@ msgstr ""
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "Остаточно видалити цей архів?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
#, fuzzy
|
||||
#| msgid "Repository not found"
|
||||
@ -1905,16 +2015,6 @@ msgstr "Сховище не знайдено"
|
||||
msgid "Edit repository"
|
||||
msgstr "Видалити сховище"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr ""
|
||||
@ -2383,7 +2483,7 @@ msgid "Chat Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -3030,34 +3130,34 @@ msgstr ""
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
"desktop and Android devices are available."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
msgid "Voice Chat"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "SSH server password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "пароль SSH серверу"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3075,7 +3175,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
msgid "SuperUser password successfully updated."
|
||||
msgstr ""
|
||||
|
||||
@ -3471,7 +3571,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
|
||||
@ -3740,6 +3840,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4193,29 +4294,29 @@ msgid ""
|
||||
"HTTPS on ports other than 443 is known to cause problems."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -5588,24 +5689,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr ""
|
||||
@ -5794,11 +5895,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -5941,22 +6042,36 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Repository not found"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "Сховище не знайдено"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
msgid "Authorization Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "Показати пароль"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
msgid ""
|
||||
"Select which services should be available to the new user. The user will be "
|
||||
"able to log in to services that support single sign-on through LDAP, if they "
|
||||
@ -5965,63 +6080,66 @@ msgid ""
|
||||
"SSH and have administrative privileges (sudo)."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
"line. Blank lines and lines starting with # will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
msgid "Failed to change user status."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, python-brace-format
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr ""
|
||||
|
||||
@ -6034,15 +6152,16 @@ msgstr ""
|
||||
msgid "Save Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr ""
|
||||
|
||||
@ -6060,19 +6179,37 @@ msgstr ""
|
||||
msgid "Administrator Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
"Other users can be added later."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
msgid "An administrator account already exists."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
|
||||
@ -6086,46 +6223,51 @@ msgstr ""
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, python-format
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr ""
|
||||
|
||||
@ -6568,28 +6710,28 @@ msgstr ""
|
||||
msgid "System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
msgid "Restart"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
msgid "Shut down"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr ""
|
||||
|
||||
@ -6842,9 +6984,6 @@ msgstr ""
|
||||
#~ msgid "Restoring"
|
||||
#~ msgstr "Відновити"
|
||||
|
||||
#~ msgid "Enable application"
|
||||
#~ msgstr "Влючити застосунок"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Connection refused"
|
||||
#~ msgid "Custom Section"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Plinth\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-09-15 16:55-0400\n"
|
||||
"POT-Creation-Date: 2020-10-05 18:59-0400\n"
|
||||
"PO-Revision-Date: 2020-07-13 22:29+0000\n"
|
||||
"Last-Translator: Tang Zongxun <tangzongxun@hotmail.com>\n"
|
||||
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
|
||||
@ -409,6 +409,7 @@ msgstr "删除名为 %(name)s 的存档"
|
||||
#: plinth/modules/networks/templates/router_configuration_update.html:19
|
||||
#: plinth/modules/pagekite/templates/pagekite_custom_services.html:28
|
||||
#: plinth/modules/sharing/templates/sharing_add_edit.html:20
|
||||
#: plinth/templates/form.html:19
|
||||
msgid "Submit"
|
||||
msgstr "提交"
|
||||
|
||||
@ -719,7 +720,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:27
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:30
|
||||
#: plinth/modules/users/forms.py:84 plinth/modules/users/forms.py:198
|
||||
#: plinth/modules/users/forms.py:103 plinth/modules/users/forms.py:227
|
||||
#, fuzzy
|
||||
#| msgid "Transmission BitTorrent"
|
||||
msgid "Permissions"
|
||||
@ -903,12 +904,132 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/bind/views.py:71 plinth/modules/coturn/views.py:39
|
||||
#: plinth/modules/deluge/views.py:42 plinth/modules/dynamicdns/views.py:150
|
||||
#: plinth/modules/pagekite/forms.py:90 plinth/modules/quassel/views.py:29
|
||||
#: plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/mumble/views.py:28 plinth/modules/pagekite/forms.py:90
|
||||
#: plinth/modules/quassel/views.py:29 plinth/modules/shadowsocks/views.py:59
|
||||
#: plinth/modules/transmission/views.py:47
|
||||
msgid "Configuration updated"
|
||||
msgstr "配置已更新"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:30
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"calibre server provides online access to your e-book collection. You can "
|
||||
"store your e-books on your {box_name}, read them online or from any of your "
|
||||
"devices."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:33
|
||||
msgid ""
|
||||
"You can organize your e-books, extract and edit their metadata, and perform "
|
||||
"advanced search. calibre can import, export, or convert across a wide range "
|
||||
"of formats to make e-books ready for reading on any device. It also provides "
|
||||
"an online web reader. It remembers your last read location, bookmarks, and "
|
||||
"highlighted text. Content distribution using OPDS is currently not supported."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:39
|
||||
msgid ""
|
||||
"Only users belonging to <em>calibre</em> group will be able to access the "
|
||||
"app. All users with access can use all the libraries."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:57
|
||||
#, fuzzy
|
||||
#| msgid "Install this application?"
|
||||
msgid "Administer calibre application"
|
||||
msgstr "安装此应用程序?"
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:60 plinth/modules/calibre/manifest.py:9
|
||||
msgid "calibre"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/__init__.py:61
|
||||
msgid "E-book Library"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/forms.py:18
|
||||
#, fuzzy
|
||||
#| msgid "Create new repository"
|
||||
msgid "Name of the new library"
|
||||
msgstr "创建新存储库"
|
||||
|
||||
#: plinth/modules/calibre/forms.py:27
|
||||
#, fuzzy
|
||||
#| msgid "This service already exists"
|
||||
msgid "A library with this name already exists."
|
||||
msgstr "此服务已存在"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete Wiki or Blog <em>%(name)s</em>"
|
||||
msgid "Delete calibre Library <em>%(name)s</em>"
|
||||
msgstr "删除 wiki 页面或博客 <em> %(name)s </em>"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:17
|
||||
msgid ""
|
||||
"Delete this library permanently? All stored e-books and saved data will be "
|
||||
"lost."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre-delete-library.html:27
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "删除 %(name)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Create User"
|
||||
msgid "Manage Libraries"
|
||||
msgstr "创建用户"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:27
|
||||
#: plinth/modules/calibre/templates/calibre.html:29
|
||||
#, fuzzy
|
||||
#| msgid "Create User"
|
||||
msgid "Create Library"
|
||||
msgstr "创建用户"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:36
|
||||
#, fuzzy
|
||||
#| msgid "Tor relay port available"
|
||||
msgid "No libraries available."
|
||||
msgstr "Tor 中继端口可用"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:43
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Delete site %(site)s"
|
||||
msgid "Delete library %(library)s"
|
||||
msgstr "删除站点 %(site)s"
|
||||
|
||||
#: plinth/modules/calibre/templates/calibre.html:49
|
||||
#, python-format
|
||||
msgid "Go to library %(library)s"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/calibre/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Repository removed."
|
||||
msgid "Library created."
|
||||
msgstr "储存库被移除。"
|
||||
|
||||
#: plinth/modules/calibre/views.py:50
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred during configuration."
|
||||
msgid "An error occurred while creating the library."
|
||||
msgstr "在配置过程中出错。"
|
||||
|
||||
#: plinth/modules/calibre/views.py:64 plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} 已删除。"
|
||||
|
||||
#: plinth/modules/calibre/views.py:68 plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "不能删除 {name}:{error}"
|
||||
|
||||
#: plinth/modules/cockpit/__init__.py:32
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
@ -1128,13 +1249,15 @@ msgstr ""
|
||||
msgid "VoIP Helper"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/quassel/forms.py:22
|
||||
#: plinth/modules/coturn/forms.py:22 plinth/modules/mumble/forms.py:21
|
||||
#: plinth/modules/quassel/forms.py:22
|
||||
#, fuzzy
|
||||
#| msgid "Subdomain"
|
||||
msgid "TLS domain"
|
||||
msgstr "子域"
|
||||
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/quassel/forms.py:24
|
||||
#: plinth/modules/coturn/forms.py:24 plinth/modules/mumble/forms.py:23
|
||||
#: plinth/modules/quassel/forms.py:24
|
||||
msgid ""
|
||||
"Select a domain to use TLS with. If the list is empty, please configure at "
|
||||
"least one domain with certificates."
|
||||
@ -1493,7 +1616,7 @@ msgid "Use HTTP basic authentication"
|
||||
msgstr "使用 HTTP 基本身份验证"
|
||||
|
||||
#: plinth/modules/dynamicdns/forms.py:103 plinth/modules/networks/forms.py:204
|
||||
#: plinth/modules/users/forms.py:68
|
||||
#: plinth/modules/users/forms.py:69
|
||||
msgid "Username"
|
||||
msgstr "用户名"
|
||||
|
||||
@ -2011,12 +2134,6 @@ msgstr "删除 wiki 页面或博客 <em> %(name)s </em>"
|
||||
msgid "Delete this repository permanently?"
|
||||
msgstr "永久删除此快照?"
|
||||
|
||||
#: plinth/modules/gitweb/templates/gitweb_delete.html:27
|
||||
#: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:29
|
||||
#, python-format
|
||||
msgid "Delete %(name)s"
|
||||
msgstr "删除 %(name)s"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:45
|
||||
#, fuzzy
|
||||
#| msgid "Repository removed."
|
||||
@ -2041,16 +2158,6 @@ msgstr "储存库被移除。"
|
||||
msgid "Edit repository"
|
||||
msgstr "创建用户"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:138
|
||||
#, python-brace-format
|
||||
msgid "{name} deleted."
|
||||
msgstr "{name} 已删除。"
|
||||
|
||||
#: plinth/modules/gitweb/views.py:142
|
||||
#, python-brace-format
|
||||
msgid "Could not delete {name}: {error}"
|
||||
msgstr "不能删除 {name}:{error}"
|
||||
|
||||
#: plinth/modules/help/__init__.py:33
|
||||
msgid "Documentation"
|
||||
msgstr "文档"
|
||||
@ -2601,7 +2708,7 @@ msgstr ""
|
||||
"(JSXC)"
|
||||
|
||||
#: plinth/modules/jsxc/templates/jsxc_launch.html:118
|
||||
#: plinth/templates/base.html:246
|
||||
#: plinth/templates/base.html:248
|
||||
msgid "JavaScript license information"
|
||||
msgstr ""
|
||||
|
||||
@ -3358,13 +3465,13 @@ msgstr "已发布到密钥服务器的密钥。"
|
||||
msgid "Error occurred while publishing key."
|
||||
msgstr "发布密钥时出现错误。"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:24
|
||||
#: plinth/modules/mumble/__init__.py:31
|
||||
msgid ""
|
||||
"Mumble is an open source, low-latency, encrypted, high quality voice chat "
|
||||
"software."
|
||||
msgstr "Mumble 是一个开放源码的低延迟、 加密、 高品质语音聊天软件。"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:26
|
||||
#: plinth/modules/mumble/__init__.py:33
|
||||
msgid ""
|
||||
"You can connect to your Mumble server on the regular Mumble port 64738. <a "
|
||||
"href=\"http://mumble.info\">Clients</a> to connect to Mumble from your "
|
||||
@ -3373,11 +3480,11 @@ msgstr ""
|
||||
"您可以使用常规端口 64738 连接到您的 Mumble 服务器。您可以从桌面和 Android 设"
|
||||
"备连接 Mumble <a href=\"http://mumble.info\">客户端</a>。"
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:43 plinth/modules/mumble/manifest.py:12
|
||||
#: plinth/modules/mumble/__init__.py:50 plinth/modules/mumble/manifest.py:12
|
||||
msgid "Mumble"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/__init__.py:44
|
||||
#: plinth/modules/mumble/__init__.py:51
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Voice Chat \n"
|
||||
@ -3387,13 +3494,13 @@ msgstr ""
|
||||
"语音聊天\n"
|
||||
"(Mumble)"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:14
|
||||
#: plinth/modules/mumble/forms.py:30
|
||||
#, fuzzy
|
||||
#| msgid "SSH server password"
|
||||
msgid "Set SuperUser Password"
|
||||
msgstr "SSH 服务器密码"
|
||||
|
||||
#: plinth/modules/mumble/forms.py:17
|
||||
#: plinth/modules/mumble/forms.py:33
|
||||
msgid ""
|
||||
"Optional. Leave this field blank to keep the current password. SuperUser "
|
||||
"password can be used to manage permissions in Mumble."
|
||||
@ -3411,7 +3518,7 @@ msgstr ""
|
||||
msgid "Mumla"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/mumble/views.py:27
|
||||
#: plinth/modules/mumble/views.py:39
|
||||
#, fuzzy
|
||||
#| msgid "Password changed successfully."
|
||||
msgid "SuperUser password successfully updated."
|
||||
@ -3826,7 +3933,7 @@ msgstr "编辑连接"
|
||||
#: plinth/modules/networks/templates/connection_show.html:28
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_client.html:68
|
||||
#: plinth/modules/wireguard/templates/wireguard_show_server.html:69
|
||||
#: plinth/templates/base.html:160 plinth/templates/base.html:161
|
||||
#: plinth/templates/base.html:161 plinth/templates/base.html:162
|
||||
msgid "Edit"
|
||||
msgstr "編輯"
|
||||
|
||||
@ -4099,6 +4206,7 @@ msgstr ""
|
||||
#: plinth/modules/networks/templates/internet_connectivity_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/network_topology_firstboot.html:19
|
||||
#: plinth/modules/networks/templates/router_configuration_firstboot.html:19
|
||||
#: plinth/modules/users/templates/users_firstboot.html:63
|
||||
msgid "Skip this step"
|
||||
msgstr ""
|
||||
|
||||
@ -4615,29 +4723,29 @@ msgstr ""
|
||||
"<b>警告:</b><br>您的 PageKite 前端服务器可能不支持您在此处定义的所有协议/端"
|
||||
"口组合。例如,已知443以外的端口上的HTTPS会导致问题。"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:42
|
||||
#: plinth/modules/pagekite/utils.py:45
|
||||
msgid "Web Server (HTTP)"
|
||||
msgstr "Web 服务器(HTTP)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:44
|
||||
#: plinth/modules/pagekite/utils.py:47
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"http://{0}\">http://{0}</a>"
|
||||
msgstr "网站可从 <a href=\"http://{0}\"> http://{0}</a> 访问"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:56
|
||||
#: plinth/modules/pagekite/utils.py:59
|
||||
msgid "Web Server (HTTPS)"
|
||||
msgstr "Web 服务器(HTTPS)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:58
|
||||
#: plinth/modules/pagekite/utils.py:61
|
||||
#, python-brace-format
|
||||
msgid "Site will be available at <a href=\"https://{0}\">https://{0}</a>"
|
||||
msgstr "网站可从 <a href=\"https://{0}\"> https://{0}</a> 访问"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:70
|
||||
#: plinth/modules/pagekite/utils.py:73
|
||||
msgid "Secure Shell (SSH)"
|
||||
msgstr "安全 Shell(SSH)"
|
||||
|
||||
#: plinth/modules/pagekite/utils.py:72
|
||||
#: plinth/modules/pagekite/utils.py:75
|
||||
msgid ""
|
||||
"See SSH client setup <a href=\"https://pagekite.net/wiki/Howto/"
|
||||
"SshOverPageKite/\">instructions</a>"
|
||||
@ -6243,24 +6351,24 @@ msgstr ""
|
||||
msgid "Tor Bridge Relay"
|
||||
msgstr "Tor 网桥中继"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:110
|
||||
#: plinth/modules/tor/__init__.py:112
|
||||
msgid "Tor relay port available"
|
||||
msgstr "Tor 中继端口可用"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:120
|
||||
#: plinth/modules/tor/__init__.py:122
|
||||
msgid "Obfs3 transport registered"
|
||||
msgstr "已注册 Obfs3 传输"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:130
|
||||
#: plinth/modules/tor/__init__.py:132
|
||||
msgid "Obfs4 transport registered"
|
||||
msgstr "已注册 Obfs4 传输"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:199
|
||||
#: plinth/modules/tor/__init__.py:201
|
||||
#, python-brace-format
|
||||
msgid "Access URL {url} on tcp{kind} via Tor"
|
||||
msgstr "在 tcp{kind} 上通过 Tor 访问 {url}"
|
||||
|
||||
#: plinth/modules/tor/__init__.py:210
|
||||
#: plinth/modules/tor/__init__.py:212
|
||||
#, python-brace-format
|
||||
msgid "Confirm Tor usage at {url} on tcp{kind}"
|
||||
msgstr "确认使用 Tor 通过 tcp{kind} 访问 {url}"
|
||||
@ -6484,11 +6592,11 @@ msgid ""
|
||||
"automatically at 02:00 causing all apps to be unavailable briefly."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:64 plinth/templates/setup.html:62
|
||||
#: plinth/modules/upgrades/__init__.py:66 plinth/templates/setup.html:62
|
||||
msgid "Update"
|
||||
msgstr "更新"
|
||||
|
||||
#: plinth/modules/upgrades/__init__.py:102
|
||||
#: plinth/modules/upgrades/__init__.py:106
|
||||
#, fuzzy
|
||||
#| msgid "FreedomBox"
|
||||
msgid "FreedomBox Updated"
|
||||
@ -6647,22 +6755,38 @@ msgstr ""
|
||||
msgid "Check LDAP entry \"{search_item}\""
|
||||
msgstr "请检查 LDAP 条目“{search_item}”"
|
||||
|
||||
#: plinth/modules/users/forms.py:36
|
||||
#: plinth/modules/users/forms.py:37
|
||||
msgid "Username is taken or is reserved."
|
||||
msgstr "用户名已经占用或保留。"
|
||||
|
||||
#: plinth/modules/users/forms.py:63
|
||||
#: plinth/modules/users/forms.py:64
|
||||
#, fuzzy
|
||||
#| msgid "Invalid server name"
|
||||
msgid "Enter a valid username."
|
||||
msgstr "服务器名称无效"
|
||||
|
||||
#: plinth/modules/users/forms.py:70
|
||||
#: plinth/modules/users/forms.py:71
|
||||
msgid ""
|
||||
"Required. 150 characters or fewer. English letters, digits and @/./-/_ only."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:86
|
||||
#: plinth/modules/users/forms.py:79
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "Authorization Password"
|
||||
msgstr "管理员帐户"
|
||||
|
||||
#: plinth/modules/users/forms.py:80
|
||||
msgid "Enter your current password to authorize account modifications."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:88
|
||||
#, fuzzy
|
||||
#| msgid "Show password"
|
||||
msgid "Invalid password."
|
||||
msgstr "显示密码"
|
||||
|
||||
#: plinth/modules/users/forms.py:105
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Select which services should be available to the new user. The user will "
|
||||
@ -6681,20 +6805,23 @@ msgstr ""
|
||||
"支持单一登录的服务。<br/><br/>管理员(admin)组中的用户将能够登录所有服务。他"
|
||||
"们还可以通过 SSH 登录到系统并具有管理权限(sudo)。"
|
||||
|
||||
#: plinth/modules/users/forms.py:124 plinth/modules/users/forms.py:347
|
||||
msgid "Creating LDAP user failed."
|
||||
#: plinth/modules/users/forms.py:150 plinth/modules/users/forms.py:394
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Creating LDAP user failed."
|
||||
msgid "Creating LDAP user failed: {error}"
|
||||
msgstr "创建 LDAP 用户失败。"
|
||||
|
||||
#: plinth/modules/users/forms.py:135
|
||||
#, python-brace-format
|
||||
msgid "Failed to add new user to {group} group."
|
||||
#: plinth/modules/users/forms.py:163
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to {group} group."
|
||||
msgid "Failed to add new user to {group} group: {error}"
|
||||
msgstr "未能将新用户添加到 {group}。"
|
||||
|
||||
#: plinth/modules/users/forms.py:149
|
||||
#: plinth/modules/users/forms.py:177
|
||||
msgid "Authorized SSH Keys"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:151
|
||||
#: plinth/modules/users/forms.py:179
|
||||
msgid ""
|
||||
"Setting an SSH public key will allow this user to securely log in to the "
|
||||
"system without using a password. You may enter multiple keys, one on each "
|
||||
@ -6703,45 +6830,49 @@ msgstr ""
|
||||
"设置 SSH 公钥将允许此用户安全地登录到系统不使用密码。您可以输入多个密钥,每行"
|
||||
"一个。将忽略空行和以 # 开头的行。"
|
||||
|
||||
#: plinth/modules/users/forms.py:235
|
||||
#: plinth/modules/users/forms.py:266
|
||||
msgid "Renaming LDAP user failed."
|
||||
msgstr "重命名 LDAP 用户失败。"
|
||||
|
||||
#: plinth/modules/users/forms.py:247
|
||||
#: plinth/modules/users/forms.py:279
|
||||
msgid "Failed to remove user from group."
|
||||
msgstr "无法从组中删除用户。"
|
||||
|
||||
#: plinth/modules/users/forms.py:258
|
||||
#: plinth/modules/users/forms.py:291
|
||||
msgid "Failed to add user to group."
|
||||
msgstr "无法将用户添加到组。"
|
||||
|
||||
#: plinth/modules/users/forms.py:267
|
||||
#: plinth/modules/users/forms.py:304
|
||||
msgid "Unable to set SSH keys."
|
||||
msgstr "不能设置 SSH 密钥。"
|
||||
|
||||
#: plinth/modules/users/forms.py:282
|
||||
#: plinth/modules/users/forms.py:322
|
||||
#, fuzzy
|
||||
#| msgid "Failed to add user to group."
|
||||
msgid "Failed to change user status."
|
||||
msgstr "无法将用户添加到组。"
|
||||
|
||||
#: plinth/modules/users/forms.py:290
|
||||
#: plinth/modules/users/forms.py:330
|
||||
msgid "Cannot delete the only administrator in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/forms.py:321
|
||||
#: plinth/modules/users/forms.py:365
|
||||
msgid "Changing LDAP user password failed."
|
||||
msgstr "更改 LDAP 用户密码失败。"
|
||||
|
||||
#: plinth/modules/users/forms.py:356
|
||||
msgid "Failed to add new user to admin group."
|
||||
#: plinth/modules/users/forms.py:405
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to add new user to admin group."
|
||||
msgid "Failed to add new user to admin group: {error}"
|
||||
msgstr "未能将新用户添加到管理员组。"
|
||||
|
||||
#: plinth/modules/users/forms.py:373
|
||||
msgid "Failed to restrict console access."
|
||||
#: plinth/modules/users/forms.py:424
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Failed to restrict console access."
|
||||
msgid "Failed to restrict console access: {error}"
|
||||
msgstr "限制命令行访问失败。"
|
||||
|
||||
#: plinth/modules/users/forms.py:385
|
||||
#: plinth/modules/users/forms.py:437
|
||||
msgid "User account created, you are now logged in"
|
||||
msgstr "用户帐户已创建,您现在可以登录"
|
||||
|
||||
@ -6754,15 +6885,16 @@ msgstr "为<em>%(username)s</em>更改密码"
|
||||
msgid "Save Password"
|
||||
msgstr "保存密码"
|
||||
|
||||
#: plinth/modules/users/templates/users_create.html:17
|
||||
#: plinth/modules/users/templates/users_create.html:11
|
||||
#: plinth/modules/users/templates/users_create.html:19
|
||||
#: plinth/modules/users/templates/users_list.html:27
|
||||
#: plinth/modules/users/templates/users_list.html:29
|
||||
#: plinth/modules/users/views.py:42
|
||||
#: plinth/modules/users/views.py:44
|
||||
msgid "Create User"
|
||||
msgstr "创建用户"
|
||||
|
||||
#: plinth/modules/users/templates/users_delete.html:11
|
||||
#: plinth/modules/users/views.py:120
|
||||
#: plinth/modules/users/views.py:122
|
||||
msgid "Delete User"
|
||||
msgstr "删除用户"
|
||||
|
||||
@ -6780,7 +6912,7 @@ msgstr "删除 %(username)s"
|
||||
msgid "Administrator Account"
|
||||
msgstr "管理员帐户"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:14
|
||||
#: plinth/modules/users/templates/users_firstboot.html:15
|
||||
msgid ""
|
||||
"Choose a username and password to access this web interface. The password "
|
||||
"can be changed later. This user will be granted administrative privileges. "
|
||||
@ -6789,12 +6921,32 @@ msgstr ""
|
||||
"选择一个用户名和密码才能访问此 web 界面。以后可以更改密码。此用户将被授予管理"
|
||||
"权限。其他用户可以在以后添加。"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:27
|
||||
#: plinth/modules/users/templates/users_firstboot.html:28
|
||||
msgid "Create Account"
|
||||
msgstr "创建帐户"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:32
|
||||
#, fuzzy
|
||||
#| msgid "Administrator Account"
|
||||
msgid "An administrator account already exists."
|
||||
msgstr "管理员帐户"
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:38
|
||||
msgid "The following administrator accounts exist in the system."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_firstboot.html:50
|
||||
#, python-format, python-brace-format
|
||||
msgid ""
|
||||
"Delete these accounts from command line and refresh the page to create an "
|
||||
"account that is usable with %(box_name)s. On the command line run the "
|
||||
"command 'echo \"{password}\" | /usr/share/plinth/actions/users remove-user "
|
||||
"{username}'. If an account is already usable with %(box_name)s, skip this "
|
||||
"step."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_list.html:23
|
||||
#: plinth/modules/users/views.py:59
|
||||
#: plinth/modules/users/views.py:61
|
||||
msgid "Users"
|
||||
msgstr "用户"
|
||||
|
||||
@ -6808,46 +6960,52 @@ msgstr "删除用户 %(username)s"
|
||||
msgid "Edit user %(username)s"
|
||||
msgstr "编辑用户 %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:15
|
||||
#: plinth/modules/users/templates/users_update.html:11
|
||||
#, fuzzy, python-format
|
||||
#| msgid "Edit user %(username)s"
|
||||
msgid "Edit User <em>%(username)s</em>"
|
||||
msgstr "编辑用户 %(username)s"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:19
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Use the <a href='%(change_password_url)s'>change password form </a> to "
|
||||
"change the password."
|
||||
msgstr "使用 <a href='%(change_password_url)s'>更改密码窗口</a> 更改密码。"
|
||||
|
||||
#: plinth/modules/users/templates/users_update.html:27
|
||||
#: plinth/modules/users/templates/users_update.html:31
|
||||
#: plinth/templates/language-selection.html:17
|
||||
msgid "Save Changes"
|
||||
msgstr "保存更改"
|
||||
|
||||
#: plinth/modules/users/views.py:40
|
||||
#: plinth/modules/users/views.py:42
|
||||
#, python-format
|
||||
msgid "User %(username)s created."
|
||||
msgstr "用户 %(username)s 已创建。"
|
||||
|
||||
#: plinth/modules/users/views.py:74
|
||||
#: plinth/modules/users/views.py:76
|
||||
#, python-format
|
||||
msgid "User %(username)s updated."
|
||||
msgstr "用户 %(username)s 已更新。"
|
||||
|
||||
#: plinth/modules/users/views.py:75
|
||||
#: plinth/modules/users/views.py:77
|
||||
msgid "Edit User"
|
||||
msgstr "编辑用户"
|
||||
|
||||
#: plinth/modules/users/views.py:130
|
||||
#: plinth/modules/users/views.py:132
|
||||
#, python-brace-format
|
||||
msgid "User {user} deleted."
|
||||
msgstr "用户 {user} 已删除。"
|
||||
|
||||
#: plinth/modules/users/views.py:137
|
||||
#: plinth/modules/users/views.py:139
|
||||
msgid "Deleting LDAP user failed."
|
||||
msgstr "删除 LDAP 用户失败。"
|
||||
|
||||
#: plinth/modules/users/views.py:146
|
||||
#: plinth/modules/users/views.py:148
|
||||
msgid "Change Password"
|
||||
msgstr "更改密码"
|
||||
|
||||
#: plinth/modules/users/views.py:147
|
||||
#: plinth/modules/users/views.py:149
|
||||
msgid "Password changed successfully."
|
||||
msgstr "已成功更改密码。"
|
||||
|
||||
@ -7351,34 +7509,34 @@ msgstr "应用程序"
|
||||
msgid "System"
|
||||
msgstr "系统"
|
||||
|
||||
#: plinth/templates/base.html:166 plinth/templates/base.html:167
|
||||
#: plinth/templates/base.html:168 plinth/templates/base.html:169
|
||||
msgid "Change password"
|
||||
msgstr "更改密码"
|
||||
|
||||
#: plinth/templates/base.html:174 plinth/templates/base.html:175
|
||||
#: plinth/templates/base.html:176 plinth/templates/base.html:177
|
||||
#, fuzzy
|
||||
#| msgid "Restart Now"
|
||||
msgid "Restart"
|
||||
msgstr "现在重新启动"
|
||||
|
||||
#: plinth/templates/base.html:180 plinth/templates/base.html:181
|
||||
#: plinth/templates/base.html:182 plinth/templates/base.html:183
|
||||
#, fuzzy
|
||||
#| msgid "Shut Down Now"
|
||||
msgid "Shut down"
|
||||
msgstr "现在关闭"
|
||||
|
||||
#: plinth/templates/base.html:188 plinth/templates/base.html:189
|
||||
#: plinth/templates/base.html:213 plinth/templates/base.html:215
|
||||
#: plinth/templates/base.html:190 plinth/templates/base.html:191
|
||||
#: plinth/templates/base.html:215 plinth/templates/base.html:217
|
||||
msgid "Log out"
|
||||
msgstr "登出"
|
||||
|
||||
#: plinth/templates/base.html:197 plinth/templates/base.html:200
|
||||
#: plinth/templates/base.html:199 plinth/templates/base.html:202
|
||||
#, fuzzy
|
||||
#| msgid "Language"
|
||||
msgid "Select language"
|
||||
msgstr "语言"
|
||||
|
||||
#: plinth/templates/base.html:205 plinth/templates/base.html:207
|
||||
#: plinth/templates/base.html:207 plinth/templates/base.html:209
|
||||
msgid "Log in"
|
||||
msgstr "登录"
|
||||
|
||||
|
||||
@ -66,12 +66,13 @@ def load_modules():
|
||||
except KeyError:
|
||||
logger.error('Unsatified dependency for module - %s', module_name)
|
||||
|
||||
logger.info('Module load order - %s', ordered_modules)
|
||||
logger.info('Initializing apps - %s', ', '.join(ordered_modules))
|
||||
|
||||
for module_name in ordered_modules:
|
||||
_initialize_module(module_name, modules[module_name])
|
||||
loaded_modules[module_name] = modules[module_name]
|
||||
|
||||
logger.debug('App initialization completed.')
|
||||
post_module_loading.send_robust(sender="module_loader")
|
||||
|
||||
|
||||
@ -134,8 +135,6 @@ def _initialize_module(module_name, module):
|
||||
if module.setup_helper.get_state(
|
||||
) != 'needs-setup' and module.app.is_enabled():
|
||||
module.app.set_enabled(True)
|
||||
|
||||
logger.debug("Initialized %s", module.__name__)
|
||||
except Exception as exception:
|
||||
logger.exception('Exception while running init for %s: %s', module,
|
||||
exception)
|
||||
|
||||
@ -15,7 +15,7 @@ from plinth.modules.firewall.components import Firewall
|
||||
|
||||
from .manifest import backup, clients # noqa, pylint: disable=unused-import
|
||||
|
||||
version = 1
|
||||
version = 2
|
||||
|
||||
managed_packages = ['bepasty', 'uwsgi', 'uwsgi-plugin-python3']
|
||||
|
||||
@ -98,6 +98,9 @@ def setup(helper, old_version=None):
|
||||
helper.call('post', actions.superuser_run, 'bepasty',
|
||||
['setup', '--domain-name', 'freedombox.local'])
|
||||
helper.call('post', app.enable)
|
||||
if old_version == 1 and not get_configuration().get('DEFAULT_PERMISSIONS'):
|
||||
# Upgrade to a better default only if user hasn't changed the value.
|
||||
set_default_permissions('read')
|
||||
|
||||
|
||||
def get_configuration():
|
||||
|
||||
124
plinth/modules/calibre/__init__.py
Normal file
124
plinth/modules/calibre/__init__.py
Normal file
@ -0,0 +1,124 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""
|
||||
FreedomBox app for calibre e-book library.
|
||||
"""
|
||||
|
||||
import json
|
||||
import re
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from plinth import actions
|
||||
from plinth import app as app_module
|
||||
from plinth import cfg, frontpage, menu
|
||||
from plinth.daemon import Daemon
|
||||
from plinth.modules.apache.components import Webserver
|
||||
from plinth.modules.firewall.components import Firewall
|
||||
from plinth.modules.users.components import UsersAndGroups
|
||||
from plinth.utils import format_lazy
|
||||
|
||||
from .manifest import backup, clients # noqa, pylint: disable=unused-import
|
||||
|
||||
version = 1
|
||||
|
||||
managed_services = ['calibre-server-freedombox']
|
||||
|
||||
managed_packages = ['calibre']
|
||||
|
||||
_description = [
|
||||
format_lazy(
|
||||
_('calibre server provides online access to your e-book collection. '
|
||||
'You can store your e-books on your {box_name}, read them online or '
|
||||
'from any of your devices.'), box_name=_(cfg.box_name)),
|
||||
_('You can organize your e-books, extract and edit their metadata, and '
|
||||
'perform advanced search. calibre can import, export, or convert across '
|
||||
'a wide range of formats to make e-books ready for reading on any '
|
||||
'device. It also provides an online web reader. It remembers your '
|
||||
'last read location, bookmarks, and highlighted text. Content '
|
||||
'distribution using OPDS is currently not supported.'),
|
||||
_('Only users belonging to <em>calibre</em> group will be able to access '
|
||||
'the app. All users with access can use all the libraries.')
|
||||
]
|
||||
|
||||
app = None
|
||||
|
||||
LIBRARY_NAME_PATTERN = r'[a-zA-Z0-9 _-]+'
|
||||
|
||||
|
||||
class CalibreApp(app_module.App):
|
||||
"""FreedomBox app for calibre."""
|
||||
|
||||
app_id = 'calibre'
|
||||
|
||||
def __init__(self):
|
||||
"""Create components for the app."""
|
||||
super().__init__()
|
||||
|
||||
groups = {'calibre': _('Administer calibre application')}
|
||||
|
||||
info = app_module.Info(app_id=self.app_id, version=version,
|
||||
name=_('calibre'), icon_filename='calibre',
|
||||
short_description=_('E-book Library'),
|
||||
description=_description, manual_page='calibre',
|
||||
clients=clients)
|
||||
self.add(info)
|
||||
|
||||
menu_item = menu.Menu('menu-calibre', info.name,
|
||||
info.short_description, info.icon_filename,
|
||||
'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,
|
||||
login_required=True,
|
||||
allowed_groups=list(groups))
|
||||
self.add(shortcut)
|
||||
|
||||
firewall = Firewall('firewall-calibre', info.name,
|
||||
ports=['http', 'https'], is_external=True)
|
||||
self.add(firewall)
|
||||
|
||||
webserver = Webserver('webserver-calibre', 'calibre-freedombox',
|
||||
urls=['https://{host}/calibre'])
|
||||
self.add(webserver)
|
||||
|
||||
daemon = Daemon('daemon-calibre', managed_services[0],
|
||||
listen_ports=[(8844, 'tcp4')])
|
||||
self.add(daemon)
|
||||
|
||||
users_and_groups = UsersAndGroups('users-and-groups-calibre',
|
||||
reserved_usernames=['calibre'],
|
||||
groups=groups)
|
||||
self.add(users_and_groups)
|
||||
|
||||
|
||||
def setup(helper, old_version=None):
|
||||
"""Install and configure the module."""
|
||||
helper.install(managed_packages)
|
||||
helper.call('post', app.enable)
|
||||
|
||||
|
||||
def validate_library_name(library_name):
|
||||
"""Raise exception if library name does not fit the accepted pattern."""
|
||||
if not re.fullmatch(r'[A-Za-z0-9_.-]+', library_name):
|
||||
raise Exception('Invalid library name')
|
||||
|
||||
|
||||
def list_libraries():
|
||||
"""Return a list of libraries."""
|
||||
output = actions.superuser_run('calibre', ['list-libraries'])
|
||||
return json.loads(output)['libraries']
|
||||
|
||||
|
||||
def create_library(name):
|
||||
"""Create an empty library."""
|
||||
actions.superuser_run('calibre', ['create-library', name])
|
||||
actions.superuser_run('service', ['try-restart', managed_services[0]])
|
||||
|
||||
|
||||
def delete_library(name):
|
||||
"""Delete a library and its contents."""
|
||||
actions.superuser_run('calibre', ['delete-library', name])
|
||||
actions.superuser_run('service', ['try-restart', managed_services[0]])
|
||||
@ -0,0 +1,10 @@
|
||||
##
|
||||
## On all sites, provide calibre web interface on a path: /calibre
|
||||
##
|
||||
<Location /calibre>
|
||||
ProxyPass http://localhost:8844/calibre
|
||||
Include includes/freedombox-single-sign-on.conf
|
||||
<IfModule mod_auth_pubtkt.c>
|
||||
TKTAuthToken "admin" "calibre"
|
||||
</IfModule>
|
||||
</Location>
|
||||
@ -0,0 +1 @@
|
||||
plinth.modules.calibre
|
||||
@ -0,0 +1,46 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
[Unit]
|
||||
Description=calibre Content Server
|
||||
Documentation=man:calibre-server(1)
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SETUID CAP_SETGID CAP_SETPCAP CAP_CHOWN CAP_FSETID CAP_SETFCAP CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER CAP_IPC_OWNER CAP_NET_ADMIN CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE CAP_KILL CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_LINUX_IMMUTABLE CAP_IPC_LOCK CAP_SYS_CHROOT CAP_BLOCK_SUSPEND CAP_LEASE CAP_SYS_PACCT CAP_SYS_TTY_CONFIG CAP_SYS_BOOT CAP_MAC_ADMIN CAP_MAC_OVERRIDE CAP_SYS_NICE CAP_SYS_RESOURCE
|
||||
DevicePolicy=closed
|
||||
Environment=HOME="/var/lib/calibre-server-freedombox"
|
||||
Environment=DEFAULT_LIBRARY="/var/lib/calibre-server-freedombox/libraries/Library"
|
||||
Environment=ARGS="--listen-on 127.0.0.1 --url-prefix /calibre --port 8844 --enable-local-write --disable-auth"
|
||||
ExecStartPre=sh -e -c "files=$$(ls ${HOME}/libraries/*/metadata.db 2>/dev/null || true); [ \"x$${files}\" = \"x\" ] && (mkdir -p \"${DEFAULT_LIBRARY}\" && calibredb --with-library=\"${DEFAULT_LIBRARY}\" list_categories > /dev/null) || true"
|
||||
ExecStart=sh -e -c "files=${HOME}/libraries/*/metadata.db; libraries=$$(dirname $${files}) ; exec /usr/bin/calibre-server $ARGS $${libraries}"
|
||||
Restart=on-failure
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
DynamicUser=yes
|
||||
LockPersonality=yes
|
||||
NoNewPrivileges=yes
|
||||
PrivateDevices=yes
|
||||
PrivateMounts=yes
|
||||
PrivateTmp=yes
|
||||
PrivateUsers=yes
|
||||
ProtectControlGroups=yes
|
||||
ProtectClock=yes
|
||||
ProtectHome=yes
|
||||
ProtectHostname=yes
|
||||
ProtectKernelLogs=yes
|
||||
ProtectKernelModules=yes
|
||||
ProtectKernelTunables=yes
|
||||
ProtectSystem=strict
|
||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK
|
||||
RestrictNamespaces=yes
|
||||
RestrictRealtime=yes
|
||||
RestrictSUIDSGID=yes
|
||||
StateDirectory=calibre-server-freedombox
|
||||
SystemCallArchitectures=native
|
||||
SystemCallFilter=@system-service
|
||||
SystemCallFilter=~@resources
|
||||
SystemCallFilter=~@privileged
|
||||
SystemCallErrorNumber=EPERM
|
||||
Type=simple
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
29
plinth/modules/calibre/forms.py
Normal file
29
plinth/modules/calibre/forms.py
Normal file
@ -0,0 +1,29 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""
|
||||
Django form for configuring calibre.
|
||||
"""
|
||||
|
||||
from django import forms
|
||||
from django.core import validators
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from plinth.modules import calibre
|
||||
|
||||
|
||||
class CreateLibraryForm(forms.Form):
|
||||
"""Form to create an empty library."""
|
||||
|
||||
name = forms.CharField(
|
||||
label=_('Name of the new library'), strip=True,
|
||||
validators=[validators.RegexValidator(r'^[A-Za-z0-9_.-]+$')])
|
||||
|
||||
def clean_name(self):
|
||||
"""Check if the library name is valid."""
|
||||
name = self.cleaned_data['name']
|
||||
|
||||
if name in calibre.list_libraries():
|
||||
raise ValidationError(
|
||||
_('A library with this name already exists.'))
|
||||
|
||||
return name
|
||||
21
plinth/modules/calibre/manifest.py
Normal file
21
plinth/modules/calibre/manifest.py
Normal file
@ -0,0 +1,21 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from plinth.clients import validate
|
||||
from plinth.modules.backups.api import validate as validate_backup
|
||||
|
||||
clients = validate([{
|
||||
'name': _('calibre'),
|
||||
'platforms': [{
|
||||
'type': 'web',
|
||||
'url': '/calibre/'
|
||||
}]
|
||||
}])
|
||||
|
||||
backup = validate_backup({
|
||||
'data': {
|
||||
'directories': ['/var/lib/private/calibre-server-freedombox/']
|
||||
},
|
||||
'services': ['calibre-server-freedombox']
|
||||
})
|
||||
30
plinth/modules/calibre/templates/calibre-delete-library.html
Normal file
30
plinth/modules/calibre/templates/calibre-delete-library.html
Normal file
@ -0,0 +1,30 @@
|
||||
{% extends "base.html" %}
|
||||
{% comment %}
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h3>
|
||||
{% blocktrans trimmed %}
|
||||
Delete calibre Library <em>{{ name }}</em>
|
||||
{% endblocktrans %}
|
||||
</h3>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Delete this library permanently? All stored e-books and saved data will be
|
||||
lost.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-md btn-danger"
|
||||
value="{% blocktrans %}Delete {{ name }}{% endblocktrans %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
59
plinth/modules/calibre/templates/calibre.html
Normal file
59
plinth/modules/calibre/templates/calibre.html
Normal file
@ -0,0 +1,59 @@
|
||||
{% extends "app.html" %}
|
||||
{% comment %}
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
{% endcomment %}
|
||||
|
||||
{% load i18n %}
|
||||
|
||||
{% block page_head %}
|
||||
<style type="text/css">
|
||||
.library-label {
|
||||
display: inline-block;
|
||||
width: 40%;
|
||||
}
|
||||
.list-group-item .btn {
|
||||
margin: -5px 2px;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
{% block configuration %}
|
||||
{{ block.super }}
|
||||
|
||||
<h3>{% trans "Manage Libraries" %}</h3>
|
||||
|
||||
<div class="btn-toolbar">
|
||||
<a href="{% url 'calibre:create-library' %}" class="btn btn-default"
|
||||
role="button" title="{% trans 'Create Library' %}">
|
||||
<span class="fa fa-plus" aria-hidden="true"></span>
|
||||
{% trans 'Create Library' %}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
{% if not libraries %}
|
||||
<p>{% trans 'No libraries available.' %}</p>
|
||||
{% else %}
|
||||
<div id="calibre-libraries" class="list-group">
|
||||
{% for library in libraries %}
|
||||
<div class="list-group-item clearfix">
|
||||
<a href="{% url 'calibre:delete-library' library %}"
|
||||
class="btn btn-default btn-sm pull-right" role="button"
|
||||
title="{% blocktrans %}Delete library {{ library }}{% endblocktrans %}">
|
||||
<span class="fa fa-trash-o" aria-hidden="true"></span>
|
||||
</a>
|
||||
|
||||
<a class="library-label"
|
||||
href="/calibre/#library_id={{ library }}&panel=book_list"
|
||||
title="{% blocktrans %}Go to library {{ library }}{% endblocktrans %}">
|
||||
{{ library }}
|
||||
</a>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
0
plinth/modules/calibre/tests/__init__.py
Normal file
0
plinth/modules/calibre/tests/__init__.py
Normal file
1
plinth/modules/calibre/tests/data/sample.txt
Normal file
1
plinth/modules/calibre/tests/data/sample.txt
Normal file
@ -0,0 +1 @@
|
||||
Testing
|
||||
84
plinth/modules/calibre/tests/test_actions.py
Normal file
84
plinth/modules/calibre/tests/test_actions.py
Normal file
@ -0,0 +1,84 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""
|
||||
Test module for calibre actions.
|
||||
"""
|
||||
|
||||
import imp
|
||||
import json
|
||||
import pathlib
|
||||
from unittest.mock import call, patch
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
def _action_file():
|
||||
"""Return the path to the 'calibre' actions file."""
|
||||
current_directory = pathlib.Path(__file__).parent
|
||||
return str(current_directory / '..' / '..' / '..' / '..' / 'actions' /
|
||||
'calibre')
|
||||
|
||||
|
||||
actions = imp.load_source('calibre', _action_file())
|
||||
|
||||
|
||||
@pytest.fixture(name='call_action')
|
||||
def fixture_call_action(tmpdir, capsys):
|
||||
"""Run actions with custom root path."""
|
||||
|
||||
def _call_action(args, **kwargs):
|
||||
actions.LIBRARIES_PATH = pathlib.Path(str(tmpdir))
|
||||
with patch('argparse._sys.argv', ['calibre'] + args):
|
||||
actions.main()
|
||||
captured = capsys.readouterr()
|
||||
return captured.out
|
||||
|
||||
return _call_action
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def fixture_patch():
|
||||
"""Patch some underlying methods."""
|
||||
|
||||
def side_effect(*args, **_kwargs):
|
||||
if args[0][0] != 'calibredb':
|
||||
return
|
||||
|
||||
path = pathlib.Path(args[0][2]) / 'metadata.db'
|
||||
path.touch()
|
||||
|
||||
with patch('subprocess.call') as subprocess_call, \
|
||||
patch('shutil.chown'):
|
||||
subprocess_call.side_effect = side_effect
|
||||
yield
|
||||
|
||||
|
||||
def test_list_libraries(call_action):
|
||||
"""Test listing libraries."""
|
||||
assert json.loads(call_action(['list-libraries'])) == {'libraries': []}
|
||||
call_action(['create-library', 'TestLibrary'])
|
||||
expected_output = {'libraries': ['TestLibrary']}
|
||||
assert json.loads(call_action(['list-libraries'])) == expected_output
|
||||
|
||||
|
||||
@patch('shutil.chown')
|
||||
def test_create_library(chown, call_action):
|
||||
"""Test creating a library."""
|
||||
call_action(['create-library', 'TestLibrary'])
|
||||
library = actions.LIBRARIES_PATH / 'TestLibrary'
|
||||
assert (library / 'metadata.db').exists()
|
||||
assert library.stat().st_mode == 0o40755
|
||||
expected_output = {'libraries': ['TestLibrary']}
|
||||
assert json.loads(call_action(['list-libraries'])) == expected_output
|
||||
|
||||
chown.assert_has_calls([call(library.parent.parent, 'root', 'root')])
|
||||
|
||||
|
||||
def test_delete_library(call_action):
|
||||
"""Test deleting a library."""
|
||||
call_action(['create-library', 'TestLibrary'])
|
||||
|
||||
call_action(['delete-library', 'TestLibrary'])
|
||||
assert json.loads(call_action(['list-libraries'])) == {'libraries': []}
|
||||
|
||||
with pytest.raises(FileNotFoundError):
|
||||
call_action(['delete-library', 'TestLibrary'])
|
||||
180
plinth/modules/calibre/tests/test_functional.py
Normal file
180
plinth/modules/calibre/tests/test_functional.py
Normal file
@ -0,0 +1,180 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""
|
||||
Functional, browser based tests for calibre app.
|
||||
"""
|
||||
|
||||
import pathlib
|
||||
import time
|
||||
|
||||
import pytest
|
||||
|
||||
from plinth.tests import functional
|
||||
|
||||
pytestmark = [pytest.mark.apps, pytest.mark.sso, pytest.mark.calibre]
|
||||
|
||||
|
||||
@pytest.fixture(scope='module', autouse=True)
|
||||
def fixture_background(session_browser):
|
||||
"""Login and install the app."""
|
||||
functional.login(session_browser)
|
||||
functional.install(session_browser, 'calibre')
|
||||
yield
|
||||
functional.app_disable(session_browser, 'calibre')
|
||||
|
||||
|
||||
def test_enable_disable(session_browser):
|
||||
"""Test enabling the app."""
|
||||
functional.app_disable(session_browser, 'calibre')
|
||||
|
||||
functional.app_enable(session_browser, 'calibre')
|
||||
assert functional.service_is_running(session_browser, 'calibre')
|
||||
assert functional.is_available(session_browser, 'calibre')
|
||||
|
||||
functional.app_disable(session_browser, 'calibre')
|
||||
assert not functional.service_is_running(session_browser, 'calibre')
|
||||
assert not functional.is_available(session_browser, 'calibre')
|
||||
|
||||
|
||||
def test_add_delete_library(session_browser):
|
||||
"""Test adding/deleting a new library."""
|
||||
functional.app_enable(session_browser, 'calibre')
|
||||
_delete_library(session_browser, 'FunctionalTest', True)
|
||||
|
||||
_add_library(session_browser, 'FunctionalTest')
|
||||
assert _is_library_available(session_browser, 'FunctionalTest')
|
||||
|
||||
_delete_library(session_browser, 'FunctionalTest')
|
||||
assert not _is_library_available(session_browser, 'FunctionalTest')
|
||||
|
||||
|
||||
def test_add_delete_book(session_browser):
|
||||
"""Test adding/delete book in the library."""
|
||||
functional.app_enable(session_browser, 'calibre')
|
||||
_add_library(session_browser, 'FunctionalTest')
|
||||
_delete_book(session_browser, 'FunctionalTest', 'sample.txt', True)
|
||||
|
||||
_add_book(session_browser, 'FunctionalTest', 'sample.txt')
|
||||
assert _is_book_available(session_browser, 'FunctionalTest', 'sample.txt')
|
||||
|
||||
_delete_book(session_browser, 'FunctionalTest', 'sample.txt')
|
||||
assert not _is_book_available(session_browser, 'FunctionalTest',
|
||||
'sample.txt')
|
||||
|
||||
|
||||
@pytest.mark.backups
|
||||
def test_backup(session_browser):
|
||||
"""Test backing up and restoring."""
|
||||
functional.app_enable(session_browser, 'calibre')
|
||||
_add_library(session_browser, 'FunctionalTest')
|
||||
functional.backup_create(session_browser, 'calibre', 'test_calibre')
|
||||
_delete_library(session_browser, 'FunctionalTest')
|
||||
functional.backup_restore(session_browser, 'calibre', 'test_calibre')
|
||||
assert _is_library_available(session_browser, 'FunctionalTest')
|
||||
|
||||
|
||||
def _add_library(browser, name):
|
||||
"""Add a new library."""
|
||||
if _is_library_available(browser, name):
|
||||
return
|
||||
|
||||
browser.find_link_by_href(
|
||||
'/plinth/apps/calibre/library/create/').first.click()
|
||||
browser.find_by_id('id_calibre-name').fill(name)
|
||||
functional.submit(browser)
|
||||
|
||||
|
||||
def _delete_library(browser, name, ignore_missing=False):
|
||||
"""Delete a library."""
|
||||
functional.nav_to_module(browser, 'calibre')
|
||||
link = browser.find_link_by_href(
|
||||
f'/plinth/apps/calibre/library/{name}/delete/')
|
||||
if not link:
|
||||
if ignore_missing:
|
||||
return
|
||||
|
||||
raise ValueError('Library not found')
|
||||
|
||||
link.first.click()
|
||||
functional.submit(browser)
|
||||
|
||||
|
||||
def _is_library_available(browser, name):
|
||||
"""Return whether a library is present in the list of libraries."""
|
||||
functional.nav_to_module(browser, 'calibre')
|
||||
link = browser.find_link_by_href(
|
||||
f'/plinth/apps/calibre/library/{name}/delete/')
|
||||
return bool(link)
|
||||
|
||||
|
||||
def _visit_library(browser, name):
|
||||
"""Open the page for the library."""
|
||||
functional.visit(browser, '/calibre/')
|
||||
|
||||
# Calibre interface will be available a short time after restarting the
|
||||
# service.
|
||||
def _service_available():
|
||||
unavailable_xpath = '//h1[contains(text(), "Service Unavailable")]'
|
||||
available = not browser.find_by_xpath(unavailable_xpath)
|
||||
if not available:
|
||||
time.sleep(0.5)
|
||||
functional.visit(browser, '/calibre/')
|
||||
|
||||
return available
|
||||
|
||||
functional.eventually(_service_available)
|
||||
|
||||
functional.eventually(browser.find_by_css,
|
||||
args=[f'.calibre-push-button[data-lid="{name}"]'])
|
||||
link = browser.find_by_css(f'.calibre-push-button[data-lid="{name}"]')
|
||||
if not link:
|
||||
raise ValueError('Library not found')
|
||||
|
||||
link.first.click()
|
||||
functional.eventually(browser.find_by_css, ['.book-list-cover-grid'])
|
||||
|
||||
|
||||
def _add_book(browser, library_name, book_name):
|
||||
"""Add a book to the library through Calibre interface."""
|
||||
_visit_library(browser, library_name)
|
||||
add_button = browser.find_by_css('a[data-button-icon="plus"]')
|
||||
add_button.first.click()
|
||||
|
||||
functional.eventually(browser.find_by_xpath,
|
||||
['//span[contains(text(), "Add books")]'])
|
||||
browser.execute_script(
|
||||
'''document.querySelector('input[type="file"]').setAttribute(
|
||||
'name', 'test-book-upload');''')
|
||||
|
||||
file_path = pathlib.Path(__file__).parent / f'data/{book_name}'
|
||||
browser.attach_file('test-book-upload', [str(file_path)])
|
||||
functional.eventually(browser.find_by_xpath,
|
||||
['//span[contains(text(), "Added successfully")]'])
|
||||
|
||||
|
||||
def _delete_book(browser, library_name, book_name, ignore_missing=False):
|
||||
"""Delete a book from the library through Calibre interface."""
|
||||
_visit_library(browser, library_name)
|
||||
book_name = book_name.partition('.')[0]
|
||||
book = browser.find_by_xpath(f'//a[contains(@title, "{book_name}")]')
|
||||
if not book:
|
||||
if ignore_missing:
|
||||
return
|
||||
|
||||
raise Exception('Book not found')
|
||||
|
||||
book.first.click()
|
||||
delete_button = browser.find_by_css('a[data-button-icon="trash"]')
|
||||
delete_button.first.click()
|
||||
|
||||
dialog = browser.find_by_id('modal-container').first
|
||||
functional.eventually(lambda: dialog.visible)
|
||||
ok_button = browser.find_by_xpath('//span[contains(text(), "OK")]')
|
||||
ok_button.first.click()
|
||||
|
||||
|
||||
def _is_book_available(browser, library_name, book_name):
|
||||
"""Return whether a book is present in Calibre interface."""
|
||||
_visit_library(browser, library_name)
|
||||
book_name = book_name.partition('.')[0]
|
||||
book = browser.find_by_xpath(f'//a[contains(@title, "{book_name}")]')
|
||||
return bool(book)
|
||||
146
plinth/modules/calibre/tests/test_views.py
Normal file
146
plinth/modules/calibre/tests/test_views.py
Normal file
@ -0,0 +1,146 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""
|
||||
Tests for calibre views.
|
||||
"""
|
||||
|
||||
from unittest.mock import call, patch
|
||||
|
||||
import pytest
|
||||
from django import urls
|
||||
from django.contrib.messages.storage.fallback import FallbackStorage
|
||||
from django.http.response import Http404
|
||||
|
||||
from plinth import actions, module_loader
|
||||
from plinth.modules.calibre import views
|
||||
|
||||
# For all tests, use plinth.urls instead of urls configured for testing
|
||||
pytestmark = pytest.mark.urls('plinth.urls')
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True, scope='module')
|
||||
def fixture_calibre_urls():
|
||||
"""Make sure calibre app's URLs are part of plinth.urls."""
|
||||
with patch('plinth.module_loader._modules_to_load', new=[]) as modules, \
|
||||
patch('plinth.urls.urlpatterns', new=[]):
|
||||
modules.append('plinth.modules.calibre')
|
||||
module_loader.include_urls()
|
||||
yield
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def calibre_patch():
|
||||
"""Patch calibre methods."""
|
||||
with patch('plinth.modules.calibre.list_libraries') as list_libraries:
|
||||
list_libraries.return_value = ['TestExistingLibrary']
|
||||
|
||||
yield
|
||||
|
||||
|
||||
def make_request(request, view, **kwargs):
|
||||
"""Make request with a message storage."""
|
||||
setattr(request, 'session', 'session')
|
||||
messages = FallbackStorage(request)
|
||||
setattr(request, '_messages', messages)
|
||||
response = view(request, **kwargs)
|
||||
|
||||
return response, messages
|
||||
|
||||
|
||||
@patch('plinth.modules.calibre.create_library')
|
||||
def test_create_library(create_library, rf):
|
||||
"""Test that create library view works."""
|
||||
form_data = {'calibre-name': 'TestLibrary'}
|
||||
request = rf.post(urls.reverse('calibre:create-library'), data=form_data)
|
||||
view = views.CreateLibraryView.as_view()
|
||||
response, messages = make_request(request, view)
|
||||
|
||||
assert response.status_code == 302
|
||||
assert response.url == urls.reverse('calibre:index')
|
||||
assert list(messages)[0].message == 'Library created.'
|
||||
create_library.assert_has_calls([call('TestLibrary')])
|
||||
|
||||
|
||||
@patch('plinth.modules.calibre.create_library')
|
||||
def test_create_library_failed(create_library, rf):
|
||||
"""Test that create library fails as expected."""
|
||||
create_library.side_effect = actions.ActionError('calibre', 'TestOutput',
|
||||
'TestError')
|
||||
form_data = {'calibre-name': 'TestLibrary'}
|
||||
request = rf.post(urls.reverse('calibre:create-library'), data=form_data)
|
||||
view = views.CreateLibraryView.as_view()
|
||||
response, messages = make_request(request, view)
|
||||
|
||||
assert response.status_code == 302
|
||||
assert response.url == urls.reverse('calibre:index')
|
||||
assert list(messages)[0].message == \
|
||||
'An error occurred while creating the library. TestError'
|
||||
|
||||
|
||||
def test_create_library_existing_library(rf):
|
||||
"""Test that create library errors out for an existing library name."""
|
||||
form_data = {'calibre-name': 'TestExistingLibrary'}
|
||||
request = rf.post(urls.reverse('calibre:create-library'), data=form_data)
|
||||
view = views.CreateLibraryView.as_view()
|
||||
response, _ = make_request(request, view)
|
||||
|
||||
assert response.context_data['form'].errors['name'][
|
||||
0] == 'A library with this name already exists.'
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_create_library_invalid_name(rf):
|
||||
"""Test that create library errors out for invalid name."""
|
||||
form_data = {'calibre-name': 'Invalid Library'}
|
||||
request = rf.post(urls.reverse('calibre:create-library'), data=form_data)
|
||||
view = views.CreateLibraryView.as_view()
|
||||
response, _ = make_request(request, view)
|
||||
|
||||
assert response.context_data['form'].errors['name'][
|
||||
0] == 'Enter a valid value.'
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
@patch('plinth.modules.calibre.app')
|
||||
def test_delete_library_confirmation_view(_app, rf):
|
||||
"""Test that deleting library confirmation shows correct name."""
|
||||
response, _ = make_request(rf.get(''), views.delete_library,
|
||||
name='TestExistingLibrary')
|
||||
assert response.status_code == 200
|
||||
assert response.context_data['name'] == 'TestExistingLibrary'
|
||||
|
||||
|
||||
@patch('plinth.modules.calibre.delete_library')
|
||||
@patch('plinth.modules.calibre.app')
|
||||
def test_delete_library(_app, delete_library, rf):
|
||||
"""Test that deleting a library works."""
|
||||
response, messages = make_request(rf.post(''), views.delete_library,
|
||||
name='TestExistingLibrary')
|
||||
assert response.status_code == 302
|
||||
assert response.url == urls.reverse('calibre:index')
|
||||
assert list(messages)[0].message == 'TestExistingLibrary deleted.'
|
||||
delete_library.assert_has_calls([call('TestExistingLibrary')])
|
||||
|
||||
|
||||
@patch('plinth.modules.calibre.delete_library')
|
||||
def test_delete_library_error(delete_library, rf):
|
||||
"""Test that deleting a library shows error when operation fails."""
|
||||
delete_library.side_effect = actions.ActionError('calibre', 'TestInput',
|
||||
'TestError')
|
||||
response, messages = make_request(rf.post(''), views.delete_library,
|
||||
name='TestExistingLibrary')
|
||||
assert response.status_code == 302
|
||||
assert response.url == urls.reverse('calibre:index')
|
||||
assert list(messages)[0].message == \
|
||||
'Could not delete TestExistingLibrary: '\
|
||||
"('calibre', 'TestInput', 'TestError')"
|
||||
|
||||
|
||||
def test_delete_library_non_existing(rf):
|
||||
"""Test that deleting a library shows error when operation fails."""
|
||||
with pytest.raises(Http404):
|
||||
make_request(rf.post(''), views.delete_library,
|
||||
name='TestNonExistingLibrary')
|
||||
|
||||
with pytest.raises(Http404):
|
||||
make_request(rf.get(''), views.delete_library,
|
||||
name='TestNonExistingLibrary')
|
||||
16
plinth/modules/calibre/urls.py
Normal file
16
plinth/modules/calibre/urls.py
Normal file
@ -0,0 +1,16 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""
|
||||
URLs for the calibre module.
|
||||
"""
|
||||
|
||||
from django.conf.urls import url
|
||||
|
||||
from . import views
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^apps/calibre/$', views.CalibreAppView.as_view(), name='index'),
|
||||
url(r'^apps/calibre/library/create/$', views.CreateLibraryView.as_view(),
|
||||
name='create-library'),
|
||||
url(r'^apps/calibre/library/(?P<name>[a-zA-Z0-9_.-]+)/delete/$',
|
||||
views.delete_library, name='delete-library'),
|
||||
]
|
||||
75
plinth/modules/calibre/views.py
Normal file
75
plinth/modules/calibre/views.py
Normal file
@ -0,0 +1,75 @@
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""
|
||||
Views for the calibre module.
|
||||
"""
|
||||
|
||||
from django.contrib import messages
|
||||
from django.contrib.messages.views import SuccessMessageMixin
|
||||
from django.http import Http404
|
||||
from django.shortcuts import redirect
|
||||
from django.template.response import TemplateResponse
|
||||
from django.urls import reverse_lazy
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.views.generic.edit import FormView
|
||||
|
||||
from plinth import actions, views
|
||||
from plinth.modules import calibre
|
||||
|
||||
from . import forms
|
||||
|
||||
|
||||
class CalibreAppView(views.AppView):
|
||||
"""Serve configuration form."""
|
||||
app_id = 'calibre'
|
||||
template_name = 'calibre.html'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
"""Return additional context for rendering the template."""
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['libraries'] = calibre.list_libraries()
|
||||
return context
|
||||
|
||||
|
||||
class CreateLibraryView(SuccessMessageMixin, FormView):
|
||||
"""View to create an empty library."""
|
||||
form_class = forms.CreateLibraryForm
|
||||
prefix = 'calibre'
|
||||
template_name = 'form.html'
|
||||
success_url = reverse_lazy('calibre:index')
|
||||
success_message = _('Library created.')
|
||||
|
||||
def form_valid(self, form):
|
||||
"""Create the library on valid form submission."""
|
||||
try:
|
||||
calibre.create_library(form.cleaned_data['name'])
|
||||
except actions.ActionError as error:
|
||||
self.success_message = ''
|
||||
error_text = error.args[2].split('\n')[0]
|
||||
messages.error(
|
||||
self.request, "{0} {1}".format(
|
||||
_('An error occurred while creating the library.'),
|
||||
error_text))
|
||||
|
||||
return super().form_valid(form)
|
||||
|
||||
|
||||
def delete_library(request, name):
|
||||
"""View to delete a library."""
|
||||
if name not in calibre.list_libraries():
|
||||
raise Http404
|
||||
|
||||
if request.method == 'POST':
|
||||
try:
|
||||
calibre.delete_library(name)
|
||||
messages.success(request, _('{name} deleted.').format(name=name))
|
||||
except actions.ActionError as error:
|
||||
messages.error(
|
||||
request,
|
||||
_('Could not delete {name}: {error}').format(
|
||||
name=name, error=error))
|
||||
return redirect(reverse_lazy('calibre:index'))
|
||||
|
||||
return TemplateResponse(request, 'calibre-delete-library.html', {
|
||||
'title': calibre.app.info.name,
|
||||
'name': name
|
||||
})
|
||||
@ -115,6 +115,10 @@ def get_domain():
|
||||
|
||||
def get_domains():
|
||||
"""Return a list with the configured domains."""
|
||||
# If not installed, return empty. But work while installing too.
|
||||
if not pathlib.Path('/etc/coturn/freedombox.conf').exists():
|
||||
return []
|
||||
|
||||
domain = get_domain()
|
||||
if domain:
|
||||
return [domain]
|
||||
|
||||
@ -9,9 +9,9 @@ from plinth import actions
|
||||
from plinth import app as app_module
|
||||
from plinth import cfg, menu
|
||||
from plinth.modules.names.components import DomainType
|
||||
from plinth.modules.users.components import UsersAndGroups
|
||||
from plinth.signals import domain_added
|
||||
from plinth.utils import format_lazy
|
||||
from plinth.modules.users.components import UsersAndGroups
|
||||
|
||||
from .manifest import backup # noqa, pylint: disable=unused-import
|
||||
|
||||
@ -76,7 +76,6 @@ class DynamicDNSApp(app_module.App):
|
||||
domain_type='domain-type-dynamic',
|
||||
name=current_status['dynamicdns_domain'],
|
||||
services='__all__')
|
||||
self.set_enabled(True)
|
||||
|
||||
def is_enabled(self):
|
||||
"""Return whether all the leader components are enabled.
|
||||
|
||||
@ -3,23 +3,30 @@
|
||||
FreedomBox app to configure Mumble server.
|
||||
"""
|
||||
|
||||
import pathlib
|
||||
|
||||
from django.urls import reverse_lazy
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from plinth import actions
|
||||
from plinth import app as app_module
|
||||
from plinth import frontpage, menu
|
||||
from plinth.daemon import Daemon
|
||||
from plinth.modules import names
|
||||
from plinth.modules.firewall.components import Firewall
|
||||
from plinth.modules.letsencrypt.components import LetsEncrypt
|
||||
from plinth.modules.users.components import UsersAndGroups
|
||||
|
||||
from .manifest import backup, clients # noqa, pylint: disable=unused-import
|
||||
|
||||
version = 1
|
||||
version = 2
|
||||
|
||||
managed_services = ['mumble-server']
|
||||
|
||||
managed_packages = ['mumble-server']
|
||||
|
||||
managed_paths = [pathlib.Path('/var/lib/mumble-server')]
|
||||
|
||||
_description = [
|
||||
_('Mumble is an open source, low-latency, encrypted, high quality '
|
||||
'voice chat software.'),
|
||||
@ -61,6 +68,15 @@ class MumbleApp(app_module.App):
|
||||
ports=['mumble-plinth'], is_external=True)
|
||||
self.add(firewall)
|
||||
|
||||
letsencrypt = LetsEncrypt(
|
||||
'letsencrypt-mumble', domains=get_domains,
|
||||
daemons=managed_services, should_copy_certificates=True,
|
||||
private_key_path='/var/lib/mumble-server/privkey.pem',
|
||||
certificate_path='/var/lib/mumble-server/fullchain.pem',
|
||||
user_owner='mumble-server', group_owner='mumble-server',
|
||||
managing_app='mumble')
|
||||
self.add(letsencrypt)
|
||||
|
||||
daemon = Daemon(
|
||||
'daemon-mumble', managed_services[0],
|
||||
listen_ports=[(64738, 'tcp4'), (64738, 'tcp6'), (64738, 'udp4'),
|
||||
@ -75,4 +91,42 @@ class MumbleApp(app_module.App):
|
||||
def setup(helper, old_version=None):
|
||||
"""Install and configure the module."""
|
||||
helper.install(managed_packages)
|
||||
helper.call('post', app.enable)
|
||||
helper.call('post', actions.superuser_run, 'mumble', ['setup'])
|
||||
if not old_version:
|
||||
helper.call('post', app.enable)
|
||||
|
||||
app.get_component('letsencrypt-mumble').setup_certificates()
|
||||
|
||||
|
||||
def get_available_domains():
|
||||
"""Return an iterator with all domains able to have a certificate."""
|
||||
return (domain.name for domain in names.components.DomainName.list()
|
||||
if domain.domain_type.can_have_certificate)
|
||||
|
||||
|
||||
def set_domain(domain):
|
||||
"""Set the TLS domain by writing a file to data directory."""
|
||||
if domain:
|
||||
actions.superuser_run('mumble', ['set-domain', domain])
|
||||
|
||||
|
||||
def get_domain():
|
||||
"""Read TLS domain from config file select first available if none."""
|
||||
domain = actions.superuser_run('mumble', ['get-domain']).strip()
|
||||
if not domain:
|
||||
domain = next(get_available_domains(), None)
|
||||
set_domain(domain)
|
||||
|
||||
return domain
|
||||
|
||||
|
||||
def get_domains():
|
||||
"""Return a list with the configured domains."""
|
||||
if not pathlib.Path('/var/lib/mumble-server/').exists():
|
||||
return []
|
||||
|
||||
domain = get_domain()
|
||||
if domain:
|
||||
return [domain]
|
||||
|
||||
return []
|
||||
|
||||
@ -6,9 +6,25 @@ Mumble server configuration form
|
||||
from django import forms
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from plinth.modules import mumble
|
||||
|
||||
|
||||
def get_domain_choices():
|
||||
"""Double domain entries for inclusion in the choice field."""
|
||||
return ((domain, domain) for domain in mumble.get_available_domains())
|
||||
|
||||
|
||||
class MumbleForm(forms.Form):
|
||||
"""Mumble server configuration"""
|
||||
domain = forms.ChoiceField(
|
||||
choices=get_domain_choices,
|
||||
label=_('TLS domain'),
|
||||
help_text=_(
|
||||
'Select a domain to use TLS with. If the list is empty, please '
|
||||
'configure at least one domain with certificates.'),
|
||||
required=False,
|
||||
)
|
||||
|
||||
super_user_password = forms.CharField(
|
||||
max_length=20,
|
||||
label=_('Set SuperUser Password'),
|
||||
|
||||
@ -3,6 +3,7 @@ from django.contrib import messages
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from plinth import actions
|
||||
from plinth.modules import mumble
|
||||
from plinth.modules.mumble.forms import MumbleForm
|
||||
from plinth.views import AppView
|
||||
|
||||
@ -11,10 +12,21 @@ class MumbleAppView(AppView):
|
||||
app_id = 'mumble'
|
||||
form_class = MumbleForm
|
||||
|
||||
def get_initial(self):
|
||||
"""Return the values to fill in the form."""
|
||||
initial = super().get_initial()
|
||||
initial['domain'] = mumble.get_domain()
|
||||
return initial
|
||||
|
||||
def form_valid(self, form):
|
||||
"""Apply new superuser password if it exists"""
|
||||
new_config = form.cleaned_data
|
||||
|
||||
if mumble.get_domain() != new_config['domain']:
|
||||
mumble.set_domain(new_config['domain'])
|
||||
mumble.app.get_component('letsencrypt-mumble').setup_certificates()
|
||||
messages.success(self.request, _('Configuration updated'))
|
||||
|
||||
password = new_config.get('super_user_password')
|
||||
if password:
|
||||
actions.run_as_user(
|
||||
|
||||
@ -81,7 +81,9 @@ class PagekiteApp(app_module.App):
|
||||
self.add(daemon)
|
||||
|
||||
# Register kite name with Name Services module.
|
||||
utils.update_names_module(is_enabled=self.is_enabled())
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup' and self.is_enabled():
|
||||
utils.update_names_module(is_enabled=True)
|
||||
|
||||
def enable(self):
|
||||
"""Send domain signals after enabling the app."""
|
||||
|
||||
@ -20,6 +20,9 @@ KITE_SECRET = '@kitesecret'
|
||||
# Augeas base path for Pagekite configuration files
|
||||
CONF_PATH = '/files/etc/pagekite.d'
|
||||
|
||||
# Kite name used by default in config. Should be treated as unconfigured.
|
||||
UNCONFIGURED_KITE = 'NAME.pagekite.me'
|
||||
|
||||
# Parameters that get stored in configuration service_on entries
|
||||
SERVICE_PARAMS = [
|
||||
'protocol', 'kitename', 'backend_host', 'backend_port', 'secret'
|
||||
@ -178,7 +181,7 @@ def update_names_module(is_enabled=None):
|
||||
service for service, value in config['predefined_services'].items()
|
||||
if value
|
||||
]
|
||||
if config['kite_name']:
|
||||
if config['kite_name'] and config['kite_name'] != UNCONFIGURED_KITE:
|
||||
domain_added.send_robust(sender='pagekite',
|
||||
domain_type='domain-type-pagekite',
|
||||
name=config['kite_name'],
|
||||
|
||||
@ -134,6 +134,10 @@ def get_domain():
|
||||
|
||||
def get_domains():
|
||||
"""Return a list with the configured domain for quassel."""
|
||||
# If not installed, return empty. But work while installing too.
|
||||
if not pathlib.Path('/var/lib/quassel/').exists():
|
||||
return []
|
||||
|
||||
domain = get_domain()
|
||||
if domain:
|
||||
return [domain]
|
||||
|
||||
@ -87,7 +87,9 @@ class TorApp(app_module.App):
|
||||
self.add(users_and_groups)
|
||||
|
||||
# Register hidden service name with Name Services module.
|
||||
if self.is_enabled() and app_is_running(self):
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup' and \
|
||||
self.is_enabled() and app_is_running(self):
|
||||
status = utils.get_status(initialized=False)
|
||||
hostname = status['hs_hostname']
|
||||
services = [int(port['virtport']) for port in status['hs_ports']]
|
||||
|
||||
@ -45,7 +45,9 @@ app = None
|
||||
|
||||
BACKPORTS_REQUESTED_KEY = 'upgrades_backports_requested'
|
||||
|
||||
SOURCES_LIST = '/etc/apt/sources.list.d/freedombox2.list'
|
||||
SOURCES_LIST = '/etc/apt/sources.list'
|
||||
|
||||
BACKPORTS_SOURCES_LIST = '/etc/apt/sources.list.d/freedombox2.list'
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@ -72,8 +74,10 @@ class UpgradesApp(app_module.App):
|
||||
|
||||
self._show_new_release_notification()
|
||||
|
||||
# Check every day for setting up apt backport sources, every 3 minutes
|
||||
# in debug mode.
|
||||
# Check every day (every 3 minutes in debug mode):
|
||||
# - backports becomes available -> configure it if selected by user
|
||||
# - new stable release becomes available -> perform dist-upgrade if
|
||||
# updates are enabled
|
||||
interval = 180 if cfg.develop else 24 * 3600
|
||||
glib.schedule(interval, setup_repositories)
|
||||
|
||||
@ -146,7 +150,7 @@ def disable():
|
||||
|
||||
|
||||
def setup_repositories(data):
|
||||
"""Setup apt backport repositories."""
|
||||
"""Setup apt repositories for backports or new stable release."""
|
||||
if is_backports_requested():
|
||||
command = ['setup-repositories']
|
||||
if cfg.develop:
|
||||
@ -170,7 +174,7 @@ def set_backports_requested(requested):
|
||||
|
||||
def is_backports_enabled():
|
||||
"""Return whether backports are enabled in the system configuration."""
|
||||
return os.path.exists(SOURCES_LIST)
|
||||
return os.path.exists(BACKPORTS_SOURCES_LIST)
|
||||
|
||||
|
||||
def get_current_release():
|
||||
|
||||
@ -6,6 +6,7 @@ import re
|
||||
from django import forms
|
||||
from django.contrib import auth, messages
|
||||
from django.contrib.auth.forms import SetPasswordForm, UserCreationForm
|
||||
from django.contrib.auth.hashers import check_password
|
||||
from django.contrib.auth.models import Group, User
|
||||
from django.core import validators
|
||||
from django.core.exceptions import ValidationError
|
||||
@ -65,15 +66,33 @@ class UsernameValidator(validators.RegexValidator):
|
||||
|
||||
|
||||
USERNAME_FIELD = forms.CharField(
|
||||
label=ugettext_lazy('Username'),
|
||||
max_length=150, validators=[UsernameValidator()],
|
||||
label=ugettext_lazy('Username'), max_length=150,
|
||||
validators=[UsernameValidator()],
|
||||
help_text=ugettext_lazy('Required. 150 characters or fewer. English '
|
||||
'letters, digits and @/./-/_ only.'))
|
||||
|
||||
|
||||
class PasswordConfirmForm(forms.Form):
|
||||
"""Password confirmation form."""
|
||||
confirm_password = forms.CharField(
|
||||
widget=forms.PasswordInput,
|
||||
label=ugettext_lazy('Authorization Password'), help_text=ugettext_lazy(
|
||||
'Enter your current password to authorize account modifications.'))
|
||||
|
||||
def clean_confirm_password(self):
|
||||
"""Check that current user's password matches."""
|
||||
confirm_password = self.cleaned_data['confirm_password']
|
||||
password_matches = check_password(confirm_password,
|
||||
self.request.user.password)
|
||||
if not password_matches:
|
||||
raise ValidationError(_('Invalid password.'), code='invalid')
|
||||
|
||||
return confirm_password
|
||||
|
||||
|
||||
class CreateUserForm(ValidNewUsernameCheckMixin,
|
||||
plinth.forms.LanguageSelectionFormMixin,
|
||||
UserCreationForm):
|
||||
PasswordConfirmForm, UserCreationForm):
|
||||
"""Custom user create form.
|
||||
|
||||
Include options to add user to groups.
|
||||
@ -95,7 +114,8 @@ class CreateUserForm(ValidNewUsernameCheckMixin,
|
||||
|
||||
class Meta(UserCreationForm.Meta):
|
||||
"""Metadata to control automatic form building."""
|
||||
fields = ('username', 'password1', 'password2', 'groups', 'language')
|
||||
fields = ('username', 'password1', 'password2', 'groups', 'language',
|
||||
'confirm_password')
|
||||
|
||||
def __init__(self, request, *args, **kwargs):
|
||||
"""Initialize the form with extra request argument."""
|
||||
@ -104,7 +124,7 @@ class CreateUserForm(ValidNewUsernameCheckMixin,
|
||||
self.fields['username'].widget.attrs.update({
|
||||
'autofocus': 'autofocus',
|
||||
'autocapitalize': 'none',
|
||||
'autocomplete': 'username'
|
||||
'autocomplete': 'username',
|
||||
})
|
||||
|
||||
def save(self, commit=True):
|
||||
@ -114,26 +134,34 @@ class CreateUserForm(ValidNewUsernameCheckMixin,
|
||||
if commit:
|
||||
user.userprofile.language = self.cleaned_data['language']
|
||||
user.userprofile.save()
|
||||
auth_username = self.request.user.username
|
||||
confirm_password = self.cleaned_data['confirm_password']
|
||||
|
||||
process_input = '{0}\n{1}'.format(self.cleaned_data['password1'],
|
||||
confirm_password).encode()
|
||||
try:
|
||||
actions.superuser_run(
|
||||
'users',
|
||||
['create-user', user.get_username()],
|
||||
input=self.cleaned_data['password1'].encode())
|
||||
except ActionError:
|
||||
messages.error(self.request, _('Creating LDAP user failed.'))
|
||||
actions.superuser_run('users', [
|
||||
'create-user',
|
||||
user.get_username(), '--auth-user', auth_username
|
||||
], input=process_input)
|
||||
except ActionError as error:
|
||||
messages.error(
|
||||
self.request,
|
||||
_('Creating LDAP user failed: {error}'.format(
|
||||
error=error)))
|
||||
|
||||
for group in self.cleaned_data['groups']:
|
||||
try:
|
||||
actions.superuser_run(
|
||||
'users',
|
||||
['add-user-to-group',
|
||||
user.get_username(), group])
|
||||
except ActionError:
|
||||
actions.superuser_run('users', [
|
||||
'add-user-to-group',
|
||||
user.get_username(), group, '--auth-user',
|
||||
auth_username
|
||||
], input=confirm_password.encode())
|
||||
except ActionError as error:
|
||||
messages.error(
|
||||
self.request,
|
||||
_('Failed to add new user to {group} group.').format(
|
||||
group=group))
|
||||
_('Failed to add new user to {group} group: {error}').
|
||||
format(group=group, error=error))
|
||||
|
||||
group_object, created = Group.objects.get_or_create(name=group)
|
||||
group_object.user_set.add(user)
|
||||
@ -141,7 +169,7 @@ class CreateUserForm(ValidNewUsernameCheckMixin,
|
||||
return user
|
||||
|
||||
|
||||
class UserUpdateForm(ValidNewUsernameCheckMixin,
|
||||
class UserUpdateForm(ValidNewUsernameCheckMixin, PasswordConfirmForm,
|
||||
plinth.forms.LanguageSelectionFormMixin, forms.ModelForm):
|
||||
"""When user info is changed, also updates LDAP user."""
|
||||
username = USERNAME_FIELD
|
||||
@ -158,7 +186,8 @@ class UserUpdateForm(ValidNewUsernameCheckMixin,
|
||||
|
||||
class Meta:
|
||||
"""Metadata to control automatic form building."""
|
||||
fields = ('username', 'groups', 'ssh_keys', 'language', 'is_active')
|
||||
fields = ('username', 'groups', 'ssh_keys', 'language', 'is_active',
|
||||
'confirm_password')
|
||||
model = User
|
||||
widgets = {
|
||||
'groups': plinth.forms.CheckboxSelectMultipleWithReadOnly(),
|
||||
@ -210,9 +239,11 @@ class UserUpdateForm(ValidNewUsernameCheckMixin,
|
||||
user = super(UserUpdateForm, self).save(commit=False)
|
||||
# Profile is auto saved with user object
|
||||
user.userprofile.language = self.cleaned_data['language']
|
||||
auth_username = self.request.user.username
|
||||
confirm_password = self.cleaned_data['confirm_password']
|
||||
|
||||
# If user is updating their own profile then only translate the pages
|
||||
if self.username == self.request.user.username:
|
||||
if self.username == auth_username:
|
||||
set_language(self.request, None, user.userprofile.language)
|
||||
|
||||
if commit:
|
||||
@ -240,8 +271,9 @@ class UserUpdateForm(ValidNewUsernameCheckMixin,
|
||||
try:
|
||||
actions.superuser_run('users', [
|
||||
'remove-user-from-group',
|
||||
user.get_username(), old_group
|
||||
])
|
||||
user.get_username(), old_group, '--auth-user',
|
||||
auth_username
|
||||
], input=confirm_password.encode())
|
||||
except ActionError:
|
||||
messages.error(self.request,
|
||||
_('Failed to remove user from group.'))
|
||||
@ -251,18 +283,23 @@ class UserUpdateForm(ValidNewUsernameCheckMixin,
|
||||
try:
|
||||
actions.superuser_run('users', [
|
||||
'add-user-to-group',
|
||||
user.get_username(), new_group
|
||||
])
|
||||
user.get_username(), new_group, '--auth-user',
|
||||
auth_username
|
||||
], input=confirm_password.encode())
|
||||
except ActionError:
|
||||
messages.error(self.request,
|
||||
_('Failed to add user to group.'))
|
||||
|
||||
try:
|
||||
actions.superuser_run('ssh', [
|
||||
'set-keys', '--username',
|
||||
user.get_username(), '--keys',
|
||||
self.cleaned_data['ssh_keys'].strip()
|
||||
])
|
||||
'set-keys',
|
||||
'--username',
|
||||
user.get_username(),
|
||||
'--keys',
|
||||
self.cleaned_data['ssh_keys'].strip(),
|
||||
'--auth-user',
|
||||
auth_username,
|
||||
], input=confirm_password.encode())
|
||||
except ActionError:
|
||||
messages.error(self.request, _('Unable to set SSH keys.'))
|
||||
|
||||
@ -273,10 +310,13 @@ class UserUpdateForm(ValidNewUsernameCheckMixin,
|
||||
else:
|
||||
status = 'inactive'
|
||||
try:
|
||||
actions.superuser_run(
|
||||
'users',
|
||||
['set-user-status',
|
||||
user.get_username(), status])
|
||||
actions.superuser_run('users', [
|
||||
'set-user-status',
|
||||
user.get_username(),
|
||||
status,
|
||||
'--auth-user',
|
||||
auth_username,
|
||||
], input=confirm_password.encode())
|
||||
except ActionError:
|
||||
messages.error(self.request,
|
||||
_('Failed to change user status.'))
|
||||
@ -297,7 +337,7 @@ class UserUpdateForm(ValidNewUsernameCheckMixin,
|
||||
return cleaned_data
|
||||
|
||||
|
||||
class UserChangePasswordForm(SetPasswordForm):
|
||||
class UserChangePasswordForm(PasswordConfirmForm, SetPasswordForm):
|
||||
"""Custom form that also updates password for LDAP users."""
|
||||
|
||||
def __init__(self, request, *args, **kwargs):
|
||||
@ -310,12 +350,16 @@ class UserChangePasswordForm(SetPasswordForm):
|
||||
def save(self, commit=True):
|
||||
"""Save the user model and change LDAP password as well."""
|
||||
user = super(UserChangePasswordForm, self).save(commit)
|
||||
auth_username = self.request.user.username
|
||||
if commit:
|
||||
process_input = '{0}\n{1}'.format(
|
||||
self.cleaned_data['new_password1'],
|
||||
self.cleaned_data['confirm_password']).encode()
|
||||
try:
|
||||
actions.superuser_run(
|
||||
'users', ['set-user-password',
|
||||
user.get_username()],
|
||||
input=self.cleaned_data['new_password1'].encode())
|
||||
actions.superuser_run('users', [
|
||||
'set-user-password',
|
||||
user.get_username(), '--auth-user', auth_username
|
||||
], input=process_input)
|
||||
except ActionError:
|
||||
messages.error(self.request,
|
||||
_('Changing LDAP user password failed.'))
|
||||
@ -341,19 +385,25 @@ class FirstBootForm(ValidNewUsernameCheckMixin, auth.forms.UserCreationForm):
|
||||
try:
|
||||
actions.superuser_run(
|
||||
'users',
|
||||
['create-user', user.get_username()],
|
||||
['create-user',
|
||||
user.get_username(), '--auth-user', ''],
|
||||
input=self.cleaned_data['password1'].encode())
|
||||
except ActionError:
|
||||
messages.error(self.request, _('Creating LDAP user failed.'))
|
||||
except ActionError as error:
|
||||
messages.error(
|
||||
self.request,
|
||||
_('Creating LDAP user failed: {error}'.format(
|
||||
error=error)))
|
||||
|
||||
try:
|
||||
actions.superuser_run(
|
||||
'users',
|
||||
['add-user-to-group',
|
||||
user.get_username(), 'admin'])
|
||||
except ActionError:
|
||||
messages.error(self.request,
|
||||
_('Failed to add new user to admin group.'))
|
||||
except ActionError as error:
|
||||
messages.error(
|
||||
self.request,
|
||||
_('Failed to add new user to admin group: {error}'.format(
|
||||
error=error)))
|
||||
|
||||
# Create initial Django groups
|
||||
for group_choice in UsersAndGroups.get_group_choices():
|
||||
@ -368,9 +418,11 @@ class FirstBootForm(ValidNewUsernameCheckMixin, auth.forms.UserCreationForm):
|
||||
# Restrict console login to users in admin or sudo group
|
||||
try:
|
||||
set_restricted_access(True)
|
||||
except Exception:
|
||||
messages.error(self.request,
|
||||
_('Failed to restrict console access.'))
|
||||
except Exception as error:
|
||||
messages.error(
|
||||
self.request,
|
||||
_('Failed to restrict console access: {error}'.format(
|
||||
error=error)))
|
||||
|
||||
return user
|
||||
|
||||
|
||||
@ -8,6 +8,8 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h3>{%trans "Create User" %}</h3>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
|
||||
@ -10,21 +10,57 @@
|
||||
{% block content %}
|
||||
<h2>{% trans "Administrator Account" %}</h2>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Choose a username and password to access this web interface.
|
||||
The password can be changed later. This user will be granted
|
||||
administrative privileges. Other users can be added later.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
{% if not admin_users %}
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Choose a username and password to access this web interface.
|
||||
The password can be changed later. This user will be granted
|
||||
administrative privileges. Other users can be added later.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Create Account" %}"/>
|
||||
</form>
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Create Account" %}"/>
|
||||
</form>
|
||||
{% else %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
{% blocktrans trimmed %}
|
||||
An administrator account already exists.
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
The following administrator accounts exist in the system.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
{% for user in admin_users %}
|
||||
<li>{{ user }} </li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
{% blocktrans trimmed %}
|
||||
Delete these accounts from command line and refresh the page to create
|
||||
an account that is usable with {{ box_name }}. On the command line run
|
||||
the command 'echo "{password}" | /usr/share/plinth/actions/users
|
||||
remove-user {username}'. If an account is already usable with
|
||||
{{ box_name }}, skip this step.
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
<input type="submit" class="btn btn-link" name="skip"
|
||||
value="{% trans "Skip this step" %}"/>
|
||||
</form>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
@ -7,7 +7,11 @@
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
<h3>{{ object.username }}</h3>
|
||||
<h3>
|
||||
{% blocktrans trimmed with username=object.username %}
|
||||
Edit User <em>{{ username }}</em>
|
||||
{% endblocktrans %}
|
||||
</h3>
|
||||
|
||||
<p>
|
||||
{% url 'users:change_password' object.username as change_password_url %}
|
||||
|
||||
@ -16,6 +16,7 @@ import pytest
|
||||
|
||||
from plinth import action_utils
|
||||
from plinth.modules import security
|
||||
from plinth.tests import config as test_config
|
||||
|
||||
_cleanup_users = None
|
||||
_cleanup_groups = None
|
||||
@ -74,8 +75,8 @@ def _try_login_to_ssh(username, password, returncode=0):
|
||||
def _action_file():
|
||||
"""Return the path to the 'users' actions file."""
|
||||
current_directory = pathlib.Path(__file__).parent
|
||||
return str(
|
||||
current_directory / '..' / '..' / '..' / '..' / 'actions' / 'users')
|
||||
return str(current_directory / '..' / '..' / '..' / '..' / 'actions' /
|
||||
'users')
|
||||
|
||||
|
||||
@pytest.fixture(name='disable_restricted_access', autouse=True)
|
||||
@ -111,8 +112,8 @@ def fixture_auto_cleanup_users_groups(needs_root, load_cfg):
|
||||
|
||||
def _call_action(arguments, **kwargs):
|
||||
"""Call the action script."""
|
||||
kwargs['stdout'] = kwargs.get('stdout', subprocess.DEVNULL)
|
||||
kwargs['stderr'] = kwargs.get('stderr', subprocess.DEVNULL)
|
||||
kwargs['stdout'] = kwargs.get('stdout', subprocess.PIPE)
|
||||
kwargs['stderr'] = kwargs.get('stderr', subprocess.PIPE)
|
||||
kwargs['check'] = kwargs.get('check', True)
|
||||
return subprocess.run([_action_file()] + arguments, **kwargs)
|
||||
|
||||
@ -120,13 +121,19 @@ def _call_action(arguments, **kwargs):
|
||||
def _create_user(username=None, groups=None):
|
||||
"""Call the action script for creating a new user."""
|
||||
username = username or _random_string()
|
||||
password = _random_string()
|
||||
password = username + '_passwd'
|
||||
admin_user, admin_password = _get_admin_user_password()
|
||||
|
||||
_call_action(['create-user', username], input=password.encode())
|
||||
process_input = "{0}\n{1}".format(password, admin_password).encode()
|
||||
_call_action(['create-user', '--auth-user', admin_user, username],
|
||||
input=process_input)
|
||||
|
||||
if groups:
|
||||
for group in groups:
|
||||
_call_action(['add-user-to-group', username, group])
|
||||
admin_user, admin_password = _get_admin_user_password()
|
||||
_call_action([
|
||||
'add-user-to-group', '--auth-user', admin_user, username, group
|
||||
], input=admin_password.encode())
|
||||
if group != 'admin':
|
||||
_cleanup_groups.add(group)
|
||||
|
||||
@ -136,29 +143,54 @@ def _create_user(username=None, groups=None):
|
||||
|
||||
def _delete_user(username):
|
||||
"""Utility to delete an LDAP and Samba user"""
|
||||
_call_action(['remove-user', username])
|
||||
process_input = None
|
||||
if _get_group_users('admin') == [username]:
|
||||
_, admin_password = _get_admin_user_password()
|
||||
process_input = admin_password.encode()
|
||||
_call_action(['remove-user', username], input=process_input)
|
||||
|
||||
|
||||
def _get_admin_user_password():
|
||||
"""Return an admin username and password."""
|
||||
|
||||
admin_users = _get_group_users('admin')
|
||||
|
||||
if not admin_users:
|
||||
return ('', '')
|
||||
|
||||
if test_config.admin_username in admin_users:
|
||||
return (test_config.admin_username, test_config.admin_password)
|
||||
|
||||
return (admin_users[0], admin_users[0] + '_passwd')
|
||||
|
||||
|
||||
def _rename_user(old_username, new_username=None):
|
||||
"""Rename a user."""
|
||||
new_username = new_username or _random_string()
|
||||
|
||||
_call_action(['rename-user', old_username, new_username])
|
||||
_cleanup_users.remove(old_username)
|
||||
_cleanup_users.add(new_username)
|
||||
return new_username
|
||||
|
||||
|
||||
def _get_group_users(group):
|
||||
"""Return the list of members in a group."""
|
||||
process = _call_action(['get-group-users', group])
|
||||
return process.stdout.decode().split()
|
||||
|
||||
|
||||
def _get_user_groups(username):
|
||||
"""Return the list of groups for a user."""
|
||||
process = _call_action(['get-user-groups', username],
|
||||
stdout=subprocess.PIPE)
|
||||
process = _call_action(['get-user-groups', username])
|
||||
return process.stdout.decode().split()
|
||||
|
||||
|
||||
def _create_group(groupname=None):
|
||||
groupname = groupname or _random_string()
|
||||
_call_action(['create-group', groupname])
|
||||
_cleanup_groups.add(groupname)
|
||||
if groupname != 'admin':
|
||||
_cleanup_groups.add(groupname)
|
||||
return groupname
|
||||
|
||||
|
||||
@ -181,7 +213,13 @@ def test_change_user_password():
|
||||
username, old_password = _create_user(groups=['admin'])
|
||||
old_password_hash = _get_password_hash(username)
|
||||
new_password = 'pass $123'
|
||||
_call_action(['set-user-password', username], input=new_password.encode())
|
||||
|
||||
admin_user, admin_password = _get_admin_user_password()
|
||||
|
||||
process_input = "{0}\n{1}".format(new_password, admin_password).encode()
|
||||
_call_action(['set-user-password', username, '--auth-user', admin_user],
|
||||
input=process_input)
|
||||
|
||||
new_password_hash = _get_password_hash(username)
|
||||
assert old_password_hash != new_password_hash
|
||||
|
||||
@ -191,6 +229,38 @@ def test_change_user_password():
|
||||
assert _try_login_to_ssh(username, new_password)
|
||||
|
||||
|
||||
def test_change_password_as_non_admin_user():
|
||||
"""Test changing user password as a non-admin user."""
|
||||
username, old_password = _create_user()
|
||||
old_password_hash = _get_password_hash(username)
|
||||
new_password = 'pass $123'
|
||||
|
||||
process_input = "{0}\n{1}".format(new_password, old_password).encode()
|
||||
_call_action(['set-user-password', username, '--auth-user', username],
|
||||
input=process_input)
|
||||
|
||||
new_password_hash = _get_password_hash(username)
|
||||
assert old_password_hash != new_password_hash
|
||||
|
||||
# User can login to ssh using new password but not the old password.
|
||||
# sshpass gives a return code of 5 if the password is incorrect.
|
||||
assert _try_login_to_ssh(username, old_password, returncode=5)
|
||||
assert _try_login_to_ssh(username, new_password)
|
||||
|
||||
|
||||
def test_change_other_users_password_as_non_admin():
|
||||
"""Test that changing other user's password as a non-admin user fails."""
|
||||
username1, password1 = _create_user()
|
||||
username2, _ = _create_user()
|
||||
new_password = 'pass $123'
|
||||
|
||||
process_input = "{0}\n{1}".format(new_password, password1).encode()
|
||||
with pytest.raises(subprocess.CalledProcessError):
|
||||
_call_action(
|
||||
['set-user-password', username2, '--auth-user', username1],
|
||||
input=process_input)
|
||||
|
||||
|
||||
def test_set_password_for_non_existent_user():
|
||||
"""Test setting password for a non-existent user."""
|
||||
non_existent_user = _random_string()
|
||||
@ -202,6 +272,9 @@ def test_set_password_for_non_existent_user():
|
||||
|
||||
def test_rename_user():
|
||||
"""Test whether renaming a user works."""
|
||||
# create an admin user to create other users with
|
||||
_create_user(groups=['admin'])
|
||||
|
||||
old_username, password = _create_user(groups=['admin', _random_string()])
|
||||
old_groups = _get_user_groups(old_username)
|
||||
|
||||
@ -269,24 +342,40 @@ def test_groups():
|
||||
assert _is_exit_zero([_action_file(), 'remove-group', groupname])
|
||||
|
||||
|
||||
def test_delete_admin_group_fails():
|
||||
"""Test that deleting the admin group fails."""
|
||||
groupname = 'admin'
|
||||
_create_group('admin')
|
||||
|
||||
assert not _is_exit_zero([_action_file(), 'remove-group', groupname])
|
||||
|
||||
|
||||
def test_user_group_interactions():
|
||||
"""Test adding/removing user from a groups."""
|
||||
group1 = _random_string()
|
||||
user1, _ = _create_user(groups=[group1])
|
||||
assert [group1] == _get_user_groups(user1)
|
||||
|
||||
admin_user, admin_password = _get_admin_user_password()
|
||||
|
||||
# add-user-to-group is not idempotent
|
||||
with pytest.raises(subprocess.CalledProcessError):
|
||||
_call_action(['add-user-to-group', user1, group1])
|
||||
_call_action(
|
||||
['add-user-to-group', '--auth-user', admin_user, user1, group1],
|
||||
input=admin_password.encode())
|
||||
|
||||
# The same user can be added to other new groups
|
||||
group2 = _random_string()
|
||||
_create_group(group2)
|
||||
_call_action(['add-user-to-group', user1, group2])
|
||||
_call_action(
|
||||
['add-user-to-group', '--auth-user', admin_user, user1, group2],
|
||||
input=admin_password.encode())
|
||||
|
||||
# Adding a user to a non-existent group creates the group
|
||||
group3 = _random_string()
|
||||
_call_action(['add-user-to-group', user1, group3])
|
||||
_call_action(
|
||||
['add-user-to-group', '--auth-user', admin_user, user1, group3],
|
||||
input=admin_password.encode())
|
||||
_cleanup_groups.add(group3)
|
||||
|
||||
# The expected groups got created and the user is part of them.
|
||||
@ -295,7 +384,10 @@ def test_user_group_interactions():
|
||||
|
||||
# Remove user from group
|
||||
group_to_remove_from = random.choice(expected_groups)
|
||||
_call_action(['remove-user-from-group', user1, group_to_remove_from])
|
||||
_call_action([
|
||||
'remove-user-from-group', '--auth-user', admin_user, user1,
|
||||
group_to_remove_from
|
||||
], input=admin_password.encode())
|
||||
|
||||
# User is no longer in the group that they're removed from
|
||||
expected_groups.remove(group_to_remove_from)
|
||||
@ -305,4 +397,7 @@ def test_user_group_interactions():
|
||||
random_group = _random_string()
|
||||
_create_group(random_group)
|
||||
with pytest.raises(subprocess.CalledProcessError):
|
||||
_call_action(['remove-user-from-group', user1, random_group])
|
||||
_call_action([
|
||||
'remove-user-from-group', '--auth-user', admin_user, user1,
|
||||
random_group
|
||||
], input=admin_password.encode())
|
||||
|
||||
@ -3,10 +3,18 @@
|
||||
Functional, browser based tests for users app.
|
||||
"""
|
||||
|
||||
import random
|
||||
import string
|
||||
import subprocess
|
||||
import urllib
|
||||
|
||||
import pytest
|
||||
from pytest_bdd import given, parsers, scenarios, then, when
|
||||
|
||||
from plinth.tests import functional
|
||||
|
||||
_admin_password = functional.config['DEFAULT']['password']
|
||||
|
||||
scenarios('users.feature')
|
||||
|
||||
_language_codes = {
|
||||
@ -51,11 +59,63 @@ def new_user_does_not_exist(session_browser, name):
|
||||
|
||||
@given(parsers.parse('the user {name:w} exists'))
|
||||
def test_user_exists(session_browser, name):
|
||||
functional.nav_to_module(session_browser, 'users')
|
||||
user_link = session_browser.find_link_by_href(
|
||||
'/plinth/sys/users/{}/edit/'.format(name))
|
||||
|
||||
if user_link:
|
||||
_delete_user(session_browser, name)
|
||||
|
||||
_create_user(session_browser, name, _random_string())
|
||||
|
||||
|
||||
@given(
|
||||
parsers.parse('the admin user {name:w} with password {password:w} exists'))
|
||||
def test_admin_user_exists(session_browser, name, password):
|
||||
functional.nav_to_module(session_browser, 'users')
|
||||
user_link = session_browser.find_link_by_href('/plinth/sys/users/' + name +
|
||||
'/edit/')
|
||||
if not user_link:
|
||||
create_user(session_browser, name, 'secret123')
|
||||
if user_link:
|
||||
_delete_user(session_browser, name)
|
||||
|
||||
_create_user(session_browser, name, password, is_admin=True)
|
||||
|
||||
|
||||
@given(parsers.parse('the user {name:w} with password {password:w} exists'))
|
||||
def user_exists(session_browser, name, password):
|
||||
functional.nav_to_module(session_browser, 'users')
|
||||
user_link = session_browser.find_link_by_href('/plinth/sys/users/' + name +
|
||||
'/edit/')
|
||||
if user_link:
|
||||
_delete_user(session_browser, name)
|
||||
|
||||
_create_user(session_browser, name, password)
|
||||
|
||||
|
||||
@given(
|
||||
parsers.parse(
|
||||
"I'm logged in as the user {username:w} with password {password:w}"))
|
||||
def logged_in_user_with_account(session_browser, username, password):
|
||||
functional.login_with_account(session_browser, functional.base_url,
|
||||
username, password)
|
||||
|
||||
|
||||
@given(parsers.parse('the ssh keys are {ssh_keys:w}'))
|
||||
def ssh_keys(session_browser, ssh_keys):
|
||||
_set_ssh_keys(session_browser, ssh_keys)
|
||||
|
||||
|
||||
@given('the client has a ssh key')
|
||||
def generate_ssh_keys(session_browser, tmp_path_factory):
|
||||
key_file = tmp_path_factory.getbasetemp() / 'users-ssh.key'
|
||||
try:
|
||||
key_file.unlink()
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
subprocess.check_call(
|
||||
['ssh-keygen', '-t', 'ed25519', '-N', '', '-q', '-f',
|
||||
str(key_file)])
|
||||
|
||||
|
||||
@when(
|
||||
@ -74,6 +134,123 @@ def delete_user(session_browser, name):
|
||||
_delete_user(session_browser, name)
|
||||
|
||||
|
||||
@when('I change the language to <language>')
|
||||
def change_language(session_browser, language):
|
||||
_set_language(session_browser, _language_codes[language])
|
||||
|
||||
|
||||
@when(parsers.parse('I change the ssh keys to {ssh_keys:w}'))
|
||||
def change_ssh_keys(session_browser, ssh_keys):
|
||||
_set_ssh_keys(session_browser, ssh_keys)
|
||||
|
||||
|
||||
@when('I remove the ssh keys')
|
||||
def remove_ssh_keys(session_browser):
|
||||
_set_ssh_keys(session_browser, '')
|
||||
|
||||
|
||||
@when(
|
||||
parsers.parse(
|
||||
'I change the ssh keys to {ssh_keys:w} for the user {username:w}'))
|
||||
def change_user_ssh_keys(session_browser, ssh_keys, username):
|
||||
_set_ssh_keys(session_browser, ssh_keys, username=username)
|
||||
|
||||
|
||||
@when(
|
||||
parsers.parse(
|
||||
'I change my ssh keys to {ssh_keys:w} with password {password:w}'))
|
||||
def change_my_ssh_keys(session_browser, ssh_keys, password):
|
||||
_set_ssh_keys(session_browser, ssh_keys, password=password)
|
||||
|
||||
|
||||
@when(parsers.parse('I set the user {username:w} as inactive'))
|
||||
def set_user_inactive(session_browser, username):
|
||||
_set_user_inactive(session_browser, username)
|
||||
|
||||
|
||||
@when(
|
||||
parsers.parse(
|
||||
'I change my password from {current_password} to {new_password:w}'))
|
||||
def change_my_password(session_browser, current_password, new_password):
|
||||
_change_password(session_browser, new_password,
|
||||
current_password=current_password)
|
||||
|
||||
|
||||
@when(
|
||||
parsers.parse(
|
||||
'I change the user {username:w} password to {new_password:w}'))
|
||||
def change_other_user_password(session_browser, username, new_password):
|
||||
_change_password(session_browser, new_password, username=username)
|
||||
|
||||
|
||||
@when('I configure the ssh keys')
|
||||
def configure_ssh_keys(session_browser, tmp_path_factory):
|
||||
public_key_file = tmp_path_factory.getbasetemp() / 'users-ssh.key.pub'
|
||||
public_key = public_key_file.read_text()
|
||||
_set_ssh_keys(session_browser, public_key)
|
||||
|
||||
|
||||
@then(
|
||||
parsers.parse(
|
||||
'I can log in as the user {username:w} with password {password:w}'))
|
||||
def can_log_in(session_browser, username, password):
|
||||
functional.visit(session_browser, '/plinth/accounts/logout/')
|
||||
functional.login_with_account(session_browser, functional.base_url,
|
||||
username, password)
|
||||
assert len(session_browser.find_by_id('id_user_menu')) > 0
|
||||
|
||||
|
||||
@then(
|
||||
parsers.parse(
|
||||
"I can't log in as the user {username:w} with password {password:w}"))
|
||||
def cannot_log_in(session_browser, username, password):
|
||||
functional.visit(session_browser, '/plinth/accounts/logout/')
|
||||
functional.login_with_account(session_browser, functional.base_url,
|
||||
username, password)
|
||||
assert len(session_browser.find_by_id('id_user_menu')) == 0
|
||||
|
||||
|
||||
@then('Plinth language should be <language>')
|
||||
def plinth_language_should_be(session_browser, language):
|
||||
assert _check_language(session_browser, _language_codes[language])
|
||||
|
||||
|
||||
@then(parsers.parse('the ssh keys should be {ssh_keys:w}'))
|
||||
def ssh_keys_match(session_browser, ssh_keys):
|
||||
assert _get_ssh_keys(session_browser) == ssh_keys
|
||||
|
||||
|
||||
@then('the ssh keys should be removed')
|
||||
def ssh_keys_should_be_removed(session_browser, ssh_keys):
|
||||
assert _get_ssh_keys(session_browser) == ''
|
||||
|
||||
|
||||
@then(
|
||||
parsers.parse(
|
||||
'the ssh keys should be {ssh_keys:w} for the user {username:w}'))
|
||||
def ssh_keys_match_for_user(session_browser, ssh_keys, username):
|
||||
assert _get_ssh_keys(session_browser, username=username) == ssh_keys
|
||||
|
||||
|
||||
@then(parsers.parse('my ssh keys should be {ssh_keys:w}'))
|
||||
def my_ssh_keys_match(session_browser, ssh_keys):
|
||||
assert _get_ssh_keys(session_browser) == ssh_keys
|
||||
|
||||
|
||||
@then('the client should be able to connect passwordless over ssh')
|
||||
def should_connect_passwordless_over_ssh(session_browser, tmp_path_factory):
|
||||
key_file = tmp_path_factory.getbasetemp() / 'users-ssh.key'
|
||||
_try_login_to_ssh(key_file=key_file)
|
||||
|
||||
|
||||
@then("the client shouldn't be able to connect passwordless over ssh")
|
||||
def should_not_connect_passwordless_over_ssh(session_browser,
|
||||
tmp_path_factory):
|
||||
key_file = tmp_path_factory.getbasetemp() / 'users-ssh.key'
|
||||
with pytest.raises(subprocess.CalledProcessError):
|
||||
_try_login_to_ssh(key_file=key_file)
|
||||
|
||||
|
||||
@then(parsers.parse('{name:w} should be listed as a user'))
|
||||
def new_user_is_listed(session_browser, name):
|
||||
assert _is_user(session_browser, name)
|
||||
@ -84,23 +261,16 @@ def new_user_is_not_listed(session_browser, name):
|
||||
assert not _is_user(session_browser, name)
|
||||
|
||||
|
||||
@when('I change the language to <language>')
|
||||
def change_language(session_browser, language):
|
||||
_set_language(session_browser, _language_codes[language])
|
||||
|
||||
|
||||
@then('Plinth language should be <language>')
|
||||
def plinth_language_should_be(session_browser, language):
|
||||
assert _check_language(session_browser, _language_codes[language])
|
||||
|
||||
|
||||
def _create_user(browser, name, password):
|
||||
def _create_user(browser, name, password, is_admin=False):
|
||||
functional.nav_to_module(browser, 'users')
|
||||
with functional.wait_for_page_update(browser):
|
||||
browser.find_link_by_href('/plinth/sys/users/create/').first.click()
|
||||
browser.find_by_id('id_username').fill(name)
|
||||
browser.find_by_id('id_password1').fill(password)
|
||||
browser.find_by_id('id_password2').fill(password)
|
||||
if is_admin:
|
||||
browser.find_by_id('id_groups_0').check()
|
||||
browser.find_by_id('id_confirm_password').fill(_admin_password)
|
||||
functional.submit(browser)
|
||||
|
||||
|
||||
@ -110,6 +280,7 @@ def _rename_user(browser, old_name, new_name):
|
||||
browser.find_link_by_href('/plinth/sys/users/' + old_name +
|
||||
'/edit/').first.click()
|
||||
browser.find_by_id('id_username').fill(new_name)
|
||||
browser.find_by_id('id_confirm_password').fill(_admin_password)
|
||||
functional.submit(browser)
|
||||
|
||||
|
||||
@ -135,6 +306,7 @@ def _set_language(browser, language_code):
|
||||
functional.visit(browser, '/plinth/sys/users/{}/edit/'.format(username))
|
||||
browser.find_by_xpath('//select[@id="id_language"]//option[@value="' +
|
||||
language_code + '"]').first.click()
|
||||
browser.find_by_id('id_confirm_password').fill(_admin_password)
|
||||
functional.submit(browser)
|
||||
|
||||
|
||||
@ -142,3 +314,73 @@ def _check_language(browser, language_code):
|
||||
functional.nav_to_module(browser, 'config')
|
||||
return browser.find_by_css('.app-titles').first.find_by_tag(
|
||||
'h2').first.value == _config_page_title_language_map[language_code]
|
||||
|
||||
|
||||
def _get_ssh_keys(browser, username=None):
|
||||
functional.visit(browser, '/plinth/')
|
||||
if username is None:
|
||||
browser.find_by_id('id_user_menu').click()
|
||||
browser.find_by_id('id_user_edit_menu').click()
|
||||
else:
|
||||
functional.visit(browser,
|
||||
'/plinth/sys/users/{}/edit/'.format(username))
|
||||
return browser.find_by_id('id_ssh_keys').text
|
||||
|
||||
|
||||
def _random_string(length=8):
|
||||
"""Return a random string created from lower case ascii."""
|
||||
return ''.join(
|
||||
[random.choice(string.ascii_lowercase) for _ in range(length)])
|
||||
|
||||
|
||||
def _set_ssh_keys(browser, ssh_keys, username=None, password=None):
|
||||
if username is None:
|
||||
browser.find_by_id('id_user_menu').click()
|
||||
browser.find_by_id('id_user_edit_menu').click()
|
||||
else:
|
||||
functional.visit(browser,
|
||||
'/plinth/sys/users/{}/edit/'.format(username))
|
||||
|
||||
password = password or _admin_password
|
||||
|
||||
browser.find_by_id('id_ssh_keys').fill(ssh_keys)
|
||||
browser.find_by_id('id_confirm_password').fill(password)
|
||||
|
||||
functional.submit(browser)
|
||||
|
||||
|
||||
def _set_user_inactive(browser, username):
|
||||
functional.visit(browser, '/plinth/sys/users/{}/edit/'.format(username))
|
||||
browser.find_by_id('id_is_active').uncheck()
|
||||
browser.find_by_id('id_confirm_password').fill(_admin_password)
|
||||
functional.submit(browser)
|
||||
|
||||
|
||||
def _change_password(browser, new_password, current_password=None,
|
||||
username=None):
|
||||
current_password = current_password or _admin_password
|
||||
|
||||
if username is None:
|
||||
browser.find_by_id('id_user_menu').click()
|
||||
browser.find_by_id('id_change_password_menu').click()
|
||||
else:
|
||||
functional.visit(
|
||||
browser, '/plinth/sys/users/{}/change_password/'.format(username))
|
||||
|
||||
browser.find_by_id('id_new_password1').fill(new_password)
|
||||
browser.find_by_id('id_new_password2').fill(new_password)
|
||||
browser.find_by_id('id_confirm_password').fill(current_password)
|
||||
functional.submit(browser)
|
||||
|
||||
|
||||
def _try_login_to_ssh(key_file=None):
|
||||
user = functional.config['DEFAULT']['username']
|
||||
hostname = urllib.parse.urlparse(
|
||||
functional.config['DEFAULT']['url']).hostname
|
||||
port = functional.config['DEFAULT']['ssh_port']
|
||||
|
||||
subprocess.check_call([
|
||||
'ssh', '-p', port, '-i', key_file, '-q', '-o',
|
||||
'StrictHostKeyChecking=no', '-o', 'UserKnownHostsFile=/dev/null', '-o',
|
||||
'BatchMode=yes', '{0}@{1}'.format(user, hostname), '/bin/true'
|
||||
])
|
||||
|
||||
@ -67,6 +67,7 @@ def make_request(request, view, as_admin=True, **kwargs):
|
||||
|
||||
user = User.objects.create(username='tester')
|
||||
admin_user = User.objects.create(username='admin')
|
||||
admin_user.set_password('adminpassword')
|
||||
|
||||
request.user = admin_user if as_admin else user
|
||||
|
||||
@ -99,7 +100,8 @@ def test_create_user_view(rf, username):
|
||||
form_data = {
|
||||
'username': username,
|
||||
'password1': password,
|
||||
'password2': password
|
||||
'password2': password,
|
||||
'confirm_password': 'adminpassword',
|
||||
}
|
||||
|
||||
request = rf.post(urls.reverse('users:create'), data=form_data)
|
||||
@ -111,6 +113,31 @@ def test_create_user_view(rf, username):
|
||||
assert response.url == urls.reverse('users:index')
|
||||
|
||||
|
||||
@pytest.mark.parametrize('password,error', [
|
||||
('', {
|
||||
'confirm_password': ['This field is required.']
|
||||
}),
|
||||
('wrong_password', {
|
||||
'confirm_password': ['Invalid password.']
|
||||
}),
|
||||
])
|
||||
def test_create_user_invalid_admin_view(rf, password, error):
|
||||
"""Test that user creation with an invalid admin password fails."""
|
||||
user_password = 'testingtesting'
|
||||
form_data = {
|
||||
'username': 'test-new',
|
||||
'password1': user_password,
|
||||
'password2': user_password,
|
||||
'confirm_password': password,
|
||||
}
|
||||
|
||||
request = rf.post(urls.reverse('users:create'), data=form_data)
|
||||
view = views.UserCreate.as_view()
|
||||
response, messages = make_request(request, view)
|
||||
|
||||
assert response.context_data['form'].errors == error
|
||||
|
||||
|
||||
def test_create_user_form_view(rf):
|
||||
"""Test that a username field on create form has correct attributes."""
|
||||
request = rf.get(urls.reverse('users:create'))
|
||||
@ -133,7 +160,8 @@ def test_create_user_invalid_username_view(rf, username):
|
||||
form_data = {
|
||||
'username': username,
|
||||
'password1': 'testingtesting',
|
||||
'password2': 'testingtesting'
|
||||
'password2': 'testingtesting',
|
||||
'confirm_password': 'adminpassword',
|
||||
}
|
||||
|
||||
request = rf.post(urls.reverse('users:create'), data=form_data)
|
||||
@ -157,7 +185,8 @@ def test_create_user_taken_or_reserved_username_view(rf, username, error):
|
||||
form_data = {
|
||||
'username': username,
|
||||
'password1': 'testingtesting',
|
||||
'password2': 'testingtesting'
|
||||
'password2': 'testingtesting',
|
||||
'confirm_password': 'adminpassword',
|
||||
}
|
||||
|
||||
request = rf.post(urls.reverse('users:create'), data=form_data)
|
||||
@ -175,7 +204,8 @@ def test_update_user_view(rf):
|
||||
form_data = {
|
||||
'username': new_username,
|
||||
'password1': 'testingtesting',
|
||||
'password2': 'testingtesting'
|
||||
'password2': 'testingtesting',
|
||||
'confirm_password': 'adminpassword',
|
||||
}
|
||||
|
||||
url = urls.reverse('users:edit', kwargs={'slug': user})
|
||||
@ -189,12 +219,40 @@ def test_update_user_view(rf):
|
||||
kwargs={'slug': new_username})
|
||||
|
||||
|
||||
@pytest.mark.parametrize('password,error', [
|
||||
('', {
|
||||
'confirm_password': ['This field is required.']
|
||||
}),
|
||||
('wrong_password', {
|
||||
'confirm_password': ['Invalid password.']
|
||||
}),
|
||||
])
|
||||
def test_update_user_invalid_admin_view(rf, password, error):
|
||||
"""Test that updating username with an invalid admin password fails."""
|
||||
user = 'tester'
|
||||
new_username = 'tester-renamed'
|
||||
form_data = {
|
||||
'username': new_username,
|
||||
'password1': 'testingtesting',
|
||||
'password2': 'testingtesting',
|
||||
'confirm_password': password,
|
||||
}
|
||||
|
||||
url = urls.reverse('users:edit', kwargs={'slug': user})
|
||||
request = rf.post(url, data=form_data)
|
||||
view = views.UserUpdate.as_view()
|
||||
response, messages = make_request(request, view, as_admin=True, slug=user)
|
||||
|
||||
assert response.context_data['form'].errors == error
|
||||
|
||||
|
||||
def test_update_user_without_permissions_view(rf):
|
||||
"""Test that updating other user as non-admin user raises exception."""
|
||||
form_data = {
|
||||
'username': 'admin-renamed',
|
||||
'password1': 'testingtesting',
|
||||
'password2': 'testingtesting'
|
||||
'password2': 'testingtesting',
|
||||
'confirm_password': 'adminpassword',
|
||||
}
|
||||
|
||||
url = urls.reverse('users:edit', kwargs={'slug': 'admin'})
|
||||
@ -224,7 +282,8 @@ def test_user_change_password_view(rf):
|
||||
user = 'admin'
|
||||
form_data = {
|
||||
'new_password1': 'testingtesting2',
|
||||
'new_password2': 'testingtesting2'
|
||||
'new_password2': 'testingtesting2',
|
||||
'confirm_password': 'adminpassword',
|
||||
}
|
||||
|
||||
url = urls.reverse('users:change_password', kwargs={'slug': user})
|
||||
@ -237,6 +296,32 @@ def test_user_change_password_view(rf):
|
||||
assert response.url == urls.reverse('users:edit', kwargs={'slug': user})
|
||||
|
||||
|
||||
@pytest.mark.parametrize('password,error', [
|
||||
('', {
|
||||
'confirm_password': ['This field is required.']
|
||||
}),
|
||||
('wrong_password', {
|
||||
'confirm_password': ['Invalid password.']
|
||||
}),
|
||||
])
|
||||
def test_user_change_password_invalid_admin_view(rf, password, error):
|
||||
"""Test that changing password with an invalid admin password fails."""
|
||||
user = 'admin'
|
||||
form_data = {
|
||||
'new_password1': 'testingtesting2',
|
||||
'new_password2': 'testingtesting2',
|
||||
'confirm_password': password,
|
||||
}
|
||||
|
||||
url = urls.reverse('users:change_password', kwargs={'slug': user})
|
||||
request = rf.post(url, data=form_data)
|
||||
view = views.UserChangePassword.as_view()
|
||||
response, messages = make_request(request, view, as_admin=True, slug=user)
|
||||
|
||||
assert response.context_data['form'].errors == error
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
def test_user_change_password_without_permissions_view(rf):
|
||||
"""
|
||||
Test that changing other user password as a non-admin user raises
|
||||
@ -245,7 +330,8 @@ def test_user_change_password_without_permissions_view(rf):
|
||||
user = 'admin'
|
||||
form_data = {
|
||||
'new_password1': 'adminadmin2',
|
||||
'new_password2': 'adminadmin2'
|
||||
'new_password2': 'adminadmin2',
|
||||
'confirm_password': 'adminpassword',
|
||||
}
|
||||
|
||||
url = urls.reverse('users:change_password', kwargs={'slug': user})
|
||||
|
||||
@ -2,11 +2,6 @@
|
||||
|
||||
# TODO Scenario: Add user to wiki group
|
||||
# TODO Scenario: Remove user from wiki group
|
||||
# TODO Scenario: Set user SSH key
|
||||
# TODO Scenario: Clear user SSH key
|
||||
# TODO Scenario: Make user inactive
|
||||
# TODO Scenario: Make user active
|
||||
# TODO Scenario: Change user password
|
||||
|
||||
@system @essential @users
|
||||
Feature: Users and Groups
|
||||
@ -27,10 +22,39 @@ Scenario: Rename user
|
||||
Then alice should not be listed as a user
|
||||
Then bob should be listed as a user
|
||||
|
||||
Scenario: Delete user
|
||||
Scenario: Admin users can change their own ssh keys
|
||||
When I change the ssh keys to somekey123
|
||||
Then the ssh keys should be somekey123
|
||||
|
||||
Scenario: Non-admin users can change their own ssh keys
|
||||
Given the user alice with password secret123secret123 exists
|
||||
And I'm logged in as the user alice with password secret123secret123
|
||||
When I change my ssh keys to somekey456 with password secret123secret123
|
||||
Then my ssh keys should be somekey456
|
||||
|
||||
Scenario: Admin users can change other user's ssh keys
|
||||
Given the user alice exists
|
||||
When I delete the user alice
|
||||
Then alice should not be listed as a user
|
||||
When I change the ssh keys to alicesomekey123 for the user alice
|
||||
Then the ssh keys should be alicesomekey123 for the user alice
|
||||
|
||||
Scenario: Users can remove ssh keys
|
||||
Given the ssh keys are somekey123
|
||||
When I remove the ssh keys
|
||||
Then the ssh keys should be removed
|
||||
|
||||
Scenario: Users can connect passwordless over ssh if the keys are set
|
||||
Given the ssh application is enabled
|
||||
And the client has a ssh key
|
||||
When I configure the ssh keys
|
||||
Then the client should be able to connect passwordless over ssh
|
||||
|
||||
Scenario: Users can't connect passwordless over ssh if the keys aren't set
|
||||
Given the ssh application is enabled
|
||||
And the client has a ssh key
|
||||
And the ssh keys are configured
|
||||
When I remove the ssh keys
|
||||
Then the client shouldn't be able to connect passwordless over ssh
|
||||
|
||||
|
||||
Scenario Outline: Change language
|
||||
When I change the language to <language>
|
||||
@ -52,3 +76,30 @@ Scenario Outline: Change language
|
||||
| Türkçe |
|
||||
| 简体中文 |
|
||||
| None |
|
||||
|
||||
Scenario: Admin users can set other users an inactive
|
||||
Given the user alice with password secret789secret789 exists
|
||||
When I set the user alice as inactive
|
||||
Then I can't log in as the user alice with password secret789secret789
|
||||
|
||||
Scenario: Admin users can change their own password
|
||||
Given the admin user testadmin with password testingtesting123 exists
|
||||
And I'm logged in as the user testadmin with password testingtesting123
|
||||
When I change my password from testingtesting123 to testingtesting456
|
||||
Then I can log in as the user testadmin with password testingtesting456
|
||||
|
||||
Scenario: Admin user can change other user's password
|
||||
Given the user alice exists
|
||||
When I change the user alice password to secretsecret567
|
||||
Then I can log in as the user alice with password secretsecret567
|
||||
|
||||
Scenario: Non-admin users can change their own password
|
||||
Given the user alice with password secret123secret123 exists
|
||||
And I'm logged in as the user alice with password secret123secret123
|
||||
When I change my password from secret123secret123 to secret456secret456
|
||||
Then I can log in as the user alice with password secret456secret456
|
||||
|
||||
Scenario: Delete user
|
||||
Given the user alice exists
|
||||
When I delete the user alice
|
||||
Then alice should not be listed as a user
|
||||
|
||||
@ -6,6 +6,7 @@ from django.contrib.auth import update_session_auth_hash
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.messages.views import SuccessMessageMixin
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.urls import reverse, reverse_lazy
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils.translation import ugettext_lazy
|
||||
@ -25,6 +26,7 @@ from .forms import (CreateUserForm, FirstBootForm, UserChangePasswordForm,
|
||||
|
||||
class ContextMixin(object):
|
||||
"""Mixin to add 'title' to the template context."""
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
"""Add self.title to template context."""
|
||||
context = super(ContextMixin, self).get_context_data(**kwargs)
|
||||
@ -184,6 +186,24 @@ class FirstBootView(django.views.generic.CreateView):
|
||||
|
||||
form_class = FirstBootForm
|
||||
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
"""Check if there is no possibility to create a new admin account."""
|
||||
if request.method == 'POST' and 'skip' in request.POST:
|
||||
first_boot.mark_step_done('users_firstboot')
|
||||
return HttpResponseRedirect(reverse(first_boot.next_step()))
|
||||
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_context_data(self, *args, **kwargs):
|
||||
"""Add admin users to context data."""
|
||||
context = super().get_context_data(*args, **kwargs)
|
||||
|
||||
output = actions.superuser_run('users', ['get-group-users', 'admin'])
|
||||
admin_users = output.strip().split('\n') if output.strip() else []
|
||||
context['admin_users'] = admin_users
|
||||
|
||||
return context
|
||||
|
||||
def get_form_kwargs(self):
|
||||
"""Make request available to the form (to insert messages)"""
|
||||
kwargs = super(FirstBootView, self).get_form_kwargs()
|
||||
|
||||
@ -146,7 +146,7 @@
|
||||
|
||||
{% include "help-menu.html" %}
|
||||
|
||||
<li class="dropdown">
|
||||
<li id="id_user_menu" class="dropdown">
|
||||
<a href="{% url 'users:edit' request.user.username %}"
|
||||
class="dropdown-toggle" data-toggle="dropdown"
|
||||
role="button" aria-expanded="false">
|
||||
@ -156,13 +156,15 @@
|
||||
</a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li>
|
||||
<a href="{% url 'users:edit' request.user.username %}"
|
||||
<a id="id_user_edit_menu"
|
||||
href="{% url 'users:edit' request.user.username %}"
|
||||
title="{% trans "Edit"%}">
|
||||
{% trans "Edit" %}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{% url 'users:change_password' request.user.username %}"
|
||||
<a id='id_change_password_menu'
|
||||
href="{% url 'users:change_password' request.user.username %}"
|
||||
title="{% trans "Change password" %}">
|
||||
{% trans "Change password" %}
|
||||
</a>
|
||||
|
||||
22
plinth/templates/form.html
Normal file
22
plinth/templates/form.html
Normal file
@ -0,0 +1,22 @@
|
||||
{% extends "base.html" %}
|
||||
{% comment %}
|
||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
{% endcomment %}
|
||||
|
||||
{% load bootstrap %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h3>{{ title }}</h3>
|
||||
|
||||
<form class="form" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{{ form|bootstrap }}
|
||||
|
||||
<input type="submit" class="btn btn-primary"
|
||||
value="{% trans "Submit" %}"/>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
@ -14,6 +14,12 @@ backups_ssh_password = None
|
||||
backups_ssh_keyfile = None
|
||||
backups_ssh_repo_uuid = 'plinth_test_sshfs' # will be mounted to /media/<uuid>
|
||||
|
||||
# An existing admin account for privileged actions. If this admin account
|
||||
# doesn't exist and no other admin accounts exist, a random admin account is
|
||||
# created and deleted afterwards by the tests.
|
||||
admin_username = 'tester'
|
||||
admin_password = 'testingtesting'
|
||||
|
||||
# Import config_local to override the default variables
|
||||
try:
|
||||
from .config_local import * # noqa, pylint: disable=unused-import
|
||||
|
||||
@ -22,6 +22,8 @@ config.read(pathlib.Path(__file__).with_name('config.ini'))
|
||||
|
||||
config['DEFAULT']['url'] = os.environ.get('FREEDOMBOX_URL',
|
||||
config['DEFAULT']['url']).rstrip('/')
|
||||
config['DEFAULT']['ssh_port'] = os.environ.get('FREEDOMBOX_SSH_PORT',
|
||||
config['DEFAULT']['ssh_port'])
|
||||
config['DEFAULT']['samba_port'] = os.environ.get(
|
||||
'FREEDOMBOX_SAMBA_PORT', config['DEFAULT']['samba_port'])
|
||||
|
||||
@ -234,15 +236,25 @@ def _create_admin_account(browser, username, password):
|
||||
submit(browser)
|
||||
|
||||
|
||||
def login(browser, url, username, password):
|
||||
def login(browser):
|
||||
"""Login to the interface."""
|
||||
login_with_account(browser, base_url, config['DEFAULT']['username'],
|
||||
config['DEFAULT']['password'])
|
||||
|
||||
|
||||
def login_with_account(browser, url, username, password):
|
||||
|
||||
# XXX: Find a way to remove the hardcoded jsxc URL
|
||||
if '/plinth/' not in browser.url or '/jsxc/jsxc' in browser.url:
|
||||
browser.visit(url)
|
||||
|
||||
apps_link = browser.find_link_by_href('/plinth/apps/')
|
||||
if len(apps_link):
|
||||
return
|
||||
user_menu = browser.find_by_id('id_user_menu')
|
||||
|
||||
if len(user_menu):
|
||||
if user_menu.text == username:
|
||||
return
|
||||
|
||||
visit(browser, '/plinth/accounts/logout/')
|
||||
|
||||
login_button = browser.find_link_by_href('/plinth/accounts/login/')
|
||||
if login_button:
|
||||
|
||||
@ -2,4 +2,5 @@
|
||||
url = https://localhost:4430
|
||||
username = tester
|
||||
password = testingtesting
|
||||
ssh_port = 2222
|
||||
samba_port = 4450
|
||||
|
||||
@ -13,9 +13,7 @@ from plinth.tests import functional
|
||||
|
||||
@given("I'm a logged in user")
|
||||
def logged_in_user(session_browser):
|
||||
functional.login(session_browser, functional.base_url,
|
||||
functional.config['DEFAULT']['username'],
|
||||
functional.config['DEFAULT']['password'])
|
||||
functional.login(session_browser)
|
||||
|
||||
|
||||
@given("I'm a logged out user")
|
||||
@ -57,7 +55,7 @@ def disable_application(session_browser, app_name):
|
||||
@given(parsers.parse('the {app_name:w} application can be disabled'))
|
||||
def app_can_be_disabled(session_browser, app_name):
|
||||
if not functional.app_can_be_disabled(session_browser, app_name):
|
||||
pytest.skip(f'network time application can\'t be disabled')
|
||||
pytest.skip('network time application can\'t be disabled')
|
||||
|
||||
|
||||
@then(parsers.parse('the {service_name:w} service should be running'))
|
||||
|
||||
@ -67,6 +67,7 @@ def is_user_admin(request, cached=False):
|
||||
|
||||
class YAMLFile(object):
|
||||
"""A context management class for updating YAML files"""
|
||||
|
||||
def __init__(self, yaml_file):
|
||||
"""Return a context object for the YAML file.
|
||||
|
||||
@ -156,3 +157,10 @@ def is_axes_old():
|
||||
return False
|
||||
|
||||
return LooseVersion(version) < LooseVersion('5.0')
|
||||
|
||||
|
||||
def is_authenticated_user(username, password):
|
||||
"""Return true if the user authentication succeeds."""
|
||||
import pam # Minimize dependencies for running tests
|
||||
pam_authenticator = pam.pam()
|
||||
return bool(pam_authenticator.authenticate(username, password))
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user