diff --git a/debian/changelog b/debian/changelog index eb7d8839a..f2fc0b4ad 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,42 @@ +freedombox (25.17) unstable; urgency=medium + + [ James Valleroy ] + * homeassistant: Fix spelling in tests + * locale: Update translation strings + * doc: Fetch latest manual + + [ OwlGale ] + * Translated using Weblate (Russian) + + [ kosagi ] + * Translated using Weblate (Catalan) + + [ Coucouf ] + * Translated using Weblate (French) + + [ Sunil Mohan Adapa ] + * ui: Implement a toggle menu for setting dark mode + * upgrades: Use bootstrap spinner button instead of custom styling + * ui: Use default button style for tag buttons + * ui: Fix dark theme color for form help text + * ui: Fix dark theme colors for default button style + * ui: Fix dark theme color for disabled form elements + * ui: Dark theme color for tags text in an app card + * ui: Drop colors defined in Bootstrap 5.3 + * ui: Fix dark theme colors for running status indicator + * ui: Minor CSS refactor to use variables + * ui: Fix dark theme color for select-all button + * ui: Fix dark theme colors for app enable/disable toggle button + * privileged: Don't log exception that are expected + + [ Priit Jõerüüt ] + * Translated using Weblate (Estonian) + + [ Joseph Nuthalapati ] + * l10n: Fix python-brace-format error in Estonian + + -- James Valleroy Mon, 08 Dec 2025 20:50:56 -0500 + freedombox (25.16~bpo13+1) trixie-backports; urgency=medium * Rebuild for trixie-backports. diff --git a/debian/copyright b/debian/copyright index 2d583c133..8e37e5817 100644 --- a/debian/copyright +++ b/debian/copyright @@ -38,6 +38,11 @@ Copyright: Marie Van den Broeck (https://thenounproject.com/marie49/) Comment: https://thenounproject.com/icon/162372/ License: CC-BY-SA-3.0 +Files: static/themes/default/js/color-modes.js +Copyright: 2011-2025 The Bootstrap Authors +Comment: https://getbootstrap.com/docs/5.3/customize/color-modes/ +License: CC-BY-3.0 + Files: plinth/modules/bepasty/static/icons/bepasty.svg Copyright: (c) 2014 by the Bepasty Team, see the AUTHORS file. Comment: https://github.com/bepasty/bepasty-server/blob/master/src/bepasty/static/app/bepasty.svg diff --git a/doc/manual/en/ReleaseNotes.raw.wiki b/doc/manual/en/ReleaseNotes.raw.wiki index 2ef09b724..0443303f4 100644 --- a/doc/manual/en/ReleaseNotes.raw.wiki +++ b/doc/manual/en/ReleaseNotes.raw.wiki @@ -8,6 +8,30 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f The following are the release notes for each !FreedomBox version. +== FreedomBox 25.17 (2025-12-08) == + +=== Highlights === + + * ui: Implement a toggle menu for setting dark mode + +=== Other Changes === + + * homeassistant: Fix spelling in tests + * locale: Fix python-brace-format error in Estonian + * locale: Update translations for Catalan, Estonian, French, Russian + * privileged: Don't log exception that are expected + * ui: Dark theme color for tags text in an app card + * ui: Drop colors defined in Bootstrap 5.3 + * ui: Fix dark theme color for disabled form elements + * ui: Fix dark theme color for form help text + * ui: Fix dark theme color for select-all button + * ui: Fix dark theme colors for app enable/disable toggle button + * ui: Fix dark theme colors for default button style + * ui: Fix dark theme colors for running status indicator + * ui: Minor CSS refactor to use variables + * ui: Use default button style for tag buttons + * upgrades: Use bootstrap spinner button instead of custom styling + == FreedomBox 25.16 (2025-11-24) == === Highlights === diff --git a/doc/manual/es/ReleaseNotes.raw.wiki b/doc/manual/es/ReleaseNotes.raw.wiki index 2ef09b724..0443303f4 100644 --- a/doc/manual/es/ReleaseNotes.raw.wiki +++ b/doc/manual/es/ReleaseNotes.raw.wiki @@ -8,6 +8,30 @@ For more technical details, see the [[https://salsa.debian.org/freedombox-team/f The following are the release notes for each !FreedomBox version. +== FreedomBox 25.17 (2025-12-08) == + +=== Highlights === + + * ui: Implement a toggle menu for setting dark mode + +=== Other Changes === + + * homeassistant: Fix spelling in tests + * locale: Fix python-brace-format error in Estonian + * locale: Update translations for Catalan, Estonian, French, Russian + * privileged: Don't log exception that are expected + * ui: Dark theme color for tags text in an app card + * ui: Drop colors defined in Bootstrap 5.3 + * ui: Fix dark theme color for disabled form elements + * ui: Fix dark theme color for form help text + * ui: Fix dark theme color for select-all button + * ui: Fix dark theme colors for app enable/disable toggle button + * ui: Fix dark theme colors for default button style + * ui: Fix dark theme colors for running status indicator + * ui: Minor CSS refactor to use variables + * ui: Use default button style for tag buttons + * upgrades: Use bootstrap spinner button instead of custom styling + == FreedomBox 25.16 (2025-11-24) == === Highlights === diff --git a/doc/manual/es/TinyTinyRSS.raw.wiki b/doc/manual/es/TinyTinyRSS.raw.wiki index 2f9f9f66b..6c552abf9 100644 --- a/doc/manual/es/TinyTinyRSS.raw.wiki +++ b/doc/manual/es/TinyTinyRSS.raw.wiki @@ -9,7 +9,7 @@ == Tiny Tiny RSS (Lector de Feeds de Noticias) == || {{attachment:FreedomBox/Manual/TinyTinyRSS/TinyTinyRSS-icon_en_V01.png|Tiny Tiny RSS icon}} || -'''Disponible desde''': versión 0.9 +'''Disponible desde''': Desde Debian Trixie esta aplicación ya no está disponible. Por favor, migra a [[es/FreedomBox/Manual/Miniflux|Miniflux]] or [[es/FreedomBox/Manual/Nextcloud|Nextcloud News]]. ''Tiny Tiny RSS'' es un lector y agregador de ''feeds'' de noticias (RSS/Atom) diseñado para leer noticias desde cualquier lugar con una experiencia lo más parecida posible a una aplicación de escritorio. diff --git a/doc/manual/es/Upgrades.raw.wiki b/doc/manual/es/Upgrades.raw.wiki index 3d868220a..97f071870 100644 --- a/doc/manual/es/Upgrades.raw.wiki +++ b/doc/manual/es/Upgrades.raw.wiki @@ -86,7 +86,7 @@ Para la mayoría de los usuarios se recomienda la autoactualización. Si no obst Algunos paquetes podrían no estar disponibles tras una actualización de publicación. Por favor, migra a una aplicación similar. Al actualizar a Debian 13 "trixie", las siguentes aplicaciones dejan de estar disponibles: * Janus. Usa Matrix o XMPP para llamadas de video o Mumble para audio. Esta app probáblemente vuelva a estar disponible en el futuro. - * TT-RSS. Migra a Miniflux. + * TT-RSS. Migra a Miniflux o a Nextcloud News. * Searx. Para iniciar el proceso de actualización de publicación, ve a ''Actualización de Software'' en la sección ''Sistema''. Luego ''Habilitar autoactualización'' y la opción ''Habilitar autoactualización a la siguiente publicación estable''. Entonces haz clic en el botón ''Actualización de Distibución''. Y luego en ''Iniciar Actualización de Distibución''. El proceso podría llegar varias horas si tu sistema operativo reside en un almacenamiento lento como una tarjeta SD. El interfaz web de !FreedomBox podría estar indisponible durante la actualización. Refresca la página si muestra errores. Finalmente, espera a los procesos de post-actualización y reinicia la máquina. diff --git a/plinth/__init__.py b/plinth/__init__.py index a7314c2eb..28e5292be 100644 --- a/plinth/__init__.py +++ b/plinth/__init__.py @@ -3,4 +3,4 @@ Package init file. """ -__version__ = '25.16' +__version__ = '25.17' diff --git a/plinth/actions.py b/plinth/actions.py index 0e75fc0f4..689dc58c1 100644 --- a/plinth/actions.py +++ b/plinth/actions.py @@ -130,6 +130,9 @@ def run_privileged_method(func, module_name, action_name, args, kwargs): if raw_output: request['raw_output'] = raw_output + if not log_error: + request['log_error'] = False + client_socket = _request_to_server(request) if raw_output: @@ -424,14 +427,19 @@ def privileged_handle_json_request( bool): raise TypeError('Incorrect "raw_output" parameter') + if 'log_error' in request and not isinstance(request['log_error'], + bool): + raise TypeError('Incorrect "log_error" parameter') + return request try: request = _parse_request() + log_error = request.get('log_error', True) arguments = {'args': request['args'], 'kwargs': request['kwargs']} _setup_thread_storage() return_value = _privileged_call(request['module'], request['action'], - arguments) + arguments, log_error) if isinstance(return_value, io.BufferedReader): raw_output = request.get('raw_output', False) @@ -452,7 +460,7 @@ def privileged_handle_json_request( return json.dumps(return_value, cls=JSONEncoder) -def _privileged_call(module_name, action_name, arguments): +def _privileged_call(module_name, action_name, arguments, log_error=True): """Import the module and run action as superuser""" if '.' in module_name: raise SyntaxError('Invalid module name') @@ -500,11 +508,12 @@ def _privileged_call(module_name, action_name, arguments): return_value = {'result': 'success', 'return': return_values} except Exception as exception: return_value = get_return_value_from_exception(exception) - logger.exception( - 'Error running action: %s..%s(..): %s\nstdout:\n%s\nstderr:\n%s\n', - module_name, action_name, exception, - return_value['exception']['stdout'], - return_value['exception']['stderr']) + if log_error: + logger.exception( + 'Error running action: %s..%s(..): %s\nstdout:\n%s\n' + 'stderr:\n%s\n', module_name, action_name, exception, + return_value['exception']['stdout'], + return_value['exception']['stderr']) return return_value diff --git a/plinth/locale/ar/LC_MESSAGES/django.po b/plinth/locale/ar/LC_MESSAGES/django.po index 2f7434592..c60d4c1df 100644 --- a/plinth/locale/ar/LC_MESSAGES/django.po +++ b/plinth/locale/ar/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 01:21+0000\n" +"POT-Creation-Date: 2025-12-09 01:26+0000\n" "PO-Revision-Date: 2025-04-16 02:28+0000\n" "Last-Translator: MohammedSaalif <2300031323@kluniversity.in>\n" "Language-Team: Arabic \n" "Language-Team: Arabic (Saudi Arabia) \n" @@ -106,15 +106,15 @@ msgstr "Език на интерфейса" msgid "Use the language preference set in the browser" msgstr "Използване на предпочитания от четеца език" -#: plinth/menu.py:116 plinth/templates/base.html:120 +#: plinth/menu.py:116 plinth/templates/base.html:123 msgid "Home" msgstr "Начало" -#: plinth/menu.py:117 plinth/templates/base.html:129 +#: plinth/menu.py:117 plinth/templates/base.html:132 msgid "Apps" msgstr "Приложения" -#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:138 +#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:141 msgid "System" msgstr "Системни" @@ -3133,8 +3133,8 @@ msgstr "Обратна връзка" msgid "Contribute" msgstr "Допринасяне" -#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:216 -#: plinth/templates/base.html:219 plinth/templates/help-menu.html:46 +#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:221 +#: plinth/templates/base.html:224 plinth/templates/help-menu.html:46 #: plinth/templates/help-menu.html:47 plinth/templates/index.html:96 msgid "About" msgstr "За проекта" @@ -3273,7 +3273,7 @@ msgstr "" #: plinth/modules/help/templates/help_contribute.html:42 #: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_shutdown.html:26 -#: plinth/templates/app-header.html:65 +#: plinth/templates/app-header.html:66 msgid "Learn more..." msgstr "Научете повече…" @@ -3682,7 +3682,7 @@ msgstr "" #: plinth/modules/janus/templates/janus_video_room.html:204 #: plinth/modules/jsxc/templates/jsxc_launch.html:117 -#: plinth/templates/base.html:272 +#: plinth/templates/base.html:277 msgid "JavaScript license information" msgstr "" @@ -4781,7 +4781,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:40 #: plinth/modules/wireguard/templates/wireguard_show_client.html:72 #: plinth/modules/wireguard/templates/wireguard_show_server.html:73 -#: plinth/templates/base.html:166 plinth/templates/base.html:167 +#: plinth/templates/base.html:171 plinth/templates/base.html:172 msgid "Edit" msgstr "Редактиране" @@ -6380,8 +6380,8 @@ msgstr "Рестартиране" msgid "Shutdown" msgstr "Изключване" -#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:181 -#: plinth/templates/base.html:182 +#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:186 +#: plinth/templates/base.html:187 msgid "Restart" msgstr "Рестартиране" @@ -9757,35 +9757,35 @@ msgstr "" "данни. Това е безплатен софтуер, който ви позволява да инсталирате и " "управлявате сървърни приложения с лекота." -#: plinth/templates/base.html:117 +#: plinth/templates/base.html:120 msgid " Home" msgstr " Начало" -#: plinth/templates/base.html:125 +#: plinth/templates/base.html:128 msgid " Apps" msgstr " Приложения" -#: plinth/templates/base.html:134 +#: plinth/templates/base.html:137 msgid " System" msgstr " Системни" -#: plinth/templates/base.html:173 plinth/templates/base.html:174 +#: plinth/templates/base.html:178 plinth/templates/base.html:179 msgid "Change password" msgstr "Промяна на парола" -#: plinth/templates/base.html:187 plinth/templates/base.html:188 +#: plinth/templates/base.html:192 plinth/templates/base.html:193 msgid "Shut down" msgstr "Изключване" -#: plinth/templates/base.html:198 plinth/templates/base.html:236 +#: plinth/templates/base.html:203 plinth/templates/base.html:241 msgid "Log out" msgstr "Изход" -#: plinth/templates/base.html:207 plinth/templates/base.html:210 +#: plinth/templates/base.html:212 plinth/templates/base.html:215 msgid "Select language" msgstr "Избор на език" -#: plinth/templates/base.html:225 plinth/templates/base.html:227 +#: plinth/templates/base.html:230 plinth/templates/base.html:232 msgid "Log in" msgstr "Вход" @@ -9977,6 +9977,30 @@ msgstr "Търсене по етикети" msgid "Clear all tags" msgstr "Изчистване на всички етикети" +#: plinth/templates/theme-menu.html:8 +msgid "Toggle theme (auto)" +msgstr "" + +#: plinth/templates/theme-menu.html:14 +msgid "Toggle theme" +msgstr "" + +#: plinth/templates/theme-menu.html:23 +#, fuzzy +#| msgid "Weight" +msgid "Light" +msgstr "Тежест" + +#: plinth/templates/theme-menu.html:32 +msgid "Dark" +msgstr "" + +#: plinth/templates/theme-menu.html:41 +#, fuzzy +#| msgid "Automatic" +msgid "Auto" +msgstr "Автоматично" + #: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40 msgid "View Logs" msgstr "Преглед на дневника" diff --git a/plinth/locale/bn/LC_MESSAGES/django.po b/plinth/locale/bn/LC_MESSAGES/django.po index caaff68ac..c1607b284 100644 --- a/plinth/locale/bn/LC_MESSAGES/django.po +++ b/plinth/locale/bn/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 01:21+0000\n" +"POT-Creation-Date: 2025-12-09 01:26+0000\n" "PO-Revision-Date: 2025-04-01 03:02+0000\n" "Last-Translator: MURALA SAI GANESH \n" "Language-Team: Bengali \n" "Language-Team: Catalan \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.13-dev\n" +"X-Generator: Weblate 5.15-dev\n" #: plinth/config.py:103 #, python-brace-format @@ -108,15 +108,15 @@ msgstr "Llengua que s'utilitzarà per presentar aquesta interfície web" msgid "Use the language preference set in the browser" msgstr "Utilitza la configuració de llengua del navegador" -#: plinth/menu.py:116 plinth/templates/base.html:120 +#: plinth/menu.py:116 plinth/templates/base.html:123 msgid "Home" msgstr "Inici" -#: plinth/menu.py:117 plinth/templates/base.html:129 +#: plinth/menu.py:117 plinth/templates/base.html:132 msgid "Apps" msgstr "Aplicacions" -#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:138 +#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:141 msgid "System" msgstr "Sistema" @@ -1683,6 +1683,8 @@ msgid "" "This app also shows the logs for {box_name} " "services." msgstr "" +"Aquesta aplicació també mostra els registre dels " +"serveis de {box_name}." #: plinth/modules/diagnostics/__init__.py:60 #: plinth/modules/diagnostics/__init__.py:255 @@ -1839,31 +1841,31 @@ msgstr "Resultats" #: plinth/modules/diagnostics/templates/diagnostics_full.html:53 #, python-format msgid "%(number)s passed" -msgstr "" +msgstr "%(number)s superats" #: plinth/modules/diagnostics/templates/diagnostics_full.html:57 #, python-format msgid "%(number)s failed" -msgstr "" +msgstr "%(number)s fallats" #: plinth/modules/diagnostics/templates/diagnostics_full.html:61 #, python-format msgid "%(number)s warnings" -msgstr "" +msgstr "%(number)s amb avisos" #: plinth/modules/diagnostics/templates/diagnostics_full.html:65 #, python-format msgid "%(number)s errors" -msgstr "" +msgstr "%(number)s errors" #: plinth/modules/diagnostics/templates/diagnostics_full.html:69 #, python-format msgid "%(number)s skipped" -msgstr "" +msgstr "%(number)s saltats" #: plinth/modules/diagnostics/templates/diagnostics_full.html:111 msgid "Running..." -msgstr "" +msgstr "Executant…" #: plinth/modules/diagnostics/templates/diagnostics_results.html:11 msgid "Test" @@ -2687,7 +2689,7 @@ msgstr "Feather Wiki" #: plinth/modules/featherwiki/forms.py:13 plinth/modules/tiddlywiki/forms.py:13 msgid "Wiki files cannot be named \"index.html\"." -msgstr "" +msgstr "Els fitxers de la Wiki no es poden anomenar \"index.html\"." #: plinth/modules/featherwiki/forms.py:20 plinth/modules/tiddlywiki/forms.py:20 msgid "Name of the wiki file, with file extension \".html\"" @@ -3346,8 +3348,8 @@ msgstr "Enviar comentaris" msgid "Contribute" msgstr "Contribueix" -#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:216 -#: plinth/templates/base.html:219 plinth/templates/help-menu.html:46 +#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:221 +#: plinth/templates/base.html:224 plinth/templates/help-menu.html:46 #: plinth/templates/help-menu.html:47 plinth/templates/index.html:96 msgid "About" msgstr "Sobre" @@ -3523,7 +3525,7 @@ msgstr "" #: plinth/modules/help/templates/help_contribute.html:42 #: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_shutdown.html:26 -#: plinth/templates/app-header.html:65 +#: plinth/templates/app-header.html:66 msgid "Learn more..." msgstr "Aprèn-ne més..." @@ -3682,17 +3684,17 @@ msgstr "" #: plinth/modules/help/views.py:27 msgid "Documentation and FAQ" -msgstr "" +msgstr "Documentació i FAQs" #: plinth/modules/help/views.py:96 #, python-brace-format msgid "About {box_name}" -msgstr "" +msgstr "Sobre {box_name}" #: plinth/modules/help/views.py:133 #, python-brace-format msgid "{box_name} Manual" -msgstr "" +msgstr "Manual de {box_name}" #: plinth/modules/homeassistant/__init__.py:31 msgid "" @@ -3701,6 +3703,10 @@ msgid "" "alarms, presence sensors, door bells, thermostats, irrigation timers, energy " "monitors, etc." msgstr "" +"Home Assistant és un centre d’automatització de la llar amb èmfasi en el " +"control local i la privadesa. S’integra amb milers de dispositius, incloent-" +"hi bombetes intel·ligents, alarmes, sensors de presència, timbres, " +"termòstats, temporitzadors de reg, monitors d’energia, etc." #: plinth/modules/homeassistant/__init__.py:35 msgid "" @@ -3709,6 +3715,10 @@ msgid "" "requires additional hardware such as a ZigBee USB dongle. You need to re-run " "setup if such hardware is added or removed." msgstr "" +"Home Assistant pot detectar, configurar i utilitzar diversos dispositius a " +"la xarxa local. Per a dispositius que utilitzen altres protocols com ZigBee, " +"normalment requereix maquinari addicional com un dongle USB ZigBee. Heu de " +"tornar a executar la configuració si s’afegeix o s’elimina aquest maquinari." #: plinth/modules/homeassistant/__init__.py:39 msgid "" @@ -3716,6 +3726,9 @@ msgid "" "An administrator account is created at this time. Home Assistant maintains " "its own user accounts." msgstr "" +"La interfície web de Home Assistant s’ha de configurar poc després " +"d’instal·lar l’aplicació. En aquest moment es crea un compte " +"d’administrador. Home Assistant manté els seus propis comptes d’usuari." #: plinth/modules/homeassistant/__init__.py:43 #, python-brace-format @@ -3725,16 +3738,21 @@ msgid "" "reviews are done by the upstream project and not by Debian/{box_name}. " "Updates are performed following an independent cycle." msgstr "" +"Tingueu en compte que Home Assistant s’instal·la i s’executa dins d’un " +"contenidor proporcionat pel projecte Home Assistant. Les revisions de " +"seguretat, qualitat, privadesa i aspectes legals les fa el projecte original " +"i no Debian/{box_name}. Les actualitzacions es realitzen seguint un cicle " +"independent." #: plinth/modules/homeassistant/__init__.py:48 msgid "This app is experimental." -msgstr "" +msgstr "Aquesta app és experimental." #: plinth/modules/homeassistant/__init__.py:64 #: plinth/modules/homeassistant/manifest.py:12 #: plinth/modules/homeassistant/manifest.py:20 msgid "Home Assistant" -msgstr "" +msgstr "Home Assistant" #: plinth/modules/homeassistant/manifest.py:62 #, fuzzy @@ -3744,7 +3762,7 @@ msgstr "Automàtic" #: plinth/modules/homeassistant/manifest.py:63 msgid "IoT" -msgstr "" +msgstr "Internet de les coses" #: plinth/modules/homeassistant/manifest.py:64 #: plinth/modules/networks/manifest.py:8 @@ -3753,19 +3771,20 @@ msgstr "" #: plinth/modules/networks/templates/connections_fields_wifi.html:15 #: plinth/modules/networks/views.py:102 plinth/network.py:29 msgid "Wi-Fi" -msgstr "" +msgstr "WiFi" #: plinth/modules/homeassistant/manifest.py:65 msgid "ZigBee" -msgstr "" +msgstr "ZigBee" #: plinth/modules/homeassistant/manifest.py:66 +#, fuzzy msgid "Z-Wave" -msgstr "" +msgstr "Z-Wave" #: plinth/modules/homeassistant/manifest.py:67 msgid "Thread" -msgstr "" +msgstr "Fil" #: plinth/modules/homeassistant/templates/homeassistant.html:17 msgid "" @@ -3773,6 +3792,9 @@ msgid "" "URL path. Please select the domain on which Home Assistant will be " "available. Home Assistant will not be available on other domains." msgstr "" +"Home Assistant requereix un domini dedicat per funcionar i no pot treballar " +"en un camí d’URL. Seleccioneu el domini en què estarà disponible Home " +"Assistant. Home Assistant no estarà disponible en altres dominis." #: plinth/modules/homeassistant/templates/homeassistant.html:28 #, python-format @@ -3782,6 +3804,10 @@ msgid "" "href=\"%(names_url)s\">Names app and Dynamic DNS app for configuring subdomains." msgstr "" +"Es pot posar a disposició un domini separat per a Home Assistant configurant " +"un subdomini com ara homeassistant.mydomain.example. Consulteu l’aplicació " +"Noms i l’aplicació DNS Dinàmic per configurar subdominis." #: plinth/modules/homeassistant/templates/homeassistant.html:40 #: plinth/modules/ikiwiki/templates/ikiwiki_create.html:18 @@ -3789,7 +3815,7 @@ msgstr "" #: plinth/modules/snapshot/templates/snapshot.html:16 #: plinth/templates/app.html:60 msgid "Update setup" -msgstr "" +msgstr "Actualitza la configuració" #: plinth/modules/ikiwiki/__init__.py:20 msgid "" @@ -3797,6 +3823,9 @@ msgid "" "lightweight markup languages, including Markdown, and common blogging " "functionality such as comments and RSS feeds." msgstr "" +"ikiwiki és una aplicació senzilla de wiki i blog. Admet diversos llenguatges " +"de marques lleugers, inclòs Markdown, i funcionalitats comunes de blogging " +"com comentaris i canals RSS." #: plinth/modules/ikiwiki/__init__.py:24 #, python-brace-format @@ -3806,6 +3835,10 @@ msgid "" "edit existing ones. In the User " "Configuration you can change these permissions or add new users." msgstr "" +"Només els usuaris de {box_name} del grup admin poden crear i " +"gestionar blogs i wikis, però qualsevol usuari del grup wiki " +"pot editar els existents. A la Configuració " +"d’usuaris podeu canviar aquests permisos o afegir nous usuaris." #: plinth/modules/ikiwiki/__init__.py:45 plinth/modules/ikiwiki/manifest.py:6 msgid "ikiwiki" @@ -3813,85 +3846,88 @@ msgstr "ikiwiki" #: plinth/modules/ikiwiki/forms.py:17 msgid "Admin Account Name" -msgstr "" +msgstr "Nom del compte d'administrador" #: plinth/modules/ikiwiki/forms.py:19 msgid "Admin Account Password" -msgstr "" +msgstr "Contrasenya del compte d'administrador" #: plinth/modules/ikiwiki/manifest.py:15 #: plinth/modules/wordpress/manifest.py:26 msgid "Blog" -msgstr "" +msgstr "Bloc" #: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:12 msgid "Manage Wikis and Blogs" -msgstr "" +msgstr "Gestiona Wikis i Blogs" #: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:16 #: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:18 #: plinth/modules/ikiwiki/templates/ikiwiki_create.html:10 msgid "Create Wiki or Blog" -msgstr "" +msgstr "Crea una Wiki o un Blog" #: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:25 msgid "No wikis or blogs available." -msgstr "" +msgstr "No hi ha wikis o blogs disponibles." #: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:31 #, python-format msgid "Go to site %(site)s" -msgstr "" +msgstr "Ves al lloc web %(site)s" #: plinth/modules/ikiwiki/templates/ikiwiki_configure.html:38 #, python-format msgid "Delete site %(site)s" -msgstr "" +msgstr "Elimina el lloc web %(site)s" #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:12 #, python-format msgid "Delete Wiki or Blog %(name)s" -msgstr "" +msgstr "Elimina la Wiki o Blog %(name)s" #: plinth/modules/ikiwiki/templates/ikiwiki_delete.html:18 msgid "" "This action will remove all the posts, pages and comments including revision " "history. Delete this wiki or blog permanently?" msgstr "" +"Aquesta acció eliminarà totes les publicacions, pàgines i comentaris, inclòs " +"l’historial de revisions. . Voleu eliminar aquest wiki o blog de manera " +"permanent?" #: plinth/modules/ikiwiki/views.py:69 #, python-brace-format msgid "Created wiki {name}." -msgstr "" +msgstr "S'ha creat la wiki {name}." #: plinth/modules/ikiwiki/views.py:72 #, python-brace-format msgid "Could not create wiki: {error}" -msgstr "" +msgstr "No s'ha pogut crear la wiki: {error}" #: plinth/modules/ikiwiki/views.py:79 #, python-brace-format msgid "Created blog {name}." -msgstr "" +msgstr "S'ha creat el blog {name}." #: plinth/modules/ikiwiki/views.py:82 #, python-brace-format msgid "Could not create blog: {error}" -msgstr "" +msgstr "No s'ha pogut crear el blog: {error}" #: plinth/modules/ikiwiki/views.py:98 #, python-brace-format msgid "{title} deleted." -msgstr "" +msgstr "S'ha eliminat {title}." #: plinth/modules/ikiwiki/views.py:102 #, python-brace-format msgid "Could not delete {title}: {error}" -msgstr "" +msgstr "No s'ha pogut eliminar {title}: {error}" #: plinth/modules/infinoted/__init__.py:20 msgid "infinoted is a server for Gobby, a collaborative text editor." -msgstr "" +msgstr "infinoted és un servidor per a Gobby, un editor de text col·laboratiu." #: plinth/modules/infinoted/__init__.py:22 #, python-brace-format @@ -3900,6 +3936,10 @@ msgid "" "client and install it. Then start Gobby and select \"Connect to Server\" and " "enter your {box_name}'s domain name." msgstr "" +"Per utilitzar-lo, descarregueu Gobby, el client d’escriptori, i instal·leu-lo. Després inicieu Gobby i " +"seleccioneu \"Connecta’t al servidor\" i introduïu el nom de domini del " +"vostre {box_name}." #: plinth/modules/infinoted/__init__.py:41 msgid "infinoted" @@ -3907,12 +3947,13 @@ msgstr "infinoted" #: plinth/modules/infinoted/manifest.py:10 #: plinth/modules/infinoted/manifest.py:46 +#, fuzzy msgid "Gobby" -msgstr "" +msgstr "Gobby" #: plinth/modules/infinoted/manifest.py:12 msgid "Gobby is a collaborative text editor" -msgstr "" +msgstr "Gobby és un editor de text col·laboratiu" #: plinth/modules/infinoted/manifest.py:15 #, python-brace-format @@ -3920,23 +3961,25 @@ msgid "" "Start Gobby and select \"Connect to Server\" and enter your {box_name}'s " "domain name." msgstr "" +"Inicieu Gobby i seleccioneu \"Connecta’t al servidor\" i introduïu el nom de " +"domini del vostre {box_name}." #: plinth/modules/infinoted/manifest.py:46 msgid "Collaborative editing" -msgstr "" +msgstr "Edició col·laborativa" #: plinth/modules/janus/__init__.py:23 msgid "Janus is a lightweight WebRTC server." -msgstr "" +msgstr "Janus és un servidor WebRTC lleuger." #: plinth/modules/janus/__init__.py:24 msgid "A simple video conference room is included." -msgstr "" +msgstr "S’inclou una sala de videoconferència senzilla." #: plinth/modules/janus/__init__.py:26 #, python-brace-format msgid "Coturn is required to use Janus." -msgstr "" +msgstr "Per utilitzar Janus es requereix Coturn." #: plinth/modules/janus/__init__.py:29 #: plinth/modules/matrixsynapse/__init__.py:38 @@ -3946,34 +3989,42 @@ msgid "" "only be installed if frequent feature updates is enabled in the Software Update app." msgstr "" +"Nota: Aquesta aplicació rep actualitzacions de " +"funcionalitats freqüents. Només es pot instal·lar si les actualitzacions de " +"funcionalitats freqüents estan activades a l’aplicació Actualització de programari." #: plinth/modules/janus/__init__.py:47 msgid "Janus" msgstr "Janus" #: plinth/modules/janus/manifest.py:7 +#, fuzzy msgid "Janus Video Room" -msgstr "" +msgstr "Janus Video Room" #: plinth/modules/janus/manifest.py:16 +#, fuzzy msgid "WebRTC" -msgstr "" +msgstr "WebRTC" #: plinth/modules/janus/manifest.py:16 msgid "Web conference" -msgstr "" +msgstr "Videoconferència" #: plinth/modules/janus/templates/janus_video_room.html:204 #: plinth/modules/jsxc/templates/jsxc_launch.html:117 -#: plinth/templates/base.html:272 +#: plinth/templates/base.html:277 msgid "JavaScript license information" -msgstr "" +msgstr "Informació de la llicència de JavaScript" #: plinth/modules/jsxc/__init__.py:19 msgid "" "JSXC is a web client for XMPP. Typically it is used with an XMPP server " "running locally." msgstr "" +"JSXC és un client web per a XMPP. Normalment s’utilitza amb un servidor XMPP " +"que s’executa localment." #: plinth/modules/jsxc/__init__.py:38 plinth/modules/jsxc/manifest.py:7 msgid "JSXC" @@ -3981,11 +4032,12 @@ msgstr "JSXC" #: plinth/modules/jsxc/manifest.py:16 msgid "Web chat" -msgstr "" +msgstr "Xat web" #: plinth/modules/jsxc/manifest.py:16 plinth/modules/quassel/manifest.py:54 +#, fuzzy msgid "Client" -msgstr "" +msgstr "Client" #: plinth/modules/kiwix/__init__.py:21 msgid "" @@ -3993,6 +4045,10 @@ msgid "" "Wikipedia available without using the internet, but it is potentially " "suitable for all HTML content. Kiwix packages are in the ZIM file format." msgstr "" +"Kiwix és un lector fora de línia per a contingut web. És un programari " +"pensat per fer disponible la Wikipedia sense utilitzar internet, però " +"potencialment és adequat per a tot el contingut HTML. Els paquets de Kiwix " +"estan en format de fitxer ZIM." #: plinth/modules/kiwix/__init__.py:25 msgid "" @@ -4006,6 +4062,16 @@ msgid "" "
  • Magazines: Low-tech Magazine
  • \n" " " msgstr "" +"Kiwix pot allotjar diversos tipus de contingut:\n" +"
      \n" +"
    • Versions fora de línia de llocs web: projectes Wikimedia, " +"Stack Exchange
    • \n" +"
    • Contingut de vídeo: Khan Academy, TED Talks, Crash Course\n" +"
    • Materials educatius: PHET, TED Ed, Vikidia
    • \n" +"
    • eBooks: Project Gutenberg
    • \n" +"
    • Revistes: Low-tech Magazine
    • \n" +"
    " #: plinth/modules/kiwix/__init__.py:33 #: plinth/modules/kiwix/templates/kiwix-add-package.html:14 @@ -4015,10 +4081,14 @@ msgid "" "project or create your own." msgstr "" +"Podeu descarregar paquets de contingut del projecte Kiwix o crear els vostres propis." #: plinth/modules/kiwix/__init__.py:53 msgid "Manage Kiwix content server" -msgstr "" +msgstr "Gestiona el servidor de contingut Kiwix" #: plinth/modules/kiwix/__init__.py:56 plinth/modules/kiwix/manifest.py:8 msgid "Kiwix" @@ -4026,7 +4096,7 @@ msgstr "Kiwix" #: plinth/modules/kiwix/forms.py:23 msgid "Content packages have to be in .zim format" -msgstr "" +msgstr "Els paquets de contingut han d'estar en format .zim" #: plinth/modules/kiwix/forms.py:25 #, python-brace-format @@ -4035,82 +4105,87 @@ msgid "" "{box_name}. If Kiwix fails to add the file, it will be deleted immediately " "to save disk space." msgstr "" +"Els fitxers ZIM pujats s’emmagatzemaran a {kiwix_home}/content al vostre " +"{box_name}. Si Kiwix no aconsegueix afegir el fitxer, s’eliminarà " +"immediatament per estalviar espai al disc." #: plinth/modules/kiwix/manifest.py:24 msgid "Offline reader" -msgstr "" +msgstr "Lector fora de línia" #: plinth/modules/kiwix/manifest.py:25 msgid "Archival" -msgstr "" +msgstr "Arxiu" #: plinth/modules/kiwix/manifest.py:26 #: plinth/modules/shadowsocks/manifest.py:19 #: plinth/modules/shadowsocksserver/manifest.py:18 #: plinth/modules/tor/manifest.py:60 plinth/modules/torproxy/manifest.py:57 msgid "Censorship resistance" -msgstr "" +msgstr "Resistent a la censura" #: plinth/modules/kiwix/manifest.py:27 msgid "Wikipedia" -msgstr "" +msgstr "Viquipèdia" #: plinth/modules/kiwix/templates/kiwix-add-package.html:29 #, python-format msgid "You have %(max_filesize)s of free disk space available." -msgstr "" +msgstr "Teniu %(max_filesize)s d’espai lliure al disc disponible." #: plinth/modules/kiwix/templates/kiwix-add-package.html:42 msgid "Upload ZIM file" -msgstr "" +msgstr "Penja un fitxer ZIM" #: plinth/modules/kiwix/templates/kiwix-delete-package.html:11 #, python-format msgid "Delete content package %(name)s" -msgstr "" +msgstr "Eliminar el paquet de contingut %(name)s" #: plinth/modules/kiwix/templates/kiwix-delete-package.html:17 msgid "" "Delete this package permanently? You may add it back later if you have a " "copy of the ZIM file." msgstr "" +"Eliminar aquest paquet de manera permanent? El podreu afegir de nou més " +"endavant si en teniu una còpia del fitxer ZIM." #: plinth/modules/kiwix/templates/kiwix.html:11 msgid "Manage Content Packages" -msgstr "" +msgstr "Gestiona els paquets de contingut" #: plinth/modules/kiwix/templates/kiwix.html:15 msgid "Add a content package" -msgstr "" +msgstr "Afegeix un paquet de contingut" #: plinth/modules/kiwix/templates/kiwix.html:17 msgid "Add Package" -msgstr "" +msgstr "Afegeix un paquet" #: plinth/modules/kiwix/templates/kiwix.html:24 msgid "No content packages available." -msgstr "" +msgstr "No hi ha paquets de contingut disponibles." #: plinth/modules/kiwix/templates/kiwix.html:37 #, python-format msgid "Delete package %(title)s" -msgstr "" +msgstr "Elimina el paquet %(title)s" #: plinth/modules/kiwix/views.py:49 msgid "Content package added." -msgstr "" +msgstr "Paquet de contingut afegit." #: plinth/modules/kiwix/views.py:54 msgid "Add a new content package" -msgstr "" +msgstr "Afegeix un nou paquet de contingut" #: plinth/modules/kiwix/views.py:76 msgid "Content package already exists." -msgstr "" +msgstr "Encara existeix un paquet de contingut." #: plinth/modules/kiwix/views.py:79 msgid "Failed to add content package." -msgstr "" +msgstr "No s'ha pogut afegir el paquet de contingut." #: plinth/modules/letsencrypt/__init__.py:27 #, python-brace-format @@ -4121,6 +4196,11 @@ msgid "" "domain. It does so by proving itself to be the owner of a domain to Let's " "Encrypt, a certificate authority (CA)." msgstr "" +"Un certificat digital permet als usuaris d’un servei web verificar la " +"identitat del servei i comunicar-se amb ell de manera segura. {box_name} pot " +"obtenir i configurar automàticament certificats digitals per a cada domini " +"disponible. Ho fa demostrant ser el propietari d’un domini a Let's Encrypt, " +"una autoritat de certificació (CA)." #: plinth/modules/letsencrypt/__init__.py:33 msgid "" @@ -4129,69 +4209,76 @@ msgid "" "read and agree with the Let's Encrypt Subscriber Agreement before using this service." msgstr "" +"Let's Encrypt és una autoritat de certificació gratuïta, automatitzada i " +"oberta, gestionada per al benefici del públic per l’Internet Security " +"Research Group (ISRG). Llegiu i accepteu el Contracte d’usuari de Let's Encrypt abans " +"d’utilitzar aquest servei." #: plinth/modules/letsencrypt/__init__.py:60 +#, fuzzy msgid "Let's Encrypt" -msgstr "" +msgstr "Let's Encrypt" #: plinth/modules/letsencrypt/manifest.py:11 msgid "Certificates" -msgstr "" +msgstr "Certificats" #: plinth/modules/letsencrypt/manifest.py:11 +#, fuzzy msgid "HTTPS" -msgstr "" +msgstr "HTTPS" #: plinth/modules/letsencrypt/manifest.py:11 msgid "Web security" -msgstr "" +msgstr "Seguretat Web" #: plinth/modules/letsencrypt/templates/letsencrypt.html:25 msgid "Certificate Status" -msgstr "" +msgstr "Estat dels Certificats" #: plinth/modules/letsencrypt/templates/letsencrypt.html:26 msgid "Website Security" -msgstr "" +msgstr "Seguretat del Lloc Web" #: plinth/modules/letsencrypt/templates/letsencrypt.html:37 #, python-format msgid "Valid, expires on %(expiry_date)s" -msgstr "" +msgstr "Vàlid, expira el %(expiry_date)s" #: plinth/modules/letsencrypt/templates/letsencrypt.html:44 msgid "Revoked" -msgstr "" +msgstr "Revocat" #: plinth/modules/letsencrypt/templates/letsencrypt.html:48 #, python-format msgid "Expired on %(expiry_date)s" -msgstr "" +msgstr "Expirà el %(expiry_date)s" #: plinth/modules/letsencrypt/templates/letsencrypt.html:52 msgid "Invalid test certificate" -msgstr "" +msgstr "Certificat de prova invàlid" #: plinth/modules/letsencrypt/templates/letsencrypt.html:56 #, python-format msgid "Invalid (%(reason)s)" -msgstr "" +msgstr "Invàlid (%(reason)s)" #: plinth/modules/letsencrypt/templates/letsencrypt.html:63 msgid "No certificate" -msgstr "" +msgstr "No hi ha certificat" #: plinth/modules/letsencrypt/templates/letsencrypt.html:80 msgid "Re-obtain" -msgstr "" +msgstr "Torna'l a obtenir" #: plinth/modules/letsencrypt/templates/letsencrypt.html:93 msgid "Revoke" -msgstr "" +msgstr "Revocar" #: plinth/modules/letsencrypt/templates/letsencrypt.html:101 msgid "Obtain" -msgstr "" +msgstr "Obtenir" #: plinth/modules/letsencrypt/templates/letsencrypt.html:112 #, python-format @@ -4199,6 +4286,8 @@ msgid "" "No domains have been configured. Configure " "domains to be able to obtain certificates for them." msgstr "" +"No s’ha configurat cap domini. Configureu els " +"dominis per poder obtenir certificats per a ells." #: plinth/modules/letsencrypt/views.py:40 #, python-brace-format @@ -4206,33 +4295,35 @@ msgid "" "Certificate successfully revoked for domain {domain}.This may take a few " "moments to take effect." msgstr "" +"Certificat revocat correctament per al domini {domain}. Això pot trigar uns " +"moments a fer efecte." #: plinth/modules/letsencrypt/views.py:46 #, python-brace-format msgid "Failed to revoke certificate for domain {domain}" -msgstr "" +msgstr "No s’ha pogut revocar el certificat per al domini {domain}" #: plinth/modules/letsencrypt/views.py:59 #: plinth/modules/letsencrypt/views.py:77 #, python-brace-format msgid "Certificate successfully obtained for domain {domain}" -msgstr "" +msgstr "Certificat obtingut correctament per al domini {domain}" #: plinth/modules/letsencrypt/views.py:64 #: plinth/modules/letsencrypt/views.py:82 #, python-brace-format msgid "Failed to obtain certificate for domain {domain}" -msgstr "" +msgstr "No s’ha pogut obtenir el certificat per al domini {domain}" #: plinth/modules/letsencrypt/views.py:95 #, python-brace-format msgid "Certificate successfully deleted for domain {domain}" -msgstr "" +msgstr "Certificat eliminat correctament per al domini {domain}" #: plinth/modules/letsencrypt/views.py:100 #, python-brace-format msgid "Failed to delete certificate for domain {domain}" -msgstr "" +msgstr "No s’ha pogut eliminar el certificat per al domini {domain}" #: plinth/modules/matrixsynapse/__init__.py:26 msgid "" @@ -4243,6 +4334,13 @@ msgid "" "not require phone numbers to work. Users on a given Matrix server can " "converse with users on all other Matrix servers via federation." msgstr "" +"Matrix és un nou " +"ecosistema per a missatgeria instantània i VoIP oberta i federada. Synapse " +"és un servidor que implementa el protocol Matrix. Proporciona grups de xat, " +"trucades d’àudio/vídeo, xifrat de punta a punta, sincronització de múltiples " +"dispositius i no requereix números de telèfon per funcionar. Els usuaris " +"d’un servidor Matrix poden conversar amb usuaris de tots els altres " +"servidors Matrix mitjançant federació." #: plinth/modules/matrixsynapse/__init__.py:34 #, python-brace-format @@ -4250,6 +4348,9 @@ msgid "" "Matrix Synapse needs a STUN/TURN server for audio/video calls. Install the " "Coturn app or configure an external server." msgstr "" +"Matrix Synapse necessita un servidor STUN/TURN per a trucades d’àudio/vídeo. " +"Instal·leu l’aplicació Coturn o configureu un " +"servidor extern." #: plinth/modules/matrixsynapse/__init__.py:59 msgid "Matrix Synapse" @@ -4260,6 +4361,8 @@ msgid "" "Disabled. This could lead to adversaries registering many spam accounts on " "your server with automated scripts." msgstr "" +"Desactivat. Això podria permetre que adversaris registrin molts comptes de " +"correu brossa al vostre servidor amb scripts automatitzats." #: plinth/modules/matrixsynapse/forms.py:18 msgid "" @@ -4267,10 +4370,14 @@ msgid "" "will be created automatically. Pass this token to your potential new users. " "They will be asked for the token during registration. (recommended)" msgstr "" +"Exigeix que els usuaris que creen un nou compte utilitzin un token de " +"registre. Un token es crearà automàticament. Doneu aquest token als vostres " +"possibles nous usuaris. Se’ls demanarà el token durant el registre. " +"(recomanat)" #: plinth/modules/matrixsynapse/forms.py:27 msgid "Enable Public Registration" -msgstr "" +msgstr "Permet el Registre Públic" #: plinth/modules/matrixsynapse/forms.py:28 msgid "" @@ -4278,10 +4385,13 @@ msgid "" "a new account on your Matrix server. Disable this if you only want existing " "users to be able to use it." msgstr "" +"Activar el registre públic significa que qualsevol persona a Internet pot " +"registrar un nou compte al vostre servidor Matrix. Desactiveu-ho si només " +"voleu que els usuaris existents puguin utilitzar-lo." #: plinth/modules/matrixsynapse/forms.py:33 msgid "Verification method for registration" -msgstr "" +msgstr "Mètode de verificació per al registre" #: plinth/modules/matrixsynapse/forms.py:40 #, python-brace-format @@ -4290,23 +4400,28 @@ msgid "" "server for Matrix Synapse. Disable this if you want to use a different STUN/" "TURN server." msgstr "" +"Configura l’aplicació local coturn com a " +"servidor STUN/TURN per a Matrix Synapse. Desactiveu-ho si voleu utilitzar un " +"servidor STUN/TURN diferent." #: plinth/modules/matrixsynapse/manifest.py:14 +#, fuzzy msgid "Element" -msgstr "" +msgstr "Element" #: plinth/modules/matrixsynapse/manifest.py:48 +#, fuzzy msgid "FluffyChat" -msgstr "" +msgstr "FluffyChat" #: plinth/modules/matrixsynapse/manifest.py:101 #: plinth/modules/quassel/manifest.py:54 msgid "Chat room" -msgstr "" +msgstr "Sala de xat" #: plinth/modules/matrixsynapse/manifest.py:105 msgid "Matrix server" -msgstr "" +msgstr "Servidor de Matrix" #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:18 msgid "" @@ -4314,12 +4429,19 @@ msgid "" "servers will be able to reach users on this server using this domain name. " "Matrix user IDs will look like @username:domainname." msgstr "" +"Cal configurar el servei Matrix per a un domini. Els usuaris d’altres " +"servidors Matrix podran contactar amb els usuaris d’aquest servidor " +"utilitzant aquest nom de domini. Els identificadors d’usuari de Matrix " +"tindran aquest aspecte: @username:domainname." #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:31 msgid "" "Warning! Changing the domain name after this step will " "require uninstalling and reinstalling the app which will wipe app's data." msgstr "" +"Avís! Canviar el nom de domini després d’aquest pas " +"requerirà desinstal·lar i reinstal·lar l’aplicació, cosa que esborrarà les " +"dades de l’aplicació." #: plinth/modules/matrixsynapse/templates/matrix-synapse-pre-setup.html:42 #, python-format @@ -4327,6 +4449,8 @@ msgid "" "No domain(s) are available. Configure at " "least one domain to be able to use Matrix Synapse." msgstr "" +"No hi ha cap domini disponible. Configureu " +"almenys un domini per poder utilitzar Matrix Synapse." #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:20 #, fuzzy, python-format @@ -4349,36 +4473,40 @@ msgid "" "New users can be registered from any client if public registration is " "enabled." msgstr "" +"Es poden registrar nous usuaris des de qualsevol client si el registre " +"públic està activat." #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:35 msgid "" "New users must use one of the following tokens for verification during " "account registration:" msgstr "" +"Els nous usuaris han d’utilitzar un dels tokens següents per a la " +"verificació durant el registre del compte:" #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:44 msgid "Registration Token" -msgstr "" +msgstr "Token de Registre" #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:45 msgid "Uses Allowed" -msgstr "" +msgstr "Usos permesos" #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:46 msgid "Pending Registrations" -msgstr "" +msgstr "Registres Pendents" #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:47 msgid "Completed Registrations" -msgstr "" +msgstr "Registres Completats" #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:48 msgid "Expiry Time" -msgstr "" +msgstr "Data de Caducitat" #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:57 msgid "Unlimited" -msgstr "" +msgstr "Il·limitat" #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:78 #, fuzzy @@ -4395,6 +4523,12 @@ msgid "" "hosted here. If you face problems with federation, try the federation tester tool." msgstr "" +"Matrix Synapse està configurat per funcionar amb altres servidors Matrix a " +"Internet. Això permet als usuaris de %(box_name)s participar en sales " +"allotjades en altres llocs i als usuaris de Matrix d’altres servidors " +"participar en sales allotjades aquí. Si teniu problemes amb la federació, " +"proveu l’eina de prova de " +"federació." #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:99 #, python-format @@ -4403,10 +4537,16 @@ msgid "" "with other Matrix Synapse instances requires a valid TLS certificate. Please " "go to Let's Encrypt to obtain one." msgstr "" +"El nom de domini configurat està utilitzant un certificat autofirmat. La " +"federació amb altres instàncies de Matrix Synapse requereix un certificat " +"TLS vàlid. Si us plau, aneu a Let's Encrypt per obtenir-ne un." #: plinth/modules/matrixsynapse/views.py:140 msgid "Registration configuration cannot be updated when app is disabled." msgstr "" +"La configuració del registre no es pot actualitzar quan l’aplicació està " +"desactivada." #: plinth/modules/mediawiki/__init__.py:21 msgid "" @@ -4415,6 +4555,10 @@ msgid "" "website. You can use MediaWiki to host a wiki-like website, take notes or " "collaborate with friends on projects." msgstr "" +"MediaWiki és el motor de wiki que fa funcionar la Wikipedia i altres " +"projectes de WikiMedia. Un motor de wiki és un programa per crear un lloc " +"web editat de manera col·laborativa. Podeu utilitzar MediaWiki per allotjar " +"un lloc web tipus wiki, prendre notes o col·laborar amb amics en projectes." #: plinth/modules/mediawiki/__init__.py:25 msgid "" @@ -4424,12 +4568,20 @@ msgid "" "from MediaWiki itself by going to the Special:CreateAccount page." msgstr "" +"Aquesta instància de MediaWiki ve amb una contrasenya d’administrador " +"generada aleatòriament. Podeu establir una nova contrasenya a la secció " +"\"Configuració\" i iniciar sessió amb el compte \"admin\". A continuació, " +"podeu crear més comptes d’usuari des de MediaWiki anant a la pàgina Special:CreateAccount." #: plinth/modules/mediawiki/__init__.py:31 msgid "" "Anyone with a link to this wiki can read it. Only users that are logged in " "can make changes to the content." msgstr "" +"Qualsevol persona amb un enllaç a aquest wiki el pot llegir. Només els " +"usuaris que han iniciat sessió poden fer canvis al contingut." #: plinth/modules/mediawiki/__init__.py:51 #: plinth/modules/mediawiki/manifest.py:6 @@ -4438,7 +4590,7 @@ msgstr "MediaWiki" #: plinth/modules/mediawiki/forms.py:56 msgid "Administrator Password" -msgstr "" +msgstr "Contrasenya d'Administrador" #: plinth/modules/mediawiki/forms.py:57 msgid "" @@ -4447,6 +4599,10 @@ msgid "" "10 characters. Leave this field blank to keep the current " "password." msgstr "" +"Establiu una nova contrasenya per al compte d’administrador de MediaWiki " +"(admin). La contrasenya no pot ser comuna i la longitud mínima requerida és " +"de 10 caràcters. Deixeu aquest camp en blanc per mantenir " +"la contrasenya actual." #: plinth/modules/mediawiki/forms.py:65 msgid "" @@ -4454,94 +4610,108 @@ msgid "" "feeds and emails. Examples: \"myfreedombox.example.org\" or " "\"example.onion\"." msgstr "" +"Utilitzat per MediaWiki per generar URLs que apuntin al wiki, com ara al peu " +"de pàgina, canals i correus electrònics. Exemples: " +"\"myfreedombox.example.org\" o \"example.onion\"." #: plinth/modules/mediawiki/forms.py:71 msgid "Site Name" -msgstr "" +msgstr "Nom del Lloc Web" #: plinth/modules/mediawiki/forms.py:72 msgid "Name of the site as displayed throughout the wiki." -msgstr "" +msgstr "Nom del lloc web tal com es mostrà a tot el wiki." #: plinth/modules/mediawiki/forms.py:76 msgid "Enable public registrations" -msgstr "" +msgstr "Permet els registres públics" #: plinth/modules/mediawiki/forms.py:77 msgid "" "If enabled, anyone on the internet will be able to create an account on your " "MediaWiki instance." msgstr "" +"Si està activat, qualsevol persona a Internet podrà crear un compte a la " +"vostra instància de MediaWiki." #: plinth/modules/mediawiki/forms.py:81 msgid "Enable private mode" -msgstr "" +msgstr "Habilita el mode privat" #: plinth/modules/mediawiki/forms.py:82 msgid "" "If enabled, access will be restricted. Only people who have accounts can " "read/write to the wiki. Public registrations will also be disabled." msgstr "" +"Si està activat, l’accés estarà restringit. Només les persones que tinguin " +"comptes podran llegir/escriure al wiki. També es desactivaran els registres " +"públics." #: plinth/modules/mediawiki/forms.py:87 msgid "Default Skin" -msgstr "" +msgstr "Tema per Defecte" #: plinth/modules/mediawiki/forms.py:88 msgid "" "Choose a default skin for your MediaWiki installation. Users have the option " "to select their preferred skin." msgstr "" +"Escull un tema per defecte per a la teva instal·lació de MediaWiki. Els " +"usuaris tenen l'opció d'escollir el tema que prefereixin." #: plinth/modules/mediawiki/forms.py:93 msgid "Default Language" -msgstr "" +msgstr "Llengua per Defecte" #: plinth/modules/mediawiki/forms.py:94 msgid "" "Choose a default language for your MediaWiki installation. Users have the " "option to select their preferred language." msgstr "" +"Tria una llengua per defecte per la teva instal·lació de Media Wiki. Els " +"usuaris tenen l'opció de triar la llengua que prefereixin." #: plinth/modules/mediawiki/views.py:43 msgid "Password updated" -msgstr "" +msgstr "Contrasenya actualitzada" #: plinth/modules/mediawiki/views.py:48 msgid "Password update failed. Please choose a stronger password" msgstr "" +"Ha fallat l'actualització de la Contrasenya. Si us plau, trieu una " +"contrasenya més segura" #: plinth/modules/mediawiki/views.py:57 msgid "Public registrations enabled" -msgstr "" +msgstr "Registres públics activats" #: plinth/modules/mediawiki/views.py:65 msgid "Public registrations disabled" -msgstr "" +msgstr "Registres públics desactivats" #: plinth/modules/mediawiki/views.py:70 msgid "Private mode enabled" -msgstr "" +msgstr "Mode privat activat" #: plinth/modules/mediawiki/views.py:76 msgid "Private mode disabled" -msgstr "" +msgstr "Mode privat desactivat" #: plinth/modules/mediawiki/views.py:84 msgid "Default skin changed" -msgstr "" +msgstr "Tema per defecte modificat" #: plinth/modules/mediawiki/views.py:88 msgid "Domain name updated" -msgstr "" +msgstr "Nom de domini actualitzat" #: plinth/modules/mediawiki/views.py:92 msgid "Site name updated" -msgstr "" +msgstr "Nom del lloc web actualitzat" #: plinth/modules/mediawiki/views.py:96 msgid "Default language changed" -msgstr "" +msgstr "Llengua per defecte modificada" #: plinth/modules/minetest/__init__.py:33 #, python-brace-format @@ -4551,6 +4721,10 @@ msgid "" "(30000). To connect to the server, a Minetest client is needed." msgstr "" +"Minetest és un sandbox multijugador de blocs amb món infinit. Aquest mòdul " +"permet executar el servidor Minetest en aquest {box_name}, al port per " +"defecte (30000). Per connectar-se al servidor, cal un client de Minetest." #: plinth/modules/minetest/__init__.py:56 plinth/modules/minetest/manifest.py:9 msgid "Minetest" @@ -4558,56 +4732,64 @@ msgstr "Minetest" #: plinth/modules/minetest/forms.py:13 msgid "Maximum number of players" -msgstr "" +msgstr "Nombre màxim de jugadors" #: plinth/modules/minetest/forms.py:15 msgid "" "You can change the maximum number of players playing minetest at a single " "instance of time." msgstr "" +"Podeu canviar el nombre màxim de jugadors que poden jugar a Minetest en una " +"sola instància alhora." #: plinth/modules/minetest/forms.py:19 msgid "Enable creative mode" -msgstr "" +msgstr "Habilita el mode creatiu" #: plinth/modules/minetest/forms.py:20 msgid "" "Creative mode changes the rules of the game to make it more suitable for " "creative gameplay, rather than challenging \"survival\" gameplay." msgstr "" +"El mode creatiu canvia les regles del joc per fer-lo més adequat per a un " +"joc creatiu, en lloc del desafiant joc de \"supervivència\"." #: plinth/modules/minetest/forms.py:25 msgid "Enable PVP" -msgstr "" +msgstr "Habilita el PVP" #: plinth/modules/minetest/forms.py:26 msgid "Enabling Player Vs Player will allow players to damage other players." msgstr "" +"Habilitant el Jugador contra Jugador (PVP) permetrà als jugadors fer mal a " +"altres jugadors." #: plinth/modules/minetest/forms.py:30 msgid "Enable damage" -msgstr "" +msgstr "Habilita el dany" #: plinth/modules/minetest/forms.py:31 msgid "When disabled, players cannot die or receive damage of any kind." msgstr "" +"Si es troba inhabilitat, els jugadors no podran morir o rebre dany de cap " +"mena." #: plinth/modules/minetest/manifest.py:49 msgid "Game server" -msgstr "" +msgstr "Servidor de joc" #: plinth/modules/minetest/manifest.py:49 msgid "Block sandbox" -msgstr "" +msgstr "Sandbox de blocs" #: plinth/modules/minetest/manifest.py:49 msgid "Platform" -msgstr "" +msgstr "Plataforma" #: plinth/modules/minetest/templates/minetest.html:17 #: plinth/modules/networks/forms.py:105 plinth/modules/networks/forms.py:145 msgid "Address" -msgstr "" +msgstr "Adreça" #: plinth/modules/minidlna/__init__.py:20 msgid "" @@ -4619,6 +4801,13 @@ msgid "" "gaming systems (such as PS3 and Xbox 360) or applications such as totem and " "Kodi." msgstr "" +"MiniDLNA és un programari de servidor multimèdia senzill, amb l’objectiu de " +"ser completament compatible amb clients DLNA/UPnP-AV. El servei MiniDLNA " +"serveix fitxers multimèdia (música, imatges i vídeo) als clients d’una " +"xarxa. DLNA/UPnP és un protocol sense configuració i és compatible amb " +"qualsevol dispositiu que passi la certificació DLNA, com reproductors " +"multimèdia portàtils, smartphones, televisors i consoles de jocs (com PS3 i " +"Xbox 360) o aplicacions com totem i Kodi." #: plinth/modules/minidlna/__init__.py:45 msgid "MiniDLNA" @@ -4626,49 +4815,62 @@ msgstr "MiniDLNA" #: plinth/modules/minidlna/forms.py:20 msgid "Media Files Directory" -msgstr "" +msgstr "Directori de Fitxers Multimèdia" #: plinth/modules/minidlna/forms.py:21 msgid "" "Directory that MiniDLNA Server will read for content. All sub-directories of " "this will be also scanned for media files." msgstr "" +"MiniDLNA és un programari de servidor multimèdia senzill, amb l’objectiu de " +"ser completament compatible amb clients DLNA/UPnP-AV. El dimoni MiniDLNA " +"serveix fitxers multimèdia (música, imatges i vídeo) als clients d’una " +"xarxa. DLNA/UPnP és un protocol sense configuració i és compatible amb " +"qualsevol dispositiu que passi la certificació DLNA, com reproductors " +"multimèdia portàtils, smartphones, televisors i consoles de jocs (com PS3 i " +"Xbox 360) o aplicacions com totem i Kodi." #: plinth/modules/minidlna/manifest.py:10 +#, fuzzy msgid "vlc" -msgstr "" +msgstr "vlc" #: plinth/modules/minidlna/manifest.py:48 +#, fuzzy msgid "kodi" -msgstr "" +msgstr "kodi" #: plinth/modules/minidlna/manifest.py:81 +#, fuzzy msgid "yaacc" -msgstr "" +msgstr "yaacc" #: plinth/modules/minidlna/manifest.py:91 +#, fuzzy msgid "totem" -msgstr "" +msgstr "totem" #: plinth/modules/minidlna/manifest.py:116 msgid "Media server" -msgstr "" +msgstr "Servidor Multimèdia" #: plinth/modules/minidlna/manifest.py:116 msgid "Television" -msgstr "" +msgstr "Televisió" #: plinth/modules/minidlna/manifest.py:116 +#, fuzzy msgid "UPnP" -msgstr "" +msgstr "UPnP" #: plinth/modules/minidlna/manifest.py:116 +#, fuzzy msgid "DLNA" -msgstr "" +msgstr "DLNA" #: plinth/modules/minidlna/views.py:33 msgid "Updated media directory" -msgstr "" +msgstr "S'ha actualitzat el directori multimèdia" #: plinth/modules/miniflux/__init__.py:18 msgid "" @@ -4678,6 +4880,11 @@ msgid "" "subscribe to your favorite sites and access full article contents within the " "reader itself." msgstr "" +"Miniflux és una eina basada en web que agrega notícies i actualitzacions de " +"blogs de diversos llocs web en un únic format centralitzat i fàcil de " +"llegir. Té una interfície senzilla i es centra en una experiència de lectura " +"sense distraccions. Podeu subscriure-us als vostres llocs favorits i accedir " +"al contingut complet dels articles des del mateix lector." #: plinth/modules/miniflux/__init__.py:23 msgid "" @@ -5012,7 +5219,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:40 #: plinth/modules/wireguard/templates/wireguard_show_client.html:72 #: plinth/modules/wireguard/templates/wireguard_show_server.html:73 -#: plinth/templates/base.html:166 plinth/templates/base.html:167 +#: plinth/templates/base.html:171 plinth/templates/base.html:172 msgid "Edit" msgstr "" @@ -6530,8 +6737,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:181 -#: plinth/templates/base.html:182 +#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:186 +#: plinth/templates/base.html:187 msgid "Restart" msgstr "" @@ -9649,35 +9856,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: plinth/templates/base.html:117 +#: plinth/templates/base.html:120 msgid " Home" msgstr "" -#: plinth/templates/base.html:125 +#: plinth/templates/base.html:128 msgid " Apps" msgstr "" -#: plinth/templates/base.html:134 +#: plinth/templates/base.html:137 msgid " System" msgstr "" -#: plinth/templates/base.html:173 plinth/templates/base.html:174 +#: plinth/templates/base.html:178 plinth/templates/base.html:179 msgid "Change password" msgstr "" -#: plinth/templates/base.html:187 plinth/templates/base.html:188 +#: plinth/templates/base.html:192 plinth/templates/base.html:193 msgid "Shut down" msgstr "" -#: plinth/templates/base.html:198 plinth/templates/base.html:236 +#: plinth/templates/base.html:203 plinth/templates/base.html:241 msgid "Log out" msgstr "" -#: plinth/templates/base.html:207 plinth/templates/base.html:210 +#: plinth/templates/base.html:212 plinth/templates/base.html:215 msgid "Select language" msgstr "" -#: plinth/templates/base.html:225 plinth/templates/base.html:227 +#: plinth/templates/base.html:230 plinth/templates/base.html:232 msgid "Log in" msgstr "" @@ -9866,6 +10073,30 @@ msgstr "" msgid "Clear all tags" msgstr "" +#: plinth/templates/theme-menu.html:8 +msgid "Toggle theme (auto)" +msgstr "" + +#: plinth/templates/theme-menu.html:14 +msgid "Toggle theme" +msgstr "" + +#: plinth/templates/theme-menu.html:23 +#, fuzzy +#| msgid "Weight" +msgid "Light" +msgstr "Pes" + +#: plinth/templates/theme-menu.html:32 +msgid "Dark" +msgstr "" + +#: plinth/templates/theme-menu.html:41 +#, fuzzy +#| msgid "Automatic" +msgid "Auto" +msgstr "Automàtic" + #: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40 #, fuzzy #| msgid "Logs" diff --git a/plinth/locale/cs/LC_MESSAGES/django.po b/plinth/locale/cs/LC_MESSAGES/django.po index a0c81d47f..fee26275f 100644 --- a/plinth/locale/cs/LC_MESSAGES/django.po +++ b/plinth/locale/cs/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 01:21+0000\n" +"POT-Creation-Date: 2025-12-09 01:26+0000\n" "PO-Revision-Date: 2025-11-12 07:51+0000\n" "Last-Translator: Jiří Podhorecký \n" "Language-Team: Czech \n" "Language-Team: Danish \n" "Language-Team: German \n" "Language-Team: LANGUAGE \n" @@ -100,15 +100,15 @@ msgstr "" msgid "Use the language preference set in the browser" msgstr "" -#: plinth/menu.py:116 plinth/templates/base.html:120 +#: plinth/menu.py:116 plinth/templates/base.html:123 msgid "Home" msgstr "" -#: plinth/menu.py:117 plinth/templates/base.html:129 +#: plinth/menu.py:117 plinth/templates/base.html:132 msgid "Apps" msgstr "" -#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:138 +#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:141 msgid "System" msgstr "" @@ -2994,8 +2994,8 @@ msgstr "" msgid "Contribute" msgstr "" -#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:216 -#: plinth/templates/base.html:219 plinth/templates/help-menu.html:46 +#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:221 +#: plinth/templates/base.html:224 plinth/templates/help-menu.html:46 #: plinth/templates/help-menu.html:47 plinth/templates/index.html:96 msgid "About" msgstr "" @@ -3133,7 +3133,7 @@ msgstr "" #: plinth/modules/help/templates/help_contribute.html:42 #: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_shutdown.html:26 -#: plinth/templates/app-header.html:65 +#: plinth/templates/app-header.html:66 msgid "Learn more..." msgstr "" @@ -3537,7 +3537,7 @@ msgstr "" #: plinth/modules/janus/templates/janus_video_room.html:204 #: plinth/modules/jsxc/templates/jsxc_launch.html:117 -#: plinth/templates/base.html:272 +#: plinth/templates/base.html:277 msgid "JavaScript license information" msgstr "" @@ -4574,7 +4574,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:40 #: plinth/modules/wireguard/templates/wireguard_show_client.html:72 #: plinth/modules/wireguard/templates/wireguard_show_server.html:73 -#: plinth/templates/base.html:166 plinth/templates/base.html:167 +#: plinth/templates/base.html:171 plinth/templates/base.html:172 msgid "Edit" msgstr "" @@ -6092,8 +6092,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:181 -#: plinth/templates/base.html:182 +#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:186 +#: plinth/templates/base.html:187 msgid "Restart" msgstr "" @@ -9209,35 +9209,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: plinth/templates/base.html:117 +#: plinth/templates/base.html:120 msgid " Home" msgstr "" -#: plinth/templates/base.html:125 +#: plinth/templates/base.html:128 msgid " Apps" msgstr "" -#: plinth/templates/base.html:134 +#: plinth/templates/base.html:137 msgid " System" msgstr "" -#: plinth/templates/base.html:173 plinth/templates/base.html:174 +#: plinth/templates/base.html:178 plinth/templates/base.html:179 msgid "Change password" msgstr "" -#: plinth/templates/base.html:187 plinth/templates/base.html:188 +#: plinth/templates/base.html:192 plinth/templates/base.html:193 msgid "Shut down" msgstr "" -#: plinth/templates/base.html:198 plinth/templates/base.html:236 +#: plinth/templates/base.html:203 plinth/templates/base.html:241 msgid "Log out" msgstr "" -#: plinth/templates/base.html:207 plinth/templates/base.html:210 +#: plinth/templates/base.html:212 plinth/templates/base.html:215 msgid "Select language" msgstr "" -#: plinth/templates/base.html:225 plinth/templates/base.html:227 +#: plinth/templates/base.html:230 plinth/templates/base.html:232 msgid "Log in" msgstr "" @@ -9426,6 +9426,26 @@ msgstr "" msgid "Clear all tags" msgstr "" +#: plinth/templates/theme-menu.html:8 +msgid "Toggle theme (auto)" +msgstr "" + +#: plinth/templates/theme-menu.html:14 +msgid "Toggle theme" +msgstr "" + +#: plinth/templates/theme-menu.html:23 +msgid "Light" +msgstr "" + +#: plinth/templates/theme-menu.html:32 +msgid "Dark" +msgstr "" + +#: plinth/templates/theme-menu.html:41 +msgid "Auto" +msgstr "" + #: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40 msgid "View Logs" msgstr "" diff --git a/plinth/locale/el/LC_MESSAGES/django.po b/plinth/locale/el/LC_MESSAGES/django.po index 056e94d78..d7bdea537 100644 --- a/plinth/locale/el/LC_MESSAGES/django.po +++ b/plinth/locale/el/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 01:21+0000\n" +"POT-Creation-Date: 2025-12-09 01:26+0000\n" "PO-Revision-Date: 2022-09-14 17:20+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Greek \n" "Language-Team: Spanish \n" "Language-Team: Estonian \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.13-dev\n" +"X-Generator: Weblate 5.15-dev\n" #: plinth/config.py:103 #, python-brace-format @@ -25,10 +25,9 @@ msgid "Static configuration {etc_path} is setup properly" msgstr "" #: plinth/container.py:140 -#, fuzzy, python-brace-format -#| msgid "Service {service_name} is running" +#, python-brace-format msgid "Container {container_name} is running" -msgstr "{service_name} teenus töötab" +msgstr "{container_name} konteiner töötab" #: plinth/context_processors.py:21 plinth/views.py:175 msgid "FreedomBox" @@ -103,15 +102,15 @@ msgstr "Selles keeles kuvame kasutajaliidest" msgid "Use the language preference set in the browser" msgstr "Kasuta brauseris määratud keeleeelistusi" -#: plinth/menu.py:116 plinth/templates/base.html:120 +#: plinth/menu.py:116 plinth/templates/base.html:123 msgid "Home" msgstr "Avaleht" -#: plinth/menu.py:117 plinth/templates/base.html:129 +#: plinth/menu.py:117 plinth/templates/base.html:132 msgid "Apps" msgstr "Rakendused" -#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:138 +#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:141 msgid "System" msgstr "Süsteem" @@ -203,7 +202,7 @@ msgstr "" #: plinth/modules/avahi/manifest.py:14 msgid "mDNS" -msgstr "" +msgstr "mDNS" #: plinth/modules/backups/__init__.py:24 msgid "Backups allows creating and managing backup archives." @@ -212,7 +211,7 @@ msgstr "" #: plinth/modules/backups/__init__.py:46 plinth/modules/backups/__init__.py:176 #: plinth/modules/backups/__init__.py:221 msgid "Backups" -msgstr "" +msgstr "Varukoopiad" #: plinth/modules/backups/__init__.py:173 msgid "" @@ -311,7 +310,7 @@ msgstr "" #: plinth/modules/backups/forms.py:101 msgid "Repository" -msgstr "" +msgstr "Tarkvarahoidla" #: plinth/modules/backups/forms.py:103 #: plinth/modules/backups/templates/backups_delete.html:17 @@ -320,7 +319,7 @@ msgstr "" #: plinth/modules/samba/templates/samba.html:66 #: plinth/modules/sharing/templates/sharing.html:32 msgid "Name" -msgstr "" +msgstr "Nimi" #: plinth/modules/backups/forms.py:104 msgid "(Optional) Set a name for this backup archive" @@ -353,7 +352,7 @@ msgstr "" #: plinth/modules/backups/forms.py:181 #: plinth/modules/letsencrypt/manifest.py:11 msgid "Encryption" -msgstr "" +msgstr "Krüptimine" #: plinth/modules/backups/forms.py:182 msgid "" @@ -369,11 +368,11 @@ msgstr "" #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:68 #: plinth/modules/searx/forms.py:14 msgid "None" -msgstr "" +msgstr "Puudub" #: plinth/modules/backups/forms.py:186 plinth/modules/networks/forms.py:340 msgid "Passphrase" -msgstr "" +msgstr "Salafraas" #: plinth/modules/backups/forms.py:187 msgid "Passphrase; Only needed when using encryption." @@ -437,11 +436,11 @@ msgstr "" #: plinth/modules/backups/views.py:238 plinth/modules/snapshot/manifest.py:14 #: plinth/templates/toolbar.html:51 plinth/templates/toolbar.html:52 msgid "Restore" -msgstr "" +msgstr "Taasta" #: plinth/modules/backups/manifest.py:15 msgid "Encrypted" -msgstr "" +msgstr "Krüptitud" #: plinth/modules/backups/manifest.py:16 msgid "Schedules" @@ -449,7 +448,7 @@ msgstr "" #: plinth/modules/backups/manifest.py:18 msgid "Remote" -msgstr "" +msgstr "Kaugseade" #: plinth/modules/backups/manifest.py:19 msgid "App data" @@ -462,11 +461,11 @@ msgstr "" #: plinth/modules/snapshot/templates/snapshot.html:13 #: plinth/templates/app.html:52 msgid "Configuration" -msgstr "" +msgstr "Seadistused" #: plinth/modules/backups/manifest.py:21 msgid "Borg" -msgstr "" +msgstr "Borg" #: plinth/modules/backups/privileged.py:34 msgid "" @@ -579,7 +578,7 @@ msgstr "" #: plinth/templates/messages.html:17 plinth/templates/setup.html:40 #: plinth/templates/setup.html:69 msgid "Caution:" -msgstr "" +msgstr "Hoiatus:" #: plinth/modules/backups/templates/backups_add_remote_repository.html:24 #, python-format @@ -877,7 +876,7 @@ msgstr "" #: plinth/modules/bepasty/templates/bepasty.html:30 #: plinth/modules/users/forms.py:104 msgid "Permissions" -msgstr "" +msgstr "Õigused" #: plinth/modules/bepasty/forms.py:29 msgid "" @@ -887,7 +886,7 @@ msgstr "" #: plinth/modules/bepasty/forms.py:33 #: plinth/modules/bepasty/templates/bepasty.html:31 msgid "Comment" -msgstr "" +msgstr "Komentaar" #: plinth/modules/bepasty/forms.py:34 msgid "Any comment to help you remember the purpose of this password." @@ -902,7 +901,7 @@ msgstr "" #: plinth/modules/bepasty/manifest.py:23 msgid "Pastebin" -msgstr "" +msgstr "Pastebin" #: plinth/modules/bepasty/templates/bepasty.html:12 msgid "Manage Passwords" @@ -2999,8 +2998,8 @@ msgstr "" msgid "Contribute" msgstr "" -#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:216 -#: plinth/templates/base.html:219 plinth/templates/help-menu.html:46 +#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:221 +#: plinth/templates/base.html:224 plinth/templates/help-menu.html:46 #: plinth/templates/help-menu.html:47 plinth/templates/index.html:96 msgid "About" msgstr "" @@ -3138,7 +3137,7 @@ msgstr "" #: plinth/modules/help/templates/help_contribute.html:42 #: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_shutdown.html:26 -#: plinth/templates/app-header.html:65 +#: plinth/templates/app-header.html:66 msgid "Learn more..." msgstr "" @@ -3542,7 +3541,7 @@ msgstr "" #: plinth/modules/janus/templates/janus_video_room.html:204 #: plinth/modules/jsxc/templates/jsxc_launch.html:117 -#: plinth/templates/base.html:272 +#: plinth/templates/base.html:277 msgid "JavaScript license information" msgstr "" @@ -4579,7 +4578,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:40 #: plinth/modules/wireguard/templates/wireguard_show_client.html:72 #: plinth/modules/wireguard/templates/wireguard_show_server.html:73 -#: plinth/templates/base.html:166 plinth/templates/base.html:167 +#: plinth/templates/base.html:171 plinth/templates/base.html:172 msgid "Edit" msgstr "" @@ -6097,8 +6096,8 @@ msgstr "" msgid "Shutdown" msgstr "" -#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:181 -#: plinth/templates/base.html:182 +#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:186 +#: plinth/templates/base.html:187 msgid "Restart" msgstr "" @@ -9214,35 +9213,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: plinth/templates/base.html:117 +#: plinth/templates/base.html:120 msgid " Home" msgstr "" -#: plinth/templates/base.html:125 +#: plinth/templates/base.html:128 msgid " Apps" msgstr "" -#: plinth/templates/base.html:134 +#: plinth/templates/base.html:137 msgid " System" msgstr "" -#: plinth/templates/base.html:173 plinth/templates/base.html:174 +#: plinth/templates/base.html:178 plinth/templates/base.html:179 msgid "Change password" msgstr "" -#: plinth/templates/base.html:187 plinth/templates/base.html:188 +#: plinth/templates/base.html:192 plinth/templates/base.html:193 msgid "Shut down" msgstr "" -#: plinth/templates/base.html:198 plinth/templates/base.html:236 +#: plinth/templates/base.html:203 plinth/templates/base.html:241 msgid "Log out" msgstr "" -#: plinth/templates/base.html:207 plinth/templates/base.html:210 +#: plinth/templates/base.html:212 plinth/templates/base.html:215 msgid "Select language" msgstr "" -#: plinth/templates/base.html:225 plinth/templates/base.html:227 +#: plinth/templates/base.html:230 plinth/templates/base.html:232 msgid "Log in" msgstr "" @@ -9431,6 +9430,26 @@ msgstr "" msgid "Clear all tags" msgstr "" +#: plinth/templates/theme-menu.html:8 +msgid "Toggle theme (auto)" +msgstr "" + +#: plinth/templates/theme-menu.html:14 +msgid "Toggle theme" +msgstr "" + +#: plinth/templates/theme-menu.html:23 +msgid "Light" +msgstr "" + +#: plinth/templates/theme-menu.html:32 +msgid "Dark" +msgstr "" + +#: plinth/templates/theme-menu.html:41 +msgid "Auto" +msgstr "" + #: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40 msgid "View Logs" msgstr "" diff --git a/plinth/locale/fa/LC_MESSAGES/django.po b/plinth/locale/fa/LC_MESSAGES/django.po index 45aab442f..cdb034c77 100644 --- a/plinth/locale/fa/LC_MESSAGES/django.po +++ b/plinth/locale/fa/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 01:21+0000\n" +"POT-Creation-Date: 2025-12-09 01:26+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Persian \n" "Language-Team: Plinth Developers \n" "Language-Team: French \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.14.1-dev\n" +"X-Generator: Weblate 5.15-dev\n" #: plinth/config.py:103 #, python-brace-format @@ -106,15 +106,15 @@ msgstr "Langue de cette interface web" msgid "Use the language preference set in the browser" msgstr "Utiliser la langue du navigateur" -#: plinth/menu.py:116 plinth/templates/base.html:120 +#: plinth/menu.py:116 plinth/templates/base.html:123 msgid "Home" msgstr "Accueil" -#: plinth/menu.py:117 plinth/templates/base.html:129 +#: plinth/menu.py:117 plinth/templates/base.html:132 msgid "Apps" msgstr "Applis" -#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:138 +#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:141 msgid "System" msgstr "Système" @@ -3348,8 +3348,8 @@ msgstr "Partager vos impressions" msgid "Contribute" msgstr "Participer" -#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:216 -#: plinth/templates/base.html:219 plinth/templates/help-menu.html:46 +#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:221 +#: plinth/templates/base.html:224 plinth/templates/help-menu.html:46 #: plinth/templates/help-menu.html:47 plinth/templates/index.html:96 msgid "About" msgstr "À propos" @@ -3533,7 +3533,7 @@ msgstr "" #: plinth/modules/help/templates/help_contribute.html:42 #: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_shutdown.html:26 -#: plinth/templates/app-header.html:65 +#: plinth/templates/app-header.html:66 msgid "Learn more..." msgstr "En savoir plus…" @@ -4023,7 +4023,7 @@ msgstr "Conférence Web" #: plinth/modules/janus/templates/janus_video_room.html:204 #: plinth/modules/jsxc/templates/jsxc_launch.html:117 -#: plinth/templates/base.html:272 +#: plinth/templates/base.html:277 msgid "JavaScript license information" msgstr "Information de licence JavaScript" @@ -4460,11 +4460,7 @@ msgstr "" "moins un domaine pour pouvoir utiliser Matrix Synapse." #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:20 -#, fuzzy, python-format -#| msgid "" -#| "The Matrix server domain is set to %(domain_name)s. User IDs " -#| "will look like @username:%(domain_name)s. Changing the domain " -#| "name after the initial setup is currently not supported." +#, python-format msgid "" "The Matrix server domain is set to %(domain_name)s. User IDs will " "look like @username:%(domain_name)s. Changing the domain name " @@ -4472,8 +4468,9 @@ msgid "" msgstr "" "Votre serveur Matrix utilise le domaine %(domain_name)s. Les " "identifiants utilisateur seront du type @identifiant:%(domain_name)s. Le changement du nom de domaine après l’installation initiale n’est " -"actuellement pas pris en charge." +"em>. Le changement du nom de domaine nécéssite la désinstallation et " +"réinstallation de l’appli ce qui entraînera la suppression de l’ensemble des " +"données de cette appli." #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:28 msgid "" @@ -4516,10 +4513,8 @@ msgid "Unlimited" msgstr "Illimité" #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:78 -#, fuzzy -#| msgid "Feed generator" msgid "Federation" -msgstr "Générateur de fils" +msgstr "Fédération" #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:81 #, python-format @@ -4530,6 +4525,12 @@ msgid "" "hosted here. If you face problems with federation, try the federation tester tool." msgstr "" +"Matrix Synapse est configuré pour communiquer avec d’autres serveurs sur " +"Internet. Ceci permet aux utilisateurices de la %(box_name)s de participer à " +"des salons hébergés ailleurs et à des utilisateurices d’autres serveurs de " +"participer aux salons hébergés ici. En cas de problème avec la fédération, " +"vous pouvez utiliser l’outil de " +"test de fédération." #: plinth/modules/matrixsynapse/templates/matrix-synapse.html:99 #, python-format @@ -5263,7 +5264,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:40 #: plinth/modules/wireguard/templates/wireguard_show_client.html:72 #: plinth/modules/wireguard/templates/wireguard_show_server.html:73 -#: plinth/templates/base.html:166 plinth/templates/base.html:167 +#: plinth/templates/base.html:171 plinth/templates/base.html:172 msgid "Edit" msgstr "Modifier" @@ -7022,8 +7023,8 @@ msgstr "Redémarrer" msgid "Shutdown" msgstr "Éteindre" -#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:181 -#: plinth/templates/base.html:182 +#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:186 +#: plinth/templates/base.html:187 msgid "Restart" msgstr "Redémarrer" @@ -7453,20 +7454,16 @@ msgstr "" "d’actualités." #: plinth/modules/rssbridge/__init__.py:28 -#, fuzzy, python-brace-format -#| msgid "" -#| "You can use RSS-Bridge with Miniflux or Tiny Tiny RSS to follow various websites. When " -#| "adding a feed, enable authentication and use your {box_name} credentials." +#, python-brace-format msgid "" "You can use RSS-Bridge with Miniflux or Nextcloud News to follow various websites. When " "adding a feed, enable authentication and use your {box_name} credentials." msgstr "" "Vous pouvez utiliser RSS-Bridge avec Miniflux " -"ou bien Tiny Tiny RSS pour suivre différents " -"sites Internet. Lors de l’ajout d’un fil, activez l’authentification et " -"utilisez les identifiants de {box_name}." +"ou bien Nextcloud News pour suivre " +"différents sites Internet. Lors de l’ajout d’un fil, activez " +"l’authentification et utilisez vos identifiants {box_name}." #: plinth/modules/rssbridge/__init__.py:49 msgid "Read and subscribe to news feeds" @@ -10758,35 +10755,35 @@ msgstr "" "et de la maîtrise de vos données. C’est un logiciel libre qui vous laisse " "installer et gérer facilement des applis de serveur." -#: plinth/templates/base.html:117 +#: plinth/templates/base.html:120 msgid " Home" msgstr " Accueil" -#: plinth/templates/base.html:125 +#: plinth/templates/base.html:128 msgid " Apps" msgstr " Applis" -#: plinth/templates/base.html:134 +#: plinth/templates/base.html:137 msgid " System" msgstr " Système" -#: plinth/templates/base.html:173 plinth/templates/base.html:174 +#: plinth/templates/base.html:178 plinth/templates/base.html:179 msgid "Change password" msgstr "Changer le mot de passe" -#: plinth/templates/base.html:187 plinth/templates/base.html:188 +#: plinth/templates/base.html:192 plinth/templates/base.html:193 msgid "Shut down" msgstr "Éteindre" -#: plinth/templates/base.html:198 plinth/templates/base.html:236 +#: plinth/templates/base.html:203 plinth/templates/base.html:241 msgid "Log out" msgstr "Se déconnecter" -#: plinth/templates/base.html:207 plinth/templates/base.html:210 +#: plinth/templates/base.html:212 plinth/templates/base.html:215 msgid "Select language" msgstr "Choisir la langue" -#: plinth/templates/base.html:225 plinth/templates/base.html:227 +#: plinth/templates/base.html:230 plinth/templates/base.html:232 msgid "Log in" msgstr "S’identifier" @@ -10999,6 +10996,30 @@ msgstr "Recherches avec des étiquettes" msgid "Clear all tags" msgstr "Supprimer toutes les étiquettes" +#: plinth/templates/theme-menu.html:8 +msgid "Toggle theme (auto)" +msgstr "" + +#: plinth/templates/theme-menu.html:14 +msgid "Toggle theme" +msgstr "" + +#: plinth/templates/theme-menu.html:23 +#, fuzzy +#| msgid "Weight" +msgid "Light" +msgstr "Poids" + +#: plinth/templates/theme-menu.html:32 +msgid "Dark" +msgstr "" + +#: plinth/templates/theme-menu.html:41 +#, fuzzy +#| msgid "Automatic" +msgid "Auto" +msgstr "Automatique" + #: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40 msgid "View Logs" msgstr "Voir les Journaux" diff --git a/plinth/locale/gl/LC_MESSAGES/django.po b/plinth/locale/gl/LC_MESSAGES/django.po index 46a89a9d3..95a7afb4c 100644 --- a/plinth/locale/gl/LC_MESSAGES/django.po +++ b/plinth/locale/gl/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 01:21+0000\n" +"POT-Creation-Date: 2025-12-09 01:26+0000\n" "PO-Revision-Date: 2022-12-30 10:51+0000\n" "Last-Translator: gallegonovato \n" "Language-Team: Galician \n" "Language-Team: Gujarati \n" "Language-Team: Hindi \n" @@ -111,15 +111,15 @@ msgstr "A webes felület megjelenítéséhez használt nyelv" msgid "Use the language preference set in the browser" msgstr "A böngésző nyelvének használata" -#: plinth/menu.py:116 plinth/templates/base.html:120 +#: plinth/menu.py:116 plinth/templates/base.html:123 msgid "Home" msgstr "Kezdőlap" -#: plinth/menu.py:117 plinth/templates/base.html:129 +#: plinth/menu.py:117 plinth/templates/base.html:132 msgid "Apps" msgstr "Alkalmazások" -#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:138 +#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:141 msgid "System" msgstr "Rendszer" @@ -3446,8 +3446,8 @@ msgstr "Visszajelzés küldése" msgid "Contribute" msgstr "Hozzájárulás" -#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:216 -#: plinth/templates/base.html:219 plinth/templates/help-menu.html:46 +#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:221 +#: plinth/templates/base.html:224 plinth/templates/help-menu.html:46 #: plinth/templates/help-menu.html:47 plinth/templates/index.html:96 msgid "About" msgstr "Névjegy" @@ -3623,7 +3623,7 @@ msgstr "" #: plinth/modules/help/templates/help_contribute.html:42 #: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_shutdown.html:26 -#: plinth/templates/app-header.html:65 +#: plinth/templates/app-header.html:66 msgid "Learn more..." msgstr "Bővebben..." @@ -4087,7 +4087,7 @@ msgstr "" #: plinth/modules/janus/templates/janus_video_room.html:204 #: plinth/modules/jsxc/templates/jsxc_launch.html:117 -#: plinth/templates/base.html:272 +#: plinth/templates/base.html:277 msgid "JavaScript license information" msgstr "JavaScript licencinformáció" @@ -5361,7 +5361,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:40 #: plinth/modules/wireguard/templates/wireguard_show_client.html:72 #: plinth/modules/wireguard/templates/wireguard_show_server.html:73 -#: plinth/templates/base.html:166 plinth/templates/base.html:167 +#: plinth/templates/base.html:171 plinth/templates/base.html:172 msgid "Edit" msgstr "Szerkesztés" @@ -7163,8 +7163,8 @@ msgstr "" msgid "Shutdown" msgstr "Leállítás" -#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:181 -#: plinth/templates/base.html:182 +#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:186 +#: plinth/templates/base.html:187 msgid "Restart" msgstr "Újraindítás" @@ -10899,35 +10899,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: plinth/templates/base.html:117 +#: plinth/templates/base.html:120 msgid " Home" msgstr " Kezdőlap" -#: plinth/templates/base.html:125 +#: plinth/templates/base.html:128 msgid " Apps" msgstr " Alkalmazások" -#: plinth/templates/base.html:134 +#: plinth/templates/base.html:137 msgid " System" msgstr " Rendszer" -#: plinth/templates/base.html:173 plinth/templates/base.html:174 +#: plinth/templates/base.html:178 plinth/templates/base.html:179 msgid "Change password" msgstr "Jelszómódosítás" -#: plinth/templates/base.html:187 plinth/templates/base.html:188 +#: plinth/templates/base.html:192 plinth/templates/base.html:193 msgid "Shut down" msgstr "Leállítás" -#: plinth/templates/base.html:198 plinth/templates/base.html:236 +#: plinth/templates/base.html:203 plinth/templates/base.html:241 msgid "Log out" msgstr "Kijelentkezés" -#: plinth/templates/base.html:207 plinth/templates/base.html:210 +#: plinth/templates/base.html:212 plinth/templates/base.html:215 msgid "Select language" msgstr "Válassz nyelvet" -#: plinth/templates/base.html:225 plinth/templates/base.html:227 +#: plinth/templates/base.html:230 plinth/templates/base.html:232 msgid "Log in" msgstr "Bejelentkezés" @@ -11144,6 +11144,30 @@ msgstr "Keresés a weben" msgid "Clear all tags" msgstr "Keresés a weben" +#: plinth/templates/theme-menu.html:8 +msgid "Toggle theme (auto)" +msgstr "" + +#: plinth/templates/theme-menu.html:14 +msgid "Toggle theme" +msgstr "" + +#: plinth/templates/theme-menu.html:23 +#, fuzzy +#| msgid "Weight" +msgid "Light" +msgstr "Súly" + +#: plinth/templates/theme-menu.html:32 +msgid "Dark" +msgstr "" + +#: plinth/templates/theme-menu.html:41 +#, fuzzy +#| msgid "Automatic" +msgid "Auto" +msgstr "Automatikus" + #: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40 msgid "View Logs" msgstr "" diff --git a/plinth/locale/id/LC_MESSAGES/django.po b/plinth/locale/id/LC_MESSAGES/django.po index d7ced6e7f..5b7bb2abd 100644 --- a/plinth/locale/id/LC_MESSAGES/django.po +++ b/plinth/locale/id/LC_MESSAGES/django.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Indonesian (FreedomBox)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 01:21+0000\n" +"POT-Creation-Date: 2025-12-09 01:26+0000\n" "PO-Revision-Date: 2022-09-14 17:19+0000\n" "Last-Translator: ikmaak \n" "Language-Team: Indonesian \n" "Language-Team: Italian \n" "Language-Team: Japanese \n" "Language-Team: Kannada \n" "Language-Team: Lithuanian \n" "Language-Team: Latvian \n" "Language-Team: Norwegian Bokmål \n" "Language-Team: Dutch \n" "Language-Team: Polish \n" "Language-Team: Portuguese \n" +"POT-Creation-Date: 2025-12-09 01:26+0000\n" +"PO-Revision-Date: 2025-12-03 13:00+0000\n" +"Last-Translator: OwlGale \n" "Language-Team: Russian \n" "Language: ru\n" @@ -105,15 +105,15 @@ msgstr "Язык, используемый для представления д msgid "Use the language preference set in the browser" msgstr "Использовать языковые настройки браузера" -#: plinth/menu.py:116 plinth/templates/base.html:120 +#: plinth/menu.py:116 plinth/templates/base.html:123 msgid "Home" -msgstr "Домой" +msgstr "Главная" -#: plinth/menu.py:117 plinth/templates/base.html:129 +#: plinth/menu.py:117 plinth/templates/base.html:132 msgid "Apps" msgstr "Приложения" -#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:138 +#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:141 msgid "System" msgstr "Система" @@ -1237,7 +1237,7 @@ msgstr "Библиотека" #: plinth/modules/calibre/manifest.py:21 msgid "Ebook reader" -msgstr "Читалка для электронных книг" +msgstr "Читалка" #: plinth/modules/calibre/templates/calibre-delete-library.html:11 #, python-format @@ -1632,12 +1632,12 @@ msgstr "BitTorrent клиент, написанный на Python/pygtk" #: plinth/modules/deluge/manifest.py:21 #: plinth/modules/transmission/manifest.py:39 msgid "BitTorrent" -msgstr "БитТоррент" +msgstr "BitTorrent" #: plinth/modules/deluge/manifest.py:21 plinth/modules/roundcube/manifest.py:23 #: plinth/modules/transmission/manifest.py:39 msgid "Web client" -msgstr "Веб клиент" +msgstr "Веб-клиент" #: plinth/modules/deluge/manifest.py:21 plinth/modules/syncthing/manifest.py:58 #: plinth/modules/transmission/manifest.py:39 @@ -2465,7 +2465,7 @@ msgstr "FairEmail" #: plinth/modules/email/manifest.py:82 msgid "Email server" -msgstr "Сервер Электронной почты" +msgstr "Почтовый сервер" #: plinth/modules/email/manifest.py:82 msgid "IMAP" @@ -2473,7 +2473,7 @@ msgstr "IMAP" #: plinth/modules/email/manifest.py:82 msgid "Spam control" -msgstr "Контроль спама" +msgstr "Защита от спама" #: plinth/modules/email/templates/email-aliases.html:13 #: plinth/modules/email/templates/email.html:15 @@ -2635,16 +2635,16 @@ msgstr "" #: plinth/modules/ikiwiki/__init__.py:79 #: plinth/modules/tiddlywiki/__init__.py:61 msgid "View and edit wiki applications" -msgstr "Просмотр и редактирование приложений Wiki" +msgstr "Просмотр и редактирование вики приложений" #: plinth/modules/featherwiki/__init__.py:59 #: plinth/modules/featherwiki/manifest.py:9 msgid "Feather Wiki" -msgstr "Перо Вики" +msgstr "Feather Wiki" #: plinth/modules/featherwiki/forms.py:13 plinth/modules/tiddlywiki/forms.py:13 msgid "Wiki files cannot be named \"index.html\"." -msgstr "Wiki-файлы не могут называться \"index.html\"." +msgstr "Вики файлы не могут называться \"index.html\"." #: plinth/modules/featherwiki/forms.py:20 plinth/modules/tiddlywiki/forms.py:20 msgid "Name of the wiki file, with file extension \".html\"" @@ -2684,13 +2684,13 @@ msgstr "Загрузите существующий файл Feather Wiki с э #: plinth/modules/mediawiki/manifest.py:25 #: plinth/modules/tiddlywiki/manifest.py:19 msgid "Wiki" -msgstr "Wiki" +msgstr "Вики" #: plinth/modules/featherwiki/manifest.py:18 #: plinth/modules/infinoted/manifest.py:46 #: plinth/modules/tiddlywiki/manifest.py:20 msgid "Note taking" -msgstr "Взятие на заметку" +msgstr "Заметки" #: plinth/modules/featherwiki/manifest.py:18 #: plinth/modules/ikiwiki/manifest.py:15 @@ -2703,13 +2703,13 @@ msgstr "Веб-сайт" #: plinth/modules/featherwiki/manifest.py:18 #: plinth/modules/tiddlywiki/manifest.py:25 msgid "Quine" -msgstr "Quine" +msgstr "Куайн" #: plinth/modules/featherwiki/manifest.py:18 #: plinth/modules/nextcloud/manifest.py:56 #: plinth/modules/tiddlywiki/manifest.py:26 msgid "Non-Debian" -msgstr "Не-Debian" +msgstr "Не Debian" #: plinth/modules/featherwiki/templates/featherwiki_configure.html:12 #: plinth/modules/tiddlywiki/templates/tiddlywiki_configure.html:12 @@ -2781,7 +2781,7 @@ msgstr "Скачать" #: plinth/modules/featherwiki/views.py:20 plinth/modules/tiddlywiki/views.py:20 msgid "A wiki file with the given name already exists." -msgstr "Файл wiki с указанным именем уже существует." +msgstr "Вики файл с указанным именем уже существует." #: plinth/modules/featherwiki/views.py:54 plinth/modules/tiddlywiki/views.py:54 msgid "Wiki created." @@ -2816,7 +2816,7 @@ msgstr "Добавлен вики-файл." #: plinth/modules/featherwiki/views.py:119 #: plinth/modules/tiddlywiki/views.py:120 msgid "Failed to add wiki file." -msgstr "Не удалось добавить файл wiki." +msgstr "Не удалось добавить вики файл." #: plinth/modules/featherwiki/views.py:138 #: plinth/modules/tiddlywiki/views.py:139 @@ -3248,7 +3248,7 @@ msgstr "GNOME" #: plinth/modules/gnome/manifest.py:9 plinth/templates/clients.html:42 msgid "Desktop" -msgstr "Десктоп" +msgstr "Рабочий стол" #: plinth/modules/gnome/manifest.py:10 msgid "Browser" @@ -3260,7 +3260,7 @@ msgstr "Офисный пакет" #: plinth/modules/gnome/manifest.py:12 msgid "Software store" -msgstr "Магазин программного обеспечения" +msgstr "Магазин приложений" #: plinth/modules/gnome/manifest.py:13 msgid "GUI" @@ -3288,7 +3288,7 @@ msgstr "Руководство" #: plinth/modules/help/views.py:91 plinth/templates/help-menu.html:27 #: plinth/templates/help-menu.html:28 msgid "Get Support" -msgstr "Получить поддержку" +msgstr "Получить помощь" #: plinth/modules/help/__init__.py:45 #: plinth/modules/help/templates/help_feedback.html:9 @@ -3303,10 +3303,10 @@ msgstr "Отправить отзыв" #: plinth/modules/help/views.py:74 plinth/templates/help-menu.html:39 #: plinth/templates/help-menu.html:40 msgid "Contribute" -msgstr "Помощь проекту" +msgstr "Помочь проекту" -#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:216 -#: plinth/templates/base.html:219 plinth/templates/help-menu.html:46 +#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:221 +#: plinth/templates/base.html:224 plinth/templates/help-menu.html:46 #: plinth/templates/help-menu.html:47 plinth/templates/index.html:96 msgid "About" msgstr "О проекте" @@ -3327,13 +3327,13 @@ msgstr "Вы используете %(os_release)s и %(box_name)s версии msgid "" "There is a new %(box_name)s version available." -msgstr "Доступна новая версия %(box_name)s." +msgstr "Доступна новая версия %(box_name)s." #: plinth/modules/help/templates/help_about.html:40 #: plinth/modules/upgrades/templates/upgrades_configure.html:42 #, python-format msgid "%(box_name)s is up to date." -msgstr "%(box_name)s в актуальном состоянии." +msgstr "Установлены все последние обновления %(box_name)s." #: plinth/modules/help/templates/help_about.html:49 #, python-format @@ -3346,14 +3346,14 @@ msgid "" "and a Tor relay, on a device that can replace your Wi-Fi router, so that " "your data stays with you." msgstr "" -"%(box_name)s - это проект сообщества для разработки, дизайна и поощрения " -"личных серверов под управлением свободного программного обеспечения для " -"частных, личных сообщений. Это сетевое устройство, предназначенное разрешить " -"взаимодействие с остальной частью Интернета в условиях защиты " -"конфиденциальности и безопасности данных. Он содержит различные приложения, " -"такие как блог, вики, веб-сайт, социальную сеть, электронную почту, Web-" -"прокси и сервер Tor, на устройстве, которое может заменить ваш маршрутизатор " -"Wi-Fi, так что ваши данные остаются с вами." +"%(box_name)s это общественный проект для разработки, проектирования и " +"продвижения персональных серверов работающих на свободном программном " +"обеспечении для частных, личных коммуникаций. Это сетевое устройство " +"предназначено для взаимодействия с остальной частью Интернета при условии " +"обеспечения конфиденциальности и безопасности данных. Оно позволяет " +"размещать такие веб-приложения, как блог, вики, веб-сайт, социальную сеть, " +"электронную почту, веб-прокси и узел сети Tor, на устройстве, которое может " +"заменить ваш Wi-Fi роутер, чтобы ваши данные оставались с вами." #: plinth/modules/help/templates/help_about.html:62 msgid "" @@ -3364,12 +3364,13 @@ msgid "" "giving back power to the users over their networks and machines, we are " "returning the Internet to its intended peer-to-peer architecture." msgstr "" -"Мы живем в мире, сетями владеют те, с кем у нас не всегда общие интересы. " -"Путем создания программного обеспечения, которое не полагается на " -"центральную службу, мы можем восстановить контроль и конфиденциальность. " -"Сохраняя наши данные в наших домах, мы получаем полезную правовую защиту над " -"ними. Давая обратно власть пользователям в их сети и машины, мы возвращаемся " -"к его предполагаемую архитектуру Интернета peer-to-peer." +"Мы живем в мире, где использование сети определяется теми, кто зачастую не " +"действует в наших интересах. Разрабатывая программное обеспечение, которое " +"не полагается на централизованный сервис, мы можем вернуть контроль и " +"конфиденциальность. Сохраняя наши данные у себя дома, мы повышаем правовую " +"защищенность над ними. Давая пользователям власть над их сетями и " +"устройствами, мы возвращаем Интернет к его одноранговой архитектуре, каким " +"он был задуман." #: plinth/modules/help/templates/help_about.html:75 #, python-format @@ -3379,7 +3380,7 @@ msgid "" "package." msgstr "" "Существует ряд проектов, которые работают в сторону реализации будущего " -"распределенных служб, %(box_name)s стремится объединить их в удобном пакете." +"распределенных сервисов, %(box_name)s стремится объединить их." #: plinth/modules/help/templates/help_about.html:83 #, python-format @@ -3392,16 +3393,17 @@ msgid "" "running \"apt source package_name\" in a terminal (using Cockpit or " "SSH)." msgstr "" -"%(box_name)s - это свободное ПО, лицензированное по лицензии GNU Affero " -"General Public License. %(box_name)s репозиторий. Кроме того, исходный код любого " -"пакета Debian может быть получен из Debian Sources site, или путем запуска \"apt source package_name\" в терминале (с использованием Cockpit или SSH)." +"%(box_name)s является свободным программным обеспечением и распространяется " +"по лицензии GNU Affero General Public License. Исходный код доступен онлайн " +"в " +"репозитории %(box_name)s . Кроме того, исходный код пакетов Debian " +"можно получить с сайта Debian " +"Sources или выполнив команду \"apt source название_пакета\" в " +"терминале (с помощью Cockpit или SSH)." #: plinth/modules/help/templates/help_about.html:97 msgid "Learn" -msgstr "Узнать" +msgstr "Освоить" #: plinth/modules/help/templates/help_about.html:116 #: plinth/templates/toolbar.html:19 @@ -3410,7 +3412,7 @@ msgstr "Пожертвовать" #: plinth/modules/help/templates/help_about.html:119 msgid "Join project" -msgstr "Присоединяйтесь к проекту" +msgstr "Присоединиться к проекту" #: plinth/modules/help/templates/help_about.html:123 msgid "Translate" @@ -3479,7 +3481,7 @@ msgstr "" #: plinth/modules/help/templates/help_contribute.html:42 #: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_shutdown.html:26 -#: plinth/templates/app-header.html:65 +#: plinth/templates/app-header.html:66 msgid "Learn more..." msgstr "Подробнее..." @@ -3708,11 +3710,11 @@ msgstr "Home Assistant" #: plinth/modules/homeassistant/manifest.py:62 msgid "Home Automation" -msgstr "Домашняя автоматизация" +msgstr "Умный дом" #: plinth/modules/homeassistant/manifest.py:63 msgid "IoT" -msgstr "IoT" +msgstr "Интернет вещей" #: plinth/modules/homeassistant/manifest.py:64 #: plinth/modules/networks/manifest.py:8 @@ -3733,7 +3735,7 @@ msgstr "Z-Wave" #: plinth/modules/homeassistant/manifest.py:67 msgid "Thread" -msgstr "Тред" +msgstr "Thread" #: plinth/modules/homeassistant/templates/homeassistant.html:17 msgid "" @@ -3786,7 +3788,7 @@ msgid "" msgstr "" "Только пользователи {box_name} группы администраторов могут " "создавать и управлять блогами и вики, но любой пользователь " -"группы wiki могжет редактировать существующие. На странице wiki может редактировать существующие. На странице Конфигурация пользователей вы можете изменить " "разрешения или добавить новых пользователей." @@ -3959,7 +3961,7 @@ msgstr "Веб-конференция" #: plinth/modules/janus/templates/janus_video_room.html:204 #: plinth/modules/jsxc/templates/jsxc_launch.html:117 -#: plinth/templates/base.html:272 +#: plinth/templates/base.html:277 msgid "JavaScript license information" msgstr "Информация о лицензии JavaScript" @@ -3977,7 +3979,7 @@ msgstr "JSXC" #: plinth/modules/jsxc/manifest.py:16 msgid "Web chat" -msgstr "Веб чат" +msgstr "Веб-чат" #: plinth/modules/jsxc/manifest.py:16 plinth/modules/quassel/manifest.py:54 msgid "Client" @@ -3989,10 +3991,10 @@ msgid "" "Wikipedia available without using the internet, but it is potentially " "suitable for all HTML content. Kiwix packages are in the ZIM file format." msgstr "" -"Kiwix является офлайн-читателкой для веб-контента. Это программа " -"предназначенная для того,чтобы сделать Википедию доступной автономно без " -"Интернета, но оно потенциально подходит для всего HTML-контента. Пакеты " -"Kiwix находятся в формате ZIM." +"Kiwix является офлайн читалкой для веб-контента. Это программа " +"предназначенная для того, чтобы сделать Википедию доступной автономно без " +"Интернета, но потенциально подходит для любого HTML-контента. Пакеты Kiwix " +"представляют собой файлы в формате ZIM." #: plinth/modules/kiwix/__init__.py:25 msgid "" @@ -4053,7 +4055,7 @@ msgstr "" #: plinth/modules/kiwix/manifest.py:24 msgid "Offline reader" -msgstr "Автономный читатель" +msgstr "Оффлайн читалка" #: plinth/modules/kiwix/manifest.py:25 msgid "Archival" @@ -4064,7 +4066,7 @@ msgstr "Архив" #: plinth/modules/shadowsocksserver/manifest.py:18 #: plinth/modules/tor/manifest.py:60 plinth/modules/torproxy/manifest.py:57 msgid "Censorship resistance" -msgstr "Противодействие цензуре" +msgstr "Сопротивление цензуре" #: plinth/modules/kiwix/manifest.py:27 msgid "Wikipedia" @@ -4356,7 +4358,7 @@ msgstr "FluffyChat" #: plinth/modules/matrixsynapse/manifest.py:101 #: plinth/modules/quassel/manifest.py:54 msgid "Chat room" -msgstr "Чат комната" +msgstr "Чат" #: plinth/modules/matrixsynapse/manifest.py:105 msgid "Matrix server" @@ -4512,7 +4514,7 @@ msgid "" "Anyone with a link to this wiki can read it. Only users that are logged in " "can make changes to the content." msgstr "" -"Кто угодно, имея ссылку на wiki, может читать её. Только зарегистрированные " +"Кто угодно, имея ссылку на вики, может читать её. Только зарегистрированные " "пользователи могут вносить изменения." #: plinth/modules/mediawiki/__init__.py:51 @@ -4542,7 +4544,7 @@ msgid "" "feeds and emails. Examples: \"myfreedombox.example.org\" or " "\"example.onion\"." msgstr "" -"Использовалось MediaWiki для создания ссылок на wiki страницы, например " +"Использовалось MediaWiki для создания ссылок на вики страницы, например " "внизу веб-страниц, в RSS-потоках или в электронных письмах. Например: " "\"myfreedombox.example.org\" или \"example.onion\"." @@ -4709,7 +4711,7 @@ msgstr "Игровой сервер" #: plinth/modules/minetest/manifest.py:49 msgid "Block sandbox" -msgstr "Блокировать песочницу" +msgstr "Песочница" #: plinth/modules/minetest/manifest.py:49 msgid "Platform" @@ -4772,7 +4774,7 @@ msgstr "totem" #: plinth/modules/minidlna/manifest.py:116 msgid "Media server" -msgstr "Медиа сервер" +msgstr "Медиасервер" #: plinth/modules/minidlna/manifest.py:116 msgid "Television" @@ -4877,7 +4879,7 @@ msgstr "RSS Охранник" #: plinth/modules/miniflux/manifest.py:138 msgid "Feed reader" -msgstr "Устройство для чтения фидов" +msgstr "Ленты новостей" #: plinth/modules/miniflux/manifest.py:138 msgid "News aggregation" @@ -5176,7 +5178,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:40 #: plinth/modules/wireguard/templates/wireguard_show_client.html:72 #: plinth/modules/wireguard/templates/wireguard_show_server.html:73 -#: plinth/templates/base.html:166 plinth/templates/base.html:167 +#: plinth/templates/base.html:171 plinth/templates/base.html:172 msgid "Edit" msgstr "Редактировать" @@ -5227,7 +5229,7 @@ msgstr "" #: plinth/modules/names/templates/names.html:152 plinth/templates/setup.html:87 msgid "Install" -msgstr "Установка" +msgstr "Установить" #: plinth/modules/names/templates/names.html:162 msgid "Error retrieving status:" @@ -6568,7 +6570,7 @@ msgstr "Общий доступ" #: plinth/modules/nextcloud/manifest.py:56 plinth/modules/sogo/manifest.py:72 msgid "Groupware" -msgstr "Групповое ПО" +msgstr "Совместная работа" #: plinth/modules/nextcloud/views.py:53 msgid "Password update failed. Please choose a stronger password." @@ -6906,8 +6908,8 @@ msgstr "Перезагрузка" msgid "Shutdown" msgstr "Выключить" -#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:181 -#: plinth/templates/base.html:182 +#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:186 +#: plinth/templates/base.html:187 msgid "Restart" msgstr "Перезапустить" @@ -7248,8 +7250,8 @@ msgid "" "from an email client, including MIME support, address book, folder " "manipulation, message searching and spell checking." msgstr "" -"Roundcube webmail это основанный на браузере многоязычный IMAP клиент с " -"пользовательским интерфейсом. Это предоставляет полную функциональность, " +"Веб-почта Roundcube это браузерный многоязычный IMAP клиент с " +"пользовательским интерфейсом. Он предоставляет полную функциональность, " "которую вы ожидаете от почтового клиента, включая поддержку MIME, адресную " "книгу, управление папками, поиск сообщений и проверку орфографии." @@ -7303,7 +7305,7 @@ msgstr "" #: plinth/modules/roundcube/manifest.py:23 msgid "Email" -msgstr "Email" +msgstr "Электронная почта" #: plinth/modules/rssbridge/__init__.py:21 msgid "" @@ -7319,7 +7321,7 @@ msgid "" "When enabled, RSS-Bridge can be accessed by any " "user belonging to the feed-reader group." msgstr "" -"Когда эта функция включена, доступ к RSS-мостику может получить любой пользователь, входящий в группу читателей " "фидов." @@ -7330,10 +7332,10 @@ msgid "" "href=\"{nextcloud_url}\">Nextcloud News to follow various websites. When " "adding a feed, enable authentication and use your {box_name} credentials." msgstr "" -"Вы можете использовать RSS-мост с Miniflux or " -"Nextcloud News следить за различными веб-" -"сайтами. При добавлении фида включите аутентификацию и используйте свои " -"учетные данные от {box_name}." +"Вы можете использовать RSS-Bridge с Miniflux " +"или Nextcloud News, чтобы следить за " +"различными веб-сайтами. При добавлении фида включите аутентификацию и " +"используйте свои учетные данные от {box_name}." #: plinth/modules/rssbridge/__init__.py:49 msgid "Read and subscribe to news feeds" @@ -7342,7 +7344,7 @@ msgstr "Чтение и подписка на ленты новостей" #: plinth/modules/rssbridge/__init__.py:52 #: plinth/modules/rssbridge/manifest.py:7 msgid "RSS-Bridge" -msgstr "RSS-мост" +msgstr "RSS-Bridge" #: plinth/modules/rssbridge/forms.py:12 plinth/modules/searx/forms.py:17 msgid "Allow Public Access" @@ -7354,7 +7356,7 @@ msgstr "Разрешите использовать это приложение #: plinth/modules/rssbridge/manifest.py:16 msgid "Feed generator" -msgstr "Генератор питания" +msgstr "Генератор лент новостей" #: plinth/modules/rssbridge/manifest.py:16 msgid "News" @@ -7435,11 +7437,11 @@ msgstr "Сетевой диск" #: plinth/modules/samba/manifest.py:84 msgid "Media storage" -msgstr "Хранение носителей" +msgstr "Хранилище медиафайлов" #: plinth/modules/samba/manifest.py:85 msgid "Backup storage" -msgstr "Резервное хранение" +msgstr "Резервное хранилище" #: plinth/modules/samba/templates/samba.html:20 msgid "Shares" @@ -7580,7 +7582,7 @@ msgstr "Строгий" #: plinth/modules/searx/manifest.py:17 msgid "Web search" -msgstr "Веб поиск" +msgstr "Веб-поиск" #: plinth/modules/searx/manifest.py:17 msgid "Metasearch Engine" @@ -7675,7 +7677,7 @@ msgid "" "sandboxing features are in use. Sandboxing mitigates the impact of a " "potentially compromised app to the rest of the system." msgstr "" -"Для приложений, которые предоставляют службы, столбец \"Песочница\" " +"Для приложений, которые предоставляют службы, столбец \"Изолировано\" " "показывает, используются ли функции песочницы. Песочница смягчает влияние " "потенциально скомпрометированного приложения на остальную систему." @@ -7699,7 +7701,7 @@ msgstr "Текущие уязвимости" #: plinth/modules/security/templates/security_report.html:47 msgid "Sandboxed" -msgstr "Песочница" +msgstr "Изолировано" #: plinth/modules/security/templates/security_report.html:48 msgid "Sandbox Coverage" @@ -7735,7 +7737,7 @@ msgstr "" #: plinth/modules/shaarli/__init__.py:36 plinth/modules/shaarli/manifest.py:25 msgid "Shaarli" -msgstr "Shаarli" +msgstr "Shaarli" #: plinth/modules/shaarli/manifest.py:12 msgid "Shaarlier" @@ -7747,7 +7749,7 @@ msgstr "Закладки" #: plinth/modules/shaarli/manifest.py:34 msgid "Link blog" -msgstr "Блог по ссылке" +msgstr "Блог ссылок" #: plinth/modules/shaarli/manifest.py:34 msgid "Single user" @@ -7799,7 +7801,7 @@ msgstr "" #: plinth/modules/shadowsocks/__init__.py:50 msgid "Shadowsocks Client" -msgstr "Клиент Shadowsocks" +msgstr "Shadowsocks Клиент" #: plinth/modules/shadowsocks/forms.py:25 msgid "Server hostname or IP address" @@ -7846,7 +7848,7 @@ msgstr "" #: plinth/modules/shadowsocksserver/__init__.py:47 msgid "Shadowsocks Server" -msgstr "Сервер Shadowsocks" +msgstr "Shadowsocks Сервер" #: plinth/modules/shadowsocksserver/forms.py:10 #: plinth/modules/shadowsocksserver/forms.py:11 @@ -7865,7 +7867,7 @@ msgstr "Метод шифрования. Клиенты должны испол #: plinth/modules/shadowsocksserver/manifest.py:20 msgid "Exit point" -msgstr "Место выхода" +msgstr "Точка выхода" #: plinth/modules/sharing/__init__.py:17 #, python-brace-format @@ -7926,7 +7928,7 @@ msgstr "" #: plinth/modules/sharing/manifest.py:19 plinth/modules/zoph/manifest.py:26 msgid "Web sharing" -msgstr "Совместное использование веб-страниц" +msgstr "Обмен в Интернете" #: plinth/modules/sharing/templates/sharing.html:18 #: plinth/modules/sharing/templates/sharing.html:21 @@ -8263,7 +8265,7 @@ msgstr "Коннектор Thunderbird + SOGo" #: plinth/modules/sogo/manifest.py:71 msgid "Webmail" -msgstr "Webmail" +msgstr "Веб-почта" #: plinth/modules/sogo/manifest.py:74 msgid "Address book" @@ -8276,14 +8278,14 @@ msgid "" "administration tasks, copy files or run other services using such " "connections." msgstr "" -"Secure Shell сервер использует протокол безопасной оболочки на прием " -"подключений с удаленных компьютеров. Уполномоченный удаленный компьютер " -"может выполнять задачи администрирования, копировать файлы или запускать " -"другие службы с использованием таких соединений." +"SSH-сервер использует протокол безопасной оболочки на прием подключений с " +"удаленных компьютеров. Уполномоченный удаленный компьютер может выполнять " +"задачи администрирования, копировать файлы или запускать другие службы с " +"использованием таких соединений." #: plinth/modules/ssh/__init__.py:42 msgid "Secure Shell Server" -msgstr "Сервер защищенной оболочки" +msgstr "SSH-сервер" #: plinth/modules/ssh/__init__.py:75 msgid "Remotely login using Secure Shell (SSH)" @@ -8365,7 +8367,7 @@ msgstr "Перейдите к входу в систему" #: plinth/modules/sso/templates/login.html:23 msgid "Login" -msgstr "Логин" +msgstr "Войти" #: plinth/modules/sso/views.py:86 msgid "Logged out successfully." @@ -8752,7 +8754,7 @@ msgstr "Цифровой сад" #: plinth/modules/tiddlywiki/manifest.py:24 msgid "Zettelkasten" -msgstr "Шкафы для застройки" +msgstr "Цеттелькастен" #: plinth/modules/tiddlywiki/templates/tiddlywiki_delete.html:18 msgid "" @@ -8920,15 +8922,15 @@ msgstr "Orbot: Прокси с Tor" #: plinth/modules/tor/manifest.py:57 msgid "Onion services" -msgstr "Луковые сервисы" +msgstr "Onion-сервисы" #: plinth/modules/tor/manifest.py:58 msgid "Relay" -msgstr "Ретранслятор" +msgstr "Сетевой узел" #: plinth/modules/tor/manifest.py:59 plinth/modules/torproxy/manifest.py:56 msgid "Anonymity network" -msgstr "Сеть анонимности" +msgstr "Анонимная сеть" #: plinth/modules/tor/templates/tor.html:23 msgid "Onion Service" @@ -9085,7 +9087,7 @@ msgstr "" #: plinth/modules/upgrades/__init__.py:146 #: plinth/modules/upgrades/__init__.py:309 msgid "Software Update" -msgstr "Обновление программного обеспечения" +msgstr "Обновление ПО" #: plinth/modules/upgrades/__init__.py:131 msgid "FreedomBox Updated" @@ -9282,7 +9284,7 @@ msgstr "Перейти к обновлению дистрибутива" #: plinth/templates/notifications.html:58 #: plinth/templates/operation-notification.html:23 msgid "Dismiss" -msgstr "Отклонить" +msgstr "Закрыть" #: plinth/modules/upgrades/templates/upgrades-dist-upgrade.html:15 #, python-format @@ -9585,8 +9587,8 @@ msgstr "Имя пользователя уже занято." msgid "" "Optional. Used to send emails to reset password and important notifications." msgstr "" -"Необязательно. Используется для отправки электронных писем для сброса пароля " -"и важных уведомлений." +"Необязательное поле. Используется для отправки электронных писем для сброса " +"пароля и важных уведомлений." #: plinth/modules/users/forms.py:107 msgid "" @@ -9610,7 +9612,8 @@ msgstr "Введите действительное имя пользовате msgid "" "Required. 150 characters or fewer. English letters, digits and @/./-/_ only." msgstr "" -"Требуется. 150 символов или меньше. Только английские буквы, цифры и @/./-/_." +"Поле обязательно для заполнения. 150 символов или меньше. Только английские " +"буквы, цифры и @/./-/_." #: plinth/modules/users/forms.py:141 msgid "Authorization Password" @@ -9797,7 +9800,7 @@ msgid "" "change the password." msgstr "" "Для смены пароля используйте форму изменить пароль ." +"href=\"%(change_password_url)s\">изменить пароль." #: plinth/modules/users/templates/users_update.html:37 #: plinth/templates/language-selection.html:17 @@ -10552,35 +10555,35 @@ msgstr "" "обеспечение, позволяющее легко устанавливать серверные приложения и " "управлять ими." -#: plinth/templates/base.html:117 +#: plinth/templates/base.html:120 msgid " Home" -msgstr " Домой" +msgstr " Главная" -#: plinth/templates/base.html:125 +#: plinth/templates/base.html:128 msgid " Apps" msgstr " Приложения" -#: plinth/templates/base.html:134 +#: plinth/templates/base.html:137 msgid " System" msgstr " Система" -#: plinth/templates/base.html:173 plinth/templates/base.html:174 +#: plinth/templates/base.html:178 plinth/templates/base.html:179 msgid "Change password" msgstr "Изменить пароль" -#: plinth/templates/base.html:187 plinth/templates/base.html:188 +#: plinth/templates/base.html:192 plinth/templates/base.html:193 msgid "Shut down" msgstr "Завершить работу" -#: plinth/templates/base.html:198 plinth/templates/base.html:236 +#: plinth/templates/base.html:203 plinth/templates/base.html:241 msgid "Log out" msgstr "Выход" -#: plinth/templates/base.html:207 plinth/templates/base.html:210 +#: plinth/templates/base.html:212 plinth/templates/base.html:215 msgid "Select language" msgstr "Выберите язык" -#: plinth/templates/base.html:225 plinth/templates/base.html:227 +#: plinth/templates/base.html:230 plinth/templates/base.html:232 msgid "Log in" msgstr "Войти" @@ -10687,7 +10690,7 @@ msgstr "Уведомления" #: plinth/templates/notifications.html:18 #, python-format msgid "%(time_since)s ago" -msgstr "%(time_since)s тому назад" +msgstr "%(time_since)s назад" #: plinth/templates/port-forwarding-info.html:8 msgid "Port Forwarding" @@ -10788,6 +10791,30 @@ msgstr "Поиск по тегам" msgid "Clear all tags" msgstr "Очистить все теги" +#: plinth/templates/theme-menu.html:8 +msgid "Toggle theme (auto)" +msgstr "" + +#: plinth/templates/theme-menu.html:14 +msgid "Toggle theme" +msgstr "" + +#: plinth/templates/theme-menu.html:23 +#, fuzzy +#| msgid "Weight" +msgid "Light" +msgstr "Вес" + +#: plinth/templates/theme-menu.html:32 +msgid "Dark" +msgstr "" + +#: plinth/templates/theme-menu.html:41 +#, fuzzy +#| msgid "Automatic" +msgid "Auto" +msgstr "Автоматически" + #: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40 msgid "View Logs" msgstr "Просмотр журналов" @@ -10820,7 +10847,7 @@ msgstr "" #: plinth/views.py:89 msgid "Here" -msgstr "Вот здесь" +msgstr "Здесь" #: plinth/views.py:431 msgid "Setting unchanged" diff --git a/plinth/locale/si/LC_MESSAGES/django.po b/plinth/locale/si/LC_MESSAGES/django.po index 4b675fe88..bd6187f06 100644 --- a/plinth/locale/si/LC_MESSAGES/django.po +++ b/plinth/locale/si/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 01:21+0000\n" +"POT-Creation-Date: 2025-12-09 01:26+0000\n" "PO-Revision-Date: 2021-04-27 13:32+0000\n" "Last-Translator: HelaBasa \n" "Language-Team: Sinhala \n" "Language-Team: Slovenian \n" "Language-Team: Albanian \n" "Language-Team: Serbian \n" "Language-Team: Swedish \n" "Language-Team: Tamil \n" "Language-Team: Telugu \n" "Language-Team: Turkish \n" "Language-Team: Ukrainian \n" "Language-Team: Vietnamese \n" @@ -103,15 +103,15 @@ msgstr "此 web 管理界面的语言" msgid "Use the language preference set in the browser" msgstr "使用浏览器中设置的语言首选项" -#: plinth/menu.py:116 plinth/templates/base.html:120 +#: plinth/menu.py:116 plinth/templates/base.html:123 msgid "Home" msgstr "主页" -#: plinth/menu.py:117 plinth/templates/base.html:129 +#: plinth/menu.py:117 plinth/templates/base.html:132 msgid "Apps" msgstr "应用程序" -#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:138 +#: plinth/menu.py:119 plinth/menu.py:126 plinth/templates/base.html:141 msgid "System" msgstr "系统" @@ -3097,8 +3097,8 @@ msgstr "" msgid "Contribute" msgstr "贡献" -#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:216 -#: plinth/templates/base.html:219 plinth/templates/help-menu.html:46 +#: plinth/modules/help/__init__.py:53 plinth/templates/base.html:221 +#: plinth/templates/base.html:224 plinth/templates/help-menu.html:46 #: plinth/templates/help-menu.html:47 plinth/templates/index.html:96 msgid "About" msgstr "关于" @@ -3247,7 +3247,7 @@ msgstr "" #: plinth/modules/help/templates/help_contribute.html:42 #: plinth/modules/power/templates/power_restart.html:27 #: plinth/modules/power/templates/power_shutdown.html:26 -#: plinth/templates/app-header.html:65 +#: plinth/templates/app-header.html:66 msgid "Learn more..." msgstr "了解更多……" @@ -3667,7 +3667,7 @@ msgstr "" #: plinth/modules/janus/templates/janus_video_room.html:204 #: plinth/modules/jsxc/templates/jsxc_launch.html:117 -#: plinth/templates/base.html:272 +#: plinth/templates/base.html:277 msgid "JavaScript license information" msgstr "" @@ -4727,7 +4727,7 @@ msgstr "" #: plinth/modules/networks/templates/connection_show.html:40 #: plinth/modules/wireguard/templates/wireguard_show_client.html:72 #: plinth/modules/wireguard/templates/wireguard_show_server.html:73 -#: plinth/templates/base.html:166 plinth/templates/base.html:167 +#: plinth/templates/base.html:171 plinth/templates/base.html:172 msgid "Edit" msgstr "編輯" @@ -6279,8 +6279,8 @@ msgstr "" msgid "Shutdown" msgstr "关闭" -#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:181 -#: plinth/templates/base.html:182 +#: plinth/modules/power/templates/power.html:15 plinth/templates/base.html:186 +#: plinth/templates/base.html:187 msgid "Restart" msgstr "重新启动" @@ -9469,35 +9469,35 @@ msgid "" "is free software that lets you install and manage server apps with ease." msgstr "" -#: plinth/templates/base.html:117 +#: plinth/templates/base.html:120 msgid " Home" msgstr " 主页" -#: plinth/templates/base.html:125 +#: plinth/templates/base.html:128 msgid " Apps" msgstr " 应用程序" -#: plinth/templates/base.html:134 +#: plinth/templates/base.html:137 msgid " System" msgstr " 系统" -#: plinth/templates/base.html:173 plinth/templates/base.html:174 +#: plinth/templates/base.html:178 plinth/templates/base.html:179 msgid "Change password" msgstr "更改密码" -#: plinth/templates/base.html:187 plinth/templates/base.html:188 +#: plinth/templates/base.html:192 plinth/templates/base.html:193 msgid "Shut down" msgstr "关闭" -#: plinth/templates/base.html:198 plinth/templates/base.html:236 +#: plinth/templates/base.html:203 plinth/templates/base.html:241 msgid "Log out" msgstr "登出" -#: plinth/templates/base.html:207 plinth/templates/base.html:210 +#: plinth/templates/base.html:212 plinth/templates/base.html:215 msgid "Select language" msgstr "选择语言" -#: plinth/templates/base.html:225 plinth/templates/base.html:227 +#: plinth/templates/base.html:230 plinth/templates/base.html:232 msgid "Log in" msgstr "登录" @@ -9689,6 +9689,28 @@ msgstr "" msgid "Clear all tags" msgstr "" +#: plinth/templates/theme-menu.html:8 +msgid "Toggle theme (auto)" +msgstr "" + +#: plinth/templates/theme-menu.html:14 +msgid "Toggle theme" +msgstr "" + +#: plinth/templates/theme-menu.html:23 +msgid "Light" +msgstr "" + +#: plinth/templates/theme-menu.html:32 +msgid "Dark" +msgstr "" + +#: plinth/templates/theme-menu.html:41 +#, fuzzy +#| msgid "Automatic" +msgid "Auto" +msgstr "自动" + #: plinth/templates/toolbar.html:39 plinth/templates/toolbar.html:40 msgid "View Logs" msgstr "" diff --git a/plinth/locale/zh_Hant/LC_MESSAGES/django.po b/plinth/locale/zh_Hant/LC_MESSAGES/django.po index 20dd732b6..ae80d247b 100644 --- a/plinth/locale/zh_Hant/LC_MESSAGES/django.po +++ b/plinth/locale/zh_Hant/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-11-25 01:21+0000\n" +"POT-Creation-Date: 2025-12-09 01:26+0000\n" "PO-Revision-Date: 2025-02-07 12:01+0000\n" "Last-Translator: pesder \n" "Language-Team: Chinese (Traditional Han script) {% trans "Manual Update" %} {% if is_busy %}
    -
    {% else %} diff --git a/plinth/templates/app-header.html b/plinth/templates/app-header.html index efed5c201..e10945a86 100644 --- a/plinth/templates/app-header.html +++ b/plinth/templates/app-header.html @@ -43,10 +43,11 @@ {% if app_info.tags %} -
    +
    {% for tag in app_info.tags %} + {% if not forloop.first %}•{% endif %} + class="btn btn-default rounded-pill tag"> {% trans tag %} {% endfor %} diff --git a/plinth/templates/base.html b/plinth/templates/base.html index 2a074b5a8..b727f68fb 100644 --- a/plinth/templates/base.html +++ b/plinth/templates/base.html @@ -58,6 +58,9 @@ {% endif %} + + @@ -148,6 +151,8 @@ {% include "notifications-dropdown.html" %} + {% include "theme-menu.html" %} + {% include "help-menu.html" %} diff --git a/static/themes/default/css/main.css b/static/themes/default/css/main.css index b8bb67ff6..603b120bc 100644 --- a/static/themes/default/css/main.css +++ b/static/themes/default/css/main.css @@ -6,14 +6,13 @@ --neutral-light-color: #f5f5f5; /* Light grey */ --freedombox-blue-color: #4989D4; /* Blue */ --progress-color: #3498db; /* Blue */ - --freedombox-form-disabled-bg-color: #e9ecef; /* Grey */ --freedombox-navbar-color: white; + --freedombox-navbar-shadow-color: rgba(0, 0, 0, 0.25); + --freedombox-toggle-button-bg: #ccc; +} - /* Missing variables in Bootstrap 5.2 copied from Bootstrap 5.3 */ - --bs-secondary-bg: #e9ecef; - --bs-form-invalid-color: #dc3545; - --bs-form-invalid-border-color: #dc3545; - --bs-secondary-border-subtle: #c4c8cb; +[data-bs-theme="dark"] { + --freedombox-toggle-button-bg: #888; } /* @@ -50,20 +49,20 @@ h6:not(:first-child) { /* Default style removed in bootstrap 4 */ .btn-default { - --bs-btn-color: #333; - --bs-btn-bg: #fff; - --bs-btn-border-color: #ccc; - --bs-btn-hover-color: #333; - --bs-btn-hover-bg: #e6e6e6; - --bs-btn-hover-border-color: #adadad; + --bs-btn-color: var(--bs-body-color); + --bs-btn-bg: var(--bs-body-bg); + --bs-btn-border-color: var(--bs-tertiary-color); + --bs-btn-hover-color: var(--bs-body-color); + --bs-btn-hover-bg: var(--bs-secondary-bg); + --bs-btn-hover-border-color: var(--bs-tertiary-color); --bs-btn-focus-shadow-rgb: 192, 192, 192; - --bs-btn-active-color: #333; - --bs-btn-active-bg: #e6e6e6; - --bs-btn-active-border-color: #adadad; - --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - --bs-btn-disabled-color: #333; - --bs-btn-disabled-bg: #e6e6e6; - --bs-btn-disabled-border-color: #adadad; + --bs-btn-active-color: var(--bs-body-color); + --bs-btn-active-bg: var(--bs-secondary-bg); + --bs-btn-active-border-color: var(--bs-tertiary-color); + --bs-btn-active-shadow: inset 0 3px 5px var(--bs-border-color-translucent); + --bs-btn-disabled-color: var(--bs-body-color); + --bs-btn-disabled-bg: var(--bs-secondary-bg); + --bs-btn-disabled-border-color: var(--bs-tertiary-color); } /* Help block removed from bootstrap 4, needs updated django-bootstrap-from */ @@ -71,7 +70,7 @@ h6:not(:first-child) { display: block; margin-top: 0.3125rem; margin-bottom: 0.625rem; - color: var(--bs-secondary); + color: var(--bs-secondary-color); } /* .close was renamed to .alert-dismissable.btn-close in Bootstrap 5, needs @@ -99,7 +98,7 @@ form .alert .close { /* Disabled form elements show as gray, removed in Bootstrap 5 */ .form-control:disabled, .form-control[readonly] { - background-color: var(--freedombox-form-disabled-bg-color); + background-color: var(--bs-secondary-bg); opacity: 1; } @@ -228,28 +227,6 @@ body { vertical-align: middle; } -.running-status-parent { - display: inline-block; -} - -.running-status { - border-radius: 50%; - border: 1px solid black; - width: 0.5rem; - height: 0.5rem; - display: inline-block; -} - -.running-status.loading { - border: 0.25rem solid var(--neutral-light-color); - border-top: 0.25rem solid var(--progress-color); - border-radius: 50%; - width: 1rem; - height: 1rem; - display: inline-block; - animation: spin 1s linear infinite; -} - @keyframes spin { 0% { transform: rotate(0deg); @@ -314,16 +291,21 @@ html { /* Tags */ .tag { --bs-btn-padding-y: 0.25rem; /* Make the badge shorter */ + border-style: none; +} + +#selected-tags .tag { + border-style: solid; } /* Tag Input Container */ .tag-input { display: flex; align-items: center; - border: 1px solid #ced4da; + border: 1px solid var(--bs-border-color); border-radius: .25rem; padding: .375rem .75rem; - background-color: #fff; + background-color: var(--bs-body-bg); margin-bottom: 2rem; } @@ -472,7 +454,7 @@ footer { */ .main-header { background: var(--freedombox-blue-color); - box-shadow: 0 0.25rem 0.375rem 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 0.25rem 0.375rem 0 var(--freedombox-navbar-shadow-color); border: none; } @@ -522,6 +504,10 @@ footer { border-bottom: var(--freedombox-navbar-color) 3px solid; } +.main-header .dropdown-menu .active .fa-check { + display: block !important; +} + /* Breadcrumbs */ .breadcrumb-item { --bs-breadcrumb-divider: ">"; @@ -584,7 +570,7 @@ footer { .card-tags { font-weight: 400; - color: var(--bs-secondary); + color: var(--bs-secondary-color); font-size: 0.875rem; /* Show ellipsis after 3 lines. */ @@ -711,9 +697,9 @@ footer { border-radius: 0.8125rem; width: 3.125rem; height: 1.625rem; - background: #ccc; - --bs-btn-hover-bg: #ccc; - --bs-btn-disabled-bg: #ccc; + background: var(--freedombox-toggle-button-bg); + --bs-btn-hover-bg: var(--freedombox-toggle-button-bg); + --bs-btn-disabled-bg: var(--freedombox-toggle-button-bg);; --bs-btn-disabled-border-color: transparent; position: relative; } @@ -724,7 +710,7 @@ footer { height: 1.5rem; width: 1.5rem; border-radius: 100%; - background: #fff; + background: var(--bs-body-bg); position: absolute; top: 50%; left: 0%; @@ -744,8 +730,8 @@ footer { .toggle-button.running-status-button::before { top: 0; - border: 0.25rem solid var(--neutral-light-color); - border-top: 0.25rem solid var(--progress-color); + border: 0.25rem solid var(--bs-body-bg); + border-top-color: var(--freedombox-blue-color); animation: spin 1s linear infinite; } @@ -758,8 +744,8 @@ footer { */ .running-status-button-before { display: inline-block; - border: 0.25rem solid var(--neutral-light-color); - border-top: 0.25rem solid var(--progress-color); + border: 0.25rem solid var(--bs-btn-color); + border-top-color: transparent; border-radius: 50%; width: 1rem; height: 1rem; @@ -767,6 +753,8 @@ footer { margin-left: 0.625rem; margin-bottom: -0.25rem; margin-right: -1.625rem; + position: relative; + z-index: 10; } .running-status-button:disabled { @@ -782,7 +770,7 @@ input[type='submit'].running-status-button { */ .select-all-label { border: 1px solid var(--bs-secondary-border-subtle); - background-color: var(--neutral-light-color); + background-color: var(--bs-tertiary-bg); border-radius: 0.25rem; padding: 0.5rem 1rem 0.25rem; margin-left: -1rem; diff --git a/static/themes/default/js/color-modes.js b/static/themes/default/js/color-modes.js new file mode 100644 index 000000000..efef6dbf3 --- /dev/null +++ b/static/themes/default/js/color-modes.js @@ -0,0 +1,96 @@ +// SPDX-License-Identifier: CC-BY-3.0 +/* + This file is part of FreedomBox. Color mode toggler for Bootstrap's docs + (https://getbootstrap.com/). Copyright 2011-2025 The Bootstrap Authors. + + @licstart The following is the entire license notice for the + JavaScript code in this page. + + Licensed under the Creative Commons Attribution 3.0 Unported License. + + @licend The above is the entire license notice + for the JavaScript code in this page. +*/ + +(() => { + 'use strict'; + + const getStoredTheme = () => localStorage.getItem('theme'); + const setStoredTheme = theme => localStorage.setItem('theme', theme); + + const getBrowserTheme = () => { + return window.matchMedia('(prefers-color-scheme: dark)') + .matches ? 'dark' : 'light'; + }; + + const getPreferredTheme = () => { + const storedTheme = getStoredTheme(); + if (storedTheme) { + return storedTheme; + } + + return getBrowserTheme(); + }; + + const setTheme = (theme) => { + if (theme === 'auto') { + theme = getBrowserTheme(); + } + document.documentElement.setAttribute('data-bs-theme', theme); + }; + + setTheme(getPreferredTheme()); + + const showActiveTheme = (theme, focus = false) => { + const themeSwitcher = document.querySelector('#id_theme_menu_link'); + + if (!themeSwitcher) { + return; + } + + const themeSwitcherText = document.querySelector('#id_toggle_theme_text'); + const activeThemeIcon = document.querySelector('#id_active_theme_icon'); + const btnToActive = document.querySelector(`[data-bs-theme-value="${theme}"]`); + const iconOfActiveBtn = btnToActive.dataset.bsIconValue; + + document.querySelectorAll('[data-bs-theme-value]').forEach(element => { + element.classList.remove('active'); + element.setAttribute('aria-pressed', 'false'); + const iconOfBtn = element.dataset.bsIconValue; + if (activeThemeIcon.classList.contains(iconOfBtn)) { + activeThemeIcon.classList.remove(iconOfBtn); + } + }); + + btnToActive.classList.add('active'); + btnToActive.setAttribute('aria-pressed', 'true'); + activeThemeIcon.classList.add(iconOfActiveBtn); + const themeSwitcherLabel = `${themeSwitcherText.textContent} (${btnToActive.dataset.bsThemeValue})`; + themeSwitcher.setAttribute('title', themeSwitcherLabel); + + if (focus) { + themeSwitcher.focus(); + }; + }; + + window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => { + const storedTheme = getStoredTheme(); + if (storedTheme !== 'light' && storedTheme !== 'dark') { + setTheme(getPreferredTheme()); + } + }); + + window.addEventListener('DOMContentLoaded', () => { + showActiveTheme(getPreferredTheme()); + + document.querySelectorAll('[data-bs-theme-value]') + .forEach(toggle => { + toggle.addEventListener('click', () => { + const theme = toggle.getAttribute('data-bs-theme-value'); + setStoredTheme(theme); + setTheme(theme); + showActiveTheme(theme, true); + }); + }); + }); +})(); diff --git a/static/themes/default/js/main.js b/static/themes/default/js/main.js index d01200403..efbc2ee6d 100644 --- a/static/themes/default/js/main.js +++ b/static/themes/default/js/main.js @@ -85,6 +85,11 @@ function onSubmitAddProgress(event) { // For push buttons const beforeElement = document.createElement('div'); beforeElement.classList.add('running-status-button-before'); + button.classList.forEach(className => { + if (className.startsWith('btn-')) { + beforeElement.classList.add(className); + } + }); button.parentNode.insertBefore(beforeElement, button); } else if (button.tagName == "BUTTON") { // For toggle buttons