mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-08-12 12:26:04 +00:00
Compare commits
11 Commits
debian/26.
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
53e7fb013c | ||
|
|
ba0b39c2a4 | ||
|
|
c5f9606f43 | ||
|
|
5013c05d35 | ||
|
|
f2e898090c | ||
|
|
d2a959a277 | ||
|
|
c1aeb1f661 | ||
|
|
841b0382e7 | ||
|
|
2aaee483d4 | ||
|
|
22ac98d6a7 | ||
|
|
a04c1c801d |
13
debian/freedombox.postinst
vendored
13
debian/freedombox.postinst
vendored
@ -1,13 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# Due to a change in sudo, now it runs PAM modules even on password-less
|
||||
# invocations. This leads to plinth not being able to run root privileges. This
|
||||
# is because of our own restrictions in /etc/security/access.conf. Since Plinth
|
||||
# is locked out after upgrade, we need to do this in postinst.
|
||||
sed -i 's+-:ALL EXCEPT root fbx (admin) (sudo):ALL+-:ALL EXCEPT root fbx plinth (admin) (sudo):ALL+' /etc/security/access.conf
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
@ -45,10 +45,10 @@ box_name = 'FreedomBox'
|
||||
# Other globals
|
||||
develop = False
|
||||
|
||||
config_files = []
|
||||
config_files: list[str] = []
|
||||
|
||||
|
||||
def expand_to_dot_d_paths(file_paths):
|
||||
def expand_to_dot_d_paths(file_paths: list[str]) -> list[str]:
|
||||
"""Expand a list of file paths to include file.d/* also."""
|
||||
final_list = []
|
||||
for file_path in file_paths:
|
||||
@ -65,7 +65,7 @@ def expand_to_dot_d_paths(file_paths):
|
||||
return final_list
|
||||
|
||||
|
||||
def get_develop_config_path():
|
||||
def get_develop_config_path() -> str:
|
||||
"""Return config path of current source folder for development mode."""
|
||||
root_directory = os.path.dirname(os.path.realpath(__file__))
|
||||
root_directory = os.path.realpath(root_directory)
|
||||
@ -73,7 +73,7 @@ def get_develop_config_path():
|
||||
return config_path
|
||||
|
||||
|
||||
def get_config_paths():
|
||||
def get_config_paths() -> list[str]:
|
||||
"""Get default config paths."""
|
||||
return [
|
||||
'/usr/share/freedombox/freedombox.config',
|
||||
@ -82,14 +82,14 @@ def get_config_paths():
|
||||
]
|
||||
|
||||
|
||||
def read():
|
||||
def read() -> None:
|
||||
"""Read all configuration files."""
|
||||
config_paths = get_config_paths()
|
||||
for config_path in expand_to_dot_d_paths(config_paths):
|
||||
read_file(config_path)
|
||||
|
||||
|
||||
def read_file(config_path):
|
||||
def read_file(config_path: str):
|
||||
"""Read and merge into defaults a single configuration file."""
|
||||
if not os.path.isfile(config_path): # Does not throw exceptions
|
||||
# Ignore missing configuration files
|
||||
@ -101,9 +101,9 @@ def read_file(config_path):
|
||||
parser = configparser.ConfigParser(
|
||||
defaults={
|
||||
'parent_dir':
|
||||
pathlib.Path(config_path).parent.resolve(),
|
||||
str(pathlib.Path(config_path).parent.resolve()),
|
||||
'parent_parent_dir':
|
||||
pathlib.Path(config_path).parent.parent.resolve(),
|
||||
str(pathlib.Path(config_path).parent.parent.resolve()),
|
||||
})
|
||||
parser.read(config_path) # Ignores all read errors
|
||||
|
||||
@ -123,6 +123,7 @@ def read_file(config_path):
|
||||
)
|
||||
|
||||
for section, name, datatype in config_items:
|
||||
value: int | str | bool
|
||||
try:
|
||||
value = parser.get(section, name)
|
||||
except (configparser.NoSectionError, configparser.NoOptionError):
|
||||
|
||||
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-29 02:26+0000\n"
|
||||
"PO-Revision-Date: 2026-06-04 18:01+0000\n"
|
||||
"PO-Revision-Date: 2026-08-04 17:01+0000\n"
|
||||
"Last-Translator: Jiří Podhorecký <j.podhorecky@volny.cz>\n"
|
||||
"Language-Team: Czech <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/cs/>\n"
|
||||
@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
|
||||
"X-Generator: Weblate 2026.6\n"
|
||||
"X-Generator: Weblate 2026.8.1.dev0\n"
|
||||
|
||||
#: plinth/config.py:103
|
||||
#, python-brace-format
|
||||
@ -2969,7 +2969,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/first_boot/__init__.py:47
|
||||
msgid "First Boot"
|
||||
msgstr ""
|
||||
msgstr "První start"
|
||||
|
||||
#: plinth/modules/first_boot/__init__.py:68
|
||||
msgid "Setup complete! Next steps:"
|
||||
@ -2993,18 +2993,14 @@ msgid "See next steps"
|
||||
msgstr "Viz další kroky"
|
||||
|
||||
#: plinth/modules/first_boot/forms.py:14
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "Enter the secret generated during FreedomBox installation. This secret "
|
||||
#| "can also be obtained by running the command \"sudo cat /var/lib/plinth/"
|
||||
#| "firstboot-wizard-secret\" on your {box_name}"
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Enter the secret generated during {box_name} installation. This secret can "
|
||||
"be obtained by running the command \"sudo cat /var/lib/plinth/firstboot-"
|
||||
"wizard-secret\" on your {box_name}"
|
||||
msgstr ""
|
||||
"Zadejte tajemství vygenerované při instalaci FreedomBoxu. Toto tajemství lze "
|
||||
"také získat spuštěním příkazu \"sudo cat /var/lib/plinth/firstboot-wizard-"
|
||||
"Zadejte tajemství vygenerované při instalaci {box_name}. Toto tajemství lze "
|
||||
"získat spuštěním příkazu \"sudo cat /var/lib/plinth/firstboot-wizard-"
|
||||
"secret\" na vašem {box_name}"
|
||||
|
||||
#: plinth/modules/first_boot/forms.py:19
|
||||
@ -4670,10 +4666,14 @@ msgid ""
|
||||
"game. It allows users to build and explore 3D worlds, interact with others, "
|
||||
"and engage in various activities such as crafting, mining, and combat."
|
||||
msgstr ""
|
||||
"Luanti, dříve známá jako Minetest, je sandboxová hra pro více hráčů s "
|
||||
"nekonečným světem založená na blocích. Umožňuje uživatelům stavět a "
|
||||
"prozkoumávat 3D světy, komunikovat s ostatními a věnovat se různým "
|
||||
"činnostem, jako je výroba předmětů, těžba surovin a boj."
|
||||
|
||||
#: plinth/modules/minetest/__init__.py:36
|
||||
msgid "Luanti offers several educational benefits, including:"
|
||||
msgstr ""
|
||||
msgstr "Luanti nabízí několik vzdělávacích výhod, včetně:"
|
||||
|
||||
#: plinth/modules/minetest/__init__.py:37
|
||||
msgid ""
|
||||
@ -4682,6 +4682,9 @@ msgid ""
|
||||
"exploration.</li><li>Fostering social interaction and collaboration among "
|
||||
"players.</li></ul>"
|
||||
msgstr ""
|
||||
"<ul><li>Rozvoj prostorového uvažování a schopností řešit problémy.</li><li>"
|
||||
"Podpora kreativity a sebevyjádření prostřednictvím stavění a objevování.</li>"
|
||||
"<li>Podpora sociálních interakcí a spolupráce mezi hráči.</li></ul>"
|
||||
|
||||
#: plinth/modules/minetest/__init__.py:43
|
||||
#, python-brace-format
|
||||
@ -4692,6 +4695,11 @@ msgid ""
|
||||
"please refer to the official <a href=\"https://docs.luanti.org/\">Minetest "
|
||||
"documentation</a> or online resources."
|
||||
msgstr ""
|
||||
"Chcete-li začít, nainstalujte na zařízení uživatelů <a href=\"https://"
|
||||
"www.luanti.org/downloads/\">klient Luanti</a> a připojte se k serveru Luanti "
|
||||
"pomocí IP adresy {box_name} a výchozího portu (30000). Další informace "
|
||||
"najdete v oficiální <a href=\"https://docs.luanti.org/\">dokumentaci k "
|
||||
"Minetestu</a> nebo v online zdrojích."
|
||||
|
||||
#: plinth/modules/minetest/__init__.py:68 plinth/modules/minetest/manifest.py:9
|
||||
msgid "Luanti"
|
||||
@ -10854,16 +10862,12 @@ msgid "Log in"
|
||||
msgstr "Přihlásit"
|
||||
|
||||
#: plinth/templates/cards.html:28
|
||||
#, fuzzy
|
||||
#| msgid "Add a new peer"
|
||||
msgid "Add new app"
|
||||
msgstr "Přidání nového peeru"
|
||||
msgstr "Přidání nové aplikace"
|
||||
|
||||
#: plinth/templates/cards.html:48
|
||||
#, fuzzy
|
||||
#| msgid "Available Domains"
|
||||
msgid "Available for install"
|
||||
msgstr "Domény k dispozici"
|
||||
msgstr "K dispozici k instalaci"
|
||||
|
||||
#: plinth/templates/clients-button.html:16
|
||||
msgid "Launch web client"
|
||||
|
||||
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-29 02:26+0000\n"
|
||||
"PO-Revision-Date: 2026-01-09 20:01+0000\n"
|
||||
"PO-Revision-Date: 2026-08-11 10:51+0000\n"
|
||||
"Last-Translator: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>\n"
|
||||
"Language-Team: Estonian <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/et/>\n"
|
||||
@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.15.1\n"
|
||||
"X-Generator: Weblate 2026.9.dev0\n"
|
||||
|
||||
#: plinth/config.py:103
|
||||
#, python-brace-format
|
||||
@ -167,7 +167,7 @@ msgstr "Veebiliides (Plinth) {box_name}"
|
||||
|
||||
#: plinth/modules/apache/__init__.py:129
|
||||
msgid "Web app protected by FreedomBox"
|
||||
msgstr ""
|
||||
msgstr "Veebirakendust kaitseb FreedomBox"
|
||||
|
||||
#: plinth/modules/apache/components.py:234
|
||||
#, python-brace-format
|
||||
@ -398,10 +398,8 @@ msgid "Passphrase"
|
||||
msgstr "Salafraas"
|
||||
|
||||
#: plinth/modules/backups/forms.py:187
|
||||
#, fuzzy
|
||||
#| msgid "Passphrase; Only needed when using encryption."
|
||||
msgid "Only needed when using encryption."
|
||||
msgstr "Salafraasi on vaja vaid krüptimise kasutamisel."
|
||||
msgstr "Seda on vaja vaid krüptimise kasutamisel."
|
||||
|
||||
#: plinth/modules/backups/forms.py:190
|
||||
msgid "Confirm Passphrase"
|
||||
@ -945,7 +943,7 @@ msgstr ""
|
||||
#: plinth/modules/bepasty/forms.py:33
|
||||
#: plinth/modules/bepasty/templates/bepasty.html:32
|
||||
msgid "Comment"
|
||||
msgstr "Komentaar"
|
||||
msgstr "Kommentaar"
|
||||
|
||||
#: plinth/modules/bepasty/forms.py:34
|
||||
msgid "Any comment to help you remember the purpose of this password."
|
||||
@ -5925,10 +5923,8 @@ msgid "OpenID Connect Provider"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:14
|
||||
#, fuzzy
|
||||
#| msgid "Application installed."
|
||||
msgid "Application"
|
||||
msgstr "Rakendus on paigaldatud."
|
||||
msgstr "Rakendus"
|
||||
|
||||
#: plinth/modules/oidc/templates/oauth2_provider/authorize.html:22
|
||||
msgid "Authorize App"
|
||||
@ -6884,7 +6880,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/security/templates/security_report.html:45
|
||||
msgid "App Name"
|
||||
msgstr "Rakendus"
|
||||
msgstr "Rakenduse nimi"
|
||||
|
||||
#: plinth/modules/security/templates/security_report.html:46
|
||||
msgid "Current Vulnerabilities"
|
||||
@ -8694,10 +8690,8 @@ msgid "Log in with passkey"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_passkey_edit.html:19
|
||||
#, fuzzy
|
||||
#| msgid "Update setup"
|
||||
msgid "Update Passkey"
|
||||
msgstr "Uuenda seadistust"
|
||||
msgstr "Uuenda pääsuvõtit"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:30
|
||||
msgid "Adding passkey failed: "
|
||||
@ -8726,26 +8720,20 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:83
|
||||
#: plinth/modules/users/templates/users_passkeys.html:85
|
||||
#, fuzzy
|
||||
#| msgid "Add password"
|
||||
msgid "Add passkey"
|
||||
msgstr "Lisa salasõna"
|
||||
msgstr "Lisa pääsuvõti"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:93
|
||||
#, fuzzy
|
||||
#| msgid "Domain"
|
||||
msgid "For Domain"
|
||||
msgstr "Domeen"
|
||||
msgstr "Domeeni jaoks"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:94
|
||||
msgid "Added"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:95
|
||||
#, fuzzy
|
||||
#| msgid "Create User"
|
||||
msgid "Last Used"
|
||||
msgstr "Lisa kasutaja"
|
||||
msgstr "Viimati kasutatud"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:126
|
||||
msgid "No passkeys added to user account."
|
||||
@ -8760,10 +8748,8 @@ msgid "You will need this passkey's device to add it back again."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:152
|
||||
#, fuzzy
|
||||
#| msgid "Delete user"
|
||||
msgid "Delete passkey"
|
||||
msgstr "Kustuta kasutaja"
|
||||
msgstr "Kustuta pääsuvõti"
|
||||
|
||||
#: plinth/modules/users/templates/users_passkeys.html:155
|
||||
#: plinth/modules/users/templates/users_update.html:72
|
||||
@ -8840,10 +8826,8 @@ msgid "Password changed successfully."
|
||||
msgstr "Salasõna muutmine õnnestus."
|
||||
|
||||
#: plinth/modules/users/views.py:420
|
||||
#, fuzzy
|
||||
#| msgid "A library with this name already exists."
|
||||
msgid "Passkey with that identifier already exists."
|
||||
msgstr "Sellise nimega raamatukogu on juba olemas."
|
||||
msgstr "Sellise tunnusega pääsuvõti on juba olemas."
|
||||
|
||||
#: plinth/modules/users/views.py:431
|
||||
msgid "Edit Passkey"
|
||||
@ -8877,10 +8861,8 @@ msgid "Invalid key."
|
||||
msgstr "Vigane võti."
|
||||
|
||||
#: plinth/modules/wireguard/forms.py:63
|
||||
#, fuzzy
|
||||
#| msgid "IP address"
|
||||
msgid "Not a valid IP address."
|
||||
msgstr "IP-aadress"
|
||||
msgstr "Pole korrektne IP-aadress."
|
||||
|
||||
#: plinth/modules/wireguard/forms.py:69
|
||||
#: plinth/modules/wireguard/templates/wireguard.html:29
|
||||
@ -8983,10 +8965,8 @@ msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard.html:33
|
||||
#, fuzzy
|
||||
#| msgid "Endpoint"
|
||||
msgid "Endpoint(s)"
|
||||
msgstr "Otspunkt"
|
||||
msgstr "Otspunkt(id)"
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard.html:41
|
||||
#, python-format
|
||||
@ -9033,10 +9013,8 @@ msgid "Add Allowed Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard.html:103
|
||||
#, fuzzy
|
||||
#| msgid "Password changed successfully."
|
||||
msgid "WireGuard server not started yet."
|
||||
msgstr "Salasõna muutmine õnnestus."
|
||||
msgstr "WireGuardi server pole veel käivitatud."
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard.html:107
|
||||
#: plinth/modules/wireguard/templates/wireguard.html:109
|
||||
@ -9072,20 +9050,16 @@ msgid "Add Connection to Server"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard_add_client.html:21
|
||||
#, fuzzy
|
||||
#| msgid "IP address to use for client:"
|
||||
msgid "IP address that will be assigned to this client"
|
||||
msgstr "IP-aadress kasutamiseks kliendi jaoks:"
|
||||
msgstr "IP-aadress, mis määratakse selle kliendi jaoks"
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard_add_client.html:31
|
||||
msgid "Add Client"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:26
|
||||
#, fuzzy
|
||||
#| msgid "Privacy"
|
||||
msgid "Private Key"
|
||||
msgstr "Privaatsus"
|
||||
msgstr "Privaatvõti"
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:29
|
||||
msgid "Click to reveal"
|
||||
@ -9100,10 +9074,8 @@ msgid "Save the private key now. This page shows it only once!"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:41
|
||||
#, fuzzy
|
||||
#| msgid "Configuration"
|
||||
msgid "Client configuration file"
|
||||
msgstr "Seadistused"
|
||||
msgstr "Kliendi seadistustefail"
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:43
|
||||
msgid ""
|
||||
@ -9112,10 +9084,8 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:49
|
||||
#, fuzzy
|
||||
#| msgid "warning"
|
||||
msgid "Warning:"
|
||||
msgstr "hoiatus"
|
||||
msgstr "Hoiatus:"
|
||||
|
||||
#: plinth/modules/wireguard/templates/wireguard_auto_add_client.html:50
|
||||
msgid ""
|
||||
@ -9284,10 +9254,8 @@ msgid "Server deleted."
|
||||
msgstr ""
|
||||
|
||||
#: plinth/modules/wireguard/views.py:408
|
||||
#, fuzzy
|
||||
#| msgid "Password changed successfully."
|
||||
msgid "WireGuard server started successfully."
|
||||
msgstr "Salasõna muutmine õnnestus."
|
||||
msgstr "WireGuardi serveri käivitamine õnnestus."
|
||||
|
||||
#: plinth/modules/wireguard/views.py:412
|
||||
msgid "Failed to start WireGuard server: {}"
|
||||
@ -9628,10 +9596,8 @@ msgid " System"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/base.html:179 plinth/templates/base.html:180
|
||||
#, fuzzy
|
||||
#| msgid "Manage Passwords"
|
||||
msgid "Manage passkeys"
|
||||
msgstr "Halda salasõnu"
|
||||
msgstr "Halda pääsuvõtmeid"
|
||||
|
||||
#: plinth/templates/base.html:186 plinth/templates/base.html:187
|
||||
msgid "Change password"
|
||||
@ -9658,10 +9624,8 @@ msgid "Add new app"
|
||||
msgstr ""
|
||||
|
||||
#: plinth/templates/cards.html:48
|
||||
#, fuzzy
|
||||
#| msgid "Backup app before uninstall"
|
||||
msgid "Available for install"
|
||||
msgstr "Enne rakenduse eemaldamist palun tee varukoopia"
|
||||
msgstr "Saadaval paigalduseks"
|
||||
|
||||
#: plinth/templates/clients-button.html:16
|
||||
msgid "Launch web client"
|
||||
|
||||
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: FreedomBox UI\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-29 02:26+0000\n"
|
||||
"PO-Revision-Date: 2026-07-06 15:01+0000\n"
|
||||
"PO-Revision-Date: 2026-08-11 10:51+0000\n"
|
||||
"Last-Translator: Coucouf <coucouf@coucouf.fr>\n"
|
||||
"Language-Team: French <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/fr/>\n"
|
||||
@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 2026.7.1.dev0\n"
|
||||
"X-Generator: Weblate 2026.9.dev0\n"
|
||||
|
||||
#: plinth/config.py:103
|
||||
#, python-brace-format
|
||||
@ -3029,7 +3029,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/first_boot/__init__.py:47
|
||||
msgid "First Boot"
|
||||
msgstr ""
|
||||
msgstr "Premier démarrage"
|
||||
|
||||
#: plinth/modules/first_boot/__init__.py:68
|
||||
msgid "Setup complete! Next steps:"
|
||||
@ -3053,19 +3053,15 @@ msgid "See next steps"
|
||||
msgstr "Voir les prochaines étapes"
|
||||
|
||||
#: plinth/modules/first_boot/forms.py:14
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "Enter the secret generated during FreedomBox installation. This secret "
|
||||
#| "can also be obtained by running the command \"sudo cat /var/lib/plinth/"
|
||||
#| "firstboot-wizard-secret\" on your {box_name}"
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Enter the secret generated during {box_name} installation. This secret can "
|
||||
"be obtained by running the command \"sudo cat /var/lib/plinth/firstboot-"
|
||||
"wizard-secret\" on your {box_name}"
|
||||
msgstr ""
|
||||
"Entrez le code secret généré durant l’installation de la FreedomBox. Il peut "
|
||||
"également être obtenu en lançant la commande « sudo cat /var/lib/plinth/"
|
||||
"firstboot-wizard-secret » sur votre {box_name}"
|
||||
"Entrez le code secret généré durant l’installation de la {box_name}. Il peut "
|
||||
"être obtenu en lançant la commande « sudo cat /var/lib/plinth/firstboot-"
|
||||
"wizard-secret » sur votre {box_name}."
|
||||
|
||||
#: plinth/modules/first_boot/forms.py:19
|
||||
msgid "Firstboot Wizard Secret"
|
||||
@ -4777,10 +4773,15 @@ msgid ""
|
||||
"game. It allows users to build and explore 3D worlds, interact with others, "
|
||||
"and engage in various activities such as crafting, mining, and combat."
|
||||
msgstr ""
|
||||
"Luanti (précédemment nommé Minetest) est un jeu bac-à-sable de construction "
|
||||
"de blocs multijoueur à monde infini. Il propose la construction et "
|
||||
"l’exploration de mondes en 3D, l’interaction à plusieurs et la possibilité "
|
||||
"de s’adonner à des activités telles que l’artisanat, l’extraction de "
|
||||
"ressources et le combat."
|
||||
|
||||
#: plinth/modules/minetest/__init__.py:36
|
||||
msgid "Luanti offers several educational benefits, including:"
|
||||
msgstr ""
|
||||
msgstr "Luanti a plusieurs intérêts éducatifs, notamment :"
|
||||
|
||||
#: plinth/modules/minetest/__init__.py:37
|
||||
msgid ""
|
||||
@ -4789,6 +4790,11 @@ msgid ""
|
||||
"exploration.</li><li>Fostering social interaction and collaboration among "
|
||||
"players.</li></ul>"
|
||||
msgstr ""
|
||||
"<ul><li>le développement de la représentation dans l’espace et des capacités "
|
||||
"de résolution de problèmes ;</li><li>la stimulation de la créativité et de "
|
||||
"l’expression personnelle au travers de la construction et de "
|
||||
"l’exploration ;</li><li>l’incitation à la collaboration et aux interactions "
|
||||
"sociales entres joueuses et joueurs.</li></ul>"
|
||||
|
||||
#: plinth/modules/minetest/__init__.py:43
|
||||
#, python-brace-format
|
||||
@ -4799,6 +4805,12 @@ msgid ""
|
||||
"please refer to the official <a href=\"https://docs.luanti.org/\">Minetest "
|
||||
"documentation</a> or online resources."
|
||||
msgstr ""
|
||||
"Pour commencer à jouer, installez le <a href=\"https://www.luanti.org/"
|
||||
"downloads/\">client Luanti</a> sur vos appareils et connectez-vous au "
|
||||
"serveur Luanti en utilisant l’IP de la {box_name} et le port part défaut "
|
||||
"(30000). Pour plus d’informations, référez-vous à la <a href=\"https://"
|
||||
"docs.luanti.org/\">documentation Luanti</a> officielle ou aux nombreuses "
|
||||
"ressources disponibles en ligne."
|
||||
|
||||
#: plinth/modules/minetest/__init__.py:68 plinth/modules/minetest/manifest.py:9
|
||||
msgid "Luanti"
|
||||
@ -4814,7 +4826,7 @@ msgid ""
|
||||
"instance of time."
|
||||
msgstr ""
|
||||
"Vous permet de modifier le nombre maximum de joueurs autorisés à se "
|
||||
"connecter à minetest en même temps."
|
||||
"connecter à Luanti en même temps."
|
||||
|
||||
#: plinth/modules/minetest/forms.py:19
|
||||
msgid "Enable creative mode"
|
||||
@ -11148,16 +11160,12 @@ msgid "Log in"
|
||||
msgstr "S’identifier"
|
||||
|
||||
#: plinth/templates/cards.html:28
|
||||
#, fuzzy
|
||||
#| msgid "Add a new peer"
|
||||
msgid "Add new app"
|
||||
msgstr "Ajouter un nouveau pair"
|
||||
msgstr "Ajouter une nouvelle appli"
|
||||
|
||||
#: plinth/templates/cards.html:48
|
||||
#, fuzzy
|
||||
#| msgid "Available Domains"
|
||||
msgid "Available for install"
|
||||
msgstr "Domaines disponibles"
|
||||
msgstr "Disponibles à l’installation"
|
||||
|
||||
#: plinth/templates/clients-button.html:16
|
||||
msgid "Launch web client"
|
||||
|
||||
@ -7,7 +7,7 @@ msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-29 02:26+0000\n"
|
||||
"PO-Revision-Date: 2026-06-03 05:01+0000\n"
|
||||
"PO-Revision-Date: 2026-07-30 10:01+0000\n"
|
||||
"Last-Translator: Burak Yavuz <hitowerdigit@hotmail.com>\n"
|
||||
"Language-Team: Turkish <https://hosted.weblate.org/projects/freedombox/"
|
||||
"freedombox/tr/>\n"
|
||||
@ -16,7 +16,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 2026.6\n"
|
||||
"X-Generator: Weblate 2026.8.dev0\n"
|
||||
|
||||
#: plinth/config.py:103
|
||||
#, python-brace-format
|
||||
@ -2975,7 +2975,7 @@ msgstr ""
|
||||
|
||||
#: plinth/modules/first_boot/__init__.py:47
|
||||
msgid "First Boot"
|
||||
msgstr ""
|
||||
msgstr "İlk Önyükleme"
|
||||
|
||||
#: plinth/modules/first_boot/__init__.py:68
|
||||
msgid "Setup complete! Next steps:"
|
||||
@ -2999,19 +2999,15 @@ msgid "See next steps"
|
||||
msgstr "Sonraki adımları görün"
|
||||
|
||||
#: plinth/modules/first_boot/forms.py:14
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid ""
|
||||
#| "Enter the secret generated during FreedomBox installation. This secret "
|
||||
#| "can also be obtained by running the command \"sudo cat /var/lib/plinth/"
|
||||
#| "firstboot-wizard-secret\" on your {box_name}"
|
||||
#, python-brace-format
|
||||
msgid ""
|
||||
"Enter the secret generated during {box_name} installation. This secret can "
|
||||
"be obtained by running the command \"sudo cat /var/lib/plinth/firstboot-"
|
||||
"wizard-secret\" on your {box_name}"
|
||||
msgstr ""
|
||||
"FreedomBox kurulumu sırasında oluşturulan gizli anahtarı girin. Bu gizli "
|
||||
"{box_name} kurulumu sırasında oluşturulan gizli anahtarı girin. Bu gizli "
|
||||
"anahtarı, {box_name} cihazınızda \"sudo cat /var/lib/plinth/firstboot-wizard-"
|
||||
"secret\" komutunu çalıştırarak da elde edebilirsiniz"
|
||||
"secret\" komutunu çalıştırarak elde edebilirsiniz"
|
||||
|
||||
#: plinth/modules/first_boot/forms.py:19
|
||||
msgid "Firstboot Wizard Secret"
|
||||
@ -4691,10 +4687,15 @@ msgid ""
|
||||
"game. It allows users to build and explore 3D worlds, interact with others, "
|
||||
"and engage in various activities such as crafting, mining, and combat."
|
||||
msgstr ""
|
||||
"Luanti, eski adıyla Minetest, çok oyunculu, sonsuz dünya bloklu bir korumalı "
|
||||
"alan oyunudur. Kullanıcıların 3 boyutlu dünyalar inşa etmesini ve "
|
||||
"keşfetmesini, başkalarıyla etkileşime girmesini ve işçilik, madencilik ve "
|
||||
"dövüş gibi çeşitli etkinliklere katılmasını sağlar."
|
||||
|
||||
#: plinth/modules/minetest/__init__.py:36
|
||||
msgid "Luanti offers several educational benefits, including:"
|
||||
msgstr ""
|
||||
"Luanti aşağıdakiler de dahil olmak üzere çeşitli eğitim faydaları sunar:"
|
||||
|
||||
#: plinth/modules/minetest/__init__.py:37
|
||||
msgid ""
|
||||
@ -4703,6 +4704,10 @@ msgid ""
|
||||
"exploration.</li><li>Fostering social interaction and collaboration among "
|
||||
"players.</li></ul>"
|
||||
msgstr ""
|
||||
"<ul><li>Uzamsal akıl yürütme ve problem çözme becerilerini geliştirmek.</li>"
|
||||
"<li>İnşa etme ve keşfetme yoluyla yaratıcılığı ve kendini ifade etmeyi "
|
||||
"teşvik etmek.</li><li>Oyuncular arasında sosyal etkileşime ve işbirliğine "
|
||||
"teşvik etmek.</li></ul>"
|
||||
|
||||
#: plinth/modules/minetest/__init__.py:43
|
||||
#, python-brace-format
|
||||
@ -4713,6 +4718,11 @@ msgid ""
|
||||
"please refer to the official <a href=\"https://docs.luanti.org/\">Minetest "
|
||||
"documentation</a> or online resources."
|
||||
msgstr ""
|
||||
"Başlamak için <a href=\"https://www.luanti.org/downloads/\">Luanti "
|
||||
"istemcisini</a> kullanıcıların cihazlarına yükleyin ve {box_name} IP'sini ve "
|
||||
"varsayılan bağlantı noktasını (30000) kullanarak Luanti sunucusuna bağlanın. "
|
||||
"Daha fazla bilgi için lütfen resmi <a href=\"https://docs.luanti.org/\">"
|
||||
"Minetest belgelerine</a> veya çevrimiçi kaynaklara bakın."
|
||||
|
||||
#: plinth/modules/minetest/__init__.py:68 plinth/modules/minetest/manifest.py:9
|
||||
msgid "Luanti"
|
||||
@ -10911,16 +10921,12 @@ msgid "Log in"
|
||||
msgstr "Oturum aç"
|
||||
|
||||
#: plinth/templates/cards.html:28
|
||||
#, fuzzy
|
||||
#| msgid "Add a new peer"
|
||||
msgid "Add new app"
|
||||
msgstr "Yeni bir kişi ekle"
|
||||
msgstr "Yeni uygulama ekle"
|
||||
|
||||
#: plinth/templates/cards.html:48
|
||||
#, fuzzy
|
||||
#| msgid "Available Domains"
|
||||
msgid "Available for install"
|
||||
msgstr "Kullanılabilir Etki Alanları"
|
||||
msgstr "Yükleme için kullanılabilir"
|
||||
|
||||
#: plinth/templates/clients-button.html:16
|
||||
msgid "Launch web client"
|
||||
|
||||
@ -8,9 +8,9 @@ msgstr ""
|
||||
"Project-Id-Version: Plinth\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-07-29 02:26+0000\n"
|
||||
"PO-Revision-Date: 2026-07-20 13:01+0000\n"
|
||||
"Last-Translator: reducedradius "
|
||||
"<137701630+flytothehighest@users.noreply.github.com>\n"
|
||||
"PO-Revision-Date: 2026-08-02 03:01+0000\n"
|
||||
"Last-Translator: Hosted Weblate user 54392 "
|
||||
"<hamburger2048@users.noreply.hosted.weblate.org>\n"
|
||||
"Language-Team: Chinese (Simplified Han script) <https://hosted.weblate.org/"
|
||||
"projects/freedombox/freedombox/zh_Hans/>\n"
|
||||
"Language: zh_Hans\n"
|
||||
@ -9825,16 +9825,12 @@ msgid "Log in"
|
||||
msgstr "登录"
|
||||
|
||||
#: plinth/templates/cards.html:28
|
||||
#, fuzzy
|
||||
#| msgid "Advanced apps"
|
||||
msgid "Add new app"
|
||||
msgstr "高级应用"
|
||||
msgstr "添加新应用"
|
||||
|
||||
#: plinth/templates/cards.html:48
|
||||
#, fuzzy
|
||||
#| msgid "Available Domains"
|
||||
msgid "Available for install"
|
||||
msgstr "可用域名"
|
||||
msgstr "可安装"
|
||||
|
||||
#: plinth/templates/clients-button.html:16
|
||||
msgid "Launch web client"
|
||||
|
||||
@ -9,6 +9,7 @@ import logging
|
||||
import pathlib
|
||||
import threading
|
||||
from copy import deepcopy
|
||||
from typing import Any
|
||||
|
||||
import psutil
|
||||
from django.urls import reverse_lazy
|
||||
@ -40,7 +41,7 @@ _description = [
|
||||
|
||||
logger = logging.Logger(__name__)
|
||||
|
||||
current_results = {}
|
||||
current_results: dict[str, Any] = {}
|
||||
results_lock = threading.Lock()
|
||||
|
||||
|
||||
|
||||
@ -45,7 +45,6 @@ _description = [
|
||||
'quality, privacy and legal reviews are done by the upstream '
|
||||
'project and not by Debian/{box_name}. Updates are performed '
|
||||
'following an independent cycle.'), box_name=_(cfg.box_name)),
|
||||
format_lazy(_alert, _('Caution:'), _('This app is experimental.')),
|
||||
]
|
||||
|
||||
|
||||
|
||||
@ -17,7 +17,8 @@ class TestMatrixSynapseApp(functional.BaseAppTests):
|
||||
diagnostics_delay = 1
|
||||
|
||||
@pytest.fixture(scope='class', autouse=True)
|
||||
def fixture_setup(self, session_browser):
|
||||
@classmethod
|
||||
def fixture_setup(cls, session_browser):
|
||||
"""Setup the app."""
|
||||
functional.login(session_browser)
|
||||
functional.domain_add(session_browser, 'mydomain.example')
|
||||
|
||||
@ -21,7 +21,8 @@ class TestSambaApp(functional.BaseAppTests):
|
||||
has_web = False
|
||||
|
||||
@pytest.fixture(scope='class', autouse=True)
|
||||
def fixture_setup(self, session_browser):
|
||||
@classmethod
|
||||
def fixture_setup(cls, session_browser):
|
||||
"""Setup the app."""
|
||||
functional.login(session_browser)
|
||||
functional.networks_set_firewall_zone(session_browser, 'internal')
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
|
||||
import logging
|
||||
import threading
|
||||
from typing import Any
|
||||
|
||||
from plinth import cfg
|
||||
from plinth.utils import import_from_gi
|
||||
@ -40,7 +41,7 @@ _ERRORS: dict[str, str] = {
|
||||
'Failed': 'org.freedesktop.UDisks2.Error.Failed',
|
||||
}
|
||||
|
||||
_jobs = {}
|
||||
_jobs: dict[str, Any] = {}
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@ -26,7 +26,6 @@ See: https://docs.djangoproject.com/en/dev/ref/settings/
|
||||
|
||||
"""
|
||||
|
||||
import django
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
ALLOWED_HOSTS = ['*']
|
||||
@ -240,9 +239,6 @@ TEMPLATES = [
|
||||
|
||||
TIME_ZONE = 'UTC'
|
||||
|
||||
if django.VERSION <= (4, 0):
|
||||
USE_L10N = True
|
||||
|
||||
USE_TZ = True
|
||||
|
||||
# Overridden by configuration setting use_x_forwarded_host
|
||||
|
||||
@ -837,12 +837,13 @@ class BaseAppTests:
|
||||
install(session_browser, self.app_name)
|
||||
|
||||
@pytest.fixture(autouse=True, scope='class', name='disable_after_tests')
|
||||
def fixture_disable_after_tests(self, session_browser):
|
||||
@classmethod
|
||||
def fixture_disable_after_tests(cls, session_browser):
|
||||
"""Disable the app after running tests."""
|
||||
yield
|
||||
if self.disable_after_tests and is_installed(session_browser,
|
||||
self.app_name):
|
||||
app_disable(session_browser, self.app_name)
|
||||
if cls.disable_after_tests and is_installed(session_browser,
|
||||
cls.app_name):
|
||||
app_disable(session_browser, cls.app_name)
|
||||
|
||||
@pytest.fixture(autouse=True, name='background')
|
||||
def fixture_background(self, session_browser, disable_after_tests):
|
||||
|
||||
@ -9,6 +9,12 @@ classifiers = [
|
||||
"Environment :: No Input/Output (Daemon)",
|
||||
"Environment :: Web Environment",
|
||||
"Framework :: Django",
|
||||
"Framework :: Django :: 5",
|
||||
"Framework :: Django :: 5.0",
|
||||
"Framework :: Django :: 5.1",
|
||||
"Framework :: Django :: 5.2",
|
||||
"Framework :: Django :: 6",
|
||||
"Framework :: Django :: 6.0",
|
||||
"Intended Audience :: End Users/Desktop",
|
||||
"Natural Language :: English",
|
||||
"Operating System :: POSIX :: Linux",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user