Compare commits
126 Commits
Author | SHA1 | Date |
---|---|---|
|
7c615a46b9 | |
|
8ca426f631 | |
|
de7a645548 | |
|
cdaa32ae4e | |
|
a7e6f0e973 | |
|
6c561cd93c | |
|
4508c2ca1d | |
|
8d7b560795 | |
|
5bb3c24b08 | |
|
086b0ede78 | |
|
b3e6666fe3 | |
|
c11596e3da | |
|
c764487abf | |
|
51bd3a668d | |
|
cbad81565e | |
|
73d8343a3e | |
|
69253a2b2c | |
|
4a1cc8a830 | |
|
a58c660dca | |
|
13c8a88e17 | |
|
537d4bf791 | |
|
d4951a333f | |
|
f763d71cd2 | |
|
2f67afec78 | |
|
b4c6e9d8ef | |
|
0979e60567 | |
|
bcb33bced1 | |
|
828c5b5973 | |
|
062231804a | |
|
4d234c01dd | |
|
6c96a5e7b6 | |
|
54ebc3739e | |
|
8c2a1dd73b | |
|
3d1ec3047f | |
|
327173ba11 | |
|
afb3f9630c | |
|
c577543af8 | |
|
af4cd80fd5 | |
|
2ef945255c | |
|
741bc8a2b0 | |
|
810c16bbf1 | |
|
e1c5b8a4fe | |
|
950abf2e44 | |
|
2e72916afb | |
|
2f64f3865e | |
|
8416b0f263 | |
|
a859e22e26 | |
|
8eba2f2ef3 | |
|
ffba5dab43 | |
|
922ae096be | |
|
1c7fe694fa | |
|
2da5d5597e | |
|
fe785d357d | |
|
9a35a09e24 | |
|
e8e9231d89 | |
|
61141a6670 | |
|
d204944ae2 | |
|
a4ac1d644d | |
|
b5e516bea0 | |
|
e5ecc02488 | |
|
b25a4e2119 | |
|
15172723dd | |
|
4887ded149 | |
|
3656cffcc0 | |
|
1d20fc50c9 | |
|
cd7d6a3845 | |
|
a9290f86b9 | |
|
486183a017 | |
|
0134e5d875 | |
|
8a8fe7b346 | |
|
977b82f681 | |
|
adaea91a4c | |
|
3e1c14bda3 | |
|
6cd201166b | |
|
58fc4e0a5b | |
|
6fc250d5cf | |
|
dc1f68c7bc | |
|
b71b83f348 | |
|
0fca70768a | |
|
e088443645 | |
|
03ecb2dcb2 | |
|
6cb361efb9 | |
|
d4f219b71e | |
|
8c170d11a2 | |
|
6ee8b77b95 | |
|
c39ffd45fc | |
|
bb0865eb23 | |
|
360c5b0271 | |
|
8560ca0677 | |
|
c9f8bb22f6 | |
|
631df4f1a5 | |
|
2d9b408a32 | |
|
e322d8cd98 | |
|
d142554ed3 | |
|
a8484b9c07 | |
|
262d6a6e7a | |
|
5bec6e8fdc | |
|
c31640fa12 | |
|
52b4b490f3 | |
|
d11e609543 | |
|
554b390cd4 | |
|
73c1d7f3fe | |
|
9ed46ae597 | |
|
c68058f0f3 | |
|
358cad3a24 | |
|
598fab96a9 | |
|
766603676c | |
|
d80ed10592 | |
|
f11d91da3a | |
|
25486a1df9 | |
|
0bbdb242a0 | |
|
a732fd418d | |
|
cae9044b92 | |
|
40933baef2 | |
|
c6581c49cd | |
|
9d1e8ac3c5 | |
|
26961a0614 | |
|
788c13d827 | |
|
0baa23ab44 | |
|
88a7c57fb0 | |
|
1a0b3e5d4b | |
|
c36b5b268e | |
|
0e89f39e89 | |
|
069fe74e9c | |
|
f8a7d0e372 | |
|
dbdc0d3f16 |
|
@ -7,7 +7,7 @@ cache:
|
|||
- _ccache/
|
||||
|
||||
variables:
|
||||
DEBIAN_IMAGE: "registry.freedesktop.org/pwithnall/malcontent/debian-unstable:v1"
|
||||
DEBIAN_IMAGE: "registry.freedesktop.org/pwithnall/malcontent/debian-unstable:v4"
|
||||
MESON_TEST_TIMEOUT_MULTIPLIER: 2
|
||||
G_MESSAGES_DEBUG: all
|
||||
MESON_COMMON_OPTIONS: "--buildtype debug --wrap-mode=nodownload"
|
||||
|
|
|
@ -1,17 +1,20 @@
|
|||
FROM debian:unstable
|
||||
|
||||
RUN apt-get update -qq && apt-get install --no-install-recommends -qq -y \
|
||||
desktop-file-utils \
|
||||
gettext \
|
||||
git \
|
||||
gtk-doc-tools \
|
||||
lcov \
|
||||
libadwaita-1-dev \
|
||||
libaccountsservice-dev \
|
||||
libappstream-glib-dev \
|
||||
libappstream-dev \
|
||||
libdbus-1-dev \
|
||||
libflatpak-dev \
|
||||
libgirepository1.0-dev \
|
||||
libglib2.0-dev \
|
||||
libglib-testing-0-dev \
|
||||
libgtk-3-dev \
|
||||
libgtk-4-dev \
|
||||
libpam0g-dev \
|
||||
libpolkit-gobject-1-dev \
|
||||
libxml2-utils \
|
||||
|
@ -27,7 +30,7 @@ RUN locale-gen C.UTF-8 && /usr/sbin/update-locale LANG=C.UTF-8
|
|||
|
||||
ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8
|
||||
|
||||
RUN pip3 install meson==0.54.3
|
||||
RUN pip3 install meson==0.59.4
|
||||
|
||||
ARG HOST_USER_ID=5555
|
||||
ENV HOST_USER_ID ${HOST_USER_ID}
|
||||
|
|
53
NEWS
53
NEWS
|
@ -1,3 +1,56 @@
|
|||
Overview of changes in malcontent 0.11.1
|
||||
========================================
|
||||
|
||||
* Bugs fixed:
|
||||
- !147 0.11.0
|
||||
- !148 build: Switch to Meson’s gnome.post_install function
|
||||
- !149 po: add Georgian translation
|
||||
- !150 Update Hungarian translation
|
||||
- !151 Update Hindi (hi) translation
|
||||
- !152 doc: Add Turkish Translation
|
||||
|
||||
* Translation updates:
|
||||
- Georgian (NorwayFun)
|
||||
- Hindi (Hemish)
|
||||
- Hungarian (Balázs Úr)
|
||||
- Turkish (Sabri Unal)
|
||||
|
||||
|
||||
Overview of changes in malcontent 0.11.0
|
||||
========================================
|
||||
|
||||
* libmalcontent-ui, and the malcontent-control application, now use
|
||||
libappstream rather than appstream-glib. (#51)
|
||||
|
||||
* libmalcontent-ui, and the malcontent-control application, now use GTK 4 and
|
||||
libadwaita rather than GTK+ 3. (!141)
|
||||
|
||||
* As a result of these changes, the pkg-config name has been bumped to
|
||||
libmalcontent-ui-1, and the gobject-introspection name to MalcontentUi-1.
|
||||
|
||||
* Improve keyboard navigation of the malcontent-control application. (#52)
|
||||
|
||||
* Translation updates:
|
||||
- Italian
|
||||
- Russian
|
||||
|
||||
Overview of changes in malcontent 0.10.5
|
||||
========================================
|
||||
|
||||
* Bugs fixed:
|
||||
- !134 Update it.po
|
||||
- !135 Add German help translation
|
||||
- !136 Update pt_BR.po
|
||||
- !137 Update tr.po
|
||||
- !138 Update Chinese (Taiwan) translation file.
|
||||
|
||||
* Translation updates:
|
||||
- Chinese (Taiwan)
|
||||
- Italian
|
||||
- Portuguese (Brazil)
|
||||
- Turkish
|
||||
|
||||
|
||||
Overview of changes in malcontent 0.10.4
|
||||
========================================
|
||||
|
||||
|
|
|
@ -115,14 +115,15 @@ Dependencies
|
|||
------------
|
||||
|
||||
* accounts-service
|
||||
* appstream-glib
|
||||
* appstream
|
||||
* dbus-daemon
|
||||
* flatpak
|
||||
* gio-2.0 ≥ 2.60
|
||||
* gio-unix-2.0 ≥ 2.60
|
||||
* glib-2.0 ≥ 2.60
|
||||
* gobject-2.0 ≥ 2.60
|
||||
* gtk+-3.0
|
||||
* gtk4
|
||||
* libadwaita
|
||||
* polkit-gobject-1
|
||||
|
||||
Licensing
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
install_prefix = os.environ['MESON_INSTALL_PREFIX']
|
||||
|
||||
if not os.environ.get('DESTDIR'):
|
||||
icon_cache_dir = os.path.join(install_prefix, 'share', 'icons', 'hicolor')
|
||||
if os.path.exists(icon_cache_dir):
|
||||
print('Updating icon cache…')
|
||||
subprocess.call(['gtk-update-icon-cache', '-qtf', icon_cache_dir])
|
||||
|
||||
desktop_database_dir = os.path.join(install_prefix, 'share', 'applications')
|
||||
if os.path.exists(desktop_database_dir):
|
||||
print('Updating desktop database…')
|
||||
subprocess.call(['update-desktop-database', '-q', desktop_database_dir])
|
|
@ -1,9 +1,13 @@
|
|||
# please keep this list sorted alphabetically
|
||||
da
|
||||
de
|
||||
es
|
||||
hu
|
||||
id
|
||||
it
|
||||
pl
|
||||
pt_BR
|
||||
ru
|
||||
sv
|
||||
tr
|
||||
uk
|
||||
|
|
|
@ -0,0 +1,362 @@
|
|||
# German translation for malcontent.
|
||||
# Copyright (C) 2021 malcontent's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the malcontent package.
|
||||
# Christian Kirbach <Christian.Kirbach@gmail.com>, 2021.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: malcontent main\n"
|
||||
"POT-Creation-Date: 2021-12-29 15:34+0000\n"
|
||||
"PO-Revision-Date: 2021-12-31 13:36+0100\n"
|
||||
"Last-Translator: Tim Sabsch <tim@sabsch.com>\n"
|
||||
"Language-Team: German <gnome-de@gnome.org>\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.0\n"
|
||||
|
||||
#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
|
||||
msgctxt "_"
|
||||
msgid "translator-credits"
|
||||
msgstr "Christian Kirbach <christian.kirbach@gmail.com>, 2021."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/creating-a-child-user.page:6
|
||||
msgid "Creating a child user on the computer."
|
||||
msgstr "So legen Sie ein Kinderkonto auf dem Rechner an."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/creating-a-child-user.page:9
|
||||
msgid "Creating a Child User"
|
||||
msgstr "Ein Kinderkonto anlegen"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/creating-a-child-user.page:11
|
||||
msgid ""
|
||||
"Parental controls can only be applied to non-administrator accounts. Such an "
|
||||
"account may have been created when the computer was initially set up. If "
|
||||
"not, a new child user may be created from the <app>Parental Controls</app> "
|
||||
"application if no child users already exist; and otherwise may be created "
|
||||
"from the <app>Control Center</app>."
|
||||
msgstr ""
|
||||
"Die Kindersicherung kann für alle Konten außer Administrator-Konten "
|
||||
"eingerichtet werden. Ein solches Konto wurde vermutlich bei der "
|
||||
"Ersteinrichtung des Rechners angelegt. Falls nicht, können Sie ein neues "
|
||||
"Kinderkonto in der Anwendung <app>Kindersicherung</app> anlegen, und "
|
||||
"alternativ in den <app>Einstellungen</app>."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/creating-a-child-user.page:17
|
||||
msgid ""
|
||||
"To create a new child user, see <link type=\"guide\" xref=\"help:gnome-help/"
|
||||
"user-add\">Add a new user account</link>. As soon as the new user is "
|
||||
"created, it will appear in the <app>Parental Controls</app> window so that "
|
||||
"its parental controls settings can be configured."
|
||||
msgstr ""
|
||||
"Folgen Sie den Anweisungen <link type=\"guide\" xref=\"help:gnome-help/user-"
|
||||
"add\">Ein neues Benutzerkonto anlegen</link>, um ein neues Kinderkonto "
|
||||
"anzulegen. Sobald der neue Benutzer angelegt wurde, erscheint er im Fenster "
|
||||
"von <app>Kindersicherung</app>. Die Einrichtung der Kindersicherung wird "
|
||||
"dort durchgeführt."
|
||||
|
||||
#. (itstool) path: credit/name
|
||||
#: C/index.page:6
|
||||
msgid "Philip Withnall"
|
||||
msgstr "Philip Withnall"
|
||||
|
||||
#. (itstool) path: credit/years
|
||||
#: C/index.page:8
|
||||
msgid "2020"
|
||||
msgstr "2020"
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/index.page:12
|
||||
msgid "Parental Controls Help"
|
||||
msgstr "Hilfe zur Kindersicherung"
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/index.page:15
|
||||
msgid "Introduction & Setup"
|
||||
msgstr "Einführung und Einrichtung"
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/index.page:19
|
||||
msgid "Controls to Apply"
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/internet.page:6
|
||||
msgid "Restricting a child user’s access to the internet."
|
||||
msgstr "Den Internet-Zugang eines Kinderkontos einschränken."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/internet.page:9
|
||||
msgid "Restricting Access to the Internet"
|
||||
msgstr "Den Zugriff auf das Internet einschränken"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/internet.page:11
|
||||
msgid ""
|
||||
"You can restrict a user’s access to the internet. This will prevent them "
|
||||
"using a web browser, but it will not prevent them using the internet (in "
|
||||
"potentially more limited forms) through other applications. For example, it "
|
||||
"will not prevent access to e-mail accounts using <app>Evolution</app>, and "
|
||||
"it will not prevent software updates being downloaded and applied."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/internet.page:17
|
||||
msgid "To restrict a user’s access to the internet:"
|
||||
msgstr "So schränken Sie den Internet-Zugang eines Kinderkontos ein:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/internet.page:19 C/restricting-applications.page:20
|
||||
#: C/software-installation.page:28 C/software-installation.page:54
|
||||
msgid "Open the <app>Parental Controls</app> application."
|
||||
msgstr "Öffnen Sie die Anwendung <app>Kindersicherung</app>."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/internet.page:20 C/restricting-applications.page:21
|
||||
#: C/software-installation.page:29 C/software-installation.page:55
|
||||
msgid "Select the user in the tabs at the top."
|
||||
msgstr "Wählen Sie den Benutzer oben in den Reitern."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/internet.page:21
|
||||
msgid ""
|
||||
"Enable the <gui style=\"checkbox\">Restrict Web Browsers</gui> checkbox."
|
||||
msgstr ""
|
||||
"Aktivieren Sie das Ankreuzfeld <gui style=\"checkbox\">Web-Browser "
|
||||
"einschränken</gui>."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/introduction.page:6
|
||||
msgid ""
|
||||
"Overview of parental controls, the <app>Parental Controls</app> application "
|
||||
"and its use in other situations where access restrictions are needed on a "
|
||||
"user."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/introduction.page:12
|
||||
msgid "Introduction to Parental Controls"
|
||||
msgstr "Einführung in die Kindersicherung"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:14
|
||||
msgid ""
|
||||
"Parental controls are a way to restrict what non-administrator accounts can "
|
||||
"do on the computer, with the aim of allowing parents to restrict what their "
|
||||
"children can do when using the computer unsupervised or under limited "
|
||||
"supervision."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:18
|
||||
msgid ""
|
||||
"This functionality can be used in other situations – such as other carer/"
|
||||
"caree relationships – but is labelled as ‘parental controls’ so that it’s "
|
||||
"easy to find, as that’s what most people will be looking for."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:21
|
||||
msgid ""
|
||||
"The parental controls for any user can be queried and set using the "
|
||||
"<app>Parental Controls</app> application. This lists the non-administrator "
|
||||
"accounts in tabs along its top bar, and shows their current parental "
|
||||
"controls settings below. Changes to the parental controls apply immediately."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:25
|
||||
msgid ""
|
||||
"Restrictions on using the computer can only be applied to non-administrator "
|
||||
"accounts. The parental controls settings for a user can only be changed by "
|
||||
"an administrator, although the administrator can do so from the user’s "
|
||||
"account by entering their password when prompted by the <app>Parental "
|
||||
"Controls</app> application."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: p/link
|
||||
#: C/legal.xml:4
|
||||
msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License"
|
||||
msgstr "Creative Commons Attribution-ShareAlike 3.0 Unported License"
|
||||
|
||||
#. (itstool) path: license/p
|
||||
#: C/legal.xml:3
|
||||
msgid "This work is licensed under a <_:link-1/>."
|
||||
msgstr "Dieses Werk wird unter einer <_:link-1/> verbreitet."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/restricting-applications.page:6
|
||||
msgid "Restricting a child user from running already-installed applications."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/restricting-applications.page:9
|
||||
msgid "Restricting Access to Installed Applications"
|
||||
msgstr "Den Zugriff auf installierte Anwendungen einschränken"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:11
|
||||
msgid ""
|
||||
"You can prevent a user from running specific applications which are already "
|
||||
"installed on the computer. This could be useful if other users need those "
|
||||
"applications but they are not appropriate for a child."
|
||||
msgstr ""
|
||||
"Sie können Benutzer daran hindern, bestimmte Anwendungen auszuführen, die "
|
||||
"auf dem Rechner installiert sind. Dies ist nützlich, wenn andere Benutzer "
|
||||
"die Anwendungen benötigen, diese aber nicht für Kinder geeignet sind."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:14
|
||||
msgid ""
|
||||
"When installing additional software, you should consider whether that needs "
|
||||
"to be restricted for some users — newly installed software is usable by all "
|
||||
"users by default."
|
||||
msgstr ""
|
||||
"Wenn Sie weitere Software installieren, sollten Sie berücksichtigen, ob sie "
|
||||
"für einige Benutzer eingeschränkt werden muss. Neu installierte Software ist "
|
||||
"standardmäßig für alle Benutzer nutzbar."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:18
|
||||
msgid "To restrict a user’s access to a specific application:"
|
||||
msgstr ""
|
||||
"So schränken Sie den Zugriff eines Benutzers auf bestimmte Anwendungen ein:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/restricting-applications.page:22
|
||||
msgid "Press the <gui style=\"button\">Restrict Applications</gui> button."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/restricting-applications.page:23
|
||||
msgid ""
|
||||
"Enable the switch in the row for each application you would like to restrict "
|
||||
"the user from accessing."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/restricting-applications.page:24
|
||||
msgid "Close the <gui>Restrict Applications</gui> window."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:27
|
||||
msgid ""
|
||||
"Restricting access to specific applications is often used in conjunction "
|
||||
"with <link xref=\"software-installation\"/> to prevent a user from "
|
||||
"installing additional software which has not been vetted."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/software-installation.page:6
|
||||
msgid ""
|
||||
"Restricting the software a child user can install, or preventing them "
|
||||
"installing additional software entirely."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/software-installation.page:9
|
||||
msgid "Restricting Software Installation"
|
||||
msgstr "Software-Installation einschränken"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/software-installation.page:11
|
||||
msgid ""
|
||||
"You can prevent a user from installing additional software on the system. "
|
||||
"They will still be able to search for new software to install, but will need "
|
||||
"an administrator to authorize the installation when they try to install an "
|
||||
"application. This applies whether they are trying to install the application "
|
||||
"system-wide (for all users) or just for themselves."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/software-installation.page:17
|
||||
msgid ""
|
||||
"Additionally, you can restrict which software a user can browse or search "
|
||||
"for in the <app>Software</app> catalog by age categories."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/software-installation.page:20
|
||||
msgid ""
|
||||
"To prevent a user from running an application which has already been "
|
||||
"installed, see <link xref=\"restricting-applications\"/>."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/software-installation.page:24
|
||||
msgid "Preventing Software Installation"
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:26
|
||||
msgid "To prevent a user from installing additional software:"
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/software-installation.page:30
|
||||
msgid ""
|
||||
"Enable the <gui style=\"checkbox\">Restrict Application Installation</gui> "
|
||||
"checkbox."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/software-installation.page:35
|
||||
msgid "Restricting Software Installation by Age"
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:37
|
||||
msgid ""
|
||||
"Applications in the <app>Software</app> catalog have information about "
|
||||
"content they contain which might be inappropriate for some ages — for "
|
||||
"example, various forms of violence, unmoderated chat with other people on "
|
||||
"the internet, or the possibility of spending money."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:41
|
||||
msgid ""
|
||||
"For each application, this information is summarized as the minimum age "
|
||||
"child it is typically suitable to be used by — for example, “suitable for "
|
||||
"ages 7+”. These age ratings are presented in region-specific schemes which "
|
||||
"can be compared with the ratings schemes used for films and games."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:45
|
||||
msgid ""
|
||||
"The applications shown to a user in the <app>Software</app> catalog can be "
|
||||
"filtered by their age suitability. Applications which are not suitable for "
|
||||
"the user will be hidden, and will not be installable by that user. They will "
|
||||
"be installable by other users (if their age suitability is set high enough)."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:51
|
||||
msgid ""
|
||||
"To filter the applications seen by a user in the <app>Software</app> catalog "
|
||||
"to only those suitable for a certain age:"
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/software-installation.page:56
|
||||
msgid ""
|
||||
"In the <gui>Application Suitability</gui> list, select the age which "
|
||||
"applications should be suitable for."
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: note/p
|
||||
#: C/software-installation.page:60
|
||||
msgid ""
|
||||
"The user’s actual age is not stored, so the <gui>Application Suitability</"
|
||||
"gui> is not automatically updated over time as the child grows older. You "
|
||||
"must periodically re-assess the appropriate <gui>Application Suitability</"
|
||||
"gui> for each user."
|
||||
msgstr ""
|
|
@ -0,0 +1,441 @@
|
|||
# Hungarian translation for malcontent.
|
||||
# Copyright (C) 2022 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the malcontent package.
|
||||
#
|
||||
# Balázs Úr <ur.balazs at fsf dot hu>, 2022.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: malcontent main\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2022-09-21 15:25+0000\n"
|
||||
"PO-Revision-Date: 2022-09-22 23:43+0200\n"
|
||||
"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
|
||||
"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
|
||||
"Language: hu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 19.12.3\n"
|
||||
|
||||
#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
|
||||
msgctxt "_"
|
||||
msgid "translator-credits"
|
||||
msgstr "Úr Balázs <ur dot balazs at fsf dot hu>, 2022."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/creating-a-child-user.page:6
|
||||
msgid "Creating a child user on the computer."
|
||||
msgstr "Gyermekfelhasználó létrehozása a számítógépen."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/creating-a-child-user.page:9
|
||||
msgid "Creating a Child User"
|
||||
msgstr "Gyermekfelhasználó létrehozása"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/creating-a-child-user.page:11
|
||||
msgid ""
|
||||
"Parental controls can only be applied to non-administrator accounts. Such an "
|
||||
"account may have been created when the computer was initially set up. If "
|
||||
"not, a new child user may be created from the <app>Parental Controls</app> "
|
||||
"application if no child users already exist; and otherwise may be created "
|
||||
"from the <app>Control Center</app>."
|
||||
msgstr ""
|
||||
"A szülői felügyelet csak a nem rendszergazdai fiókokra alkalmazható. Ilyen "
|
||||
"fiókot esetleg a számítógép kezdeti beállításakor hozhattak létre. Ha nem, "
|
||||
"akkor új gyermekfelhasználó hozható létre a <app>Szülői felügyelet</app> "
|
||||
"alkalmazásból, ha még nem létezik gyermekfelhasználó, egyébként pedig a "
|
||||
"<app>Vezérlőközpont</app> alkalmazásból hozható létre."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/creating-a-child-user.page:17
|
||||
msgid ""
|
||||
"To create a new child user, see <link type=\"guide\" xref=\"help:gnome-help/"
|
||||
"user-add\">Add a new user account</link>. As soon as the new user is "
|
||||
"created, it will appear in the <app>Parental Controls</app> window so that "
|
||||
"its parental controls settings can be configured."
|
||||
msgstr ""
|
||||
"Új gyermekfelhasználó létrehozásához nézze meg az <link type=\"guide\" xref="
|
||||
"\"help:gnome-help/user-add\">Új felhasználói fiók hozzáadása</link> "
|
||||
"fejezetet. Amint az új felhasználó létrejött, megjelenik a <app>Szülői "
|
||||
"felügyelet</app> ablakban, így a szülői felügyeleti beállításai "
|
||||
"konfigurálhatók."
|
||||
|
||||
#. (itstool) path: credit/name
|
||||
#: C/index.page:6
|
||||
msgid "Philip Withnall"
|
||||
msgstr "Philip Withnall"
|
||||
|
||||
#. (itstool) path: credit/years
|
||||
#: C/index.page:8
|
||||
msgid "2020"
|
||||
msgstr "2020"
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/index.page:12
|
||||
msgid "Parental Controls Help"
|
||||
msgstr "Szülői felügyelet súgó"
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/index.page:15
|
||||
msgid "Introduction & Setup"
|
||||
msgstr "Bevezetés és beállítás"
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/index.page:19
|
||||
msgid "Controls to Apply"
|
||||
msgstr "Alkalmazandó szabályozások"
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/internet.page:6
|
||||
msgid "Restricting a child user’s access to the internet."
|
||||
msgstr "Egy gyermekfelhasználó internet-hozzáférésének korlátozása."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/internet.page:9
|
||||
msgid "Restricting Access to the Internet"
|
||||
msgstr "Internet-hozzáférés korlátozása"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/internet.page:11
|
||||
msgid ""
|
||||
"You can restrict a user’s access to the internet. This will prevent them "
|
||||
"using a web browser, but it will not prevent them using the internet (in "
|
||||
"potentially more limited forms) through other applications. For example, it "
|
||||
"will not prevent access to e-mail accounts using <app>Evolution</app>, and "
|
||||
"it will not prevent software updates being downloaded and applied."
|
||||
msgstr ""
|
||||
"Korlátozhatja egy felhasználó internet-hozzáférését. Ez megakadályozza őt a "
|
||||
"webböngésző használatában, de nem akadályozza meg abban, hogy az internetet "
|
||||
"(esetleg korlátozottabb formában) más alkalmazásokon keresztül használja. "
|
||||
"Például nem akadályozza meg az e-mail fiókokhoz való hozzáférést az "
|
||||
"<app>Evolution</app> használatával, és nem akadályozza meg a "
|
||||
"szoftverfrissítések letöltését és alkalmazását."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/internet.page:17
|
||||
msgid "To restrict a user’s access to the internet:"
|
||||
msgstr "Egy felhasználó internet-hozzáférésének korlátozásához:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/internet.page:19 C/restricting-applications.page:20
|
||||
#: C/software-installation.page:28 C/software-installation.page:54
|
||||
msgid "Open the <app>Parental Controls</app> application."
|
||||
msgstr "Nyissa meg a <app>Szülői felügyelet</app> alkalmazást."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/internet.page:20 C/restricting-applications.page:21
|
||||
#: C/software-installation.page:29 C/software-installation.page:55
|
||||
msgid "Select the user in the tabs at the top."
|
||||
msgstr "Válassza ki a felhasználót a fenti lapokon."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/internet.page:21
|
||||
msgid ""
|
||||
"Enable the <gui style=\"checkbox\">Restrict Web Browsers</gui> checkbox."
|
||||
msgstr ""
|
||||
"Jelölje be a <gui style=\"checkbox\">Webböngészők korlátozása</gui> "
|
||||
"jelölőnégyzetet."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/introduction.page:6
|
||||
msgid ""
|
||||
"Overview of parental controls, the <app>Parental Controls</app> application "
|
||||
"and its use in other situations where access restrictions are needed on a "
|
||||
"user."
|
||||
msgstr ""
|
||||
"A szülői felügyelet áttekintése, a <app>Szülői felügyelet</app> alkalmazás "
|
||||
"és annak használata olyan egyéb helyzetekben, amikor egy felhasználó "
|
||||
"hozzáférésének korlátozásai szükségesek."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/introduction.page:12
|
||||
msgid "Introduction to Parental Controls"
|
||||
msgstr "Bevezetés a szülői felügyeletbe"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:14
|
||||
msgid ""
|
||||
"Parental controls are a way to restrict what non-administrator accounts can "
|
||||
"do on the computer, with the aim of allowing parents to restrict what their "
|
||||
"children can do when using the computer unsupervised or under limited "
|
||||
"supervision."
|
||||
msgstr ""
|
||||
"A szülői felügyelet segítségével korlátozható, hogy a nem rendszergazdai "
|
||||
"fiókok mit tehetnek a számítógépen, azzal a céllal, hogy a szülők "
|
||||
"korlátozhassák, hogy mit tehetnek a gyermekeik, amikor felügyelet nélkül "
|
||||
"vagy korlátozott felügyelet mellett használják a számítógépet."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:18
|
||||
msgid ""
|
||||
"This functionality can be used in other situations – such as other carer/"
|
||||
"caree relationships – but is labelled as ‘parental controls’ so that it’s "
|
||||
"easy to find, as that’s what most people will be looking for."
|
||||
msgstr ""
|
||||
"Ez a funkció más helyzetekben is használható – például egyéb gondozó-"
|
||||
"gondozott kapcsolatokban –, de „szülői felügyelet” címkével van ellátva, "
|
||||
"hogy könnyen megtalálható legyen, mivel a legtöbb ember ezt keresi."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:21
|
||||
msgid ""
|
||||
"The parental controls for any user can be queried and set using the "
|
||||
"<app>Parental Controls</app> application. This lists the non-administrator "
|
||||
"accounts in tabs along its top bar, and shows their current parental "
|
||||
"controls settings below. Changes to the parental controls apply immediately."
|
||||
msgstr ""
|
||||
"A szülői felügyelet bármely felhasználóhoz lekérdezhető és beállítható a "
|
||||
"<app>Szülői felügyelet</app> alkalmazás használatával. Ez a felső sávjában "
|
||||
"lévő lapokon felsorolja a nem rendszergazdai fiókokat, és alatta megjeleníti "
|
||||
"az aktuális szülői felügyeleti beállításokat. A szülői felügyelet "
|
||||
"változtatásai azonnal érvénybe lépnek."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:25
|
||||
msgid ""
|
||||
"Restrictions on using the computer can only be applied to non-administrator "
|
||||
"accounts. The parental controls settings for a user can only be changed by "
|
||||
"an administrator, although the administrator can do so from the user’s "
|
||||
"account by entering their password when prompted by the <app>Parental "
|
||||
"Controls</app> application."
|
||||
msgstr ""
|
||||
"A számítógép használatára vonatkozó korlátozások csak a nem rendszergazdai "
|
||||
"fiókokra alkalmazhatók. Egy felhasználó szülői felügyeleti beállításait csak "
|
||||
"egy rendszergazda változtathatja meg, bár a rendszergazda ezt a felhasználó "
|
||||
"fiókjából is megteheti a jelszavának megadásával, amikor a <app>Szülői "
|
||||
"felügyelet</app> alkalmazás erre kéri."
|
||||
|
||||
#. (itstool) path: p/link
|
||||
#: C/legal.xml:4
|
||||
msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License"
|
||||
msgstr "Creative Commons Nevezd meg! - Így add tovább! 3.0 átíratlan licenc"
|
||||
|
||||
#. (itstool) path: license/p
|
||||
#: C/legal.xml:3
|
||||
msgid "This work is licensed under a <_:link-1/>."
|
||||
msgstr "Ez a mű a <_:link-1/> szerint licencelt."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/restricting-applications.page:6
|
||||
msgid "Restricting a child user from running already-installed applications."
|
||||
msgstr ""
|
||||
"Egy gyermekfelhasználó korlátozása a már telepített alkalmazások "
|
||||
"futtatásában."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/restricting-applications.page:9
|
||||
msgid "Restricting Access to Installed Applications"
|
||||
msgstr "A telepített alkalmazásokhoz való hozzáférés korlátozása"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:11
|
||||
msgid ""
|
||||
"You can prevent a user from running specific applications which are already "
|
||||
"installed on the computer. This could be useful if other users need those "
|
||||
"applications but they are not appropriate for a child."
|
||||
msgstr ""
|
||||
"Megakadályozhatja, hogy egy felhasználó a számítógépre már telepített "
|
||||
"bizonyos alkalmazásokat futtasson. Ez akkor lehet hasznos, ha más "
|
||||
"felhasználóknak szükségük van ezekre az alkalmazásokra, de egy gyermek "
|
||||
"számára nem megfelelőek."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:14
|
||||
msgid ""
|
||||
"When installing additional software, you should consider whether that needs "
|
||||
"to be restricted for some users — newly installed software is usable by all "
|
||||
"users by default."
|
||||
msgstr ""
|
||||
"További szoftverek telepítésekor meg kell fontolnia, hogy nem kell-e "
|
||||
"korlátozni azokat egyes felhasználók számára, ugyanis az újonnan telepített "
|
||||
"szoftverek alapértelmezetten minden felhasználó számára használhatóak."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:18
|
||||
msgid "To restrict a user’s access to a specific application:"
|
||||
msgstr ""
|
||||
"Egy felhasználó adott alkalmazáshoz való hozzáférésének korlátozásához:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/restricting-applications.page:22
|
||||
msgid "Press the <gui style=\"button\">Restrict Applications</gui> button."
|
||||
msgstr ""
|
||||
"Nyomja meg az <gui style=\"button\">Alkalmazások korlátozása</gui> gombot."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/restricting-applications.page:23
|
||||
msgid ""
|
||||
"Enable the switch in the row for each application you would like to restrict "
|
||||
"the user from accessing."
|
||||
msgstr ""
|
||||
"Kapcsolja be a kapcsolót minden olyan alkalmazás sorában, amelyhez a "
|
||||
"felhasználó hozzáférését korlátozni szeretné."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/restricting-applications.page:24
|
||||
msgid "Close the <gui>Restrict Applications</gui> window."
|
||||
msgstr "Zárja be az <gui>Alkalmazások korlátozása</gui> ablakot."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:27
|
||||
msgid ""
|
||||
"Restricting access to specific applications is often used in conjunction "
|
||||
"with <link xref=\"software-installation\"/> to prevent a user from "
|
||||
"installing additional software which has not been vetted."
|
||||
msgstr ""
|
||||
"Bizonyos alkalmazásokhoz való hozzáférés korlátozását gyakran használják a "
|
||||
"<link xref=\"software-installation\"/> korlátozással együtt, hogy "
|
||||
"megakadályozzanak egy felhasználót a további, nem ellenőrzött szoftverek "
|
||||
"telepítésében."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/software-installation.page:6
|
||||
msgid ""
|
||||
"Restricting the software a child user can install, or preventing them "
|
||||
"installing additional software entirely."
|
||||
msgstr ""
|
||||
"Egy gyermekfelhasználó által telepíthető szoftverek korlátozása, vagy "
|
||||
"további szoftverek telepítésének teljes megakadályozása."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/software-installation.page:9
|
||||
msgid "Restricting Software Installation"
|
||||
msgstr "Szoftvertelepítés korlátozása"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/software-installation.page:11
|
||||
msgid ""
|
||||
"You can prevent a user from installing additional software on the system. "
|
||||
"They will still be able to search for new software to install, but will need "
|
||||
"an administrator to authorize the installation when they try to install an "
|
||||
"application. This applies whether they are trying to install the application "
|
||||
"system-wide (for all users) or just for themselves."
|
||||
msgstr ""
|
||||
"Megakadályozhat egy felhasználót abban, hogy további szoftvereket telepítsen "
|
||||
"a rendszerre. A felhasználó továbbra is kereshet új telepítendő szoftvert, "
|
||||
"de rendszergazdára lesz szüksége a telepítés felhatalmazásához, amikor "
|
||||
"megpróbál telepíteni egy alkalmazást. Ez arra is vonatkozik, hogy az "
|
||||
"alkalmazást rendszerszinten (minden felhasználónak) vagy csak saját magának "
|
||||
"próbálja telepíteni."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/software-installation.page:17
|
||||
msgid ""
|
||||
"Additionally, you can restrict which software a user can browse or search "
|
||||
"for in the <app>Software</app> catalog by age categories."
|
||||
msgstr ""
|
||||
"Ezenkívül azt is korlátozhatja az életkor kategória alapján, hogy egy "
|
||||
"felhasználó milyen szoftvereket böngészhet vagy kereshet a <app>Szoftver</"
|
||||
"app> katalógusában."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/software-installation.page:20
|
||||
msgid ""
|
||||
"To prevent a user from running an application which has already been "
|
||||
"installed, see <link xref=\"restricting-applications\"/>."
|
||||
msgstr ""
|
||||
"Annak megakadályozásához, hogy egy felhasználó egy már telepített "
|
||||
"alkalmazást futtasson, nézze meg az <link xref=\"restricting-applications\"/"
|
||||
"> fejezetet."
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/software-installation.page:24
|
||||
msgid "Preventing Software Installation"
|
||||
msgstr "Szoftvertelepítés megakadályozása"
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:26
|
||||
msgid "To prevent a user from installing additional software:"
|
||||
msgstr ""
|
||||
"Annak megakadályozásához, hogy a felhasználó további szoftvereket telepítsen:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/software-installation.page:30
|
||||
msgid ""
|
||||
"Enable the <gui style=\"checkbox\">Restrict Application Installation</gui> "
|
||||
"checkbox."
|
||||
msgstr ""
|
||||
"Jelölje be az <gui style=\"checkbox\">Alkalmazástelepítés korlátozása</gui> "
|
||||
"jelölőnégyzetet."
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/software-installation.page:35
|
||||
msgid "Restricting Software Installation by Age"
|
||||
msgstr "Szoftvertelepítés korlátozása életkor alapján"
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:37
|
||||
msgid ""
|
||||
"Applications in the <app>Software</app> catalog have information about "
|
||||
"content they contain which might be inappropriate for some ages — for "
|
||||
"example, various forms of violence, unmoderated chat with other people on "
|
||||
"the internet, or the possibility of spending money."
|
||||
msgstr ""
|
||||
"A <app>Szoftver</app> katalógusában található alkalmazások információval "
|
||||
"rendelkeznek az általuk tartalmazott tartalommal kapcsolatban, hogy melyek "
|
||||
"lehetnek bizonyos korosztályok számára nem megfelelőek – például az erőszak "
|
||||
"különböző formái, moderálatlan csevegés az interneten más emberekkel, vagy a "
|
||||
"pénzköltés lehetősége."
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:41
|
||||
msgid ""
|
||||
"For each application, this information is summarized as the minimum age "
|
||||
"child it is typically suitable to be used by — for example, “suitable for "
|
||||
"ages 7+”. These age ratings are presented in region-specific schemes which "
|
||||
"can be compared with the ratings schemes used for films and games."
|
||||
msgstr ""
|
||||
"Minden egyes alkalmazás esetében ez az információ összefoglalja, hogy az "
|
||||
"adott alkalmazás jellemzően legalább milyen korú gyermek számára alkalmas – "
|
||||
"például „7 év felettiek számára alkalmas”. Ezek a korhatár-besorolások régió-"
|
||||
"specifikus sémákban jelennek meg, amelyek összehasonlíthatók a filmek és "
|
||||
"játékok esetében használt besorolási sémákkal."
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:45
|
||||
msgid ""
|
||||
"The applications shown to a user in the <app>Software</app> catalog can be "
|
||||
"filtered by their age suitability. Applications which are not suitable for "
|
||||
"the user will be hidden, and will not be installable by that user. They will "
|
||||
"be installable by other users (if their age suitability is set high enough)."
|
||||
msgstr ""
|
||||
"A <app>Szoftver</app> katalógusában egy felhasználó számára megjelenített "
|
||||
"alkalmazások szűrhetők az életkori alkalmasságuk alapján. A felhasználó "
|
||||
"számára nem megfelelő alkalmazások el lesznek rejtve, és nem lesznek "
|
||||
"telepíthetők az adott felhasználó számára. Más felhasználók számára "
|
||||
"telepíthetők lesznek (ha az életkori alkalmasságuk elég magasra van állítva)."
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:51
|
||||
msgid ""
|
||||
"To filter the applications seen by a user in the <app>Software</app> catalog "
|
||||
"to only those suitable for a certain age:"
|
||||
msgstr ""
|
||||
"A <app>Szoftver</app> katalógusában egy felhasználó által látott "
|
||||
"alkalmazások szűréséhez, hogy csak egy bizonyos korosztály számára legyenek "
|
||||
"alkalmasak:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/software-installation.page:56
|
||||
msgid ""
|
||||
"In the <gui>Application Suitability</gui> list, select the age which "
|
||||
"applications should be suitable for."
|
||||
msgstr ""
|
||||
"Az <gui>Alkalmazás alkalmassága</gui> listából válassza ki azt az életkort, "
|
||||
"amelyre az alkalmazásoknak alkalmasnak kell lenniük."
|
||||
|
||||
#. (itstool) path: note/p
|
||||
#: C/software-installation.page:60
|
||||
msgid ""
|
||||
"The user’s actual age is not stored, so the <gui>Application Suitability</"
|
||||
"gui> is not automatically updated over time as the child grows older. You "
|
||||
"must periodically re-assess the appropriate <gui>Application Suitability</"
|
||||
"gui> for each user."
|
||||
msgstr ""
|
||||
"A felhasználó tényleges életkora nem kerül tárolásra, így az <gui>Alkalmazás "
|
||||
"alkalmassága</gui> nem frissül automatikusan az idő múlásával, ahogy a "
|
||||
"gyermek idősebbé válik. Rendszeresen újra kell értékelnie a megfelelő "
|
||||
"<gui>Alkalmazás alkalmassága</gui> értéket minden egyes felhasználónál."
|
|
@ -447,4 +447,4 @@ msgstr ""
|
|||
"Poiché l'età dell'utente non viene memorizzata, l' <gui>Idoneità dell'applicazione</"
|
||||
"gui> non viene aggiornata automaticamente man mano che il minore cresce. Si dovrebbe "
|
||||
"rivalutare periodicamente il livello appropriato di <gui>Idoneità dell'applicazione</"
|
||||
"</gui> per ciascuno degli account."
|
||||
"gui> per ciascuno degli account."
|
||||
|
|
|
@ -0,0 +1,435 @@
|
|||
# Russian translation for malcontent.
|
||||
# Copyright (C) 2022 malcontent's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the malcontent package.
|
||||
# Sergej A. <sw@atrus.ru>, 2022.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: malcontent main\n"
|
||||
"POT-Creation-Date: 2022-06-04 15:25+0000\n"
|
||||
"PO-Revision-Date: 2022-06-05 11:41+1000\n"
|
||||
"Last-Translator: Ser82-png <sw@atrus.ru>\n"
|
||||
"Language-Team: Russian <gnome-cyr@gnome.org>\n"
|
||||
"Language: ru\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
|
||||
#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
|
||||
msgctxt "_"
|
||||
msgid "translator-credits"
|
||||
msgstr "Ser82-png <sw@atrus.ru>, 2022"
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/creating-a-child-user.page:6
|
||||
msgid "Creating a child user on the computer."
|
||||
msgstr "Создание записи пользователя-ребёнка на компьютере."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/creating-a-child-user.page:9
|
||||
msgid "Creating a Child User"
|
||||
msgstr "Создание записи пользователя-ребёнка"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/creating-a-child-user.page:11
|
||||
msgid ""
|
||||
"Parental controls can only be applied to non-administrator accounts. Such an "
|
||||
"account may have been created when the computer was initially set up. If "
|
||||
"not, a new child user may be created from the <app>Parental Controls</app> "
|
||||
"application if no child users already exist; and otherwise may be created "
|
||||
"from the <app>Control Center</app>."
|
||||
msgstr ""
|
||||
"Родительский контроль можно применять только к учётным записям без "
|
||||
"административных прав. Такая учётная запись могла быть создана при "
|
||||
"первоначальной настройке системы. Если этого не было сделано, можно создать "
|
||||
"новую детскую учётную запись с помощью приложения <app>Родительский "
|
||||
"контроль</app>. Кроме того, такую учётную запись можно создать с помощью "
|
||||
"<app>Центра управления</app>."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/creating-a-child-user.page:17
|
||||
msgid ""
|
||||
"To create a new child user, see <link type=\"guide\" xref=\"help:gnome-help/"
|
||||
"user-add\">Add a new user account</link>. As soon as the new user is "
|
||||
"created, it will appear in the <app>Parental Controls</app> window so that "
|
||||
"its parental controls settings can be configured."
|
||||
msgstr ""
|
||||
"Чтобы создать нового пользователя ребёнка, смотрите <link type=\"guide\" "
|
||||
"xref=\"help:gnome-help/user-add\">Добавление новой учётной записи "
|
||||
"пользователя</link>. Как только новый пользователь будет создан, он появится "
|
||||
"в окне <app>Родительский контроль</app>, чтобы можно было для него настроить "
|
||||
"параметры родительского контроля."
|
||||
|
||||
#. (itstool) path: credit/name
|
||||
#: C/index.page:6
|
||||
msgid "Philip Withnall"
|
||||
msgstr "Philip Withnall"
|
||||
|
||||
#. (itstool) path: credit/years
|
||||
#: C/index.page:8
|
||||
msgid "2020"
|
||||
msgstr "2020"
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/index.page:12
|
||||
msgid "Parental Controls Help"
|
||||
msgstr "Справка по родительскому контролю"
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/index.page:15
|
||||
msgid "Introduction & Setup"
|
||||
msgstr "Введение & Настройка"
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/index.page:19
|
||||
msgid "Controls to Apply"
|
||||
msgstr "Средства контроля, которые можно применить"
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/internet.page:6
|
||||
msgid "Restricting a child user’s access to the internet."
|
||||
msgstr "Ограничение доступа ребёнка к интернету."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/internet.page:9
|
||||
msgid "Restricting Access to the Internet"
|
||||
msgstr "Ограничение доступа к интернету"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/internet.page:11
|
||||
msgid ""
|
||||
"You can restrict a user’s access to the internet. This will prevent them "
|
||||
"using a web browser, but it will not prevent them using the internet (in "
|
||||
"potentially more limited forms) through other applications. For example, it "
|
||||
"will not prevent access to e-mail accounts using <app>Evolution</app>, and "
|
||||
"it will not prevent software updates being downloaded and applied."
|
||||
msgstr ""
|
||||
"Вы можете ограничить доступ пользователя к интернету. Этим способом можно "
|
||||
"запретить пользователю использовать веб-браузер, но доступ к сети интернет "
|
||||
"будет сохранён (в потенциально более ограниченной форме) с помощью других "
|
||||
"приложений. Например, пользователь будет иметь доступ к учётным записям "
|
||||
"электронной почты с помощью <app>Evolution</app>, а также не будет "
|
||||
"ограничений для загрузки и обновления программного обеспечения."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/internet.page:17
|
||||
msgid "To restrict a user’s access to the internet:"
|
||||
msgstr "Чтобы ограничить доступ пользователя к интернету:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/internet.page:19 C/restricting-applications.page:20
|
||||
#: C/software-installation.page:28 C/software-installation.page:54
|
||||
msgid "Open the <app>Parental Controls</app> application."
|
||||
msgstr "Откройте приложение <app>Родительский контроль</app>."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/internet.page:20 C/restricting-applications.page:21
|
||||
#: C/software-installation.page:29 C/software-installation.page:55
|
||||
msgid "Select the user in the tabs at the top."
|
||||
msgstr "Выберите пользователя во вкладках верхней части окна."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/internet.page:21
|
||||
msgid ""
|
||||
"Enable the <gui style=\"checkbox\">Restrict Web Browsers</gui> checkbox."
|
||||
msgstr ""
|
||||
"Установите флажок <gui style=\"checkbox\">Ограничить доступ к Веб-браузерам</"
|
||||
"gui>."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/introduction.page:6
|
||||
msgid ""
|
||||
"Overview of parental controls, the <app>Parental Controls</app> application "
|
||||
"and its use in other situations where access restrictions are needed on a "
|
||||
"user."
|
||||
msgstr ""
|
||||
"Обзор родительского контроля, приложения <app>Родительский контроль</app> и "
|
||||
"его использования в различных ситуациях, когда необходимо ограничить доступ "
|
||||
"для пользователя."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/introduction.page:12
|
||||
msgid "Introduction to Parental Controls"
|
||||
msgstr "Введение в родительский контроль"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:14
|
||||
msgid ""
|
||||
"Parental controls are a way to restrict what non-administrator accounts can "
|
||||
"do on the computer, with the aim of allowing parents to restrict what their "
|
||||
"children can do when using the computer unsupervised or under limited "
|
||||
"supervision."
|
||||
msgstr ""
|
||||
"Родительский контроль — это способ ограничить перечень возможных действий на "
|
||||
"компьютере пользователям не имеющим учётных записей администратора. Целью "
|
||||
"является ограничение родителями действий детей при работе на компьютере, "
|
||||
"находящихся без присмотра или под ограниченным присмотром."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:18
|
||||
msgid ""
|
||||
"This functionality can be used in other situations – such as other carer/"
|
||||
"caree relationships – but is labelled as ‘parental controls’ so that it’s "
|
||||
"easy to find, as that’s what most people will be looking for."
|
||||
msgstr ""
|
||||
"Эту функцию также можно использовать и в других ситуациях, например, в "
|
||||
"отношениях «сиделка/пациент», но она помечена как «родительский контроль» "
|
||||
"только для удобства поиска, поскольку именно это будут искать большинство "
|
||||
"пользователей."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:21
|
||||
msgid ""
|
||||
"The parental controls for any user can be queried and set using the "
|
||||
"<app>Parental Controls</app> application. This lists the non-administrator "
|
||||
"accounts in tabs along its top bar, and shows their current parental "
|
||||
"controls settings below. Changes to the parental controls apply immediately."
|
||||
msgstr ""
|
||||
"Для любого пользователя можно просмотреть и установить родительский контроль "
|
||||
"с помощью приложения <app>Родительский контроль</app>. В окне программы на "
|
||||
"вкладках вдоль верхней панели перечислены учётные записи без прав "
|
||||
"администратора, а ниже показаны их текущие настройки родительского контроля. "
|
||||
"Изменения в родительском контроле вступают в силу немедленно."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:25
|
||||
msgid ""
|
||||
"Restrictions on using the computer can only be applied to non-administrator "
|
||||
"accounts. The parental controls settings for a user can only be changed by "
|
||||
"an administrator, although the administrator can do so from the user’s "
|
||||
"account by entering their password when prompted by the <app>Parental "
|
||||
"Controls</app> application."
|
||||
msgstr ""
|
||||
"Ограничения на использование компьютера могут применяться только к учётным "
|
||||
"записям без прав администратора. Настройки родительского контроля для "
|
||||
"пользователя может изменить только администратор, хотя он может сделать это "
|
||||
"из учётной записи пользователя, введя свой пароль при запросе приложения "
|
||||
"<app>Родительский контроль</app>."
|
||||
|
||||
#. (itstool) path: p/link
|
||||
#: C/legal.xml:4
|
||||
msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License"
|
||||
msgstr "Creative Commons Attribution-ShareAlike 3.0 Unported License"
|
||||
|
||||
#. (itstool) path: license/p
|
||||
#: C/legal.xml:3
|
||||
msgid "This work is licensed under a <_:link-1/>."
|
||||
msgstr "Данная работа находится под лицензией <_:link-1/>."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/restricting-applications.page:6
|
||||
msgid "Restricting a child user from running already-installed applications."
|
||||
msgstr "Запретить ребёнку запускать уже установленные приложения."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/restricting-applications.page:9
|
||||
msgid "Restricting Access to Installed Applications"
|
||||
msgstr "Ограничение доступа к установленным приложениям"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:11
|
||||
msgid ""
|
||||
"You can prevent a user from running specific applications which are already "
|
||||
"installed on the computer. This could be useful if other users need those "
|
||||
"applications but they are not appropriate for a child."
|
||||
msgstr ""
|
||||
"Вы можете запретить пользователю запускать определённые приложения, уже "
|
||||
"установленные на компьютере. Это может быть полезно, если эти приложения "
|
||||
"необходимы другим пользователям, но не подходят для ребёнка."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:14
|
||||
msgid ""
|
||||
"When installing additional software, you should consider whether that needs "
|
||||
"to be restricted for some users — newly installed software is usable by all "
|
||||
"users by default."
|
||||
msgstr ""
|
||||
"При установке дополнительного программного обеспечения вам следует "
|
||||
"учитывать, нужно ли ограничивать доступ для некоторых пользователей — новое "
|
||||
"установленное программное обеспечение по умолчанию может использоваться "
|
||||
"всеми пользователями."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:18
|
||||
msgid "To restrict a user’s access to a specific application:"
|
||||
msgstr "Чтобы ограничить доступ пользователя к определенному приложению:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/restricting-applications.page:22
|
||||
msgid "Press the <gui style=\"button\">Restrict Applications</gui> button."
|
||||
msgstr ""
|
||||
"Нажмите кнопку <gui style=\"button\">Ограничить доступ к приложениям</gui>."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/restricting-applications.page:23
|
||||
msgid ""
|
||||
"Enable the switch in the row for each application you would like to restrict "
|
||||
"the user from accessing."
|
||||
msgstr ""
|
||||
"Измените положение переключателя в строке для каждого приложения, к которому "
|
||||
"вы хотите ограничить доступ пользователя."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/restricting-applications.page:24
|
||||
msgid "Close the <gui>Restrict Applications</gui> window."
|
||||
msgstr "Закройте окно <gui>Ограничить доступ к приложениям</gui>."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:27
|
||||
msgid ""
|
||||
"Restricting access to specific applications is often used in conjunction "
|
||||
"with <link xref=\"software-installation\"/> to prevent a user from "
|
||||
"installing additional software which has not been vetted."
|
||||
msgstr ""
|
||||
"Ограничение доступа к определённым приложениям часто используется в "
|
||||
"сочетании с <link xref=\"software-installation\"/>, чтобы запретить "
|
||||
"пользователю устанавливать непроверенное программное обеспечение."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/software-installation.page:6
|
||||
msgid ""
|
||||
"Restricting the software a child user can install, or preventing them "
|
||||
"installing additional software entirely."
|
||||
msgstr ""
|
||||
"Ограничение перечная программного обеспечения, которое ребёнок может "
|
||||
"установить, или полный запрет на его установку."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/software-installation.page:9
|
||||
msgid "Restricting Software Installation"
|
||||
msgstr "Ограничения на установку программного обеспечения по возрасту"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/software-installation.page:11
|
||||
msgid ""
|
||||
"You can prevent a user from installing additional software on the system. "
|
||||
"They will still be able to search for new software to install, but will need "
|
||||
"an administrator to authorize the installation when they try to install an "
|
||||
"application. This applies whether they are trying to install the application "
|
||||
"system-wide (for all users) or just for themselves."
|
||||
msgstr ""
|
||||
"Вы можете запретить пользователям устанавливать дополнительное программное "
|
||||
"обеспечение. Хотя они по-прежнему смогут искать программное обеспечение для "
|
||||
"установки, но при попытке установить приложение им потребуется разрешение "
|
||||
"администратора. Это не зависит от того, пытаются ли установить приложение в "
|
||||
"масштабах всей системы (для всех пользователей) или только для себя."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/software-installation.page:17
|
||||
msgid ""
|
||||
"Additionally, you can restrict which software a user can browse or search "
|
||||
"for in the <app>Software</app> catalog by age categories."
|
||||
msgstr ""
|
||||
"Кроме того, вы можете ограничить по возрастному критерию, какое программное "
|
||||
"обеспечение пользователь может просматривать или искать в <app>Центре "
|
||||
"приложений</app>."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/software-installation.page:20
|
||||
msgid ""
|
||||
"To prevent a user from running an application which has already been "
|
||||
"installed, see <link xref=\"restricting-applications\"/>."
|
||||
msgstr ""
|
||||
"Чтобы запретить пользователю запускать уже установленное приложение, "
|
||||
"смотрите раздел <link xref=\"restricting-applications\"/>."
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/software-installation.page:24
|
||||
msgid "Preventing Software Installation"
|
||||
msgstr "Предотвращение установки программного обеспечения"
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:26
|
||||
msgid "To prevent a user from installing additional software:"
|
||||
msgstr ""
|
||||
"Чтобы запретить пользователю устанавливать дополнительное программное "
|
||||
"обеспечение:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/software-installation.page:30
|
||||
msgid ""
|
||||
"Enable the <gui style=\"checkbox\">Restrict Application Installation</gui> "
|
||||
"checkbox."
|
||||
msgstr ""
|
||||
"Установите флажок <gui style=\"checkbox\">Ограничить установку приложений</"
|
||||
"gui>."
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/software-installation.page:35
|
||||
msgid "Restricting Software Installation by Age"
|
||||
msgstr "Ограничения на установку программного обеспечения по возрасту"
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:37
|
||||
msgid ""
|
||||
"Applications in the <app>Software</app> catalog have information about "
|
||||
"content they contain which might be inappropriate for some ages — for "
|
||||
"example, various forms of violence, unmoderated chat with other people on "
|
||||
"the internet, or the possibility of spending money."
|
||||
msgstr ""
|
||||
"В описании к приложениям из каталога <app>Центра приложений</app> содержатся "
|
||||
"сведения, которые могут быть неприемлемыми для определённых возрастных групп "
|
||||
"— например, различные формы насилия, неограниченные возможности по общению с "
|
||||
"другими людьми в интернете или возможность расходовать деньги."
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:41
|
||||
msgid ""
|
||||
"For each application, this information is summarized as the minimum age "
|
||||
"child it is typically suitable to be used by — for example, “suitable for "
|
||||
"ages 7+”. These age ratings are presented in region-specific schemes which "
|
||||
"can be compared with the ratings schemes used for films and games."
|
||||
msgstr ""
|
||||
"Для каждого приложения в этих сведениях содержится информация о минимальном "
|
||||
"возрасте ребенка, с которого его можно допустить к использованию данного "
|
||||
"приложения. Например, «подходит для возраста 7+». Эти возрастные оценки "
|
||||
"представлены в виде специфических для региона схем, сопоставимых со схемами "
|
||||
"рейтингов для фильмов и видеоигр."
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:45
|
||||
msgid ""
|
||||
"The applications shown to a user in the <app>Software</app> catalog can be "
|
||||
"filtered by their age suitability. Applications which are not suitable for "
|
||||
"the user will be hidden, and will not be installable by that user. They will "
|
||||
"be installable by other users (if their age suitability is set high enough)."
|
||||
msgstr ""
|
||||
"Приложения, показанные в каталоге <app>Центра приложений</app>, могут быть "
|
||||
"отфильтрованы по возрастным критериям. Приложения, которые не подходят для "
|
||||
"конкретного пользователя, будут скрыты и не смогут быть установлены. Но для "
|
||||
"других пользователей они будут доступны (если пользователи будут "
|
||||
"соответствовать установленным возрастным критериям)."
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:51
|
||||
msgid ""
|
||||
"To filter the applications seen by a user in the <app>Software</app> catalog "
|
||||
"to only those suitable for a certain age:"
|
||||
msgstr ""
|
||||
"Чтобы отфильтровать приложения, представленные пользователю в каталоге "
|
||||
"<app>Центра приложений</app>, по возрастному критерию:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/software-installation.page:56
|
||||
msgid ""
|
||||
"In the <gui>Application Suitability</gui> list, select the age which "
|
||||
"applications should be suitable for."
|
||||
msgstr ""
|
||||
"В списке <gui>Пригодность приложений</gui> выберите возраст, для которого "
|
||||
"должны быть подходящими приложения."
|
||||
|
||||
#. (itstool) path: note/p
|
||||
#: C/software-installation.page:60
|
||||
msgid ""
|
||||
"The user’s actual age is not stored, so the <gui>Application Suitability</"
|
||||
"gui> is not automatically updated over time as the child grows older. You "
|
||||
"must periodically re-assess the appropriate <gui>Application Suitability</"
|
||||
"gui> for each user."
|
||||
msgstr ""
|
||||
"Возраст пользователя в системе не сохраняется, поэтому <gui>Пригодность "
|
||||
"приложений</gui> по мере взросления ребёнка автоматически не обновляется. Вы "
|
||||
"должны периодически пересматривать соответствующую для каждого пользователя "
|
||||
"<gui>Пригодность приложений</gui>."
|
|
@ -0,0 +1,427 @@
|
|||
# Turkish translation for malcontent.
|
||||
# Copyright (C) 2023 malcontent's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the malcontent package.
|
||||
#
|
||||
# Sabri Ünal <libreajans@gmail.com>, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: malcontent main\n"
|
||||
"POT-Creation-Date: 2023-03-08 15:25+0000\n"
|
||||
"PO-Revision-Date: 2023-03-09 03:38+0300\n"
|
||||
"Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
|
||||
"Language-Team: Turkish <tr@li.org>\n"
|
||||
"Language: tr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Poedit 3.1.1\n"
|
||||
|
||||
#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
|
||||
msgctxt "_"
|
||||
msgid "translator-credits"
|
||||
msgstr "Sabri Ünal <libreajans@gmail.com>, 2023."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/creating-a-child-user.page:6
|
||||
msgid "Creating a child user on the computer."
|
||||
msgstr "Bilgisayarda çocuk kullanıcı oluşturmak."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/creating-a-child-user.page:9
|
||||
msgid "Creating a Child User"
|
||||
msgstr "Çocuk Kullanıcı Oluşturmak"
|
||||
|
||||
# Control Center için ayarlar çevirisini kullanıyoruz. Burada eski adı kullanılmış.
|
||||
#. (itstool) path: page/p
|
||||
#: C/creating-a-child-user.page:11
|
||||
msgid ""
|
||||
"Parental controls can only be applied to non-administrator accounts. Such an "
|
||||
"account may have been created when the computer was initially set up. If "
|
||||
"not, a new child user may be created from the <app>Parental Controls</app> "
|
||||
"application if no child users already exist; and otherwise may be created "
|
||||
"from the <app>Control Center</app>."
|
||||
msgstr ""
|
||||
"Ebeveyn denetimleri yalnızca yönetici olmayan hesaplara uygulanabilir. Bu "
|
||||
"tip hesap, bilgisayar ilk kurulduğunda oluşturulmuş olabilir. Değilse, hiç "
|
||||
"çocuk kullanıcı yoksa, <app>Ebeveyn Denetimleri</app> uygulamasından yeni "
|
||||
"çocuk kullanıcı oluşturulabilir; aksi halde <app>Ayarlar</app>ʼdan "
|
||||
"oluşturulabilir."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/creating-a-child-user.page:17
|
||||
msgid ""
|
||||
"To create a new child user, see <link type=\"guide\" xref=\"help:gnome-help/"
|
||||
"user-add\">Add a new user account</link>. As soon as the new user is "
|
||||
"created, it will appear in the <app>Parental Controls</app> window so that "
|
||||
"its parental controls settings can be configured."
|
||||
msgstr ""
|
||||
"Yeni çocuk kullanıcı oluşturmak için <link type=\"guide\" xref=\"help:gnome-"
|
||||
"help/user-add\">Yeni kullanıcı hesabı ekle</link>ʼye bakın. Yeni kullanıcı "
|
||||
"oluşturulunca, ebeveyn denetimleri ayarlarının yapılandırılabilmesi için "
|
||||
"<app>Ebeveyn Denetimleri</app> penceresi görünecektir."
|
||||
|
||||
#. (itstool) path: credit/name
|
||||
#: C/index.page:6
|
||||
msgid "Philip Withnall"
|
||||
msgstr "Philip Withnall"
|
||||
|
||||
#. (itstool) path: credit/years
|
||||
#: C/index.page:8
|
||||
msgid "2020"
|
||||
msgstr "2020"
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/index.page:12
|
||||
msgid "Parental Controls Help"
|
||||
msgstr "Ebeveyn Denetimleri Yardım"
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/index.page:15
|
||||
msgid "Introduction & Setup"
|
||||
msgstr "Giriş ve Kurulum"
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/index.page:19
|
||||
msgid "Controls to Apply"
|
||||
msgstr "Uygulanacak Denetimler"
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/internet.page:6
|
||||
msgid "Restricting a child user’s access to the internet."
|
||||
msgstr "Çocuk kullanıcının internete erişimini kısıtlamak."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/internet.page:9
|
||||
msgid "Restricting Access to the Internet"
|
||||
msgstr "İnternet Erişimini Kısıtlama"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/internet.page:11
|
||||
msgid ""
|
||||
"You can restrict a user’s access to the internet. This will prevent them "
|
||||
"using a web browser, but it will not prevent them using the internet (in "
|
||||
"potentially more limited forms) through other applications. For example, it "
|
||||
"will not prevent access to e-mail accounts using <app>Evolution</app>, and "
|
||||
"it will not prevent software updates being downloaded and applied."
|
||||
msgstr ""
|
||||
"Kullanıcının internete erişimini kısıtlayabilirsiniz. Bu, web tarayıcısı "
|
||||
"kullanmalarını engelleyecektir, ancak diğer uygulamalar aracılığıyla "
|
||||
"(muhtemelen daha sınırlı biçimlerde) interneti kullanmalarını "
|
||||
"engellemeyecektir. Örneğin, <app>Evolution</app> kullanarak e-posta "
|
||||
"hesaplarına erişimi engellemez ve yazılım güncellemelerinin indirilip "
|
||||
"uygulanmasını engellemez."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/internet.page:17
|
||||
msgid "To restrict a user’s access to the internet:"
|
||||
msgstr "Kullanıcının internet erişimini kısıtlamak için:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/internet.page:19 C/restricting-applications.page:20
|
||||
#: C/software-installation.page:28 C/software-installation.page:54
|
||||
msgid "Open the <app>Parental Controls</app> application."
|
||||
msgstr "<app>Ebeveyn Denetimleri</app> uygulamasını açın."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/internet.page:20 C/restricting-applications.page:21
|
||||
#: C/software-installation.page:29 C/software-installation.page:55
|
||||
msgid "Select the user in the tabs at the top."
|
||||
msgstr "Üstteki sekmelerde kullanıcıyı seçin."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/internet.page:21
|
||||
msgid ""
|
||||
"Enable the <gui style=\"checkbox\">Restrict Web Browsers</gui> checkbox."
|
||||
msgstr ""
|
||||
"<gui style=\"checkbox\">Web Tarayıcılarını Kısıtla</gui> onay kutusunu "
|
||||
"etkinleştirin."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/introduction.page:6
|
||||
msgid ""
|
||||
"Overview of parental controls, the <app>Parental Controls</app> application "
|
||||
"and its use in other situations where access restrictions are needed on a "
|
||||
"user."
|
||||
msgstr ""
|
||||
"Ebeveyn denetimlerine, <app>Ebeveyn Denetimleri</app> uygulamasına ve "
|
||||
"kullanıcı için erişim kısıtlamalarının gereksinildiği diğer durumlarda "
|
||||
"kullanımına genel bakış."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/introduction.page:12
|
||||
msgid "Introduction to Parental Controls"
|
||||
msgstr "Ebeveyn Denetimleriʼne Giriş"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:14
|
||||
msgid ""
|
||||
"Parental controls are a way to restrict what non-administrator accounts can "
|
||||
"do on the computer, with the aim of allowing parents to restrict what their "
|
||||
"children can do when using the computer unsupervised or under limited "
|
||||
"supervision."
|
||||
msgstr ""
|
||||
"Ebeveyn denetimleri, bilgisayarda yönetici hesabı olmayan hesapların ne "
|
||||
"yapabileceğini sınırlamanın bir yoludur. Amacı, ebeveynlerin çocukları "
|
||||
"bilgisayarı gözetimsiz veya sınırlı gözetim altında kullandıklarında ne "
|
||||
"yapabileceklerini sınırlamalarını sağlamaktır."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:18
|
||||
msgid ""
|
||||
"This functionality can be used in other situations – such as other carer/"
|
||||
"caree relationships – but is labelled as ‘parental controls’ so that it’s "
|
||||
"easy to find, as that’s what most people will be looking for."
|
||||
msgstr ""
|
||||
"Bu işlevsellik diğer bakıcı/bakılan ilişkileri gibi diğer durumlarda da "
|
||||
"kullanılabilir, ancak çoğu insanın ‘ebeveyn denetimleri’ olarak arayacağı "
|
||||
"varsayılarak, bulması kolay olsun diye bu şekilde adlandırılmıştır."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:21
|
||||
msgid ""
|
||||
"The parental controls for any user can be queried and set using the "
|
||||
"<app>Parental Controls</app> application. This lists the non-administrator "
|
||||
"accounts in tabs along its top bar, and shows their current parental "
|
||||
"controls settings below. Changes to the parental controls apply immediately."
|
||||
msgstr ""
|
||||
"Herhangi bir kullanıcı için ebeveyn denetimleri, <app>Ebeveyn Denetimleri</"
|
||||
"app> uygulaması kullanılarak sorgulanabilir ve ayarlanabilir. Bu, yönetici "
|
||||
"olmayan hesapları üst çubuğundaki sekmelerde listeler ve altında geçerli "
|
||||
"ebeveyn denetimleri ayarlarını gösterir. Ebeveyn denetimlerinde yapılan "
|
||||
"değişiklikler hemen uygulanır."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/introduction.page:25
|
||||
msgid ""
|
||||
"Restrictions on using the computer can only be applied to non-administrator "
|
||||
"accounts. The parental controls settings for a user can only be changed by "
|
||||
"an administrator, although the administrator can do so from the user’s "
|
||||
"account by entering their password when prompted by the <app>Parental "
|
||||
"Controls</app> application."
|
||||
msgstr ""
|
||||
"Bilgisayar kullanımıyla ilgili kısıtlamalar yalnızca yönetici olmayan "
|
||||
"hesaplara uygulanabilir. Bir kullanıcının ebeveyn denetimleri ayarları "
|
||||
"yalnızca bir yönetici tarafından değiştirilebilir, ancak yönetici "
|
||||
"<app>Ebeveyn Denetimleri</app> uygulaması tarafından istendiğinde parolasını "
|
||||
"girerek kullanıcının hesabından bunu yapabilir."
|
||||
|
||||
#. (itstool) path: p/link
|
||||
#: C/legal.xml:4
|
||||
msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License"
|
||||
msgstr "Creative Commons Attribution-ShareAlike 3.0 Unported License"
|
||||
|
||||
#. (itstool) path: license/p
|
||||
#: C/legal.xml:3
|
||||
msgid "This work is licensed under a <_:link-1/>."
|
||||
msgstr "Bu çalışma <_:link-1/> altında lisanslanmıştır."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/restricting-applications.page:6
|
||||
msgid "Restricting a child user from running already-installed applications."
|
||||
msgstr ""
|
||||
"Çocuk kullanıcının zaten kurulmuş uygulamaları çalıştırmasını kısıtlama."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/restricting-applications.page:9
|
||||
msgid "Restricting Access to Installed Applications"
|
||||
msgstr "Kurulu Uygulamalara Erişimi Kısıtlama"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:11
|
||||
msgid ""
|
||||
"You can prevent a user from running specific applications which are already "
|
||||
"installed on the computer. This could be useful if other users need those "
|
||||
"applications but they are not appropriate for a child."
|
||||
msgstr ""
|
||||
"Kullanıcının zaten bilgisayarda kurulu olan belirli uygulamaları "
|
||||
"çalıştırmasını engelleyebilirsiniz. Bu, diğer kullanıcıların bu uygulamalara "
|
||||
"ihtiyacı varsa ancak çocuk için uygun değilse faydalı olabilir."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:14
|
||||
msgid ""
|
||||
"When installing additional software, you should consider whether that needs "
|
||||
"to be restricted for some users — newly installed software is usable by all "
|
||||
"users by default."
|
||||
msgstr ""
|
||||
"Ek yazılım kurarken, bunun bazı kullanıcılar için kısıtlanması gerekip "
|
||||
"gerekmediğini değerlendirmelisiniz. Yeni kurulan yazılımlar öntanımlı olarak "
|
||||
"tüm kullanıcılar tarafından kullanılabilir."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:18
|
||||
msgid "To restrict a user’s access to a specific application:"
|
||||
msgstr "Bir kullanıcının belirli bir uygulamaya erişimini kısıtlamak için:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/restricting-applications.page:22
|
||||
msgid "Press the <gui style=\"button\">Restrict Applications</gui> button."
|
||||
msgstr "<gui style=\"button\">Uygulamaları Kısıtla</gui> düğmesine basın."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/restricting-applications.page:23
|
||||
msgid ""
|
||||
"Enable the switch in the row for each application you would like to restrict "
|
||||
"the user from accessing."
|
||||
msgstr ""
|
||||
"Kullanıcının erişimini kısıtlamak istediğiniz her uygulamanın anahtarını "
|
||||
"etkinleştirin."
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/restricting-applications.page:24
|
||||
msgid "Close the <gui>Restrict Applications</gui> window."
|
||||
msgstr "<gui style=\"button\">Uygulamaları Kısıtla</gui> benceresini kapatın."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/restricting-applications.page:27
|
||||
msgid ""
|
||||
"Restricting access to specific applications is often used in conjunction "
|
||||
"with <link xref=\"software-installation\"/> to prevent a user from "
|
||||
"installing additional software which has not been vetted."
|
||||
msgstr ""
|
||||
"Belirli uygulamalara erişimin kısıtlanması, kullanıcının incelenmemiş ek "
|
||||
"yazılımlar kurmasını önlemek için genellikle <link xref=\"software-"
|
||||
"installation\"/> ile birlikte kullanılır."
|
||||
|
||||
#. (itstool) path: info/desc
|
||||
#: C/software-installation.page:6
|
||||
msgid ""
|
||||
"Restricting the software a child user can install, or preventing them "
|
||||
"installing additional software entirely."
|
||||
msgstr ""
|
||||
"Çocuk kullanıcının kurabileceği yazılımı kısıtlamak ya da ek yazılım "
|
||||
"kurmasını tamamen engellemek."
|
||||
|
||||
#. (itstool) path: page/title
|
||||
#: C/software-installation.page:9
|
||||
msgid "Restricting Software Installation"
|
||||
msgstr "Yazılım Kurulumunu Kısıtlama"
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/software-installation.page:11
|
||||
msgid ""
|
||||
"You can prevent a user from installing additional software on the system. "
|
||||
"They will still be able to search for new software to install, but will need "
|
||||
"an administrator to authorize the installation when they try to install an "
|
||||
"application. This applies whether they are trying to install the application "
|
||||
"system-wide (for all users) or just for themselves."
|
||||
msgstr ""
|
||||
"Kullanıcının sisteme ek yazılım kurmasını engelleyebilirsiniz. Yine de "
|
||||
"kurulum için yeni yazılım arayabilecekler, ancak uygulama kurmaya "
|
||||
"çalıştıklarında kurulumu yetkilendirmek için yöneticiye ihtiyaçları olacak. "
|
||||
"Bu, uygulamayı sistem geneline (tüm kullanıcılar için) ya da yalnızca "
|
||||
"kendileri için kurmaya çalışsalar da geçerlidir."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/software-installation.page:17
|
||||
msgid ""
|
||||
"Additionally, you can restrict which software a user can browse or search "
|
||||
"for in the <app>Software</app> catalog by age categories."
|
||||
msgstr ""
|
||||
"Ayrıca, kullanıcının <app>Yazılımlar</app> kataloğunda hangi yazılımlara göz "
|
||||
"atabileceğini ya da arayabileceğini yaş kategorilerine göre "
|
||||
"sınırlayabilirsiniz."
|
||||
|
||||
#. (itstool) path: page/p
|
||||
#: C/software-installation.page:20
|
||||
msgid ""
|
||||
"To prevent a user from running an application which has already been "
|
||||
"installed, see <link xref=\"restricting-applications\"/>."
|
||||
msgstr ""
|
||||
"Bir kullanıcının zaten kurulu bir uygulamayı çalıştırmasını engellemek için "
|
||||
"bkz. <link xref=\"restricting-applications\"/>."
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/software-installation.page:24
|
||||
msgid "Preventing Software Installation"
|
||||
msgstr "Yazılım Kurulumunu Engelleme"
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:26
|
||||
msgid "To prevent a user from installing additional software:"
|
||||
msgstr "Kullanıcının ek yazılım kurmasını engellemek için:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/software-installation.page:30
|
||||
msgid ""
|
||||
"Enable the <gui style=\"checkbox\">Restrict Application Installation</gui> "
|
||||
"checkbox."
|
||||
msgstr ""
|
||||
"<gui style=\"checkbox\">Uygulama Kurulumunu Kısıtla</gui> onay kutusunu "
|
||||
"etkinleştirin."
|
||||
|
||||
#. (itstool) path: section/title
|
||||
#: C/software-installation.page:35
|
||||
msgid "Restricting Software Installation by Age"
|
||||
msgstr "Yazılım Kurulumunu Yaşa Göre Kısıtlama"
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:37
|
||||
msgid ""
|
||||
"Applications in the <app>Software</app> catalog have information about "
|
||||
"content they contain which might be inappropriate for some ages — for "
|
||||
"example, various forms of violence, unmoderated chat with other people on "
|
||||
"the internet, or the possibility of spending money."
|
||||
msgstr ""
|
||||
"<app>Yazılımlar</app> kataloğundaki uygulamalar, kimi yaş grupları için "
|
||||
"uygun olmayabilecek içerikleri hakkında bilgiler içerir - örneğin, çeşitli "
|
||||
"şiddet türleri, internet üzerinden diğer kişilerle denetlenmeyen sohbet, ya "
|
||||
"da para harcama olasılığı gibi."
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:41
|
||||
msgid ""
|
||||
"For each application, this information is summarized as the minimum age "
|
||||
"child it is typically suitable to be used by — for example, “suitable for "
|
||||
"ages 7+”. These age ratings are presented in region-specific schemes which "
|
||||
"can be compared with the ratings schemes used for films and games."
|
||||
msgstr ""
|
||||
"Her uygulama için, bu bilgi genellikle kullanımı için uygun en düşük yaş "
|
||||
"grubu olarak özetlenir - örneğin, \"7 yaş ve üzeri için uygun\". Bu yaş "
|
||||
"derecelendirmeleri, filmler ve oyunlar için kullanılan derecelendirme "
|
||||
"şemaları ile karşılaştırılabilen bölgesel şemalarda sunulur."
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:45
|
||||
msgid ""
|
||||
"The applications shown to a user in the <app>Software</app> catalog can be "
|
||||
"filtered by their age suitability. Applications which are not suitable for "
|
||||
"the user will be hidden, and will not be installable by that user. They will "
|
||||
"be installable by other users (if their age suitability is set high enough)."
|
||||
msgstr ""
|
||||
"<app>Yazılımlar</app> kataloğunda kullanıcıya gösterilen uygulamalar, yaş "
|
||||
"uygunluğuna göre süzülerek gösterilebilir. Kullanıcı için uygun olmayan "
|
||||
"uygulamalar gizlenir ve kullanıcı tarafından kurulamaz. Bu uygulamalar, yaş "
|
||||
"uygunluğu yeterince yüksek olan diğer kullanıcılarca kurulabilir."
|
||||
|
||||
#. (itstool) path: section/p
|
||||
#: C/software-installation.page:51
|
||||
msgid ""
|
||||
"To filter the applications seen by a user in the <app>Software</app> catalog "
|
||||
"to only those suitable for a certain age:"
|
||||
msgstr ""
|
||||
"Kullanıcının <app>Yazılımlar</app> kataloğunda gördüğü uygulamaları yalnızca "
|
||||
"belirli yaşa uygun olacak şekilde süzmek için:"
|
||||
|
||||
#. (itstool) path: item/p
|
||||
#: C/software-installation.page:56
|
||||
msgid ""
|
||||
"In the <gui>Application Suitability</gui> list, select the age which "
|
||||
"applications should be suitable for."
|
||||
msgstr ""
|
||||
"<gui>Uygulama Uygunluğu</gui> listesinde, uygulamaların hangi yaş için uygun "
|
||||
"olduğunu seçin."
|
||||
|
||||
#. (itstool) path: note/p
|
||||
#: C/software-installation.page:60
|
||||
msgid ""
|
||||
"The user’s actual age is not stored, so the <gui>Application Suitability</"
|
||||
"gui> is not automatically updated over time as the child grows older. You "
|
||||
"must periodically re-assess the appropriate <gui>Application Suitability</"
|
||||
"gui> for each user."
|
||||
msgstr ""
|
||||
"Kullanıcının gerçek yaşı depolanmadığı için, <gui>Uygulama Uygunluğu</gui> "
|
||||
"çocuk büyüdükçe zamanla kendiliğinden güncellenmez. <gui>Uygulama Uygunluğu</"
|
||||
"gui> her kullanıcı için düzenli olarak yeniden belirlenmelidir."
|
|
@ -1,610 +0,0 @@
|
|||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
|
||||
*
|
||||
* Copyright (C) 2015-2016 Richard Hughes <richard@hughsie.com>
|
||||
*
|
||||
* Licensed under the GNU General Public License Version 2
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <appstream-glib.h>
|
||||
#include <glib/gi18n-lib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "gs-content-rating.h"
|
||||
|
||||
#if !AS_CHECK_VERSION(0, 7, 18)
|
||||
const gchar *
|
||||
gs_content_rating_system_to_str (GsContentRatingSystem system)
|
||||
{
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_INCAA)
|
||||
return "INCAA";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_ACB)
|
||||
return "ACB";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_DJCTQ)
|
||||
return "DJCTQ";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_GSRR)
|
||||
return "GSRR";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_PEGI)
|
||||
return "PEGI";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_KAVI)
|
||||
return "KAVI";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_USK)
|
||||
return "USK";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_ESRA)
|
||||
return "ESRA";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_CERO)
|
||||
return "CERO";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_OFLCNZ)
|
||||
return "OFLCNZ";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_RUSSIA)
|
||||
return "RUSSIA";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_MDA)
|
||||
return "MDA";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_GRAC)
|
||||
return "GRAC";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_ESRB)
|
||||
return "ESRB";
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_IARC)
|
||||
return "IARC";
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* data obtained from https://en.wikipedia.org/wiki/Video_game_rating_system */
|
||||
static char *
|
||||
get_esrb_string (const gchar *source, const gchar *translate)
|
||||
{
|
||||
if (g_strcmp0 (source, translate) == 0)
|
||||
return g_strdup (source);
|
||||
/* TRANSLATORS: This is the formatting of English and localized name
|
||||
of the rating e.g. "Adults Only (solo adultos)" */
|
||||
return g_strdup_printf (_("%s (%s)"), source, translate);
|
||||
}
|
||||
|
||||
/* data obtained from https://en.wikipedia.org/wiki/Video_game_rating_system */
|
||||
gchar *
|
||||
gs_utils_content_rating_age_to_str (GsContentRatingSystem system, guint age)
|
||||
{
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_INCAA) {
|
||||
if (age >= 18)
|
||||
return g_strdup ("+18");
|
||||
if (age >= 13)
|
||||
return g_strdup ("+13");
|
||||
return g_strdup ("ATP");
|
||||
}
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_ACB) {
|
||||
if (age >= 18)
|
||||
return g_strdup ("R18+");
|
||||
if (age >= 15)
|
||||
return g_strdup ("MA15+");
|
||||
return g_strdup ("PG");
|
||||
}
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_DJCTQ) {
|
||||
if (age >= 18)
|
||||
return g_strdup ("18");
|
||||
if (age >= 16)
|
||||
return g_strdup ("16");
|
||||
if (age >= 14)
|
||||
return g_strdup ("14");
|
||||
if (age >= 12)
|
||||
return g_strdup ("12");
|
||||
if (age >= 10)
|
||||
return g_strdup ("10");
|
||||
return g_strdup ("L");
|
||||
}
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_GSRR) {
|
||||
if (age >= 18)
|
||||
return g_strdup ("限制");
|
||||
if (age >= 15)
|
||||
return g_strdup ("輔15");
|
||||
if (age >= 12)
|
||||
return g_strdup ("輔12");
|
||||
if (age >= 6)
|
||||
return g_strdup ("保護");
|
||||
return g_strdup ("普通");
|
||||
}
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_PEGI) {
|
||||
if (age >= 18)
|
||||
return g_strdup ("18");
|
||||
if (age >= 16)
|
||||
return g_strdup ("16");
|
||||
if (age >= 12)
|
||||
return g_strdup ("12");
|
||||
if (age >= 7)
|
||||
return g_strdup ("7");
|
||||
if (age >= 3)
|
||||
return g_strdup ("3");
|
||||
return NULL;
|
||||
}
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_KAVI) {
|
||||
if (age >= 18)
|
||||
return g_strdup ("18+");
|
||||
if (age >= 16)
|
||||
return g_strdup ("16+");
|
||||
if (age >= 12)
|
||||
return g_strdup ("12+");
|
||||
if (age >= 7)
|
||||
return g_strdup ("7+");
|
||||
if (age >= 3)
|
||||
return g_strdup ("3+");
|
||||
return NULL;
|
||||
}
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_USK) {
|
||||
if (age >= 18)
|
||||
return g_strdup ("18");
|
||||
if (age >= 16)
|
||||
return g_strdup ("16");
|
||||
if (age >= 12)
|
||||
return g_strdup ("12");
|
||||
if (age >= 6)
|
||||
return g_strdup ("6");
|
||||
return g_strdup ("0");
|
||||
}
|
||||
/* Reference: http://www.esra.org.ir/ */
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_ESRA) {
|
||||
if (age >= 18)
|
||||
return g_strdup ("+18");
|
||||
if (age >= 15)
|
||||
return g_strdup ("+15");
|
||||
if (age >= 12)
|
||||
return g_strdup ("+12");
|
||||
if (age >= 7)
|
||||
return g_strdup ("+7");
|
||||
if (age >= 3)
|
||||
return g_strdup ("+3");
|
||||
return NULL;
|
||||
}
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_CERO) {
|
||||
if (age >= 18)
|
||||
return g_strdup ("Z");
|
||||
if (age >= 17)
|
||||
return g_strdup ("D");
|
||||
if (age >= 15)
|
||||
return g_strdup ("C");
|
||||
if (age >= 12)
|
||||
return g_strdup ("B");
|
||||
return g_strdup ("A");
|
||||
}
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_OFLCNZ) {
|
||||
if (age >= 18)
|
||||
return g_strdup ("R18");
|
||||
if (age >= 16)
|
||||
return g_strdup ("R16");
|
||||
if (age >= 15)
|
||||
return g_strdup ("R15");
|
||||
if (age >= 13)
|
||||
return g_strdup ("R13");
|
||||
return g_strdup ("G");
|
||||
}
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_RUSSIA) {
|
||||
if (age >= 18)
|
||||
return g_strdup ("18+");
|
||||
if (age >= 16)
|
||||
return g_strdup ("16+");
|
||||
if (age >= 12)
|
||||
return g_strdup ("12+");
|
||||
if (age >= 6)
|
||||
return g_strdup ("6+");
|
||||
return g_strdup ("0+");
|
||||
}
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_MDA) {
|
||||
if (age >= 18)
|
||||
return g_strdup ("M18");
|
||||
if (age >= 16)
|
||||
return g_strdup ("ADV");
|
||||
return get_esrb_string ("General", _("General"));
|
||||
}
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_GRAC) {
|
||||
if (age >= 18)
|
||||
return g_strdup ("18");
|
||||
if (age >= 15)
|
||||
return g_strdup ("15");
|
||||
if (age >= 12)
|
||||
return g_strdup ("12");
|
||||
return get_esrb_string ("ALL", _("ALL"));
|
||||
}
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_ESRB) {
|
||||
if (age >= 18)
|
||||
return get_esrb_string ("Adults Only", _("Adults Only"));
|
||||
if (age >= 17)
|
||||
return get_esrb_string ("Mature", _("Mature"));
|
||||
if (age >= 13)
|
||||
return get_esrb_string ("Teen", _("Teen"));
|
||||
if (age >= 10)
|
||||
return get_esrb_string ("Everyone 10+", _("Everyone 10+"));
|
||||
if (age >= 6)
|
||||
return get_esrb_string ("Everyone", _("Everyone"));
|
||||
|
||||
return get_esrb_string ("Early Childhood", _("Early Childhood"));
|
||||
}
|
||||
/* IARC = everything else */
|
||||
if (age >= 18)
|
||||
return g_strdup ("18+");
|
||||
if (age >= 16)
|
||||
return g_strdup ("16+");
|
||||
if (age >= 12)
|
||||
return g_strdup ("12+");
|
||||
if (age >= 7)
|
||||
return g_strdup ("7+");
|
||||
if (age >= 3)
|
||||
return g_strdup ("3+");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* parse_locale:
|
||||
* @locale: (transfer full): a locale to parse
|
||||
* @language_out: (out) (optional) (nullable): return location for the parsed
|
||||
* language, or %NULL to ignore
|
||||
* @territory_out: (out) (optional) (nullable): return location for the parsed
|
||||
* territory, or %NULL to ignore
|
||||
* @codeset_out: (out) (optional) (nullable): return location for the parsed
|
||||
* codeset, or %NULL to ignore
|
||||
* @modifier_out: (out) (optional) (nullable): return location for the parsed
|
||||
* modifier, or %NULL to ignore
|
||||
*
|
||||
* Parse @locale as a locale string of the form
|
||||
* `language[_territory][.codeset][@modifier]` — see `man 3 setlocale` for
|
||||
* details.
|
||||
*
|
||||
* On success, %TRUE will be returned, and the components of the locale will be
|
||||
* returned in the given addresses, with each component not including any
|
||||
* separators. Otherwise, %FALSE will be returned and the components will be set
|
||||
* to %NULL.
|
||||
*
|
||||
* @locale is modified, and any returned non-%NULL pointers will point inside
|
||||
* it.
|
||||
*
|
||||
* Returns: %TRUE on success, %FALSE otherwise
|
||||
*/
|
||||
static gboolean
|
||||
parse_locale (gchar *locale /* (transfer full) */,
|
||||
const gchar **language_out,
|
||||
const gchar **territory_out,
|
||||
const gchar **codeset_out,
|
||||
const gchar **modifier_out)
|
||||
{
|
||||
gchar *separator;
|
||||
const gchar *language = NULL, *territory = NULL, *codeset = NULL, *modifier = NULL;
|
||||
|
||||
separator = strrchr (locale, '@');
|
||||
if (separator != NULL) {
|
||||
modifier = separator + 1;
|
||||
*separator = '\0';
|
||||
}
|
||||
|
||||
separator = strrchr (locale, '.');
|
||||
if (separator != NULL) {
|
||||
codeset = separator + 1;
|
||||
*separator = '\0';
|
||||
}
|
||||
|
||||
separator = strrchr (locale, '_');
|
||||
if (separator != NULL) {
|
||||
territory = separator + 1;
|
||||
*separator = '\0';
|
||||
}
|
||||
|
||||
language = locale;
|
||||
|
||||
/* Parse failure? */
|
||||
if (*language == '\0') {
|
||||
language = NULL;
|
||||
territory = NULL;
|
||||
codeset = NULL;
|
||||
modifier = NULL;
|
||||
}
|
||||
|
||||
if (language_out != NULL)
|
||||
*language_out = language;
|
||||
if (territory_out != NULL)
|
||||
*territory_out = territory;
|
||||
if (codeset_out != NULL)
|
||||
*codeset_out = codeset;
|
||||
if (modifier_out != NULL)
|
||||
*modifier_out = modifier;
|
||||
|
||||
return (language != NULL);
|
||||
}
|
||||
|
||||
/* data obtained from https://en.wikipedia.org/wiki/Video_game_rating_system */
|
||||
GsContentRatingSystem
|
||||
gs_utils_content_rating_system_from_locale (const gchar *locale)
|
||||
{
|
||||
g_autofree gchar *locale_copy = g_strdup (locale);
|
||||
const gchar *territory;
|
||||
|
||||
/* Default to IARC for locales which can’t be parsed. */
|
||||
if (!parse_locale (locale_copy, NULL, &territory, NULL, NULL))
|
||||
return GS_CONTENT_RATING_SYSTEM_IARC;
|
||||
|
||||
/* Argentina */
|
||||
if (g_strcmp0 (territory, "AR") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_INCAA;
|
||||
|
||||
/* Australia */
|
||||
if (g_strcmp0 (territory, "AU") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_ACB;
|
||||
|
||||
/* Brazil */
|
||||
if (g_strcmp0 (territory, "BR") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_DJCTQ;
|
||||
|
||||
/* Taiwan */
|
||||
if (g_strcmp0 (territory, "TW") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_GSRR;
|
||||
|
||||
/* Europe (but not Finland or Germany), India, Israel,
|
||||
* Pakistan, Quebec, South Africa */
|
||||
if ((g_strcmp0 (territory, "GB") == 0) ||
|
||||
g_strcmp0 (territory, "AL") == 0 ||
|
||||
g_strcmp0 (territory, "AD") == 0 ||
|
||||
g_strcmp0 (territory, "AM") == 0 ||
|
||||
g_strcmp0 (territory, "AT") == 0 ||
|
||||
g_strcmp0 (territory, "AZ") == 0 ||
|
||||
g_strcmp0 (territory, "BY") == 0 ||
|
||||
g_strcmp0 (territory, "BE") == 0 ||
|
||||
g_strcmp0 (territory, "BA") == 0 ||
|
||||
g_strcmp0 (territory, "BG") == 0 ||
|
||||
g_strcmp0 (territory, "HR") == 0 ||
|
||||
g_strcmp0 (territory, "CY") == 0 ||
|
||||
g_strcmp0 (territory, "CZ") == 0 ||
|
||||
g_strcmp0 (territory, "DK") == 0 ||
|
||||
g_strcmp0 (territory, "EE") == 0 ||
|
||||
g_strcmp0 (territory, "FR") == 0 ||
|
||||
g_strcmp0 (territory, "GE") == 0 ||
|
||||
g_strcmp0 (territory, "GR") == 0 ||
|
||||
g_strcmp0 (territory, "HU") == 0 ||
|
||||
g_strcmp0 (territory, "IS") == 0 ||
|
||||
g_strcmp0 (territory, "IT") == 0 ||
|
||||
g_strcmp0 (territory, "LZ") == 0 ||
|
||||
g_strcmp0 (territory, "XK") == 0 ||
|
||||
g_strcmp0 (territory, "LV") == 0 ||
|
||||
g_strcmp0 (territory, "FL") == 0 ||
|
||||
g_strcmp0 (territory, "LU") == 0 ||
|
||||
g_strcmp0 (territory, "LT") == 0 ||
|
||||
g_strcmp0 (territory, "MK") == 0 ||
|
||||
g_strcmp0 (territory, "MT") == 0 ||
|
||||
g_strcmp0 (territory, "MD") == 0 ||
|
||||
g_strcmp0 (territory, "MC") == 0 ||
|
||||
g_strcmp0 (territory, "ME") == 0 ||
|
||||
g_strcmp0 (territory, "NL") == 0 ||
|
||||
g_strcmp0 (territory, "NO") == 0 ||
|
||||
g_strcmp0 (territory, "PL") == 0 ||
|
||||
g_strcmp0 (territory, "PT") == 0 ||
|
||||
g_strcmp0 (territory, "RO") == 0 ||
|
||||
g_strcmp0 (territory, "SM") == 0 ||
|
||||
g_strcmp0 (territory, "RS") == 0 ||
|
||||
g_strcmp0 (territory, "SK") == 0 ||
|
||||
g_strcmp0 (territory, "SI") == 0 ||
|
||||
g_strcmp0 (territory, "ES") == 0 ||
|
||||
g_strcmp0 (territory, "SE") == 0 ||
|
||||
g_strcmp0 (territory, "CH") == 0 ||
|
||||
g_strcmp0 (territory, "TR") == 0 ||
|
||||
g_strcmp0 (territory, "UA") == 0 ||
|
||||
g_strcmp0 (territory, "VA") == 0 ||
|
||||
g_strcmp0 (territory, "IN") == 0 ||
|
||||
g_strcmp0 (territory, "IL") == 0 ||
|
||||
g_strcmp0 (territory, "PK") == 0 ||
|
||||
g_strcmp0 (territory, "ZA") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_PEGI;
|
||||
|
||||
/* Finland */
|
||||
if (g_strcmp0 (territory, "FI") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_KAVI;
|
||||
|
||||
/* Germany */
|
||||
if (g_strcmp0 (territory, "DE") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_USK;
|
||||
|
||||
/* Iran */
|
||||
if (g_strcmp0 (territory, "IR") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_ESRA;
|
||||
|
||||
/* Japan */
|
||||
if (g_strcmp0 (territory, "JP") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_CERO;
|
||||
|
||||
/* New Zealand */
|
||||
if (g_strcmp0 (territory, "NZ") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_OFLCNZ;
|
||||
|
||||
/* Russia: Content rating law */
|
||||
if (g_strcmp0 (territory, "RU") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_RUSSIA;
|
||||
|
||||
/* Singapore */
|
||||
if (g_strcmp0 (territory, "SQ") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_MDA;
|
||||
|
||||
/* South Korea */
|
||||
if (g_strcmp0 (territory, "KR") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_GRAC;
|
||||
|
||||
/* USA, Canada, Mexico */
|
||||
if ((g_strcmp0 (territory, "US") == 0) ||
|
||||
g_strcmp0 (territory, "CA") == 0 ||
|
||||
g_strcmp0 (territory, "MX") == 0)
|
||||
return GS_CONTENT_RATING_SYSTEM_ESRB;
|
||||
|
||||
/* everything else is IARC */
|
||||
return GS_CONTENT_RATING_SYSTEM_IARC;
|
||||
}
|
||||
|
||||
static const gchar *content_rating_strings[GS_CONTENT_RATING_SYSTEM_LAST][7] = {
|
||||
{ "3+", "7+", "12+", "16+", "18+", NULL }, /* GS_CONTENT_RATING_SYSTEM_UNKNOWN */
|
||||
{ "ATP", "+13", "+18", NULL }, /* GS_CONTENT_RATING_SYSTEM_INCAA */
|
||||
{ "PG", "MA15+", "R18+", NULL }, /* GS_CONTENT_RATING_SYSTEM_ACB */
|
||||
{ "L", "10", "12", "14", "16", "18", NULL }, /* GS_CONTENT_RATING_SYSTEM_DJCTQ */
|
||||
{ "普通", "保護", "輔12", "輔15", "限制", NULL }, /* GS_CONTENT_RATING_SYSTEM_GSRR */
|
||||
{ "3", "7", "12", "16", "18", NULL }, /* GS_CONTENT_RATING_SYSTEM_PEGI */
|
||||
{ "3+", "7+", "12+", "16+", "18+", NULL }, /* GS_CONTENT_RATING_SYSTEM_KAVI */
|
||||
{ "0", "6", "12", "16", "18", NULL}, /* GS_CONTENT_RATING_SYSTEM_USK */
|
||||
{ "+3", "+7", "+12", "+15", "+18", NULL }, /* GS_CONTENT_RATING_SYSTEM_ESRA */
|
||||
{ "A", "B", "C", "D", "Z", NULL }, /* GS_CONTENT_RATING_SYSTEM_CERO */
|
||||
{ "G", "R13", "R15", "R16", "R18", NULL }, /* GS_CONTENT_RATING_SYSTEM_OFLCNZ */
|
||||
{ "0+", "6+", "12+", "16+", "18+", NULL }, /* GS_CONTENT_RATING_SYSTEM_RUSSIA */
|
||||
{ "General", "ADV", "M18", NULL }, /* GS_CONTENT_RATING_SYSTEM_MDA */
|
||||
{ "ALL", "12", "15", "18", NULL }, /* GS_CONTENT_RATING_SYSTEM_GRAC */
|
||||
{ "Early Childhood", "Everyone", "Everyone 10+", "Teen", "Mature", "Adults Only", NULL }, /* GS_CONTENT_RATING_SYSTEM_ESRB */
|
||||
{ "3+", "7+", "12+", "16+", "18+", NULL }, /* GS_CONTENT_RATING_SYSTEM_IARC */
|
||||
};
|
||||
|
||||
gchar **
|
||||
gs_utils_content_rating_get_values (GsContentRatingSystem system)
|
||||
{
|
||||
g_return_val_if_fail ((int) system < GS_CONTENT_RATING_SYSTEM_LAST, NULL);
|
||||
|
||||
/* IARC is the fallback for everything */
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_UNKNOWN)
|
||||
system = GS_CONTENT_RATING_SYSTEM_IARC;
|
||||
|
||||
/* ESRB is special as it requires localised suffixes */
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_ESRB) {
|
||||
g_auto(GStrv) esrb_ages = g_new0 (gchar *, 7);
|
||||
|
||||
esrb_ages[0] = get_esrb_string (content_rating_strings[system][0], _("Early Childhood"));
|
||||
esrb_ages[1] = get_esrb_string (content_rating_strings[system][1], _("Everyone"));
|
||||
esrb_ages[2] = get_esrb_string (content_rating_strings[system][2], _("Everyone 10+"));
|
||||
esrb_ages[3] = get_esrb_string (content_rating_strings[system][3], _("Teen"));
|
||||
esrb_ages[4] = get_esrb_string (content_rating_strings[system][4], _("Mature"));
|
||||
esrb_ages[5] = get_esrb_string (content_rating_strings[system][5], _("Adults Only"));
|
||||
esrb_ages[6] = NULL;
|
||||
|
||||
return g_steal_pointer (&esrb_ages);
|
||||
}
|
||||
|
||||
return g_strdupv ((gchar **) content_rating_strings[system]);
|
||||
}
|
||||
|
||||
static guint content_rating_ages[GS_CONTENT_RATING_SYSTEM_LAST][7] = {
|
||||
{ 3, 7, 12, 16, 18 }, /* GS_CONTENT_RATING_SYSTEM_UNKNOWN */
|
||||
{ 0, 13, 18 }, /* GS_CONTENT_RATING_SYSTEM_INCAA */
|
||||
{ 0, 15, 18 }, /* GS_CONTENT_RATING_SYSTEM_ACB */
|
||||
{ 0, 10, 12, 14, 16, 18 }, /* GS_CONTENT_RATING_SYSTEM_DJCTQ */
|
||||
{ 0, 6, 12, 15, 18 }, /* GS_CONTENT_RATING_SYSTEM_GSRR */
|
||||
{ 3, 7, 12, 16, 18 }, /* GS_CONTENT_RATING_SYSTEM_PEGI */
|
||||
{ 3, 7, 12, 16, 18 }, /* GS_CONTENT_RATING_SYSTEM_KAVI */
|
||||
{ 0, 6, 12, 16, 18 }, /* GS_CONTENT_RATING_SYSTEM_USK */
|
||||
{ 3, 7, 12, 15, 18 }, /* GS_CONTENT_RATING_SYSTEM_ESRA */
|
||||
{ 0, 12, 15, 17, 18 }, /* GS_CONTENT_RATING_SYSTEM_CERO */
|
||||
{ 0, 13, 15, 16, 18 }, /* GS_CONTENT_RATING_SYSTEM_OFLCNZ */
|
||||
{ 0, 6, 12, 16, 18 }, /* GS_CONTENT_RATING_SYSTEM_RUSSIA */
|
||||
{ 0, 16, 18 }, /* GS_CONTENT_RATING_SYSTEM_MDA */
|
||||
{ 0, 12, 15, 18 }, /* GS_CONTENT_RATING_SYSTEM_GRAC */
|
||||
{ 0, 6, 10, 13, 17, 18 }, /* GS_CONTENT_RATING_SYSTEM_ESRB */
|
||||
{ 3, 7, 12, 16, 18 }, /* GS_CONTENT_RATING_SYSTEM_IARC */
|
||||
};
|
||||
|
||||
const guint *
|
||||
gs_utils_content_rating_get_ages (GsContentRatingSystem system, gsize *length_out)
|
||||
{
|
||||
g_return_val_if_fail ((int) system < GS_CONTENT_RATING_SYSTEM_LAST, NULL);
|
||||
g_return_val_if_fail (length_out != NULL, NULL);
|
||||
|
||||
/* IARC is the fallback for everything */
|
||||
if (system == GS_CONTENT_RATING_SYSTEM_UNKNOWN)
|
||||
system = GS_CONTENT_RATING_SYSTEM_IARC;
|
||||
|
||||
*length_out = g_strv_length ((gchar **) content_rating_strings[system]);
|
||||
return content_rating_ages[system];
|
||||
}
|
||||
|
||||
typedef enum
|
||||
{
|
||||
OARS_1_0,
|
||||
OARS_1_1,
|
||||
} OarsVersion;
|
||||
|
||||
/* The struct definition below assumes we don’t grow more
|
||||
* #AsContentRating values. */
|
||||
G_STATIC_ASSERT (AS_CONTENT_RATING_VALUE_LAST == AS_CONTENT_RATING_VALUE_INTENSE + 1);
|
||||
|
||||
static const struct {
|
||||
const gchar *id;
|
||||
OarsVersion oars_version; /* when the key was first added */
|
||||
guint csm_age_none; /* for %AS_CONTENT_RATING_VALUE_NONE */
|
||||
guint csm_age_mild; /* for %AS_CONTENT_RATING_VALUE_MILD */
|
||||
guint csm_age_moderate; /* for %AS_CONTENT_RATING_VALUE_MODERATE */
|
||||
guint csm_age_intense; /* for %AS_CONTENT_RATING_VALUE_INTENSE */
|
||||
} oars_to_csm_mappings[] = {
|
||||
/* Each @id must only appear once. The set of @csm_age_* values for a
|
||||
* given @id must be complete and non-decreasing. */
|
||||
/* v1.0 */
|
||||
{ "violence-cartoon", OARS_1_0, 0, 3, 4, 6 },
|
||||
{ "violence-fantasy", OARS_1_0, 0, 3, 7, 8 },
|
||||
{ "violence-realistic", OARS_1_0, 0, 4, 9, 14 },
|
||||
{ "violence-bloodshed", OARS_1_0, 0, 9, 11, 18 },
|
||||
{ "violence-sexual", OARS_1_0, 0, 18, 18, 18 },
|
||||
{ "drugs-alcohol", OARS_1_0, 0, 11, 13, 16 },
|
||||
{ "drugs-narcotics", OARS_1_0, 0, 12, 14, 17 },
|
||||
{ "drugs-tobacco", OARS_1_0, 0, 10, 13, 13 },
|
||||
{ "sex-nudity", OARS_1_0, 0, 12, 14, 14 },
|
||||
{ "sex-themes", OARS_1_0, 0, 13, 14, 15 },
|
||||
{ "language-profanity", OARS_1_0, 0, 8, 11, 14 },
|
||||
{ "language-humor", OARS_1_0, 0, 3, 8, 14 },
|
||||
{ "language-discrimination", OARS_1_0, 0, 9, 10, 11 },
|
||||
{ "money-advertising", OARS_1_0, 0, 7, 8, 10 },
|
||||
{ "money-gambling", OARS_1_0, 0, 7, 10, 18 },
|
||||
{ "money-purchasing", OARS_1_0, 0, 12, 14, 15 },
|
||||
{ "social-chat", OARS_1_0, 0, 4, 10, 13 },
|
||||
{ "social-audio", OARS_1_0, 0, 15, 15, 15 },
|
||||
{ "social-contacts", OARS_1_0, 0, 12, 12, 12 },
|
||||
{ "social-info", OARS_1_0, 0, 0, 13, 13 },
|
||||
{ "social-location", OARS_1_0, 0, 13, 13, 13 },
|
||||
/* v1.1 additions */
|
||||
{ "sex-homosexuality", OARS_1_1, 0, 13, 14, 15 },
|
||||
{ "sex-prostitution", OARS_1_1, 0, 12, 14, 18 },
|
||||
{ "sex-adultery", OARS_1_1, 0, 8, 10, 18 },
|
||||
{ "sex-appearance", OARS_1_1, 0, 10, 10, 15 },
|
||||
{ "violence-worship", OARS_1_1, 0, 13, 15, 18 },
|
||||
{ "violence-desecration", OARS_1_1, 0, 13, 15, 18 },
|
||||
{ "violence-slavery", OARS_1_1, 0, 13, 15, 18 },
|
||||
};
|
||||
#endif /* appstream-glib < 0.7.18 */
|
||||
|
||||
#if !AS_CHECK_VERSION(0, 7, 18)
|
||||
/**
|
||||
* as_content_rating_id_csm_age_to_value:
|
||||
* @id: the subsection ID e.g. "violence-cartoon"
|
||||
* @age: the age
|
||||
*
|
||||
* Gets the #MctAppFilterOarsValue for a given age.
|
||||
*
|
||||
* Returns: the #MctAppFilterOarsValue
|
||||
**/
|
||||
MctAppFilterOarsValue
|
||||
as_content_rating_id_csm_age_to_value (const gchar *id, guint age)
|
||||
{
|
||||
for (gsize i = 0; G_N_ELEMENTS (oars_to_csm_mappings); i++) {
|
||||
if (g_strcmp0 (id, oars_to_csm_mappings[i].id) == 0) {
|
||||
if (age >= oars_to_csm_mappings[i].csm_age_intense)
|
||||
return MCT_APP_FILTER_OARS_VALUE_INTENSE;
|
||||
else if (age >= oars_to_csm_mappings[i].csm_age_moderate)
|
||||
return MCT_APP_FILTER_OARS_VALUE_MODERATE;
|
||||
else if (age >= oars_to_csm_mappings[i].csm_age_mild)
|
||||
return MCT_APP_FILTER_OARS_VALUE_MILD;
|
||||
else if (age >= oars_to_csm_mappings[i].csm_age_none)
|
||||
return MCT_APP_FILTER_OARS_VALUE_NONE;
|
||||
else
|
||||
return MCT_APP_FILTER_OARS_VALUE_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
return MCT_APP_FILTER_OARS_VALUE_UNKNOWN;
|
||||
}
|
||||
#endif /* appstream-glib < 0.7.18 */
|
|
@ -1,93 +0,0 @@
|
|||
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
|
||||
*
|
||||
* Copyright (C) 2015-2016 Richard Hughes <richard@hughsie.com>
|
||||
*
|
||||
* Licensed under the GNU General Public License Version 2
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#include <appstream-glib.h>
|
||||
#include <glib-object.h>
|
||||
#include <libmalcontent/malcontent.h>
|
||||
|
||||
#if AS_CHECK_VERSION(0, 7, 18)
|
||||
#define GS_CONTENT_RATING_SYSTEM_UNKNOWN AS_CONTENT_RATING_SYSTEM_UNKNOWN
|
||||
#define GS_CONTENT_RATING_SYSTEM_INCAA AS_CONTENT_RATING_SYSTEM_INCAA
|
||||
#define GS_CONTENT_RATING_SYSTEM_ACB AS_CONTENT_RATING_SYSTEM_ACB
|
||||
#define GS_CONTENT_RATING_SYSTEM_DJCTQ AS_CONTENT_RATING_SYSTEM_DJCTQ
|
||||
#define GS_CONTENT_RATING_SYSTEM_GSRR AS_CONTENT_RATING_SYSTEM_GSRR
|
||||
#define GS_CONTENT_RATING_SYSTEM_PEGI AS_CONTENT_RATING_SYSTEM_PEGI
|
||||
#define GS_CONTENT_RATING_SYSTEM_KAVI AS_CONTENT_RATING_SYSTEM_KAVI
|
||||
#define GS_CONTENT_RATING_SYSTEM_USK AS_CONTENT_RATING_SYSTEM_USK
|
||||
#define GS_CONTENT_RATING_SYSTEM_ESRA AS_CONTENT_RATING_SYSTEM_ESRA
|
||||
#define GS_CONTENT_RATING_SYSTEM_CERO AS_CONTENT_RATING_SYSTEM_CERO
|
||||
#define GS_CONTENT_RATING_SYSTEM_OFLCNZ AS_CONTENT_RATING_SYSTEM_OFLCNZ
|
||||
#define GS_CONTENT_RATING_SYSTEM_RUSSIA AS_CONTENT_RATING_SYSTEM_RUSSIA
|
||||
#define GS_CONTENT_RATING_SYSTEM_MDA AS_CONTENT_RATING_SYSTEM_MDA
|
||||
#define GS_CONTENT_RATING_SYSTEM_GRAC AS_CONTENT_RATING_SYSTEM_GRAC
|
||||
#define GS_CONTENT_RATING_SYSTEM_ESRB AS_CONTENT_RATING_SYSTEM_ESRB
|
||||
#define GS_CONTENT_RATING_SYSTEM_IARC AS_CONTENT_RATING_SYSTEM_IARC
|
||||
#define GS_CONTENT_RATING_SYSTEM_LAST AS_CONTENT_RATING_SYSTEM_LAST
|
||||
#define GsContentRatingSystem AsContentRatingSystem
|
||||
|
||||
#define gs_utils_content_rating_age_to_str as_content_rating_system_format_age
|
||||
#define gs_utils_content_rating_system_from_locale as_content_rating_system_from_locale
|
||||
#define gs_content_rating_system_to_str as_content_rating_system_to_string
|
||||
#define gs_utils_content_rating_get_values as_content_rating_system_get_formatted_ages
|
||||
#define gs_utils_content_rating_get_ages as_content_rating_system_get_csm_ages
|
||||
#define as_content_rating_id_csm_age_to_value as_content_rating_attribute_from_csm_age
|
||||
#else
|
||||
typedef enum {
|
||||
GS_CONTENT_RATING_SYSTEM_UNKNOWN,
|
||||
GS_CONTENT_RATING_SYSTEM_INCAA,
|
||||
GS_CONTENT_RATING_SYSTEM_ACB,
|
||||
GS_CONTENT_RATING_SYSTEM_DJCTQ,
|
||||
GS_CONTENT_RATING_SYSTEM_GSRR,
|
||||
GS_CONTENT_RATING_SYSTEM_PEGI,
|
||||
GS_CONTENT_RATING_SYSTEM_KAVI,
|
||||
GS_CONTENT_RATING_SYSTEM_USK,
|
||||
GS_CONTENT_RATING_SYSTEM_ESRA,
|
||||
GS_CONTENT_RATING_SYSTEM_CERO,
|
||||
GS_CONTENT_RATING_SYSTEM_OFLCNZ,
|
||||
GS_CONTENT_RATING_SYSTEM_RUSSIA,
|
||||
GS_CONTENT_RATING_SYSTEM_MDA,
|
||||
GS_CONTENT_RATING_SYSTEM_GRAC,
|
||||
GS_CONTENT_RATING_SYSTEM_ESRB,
|
||||
GS_CONTENT_RATING_SYSTEM_IARC,
|
||||
/*< private >*/
|
||||
GS_CONTENT_RATING_SYSTEM_LAST
|
||||
} GsContentRatingSystem;
|
||||
|
||||
gchar *gs_utils_content_rating_age_to_str (GsContentRatingSystem system,
|
||||
guint age);
|
||||
GsContentRatingSystem gs_utils_content_rating_system_from_locale (const gchar *locale);
|
||||
const gchar *gs_content_rating_system_to_str (GsContentRatingSystem system);
|
||||
gchar **gs_utils_content_rating_get_values (GsContentRatingSystem system);
|
||||
const guint *gs_utils_content_rating_get_ages (GsContentRatingSystem system, gsize *length_out);
|
||||
MctAppFilterOarsValue as_content_rating_id_csm_age_to_value (const gchar *id, guint age);
|
||||
#endif /* appstream-glib < 0.7.18 */
|
||||
|
||||
#if AS_CHECK_VERSION(0, 7, 15)
|
||||
#define as_content_rating_id_value_to_csm_age as_content_rating_attribute_to_csm_age
|
||||
#else
|
||||
guint as_content_rating_id_value_to_csm_age (const gchar *id, MctAppFilterOarsValue value);
|
||||
#endif /* appstream-glib < 0.7.15 */
|
||||
|
||||
G_END_DECLS
|
|
@ -1,4 +1,4 @@
|
|||
libmalcontent_ui_api_version = '0'
|
||||
libmalcontent_ui_api_version = '1'
|
||||
libmalcontent_ui_api_name = 'malcontent-ui-' + libmalcontent_ui_api_version
|
||||
|
||||
if not cc.has_function('atexit')
|
||||
|
@ -12,7 +12,6 @@ resources = gnome.compile_resources(
|
|||
)
|
||||
|
||||
libmalcontent_ui_sources = [
|
||||
'gs-content-rating.c',
|
||||
'restrict-applications-dialog.c',
|
||||
'restrict-applications-selector.c',
|
||||
'user-controls.c',
|
||||
|
@ -23,20 +22,18 @@ libmalcontent_ui_headers = [
|
|||
'restrict-applications-selector.h',
|
||||
'user-controls.h',
|
||||
]
|
||||
libmalcontent_ui_private_headers = [
|
||||
'gs-content-rating.h',
|
||||
]
|
||||
|
||||
libmalcontent_ui_public_deps = [
|
||||
dependency('accountsservice', version: '>= 0.6.39'),
|
||||
dependency('gio-2.0', version: '>= 2.44'),
|
||||
dependency('glib-2.0', version: '>= 2.54.2'),
|
||||
dependency('gobject-2.0', version: '>= 2.54'),
|
||||
dependency('gtk+-3.0', version: '>= 3.24'),
|
||||
gtk_dep,
|
||||
libadwaita_dep,
|
||||
libmalcontent_dep,
|
||||
]
|
||||
libmalcontent_ui_private_deps = [
|
||||
dependency('appstream-glib', version: '>= 0.7.15'),
|
||||
dependency('appstream', version: '>= 0.12.10'),
|
||||
dependency('flatpak'),
|
||||
]
|
||||
|
||||
|
@ -44,7 +41,7 @@ libmalcontent_ui_private_deps = [
|
|||
libmalcontent_ui_include_subdir = join_paths(libmalcontent_ui_api_name, 'libmalcontent-ui')
|
||||
|
||||
libmalcontent_ui = library(libmalcontent_ui_api_name,
|
||||
libmalcontent_ui_sources + libmalcontent_ui_headers + libmalcontent_ui_private_headers,
|
||||
libmalcontent_ui_sources + libmalcontent_ui_headers,
|
||||
dependencies: libmalcontent_ui_public_deps + libmalcontent_ui_private_deps,
|
||||
include_directories: root_inc,
|
||||
install: true,
|
||||
|
@ -72,25 +69,25 @@ pkgconfig.generate(libmalcontent_ui,
|
|||
)
|
||||
|
||||
libmalcontent_ui_gir = gnome.generate_gir(libmalcontent_ui,
|
||||
sources: libmalcontent_ui_sources + libmalcontent_ui_headers + libmalcontent_ui_private_headers,
|
||||
sources: libmalcontent_ui_sources + libmalcontent_ui_headers,
|
||||
nsversion: libmalcontent_ui_api_version,
|
||||
namespace: 'MalcontentUi',
|
||||
symbol_prefix: 'mct_',
|
||||
identifier_prefix: 'Mct',
|
||||
export_packages: 'libmalcontent-ui',
|
||||
includes: ['AccountsService-1.0', 'Gio-2.0', 'GObject-2.0', 'Gtk-3.0', libmalcontent_gir[0]],
|
||||
includes: ['AccountsService-1.0', 'Gio-2.0', 'GObject-2.0', 'Gtk-4.0', 'Adw-1', libmalcontent_gir[0]],
|
||||
install: true,
|
||||
dependencies: libmalcontent_ui_dep,
|
||||
)
|
||||
|
||||
xmllint = find_program('xmllint', required: false)
|
||||
if xmllint.found()
|
||||
gtk_prefix = dependency('gtk+-3.0').get_pkgconfig_variable('prefix')
|
||||
gtk_prefix = gtk_dep.get_variable(pkgconfig: 'prefix')
|
||||
test(
|
||||
'validate-ui', xmllint,
|
||||
args: [
|
||||
'--nonet', '--noblanks', '--noout',
|
||||
'--relaxng', join_paths(gtk_prefix, 'share', 'gtk-3.0', 'gtkbuilder.rng'),
|
||||
'--relaxng', join_paths(gtk_prefix, 'share', 'gtk-4.0', 'gtk4builder.rng'),
|
||||
files(
|
||||
'restrict-applications-dialog.ui',
|
||||
'restrict-applications-selector.ui',
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <glib-object.h>
|
||||
#include <glib/gi18n-lib.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <adwaita.h>
|
||||
|
||||
#include "restrict-applications-dialog.h"
|
||||
#include "restrict-applications-selector.h"
|
||||
|
@ -53,13 +54,20 @@ struct _MctRestrictApplicationsDialog
|
|||
GtkDialog parent_instance;
|
||||
|
||||
MctRestrictApplicationsSelector *selector;
|
||||
GtkLabel *description;
|
||||
AdwPreferencesGroup *group;
|
||||
GtkSearchEntry *search_entry;
|
||||
|
||||
MctAppFilter *app_filter; /* (owned) (not nullable) */
|
||||
gchar *user_display_name; /* (owned) (nullable) */
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (MctRestrictApplicationsDialog, mct_restrict_applications_dialog, GTK_TYPE_DIALOG)
|
||||
static void search_entry_stop_search_cb (GtkSearchEntry *search_entry,
|
||||
gpointer user_data);
|
||||
static gboolean focus_search_cb (GtkWidget *widget,
|
||||
GVariant *arguments,
|
||||
gpointer user_data);
|
||||
|
||||
G_DEFINE_TYPE (MctRestrictApplicationsDialog, mct_restrict_applications_dialog, ADW_TYPE_PREFERENCES_WINDOW)
|
||||
|
||||
typedef enum
|
||||
{
|
||||
|
@ -139,6 +147,19 @@ mct_restrict_applications_dialog_dispose (GObject *object)
|
|||
G_OBJECT_CLASS (mct_restrict_applications_dialog_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
static void
|
||||
mct_restrict_applications_dialog_map (GtkWidget *widget)
|
||||
{
|
||||
MctRestrictApplicationsDialog *self = (MctRestrictApplicationsDialog *)widget;
|
||||
|
||||
GTK_WIDGET_CLASS (mct_restrict_applications_dialog_parent_class)->map (widget);
|
||||
|
||||
/* Clear and focus the search entry, in case the dialogue is being shown for
|
||||
* a second time. */
|
||||
gtk_editable_set_text (GTK_EDITABLE (self->search_entry), "");
|
||||
gtk_widget_grab_focus (GTK_WIDGET (self->search_entry));
|
||||
}
|
||||
|
||||
static void
|
||||
mct_restrict_applications_dialog_class_init (MctRestrictApplicationsDialogClass *klass)
|
||||
{
|
||||
|
@ -150,6 +171,8 @@ mct_restrict_applications_dialog_class_init (MctRestrictApplicationsDialogClass
|
|||
object_class->set_property = mct_restrict_applications_dialog_set_property;
|
||||
object_class->dispose = mct_restrict_applications_dialog_dispose;
|
||||
|
||||
widget_class->map = mct_restrict_applications_dialog_map;
|
||||
|
||||
/**
|
||||
* MctRestrictApplicationsDialog:app-filter: (not nullable)
|
||||
*
|
||||
|
@ -195,7 +218,16 @@ mct_restrict_applications_dialog_class_init (MctRestrictApplicationsDialogClass
|
|||
gtk_widget_class_set_template_from_resource (widget_class, "/org/freedesktop/MalcontentUi/ui/restrict-applications-dialog.ui");
|
||||
|
||||
gtk_widget_class_bind_template_child (widget_class, MctRestrictApplicationsDialog, selector);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctRestrictApplicationsDialog, description);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctRestrictApplicationsDialog, group);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctRestrictApplicationsDialog, search_entry);
|
||||
|
||||
gtk_widget_class_bind_template_callback (widget_class, search_entry_stop_search_cb);
|
||||
|
||||
gtk_widget_class_add_binding (widget_class,
|
||||
GDK_KEY_f, GDK_CONTROL_MASK,
|
||||
focus_search_cb,
|
||||
NULL);
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -205,6 +237,8 @@ mct_restrict_applications_dialog_init (MctRestrictApplicationsDialog *self)
|
|||
g_type_ensure (MCT_TYPE_RESTRICT_APPLICATIONS_SELECTOR);
|
||||
|
||||
gtk_widget_init_template (GTK_WIDGET (self));
|
||||
|
||||
gtk_search_entry_set_key_capture_widget (self->search_entry, GTK_WIDGET (self));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -214,15 +248,33 @@ update_description (MctRestrictApplicationsDialog *self)
|
|||
|
||||
if (self->user_display_name == NULL)
|
||||
{
|
||||
gtk_widget_hide (GTK_WIDGET (self->description));
|
||||
adw_preferences_group_set_description (self->group, NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Translators: the placeholder is a user’s full name */
|
||||
description = g_strdup_printf (_("Restrict %s from using the following installed applications."),
|
||||
self->user_display_name);
|
||||
gtk_label_set_text (self->description, description);
|
||||
gtk_widget_show (GTK_WIDGET (self->description));
|
||||
adw_preferences_group_set_description (self->group, description);
|
||||
}
|
||||
|
||||
static void
|
||||
search_entry_stop_search_cb (GtkSearchEntry *search_entry,
|
||||
gpointer user_data)
|
||||
{
|
||||
/* Clear the search text as the search filtering is bound to that. */
|
||||
gtk_editable_set_text (GTK_EDITABLE (search_entry), "");
|
||||
}
|
||||
|
||||
static gboolean
|
||||
focus_search_cb (GtkWidget *widget,
|
||||
GVariant *arguments,
|
||||
gpointer user_data)
|
||||
{
|
||||
MctRestrictApplicationsDialog *self = MCT_RESTRICT_APPLICATIONS_DIALOG (widget);
|
||||
|
||||
gtk_widget_grab_focus (GTK_WIDGET (self->search_entry));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -24,13 +24,14 @@
|
|||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <adwaita.h>
|
||||
#include <libmalcontent/manager.h>
|
||||
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define MCT_TYPE_RESTRICT_APPLICATIONS_DIALOG (mct_restrict_applications_dialog_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (MctRestrictApplicationsDialog, mct_restrict_applications_dialog, MCT, RESTRICT_APPLICATIONS_DIALOG, GtkDialog)
|
||||
G_DECLARE_FINAL_TYPE (MctRestrictApplicationsDialog, mct_restrict_applications_dialog, MCT, RESTRICT_APPLICATIONS_DIALOG, AdwPreferencesWindow)
|
||||
|
||||
MctRestrictApplicationsDialog *mct_restrict_applications_dialog_new (MctAppFilter *app_filter,
|
||||
const gchar *user_display_name);
|
||||
|
|
|
@ -2,48 +2,36 @@
|
|||
<!-- Copyright © 2020 Endless, Inc. -->
|
||||
<interface domain="malcontent">
|
||||
<requires lib="gtk+" version="3.12"/>
|
||||
<template class="MctRestrictApplicationsDialog" parent="GtkDialog">
|
||||
<template class="MctRestrictApplicationsDialog" parent="AdwPreferencesWindow">
|
||||
<property name="title" translatable="yes">Restrict Applications</property>
|
||||
<property name="skip-taskbar-hint">True</property>
|
||||
<property name="default-width">300</property>
|
||||
<property name="default-width">500</property>
|
||||
<property name="default-height">500</property>
|
||||
<child internal-child="headerbar">
|
||||
<object class="GtkHeaderBar">
|
||||
<property name="title" translatable="yes">Restrict Applications</property>
|
||||
<property name="show-close-button">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="margin">18</property>
|
||||
<property name="spacing">12</property>
|
||||
<property name="search-enabled">False</property>
|
||||
<child>
|
||||
<object class="AdwPreferencesPage">
|
||||
<child>
|
||||
<object class="GtkLabel" id="description">
|
||||
<object class="AdwPreferencesGroup" id="group">
|
||||
<!-- Translated dynamically: -->
|
||||
<property name="label">Restrict {username} from using the following installed applications.</property>
|
||||
<property name="visible">False</property>
|
||||
<property name="ellipsize">none</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="hexpand">True</property>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject">
|
||||
<property name="accessible-role">static</property>
|
||||
<property name="description">Restrict {username} from using the following installed applications.</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkSearchEntry" id="search_entry">
|
||||
<property name="placeholder-text" translatable="yes">Search for applications…</property>
|
||||
<signal name="stop-search" handler="search_entry_stop_search_cb" />
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="MctRestrictApplicationsSelector" id="selector">
|
||||
<property name="search" bind-source="search_entry" bind-property="text" />
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="MctRestrictApplicationsSelector" id="selector">
|
||||
<property name="visible">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <glib-object.h>
|
||||
#include <glib/gi18n-lib.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <adwaita.h>
|
||||
#include <libmalcontent/app-filter.h>
|
||||
|
||||
#include "restrict-applications-selector.h"
|
||||
|
@ -40,6 +41,7 @@ static void app_info_changed_cb (GAppInfoMonitor *monitor,
|
|||
static void reload_apps (MctRestrictApplicationsSelector *self);
|
||||
static GtkWidget *create_row_for_app_cb (gpointer item,
|
||||
gpointer user_data);
|
||||
static char *app_info_dup_name (GAppInfo *app_info);
|
||||
|
||||
/**
|
||||
* MctRestrictApplicationsSelector:
|
||||
|
@ -53,6 +55,11 @@ static GtkWidget *create_row_for_app_cb (gpointer item,
|
|||
* #MctAppFilterBuilder using
|
||||
* mct_restrict_applications_selector_build_app_filter().
|
||||
*
|
||||
* Search terms may be applied using #MctRestrictApplicationsSelector:search.
|
||||
* These will filter the list of displayed apps so that only ones matching the
|
||||
* search terms (by name, using UTF-8 normalisation and casefolding) will be
|
||||
* displayed.
|
||||
*
|
||||
* Since: 0.5.0
|
||||
*/
|
||||
struct _MctRestrictApplicationsSelector
|
||||
|
@ -62,7 +69,9 @@ struct _MctRestrictApplicationsSelector
|
|||
GtkListBox *listbox;
|
||||
|
||||
GList *cached_apps; /* (nullable) (owned) (element-type GAppInfo) */
|
||||
GListStore *apps; /* (owned) */
|
||||
GListStore *apps;
|
||||
GtkFilterListModel *filtered_apps;
|
||||
GtkStringFilter *search_filter;
|
||||
GAppInfoMonitor *app_info_monitor; /* (owned) */
|
||||
gulong app_info_monitor_changed_id;
|
||||
GHashTable *blocklisted_apps; /* (owned) (element-type GAppInfo) */
|
||||
|
@ -73,6 +82,8 @@ struct _MctRestrictApplicationsSelector
|
|||
FlatpakInstallation *user_installation; /* (owned) */
|
||||
|
||||
GtkCssProvider *css_provider; /* (owned) */
|
||||
|
||||
gchar *search; /* (nullable) (owned) */
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (MctRestrictApplicationsSelector, mct_restrict_applications_selector, GTK_TYPE_BOX)
|
||||
|
@ -80,9 +91,10 @@ G_DEFINE_TYPE (MctRestrictApplicationsSelector, mct_restrict_applications_select
|
|||
typedef enum
|
||||
{
|
||||
PROP_APP_FILTER = 1,
|
||||
PROP_SEARCH,
|
||||
} MctRestrictApplicationsSelectorProperty;
|
||||
|
||||
static GParamSpec *properties[PROP_APP_FILTER + 1];
|
||||
static GParamSpec *properties[PROP_SEARCH + 1];
|
||||
|
||||
enum {
|
||||
SIGNAL_CHANGED,
|
||||
|
@ -123,6 +135,9 @@ mct_restrict_applications_selector_get_property (GObject *object,
|
|||
case PROP_APP_FILTER:
|
||||
g_value_set_boxed (value, self->app_filter);
|
||||
break;
|
||||
case PROP_SEARCH:
|
||||
g_value_set_string (value, self->search);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
|
@ -142,6 +157,9 @@ mct_restrict_applications_selector_set_property (GObject *object,
|
|||
case PROP_APP_FILTER:
|
||||
mct_restrict_applications_selector_set_app_filter (self, g_value_get_boxed (value));
|
||||
break;
|
||||
case PROP_SEARCH:
|
||||
mct_restrict_applications_selector_set_search (self, g_value_get_string (value));
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
|
@ -154,7 +172,6 @@ mct_restrict_applications_selector_dispose (GObject *object)
|
|||
MctRestrictApplicationsSelector *self = (MctRestrictApplicationsSelector *)object;
|
||||
|
||||
g_clear_pointer (&self->blocklisted_apps, g_hash_table_unref);
|
||||
g_clear_object (&self->apps);
|
||||
g_clear_list (&self->cached_apps, g_object_unref);
|
||||
|
||||
if (self->app_info_monitor != NULL && self->app_info_monitor_changed_id != 0)
|
||||
|
@ -167,6 +184,7 @@ mct_restrict_applications_selector_dispose (GObject *object)
|
|||
g_clear_object (&self->system_installation);
|
||||
g_clear_object (&self->user_installation);
|
||||
g_clear_object (&self->css_provider);
|
||||
g_clear_pointer (&self->search, g_free);
|
||||
|
||||
G_OBJECT_CLASS (mct_restrict_applications_selector_parent_class)->dispose (object);
|
||||
}
|
||||
|
@ -201,6 +219,23 @@ mct_restrict_applications_selector_class_init (MctRestrictApplicationsSelectorCl
|
|||
G_PARAM_STATIC_STRINGS |
|
||||
G_PARAM_EXPLICIT_NOTIFY);
|
||||
|
||||
/**
|
||||
* MctRestrictApplicationsSelector:search: (nullable)
|
||||
*
|
||||
* Search terms to filter the displayed list of apps by, or %NULL to not
|
||||
* filter the search.
|
||||
*
|
||||
* Since: 0.12.0
|
||||
*/
|
||||
properties[PROP_SEARCH] =
|
||||
g_param_spec_string ("search",
|
||||
"Search",
|
||||
"Search terms to filter the displayed list of apps by.",
|
||||
NULL,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS |
|
||||
G_PARAM_EXPLICIT_NOTIFY);
|
||||
|
||||
g_object_class_install_properties (object_class, G_N_ELEMENTS (properties), properties);
|
||||
|
||||
/**
|
||||
|
@ -222,15 +257,18 @@ mct_restrict_applications_selector_class_init (MctRestrictApplicationsSelectorCl
|
|||
gtk_widget_class_set_template_from_resource (widget_class, "/org/freedesktop/MalcontentUi/ui/restrict-applications-selector.ui");
|
||||
|
||||
gtk_widget_class_bind_template_child (widget_class, MctRestrictApplicationsSelector, listbox);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctRestrictApplicationsSelector, apps);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctRestrictApplicationsSelector, filtered_apps);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctRestrictApplicationsSelector, search_filter);
|
||||
|
||||
gtk_widget_class_bind_template_callback (widget_class, app_info_dup_name);
|
||||
}
|
||||
|
||||
static void
|
||||
mct_restrict_applications_selector_init (MctRestrictApplicationsSelector *self)
|
||||
{
|
||||
gtk_widget_init_template (GTK_WIDGET (self));
|
||||
|
||||
self->apps = g_list_store_new (G_TYPE_APP_INFO);
|
||||
self->cached_apps = NULL;
|
||||
gtk_widget_init_template (GTK_WIDGET (self));
|
||||
|
||||
self->app_info_monitor = g_app_info_monitor_get ();
|
||||
self->app_info_monitor_changed_id =
|
||||
|
@ -238,7 +276,7 @@ mct_restrict_applications_selector_init (MctRestrictApplicationsSelector *self)
|
|||
(GCallback) app_info_changed_cb, self);
|
||||
|
||||
gtk_list_box_bind_model (self->listbox,
|
||||
G_LIST_MODEL (self->apps),
|
||||
G_LIST_MODEL (self->filtered_apps),
|
||||
create_row_for_app_cb,
|
||||
self,
|
||||
NULL);
|
||||
|
@ -312,9 +350,8 @@ create_row_for_app_cb (gpointer item,
|
|||
MctRestrictApplicationsSelector *self = MCT_RESTRICT_APPLICATIONS_SELECTOR (user_data);
|
||||
GAppInfo *app = G_APP_INFO (item);
|
||||
g_autoptr(GIcon) icon = NULL;
|
||||
GtkWidget *box, *w;
|
||||
GtkWidget *row, *w;
|
||||
const gchar *app_name;
|
||||
gint size;
|
||||
GtkStyleContext *context;
|
||||
|
||||
app_name = g_app_info_get_name (app);
|
||||
|
@ -327,23 +364,15 @@ create_row_for_app_cb (gpointer item,
|
|||
else
|
||||
g_object_ref (icon);
|
||||
|
||||
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (box), 12);
|
||||
gtk_widget_set_margin_end (box, 12);
|
||||
row = adw_action_row_new ();
|
||||
|
||||
/* Icon */
|
||||
w = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_DIALOG);
|
||||
gtk_icon_size_lookup (GTK_ICON_SIZE_DND, &size, NULL);
|
||||
gtk_image_set_pixel_size (GTK_IMAGE (w), size);
|
||||
gtk_container_add (GTK_CONTAINER (box), w);
|
||||
w = gtk_image_new_from_gicon (icon);
|
||||
gtk_image_set_icon_size (GTK_IMAGE (w), GTK_ICON_SIZE_LARGE);
|
||||
adw_action_row_add_prefix (ADW_ACTION_ROW (row), w);
|
||||
|
||||
/* App name label */
|
||||
w = g_object_new (GTK_TYPE_LABEL,
|
||||
"label", app_name,
|
||||
"hexpand", TRUE,
|
||||
"xalign", 0.0,
|
||||
NULL);
|
||||
gtk_container_add (GTK_CONTAINER (box), w);
|
||||
adw_preferences_row_set_title (ADW_PREFERENCES_ROW (row), app_name);
|
||||
|
||||
/* Switch */
|
||||
w = g_object_new (GTK_TYPE_SWITCH,
|
||||
|
@ -354,16 +383,24 @@ create_row_for_app_cb (gpointer item,
|
|||
gtk_style_context_add_provider (context,
|
||||
GTK_STYLE_PROVIDER (self->css_provider),
|
||||
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION - 1);
|
||||
gtk_container_add (GTK_CONTAINER (box), w);
|
||||
adw_action_row_add_suffix (ADW_ACTION_ROW (row), w);
|
||||
adw_action_row_set_activatable_widget (ADW_ACTION_ROW (row), w);
|
||||
|
||||
gtk_widget_show_all (box);
|
||||
gtk_widget_set_focusable (GTK_WIDGET (row), FALSE);
|
||||
|
||||
/* Fetch status from AccountService */
|
||||
g_object_set_data (G_OBJECT (row), "GtkSwitch", w);
|
||||
g_object_set_data_full (G_OBJECT (w), "GAppInfo", g_object_ref (app), g_object_unref);
|
||||
update_listbox_row_switch (self, GTK_SWITCH (w));
|
||||
g_signal_connect (w, "notify::active", G_CALLBACK (on_switch_active_changed_cb), self);
|
||||
|
||||
return box;
|
||||
return row;
|
||||
}
|
||||
|
||||
static char *
|
||||
app_info_dup_name (GAppInfo *app_info)
|
||||
{
|
||||
return g_strdup (g_app_info_get_name (app_info));
|
||||
}
|
||||
|
||||
static gint
|
||||
|
@ -774,25 +811,18 @@ mct_restrict_applications_selector_set_app_filter (MctRestrictApplicationsSelect
|
|||
self->app_filter = mct_app_filter_ref (app_filter);
|
||||
|
||||
/* Update the status of each app row. */
|
||||
n_apps = g_list_model_get_n_items (G_LIST_MODEL (self->apps));
|
||||
n_apps = g_list_model_get_n_items (G_LIST_MODEL (self->filtered_apps));
|
||||
|
||||
for (guint i = 0; i < n_apps; i++)
|
||||
{
|
||||
GtkListBoxRow *row;
|
||||
GtkWidget *box, *w;
|
||||
g_autoptr(GList) children = NULL; /* (element-type GtkWidget) */
|
||||
GtkWidget *w;
|
||||
|
||||
/* Navigate the widget hierarchy set up in create_row_for_app_cb(). */
|
||||
row = gtk_list_box_get_row_at_index (self->listbox, i);
|
||||
g_assert (row != NULL && GTK_IS_LIST_BOX_ROW (row));
|
||||
|
||||
box = gtk_bin_get_child (GTK_BIN (row));
|
||||
g_assert (box != NULL && GTK_IS_BOX (box));
|
||||
|
||||
children = gtk_container_get_children (GTK_CONTAINER (box));
|
||||
g_assert (children != NULL);
|
||||
|
||||
w = g_list_nth_data (children, 2);
|
||||
w = g_object_get_data (G_OBJECT (row), "GtkSwitch");
|
||||
g_assert (w != NULL && GTK_IS_SWITCH (w));
|
||||
|
||||
update_listbox_row_switch (self, GTK_SWITCH (w));
|
||||
|
@ -800,3 +830,50 @@ mct_restrict_applications_selector_set_app_filter (MctRestrictApplicationsSelect
|
|||
|
||||
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_APP_FILTER]);
|
||||
}
|
||||
|
||||
/**
|
||||
* mct_restrict_applications_selector_get_search:
|
||||
* @self: an #MctRestrictApplicationsSelector
|
||||
*
|
||||
* Get the value of #MctRestrictApplicationsSelector:search.
|
||||
*
|
||||
* Returns: current search terms, or %NULL if no search filtering is active
|
||||
* Since: 0.12.0
|
||||
*/
|
||||
const gchar *
|
||||
mct_restrict_applications_selector_get_search (MctRestrictApplicationsSelector *self)
|
||||
{
|
||||
g_return_val_if_fail (MCT_IS_RESTRICT_APPLICATIONS_SELECTOR (self), NULL);
|
||||
|
||||
return self->search;
|
||||
}
|
||||
|
||||
/**
|
||||
* mct_restrict_applications_selector_set_search:
|
||||
* @self: an #MctRestrictApplicationsSelector
|
||||
* @search: (nullable): search terms, or %NULL to not filter the app list
|
||||
*
|
||||
* Set the value of #MctRestrictApplicationsSelector:search, or clear it to
|
||||
* %NULL.
|
||||
*
|
||||
* Since: 0.12.0
|
||||
*/
|
||||
void
|
||||
mct_restrict_applications_selector_set_search (MctRestrictApplicationsSelector *self,
|
||||
const gchar *search)
|
||||
{
|
||||
g_return_if_fail (MCT_IS_RESTRICT_APPLICATIONS_SELECTOR (self));
|
||||
|
||||
/* Squash empty search terms down to nothing. */
|
||||
if (search != NULL && *search == '\0')
|
||||
search = NULL;
|
||||
|
||||
if (g_strcmp0 (search, self->search) == 0)
|
||||
return;
|
||||
|
||||
g_clear_pointer (&self->search, g_free);
|
||||
self->search = g_strdup (search);
|
||||
|
||||
gtk_string_filter_set_search (self->search_filter, self->search);
|
||||
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_SEARCH]);
|
||||
}
|
||||
|
|
|
@ -41,4 +41,8 @@ void mct_restrict_applications_selector_set_app_filter (MctRestrictAppl
|
|||
void mct_restrict_applications_selector_build_app_filter (MctRestrictApplicationsSelector *self,
|
||||
MctAppFilterBuilder *builder);
|
||||
|
||||
const gchar *mct_restrict_applications_selector_get_search (MctRestrictApplicationsSelector *self);
|
||||
void mct_restrict_applications_selector_set_search (MctRestrictApplicationsSelector *self,
|
||||
const gchar *search);
|
||||
|
||||
G_END_DECLS
|
||||
|
|
|
@ -4,29 +4,37 @@
|
|||
<requires lib="gtk+" version="3.12"/>
|
||||
<template class="MctRestrictApplicationsSelector" parent="GtkBox">
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<object class="GtkListBox" id="listbox">
|
||||
<property name="hexpand">True</property>
|
||||
<property name="hscrollbar-policy">never</property>
|
||||
<property name="min-content-height">100</property>
|
||||
<property name="max-content-height">400</property>
|
||||
<property name="propagate-natural-height">True</property>
|
||||
<property name="shadow-type">etched-in</property>
|
||||
<property name="selection-mode">none</property>
|
||||
|
||||
<child>
|
||||
<object class="GtkListBox" id="listbox">
|
||||
<property name="visible">True</property>
|
||||
<property name="selection-mode">none</property>
|
||||
|
||||
<child type="placeholder">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">No applications found to restrict.</property>
|
||||
</object>
|
||||
</child>
|
||||
<child type="placeholder">
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="yes">No applications found to restrict.</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">12</property>
|
||||
</object>
|
||||
</child>
|
||||
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</template>
|
||||
|
||||
<object class="GListStore" id="apps">
|
||||
<property name="item-type">GAppInfo</property>
|
||||
</object>
|
||||
|
||||
<object class="GtkFilterListModel" id="filtered_apps">
|
||||
<property name="model">apps</property>
|
||||
<property name="filter">search_filter</property>
|
||||
</object>
|
||||
|
||||
<object class="GtkStringFilter" id="search_filter">
|
||||
<property name="expression">
|
||||
<closure type="gchararray" function="app_info_dup_name" />
|
||||
</property>
|
||||
</object>
|
||||
</interface>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
/* FIXME: This ‘negative’ variant of a GtkSwitch should probably be
|
||||
* upstreamed to GTK. See https://gitlab.gnome.org/GNOME/gtk/issues/2470 */
|
||||
switch:checked.restricts {
|
||||
background-color: #fffd33;
|
||||
background-color: @yellow_5;
|
||||
}
|
||||
|
||||
switch:checked.restricts, switch:checked.restricts slider {
|
||||
border-color: #ffd52b;
|
||||
border-color: @yellow_3;
|
||||
}
|
||||
|
||||
switch:disabled.restricts {
|
||||
|
@ -14,5 +14,5 @@ switch:disabled.restricts {
|
|||
}
|
||||
|
||||
switch:disabled.restricts slider {
|
||||
border-color: #bfb8b1;
|
||||
filter: grayscale(100%);
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
#include "config.h"
|
||||
|
||||
#include <appstream-glib.h>
|
||||
#include <appstream.h>
|
||||
#include <libmalcontent/malcontent.h>
|
||||
#include <locale.h>
|
||||
#include <gio/gio.h>
|
||||
|
@ -30,7 +30,6 @@
|
|||
#include <glib/gi18n-lib.h>
|
||||
#include <strings.h>
|
||||
|
||||
#include "gs-content-rating.h"
|
||||
#include "restrict-applications-dialog.h"
|
||||
#include "user-controls.h"
|
||||
|
||||
|
@ -74,22 +73,19 @@ static const guint32 oars_disabled_age = (guint32) -1;
|
|||
*/
|
||||
struct _MctUserControls
|
||||
{
|
||||
GtkGrid parent_instance;
|
||||
AdwBin parent_instance;
|
||||
|
||||
GtkLabel *description_label;
|
||||
GMenu *age_menu;
|
||||
GtkSwitch *restrict_software_installation_switch;
|
||||
GtkLabel *restrict_software_installation_description;
|
||||
AdwActionRow *restrict_software_installation_row;
|
||||
GtkSwitch *restrict_web_browsers_switch;
|
||||
GtkLabel *restrict_web_browsers_description;
|
||||
GtkButton *oars_button;
|
||||
GtkLabel *oars_button_label;
|
||||
GtkPopover *oars_popover;
|
||||
AdwActionRow *restrict_web_browsers_row;
|
||||
GtkMenuButton *oars_button;
|
||||
GtkPopoverMenu *oars_popover;
|
||||
MctRestrictApplicationsDialog *restrict_applications_dialog;
|
||||
GtkLabel *restrict_applications_description;
|
||||
GtkListBoxRow *restrict_applications_row;
|
||||
|
||||
GtkListBox *application_usage_permissions_listbox;
|
||||
GtkListBox *software_installation_permissions_listbox;
|
||||
AdwActionRow *restrict_applications_row;
|
||||
|
||||
GSimpleActionGroup *action_group; /* (owned) */
|
||||
|
||||
|
@ -112,6 +108,7 @@ struct _MctUserControls
|
|||
ActUserAccountType user_account_type;
|
||||
gchar *user_locale; /* (nullable) (owned) */
|
||||
gchar *user_display_name; /* (nullable) (owned) */
|
||||
gchar *description; /* (nullable) (owned) */
|
||||
};
|
||||
|
||||
static gboolean blocklist_apps_cb (gpointer data);
|
||||
|
@ -124,20 +121,12 @@ static void on_restrict_web_browsers_switch_active_changed_cb (GtkSwitch
|
|||
GParamSpec *pspec,
|
||||
MctUserControls *self);
|
||||
|
||||
static void on_restrict_applications_button_clicked_cb (GtkButton *button,
|
||||
gpointer user_data);
|
||||
static void on_restrict_applications_action_activated (GSimpleAction *action,
|
||||
GVariant *param,
|
||||
gpointer user_data);
|
||||
|
||||
static gboolean on_restrict_applications_dialog_delete_event_cb (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
gpointer user_data);
|
||||
|
||||
static void on_restrict_applications_dialog_response_cb (GtkDialog *dialog,
|
||||
gint response_id,
|
||||
gpointer user_data);
|
||||
|
||||
static void on_application_usage_permissions_listbox_activated_cb (GtkListBox *list_box,
|
||||
GtkListBoxRow *row,
|
||||
gpointer user_data);
|
||||
static gboolean on_restrict_applications_dialog_close_request_cb (GtkWidget *widget,
|
||||
gpointer user_data);
|
||||
|
||||
static void on_set_age_action_activated (GSimpleAction *action,
|
||||
GVariant *param,
|
||||
|
@ -147,7 +136,7 @@ static void on_permission_allowed_cb (GObject *obj,
|
|||
GParamSpec *pspec,
|
||||
gpointer user_data);
|
||||
|
||||
G_DEFINE_TYPE (MctUserControls, mct_user_controls, GTK_TYPE_GRID)
|
||||
G_DEFINE_TYPE (MctUserControls, mct_user_controls, ADW_TYPE_BIN)
|
||||
|
||||
typedef enum
|
||||
{
|
||||
|
@ -158,23 +147,25 @@ typedef enum
|
|||
PROP_USER_LOCALE,
|
||||
PROP_USER_DISPLAY_NAME,
|
||||
PROP_DBUS_CONNECTION,
|
||||
PROP_DESCRIPTION,
|
||||
} MctUserControlsProperty;
|
||||
|
||||
static GParamSpec *properties[PROP_DBUS_CONNECTION + 1];
|
||||
static GParamSpec *properties[PROP_DESCRIPTION + 1];
|
||||
|
||||
static const GActionEntry actions[] = {
|
||||
{ "set-age", on_set_age_action_activated, "u", NULL, NULL, { 0, }}
|
||||
{ "set-age", on_set_age_action_activated, "u", NULL, NULL, { 0, }},
|
||||
{ "restrict-applications", on_restrict_applications_action_activated, NULL, NULL, NULL, { 0, }}
|
||||
};
|
||||
|
||||
/* Auxiliary methods */
|
||||
|
||||
static GsContentRatingSystem
|
||||
static AsContentRatingSystem
|
||||
get_content_rating_system (MctUserControls *self)
|
||||
{
|
||||
if (self->user_locale == NULL)
|
||||
return GS_CONTENT_RATING_SYSTEM_UNKNOWN;
|
||||
return AS_CONTENT_RATING_SYSTEM_UNKNOWN;
|
||||
|
||||
return gs_utils_content_rating_system_from_locale (self->user_locale);
|
||||
return as_content_rating_system_from_locale (self->user_locale);
|
||||
}
|
||||
|
||||
static const gchar *
|
||||
|
@ -290,7 +281,7 @@ update_restricted_apps (MctUserControls *self)
|
|||
static void
|
||||
update_categories_from_language (MctUserControls *self)
|
||||
{
|
||||
GsContentRatingSystem rating_system;
|
||||
AsContentRatingSystem rating_system;
|
||||
g_auto(GStrv) entries = NULL;
|
||||
const gchar *rating_system_str;
|
||||
const guint *ages;
|
||||
|
@ -298,12 +289,12 @@ update_categories_from_language (MctUserControls *self)
|
|||
g_autofree gchar *disabled_action = NULL;
|
||||
|
||||
rating_system = get_content_rating_system (self);
|
||||
rating_system_str = gs_content_rating_system_to_str (rating_system);
|
||||
rating_system_str = as_content_rating_system_to_string (rating_system);
|
||||
|
||||
g_debug ("Using rating system %s", rating_system_str);
|
||||
|
||||
entries = gs_utils_content_rating_get_values (rating_system);
|
||||
ages = gs_utils_content_rating_get_ages (rating_system, &n_ages);
|
||||
entries = as_content_rating_system_get_formatted_ages (rating_system);
|
||||
ages = as_content_rating_system_get_csm_ages (rating_system, &n_ages);
|
||||
|
||||
/* Fill in the age menu */
|
||||
g_menu_remove_all (self->age_menu);
|
||||
|
@ -357,7 +348,7 @@ G_STATIC_ASSERT ((int) MCT_APP_FILTER_OARS_VALUE_INTENSE == (int) AS_CONTENT_RAT
|
|||
static void
|
||||
update_oars_level (MctUserControls *self)
|
||||
{
|
||||
GsContentRatingSystem rating_system;
|
||||
AsContentRatingSystem rating_system;
|
||||
g_autofree gchar *rating_age_category = NULL;
|
||||
guint maximum_age, selected_age;
|
||||
gsize i;
|
||||
|
@ -376,7 +367,7 @@ update_oars_level (MctUserControls *self)
|
|||
|
||||
oars_value = mct_app_filter_get_oars_value (self->filter, oars_categories[i]);
|
||||
all_categories_unset &= (oars_value == MCT_APP_FILTER_OARS_VALUE_UNKNOWN);
|
||||
age = as_content_rating_id_value_to_csm_age (oars_categories[i], (AsContentRatingValue) oars_value);
|
||||
age = as_content_rating_attribute_to_csm_age (oars_categories[i], (AsContentRatingValue) oars_value);
|
||||
|
||||
g_debug ("OARS value for '%s': %s", oars_categories[i], oars_value_to_string (oars_value));
|
||||
|
||||
|
@ -388,7 +379,7 @@ update_oars_level (MctUserControls *self)
|
|||
all_categories_unset ? "all categories unset" : "some categories set");
|
||||
|
||||
rating_system = get_content_rating_system (self);
|
||||
rating_age_category = gs_utils_content_rating_age_to_str (rating_system, maximum_age);
|
||||
rating_age_category = as_content_rating_system_format_age (rating_system, maximum_age);
|
||||
|
||||
/* Unrestricted? */
|
||||
if (rating_age_category == NULL || all_categories_unset)
|
||||
|
@ -402,7 +393,7 @@ update_oars_level (MctUserControls *self)
|
|||
selected_age = maximum_age;
|
||||
}
|
||||
|
||||
gtk_label_set_label (self->oars_button_label, rating_age_category);
|
||||
gtk_menu_button_set_label (self->oars_button, rating_age_category);
|
||||
self->selected_age = selected_age;
|
||||
}
|
||||
|
||||
|
@ -473,19 +464,21 @@ update_labels_from_name (MctUserControls *self)
|
|||
{
|
||||
g_autofree gchar *l = NULL;
|
||||
|
||||
gtk_label_set_markup (self->description_label, self->description);
|
||||
|
||||
/* Translators: The placeholder is a user’s display name. */
|
||||
l = g_strdup_printf (_("Prevents %s from running web browsers. Limited web content may still be available in other applications."), self->user_display_name);
|
||||
gtk_label_set_label (self->restrict_web_browsers_description, l);
|
||||
adw_action_row_set_subtitle (self->restrict_web_browsers_row, l);
|
||||
g_clear_pointer (&l, g_free);
|
||||
|
||||
/* Translators: The placeholder is a user’s display name. */
|
||||
l = g_strdup_printf (_("Prevents specified applications from being used by %s."), self->user_display_name);
|
||||
gtk_label_set_label (self->restrict_applications_description, l);
|
||||
adw_action_row_set_subtitle (self->restrict_applications_row, l);
|
||||
g_clear_pointer (&l, g_free);
|
||||
|
||||
/* Translators: The placeholder is a user’s display name. */
|
||||
l = g_strdup_printf (_("Prevents %s from installing applications."), self->user_display_name);
|
||||
gtk_label_set_label (self->restrict_software_installation_description, l);
|
||||
adw_action_row_set_subtitle (self->restrict_software_installation_row, l);
|
||||
g_clear_pointer (&l, g_free);
|
||||
}
|
||||
|
||||
|
@ -586,29 +579,29 @@ on_restrict_web_browsers_switch_active_changed_cb (GtkSwitch *s,
|
|||
}
|
||||
|
||||
static void
|
||||
on_restrict_applications_button_clicked_cb (GtkButton *button,
|
||||
gpointer user_data)
|
||||
on_restrict_applications_action_activated (GSimpleAction *action,
|
||||
GVariant *param,
|
||||
gpointer user_data)
|
||||
{
|
||||
MctUserControls *self = MCT_USER_CONTROLS (user_data);
|
||||
GtkWidget *toplevel;
|
||||
GtkRoot *root;
|
||||
|
||||
/* Show the restrict applications dialogue modally, making sure to update its
|
||||
* state first. */
|
||||
toplevel = gtk_widget_get_toplevel (GTK_WIDGET (self));
|
||||
if (GTK_IS_WINDOW (toplevel))
|
||||
root = gtk_widget_get_root (GTK_WIDGET (self));
|
||||
if (GTK_IS_WINDOW (root))
|
||||
gtk_window_set_transient_for (GTK_WINDOW (self->restrict_applications_dialog),
|
||||
GTK_WINDOW (toplevel));
|
||||
GTK_WINDOW (root));
|
||||
|
||||
mct_restrict_applications_dialog_set_user_display_name (self->restrict_applications_dialog, self->user_display_name);
|
||||
mct_restrict_applications_dialog_set_app_filter (self->restrict_applications_dialog, self->filter);
|
||||
|
||||
gtk_widget_show (GTK_WIDGET (self->restrict_applications_dialog));
|
||||
gtk_window_present (GTK_WINDOW (self->restrict_applications_dialog));
|
||||
}
|
||||
|
||||
static gboolean
|
||||
on_restrict_applications_dialog_delete_event_cb (GtkWidget *widget,
|
||||
GdkEvent *event,
|
||||
gpointer user_data)
|
||||
on_restrict_applications_dialog_close_request_cb (GtkWidget *widget,
|
||||
gpointer user_data)
|
||||
{
|
||||
MctUserControls *self = MCT_USER_CONTROLS (user_data);
|
||||
|
||||
|
@ -623,33 +616,12 @@ on_restrict_applications_dialog_delete_event_cb (GtkWidget *widget,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
on_restrict_applications_dialog_response_cb (GtkDialog *dialog,
|
||||
gint response_id,
|
||||
gpointer user_data)
|
||||
{
|
||||
MctUserControls *self = MCT_USER_CONTROLS (user_data);
|
||||
|
||||
on_restrict_applications_dialog_delete_event_cb (GTK_WIDGET (dialog), NULL, self);
|
||||
}
|
||||
|
||||
static void
|
||||
on_application_usage_permissions_listbox_activated_cb (GtkListBox *list_box,
|
||||
GtkListBoxRow *row,
|
||||
gpointer user_data)
|
||||
{
|
||||
MctUserControls *self = MCT_USER_CONTROLS (user_data);
|
||||
|
||||
if (row == self->restrict_applications_row)
|
||||
on_restrict_applications_button_clicked_cb (NULL, self);
|
||||
}
|
||||
|
||||
static void
|
||||
on_set_age_action_activated (GSimpleAction *action,
|
||||
GVariant *param,
|
||||
gpointer user_data)
|
||||
{
|
||||
GsContentRatingSystem rating_system;
|
||||
AsContentRatingSystem rating_system;
|
||||
MctUserControls *self;
|
||||
g_auto(GStrv) entries = NULL;
|
||||
const guint *ages;
|
||||
|
@ -661,18 +633,18 @@ on_set_age_action_activated (GSimpleAction *action,
|
|||
age = g_variant_get_uint32 (param);
|
||||
|
||||
rating_system = get_content_rating_system (self);
|
||||
entries = gs_utils_content_rating_get_values (rating_system);
|
||||
ages = gs_utils_content_rating_get_ages (rating_system, &n_ages);
|
||||
entries = as_content_rating_system_get_formatted_ages (rating_system);
|
||||
ages = as_content_rating_system_get_csm_ages (rating_system, &n_ages);
|
||||
|
||||
/* Update the button */
|
||||
if (age == oars_disabled_age)
|
||||
gtk_label_set_label (self->oars_button_label, _("All Ages"));
|
||||
gtk_menu_button_set_label (self->oars_button, _("All Ages"));
|
||||
|
||||
for (i = 0; age != oars_disabled_age && entries[i] != NULL; i++)
|
||||
{
|
||||
if (ages[i] == age)
|
||||
{
|
||||
gtk_label_set_label (self->oars_button_label, entries[i]);
|
||||
gtk_menu_button_set_label (self->oars_button, entries[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -689,53 +661,6 @@ on_set_age_action_activated (GSimpleAction *action,
|
|||
schedule_update_blocklisted_apps (self);
|
||||
}
|
||||
|
||||
static void
|
||||
list_box_header_func (GtkListBoxRow *row,
|
||||
GtkListBoxRow *before,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkWidget *current;
|
||||
|
||||
if (before == NULL)
|
||||
{
|
||||
gtk_list_box_row_set_header (row, NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
current = gtk_list_box_row_get_header (row);
|
||||
if (current == NULL)
|
||||
{
|
||||
current = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
|
||||
gtk_widget_show (current);
|
||||
gtk_list_box_row_set_header (row, current);
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
on_keynav_failed (GtkWidget *listbox,
|
||||
GtkDirectionType direction,
|
||||
gpointer user_data)
|
||||
{
|
||||
MctUserControls *self = MCT_USER_CONTROLS (user_data);
|
||||
GtkWidget *new_widget = NULL;
|
||||
|
||||
/* There are currently two listboxes, so don’t over-complicate this function. */
|
||||
if (listbox == GTK_WIDGET (self->application_usage_permissions_listbox) &&
|
||||
direction == GTK_DIR_DOWN)
|
||||
new_widget = GTK_WIDGET (self->software_installation_permissions_listbox);
|
||||
else if (listbox == GTK_WIDGET (self->software_installation_permissions_listbox) &&
|
||||
direction == GTK_DIR_UP)
|
||||
new_widget = GTK_WIDGET (self->application_usage_permissions_listbox);
|
||||
|
||||
if (new_widget != NULL)
|
||||
{
|
||||
gtk_widget_child_focus (new_widget, direction);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* GObject overrides */
|
||||
|
||||
static void
|
||||
|
@ -777,6 +702,7 @@ mct_user_controls_finalize (GObject *object)
|
|||
g_clear_object (&self->user);
|
||||
g_clear_pointer (&self->user_locale, g_free);
|
||||
g_clear_pointer (&self->user_display_name, g_free);
|
||||
g_clear_pointer (&self->description, g_free);
|
||||
|
||||
if (self->permission != NULL && self->permission_allowed_id != 0)
|
||||
{
|
||||
|
@ -851,6 +777,10 @@ mct_user_controls_get_property (GObject *object,
|
|||
g_value_set_object (value, self->dbus_connection);
|
||||
break;
|
||||
|
||||
case PROP_DESCRIPTION:
|
||||
g_value_set_string (value, self->description);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
|
@ -896,6 +826,10 @@ mct_user_controls_set_property (GObject *object,
|
|||
self->dbus_connection = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
case PROP_DESCRIPTION:
|
||||
mct_user_controls_set_description (self, g_value_get_string (value));
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
}
|
||||
|
@ -1014,6 +948,25 @@ mct_user_controls_class_init (MctUserControlsClass *klass)
|
|||
G_PARAM_STATIC_STRINGS |
|
||||
G_PARAM_EXPLICIT_NOTIFY);
|
||||
|
||||
/**
|
||||
* MctUserControls:description: (nullable)
|
||||
*
|
||||
* The description for the currently selected user account, or %NULL if no
|
||||
* user is selected.
|
||||
*
|
||||
* If set, it must be valid UTF-8 and non-empty.
|
||||
*
|
||||
* Since: 0.11.0
|
||||
*/
|
||||
properties[PROP_DESCRIPTION] =
|
||||
g_param_spec_string ("description",
|
||||
"Description",
|
||||
"The description for the currently selected user account, or %NULL if no user is selected.",
|
||||
NULL,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS |
|
||||
G_PARAM_EXPLICIT_NOTIFY);
|
||||
|
||||
/**
|
||||
* MctUserControls:dbus-connection: (not nullable)
|
||||
*
|
||||
|
@ -1037,32 +990,24 @@ mct_user_controls_class_init (MctUserControlsClass *klass)
|
|||
gtk_widget_class_set_template_from_resource (widget_class, "/org/freedesktop/MalcontentUi/ui/user-controls.ui");
|
||||
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, age_menu);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, description_label);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, restrict_software_installation_switch);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, restrict_software_installation_description);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, restrict_software_installation_row);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, restrict_web_browsers_switch);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, restrict_web_browsers_description);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, restrict_web_browsers_row);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, oars_button);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, oars_button_label);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, oars_popover);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, restrict_applications_dialog);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, restrict_applications_description);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, restrict_applications_row);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, application_usage_permissions_listbox);
|
||||
gtk_widget_class_bind_template_child (widget_class, MctUserControls, software_installation_permissions_listbox);
|
||||
|
||||
gtk_widget_class_bind_template_callback (widget_class, on_restrict_installation_switch_active_changed_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, on_restrict_web_browsers_switch_active_changed_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, on_restrict_applications_button_clicked_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, on_restrict_applications_dialog_delete_event_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, on_restrict_applications_dialog_response_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, on_application_usage_permissions_listbox_activated_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, on_keynav_failed);
|
||||
gtk_widget_class_bind_template_callback (widget_class, on_restrict_applications_dialog_close_request_cb);
|
||||
}
|
||||
|
||||
static void
|
||||
mct_user_controls_init (MctUserControls *self)
|
||||
{
|
||||
g_autoptr(GError) error = NULL;
|
||||
g_autoptr(GtkCssProvider) provider = NULL;
|
||||
|
||||
/* Ensure the types used in the UI are registered. */
|
||||
|
@ -1073,9 +1018,9 @@ mct_user_controls_init (MctUserControls *self)
|
|||
provider = gtk_css_provider_new ();
|
||||
gtk_css_provider_load_from_resource (provider,
|
||||
"/org/freedesktop/MalcontentUi/ui/restricts-switch.css");
|
||||
gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
|
||||
GTK_STYLE_PROVIDER (provider),
|
||||
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION - 1);
|
||||
gtk_style_context_add_provider_for_display (gdk_display_get_default (),
|
||||
GTK_STYLE_PROVIDER (provider),
|
||||
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION - 1);
|
||||
|
||||
self->selected_age = (guint) -1;
|
||||
|
||||
|
@ -1091,13 +1036,7 @@ mct_user_controls_init (MctUserControls *self)
|
|||
"permissions",
|
||||
G_ACTION_GROUP (self->action_group));
|
||||
|
||||
gtk_popover_bind_model (self->oars_popover, G_MENU_MODEL (self->age_menu), NULL);
|
||||
|
||||
/* Automatically add separators between rows. */
|
||||
gtk_list_box_set_header_func (self->application_usage_permissions_listbox,
|
||||
list_box_header_func, NULL, NULL);
|
||||
gtk_list_box_set_header_func (self->software_installation_permissions_listbox,
|
||||
list_box_header_func, NULL, NULL);
|
||||
gtk_popover_menu_set_menu_model (self->oars_popover, G_MENU_MODEL (self->age_menu));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1462,6 +1401,38 @@ mct_user_controls_set_user_display_name (MctUserControls *self,
|
|||
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_USER_DISPLAY_NAME]);
|
||||
}
|
||||
|
||||
/**
|
||||
* mct_user_controls_set_description:
|
||||
* @self: an #MctUserControls
|
||||
* @description: (nullable) (transfer none): the description shown
|
||||
* above the controls, or %NULL if none.
|
||||
*
|
||||
* Set the value of #MctUserControls:description.
|
||||
*
|
||||
* Since: 0.11.0
|
||||
*/
|
||||
void
|
||||
mct_user_controls_set_description (MctUserControls *self,
|
||||
const gchar *description)
|
||||
{
|
||||
g_return_if_fail (MCT_IS_USER_CONTROLS (self));
|
||||
g_return_if_fail (description != NULL);
|
||||
|
||||
/* If we have pending unsaved changes from the previous user, force them to be
|
||||
* saved first. */
|
||||
flush_update_blocklisted_apps (self);
|
||||
|
||||
if (g_strcmp0 (self->description, description) == 0)
|
||||
return;
|
||||
|
||||
g_clear_pointer (&self->description, g_free);
|
||||
self->description = g_strdup (description);
|
||||
|
||||
setup_parental_control_settings (self);
|
||||
|
||||
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_DESCRIPTION]);
|
||||
}
|
||||
|
||||
/**
|
||||
* mct_user_controls_build_app_filter:
|
||||
* @self: an #MctUserControls
|
||||
|
@ -1504,7 +1475,7 @@ mct_user_controls_build_app_filter (MctUserControls *self,
|
|||
const gchar *oars_category;
|
||||
|
||||
oars_category = oars_categories[i];
|
||||
oars_value = (MctAppFilterOarsValue) as_content_rating_id_csm_age_to_value (oars_category, self->selected_age);
|
||||
oars_value = (MctAppFilterOarsValue) as_content_rating_attribute_from_csm_age (oars_category, self->selected_age);
|
||||
|
||||
g_debug ("\t\t → %s: %s", oars_category, oars_value_to_string (oars_value));
|
||||
|
||||
|
|
|
@ -27,13 +27,14 @@
|
|||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <adwaita.h>
|
||||
#include <libmalcontent/malcontent.h>
|
||||
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define MCT_TYPE_USER_CONTROLS (mct_user_controls_get_type())
|
||||
G_DECLARE_FINAL_TYPE (MctUserControls, mct_user_controls, MCT, USER_CONTROLS, GtkGrid)
|
||||
G_DECLARE_FINAL_TYPE (MctUserControls, mct_user_controls, MCT, USER_CONTROLS, AdwBin)
|
||||
|
||||
ActUser *mct_user_controls_get_user (MctUserControls *self);
|
||||
void mct_user_controls_set_user (MctUserControls *self,
|
||||
|
@ -59,6 +60,9 @@ const gchar *mct_user_controls_get_user_display_name (MctUserControls *self);
|
|||
void mct_user_controls_set_user_display_name (MctUserControls *self,
|
||||
const gchar *user_display_name);
|
||||
|
||||
void mct_user_controls_set_description (MctUserControls *self,
|
||||
const gchar *description);
|
||||
|
||||
void mct_user_controls_build_app_filter (MctUserControls *self,
|
||||
MctAppFilterBuilder *builder);
|
||||
|
||||
|
|
|
@ -2,491 +2,133 @@
|
|||
<!-- Copyright © 2018, 2019, 2020 Endless, Inc. -->
|
||||
<interface domain="malcontent">
|
||||
<requires lib="gtk+" version="3.12"/>
|
||||
<template class="MctUserControls" parent="GtkGrid">
|
||||
<property name="visible">True</property>
|
||||
<property name="row-spacing">6</property>
|
||||
<property name="column-spacing">12</property>
|
||||
<property name="valign">start</property>
|
||||
|
||||
<!-- Application Usage Restrictions -->
|
||||
<template class="MctUserControls" parent="AdwBin">
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0.0</property>
|
||||
<property name="label" translatable="yes">Application Usage Restrictions</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold" />
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top-attach">0</property>
|
||||
<property name="left-attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkFrame">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="label_xalign">0</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<object class="GtkBox">
|
||||
<property name="spacing">24</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkListBox" id="application_usage_permissions_listbox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="selection_mode">none</property>
|
||||
<property name="activate-on-single-click">True</property>
|
||||
<signal name="row-activated" handler="on_application_usage_permissions_listbox_activated_cb" object="MctUserControls" swapped="no" />
|
||||
<signal name="keynav-failed" handler="on_keynav_failed" object="MctUserControls" swapped="no" />
|
||||
<object class="AdwPreferencesGroup">
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="activatable">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<object class="GtkLabel" id="description_label">
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0.0</property>
|
||||
<property name="yalign">0.0</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
|
||||
<!-- Application Usage Restrictions -->
|
||||
<child>
|
||||
<object class="AdwPreferencesGroup">
|
||||
<property name="title" translatable="yes">Application Usage Restrictions</property>
|
||||
<child>
|
||||
<object class="AdwActionRow" id="restrict_web_browsers_row">
|
||||
<property name="title" translatable="yes">Restrict _Web Browsers</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="activatable_widget">restrict_web_browsers_switch</property>
|
||||
<!-- Set dynamically from user-controls.c: -->
|
||||
<property name="subtitle">Prevents {username} from running web browsers. Limited web content may still be available in other applications.</property>
|
||||
<property name="subtitle_lines">0</property>
|
||||
<property name="focusable">False</property>
|
||||
<child>
|
||||
<object class="GtkGrid">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<object class="GtkSwitch" id="restrict_web_browsers_switch">
|
||||
<property name="halign">end</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="margin-left">12</property>
|
||||
<property name="margin-right">12</property>
|
||||
<property name="margin-top">8</property>
|
||||
<property name="margin-bottom">8</property>
|
||||
<property name="row-spacing">4</property>
|
||||
<property name="column-spacing">4</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="restrict_web_browsers_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Restrict _Web Browsers</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">restrict_web_browsers_switch</property>
|
||||
<accessibility>
|
||||
<relation target="restrict_web_browsers_switch" type="label-for"/>
|
||||
</accessibility>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="restrict_web_browsers_description">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="ellipsize">none</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<!-- Set dynamically from user-controls.c: -->
|
||||
<property name="label">Prevents {username} from running web browsers. Limited web content may still be available in other applications.</property>
|
||||
<attributes>
|
||||
<attribute name="scale" value="0.88"/>
|
||||
</attributes>
|
||||
<style>
|
||||
<class name="dim-label" />
|
||||
</style>
|
||||
<accessibility>
|
||||
<relation target="restrict_web_browsers_switch" type="description-for"/>
|
||||
</accessibility>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="restrict_web_browsers_switch">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="valign">center</property>
|
||||
<signal name="notify::active" handler="on_restrict_web_browsers_switch_active_changed_cb" object="MctUserControls" swapped="no" />
|
||||
<style>
|
||||
<class name="restricts" />
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">0</property>
|
||||
<property name="height">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<signal name="notify::active" handler="on_restrict_web_browsers_switch_active_changed_cb" object="MctUserControls" swapped="no" />
|
||||
<style>
|
||||
<class name="restricts" />
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkListBoxRow" id="restrict_applications_row">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<object class="AdwActionRow" id="restrict_applications_row">
|
||||
<property name="activatable">True</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="title" translatable="yes">_Restrict Applications</property>
|
||||
<property name="use_underline">True</property>
|
||||
<!-- Set dynamically from user-controls.c: -->
|
||||
<property name="subtitle">Prevents specified applications from being used by {username}.</property>
|
||||
<property name="subtitle_lines">0</property>
|
||||
<property name="action-name">permissions.restrict-applications</property>
|
||||
<child>
|
||||
<object class="GtkGrid">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="margin-left">12</property>
|
||||
<property name="margin-right">12</property>
|
||||
<property name="margin-top">8</property>
|
||||
<property name="margin-bottom">8</property>
|
||||
<property name="row-spacing">4</property>
|
||||
<property name="column-spacing">4</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="restrict_applications_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">_Restrict Applications</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">restrict_applications_button</property>
|
||||
<accessibility>
|
||||
<relation target="restrict_applications_button" type="label-for"/>
|
||||
</accessibility>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="restrict_applications_description">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="ellipsize">none</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<!-- Set dynamically from user-controls.c: -->
|
||||
<property name="label">Prevents specified applications from being used by {username}.</property>
|
||||
<attributes>
|
||||
<attribute name="scale" value="0.88"/>
|
||||
</attributes>
|
||||
<style>
|
||||
<class name="dim-label" />
|
||||
</style>
|
||||
<accessibility>
|
||||
<relation target="restrict_applications_button" type="description-for"/>
|
||||
</accessibility>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="restrict_applications_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="relief">none</property>
|
||||
<signal name="clicked" handler="on_restrict_applications_button_clicked_cb" object="MctUserControls" swapped="no" />
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
<property name="icon-size">4</property><!-- GTK_ICON_SIZE_BUTTON -->
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">0</property>
|
||||
<property name="height">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top-attach">1</property>
|
||||
<property name="left-attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<!-- Software Installation Restrictions -->
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="xalign">0.0</property>
|
||||
<property name="label" translatable="yes">Software Installation Restrictions</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold" />
|
||||
</attributes>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top-attach">2</property>
|
||||
<property name="left-attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkFrame">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="label_xalign">0</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<!-- Software Installation Restrictions -->
|
||||
<child>
|
||||
<object class="GtkListBox" id="software_installation_permissions_listbox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="selection_mode">none</property>
|
||||
<property name="activate_on_single_click">False</property>
|
||||
<signal name="keynav-failed" handler="on_keynav_failed" object="MctUserControls" swapped="no" />
|
||||
<object class="AdwPreferencesGroup">
|
||||
<property name="title" translatable="yes">Software Installation Restrictions</property>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<object class="AdwActionRow" id="restrict_software_installation_row">
|
||||
<property name="visible" bind-source="restrict_software_installation_switch" bind-property="visible" bind-flags="default|sync-create" />
|
||||
<property name="can_focus">True</property>
|
||||
<property name="activatable">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="title" translatable="yes">Restrict Application _Installation</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="activatable_widget">restrict_software_installation_switch</property>
|
||||
<!-- Set dynamically from user-controls.c: -->
|
||||
<property name="subtitle">Prevents {username} from installing applications.</property>
|
||||
<property name="subtitle_lines">0</property>
|
||||
<property name="focusable">False</property>
|
||||
<child>
|
||||
<object class="GtkGrid">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<object class="GtkSwitch" id="restrict_software_installation_switch">
|
||||
<property name="halign">end</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="margin-left">12</property>
|
||||
<property name="margin-right">12</property>
|
||||
<property name="margin-top">8</property>
|
||||
<property name="margin-bottom">8</property>
|
||||
<property name="row-spacing">4</property>
|
||||
<property name="column-spacing">4</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="restrict_software_installation_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Restrict Application _Installation</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">restrict_software_installation_switch</property>
|
||||
<accessibility>
|
||||
<relation target="restrict_software_installation_switch" type="label-for"/>
|
||||
</accessibility>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="restrict_software_installation_description">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="ellipsize">none</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<!-- Set dynamically from user-controls.c: -->
|
||||
<property name="label">Prevents {username} from installing applications.</property>
|
||||
<attributes>
|
||||
<attribute name="scale" value="0.88"/>
|
||||
</attributes>
|
||||
<style>
|
||||
<class name="dim-label" />
|
||||
</style>
|
||||
<accessibility>
|
||||
<relation target="restrict_software_installation_switch" type="description-for"/>
|
||||
</accessibility>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="restrict_software_installation_switch">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="valign">center</property>
|
||||
<signal name="notify::active" handler="on_restrict_installation_switch_active_changed_cb" object="MctUserControls" swapped="no" />
|
||||
<style>
|
||||
<class name="restricts" />
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">0</property>
|
||||
<property name="height">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<signal name="notify::active" handler="on_restrict_installation_switch_active_changed_cb" object="MctUserControls" swapped="no" />
|
||||
<style>
|
||||
<class name="restricts" />
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="activatable">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<object class="AdwActionRow">
|
||||
<property name="title" translatable="yes">Application _Suitability</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="activatable_widget">oars_button</property>
|
||||
<property name="subtitle" translatable="yes">Restricts the browsing or installation of applications unsuitable for this age or younger.</property>
|
||||
<property name="subtitle_lines">0</property>
|
||||
<property name="focusable">False</property>
|
||||
<child>
|
||||
<object class="GtkGrid">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<object class="GtkMenuButton" id="oars_button">
|
||||
<property name="halign">end</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="margin-left">12</property>
|
||||
<property name="margin-right">12</property>
|
||||
<property name="margin-top">8</property>
|
||||
<property name="margin-bottom">8</property>
|
||||
<property name="row-spacing">4</property>
|
||||
<property name="column-spacing">4</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="oars_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Application _Suitability</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="mnemonic_widget">oars_button</property>
|
||||
<accessibility>
|
||||
<relation target="oars_button" type="label-for"/>
|
||||
<relation target="oars_button" type="flows-to"/>
|
||||
</accessibility>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="oars_description">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="ellipsize">none</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes">Restricts browsing or installation of applications to applications suitable for certain ages or above.</property>
|
||||
<attributes>
|
||||
<attribute name="scale" value="0.88"/>
|
||||
</attributes>
|
||||
<style>
|
||||
<class name="dim-label" />
|
||||
</style>
|
||||
<accessibility>
|
||||
<relation target="oars_button" type="description-for"/>
|
||||
</accessibility>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuButton" id="oars_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="direction">right</property>
|
||||
<property name="popover">oars_popover</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">horizontal</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="oars_button_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="label"></property>
|
||||
<property name="expand">True</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="xalign">0.0</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="icon-name">pan-down-symbolic</property>
|
||||
<property name="icon-size">4</property><!-- GTK_ICON_SIZE_BUTTON -->
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">0</property>
|
||||
<property name="height">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<property name="popover">oars_popover</property>
|
||||
<property name="always-show-arrow">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<style>
|
||||
<class name="content"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="top-attach">3</property>
|
||||
<property name="left-attach">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
</template>
|
||||
|
||||
<object class="GtkPopoverMenu" id="oars_popover">
|
||||
<accessibility>
|
||||
<relation target="oars_button" type="popup-for"/>
|
||||
</accessibility>
|
||||
</object>
|
||||
<object class="GtkPopoverMenu" id="oars_popover" />
|
||||
|
||||
<menu id="age_menu" />
|
||||
|
||||
<object class="GtkSizeGroup">
|
||||
<property name="mode">horizontal</property>
|
||||
<widgets>
|
||||
<widget name="oars_button" />
|
||||
<widget name="oars_popover" />
|
||||
</widgets>
|
||||
</object>
|
||||
|
||||
<object class="GtkSizeGroup">
|
||||
<property name="mode">horizontal</property>
|
||||
<widgets>
|
||||
<widget name="restrict_web_browsers_label" />
|
||||
<widget name="restrict_web_browsers_description" />
|
||||
<widget name="restrict_applications_label" />
|
||||
<widget name="restrict_applications_description" />
|
||||
<widget name="oars_label" />
|
||||
<widget name="restrict_software_installation_label" />
|
||||
</widgets>
|
||||
</object>
|
||||
|
||||
<object class="MctRestrictApplicationsDialog" id="restrict_applications_dialog">
|
||||
<property name="visible">False</property>
|
||||
<property name="modal">True</property>
|
||||
<property name="destroy-with-parent">False</property>
|
||||
<property name="use-header-bar">1</property>
|
||||
<signal name="delete-event" handler="on_restrict_applications_dialog_delete_event_cb" />
|
||||
<signal name="response" handler="on_restrict_applications_dialog_response_cb" />
|
||||
<signal name="close-request" handler="on_restrict_applications_dialog_close_request_cb" />
|
||||
</object>
|
||||
</interface>
|
||||
|
|
|
@ -48,6 +48,7 @@ typedef enum
|
|||
|
||||
struct _MctAppFilter
|
||||
{
|
||||
/*< private >*/
|
||||
gint ref_count;
|
||||
|
||||
uid_t user_id;
|
||||
|
|
|
@ -66,7 +66,7 @@ pkgconfig.generate(libmalcontent,
|
|||
)
|
||||
|
||||
libmalcontent_gir = gnome.generate_gir(libmalcontent,
|
||||
sources: libmalcontent_sources + libmalcontent_headers + libmalcontent_private_headers + enums,
|
||||
sources: libmalcontent_sources + libmalcontent_headers + enums,
|
||||
nsversion: libmalcontent_api_version,
|
||||
namespace: 'Malcontent',
|
||||
symbol_prefix: 'mct_',
|
||||
|
|
|
@ -50,6 +50,7 @@ typedef enum
|
|||
|
||||
struct _MctSessionLimits
|
||||
{
|
||||
/*< private >*/
|
||||
gint ref_count;
|
||||
|
||||
uid_t user_id;
|
||||
|
|
|
@ -297,6 +297,7 @@ def command_check_app_filter(user, arg, quiet=False, interactive=True):
|
|||
# when passing flatpak IDs as argument
|
||||
is_maybe_content_type = not is_maybe_flatpak_id and is_valid_content_type(arg)
|
||||
is_maybe_path = os.path.exists(arg)
|
||||
is_maybe_desktop_file = arg.endswith('.desktop')
|
||||
|
||||
recognised_types = sum([is_maybe_flatpak_id, is_maybe_flatpak_ref,
|
||||
is_maybe_content_type, is_maybe_path])
|
||||
|
@ -320,6 +321,11 @@ def command_check_app_filter(user, arg, quiet=False, interactive=True):
|
|||
# Content type
|
||||
is_allowed = app_filter.is_content_type_allowed(arg)
|
||||
noun = 'Content type'
|
||||
elif is_maybe_path and is_maybe_desktop_file
|
||||
path = os.path.abspath(arg)
|
||||
app_info = Gio.DesktopAppInfo.new_from_filename(path)
|
||||
is_allowed = app_filter.is_appinfo_allowed(app_info)
|
||||
noun = 'Desktop file'
|
||||
elif is_maybe_path:
|
||||
path = os.path.abspath(arg)
|
||||
is_allowed = app_filter.is_path_allowed(path)
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include <glib/gi18n-lib.h>
|
||||
#include <gio/gio.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <adwaita.h>
|
||||
#include <libmalcontent-ui/malcontent-ui.h>
|
||||
#include <polkit/polkit.h>
|
||||
|
||||
|
@ -76,8 +77,7 @@ struct _MctApplication
|
|||
MctUserSelector *user_selector;
|
||||
MctUserControls *user_controls;
|
||||
GtkStack *main_stack;
|
||||
GtkLabel *error_title;
|
||||
GtkLabel *error_message;
|
||||
AdwStatusPage *error_page;
|
||||
GtkLockButton *lock_button;
|
||||
GtkButton *user_accounts_panel_button;
|
||||
GtkLabel *help_label;
|
||||
|
@ -209,11 +209,9 @@ mct_application_activate (GApplication *application)
|
|||
self->main_stack = GTK_STACK (gtk_builder_get_object (builder, "main_stack"));
|
||||
self->user_selector = MCT_USER_SELECTOR (gtk_builder_get_object (builder, "user_selector"));
|
||||
self->user_controls = MCT_USER_CONTROLS (gtk_builder_get_object (builder, "user_controls"));
|
||||
self->error_title = GTK_LABEL (gtk_builder_get_object (builder, "error_title"));
|
||||
self->error_message = GTK_LABEL (gtk_builder_get_object (builder, "error_message"));
|
||||
self->error_page = ADW_STATUS_PAGE (gtk_builder_get_object (builder, "error_page"));
|
||||
self->lock_button = GTK_LOCK_BUTTON (gtk_builder_get_object (builder, "lock_button"));
|
||||
self->user_accounts_panel_button = GTK_BUTTON (gtk_builder_get_object (builder, "user_accounts_panel_button"));
|
||||
self->help_label = GTK_LABEL (gtk_builder_get_object (builder, "help_label"));
|
||||
|
||||
/* Connect signals. */
|
||||
g_signal_connect_object (self->user_selector, "notify::user",
|
||||
|
@ -230,7 +228,7 @@ mct_application_activate (GApplication *application)
|
|||
user_selector_notify_user_cb (G_OBJECT (self->user_selector), NULL, self);
|
||||
user_manager_notify_is_loaded_cb (G_OBJECT (self->user_manager), NULL, self);
|
||||
|
||||
gtk_widget_show (GTK_WIDGET (window));
|
||||
gtk_window_present (GTK_WINDOW (window));
|
||||
}
|
||||
|
||||
/* Bring the window to the front. */
|
||||
|
@ -250,6 +248,8 @@ mct_application_startup (GApplication *application)
|
|||
/* Chain up. */
|
||||
G_APPLICATION_CLASS (mct_application_parent_class)->startup (application);
|
||||
|
||||
adw_init ();
|
||||
|
||||
g_action_map_add_action_entries (G_ACTION_MAP (application), app_entries,
|
||||
G_N_ELEMENTS (app_entries), application);
|
||||
|
||||
|
@ -323,13 +323,16 @@ about_action_cb (GSimpleAction *action, GVariant *parameters, gpointer user_data
|
|||
}
|
||||
|
||||
static void
|
||||
help_action_cb (GSimpleAction *action, GVariant *parameters, gpointer user_data)
|
||||
on_malcontent_help_shown_finished_cb (GObject *source,
|
||||
GAsyncResult *result,
|
||||
gpointer user_data)
|
||||
{
|
||||
MctApplication *self = MCT_APPLICATION (user_data);
|
||||
g_autoptr(GError) local_error = NULL;
|
||||
|
||||
if (!gtk_show_uri_on_window (mct_application_get_main_window (self), "help:malcontent",
|
||||
gtk_get_current_event_time (), &local_error))
|
||||
if (!gtk_show_uri_full_finish (mct_application_get_main_window (self),
|
||||
result,
|
||||
&local_error))
|
||||
{
|
||||
GtkWidget *dialog = gtk_message_dialog_new (mct_application_get_main_window (self),
|
||||
GTK_DIALOG_MODAL,
|
||||
|
@ -337,13 +340,23 @@ help_action_cb (GSimpleAction *action, GVariant *parameters, gpointer user_data)
|
|||
GTK_BUTTONS_OK,
|
||||
_("The help contents could not be displayed"));
|
||||
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", local_error->message);
|
||||
|
||||
gtk_dialog_run (GTK_DIALOG (dialog));
|
||||
|
||||
gtk_widget_destroy (dialog);
|
||||
gtk_window_present (GTK_WINDOW (dialog));
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
help_action_cb (GSimpleAction *action, GVariant *parameters, gpointer user_data)
|
||||
{
|
||||
MctApplication *self = MCT_APPLICATION (user_data);
|
||||
|
||||
gtk_show_uri_full (mct_application_get_main_window (self),
|
||||
"help:malcontent",
|
||||
GDK_CURRENT_TIME,
|
||||
NULL,
|
||||
on_malcontent_help_shown_finished_cb,
|
||||
self);
|
||||
}
|
||||
|
||||
static void
|
||||
quit_action_cb (GSimpleAction *action, GVariant *parameters, gpointer user_data)
|
||||
{
|
||||
|
@ -371,10 +384,10 @@ update_main_stack (MctApplication *self)
|
|||
if ((is_user_manager_loaded && act_user_manager_no_service (self->user_manager)) ||
|
||||
self->permission_error != NULL)
|
||||
{
|
||||
gtk_label_set_label (self->error_title,
|
||||
_("Failed to load user data from the system"));
|
||||
gtk_label_set_label (self->error_message,
|
||||
_("Please make sure that the AccountsService is installed and enabled."));
|
||||
adw_status_page_set_title (self->error_page,
|
||||
_("Failed to load user data from the system"));
|
||||
adw_status_page_set_description (self->error_page,
|
||||
_("Please make sure that the AccountsService is installed and enabled."));
|
||||
|
||||
new_page_name = "error";
|
||||
new_focus_widget = NULL;
|
||||
|
@ -410,7 +423,7 @@ update_main_stack (MctApplication *self)
|
|||
"with %s. <a href='https://www.commonsensemedia.org/privacy-and-internet-safety'>"
|
||||
"Read guidance</a> on what to consider."),
|
||||
act_user_get_real_name (selected_user));
|
||||
gtk_label_set_markup (self->help_label, help_label);
|
||||
mct_user_controls_set_description (self->user_controls, help_label);
|
||||
|
||||
mct_user_controls_set_user (self->user_controls, selected_user);
|
||||
|
||||
|
@ -427,12 +440,7 @@ update_main_stack (MctApplication *self)
|
|||
gtk_stack_set_visible_child_name (self->main_stack, new_page_name);
|
||||
|
||||
if (new_focus_widget != NULL && !g_str_equal (old_page_name, new_page_name))
|
||||
{
|
||||
if (gtk_widget_get_can_focus (new_focus_widget))
|
||||
gtk_widget_grab_focus (new_focus_widget);
|
||||
else
|
||||
gtk_widget_child_focus (new_focus_widget, GTK_DIR_TAB_FORWARD);
|
||||
}
|
||||
gtk_widget_grab_focus (new_focus_widget);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
*
|
||||
* Authors:
|
||||
* - Felipe Borges <felipeborges@gnome.org>
|
||||
* - Georges Basile Stavracas Neto <georges@endlessos.org>
|
||||
* - Philip Withnall <withnall@endlessm.com>
|
||||
*/
|
||||
|
||||
|
@ -29,13 +30,16 @@
|
|||
|
||||
#define ARROW_SIZE 20
|
||||
|
||||
#define MCT_TYPE_CAROUSEL_LAYOUT (mct_carousel_layout_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (MctCarouselLayout, mct_carousel_layout, MCT, CAROUSEL_LAYOUT, GtkLayoutManager)
|
||||
|
||||
struct _MctCarouselItem {
|
||||
GtkRadioButton parent;
|
||||
GtkButton parent;
|
||||
|
||||
gint page;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (MctCarouselItem, mct_carousel_item, GTK_TYPE_RADIO_BUTTON)
|
||||
G_DEFINE_TYPE (MctCarouselItem, mct_carousel_item, GTK_TYPE_BUTTON)
|
||||
|
||||
GtkWidget *
|
||||
mct_carousel_item_new (void)
|
||||
|
@ -43,28 +47,36 @@ mct_carousel_item_new (void)
|
|||
return g_object_new (MCT_TYPE_CAROUSEL_ITEM, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
mct_carousel_item_set_child (MctCarouselItem *self,
|
||||
GtkWidget *child)
|
||||
{
|
||||
g_return_if_fail (MCT_IS_CAROUSEL_ITEM (self));
|
||||
|
||||
gtk_button_set_child (GTK_BUTTON (self), child);
|
||||
}
|
||||
|
||||
static void
|
||||
mct_carousel_item_class_init (MctCarouselItemClass *klass)
|
||||
{
|
||||
gtk_widget_class_set_css_name (GTK_WIDGET_CLASS (klass), "carousel-item");
|
||||
}
|
||||
|
||||
static void
|
||||
mct_carousel_item_init (MctCarouselItem *self)
|
||||
{
|
||||
gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (self), FALSE);
|
||||
gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (self)),
|
||||
"carousel-item");
|
||||
}
|
||||
|
||||
struct _MctCarousel {
|
||||
GtkRevealer parent;
|
||||
AdwBin parent;
|
||||
|
||||
GtkRevealer *revealer;
|
||||
|
||||
GList *children;
|
||||
gint visible_page;
|
||||
MctCarouselItem *selected_item;
|
||||
GtkWidget *last_box;
|
||||
GtkWidget *arrow;
|
||||
gint arrow_start_x;
|
||||
|
||||
/* Widgets */
|
||||
GtkStack *stack;
|
||||
|
@ -74,7 +86,7 @@ struct _MctCarousel {
|
|||
GtkStyleProvider *provider;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (MctCarousel, mct_carousel, GTK_TYPE_REVEALER)
|
||||
G_DEFINE_TYPE (MctCarousel, mct_carousel, ADW_TYPE_BIN)
|
||||
|
||||
enum {
|
||||
ITEM_ACTIVATED,
|
||||
|
@ -91,9 +103,9 @@ mct_carousel_item_get_x (MctCarouselItem *item,
|
|||
{
|
||||
GtkWidget *widget, *parent;
|
||||
gint width;
|
||||
gint dest_x;
|
||||
gdouble dest_x;
|
||||
|
||||
parent = GTK_WIDGET (carousel->stack);
|
||||
parent = GTK_WIDGET (carousel->revealer);
|
||||
widget = GTK_WIDGET (item);
|
||||
|
||||
width = gtk_widget_get_allocated_width (widget);
|
||||
|
@ -116,8 +128,6 @@ mct_carousel_move_arrow (MctCarousel *self)
|
|||
GtkStyleContext *context;
|
||||
gchar *css;
|
||||
gint end_x;
|
||||
GtkSettings *settings;
|
||||
gboolean animations;
|
||||
|
||||
if (!self->selected_item)
|
||||
return;
|
||||
|
@ -129,31 +139,9 @@ mct_carousel_move_arrow (MctCarousel *self)
|
|||
gtk_style_context_remove_provider (context, self->provider);
|
||||
g_clear_object (&self->provider);
|
||||
|
||||
settings = gtk_widget_get_settings (GTK_WIDGET (self));
|
||||
g_object_get (settings, "gtk-enable-animations", &animations, NULL);
|
||||
|
||||
/* Animate the arrow movement if animations are enabled. Otherwise,
|
||||
* jump the arrow to the right location instantly. */
|
||||
if (animations)
|
||||
{
|
||||
css = g_strdup_printf ("@keyframes arrow_keyframes-%d-%d {\n"
|
||||
" from { margin-left: %dpx; }\n"
|
||||
" to { margin-left: %dpx; }\n"
|
||||
"}\n"
|
||||
"* {\n"
|
||||
" animation-name: arrow_keyframes-%d-%d;\n"
|
||||
"}\n",
|
||||
self->arrow_start_x, end_x,
|
||||
self->arrow_start_x, end_x,
|
||||
self->arrow_start_x, end_x);
|
||||
}
|
||||
else
|
||||
{
|
||||
css = g_strdup_printf ("* { margin-left: %dpx }", end_x);
|
||||
}
|
||||
|
||||
css = g_strdup_printf ("* { margin-left: %dpx; }", end_x);
|
||||
self->provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ());
|
||||
gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (self->provider), css, -1, NULL);
|
||||
gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (self->provider), css, -1);
|
||||
gtk_style_context_add_provider (context, self->provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
|
||||
|
||||
g_free (css);
|
||||
|
@ -234,10 +222,7 @@ mct_carousel_select_item (MctCarousel *self,
|
|||
}
|
||||
|
||||
if (self->selected_item != NULL)
|
||||
{
|
||||
page_changed = (self->selected_item->page != item->page);
|
||||
self->arrow_start_x = mct_carousel_item_get_x (self->selected_item, self);
|
||||
}
|
||||
page_changed = (self->selected_item->page != item->page);
|
||||
|
||||
self->selected_item = item;
|
||||
self->visible_page = item->page;
|
||||
|
@ -300,59 +285,44 @@ mct_carousel_goto_next_page (GtkWidget *button,
|
|||
mct_carousel_select_item_at_index (self, self->visible_page * ITEMS_PER_PAGE);
|
||||
}
|
||||
|
||||
static void
|
||||
mct_carousel_add (GtkContainer *container,
|
||||
GtkWidget *widget)
|
||||
void
|
||||
mct_carousel_add (MctCarousel *self,
|
||||
MctCarouselItem *item)
|
||||
{
|
||||
MctCarousel *self = MCT_CAROUSEL (container);
|
||||
gboolean last_box_is_full;
|
||||
|
||||
if (!MCT_IS_CAROUSEL_ITEM (widget))
|
||||
{
|
||||
GTK_CONTAINER_CLASS (mct_carousel_parent_class)->add (container, widget);
|
||||
return;
|
||||
}
|
||||
g_return_if_fail (MCT_IS_CAROUSEL (self));
|
||||
g_return_if_fail (MCT_IS_CAROUSEL_ITEM (item));
|
||||
|
||||
gtk_style_context_add_class (gtk_widget_get_style_context (widget), "menu");
|
||||
gtk_button_set_relief (GTK_BUTTON (widget), GTK_RELIEF_NONE);
|
||||
|
||||
self->children = g_list_append (self->children, widget);
|
||||
MCT_CAROUSEL_ITEM (widget)->page = get_last_page_number (self);
|
||||
if (self->selected_item != NULL)
|
||||
gtk_radio_button_join_group (GTK_RADIO_BUTTON (widget), GTK_RADIO_BUTTON (self->selected_item));
|
||||
g_signal_connect (widget, "button-press-event", G_CALLBACK (on_item_toggled), self);
|
||||
self->children = g_list_append (self->children, item);
|
||||
item->page = get_last_page_number (self);
|
||||
g_signal_connect (item, "clicked", G_CALLBACK (on_item_toggled), self);
|
||||
|
||||
last_box_is_full = ((g_list_length (self->children) - 1) % ITEMS_PER_PAGE == 0);
|
||||
if (last_box_is_full)
|
||||
{
|
||||
g_autofree gchar *page = NULL;
|
||||
|
||||
page = g_strdup_printf ("%d", MCT_CAROUSEL_ITEM (widget)->page);
|
||||
self->last_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||
gtk_widget_show (self->last_box);
|
||||
page = g_strdup_printf ("%d", item->page);
|
||||
self->last_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 18);
|
||||
gtk_widget_set_hexpand (self->last_box, TRUE);
|
||||
gtk_widget_set_valign (self->last_box, GTK_ALIGN_CENTER);
|
||||
gtk_box_set_homogeneous (GTK_BOX (self->last_box), TRUE);
|
||||
gtk_stack_add_named (self->stack, self->last_box, page);
|
||||
}
|
||||
|
||||
gtk_widget_show_all (widget);
|
||||
gtk_box_pack_start (GTK_BOX (self->last_box), widget, TRUE, FALSE, 10);
|
||||
gtk_box_append (GTK_BOX (self->last_box), GTK_WIDGET (item));
|
||||
|
||||
update_buttons_visibility (self);
|
||||
}
|
||||
|
||||
static void
|
||||
destroy_widget_cb (GtkWidget *widget,
|
||||
gpointer user_data)
|
||||
{
|
||||
gtk_widget_destroy (widget);
|
||||
}
|
||||
|
||||
void
|
||||
mct_carousel_purge_items (MctCarousel *self)
|
||||
{
|
||||
gtk_container_forall (GTK_CONTAINER (self->stack),
|
||||
destroy_widget_cb,
|
||||
NULL);
|
||||
GtkWidget *child;
|
||||
|
||||
while ((child = gtk_widget_get_first_child (GTK_WIDGET (self->stack))) != NULL)
|
||||
gtk_stack_remove (self->stack, child);
|
||||
|
||||
g_list_free (self->children);
|
||||
self->children = NULL;
|
||||
|
@ -386,7 +356,6 @@ mct_carousel_class_init (MctCarouselClass *klass)
|
|||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
GtkWidgetClass *wclass = GTK_WIDGET_CLASS (klass);
|
||||
GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
|
||||
|
||||
gtk_widget_class_set_template_from_resource (wclass,
|
||||
"/org/freedesktop/MalcontentControl/ui/carousel.ui");
|
||||
|
@ -395,13 +364,14 @@ mct_carousel_class_init (MctCarouselClass *klass)
|
|||
gtk_widget_class_bind_template_child (wclass, MctCarousel, go_back_button);
|
||||
gtk_widget_class_bind_template_child (wclass, MctCarousel, go_next_button);
|
||||
gtk_widget_class_bind_template_child (wclass, MctCarousel, arrow);
|
||||
gtk_widget_class_bind_template_child (wclass, MctCarousel, revealer);
|
||||
|
||||
gtk_widget_class_bind_template_callback (wclass, mct_carousel_goto_previous_page);
|
||||
gtk_widget_class_bind_template_callback (wclass, mct_carousel_goto_next_page);
|
||||
|
||||
object_class->dispose = mct_carousel_dispose;
|
||||
gtk_widget_class_set_layout_manager_type (wclass, MCT_TYPE_CAROUSEL_LAYOUT);
|
||||
|
||||
container_class->add = mct_carousel_add;
|
||||
object_class->dispose = mct_carousel_dispose;
|
||||
|
||||
signals[ITEM_ACTIVATED] =
|
||||
g_signal_new ("item-activated",
|
||||
|
@ -414,19 +384,6 @@ mct_carousel_class_init (MctCarouselClass *klass)
|
|||
MCT_TYPE_CAROUSEL_ITEM);
|
||||
}
|
||||
|
||||
static void
|
||||
on_size_allocate (MctCarousel *self)
|
||||
{
|
||||
if (self->selected_item == NULL)
|
||||
return;
|
||||
|
||||
if (gtk_stack_get_transition_running (self->stack))
|
||||
return;
|
||||
|
||||
self->arrow_start_x = mct_carousel_item_get_x (self->selected_item, self);
|
||||
mct_carousel_move_arrow (self);
|
||||
}
|
||||
|
||||
static void
|
||||
on_transition_running (MctCarousel *self)
|
||||
{
|
||||
|
@ -445,13 +402,12 @@ mct_carousel_init (MctCarousel *self)
|
|||
gtk_css_provider_load_from_resource (GTK_CSS_PROVIDER (provider),
|
||||
"/org/freedesktop/MalcontentControl/ui/carousel.css");
|
||||
|
||||
gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
|
||||
provider,
|
||||
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION - 1);
|
||||
gtk_style_context_add_provider_for_display (gdk_display_get_default (),
|
||||
provider,
|
||||
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION - 1);
|
||||
|
||||
g_object_unref (provider);
|
||||
|
||||
g_signal_connect_swapped (self->stack, "size-allocate", G_CALLBACK (on_size_allocate), self);
|
||||
g_signal_connect_swapped (self->stack, "notify::transition-running", G_CALLBACK (on_transition_running), self);
|
||||
}
|
||||
|
||||
|
@ -460,3 +416,77 @@ mct_carousel_get_item_count (MctCarousel *self)
|
|||
{
|
||||
return g_list_length (self->children);
|
||||
}
|
||||
|
||||
void
|
||||
mct_carousel_set_revealed (MctCarousel *self,
|
||||
gboolean revealed)
|
||||
{
|
||||
g_return_if_fail (MCT_IS_CAROUSEL (self));
|
||||
|
||||
gtk_revealer_set_reveal_child (self->revealer, revealed);
|
||||
}
|
||||
|
||||
struct _MctCarouselLayout {
|
||||
GtkLayoutManager parent;
|
||||
};
|
||||
|
||||
G_DEFINE_FINAL_TYPE (MctCarouselLayout, mct_carousel_layout, GTK_TYPE_LAYOUT_MANAGER)
|
||||
|
||||
static void
|
||||
mct_carousel_layout_measure (GtkLayoutManager *layout_manager,
|
||||
GtkWidget *widget,
|
||||
GtkOrientation orientation,
|
||||
int for_size,
|
||||
int *minimum,
|
||||
int *natural,
|
||||
int *minimum_baseline,
|
||||
int *natural_baseline)
|
||||
{
|
||||
MctCarousel *carousel;
|
||||
|
||||
g_assert (MCT_IS_CAROUSEL (widget));
|
||||
|
||||
carousel = MCT_CAROUSEL (widget);
|
||||
|
||||
gtk_widget_measure (GTK_WIDGET (carousel->revealer),
|
||||
orientation, for_size,
|
||||
minimum, natural,
|
||||
minimum_baseline, natural_baseline);
|
||||
}
|
||||
|
||||
static void
|
||||
mct_carousel_layout_allocate (GtkLayoutManager *layout_manager,
|
||||
GtkWidget *widget,
|
||||
int width,
|
||||
int height,
|
||||
int baseline)
|
||||
{
|
||||
MctCarousel *carousel;
|
||||
|
||||
g_assert (MCT_IS_CAROUSEL (widget));
|
||||
|
||||
carousel = MCT_CAROUSEL (widget);
|
||||
gtk_widget_allocate (GTK_WIDGET (carousel->revealer), width, height, baseline, NULL);
|
||||
|
||||
if (carousel->selected_item == NULL)
|
||||
return;
|
||||
|
||||
if (gtk_stack_get_transition_running (carousel->stack))
|
||||
return;
|
||||
|
||||
mct_carousel_move_arrow (carousel);
|
||||
}
|
||||
|
||||
static void
|
||||
mct_carousel_layout_class_init (MctCarouselLayoutClass *klass)
|
||||
{
|
||||
GtkLayoutManagerClass *layout_manager_class = GTK_LAYOUT_MANAGER_CLASS (klass);
|
||||
|
||||
layout_manager_class->measure = mct_carousel_layout_measure;
|
||||
layout_manager_class->allocate = mct_carousel_layout_allocate;
|
||||
}
|
||||
|
||||
static void
|
||||
mct_carousel_layout_init (MctCarouselLayout *self)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -22,9 +22,18 @@
|
|||
margin-bottom: -2px;
|
||||
}
|
||||
|
||||
.carousel-item {
|
||||
carousel-item {
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
color: @theme_fg_color;
|
||||
}
|
||||
|
||||
carousel-item:focus:focus-visible avatar {
|
||||
/* this should actually be $focus_border_color from
|
||||
* gtk/theme/Default/_colors.scss, but we have to simplify the theming slightly */
|
||||
outline-color: @theme_selected_bg_color;
|
||||
outline-offset: -2px;
|
||||
outline-width: 2px;
|
||||
outline-style: solid;
|
||||
}
|
||||
|
|
|
@ -18,24 +18,28 @@
|
|||
*
|
||||
* Authors:
|
||||
* - Felipe Borges <felipeborges@gnome.org>
|
||||
* - Georges Basile Stavracas Neto <georges@endlessos.org>
|
||||
* - Philip Withnall <withnall@endlessm.com>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#include <adwaita.h>
|
||||
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define MCT_TYPE_CAROUSEL_ITEM (mct_carousel_item_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (MctCarouselItem, mct_carousel_item, MCT, CAROUSEL_ITEM, GtkRadioButton)
|
||||
G_DECLARE_FINAL_TYPE (MctCarouselItem, mct_carousel_item, MCT, CAROUSEL_ITEM, GtkButton)
|
||||
|
||||
#define MCT_TYPE_CAROUSEL (mct_carousel_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (MctCarousel, mct_carousel, MCT, CAROUSEL, GtkRevealer)
|
||||
G_DECLARE_FINAL_TYPE (MctCarousel, mct_carousel, MCT, CAROUSEL, AdwBin)
|
||||
|
||||
GtkWidget *mct_carousel_item_new (void);
|
||||
|
||||
void mct_carousel_item_set_child (MctCarouselItem *self,
|
||||
GtkWidget *child);
|
||||
|
||||
MctCarousel *mct_carousel_new (void);
|
||||
|
||||
void mct_carousel_purge_items (MctCarousel *self);
|
||||
|
@ -49,4 +53,10 @@ void mct_carousel_select_item (MctCarousel *self,
|
|||
|
||||
guint mct_carousel_get_item_count (MctCarousel *self);
|
||||
|
||||
void mct_carousel_add (MctCarousel *self,
|
||||
MctCarouselItem *item);
|
||||
|
||||
void mct_carousel_set_revealed (MctCarousel *self,
|
||||
gboolean revealed);
|
||||
|
||||
G_END_DECLS
|
||||
|
|
|
@ -3,100 +3,76 @@
|
|||
<!-- Copyright © 2020 Endless, Inc. -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.12"/>
|
||||
<template class="MctCarousel" parent="GtkRevealer">
|
||||
<property name="transition_duration">400</property>
|
||||
<property name="reveal-child">True</property>
|
||||
<template class="MctCarousel" parent="AdwBin">
|
||||
<child>
|
||||
<object class="GtkOverlay">
|
||||
<property name="visible">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="border_width">16</property>
|
||||
<object class="GtkRevealer" id="revealer">
|
||||
<property name="transition_duration">400</property>
|
||||
<property name="reveal-child">True</property>
|
||||
<child>
|
||||
<object class="GtkStack" id="stack">
|
||||
<property name="visible">True</property>
|
||||
<property name="transition_duration">400</property>
|
||||
<property name="transition_type">GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT</property>
|
||||
<style>
|
||||
<class name="location-bar"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkOverlay">
|
||||
<property name="visible">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
|
||||
<property name="border_width">12</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="go_back_button">
|
||||
<property name="visible">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="icon-size">4</property>
|
||||
<property name="icon_name">go-previous-symbolic</property>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject">
|
||||
<property name="accessible-name" translatable="yes">Previous Page</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<signal name="clicked" handler="mct_carousel_goto_previous_page" object="MctCarousel" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack_type">GTK_PACK_START</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="go_next_button">
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="icon-size">4</property>
|
||||
<property name="icon_name">go-next-symbolic</property>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject">
|
||||
<property name="accessible-name" translatable="yes">Next Page</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<signal name="clicked" handler="mct_carousel_goto_next_page" object="MctCarousel" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack_type">GTK_PACK_END</property>
|
||||
</packing>
|
||||
</child>
|
||||
<object class="GtkStack" id="stack">
|
||||
<property name="margin-top">16</property>
|
||||
<property name="margin-bottom">16</property>
|
||||
<property name="margin-start">16</property>
|
||||
<property name="margin-end">16</property>
|
||||
<property name="transition_duration">400</property>
|
||||
<property name="transition_type">GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT</property>
|
||||
<style>
|
||||
<class name="location-bar"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkButton" id="go_back_button">
|
||||
<property name="visible">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">12</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="icon_name">go-previous-symbolic</property>
|
||||
<accessibility>
|
||||
<property name="label" translatable="yes">Previous Page</property>
|
||||
</accessibility>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
</style>
|
||||
<signal name="clicked" handler="mct_carousel_goto_previous_page" object="MctCarousel" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkButton" id="go_next_button">
|
||||
<property name="valign">center</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="margin-bottom">12</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="icon_name">go-next-symbolic</property>
|
||||
<accessibility>
|
||||
<property name="label" translatable="yes">Next Page</property>
|
||||
</accessibility>
|
||||
<style>
|
||||
<class name="circular"/>
|
||||
</style>
|
||||
<signal name="clicked" handler="mct_carousel_goto_next_page" object="MctCarousel" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">GTK_ALIGN_END</property>
|
||||
<style>
|
||||
<class name="carousel-arrow-container"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkOverlay">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="arrow">
|
||||
<property name="visible">True</property>
|
||||
<property name="halign">GTK_ALIGN_END</property>
|
||||
<style>
|
||||
<class name="carousel-arrow"/>
|
||||
|
@ -105,7 +81,6 @@
|
|||
</child>
|
||||
<child type="overlay">
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="halign">GTK_ALIGN_END</property>
|
||||
<style>
|
||||
<class name="carousel-inner-arrow"/>
|
||||
|
@ -115,14 +90,8 @@
|
|||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pass-through">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pass-through">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
|
|
|
@ -2,297 +2,163 @@
|
|||
<!-- Copyright © 2019, 2020 Endless Mobile, Inc. -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.12"/>
|
||||
<object class="GtkApplicationWindow" id="main_window">
|
||||
<object class="AdwApplicationWindow" id="main_window">
|
||||
<property name="default-width">540</property>
|
||||
<property name="default-height">580</property>
|
||||
<child type="titlebar">
|
||||
<object class="GtkHeaderBar" id="header">
|
||||
<property name="show-close-button">True</property>
|
||||
<!-- Translators: This is the title of the main window -->
|
||||
<property name="title" translatable="yes">Parental Controls</property>
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<object class="GtkMenuButton" id="primary_menu">
|
||||
<property name="visible">True</property>
|
||||
<property name="direction">none</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="use-popover">True</property>
|
||||
<property name="menu-model">primary-menu</property>
|
||||
<accelerator key="F10" signal="activate"/>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStack" id="main_stack">
|
||||
<property name="visible">True</property>
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="border_width">0</property>
|
||||
<child>
|
||||
<object class="MctUserSelector" id="user_selector">
|
||||
<property name="visible">True</property>
|
||||
<property name="user-manager">user_manager</property>
|
||||
<property name="show-administrators">False</property>
|
||||
<accessibility>
|
||||
<relation target="user_controls" type="controller-for"/>
|
||||
</accessibility>
|
||||
<object class="GtkHeaderBar" id="header">
|
||||
<property name="show-title-buttons">True</property>
|
||||
<property name="title-widget">
|
||||
<object class="AdwWindowTitle">
|
||||
<!-- Translators: This is the title of the main window -->
|
||||
<property name="title" translatable="yes">Parental Controls</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="fill">False</property>
|
||||
<property name="expand">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="hscrollbar-policy">never</property>
|
||||
<property name="min-content-height">370</property>
|
||||
</property>
|
||||
<child type="end">
|
||||
<object class="GtkMenuButton" id="primary_menu">
|
||||
<property name="direction">none</property>
|
||||
<property name="menu-model">primary-menu</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="margin">18</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">18</property>
|
||||
<property name="visible">True</property>
|
||||
<object class="GtkShortcutController">
|
||||
<property name="scope">global</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="help_label">
|
||||
<!-- Content is set in code; this string is just a placeholder -->
|
||||
<property name="label">It’s recommended that restrictions are set as part of an ongoing conversation with $name. Read guidance on what to consider.</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="xalign">0.0</property>
|
||||
<property name="yalign">0.0</property>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject">
|
||||
<property name="AtkObject::accessible-role">static</property>
|
||||
<object class="GtkShortcut">
|
||||
<property name="trigger">F10</property>
|
||||
<property name="action">activate</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStack" id="main_stack">
|
||||
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">controls</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="MctUserSelector" id="user_selector">
|
||||
<property name="user-manager">user_manager</property>
|
||||
<property name="show-administrators">False</property>
|
||||
<accessibility>
|
||||
<relation name="controls">user_controls</relation>
|
||||
</accessibility>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="AdwPreferencesPage">
|
||||
<child>
|
||||
<object class="AdwPreferencesGroup">
|
||||
<child>
|
||||
<object class="MctUserControls" id="user_controls">
|
||||
<!-- Content is set in code; this string is just a placeholder -->
|
||||
<property name="description">It’s recommended that restrictions are set as part of an ongoing conversation with $name. Read guidance on what to consider.</property>
|
||||
<property name="height-request">270</property>
|
||||
<property name="dbus-connection">dbus_connection</property>
|
||||
<property name="vexpand">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">unlock</property>
|
||||
<property name="child">
|
||||
<object class="AdwStatusPage">
|
||||
<property name="title" translatable="yes">Permission Required</property>
|
||||
<property name="description" translatable="yes">Permission is required to view and change user parental controls settings.</property>
|
||||
<property name="icon-name">org.freedesktop.MalcontentControl</property>
|
||||
<child>
|
||||
<object class="MctUserControls" id="user_controls">
|
||||
<object class="GtkLockButton" id="lock_button">
|
||||
<property name="halign">center</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="dbus-connection">dbus_connection</property>
|
||||
<style>
|
||||
<class name="suggested-action" />
|
||||
<class name="pill" />
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">controls</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<child type="center">
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<property name="margin">18</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Permission Required</property>
|
||||
<attributes>
|
||||
<attribute name="scale" value="1.4"/>
|
||||
</attributes>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject">
|
||||
<property name="AtkObject::accessible-role">static</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Permission is required to view and change user parental controls settings.</property>
|
||||
<property name="wrap">True</property>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject">
|
||||
<property name="AtkObject::accessible-role">static</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLockButton" id="lock_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="can-default">True</property>
|
||||
<property name="has-default">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<!-- Give 18px spacing between the label and the button -->
|
||||
<property name="margin-top">6</property>
|
||||
</object>
|
||||
</child>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">unlock</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<child type="center">
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<property name="margin">18</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">no-other-users</property>
|
||||
<property name="child">
|
||||
<object class="AdwStatusPage">
|
||||
<property name="icon-name">system-users-symbolic</property>
|
||||
<property name="pixel-size">96</property>
|
||||
<property name="visible">True</property>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject">
|
||||
<property name="AtkObject::accessible-role">static</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">No Standard User Accounts</property>
|
||||
<attributes>
|
||||
<attribute name="scale" value="1.4"/>
|
||||
</attributes>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject">
|
||||
<property name="AtkObject::accessible-role">static</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="justify">center</property>
|
||||
<property name="label" translatable="yes">Parental controls can only be applied to standard user
|
||||
<property name="title" translatable="yes">No Standard User Accounts</property>
|
||||
<property name="description" translatable="yes">Parental controls can only be applied to standard user
|
||||
accounts. These can be created in the user settings.</property>
|
||||
<property name="wrap">True</property>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject">
|
||||
<property name="AtkObject::accessible-role">static</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="user_accounts_panel_button">
|
||||
<property name="label" translatable="yes">_User Settings</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="use-underline">True</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="user_accounts_panel_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">_User Settings</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="can-default">True</property>
|
||||
<property name="has-default">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<!-- Give 18px spacing between the label and the button -->
|
||||
<property name="margin-top">6</property>
|
||||
<style>
|
||||
<class name="suggested-action"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">no-other-users</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<child type="center">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Loading…</property>
|
||||
<attributes>
|
||||
<attribute name="scale" value="1.4"/>
|
||||
</attributes>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject">
|
||||
<property name="AtkObject::accessible-role">static</property>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">loading</property>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<child type="center">
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="yes">Loading…</property>
|
||||
<property name="vexpand">True</property>
|
||||
<style>
|
||||
<class name="title-1" />
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">loading</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<child type="center">
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="error_title">
|
||||
<property name="visible">True</property>
|
||||
<property name="label"></property>
|
||||
<attributes>
|
||||
<attribute name="scale" value="1.4"/>
|
||||
</attributes>
|
||||
<child>
|
||||
<object class="GtkStackPage">
|
||||
<property name="name">error</property>
|
||||
<property name="child">
|
||||
<object class="AdwStatusPage" id="error_page">
|
||||
<property name="icon-name">dialog-error-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="error_message">
|
||||
<property name="visible">True</property>
|
||||
<property name="label"></property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject">
|
||||
<property name="AtkObject::accessible-role">alert</property>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">error</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
|
|
|
@ -27,8 +27,9 @@ malcontent_control = executable('malcontent-control',
|
|||
dependency('gio-2.0', version: '>= 2.44'),
|
||||
dependency('glib-2.0', version: '>= 2.54.2'),
|
||||
dependency('gobject-2.0', version: '>= 2.54'),
|
||||
dependency('gtk+-3.0'),
|
||||
gtk_dep,
|
||||
dependency('polkit-gobject-1'),
|
||||
libadwaita_dep,
|
||||
libmalcontent_dep,
|
||||
libmalcontent_ui_dep,
|
||||
],
|
||||
|
@ -78,12 +79,12 @@ endif
|
|||
|
||||
xmllint = find_program('xmllint', required: false)
|
||||
if xmllint.found()
|
||||
gtk_prefix = dependency('gtk+-3.0').get_pkgconfig_variable('prefix')
|
||||
gtk_prefix = gtk_dep.get_variable(pkgconfig: 'prefix')
|
||||
test(
|
||||
'validate-ui', xmllint,
|
||||
args: [
|
||||
'--nonet', '--noblanks', '--noout',
|
||||
'--relaxng', join_paths(gtk_prefix, 'share', 'gtk-3.0', 'gtkbuilder.rng'),
|
||||
'--relaxng', join_paths(gtk_prefix, 'share', 'gtk-4.0', 'gtk4builder.rng'),
|
||||
files(
|
||||
'carousel.ui',
|
||||
'main.ui',
|
||||
|
|
|
@ -31,7 +31,8 @@
|
|||
<launchable type="desktop-id">org.freedesktop.MalcontentControl.desktop</launchable>
|
||||
<url type="homepage">https://gitlab.freedesktop.org/pwithnall/malcontent</url>
|
||||
<url type="bugtracker">https://gitlab.freedesktop.org/pwithnall/malcontent/issues</url>
|
||||
<url type="donation">http://www.gnome.org/friends/</url>
|
||||
<url type="donation">https://www.gnome.org/donate/</url>
|
||||
<url type="vcs-browser">https://gitlab.freedesktop.org/pwithnall/malcontent</url>
|
||||
<url type="translate">https://wiki.gnome.org/TranslationProject/LocalisationGuide</url>
|
||||
<update_contact>philip_at_tecnocode.co.uk</update_contact>
|
||||
<compulsory_for_desktop>GNOME</compulsory_for_desktop>
|
||||
|
@ -44,6 +45,33 @@
|
|||
</kudos>
|
||||
<translation type="gettext">malcontent</translation>
|
||||
<releases>
|
||||
<release version="0.11.1" date="2023-03-16" type="stable">
|
||||
<description>
|
||||
<p>This is a stable release with the following changes:</p>
|
||||
<ul>
|
||||
<li>Translation updates</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
<release version="0.11.0" date="2022-08-12" type="stable">
|
||||
<description>
|
||||
<p>This is a stable release with the following changes:</p>
|
||||
<ul>
|
||||
<li>Use libappstream instead of appstream-glib</li>
|
||||
<li>Port to GTK4</li>
|
||||
<li>Translation updates</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
<release version="0.10.5" date="2022-05-31" type="stable">
|
||||
<description>
|
||||
<p>This is a stable release with the following changes:</p>
|
||||
<ul>
|
||||
<li>German translation of the user help</li>
|
||||
<li>Translation updates</li>
|
||||
</ul>
|
||||
</description>
|
||||
</release>
|
||||
<release version="0.10.4" date="2022-03-09" type="stable">
|
||||
<description>
|
||||
<p>This is a stable release with the following changes:</p>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
||||
*
|
||||
* Copyright © 2022 Endless Mobile, Inc.
|
||||
* Copyright © 2015 Red Hat, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@ -16,10 +17,11 @@
|
|||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Authors:
|
||||
* - Georges Basile Stavracas Neto <georges@endlessos.org>
|
||||
* - Ondrej Holy <oholy@redhat.com>
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#include <adwaita.h>
|
||||
#include <act/act.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
|
@ -28,108 +30,49 @@
|
|||
|
||||
struct _MctUserImage
|
||||
{
|
||||
GtkImage parent_instance;
|
||||
AdwBin parent_instance;
|
||||
|
||||
AdwAvatar *avatar;
|
||||
|
||||
ActUser *user;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (MctUserImage, mct_user_image, GTK_TYPE_IMAGE)
|
||||
G_DEFINE_TYPE (MctUserImage, mct_user_image, ADW_TYPE_BIN)
|
||||
|
||||
static GdkPixbuf *
|
||||
round_image (GdkPixbuf *pixbuf)
|
||||
static GdkTexture *
|
||||
render_user_icon_texture (ActUser *user)
|
||||
{
|
||||
GdkPixbuf *dest = NULL;
|
||||
cairo_surface_t *surface;
|
||||
cairo_t *cr;
|
||||
gint size;
|
||||
|
||||
size = gdk_pixbuf_get_width (pixbuf);
|
||||
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, size, size);
|
||||
cr = cairo_create (surface);
|
||||
|
||||
/* Clip a circle */
|
||||
cairo_arc (cr, size / 2, size / 2, size / 2, 0, 2 * G_PI);
|
||||
cairo_clip (cr);
|
||||
cairo_new_path (cr);
|
||||
|
||||
gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
dest = gdk_pixbuf_get_from_surface (surface, 0, 0, size, size);
|
||||
cairo_surface_destroy (surface);
|
||||
cairo_destroy (cr);
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
static cairo_surface_t *
|
||||
render_user_icon (ActUser *user,
|
||||
gint icon_size,
|
||||
gint scale)
|
||||
{
|
||||
g_autoptr(GdkPixbuf) source_pixbuf = NULL;
|
||||
GdkPixbuf *pixbuf = NULL;
|
||||
GError *error;
|
||||
g_autoptr(GdkTexture) texture = NULL;
|
||||
g_autoptr(GError) error = NULL;
|
||||
const gchar *icon_file;
|
||||
cairo_surface_t *surface = NULL;
|
||||
|
||||
g_return_val_if_fail (ACT_IS_USER (user), NULL);
|
||||
g_return_val_if_fail (icon_size > 12, NULL);
|
||||
|
||||
icon_file = act_user_get_icon_file (user);
|
||||
pixbuf = NULL;
|
||||
if (icon_file)
|
||||
if (icon_file == NULL)
|
||||
return NULL;
|
||||
|
||||
texture = gdk_texture_new_from_filename (icon_file, &error);
|
||||
if (error != NULL)
|
||||
{
|
||||
source_pixbuf = gdk_pixbuf_new_from_file_at_size (icon_file,
|
||||
icon_size * scale,
|
||||
icon_size * scale,
|
||||
NULL);
|
||||
if (source_pixbuf)
|
||||
pixbuf = round_image (source_pixbuf);
|
||||
g_warning ("Error loading user icon: %s", error->message);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (pixbuf != NULL)
|
||||
goto out;
|
||||
|
||||
error = NULL;
|
||||
pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
|
||||
"avatar-default",
|
||||
icon_size * scale,
|
||||
GTK_ICON_LOOKUP_FORCE_SIZE,
|
||||
&error);
|
||||
if (error)
|
||||
{
|
||||
g_warning ("%s", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
|
||||
out:
|
||||
|
||||
if (pixbuf != NULL)
|
||||
{
|
||||
surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, scale, NULL);
|
||||
g_object_unref (pixbuf);
|
||||
}
|
||||
|
||||
return surface;
|
||||
return g_steal_pointer (&texture);
|
||||
}
|
||||
|
||||
static void
|
||||
render_image (MctUserImage *image)
|
||||
{
|
||||
cairo_surface_t *surface;
|
||||
gint scale, pixel_size;
|
||||
g_autoptr(GdkTexture) texture = NULL;
|
||||
|
||||
if (image->user == NULL)
|
||||
return;
|
||||
|
||||
pixel_size = gtk_image_get_pixel_size (GTK_IMAGE (image));
|
||||
scale = gtk_widget_get_scale_factor (GTK_WIDGET (image));
|
||||
surface = render_user_icon (image->user,
|
||||
pixel_size > 0 ? pixel_size : 48,
|
||||
scale);
|
||||
gtk_image_set_from_surface (GTK_IMAGE (image), surface);
|
||||
cairo_surface_destroy (surface);
|
||||
texture = render_user_icon_texture (image->user);
|
||||
adw_avatar_set_custom_image (image->avatar, GDK_PAINTABLE (texture));
|
||||
adw_avatar_set_text (image->avatar, act_user_get_real_name (image->user));
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -163,8 +106,8 @@ mct_user_image_class_init (MctUserImageClass *class)
|
|||
static void
|
||||
mct_user_image_init (MctUserImage *image)
|
||||
{
|
||||
g_signal_connect_swapped (image, "notify::scale-factor", G_CALLBACK (render_image), image);
|
||||
g_signal_connect_swapped (image, "notify::pixel-size", G_CALLBACK (render_image), image);
|
||||
image->avatar = ADW_AVATAR (adw_avatar_new (48, NULL, TRUE));
|
||||
adw_bin_set_child (ADW_BIN (image), GTK_WIDGET (image->avatar));
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
|
||||
*
|
||||
* Copyright © 2022 Endless Mobile, Inc.
|
||||
* Copyright © 2015 Red Hat, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
|
@ -16,19 +17,20 @@
|
|||
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Authors:
|
||||
* - Georges Basile Stavracas Neto <georges@endlessos.org>
|
||||
* - Ondrej Holy <oholy@redhat.com>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#include <adwaita.h>
|
||||
#include <act/act.h>
|
||||
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define MCT_TYPE_USER_IMAGE (mct_user_image_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (MctUserImage, mct_user_image, MCT, USER_IMAGE, GtkImage)
|
||||
G_DECLARE_FINAL_TYPE (MctUserImage, mct_user_image, MCT, USER_IMAGE, AdwBin)
|
||||
|
||||
GtkWidget *mct_user_image_new (void);
|
||||
void mct_user_image_set_user (MctUserImage *image,
|
||||
|
|
|
@ -370,11 +370,11 @@ reload_users (MctUserSelector *self,
|
|||
g_object_get (settings, "gtk-enable-animations", &animations, NULL);
|
||||
g_object_set (settings, "gtk-enable-animations", FALSE, NULL);
|
||||
|
||||
mct_carousel_purge_items (self->carousel);
|
||||
|
||||
list = act_user_manager_list_users (self->user_manager);
|
||||
g_debug ("Got %u users", g_slist_length (list));
|
||||
|
||||
mct_carousel_purge_items (self->carousel);
|
||||
|
||||
list = g_slist_sort (list, (GCompareFunc) sort_users);
|
||||
for (l = list; l; l = l->next)
|
||||
{
|
||||
|
@ -397,7 +397,7 @@ reload_users (MctUserSelector *self,
|
|||
|
||||
g_object_set (settings, "gtk-enable-animations", animations, NULL);
|
||||
|
||||
gtk_revealer_set_reveal_child (GTK_REVEALER (self->carousel), TRUE);
|
||||
mct_carousel_set_revealed (self->carousel, TRUE);
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
|
@ -411,7 +411,7 @@ create_carousel_entry (MctUserSelector *self,
|
|||
|
||||
widget = mct_user_image_new ();
|
||||
mct_user_image_set_user (MCT_USER_IMAGE (widget), user);
|
||||
gtk_box_pack_start (GTK_BOX (box), widget, FALSE, FALSE, 0);
|
||||
gtk_box_append (GTK_BOX (box), widget);
|
||||
|
||||
label = g_strdup_printf ("<b>%s</b>",
|
||||
get_real_or_user_name (user));
|
||||
|
@ -419,7 +419,7 @@ create_carousel_entry (MctUserSelector *self,
|
|||
gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
|
||||
gtk_label_set_ellipsize (GTK_LABEL (widget), PANGO_ELLIPSIZE_END);
|
||||
gtk_widget_set_margin_top (widget, 5);
|
||||
gtk_box_pack_start (GTK_BOX (box), widget, FALSE, FALSE, 0);
|
||||
gtk_box_append (GTK_BOX (box), widget);
|
||||
g_free (label);
|
||||
|
||||
if (act_user_get_uid (user) == getuid ())
|
||||
|
@ -431,7 +431,7 @@ create_carousel_entry (MctUserSelector *self,
|
|||
gtk_label_set_use_markup (GTK_LABEL (widget), TRUE);
|
||||
g_free (label);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (box), widget, FALSE, FALSE, 0);
|
||||
gtk_box_append (GTK_BOX (box), widget);
|
||||
gtk_style_context_add_class (gtk_widget_get_style_context (widget),
|
||||
"dim-label");
|
||||
|
||||
|
@ -455,10 +455,10 @@ user_added_cb (ActUserManager *user_manager,
|
|||
|
||||
widget = create_carousel_entry (self, user);
|
||||
item = mct_carousel_item_new ();
|
||||
gtk_container_add (GTK_CONTAINER (item), widget);
|
||||
mct_carousel_item_set_child (MCT_CAROUSEL_ITEM (item), widget);
|
||||
|
||||
g_object_set_data (G_OBJECT (item), "uid", GINT_TO_POINTER (act_user_get_uid (user)));
|
||||
gtk_container_add (GTK_CONTAINER (self->carousel), item);
|
||||
mct_carousel_add (self->carousel, MCT_CAROUSEL_ITEM (item));
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
<template class="MctUserSelector" parent="GtkBox">
|
||||
<child>
|
||||
<object class="MctCarousel" id="carousel">
|
||||
<property name="visible">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<signal name="item-activated" handler="carousel_item_activated"/>
|
||||
</object>
|
||||
|
|
26
meson.build
26
meson.build
|
@ -1,6 +1,6 @@
|
|||
project('malcontent', 'c',
|
||||
version : '0.10.4',
|
||||
meson_version : '>= 0.50.0',
|
||||
version : '0.12.0',
|
||||
meson_version : '>= 0.59.0',
|
||||
license: ['LGPL-2.1-or-later', 'GPL-2.0-or-later'],
|
||||
default_options : [
|
||||
'buildtype=debugoptimized',
|
||||
|
@ -34,12 +34,12 @@ if pamlibdir == ''
|
|||
endif
|
||||
|
||||
dbus = dependency('dbus-1')
|
||||
dbusinterfacesdir = dbus.get_pkgconfig_variable('interfaces_dir',
|
||||
define_variable: ['datadir', datadir])
|
||||
dbusinterfacesdir = dbus.get_variable(pkgconfig: 'interfaces_dir',
|
||||
pkgconfig_define: ['datadir', datadir])
|
||||
|
||||
polkit_gobject = dependency('polkit-gobject-1')
|
||||
polkitpolicydir = polkit_gobject.get_pkgconfig_variable('policydir',
|
||||
define_variable: ['prefix', prefix])
|
||||
polkitpolicydir = polkit_gobject.get_variable(pkgconfig: 'policydir',
|
||||
pkgconfig_define: ['prefix', prefix])
|
||||
|
||||
config_h = configuration_data()
|
||||
config_h.set_quoted('GETTEXT_PACKAGE', 'malcontent')
|
||||
|
@ -134,13 +134,23 @@ else
|
|||
'Malcontent-' + libmalcontent_api_version + '.typelib']
|
||||
endif
|
||||
if get_option('ui').enabled()
|
||||
gtk_dep = dependency('gtk4', version: '>= 4.6')
|
||||
libadwaita_dep = dependency(
|
||||
'libadwaita-1',
|
||||
version: '>= 1.1',
|
||||
fallback: ['libadwaita', 'libadwaita_dep'],
|
||||
default_options: ['examples=false', 'introspection=disabled', 'tests=false', 'vapi=false'],
|
||||
)
|
||||
subdir('libmalcontent-ui')
|
||||
endif
|
||||
subdir('malcontent-client')
|
||||
if get_option('ui').enabled()
|
||||
subdir('malcontent-control')
|
||||
|
||||
gnome.post_install(
|
||||
gtk_update_icon_cache: true,
|
||||
update_desktop_database: true,
|
||||
)
|
||||
endif
|
||||
subdir('pam')
|
||||
subdir('po')
|
||||
|
||||
meson.add_install_script('build-aux/meson_post_install.py')
|
||||
|
|
|
@ -23,6 +23,7 @@ hr
|
|||
hu
|
||||
id
|
||||
it
|
||||
ka
|
||||
kk
|
||||
ko
|
||||
lt
|
||||
|
|
|
@ -4,7 +4,6 @@ accounts-service/com.endlessm.ParentalControls.policy.in
|
|||
libmalcontent/app-filter.c
|
||||
libmalcontent/manager.c
|
||||
libmalcontent/session-limits.c
|
||||
libmalcontent-ui/gs-content-rating.c
|
||||
libmalcontent-ui/restrict-applications-dialog.c
|
||||
libmalcontent-ui/restrict-applications-dialog.ui
|
||||
libmalcontent-ui/restrict-applications-selector.c
|
||||
|
|
162
po/cs.po
162
po/cs.po
|
@ -8,8 +8,8 @@ msgstr ""
|
|||
"Project-Id-Version: malcontent\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2021-09-18 12:41+0000\n"
|
||||
"PO-Revision-Date: 2021-10-02 00:36+0200\n"
|
||||
"POT-Creation-Date: 2023-10-13 16:18+0000\n"
|
||||
"PO-Revision-Date: 2023-10-23 23:04+0200\n"
|
||||
"Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: cs\n"
|
||||
|
@ -17,7 +17,7 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Poedit 3.0\n"
|
||||
"X-Generator: Poedit 3.4\n"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
|
||||
msgid "Change your own app filter"
|
||||
|
@ -164,78 +164,36 @@ msgstr "Limit sezení pro uživatele %u má nerozpoznaný typ ‘%u’"
|
|||
msgid "Session limit for user %u has invalid daily schedule %u–%u"
|
||||
msgstr "Limit sezení pro uživatele %u má neplatný denní rozvrh %u–%u"
|
||||
|
||||
#. TRANSLATORS: This is the formatting of English and localized name
|
||||
#. of the rating e.g. "Adults Only (solo adultos)"
|
||||
#: libmalcontent-ui/gs-content-rating.c:75
|
||||
#, c-format
|
||||
msgid "%s (%s)"
|
||||
msgstr "%s (%s)"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:209
|
||||
msgid "General"
|
||||
msgstr "Obecné"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:218
|
||||
msgid "ALL"
|
||||
msgstr "VŠECHNY"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:222
|
||||
#: libmalcontent-ui/gs-content-rating.c:485
|
||||
msgid "Adults Only"
|
||||
msgstr "pouze dospělé"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:224
|
||||
#: libmalcontent-ui/gs-content-rating.c:484
|
||||
msgid "Mature"
|
||||
msgstr "plnoleté"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:226
|
||||
#: libmalcontent-ui/gs-content-rating.c:483
|
||||
msgid "Teen"
|
||||
msgstr "mládež"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:228
|
||||
#: libmalcontent-ui/gs-content-rating.c:482
|
||||
msgid "Everyone 10+"
|
||||
msgstr "všechny 10+"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:230
|
||||
#: libmalcontent-ui/gs-content-rating.c:481
|
||||
msgid "Everyone"
|
||||
msgstr "všechny"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:232
|
||||
#: libmalcontent-ui/gs-content-rating.c:480
|
||||
msgid "Early Childhood"
|
||||
msgstr "malé děti"
|
||||
|
||||
#. Translators: the placeholder is a user’s full name
|
||||
#: libmalcontent-ui/restrict-applications-dialog.c:222
|
||||
#: libmalcontent-ui/restrict-applications-dialog.c:256
|
||||
#, c-format
|
||||
msgid "Restrict %s from using the following installed applications."
|
||||
msgstr "Omezit uživateli %s použití následujících nainstalovaných aplikací."
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:6
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:12
|
||||
msgid "Restrict Applications"
|
||||
msgstr "Omezit aplikace"
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-selector.ui:24
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:22
|
||||
msgid "Search for applications…"
|
||||
msgstr "Hledat aplikace…"
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-selector.ui:13
|
||||
msgid "No applications found to restrict."
|
||||
msgstr "Nenalezeny žádné aplikace k omezení."
|
||||
|
||||
#. Translators: this is the full name for an unknown user account.
|
||||
#: libmalcontent-ui/user-controls.c:207 libmalcontent-ui/user-controls.c:218
|
||||
#: libmalcontent-ui/user-controls.c:198 libmalcontent-ui/user-controls.c:209
|
||||
msgid "unknown"
|
||||
msgstr "neznámé"
|
||||
|
||||
#: libmalcontent-ui/user-controls.c:312 libmalcontent-ui/user-controls.c:397
|
||||
#: libmalcontent-ui/user-controls.c:669
|
||||
#: libmalcontent-ui/user-controls.c:303 libmalcontent-ui/user-controls.c:388
|
||||
#: libmalcontent-ui/user-controls.c:641
|
||||
msgid "All Ages"
|
||||
msgstr "libovolný věk"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:477
|
||||
#: libmalcontent-ui/user-controls.c:470
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Prevents %s from running web browsers. Limited web content may still be "
|
||||
|
@ -245,48 +203,48 @@ msgstr ""
|
|||
"obsah může být stále dostupný v jiných aplikacích."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:482
|
||||
#: libmalcontent-ui/user-controls.c:475
|
||||
#, c-format
|
||||
msgid "Prevents specified applications from being used by %s."
|
||||
msgstr "Zabraňuje v používání určených aplikací uživatelem %s."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:487
|
||||
#: libmalcontent-ui/user-controls.c:480
|
||||
#, c-format
|
||||
msgid "Prevents %s from installing applications."
|
||||
msgstr "Zabraňuje uživateli %s v instalaci aplikací."
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:16
|
||||
#: libmalcontent-ui/user-controls.ui:25
|
||||
msgid "Application Usage Restrictions"
|
||||
msgstr "Omezení použití aplikací"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:67
|
||||
#: libmalcontent-ui/user-controls.ui:28
|
||||
msgid "Restrict _Web Browsers"
|
||||
msgstr "Omezit _webové prohlížeče"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:151
|
||||
#: libmalcontent-ui/user-controls.ui:51
|
||||
msgid "_Restrict Applications"
|
||||
msgstr "Omezit _aplikace"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:230
|
||||
#: libmalcontent-ui/user-controls.ui:73
|
||||
msgid "Software Installation Restrictions"
|
||||
msgstr "Omezení instalace softwaru"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:280
|
||||
#: libmalcontent-ui/user-controls.ui:77
|
||||
msgid "Restrict Application _Installation"
|
||||
msgstr "Omezit _instalaci aplikací"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:365
|
||||
#: libmalcontent-ui/user-controls.ui:99
|
||||
msgid "Application _Suitability"
|
||||
msgstr "Vhodno_st aplikací"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:387
|
||||
#: libmalcontent-ui/user-controls.ui:102
|
||||
msgid ""
|
||||
"Restricts browsing or installation of applications to applications suitable "
|
||||
"for certain ages or above."
|
||||
"Restricts the browsing or installation of applications unsuitable for this "
|
||||
"age or younger."
|
||||
msgstr ""
|
||||
"Omezí prohlížení nebo instalaci aplikací na aplikace vhodné pro určitý věk "
|
||||
"nebo výše."
|
||||
"Omezí prohlížení nebo instalaci aplikací nevhodných pro tento věk nebo "
|
||||
"mladší."
|
||||
|
||||
#. Translators: This documents the --user command line option to malcontent-control:
|
||||
#: malcontent-control/application.c:102
|
||||
|
@ -298,44 +256,44 @@ msgstr "Uživatel ke zvolení v UI"
|
|||
msgid "USERNAME"
|
||||
msgstr "UŽIVATEL"
|
||||
|
||||
#: malcontent-control/application.c:115
|
||||
#: malcontent-control/application.c:116
|
||||
msgid "— view and edit parental controls"
|
||||
msgstr "— zobrazit a upravit rodičovskou kontrolu"
|
||||
|
||||
#. Translators: This is the title of the main window
|
||||
#. Translators: the name of the application as it appears in a software center
|
||||
#: malcontent-control/application.c:122 malcontent-control/main.ui:12
|
||||
#: malcontent-control/application.c:123 malcontent-control/main.ui:17
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:9
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:3
|
||||
msgid "Parental Controls"
|
||||
msgstr "Rodičovská kontrola"
|
||||
|
||||
#: malcontent-control/application.c:308
|
||||
#: malcontent-control/application.c:309
|
||||
msgid "Copyright © 2019, 2020 Endless Mobile, Inc."
|
||||
msgstr "Copyright © 2019, 2020 Endless Mobile, Inc."
|
||||
|
||||
#. Translators: this should be "translated" to the
|
||||
#. names of people who have translated Malcontent into
|
||||
#. this language, one per line.
|
||||
#: malcontent-control/application.c:313
|
||||
#: malcontent-control/application.c:314
|
||||
msgid "translator-credits"
|
||||
msgstr "Daniel Rusek <mail@asciiwolf.com>"
|
||||
|
||||
#. Translators: "Malcontent" is the brand name of this
|
||||
#. project, so should not be translated.
|
||||
#: malcontent-control/application.c:319
|
||||
#: malcontent-control/application.c:320
|
||||
msgid "Malcontent Website"
|
||||
msgstr "Webové stránky"
|
||||
|
||||
#: malcontent-control/application.c:337
|
||||
#: malcontent-control/application.c:341
|
||||
msgid "The help contents could not be displayed"
|
||||
msgstr "Obsah nápovědy nemohl být zobrazen"
|
||||
|
||||
#: malcontent-control/application.c:374
|
||||
#: malcontent-control/application.c:388
|
||||
msgid "Failed to load user data from the system"
|
||||
msgstr "Selhalo načtení uživatelských dat ze systému"
|
||||
|
||||
#: malcontent-control/application.c:376
|
||||
#: malcontent-control/application.c:390
|
||||
msgid "Please make sure that the AccountsService is installed and enabled."
|
||||
msgstr "Ověřte prosím, že je AccountsService nainstalováno a povoleno."
|
||||
|
||||
|
@ -348,7 +306,7 @@ msgstr "Ověřte prosím, že je AccountsService nainstalováno a povoleno."
|
|||
#. * further!
|
||||
#. * https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/new
|
||||
#.
|
||||
#: malcontent-control/application.c:407
|
||||
#: malcontent-control/application.c:421
|
||||
#, c-format
|
||||
msgid ""
|
||||
"It’s recommended that restrictions are set as part of an ongoing "
|
||||
|
@ -359,29 +317,29 @@ msgstr ""
|
|||
"konverzace s %s. <a href='https://www.jaknainternet.cz/page/1201/ochrana-"
|
||||
"deti-na-internetu/'>Přečtěte si návod</a> na to, co je třeba vzít v úvahu."
|
||||
|
||||
#: malcontent-control/carousel.ui:48
|
||||
#: malcontent-control/carousel.ui:38
|
||||
msgid "Previous Page"
|
||||
msgstr "Předchozí stránka"
|
||||
|
||||
#: malcontent-control/carousel.ui:74
|
||||
#: malcontent-control/carousel.ui:57
|
||||
msgid "Next Page"
|
||||
msgstr "Následující stránka"
|
||||
|
||||
#: malcontent-control/main.ui:115
|
||||
#: malcontent-control/main.ui:87
|
||||
msgid "Permission Required"
|
||||
msgstr "Vyžadováno oprávnění"
|
||||
|
||||
#: malcontent-control/main.ui:129
|
||||
#: malcontent-control/main.ui:88
|
||||
msgid ""
|
||||
"Permission is required to view and change user parental controls settings."
|
||||
msgstr ""
|
||||
"Pro zobrazení a změnu rodičovské kontroly uživatele je nutné oprávnění."
|
||||
|
||||
#: malcontent-control/main.ui:184
|
||||
#: malcontent-control/main.ui:110
|
||||
msgid "No Standard User Accounts"
|
||||
msgstr "Žádný běžný uživatelský účet"
|
||||
|
||||
#: malcontent-control/main.ui:199
|
||||
#: malcontent-control/main.ui:111
|
||||
msgid ""
|
||||
"Parental controls can only be applied to standard user\n"
|
||||
"accounts. These can be created in the user settings."
|
||||
|
@ -389,19 +347,19 @@ msgstr ""
|
|||
"Rodičovská kontrola může být aplikována pouze na standardní uživatelské\n"
|
||||
"účty. Ty mohou být vytvořeny v nastavení uživatelů."
|
||||
|
||||
#: malcontent-control/main.ui:212
|
||||
#: malcontent-control/main.ui:115
|
||||
msgid "_User Settings"
|
||||
msgstr "Nastavení _uživatelů"
|
||||
|
||||
#: malcontent-control/main.ui:242
|
||||
#: malcontent-control/main.ui:138
|
||||
msgid "Loading…"
|
||||
msgstr "Načítá se…"
|
||||
|
||||
#: malcontent-control/main.ui:305
|
||||
#: malcontent-control/main.ui:171
|
||||
msgid "_Help"
|
||||
msgstr "_Nápověda"
|
||||
|
||||
#: malcontent-control/main.ui:309
|
||||
#: malcontent-control/main.ui:175
|
||||
msgid "_About Parental Controls"
|
||||
msgstr "O _aplikaci Rodičovská kontrola"
|
||||
|
||||
|
@ -426,7 +384,7 @@ msgstr ""
|
|||
msgid "Main window"
|
||||
msgstr "Hlavní okno"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:38
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
|
||||
msgid "The GNOME Project"
|
||||
msgstr "Projekt GNOME"
|
||||
|
||||
|
@ -474,6 +432,34 @@ msgstr "Uživatel ‘%s’ nemá žádný zbývající čas"
|
|||
msgid "Error setting time limit on login session: %s"
|
||||
msgstr "Chyba při nastavení časového limitu na přihlašovací sezení: %s"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "%s (%s)"
|
||||
#~ msgstr "%s (%s)"
|
||||
|
||||
#~ msgid "General"
|
||||
#~ msgstr "Obecné"
|
||||
|
||||
#~ msgid "ALL"
|
||||
#~ msgstr "VŠECHNY"
|
||||
|
||||
#~ msgid "Adults Only"
|
||||
#~ msgstr "pouze dospělé"
|
||||
|
||||
#~ msgid "Mature"
|
||||
#~ msgstr "plnoleté"
|
||||
|
||||
#~ msgid "Teen"
|
||||
#~ msgstr "mládež"
|
||||
|
||||
#~ msgid "Everyone 10+"
|
||||
#~ msgstr "všechny 10+"
|
||||
|
||||
#~ msgid "Everyone"
|
||||
#~ msgstr "všechny"
|
||||
|
||||
#~ msgid "Early Childhood"
|
||||
#~ msgstr "malé děti"
|
||||
|
||||
#~ msgid "No cartoon violence"
|
||||
#~ msgstr "Žádné kreslené násilí"
|
||||
|
||||
|
|
670
po/hi.po
670
po/hi.po
|
@ -1,50 +1,55 @@
|
|||
# Hindi translations for malcontent package.
|
||||
# Copyright (C) 2020 THE malcontent'S COPYRIGHT HOLDER
|
||||
# Copyright (C) 2022 THE malcontent'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the malcontent package.
|
||||
# Automatically generated, 2020.
|
||||
# Will Thompson <wjt@endlessm.com>, 202>, 202>-2022.
|
||||
# Some of credits are lost, as the translations were pulled from Transifex to upstream, but the project does not exist on Transifex now.
|
||||
# Hemish <hemish04082005@gmail.com>, 2022.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: malcontent\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-06-10 12:08+0100\n"
|
||||
"PO-Revision-Date: 2020-04-17 21:58+0000\n"
|
||||
"Last-Translator: Will Thompson <wjt@endlessm.com>, 2020\n"
|
||||
"Language-Team: Hindi (https://www.transifex.com/endless-os/teams/9016/hi/)\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2022-07-25 03:26+0000\n"
|
||||
"PO-Revision-Date: 2022-11-29 13:03+0530\n"
|
||||
"Last-Translator: Hemish <hemish04082005@gmail.com>\n"
|
||||
"Language-Team: Hindi <indlinux-hindi@lists.sourceforge.net https://indlinux."
|
||||
"org/hindi>\n"
|
||||
"Language: hi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"X-Generator: Gtranslator 42.0\n"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
|
||||
msgid "Change your own app filter"
|
||||
msgstr "अपना खुद का ऐप फ़िल्टर बदलें"
|
||||
msgstr "स्वयं के ऐप फ़िल्टर बदलें"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:5
|
||||
msgid "Authentication is required to change your app filter."
|
||||
msgstr "आपके ऐप फिल्टर को बदलने के लिए सत्यापन की आवश्यकता है।"
|
||||
msgstr "स्वयं के ऐप फिल्टर को बदलने के लिए सत्यापन की आवश्यकता है।"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:14
|
||||
msgid "Read your own app filter"
|
||||
msgstr "अपना खुद का ऐप फिल्टर पढ़ें"
|
||||
msgstr "स्वयं के ऐप फिल्टर पढ़ें"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:15
|
||||
msgid "Authentication is required to read your app filter."
|
||||
msgstr "आपके एप फ़िल्टर को पढ़ने के लिए प्रमाणीकरण आवश्यक है।"
|
||||
msgstr "स्वयं के एप फ़िल्टर को पढ़ने के लिए प्रमाणीकरण आवश्यक है।"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:24
|
||||
msgid "Change another user’s app filter"
|
||||
msgstr "अन्य उपयोगकर्ता का ऐप फ़िल्टर बदलें"
|
||||
msgstr "किसी अन्य उपयोगकर्ता के ऐप फ़िल्टर बदलें"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
|
||||
msgid "Authentication is required to change another user’s app filter."
|
||||
msgstr ""
|
||||
"किसी अन्य उपयोगकर्ता के ऐप फ़िल्टर को बदलने के लिए प्रमाणीकरण की आवश्यकता होती है"
|
||||
msgstr "किसी अन्य उपयोगकर्ता के ऐप फ़िल्टर को बदलने के लिए प्रमाणीकरण की आवश्यकता है।"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
|
||||
msgid "Read another user’s app filter"
|
||||
msgstr "अन्य उपयोगकर्ता का ऐप फ़िल्टर पढ़ें"
|
||||
msgstr "किसी अन्य उपयोगकर्ता के ऐप फ़िल्टर पढ़ें"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
|
||||
msgid "Authentication is required to read another user’s app filter."
|
||||
|
@ -52,19 +57,19 @@ msgstr "किसी अन्य उपयोगकर्ता के ऐप
|
|||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:44
|
||||
msgid "Change your own session limits"
|
||||
msgstr "अपने स्वयं के सेशन की सीमा को बदलें"
|
||||
msgstr "स्वयं की सत्र सीमा को बदलें"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:45
|
||||
msgid "Authentication is required to change your session limits."
|
||||
msgstr "आपके सत्र की सीमा को बदलने के लिए सत्यापन की आवश्यकता है।"
|
||||
msgstr "स्वयं की सत्र सीमा को बदलने के लिए सत्यापन की आवश्यकता है।"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:54
|
||||
msgid "Read your own session limits"
|
||||
msgstr "अपने स्वयं के सेशन की सीमा को पढ़ें"
|
||||
msgstr "स्वयं की सत्र सीमा को पढ़ें"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:55
|
||||
msgid "Authentication is required to read your session limits."
|
||||
msgstr "आपके सत्र की सीमा को पढ़ने के लिए सत्यापन की आवश्यकता है।"
|
||||
msgstr "स्वयं की सत्र सीमा को पढ़ने के लिए सत्यापन की आवश्यकता है।"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:64
|
||||
msgid "Change another user’s session limits"
|
||||
|
@ -72,7 +77,7 @@ msgstr "किसी अन्य उपयोगकर्ता की सत
|
|||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
|
||||
msgid "Authentication is required to change another user’s session limits."
|
||||
msgstr "उपयोगकर्ता की सत्र सीमाओं को बदलने के लिए प्रमाणीकरण आवश्यक है"
|
||||
msgstr "किसी अन्य उपयोगकर्ता की सत्र सीमाओं को बदलने के लिए प्रमाणीकरण आवश्यक है"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
|
||||
msgid "Read another user’s session limits"
|
||||
|
@ -84,19 +89,19 @@ msgstr "किसी अन्य उपयोगकर्ता की से
|
|||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:84
|
||||
msgid "Change your own account info"
|
||||
msgstr "अपनी खुद की खाता जानकारी बदलें"
|
||||
msgstr "स्वयं के खाते की जानकारी बदलें"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:85
|
||||
msgid "Authentication is required to change your account info."
|
||||
msgstr "आपके खाते की जानकारी बदलने के लिए प्रमाणीकरण आवश्यक है।"
|
||||
msgstr "स्वयं के खाते की जानकारी बदलने के लिए प्रमाणीकरण आवश्यक है।"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:94
|
||||
msgid "Read your own account info"
|
||||
msgstr "अपने स्वयं के खाते की जानकारी पढ़ें"
|
||||
msgstr "स्वयं के खाते की जानकारी पढ़ें"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:95
|
||||
msgid "Authentication is required to read your account info."
|
||||
msgstr "आपके खाते की जानकारी पढ़ने के लिए सत्यापन आवश्यक है।"
|
||||
msgstr "स्वयं के खाते की जानकारी पढ़ने के लिए सत्यापन आवश्यक है।"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:104
|
||||
msgid "Change another user’s account info"
|
||||
|
@ -112,128 +117,82 @@ msgstr "अन्य उपयोगकर्ता के खाते की
|
|||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
|
||||
msgid "Authentication is required to read another user’s account info."
|
||||
msgstr "उपयोगकर्ता के खाते की जानकारी को पढ़ने के लिए प्रमाणीकरण आवश्यक है।"
|
||||
msgstr "किसी अन्य उपयोगकर्ता के खाते की जानकारी को पढ़ने के लिए प्रमाणीकरण आवश्यक है।"
|
||||
|
||||
#: libmalcontent/app-filter.c:694
|
||||
#, c-format
|
||||
msgid "App filter for user %u was in an unrecognized format"
|
||||
msgstr "उपयोगकर्ता %u के लिए एप फ़िल्टर एक अपरिचित प्रारूप में था"
|
||||
msgstr "उपयोगकर्ता %u के लिए एप फ़िल्टर एक अपरिचित प्रारूप में था।"
|
||||
|
||||
#: libmalcontent/app-filter.c:725
|
||||
#, c-format
|
||||
msgid "OARS filter for user %u has an unrecognized kind ‘%s’"
|
||||
msgstr "उपयोगकर्ता %u के लिए OARS फ़िल्टर के पास एक अपरिचित प्रकार का '%s' है। "
|
||||
msgstr "उपयोगकर्ता %u के लिए OARS फ़िल्टर के पास एक अपरिचित प्रकार ‘%s’ है।"
|
||||
|
||||
#: libmalcontent/manager.c:283 libmalcontent/manager.c:412
|
||||
#: libmalcontent/manager.c:283 libmalcontent/manager.c:420
|
||||
#: libmalcontent/manager.c:803
|
||||
#, c-format
|
||||
msgid "Not allowed to query app filter data for user %u"
|
||||
msgid "Not allowed to query parental controls data for user %u"
|
||||
msgstr "उपयोगकर्ता %u के लिए ऐप फ़िल्टर डेटा को क्वेरी करने की अनुमति नहीं है"
|
||||
|
||||
#: libmalcontent/manager.c:288
|
||||
#, c-format
|
||||
msgid "User %u does not exist"
|
||||
msgstr "उपयोगकर्ता %u मौजूद नहीं है"
|
||||
msgstr "उपयोगकर्ता %u मौजूद नहीं है।"
|
||||
|
||||
#: libmalcontent/manager.c:394
|
||||
#: libmalcontent/manager.c:296
|
||||
msgid "System accounts service not available"
|
||||
msgstr "सिस्टम खाता सेवा (AccountsService) उपलब्ध नहीं है।"
|
||||
|
||||
#: libmalcontent/manager.c:402
|
||||
msgid "App filtering is globally disabled"
|
||||
msgstr "ऐप फ़िल्टरिंग सार्वभौमिक स्तर पर निष्क्रिय है"
|
||||
msgstr "ऐप फ़िल्टरिंग सार्वभौमिक स्तर पर निष्क्रिय है।"
|
||||
|
||||
#: libmalcontent/manager.c:777
|
||||
#: libmalcontent/manager.c:785
|
||||
msgid "Session limits are globally disabled"
|
||||
msgstr "सेशन की सीमा सार्वभौमिक स्तर पर निष्क्रिय है"
|
||||
|
||||
#: libmalcontent/manager.c:795
|
||||
#, c-format
|
||||
msgid "Not allowed to query session limits data for user %u"
|
||||
msgstr "उपयोगकर्ता %u के लिए डेटा सत्र सीमा की क्वेरी करने की अनुमति नहीं है"
|
||||
msgstr "सत्र सीमाएँ सार्वभौमिक स्तर पर निष्क्रिय हैं।"
|
||||
|
||||
#: libmalcontent/session-limits.c:306
|
||||
#, c-format
|
||||
msgid "Session limit for user %u was in an unrecognized format"
|
||||
msgstr "उपयोगकर्ता %u के लिए सत्र सीमा एक अपरिचित प्रारूप में थी"
|
||||
msgstr "उपयोगकर्ता %u के लिए सत्र सीमा एक अपरिचित प्रारूप में थी।"
|
||||
|
||||
#: libmalcontent/session-limits.c:328
|
||||
#, c-format
|
||||
msgid "Session limit for user %u has an unrecognized type ‘%u’"
|
||||
msgstr "उपयोगकर्ता %u के लिए सत्र सीमा एक अपरिचित प्रकार की है '%u'"
|
||||
msgstr "उपयोगकर्ता %u के लिए सत्र सीमा एक अपरिचित प्रकार ‘%u’ की है।"
|
||||
|
||||
#: libmalcontent/session-limits.c:346
|
||||
#, c-format
|
||||
msgid "Session limit for user %u has invalid daily schedule %u–%u"
|
||||
msgstr "उपयोगकर्ता %u के सेशन सीमा में अमान्य दैनिक शेड्यूल %u-%u है"
|
||||
|
||||
#. TRANSLATORS: This is the formatting of English and localized name
|
||||
#. of the rating e.g. "Adults Only (solo adultos)"
|
||||
#: libmalcontent-ui/gs-content-rating.c:75
|
||||
#, c-format
|
||||
msgid "%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:209
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:218
|
||||
msgid "ALL"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:222
|
||||
#: libmalcontent-ui/gs-content-rating.c:485
|
||||
msgid "Adults Only"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:224
|
||||
#: libmalcontent-ui/gs-content-rating.c:484
|
||||
msgid "Mature"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:226
|
||||
#: libmalcontent-ui/gs-content-rating.c:483
|
||||
msgid "Teen"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:228
|
||||
#: libmalcontent-ui/gs-content-rating.c:482
|
||||
msgid "Everyone 10+"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:230
|
||||
#: libmalcontent-ui/gs-content-rating.c:481
|
||||
msgid "Everyone"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:232
|
||||
#: libmalcontent-ui/gs-content-rating.c:480
|
||||
msgid "Early Childhood"
|
||||
msgstr ""
|
||||
msgstr "उपयोगकर्ता %u के सत्र सीमा में अमान्य दैनिक शेड्यूल %u-%u है"
|
||||
|
||||
#. Translators: the placeholder is a user’s full name
|
||||
#: libmalcontent-ui/restrict-applications-dialog.c:222
|
||||
#: libmalcontent-ui/restrict-applications-dialog.c:223
|
||||
#, c-format
|
||||
msgid "Restrict %s from using the following installed applications."
|
||||
msgstr "निम्न इंस्टाल हुई एप्लिकेशन के उपयोग से %s को प्रतिबंधित करें।"
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:6
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:12
|
||||
msgid "Restrict Applications"
|
||||
msgstr "एप्लीकेशन को प्रतिबंधित करें"
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-selector.ui:24
|
||||
#: libmalcontent-ui/restrict-applications-selector.ui:13
|
||||
msgid "No applications found to restrict."
|
||||
msgstr "प्रतिबंधित करने के लिए कोई भी एप्लिकेशन नहीं मिला।"
|
||||
msgstr "प्रतिबंधित करने के लिए कोई भी एप्लिकेशन नहीं मिली।"
|
||||
|
||||
#. Translators: this is the full name for an unknown user account.
|
||||
#: libmalcontent-ui/user-controls.c:242 libmalcontent-ui/user-controls.c:253
|
||||
#: libmalcontent-ui/user-controls.c:198 libmalcontent-ui/user-controls.c:209
|
||||
msgid "unknown"
|
||||
msgstr "अज्ञात"
|
||||
|
||||
#: libmalcontent-ui/user-controls.c:338 libmalcontent-ui/user-controls.c:425
|
||||
#: libmalcontent-ui/user-controls.c:711
|
||||
#: libmalcontent-ui/user-controls.c:303 libmalcontent-ui/user-controls.c:388
|
||||
#: libmalcontent-ui/user-controls.c:641
|
||||
msgid "All Ages"
|
||||
msgstr "सभी आयु"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:514
|
||||
#: libmalcontent-ui/user-controls.c:470
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Prevents %s from running web browsers. Limited web content may still be "
|
||||
|
@ -243,146 +202,177 @@ msgstr ""
|
|||
"हो सकती है।"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:519
|
||||
#: libmalcontent-ui/user-controls.c:475
|
||||
#, c-format
|
||||
msgid "Prevents specified applications from being used by %s."
|
||||
msgstr "%s को विशिष्ट एप्लीकेशन का उपयोग करने से रोकें।"
|
||||
msgstr "%s को विशिष्ट एप्लीकेशन का उपयोग करने से रोकता है।"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:524
|
||||
#: libmalcontent-ui/user-controls.c:480
|
||||
#, c-format
|
||||
msgid "Prevents %s from installing applications."
|
||||
msgstr " %s को एप्लिकेशन इंस्टॉल करने से रोकता है।"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:529
|
||||
#, c-format
|
||||
msgid "Applications installed by %s will not appear for other users."
|
||||
msgstr "%s द्वारा इंस्टॉल किए गए एप्लिकेशन अन्य उपयोगकर्ताओं के लिए उपलब्ध नहीं होंगे।"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:17
|
||||
#: libmalcontent-ui/user-controls.ui:25
|
||||
msgid "Application Usage Restrictions"
|
||||
msgstr "एप्लीकेशन उपयोग के प्रतिबंध"
|
||||
msgstr "एप्लीकेशन उपयोग पर प्रतिबंध"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:68
|
||||
#: libmalcontent-ui/user-controls.ui:28
|
||||
msgid "Restrict _Web Browsers"
|
||||
msgstr "_वेब ब्राउज़रों को प्रतिबंधित करें"
|
||||
msgstr "वेब ब्राउज़रों को प्रतिबंधित करें (_W)"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:152
|
||||
#: libmalcontent-ui/user-controls.ui:50
|
||||
msgid "_Restrict Applications"
|
||||
msgstr "_एप्लीकेशन प्रतिबंधित करें"
|
||||
msgstr "एप्लीकेशन प्रतिबंधित करें (_R)"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:231
|
||||
#: libmalcontent-ui/user-controls.ui:72
|
||||
msgid "Software Installation Restrictions"
|
||||
msgstr "साफ्टवेयर इंस्टालेशन का प्रतिबंध"
|
||||
msgstr "साफ्टवेयर इंस्टालेशन पर प्रतिबंध"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:281
|
||||
#: libmalcontent-ui/user-controls.ui:76
|
||||
msgid "Restrict Application _Installation"
|
||||
msgstr "एप्लीकेशन इंस्टालेशन को रोकें"
|
||||
msgstr "एप्लीकेशन के इंस्टालेशन को रोकें (_I)"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:366
|
||||
msgid "Restrict Application Installation for _Others"
|
||||
msgstr "_अन्य लोगों को एप्लिकेशन इंस्टॉलेशन करने से रोकें"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:451
|
||||
#: libmalcontent-ui/user-controls.ui:97
|
||||
msgid "Application _Suitability"
|
||||
msgstr "एप्लीकेशन की उपयुक्तता"
|
||||
msgstr "एप्लीकेशन की उपयुक्तता (_S)"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:473
|
||||
#: libmalcontent-ui/user-controls.ui:100
|
||||
msgid ""
|
||||
"Restricts browsing or installation of applications to applications suitable "
|
||||
"for certain ages or above."
|
||||
msgstr ""
|
||||
"ख़ास उम्र या उससे ऊपर के लोगों के लिए उपयुक्त एप्लिकेशन इंस्टाल या ब्राउज़िंग को प्रतिबंधित "
|
||||
"करता है।"
|
||||
"विशिष्ट उम्र या उससे ऊपर के लोगों के लिए उपयुक्त एप्लिकेशन इंस्टाल या ब्राउज़िंग को "
|
||||
"प्रतिबंधित करता है।"
|
||||
|
||||
#. Translators: This documents the --user command line option to malcontent-control:
|
||||
#: malcontent-control/application.c:102
|
||||
msgid "User to select in the UI"
|
||||
msgstr "UI में जो उपयोगकर्ता चुना जाना चाहिए"
|
||||
|
||||
# This is a place holder for command line field, thus left as such.
|
||||
#. Translators: This is a placeholder for a command line argument value:
|
||||
#: malcontent-control/application.c:104
|
||||
msgid "USERNAME"
|
||||
msgstr "USERNAME"
|
||||
|
||||
#: malcontent-control/application.c:116
|
||||
msgid "— view and edit parental controls"
|
||||
msgstr "— पैरेंटल कंट्रोल को देखें व उनका प्रबंधन करें"
|
||||
|
||||
#. Translators: This is the title of the main window
|
||||
#. Translators: the name of the application as it appears in a software center
|
||||
#: malcontent-control/application.c:105 malcontent-control/main.ui:12
|
||||
#: malcontent-control/application.c:123 malcontent-control/main.ui:17
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:9
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:3
|
||||
msgid "Parental Controls"
|
||||
msgstr "पैरेंटल कंट्रोल "
|
||||
|
||||
#: malcontent-control/application.c:270
|
||||
#: malcontent-control/application.c:309
|
||||
msgid "Copyright © 2019, 2020 Endless Mobile, Inc."
|
||||
msgstr "कॉपीराइट © 2019, 2020 Endless Mobile, Inc."
|
||||
|
||||
#. Translators: this should be "translated" to the
|
||||
#. names of people who have translated Malcontent into
|
||||
#. this language, one per line.
|
||||
#: malcontent-control/application.c:275
|
||||
#: malcontent-control/application.c:314
|
||||
msgid "translator-credits"
|
||||
msgstr ""
|
||||
"Hemish <hemish04082005@gmail.com>\n"
|
||||
"https://www.transifex.com/endless-os/teams/9016/hi/"
|
||||
|
||||
# 'Malcontent' is a brand name, so to clarify for Hindi audience, it is put in inverted commas
|
||||
#. Translators: "Malcontent" is the brand name of this
|
||||
#. project, so should not be translated.
|
||||
#: malcontent-control/application.c:281
|
||||
#: malcontent-control/application.c:320
|
||||
msgid "Malcontent Website"
|
||||
msgstr "अनुचित सामग्री युक्त वेबसाइट"
|
||||
msgstr "'Malcontent' की वेबसाइट"
|
||||
|
||||
#: malcontent-control/application.c:299
|
||||
#: malcontent-control/application.c:341
|
||||
msgid "The help contents could not be displayed"
|
||||
msgstr "सहायता सामग्री प्रदर्शित नहीं की जा सकी"
|
||||
|
||||
#: malcontent-control/application.c:336
|
||||
#: malcontent-control/application.c:388
|
||||
msgid "Failed to load user data from the system"
|
||||
msgstr "सिस्टम से यूजर डेटा को लोड करने में असक्षम"
|
||||
msgstr "सिस्टम से उपयोगकर्ता डेटा को लोड करने में असक्षम"
|
||||
|
||||
#: malcontent-control/application.c:338
|
||||
#: malcontent-control/application.c:390
|
||||
msgid "Please make sure that the AccountsService is installed and enabled."
|
||||
msgstr "कृपया सुनिश्चित करें कि खातासर्विस इनस्टॉल है और सक्रीय है।"
|
||||
msgstr "कृपया सुनिश्चित करें कि AccountsService इनस्टॉल है और सक्रिय है।"
|
||||
|
||||
#: malcontent-control/carousel.ui:48
|
||||
# A google-translated link of commonsensemedia.org has been provided, as the language is not available at the site, and any good localised guide does not exist.
|
||||
#. Translators: Replace the link to commonsensemedia.org with some
|
||||
#. * localised guidance for parents/carers on how to set restrictions on
|
||||
#. * their child/caree in a responsible way which is in keeping with the
|
||||
#. * best practice and culture of the region. If no suitable localised
|
||||
#. * guidance exists, and if the default commonsensemedia.org link is not
|
||||
#. * suitable, please file an issue against malcontent so we can discuss
|
||||
#. * further!
|
||||
#. * https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/new
|
||||
#.
|
||||
#: malcontent-control/application.c:421
|
||||
#, c-format
|
||||
msgid ""
|
||||
"It’s recommended that restrictions are set as part of an ongoing "
|
||||
"conversation with %s. <a href='https://www.commonsensemedia.org/privacy-and-"
|
||||
"internet-safety'>Read guidance</a> on what to consider."
|
||||
msgstr ""
|
||||
"यह सलाह दी जाती है कि प्रतिबंध %s से बातचीत के हिस्से हैं। कृपया <a href='https://www-"
|
||||
"commonsensemedia-org.translate.goog/articles/online-safety?"
|
||||
"_x_tr_sl=auto&_x_tr_tl=hi'>गाइड को पढें </a> व जानें कि क्या-क्या चीज़ों पर ध्यान "
|
||||
"रखना चाहिए।"
|
||||
|
||||
#: malcontent-control/carousel.ui:38
|
||||
msgid "Previous Page"
|
||||
msgstr "पिछला पेज"
|
||||
msgstr "पिछला पृष्ठ"
|
||||
|
||||
#: malcontent-control/carousel.ui:74
|
||||
#: malcontent-control/carousel.ui:57
|
||||
msgid "Next Page"
|
||||
msgstr "अगला पेज"
|
||||
msgstr "अगला पृष्ठ"
|
||||
|
||||
#: malcontent-control/main.ui:93
|
||||
#: malcontent-control/main.ui:87
|
||||
msgid "Permission Required"
|
||||
msgstr "अनुमति आवश्यक है"
|
||||
|
||||
#: malcontent-control/main.ui:107
|
||||
#: malcontent-control/main.ui:88
|
||||
msgid ""
|
||||
"Permission is required to view and change user parental controls settings."
|
||||
msgstr "यूजर पैरेंटल नियंत्रण की सेटिंग्स को देखने और बदलने के लिए अनुमति की आवश्यकता है।"
|
||||
|
||||
#: malcontent-control/main.ui:148
|
||||
msgid "No Child Users Configured"
|
||||
msgstr "कोई चाइल्ड यूजर कॉन्फिगर नहीं किया गया"
|
||||
|
||||
#: malcontent-control/main.ui:162
|
||||
msgid ""
|
||||
"No child users are currently set up on the system. Create one before setting "
|
||||
"up their parental controls."
|
||||
msgstr ""
|
||||
"वर्तमान में कोई भी बच्चा उपयोगकर्ता सिस्टम पर सेट नहीं है। उनके पैरेंटल कंट्रोल स्थापित करने "
|
||||
"से पहले एक निर्मित करें।"
|
||||
"उपयोगकर्ता पैरेंटल नियंत्रण की सेटिंग्स को देखने और बदलने के लिए अनुमति की आवश्यकता है।"
|
||||
|
||||
#: malcontent-control/main.ui:174
|
||||
msgid "Create _Child User"
|
||||
msgstr "चाइल्ड यूजर बनायें"
|
||||
#: malcontent-control/main.ui:110
|
||||
msgid "No Standard User Accounts"
|
||||
msgstr "कोई साधारण उपयोगकर्ता खाता नहीं पाया गया"
|
||||
|
||||
#: malcontent-control/main.ui:202
|
||||
#: malcontent-control/main.ui:111
|
||||
msgid ""
|
||||
"Parental controls can only be applied to standard user\n"
|
||||
"accounts. These can be created in the user settings."
|
||||
msgstr ""
|
||||
"उपयोगकर्ता प्रतिबंध का नियंत्रण केवल सामान्य उपयोगकर्ता खातों पर लागू किया\n"
|
||||
"जा सकता है। इन्हें उपयोगकर्ता सेटिंग्स में प्रबंधित किया जा सकता है।"
|
||||
|
||||
#: malcontent-control/main.ui:115
|
||||
msgid "_User Settings"
|
||||
msgstr "उपयोगकर्ता सेटिंग्स"
|
||||
|
||||
#: malcontent-control/main.ui:138
|
||||
msgid "Loading…"
|
||||
msgstr "लोड हो रहा है…"
|
||||
|
||||
#: malcontent-control/main.ui:265
|
||||
#: malcontent-control/main.ui:171
|
||||
msgid "_Help"
|
||||
msgstr "_सहायता"
|
||||
msgstr "सहायता (_H)"
|
||||
|
||||
#: malcontent-control/main.ui:269
|
||||
#: malcontent-control/main.ui:175
|
||||
msgid "_About Parental Controls"
|
||||
msgstr "_पैरेंटल कंट्रोल के बारे में"
|
||||
msgstr "'पैरेंटल कंट्रोल' का परिचय (_A)"
|
||||
|
||||
#. Translators: the brief summary of the application as it appears in a software center.
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:12
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:4
|
||||
msgid "Set parental controls and monitor usage by users"
|
||||
msgstr "पैरेंटल नियंत्रण सेट करें और यूजर द्वारा प्रयोग को मॉनीटर करें"
|
||||
msgstr "पैरेंटल नियंत्रण सेट करें और उपयोगकर्ता द्वारा प्रयोग को मॉनीटर करें"
|
||||
|
||||
#. Translators: These are the application description paragraphs in the AppData file.
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:16
|
||||
|
@ -392,63 +382,26 @@ msgid ""
|
|||
"software they can run."
|
||||
msgstr ""
|
||||
"उपयोगकर्ताओं के पैरेंटल कंट्रोल प्रतिबंधों को प्रबंधित करें, यह नियंत्रित करते हुए कि वे कितने "
|
||||
"समय तक कंप्यूटर का उपयोग कर सकते हैं, वे कौन सा सॉफ़्टवेयर इंस्टाल कर सकते हैं और कौन से "
|
||||
"समय तक कंप्यूटर का उपयोग कर सकते हैं, वे कौन से सॉफ़्टवेयर इंस्टाल कर सकते हैं और कौन से "
|
||||
"इंस्टाल हो चुके सॉफ़्टवेयर चला सकते हैं।"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
|
||||
msgid "Main window"
|
||||
msgstr "मुख्य विंडो"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
|
||||
msgid "The GNOME Project"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:50
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:59
|
||||
msgid "Minor improvements to parental controls application UI"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:51
|
||||
msgid "Add a user manual"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:52
|
||||
msgid "Translation updates"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:60
|
||||
msgid "Translations to Ukrainian and Polish"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:67
|
||||
msgid "Improve parental controls application UI and add icon"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:68
|
||||
msgid "Support for indicating which accounts are parent accounts"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:75
|
||||
msgid "Initial release of basic parental controls application"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:76
|
||||
msgid "Support for setting app installation and run restrictions on users"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:83
|
||||
msgid "Maintenance release of underlying parental controls library"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:7
|
||||
msgid "org.freedesktop.MalcontentControl"
|
||||
msgstr ""
|
||||
msgstr "दी गनोम प्रॉजेक्ट"
|
||||
|
||||
#. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon!
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:13
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:14
|
||||
msgid ""
|
||||
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
|
||||
"usage;usage limit;kid;child;"
|
||||
msgstr ""
|
||||
"अभिभावक नियंत्रण; स्क्रीन समय; ऐप प्रतिबंध; वेब ब्राउज़र पर प्रतिबंध; ऑर्स; उपयोग; उपयोग "
|
||||
"की सीमा; बच्चा;"
|
||||
"की सीमा; बच्चा;parental controls;screen time;app restrictions;web browser "
|
||||
"restrictions;oars;usage;usage limit;kid;child;"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:9
|
||||
msgid "Manage parental controls"
|
||||
|
@ -456,7 +409,7 @@ msgstr "पैरेंटल कंट्रोल का प्रबंधन
|
|||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:10
|
||||
msgid "Authentication is required to read and change user parental controls"
|
||||
msgstr "उपयोगकर्ता अभिभावक नियंत्रणों को पढ़ने और बदलने के लिए सत्यापन आवश्यक है"
|
||||
msgstr "उपयोगकर्ता प्रतिबंध व नियंत्रणों को पढ़ने और बदलने के लिए सत्यापन आवश्यक है।"
|
||||
|
||||
#: malcontent-control/user-selector.c:426
|
||||
msgid "Your account"
|
||||
|
@ -467,315 +420,20 @@ msgstr "आपका खाता"
|
|||
#: pam/pam_malcontent.c:142 pam/pam_malcontent.c:188
|
||||
#, c-format
|
||||
msgid "User ‘%s’ has no time limits enabled"
|
||||
msgstr "उपयोगकर्ता '%s' की कोई समय सीमा सक्षम नहीं है"
|
||||
msgstr "उपयोगकर्ता '%s' के लिए कोई समय सीमा सक्रिय नहीं है।"
|
||||
|
||||
#: pam/pam_malcontent.c:151 pam/pam_malcontent.c:172
|
||||
#, c-format
|
||||
msgid "Error getting session limits for user ‘%s’: %s"
|
||||
msgstr "उपयोगकर्ता ‘%s’: %s के लिए सेशन सीमा प्राप्त करने में समस्या हुई है"
|
||||
msgstr "उपयोगकर्ता ‘%s’ के लिए सेशन सत्र की सीमाएँ प्राप्त करने में समस्या हुई: %s"
|
||||
|
||||
#: pam/pam_malcontent.c:182
|
||||
#, c-format
|
||||
msgid "User ‘%s’ has no time remaining"
|
||||
msgstr "उपयोगकर्ता ‘%s’ के पास समय नहीं बचा है"
|
||||
msgstr "उपयोगकर्ता ‘%s’ के पास समय नहीं बचा है।"
|
||||
|
||||
#: pam/pam_malcontent.c:200
|
||||
#, c-format
|
||||
msgid "Error setting time limit on login session: %s"
|
||||
msgstr "%s के लॉगिन सेशन पर समय सीमा सेट करने में समस्या हुई है"
|
||||
msgstr "%s के लॉगिन सत्र पर समय सीमा सेट करने में त्रुटि हुई"
|
||||
|
||||
#~ msgid "No cartoon violence"
|
||||
#~ msgstr "कोई कार्टून हिंसा नहीं"
|
||||
|
||||
#~ msgid "Cartoon characters in unsafe situations"
|
||||
#~ msgstr "असुरक्षित परिस्थितियों में कार्टून कैरेक्टर"
|
||||
|
||||
#~ msgid "Cartoon characters in aggressive conflict"
|
||||
#~ msgstr "आक्रामक विरोध में कार्टून कैरेक्टर"
|
||||
|
||||
#~ msgid "Graphic violence involving cartoon characters"
|
||||
#~ msgstr "कार्टून कैरेक्टर में शामिल ग्राफ़िक हिंसा"
|
||||
|
||||
#~ msgid "No fantasy violence"
|
||||
#~ msgstr "कोई काल्पनिक हिंसा नहीं"
|
||||
|
||||
#~ msgid "Characters in unsafe situations easily distinguishable from reality"
|
||||
#~ msgstr "असुरक्षित परिस्थितियों वाले कैरेक्टर को रिएलिटी से आसानी से अलग होने योग्य है"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Characters in aggressive conflict easily distinguishable from reality"
|
||||
#~ msgstr "आक्रामक विरोध वाले कैरेक्टर को रिएलिटी से आसानी से अलग होने योग्य है"
|
||||
|
||||
#~ msgid "Graphic violence easily distinguishable from reality"
|
||||
#~ msgstr "ग्राफ़िक हिंसा रिएलिटी से आसानी से अलग होने योग्य है"
|
||||
|
||||
#~ msgid "No realistic violence"
|
||||
#~ msgstr "कोई यथार्थवादी हिंसा नहीं"
|
||||
|
||||
#~ msgid "Mildly realistic characters in unsafe situations"
|
||||
#~ msgstr "असुरक्षित परिस्थितियों में थोड़े यथार्थवादी चरित्र"
|
||||
|
||||
#~ msgid "Depictions of realistic characters in aggressive conflict"
|
||||
#~ msgstr "आक्रामक विरोध में वास्तविक कैरेक्टर का विवरण"
|
||||
|
||||
#~ msgid "Graphic violence involving realistic characters"
|
||||
#~ msgstr "ग्राफ़िक हिंसा वाले वास्तविक कैरेक्टर"
|
||||
|
||||
#~ msgid "No bloodshed"
|
||||
#~ msgstr "कोई रक्तपात नहीं"
|
||||
|
||||
#~ msgid "Unrealistic bloodshed"
|
||||
#~ msgstr "अवास्तविक रक्तपात"
|
||||
|
||||
#~ msgid "Realistic bloodshed"
|
||||
#~ msgstr "वास्तविक रक्तपात"
|
||||
|
||||
#~ msgid "Depictions of bloodshed and the mutilation of body parts"
|
||||
#~ msgstr "रक्तपात और शरीर के अंगों में विकृति का विवरण"
|
||||
|
||||
#~ msgid "No sexual violence"
|
||||
#~ msgstr "कोई यौन हिंसा नहीं"
|
||||
|
||||
#~ msgid "Rape or other violent sexual behavior"
|
||||
#~ msgstr "बलात्कार या अन्य हिंसात्मक लैंगिक व्यवहार"
|
||||
|
||||
#~ msgid "No references to alcohol"
|
||||
#~ msgstr "एल्कोहल के कोई संदर्भ नहीं"
|
||||
|
||||
#~ msgid "References to alcoholic beverages"
|
||||
#~ msgstr "एल्कोहल वाले पेय पदार्थों का संदर्भ"
|
||||
|
||||
#~ msgid "Use of alcoholic beverages"
|
||||
#~ msgstr "एल्कोहल वाले पेयपदार्थों का उपयोग"
|
||||
|
||||
#~ msgid "No references to illicit drugs"
|
||||
#~ msgstr "अवैध नशीली दवाओं के कोई संदर्भ नहीं"
|
||||
|
||||
#~ msgid "References to illicit drugs"
|
||||
#~ msgstr "अवैध ड्रग का संदर्भ"
|
||||
|
||||
#~ msgid "Use of illicit drugs"
|
||||
#~ msgstr "अवैध ड्रग का उपयोग"
|
||||
|
||||
#~ msgid "References to tobacco products"
|
||||
#~ msgstr "तंबाकू के उत्पादों का संदर्भ"
|
||||
|
||||
#~ msgid "Use of tobacco products"
|
||||
#~ msgstr "तंबाकू के उत्पादों का उपयोग"
|
||||
|
||||
#~ msgid "No nudity of any sort"
|
||||
#~ msgstr "किसी प्रकार की कोई नग्नता नहीं"
|
||||
|
||||
#~ msgid "Brief artistic nudity"
|
||||
#~ msgstr "संक्षिप्त कलात्मक नग्नता"
|
||||
|
||||
#~ msgid "Prolonged nudity"
|
||||
#~ msgstr "लंबे समय तक नग्नता"
|
||||
|
||||
#~ msgid "No references or depictions of sexual nature"
|
||||
#~ msgstr "यौन प्रकृति के कोई संदर्भ या चित्रण नहीं"
|
||||
|
||||
#~ msgid "Provocative references or depictions"
|
||||
#~ msgstr "उत्तेजक संदर्भ या विवरण"
|
||||
|
||||
#~ msgid "Sexual references or depictions"
|
||||
#~ msgstr "लैंगिक संदर्भ या विवरण"
|
||||
|
||||
#~ msgid "Graphic sexual behavior"
|
||||
#~ msgstr "ग्राफ़िक लैंगिक व्यवहार"
|
||||
|
||||
#~ msgid "No profanity of any kind"
|
||||
#~ msgstr "किसी प्रकार की कोई गाली नहीं"
|
||||
|
||||
#~ msgid "Mild or infrequent use of profanity"
|
||||
#~ msgstr "गलत आचरण का माइल्ड या कभी कभी उपयोग"
|
||||
|
||||
#~ msgid "Moderate use of profanity"
|
||||
#~ msgstr "गलत आचरण का मॉडरेट उपयोग"
|
||||
|
||||
#~ msgid "Strong or frequent use of profanity"
|
||||
#~ msgstr "गलत आचरण का अधिक या बार-बार उपयोग"
|
||||
|
||||
#~ msgid "No inappropriate humor"
|
||||
#~ msgstr "कोई अनुचित हास्य नहीं"
|
||||
|
||||
#~ msgid "Slapstick humor"
|
||||
#~ msgstr "हँसी मज़ाक"
|
||||
|
||||
#~ msgid "Vulgar or bathroom humor"
|
||||
#~ msgstr "अश्लील या बाथरुम संबंधी हास्य"
|
||||
|
||||
#~ msgid "Mature or sexual humor"
|
||||
#~ msgstr "वयस्क या लिंग संबंधी हास्य"
|
||||
|
||||
#~ msgid "No discriminatory language of any kind"
|
||||
#~ msgstr "किसी प्रकार की कोई भेदभावपूर्ण भाषा नहीं"
|
||||
|
||||
#~ msgid "Negativity towards a specific group of people"
|
||||
#~ msgstr "लोगों के किसी विशेष समूह के लिए नकारात्मकता"
|
||||
|
||||
#~ msgid "Discrimination designed to cause emotional harm"
|
||||
#~ msgstr "भावनात्मक नुकसान पहुँचाने के लिए निर्मित भेदभाव"
|
||||
|
||||
#~ msgid "Explicit discrimination based on gender, sexuality, race or religion"
|
||||
#~ msgstr "लिंग, लिंग संबंध, जाति या धर्म के आधार पर सुस्पष्ट भेदभाव"
|
||||
|
||||
#~ msgid "No advertising of any kind"
|
||||
#~ msgstr "किसी प्रकार का कोई विज्ञापन नहीं"
|
||||
|
||||
#~ msgid "Product placement"
|
||||
#~ msgstr "उत्पाद का प्रतिस्थापन"
|
||||
|
||||
#~ msgid "Explicit references to specific brands or trademarked products"
|
||||
#~ msgstr "विशेष ब्रांड या ट्रेडमार्क उत्पादों के लिए सुस्पष्ट संदर्भ"
|
||||
|
||||
#~ msgid "Users are encouraged to purchase specific real-world items"
|
||||
#~ msgstr ""
|
||||
#~ "उपयोगकर्ताओं को वास्तविक दुनिया के विशिष्ट सामानों को खरीदने के लिए प्रोत्साहित किया "
|
||||
#~ "जाता है"
|
||||
|
||||
#~ msgid "No gambling of any kind"
|
||||
#~ msgstr "किसी प्रकार का कोई जुआ नहीं"
|
||||
|
||||
#~ msgid "Gambling on random events using tokens or credits"
|
||||
#~ msgstr "टोकन या क्रेडिट का उपयोग करके जुआं या निरुदेश्य ईवेंट"
|
||||
|
||||
#~ msgid "Gambling using “play” money"
|
||||
#~ msgstr "\"प्ले\" धन का उपयोग करके जुआ"
|
||||
|
||||
#~ msgid "Gambling using real money"
|
||||
#~ msgstr "वास्तविक धन का उपयोग जुआ"
|
||||
|
||||
#~ msgid "No ability to spend money"
|
||||
#~ msgstr "धन व्यय करने की कोई क्षमता नहीं"
|
||||
|
||||
#~ msgid "Users are encouraged to donate real money"
|
||||
#~ msgstr "उपयोगकर्ताओं को वास्तविक धन दान करने के लिए प्रोत्साहित किया जाता है"
|
||||
|
||||
#~ msgid "Ability to spend real money in-game"
|
||||
#~ msgstr "गेम में वास्तविक धन व्यय करने की क्षमता"
|
||||
|
||||
#~ msgid "No way to chat with other users"
|
||||
#~ msgstr "अन्य उपयोगकर्ताओं के साथ चैट करने का कोई तरीका नहीं है"
|
||||
|
||||
#~ msgid "User-to-user game interactions without chat functionality"
|
||||
#~ msgstr "चैट कार्यात्मकता के बिना उपयोगकर्ता-से-उपयोगकर्ता गेम संवाद"
|
||||
|
||||
#~ msgid "Moderated chat functionality between users"
|
||||
#~ msgstr "उपयोगकर्ताओं के मध्य मॉडरेटेड चैट कार्यक्षमता"
|
||||
|
||||
#~ msgid "Uncontrolled chat functionality between users"
|
||||
#~ msgstr "उपयोगकर्ताओं के मध्य अनियंत्रित चैट कार्यक्षमता"
|
||||
|
||||
#~ msgid "No way to talk with other users"
|
||||
#~ msgstr "यह अन्य उपयोगकर्ताओं के साथ बात करने का कोई तरीका नहीं"
|
||||
|
||||
#~ msgid "Uncontrolled audio or video chat functionality between users"
|
||||
#~ msgstr "उपयोगकर्ताओं के बीच अनियंत्रित ऑडियो और वीडियो चैट कार्यात्मकता"
|
||||
|
||||
#~ msgid "No sharing of social network usernames or email addresses"
|
||||
#~ msgstr "सामाजिक नेटवर्क उपयोगकर्ता नामों या ईमेल पतों का कोई साझाकरण नहीं"
|
||||
|
||||
#~ msgid "Sharing social network usernames or email addresses"
|
||||
#~ msgstr "सामाजिक नेटवर्क उपयोगकर्ता नाम या ईमेल पतों का साझाकरण"
|
||||
|
||||
#~ msgid "No sharing of user information with 3rd parties"
|
||||
#~ msgstr "तृतीय पक्षों के साथ उपयोगकर्ता जानकारी का कोई साझाकरण नहीं"
|
||||
|
||||
#~ msgid "Checking for the latest application version"
|
||||
#~ msgstr "नवीनतम एप्लिकेशन संस्करण के लिए जांच की जा रही है"
|
||||
|
||||
#~ msgid "Sharing diagnostic data that does not let others identify the user"
|
||||
#~ msgstr ""
|
||||
#~ "डाइग्नोस्टिक डेटा शेयर करना जो दूसरों को उपयोगकर्ता की पहचान करने की अनुमति नहीं "
|
||||
#~ "देता है"
|
||||
|
||||
#~ msgid "Sharing information that lets others identify the user"
|
||||
#~ msgstr "वह जानकारी शेयर करें जिससे अन्य लोग उपयोगकर्ता को पहचान सकें"
|
||||
|
||||
#~ msgid "No sharing of physical location to other users"
|
||||
#~ msgstr "अन्य उपयोगकर्ताओं के साथ भौतिक स्थान का कोई साझाकरण नहीं"
|
||||
|
||||
#~ msgid "Sharing physical location to other users"
|
||||
#~ msgstr "अन्य उपयोगकर्ताओं के साथ भौतिक स्थान साझा करना"
|
||||
|
||||
#~ msgid "No references to homosexuality"
|
||||
#~ msgstr "समलैंगिकता का कोई संदर्भ नहीं"
|
||||
|
||||
#~ msgid "Indirect references to homosexuality"
|
||||
#~ msgstr "समलैंगिकता का परोक्ष संदर्भ"
|
||||
|
||||
#~ msgid "Kissing between people of the same gender"
|
||||
#~ msgstr "एक ही लिंग के लोगों के बीच चुंबन"
|
||||
|
||||
#~ msgid "Graphic sexual behavior between people of the same gender"
|
||||
#~ msgstr "एक ही लिंग के लोगों के बीच ग्राफिक यौन व्यवहार"
|
||||
|
||||
#~ msgid "No references to prostitution"
|
||||
#~ msgstr "वेश्यावृत्ति का कोई संदर्भ नहीं है"
|
||||
|
||||
#~ msgid "Indirect references to prostitution"
|
||||
#~ msgstr "वेश्यावृत्ति के लिए अप्रत्यक्ष संदर्भ"
|
||||
|
||||
#~ msgid "Direct references to prostitution"
|
||||
#~ msgstr "वेश्यावृत्ति का सीधा संदर्भ"
|
||||
|
||||
#~ msgid "Graphic depictions of the act of prostitution"
|
||||
#~ msgstr "वेश्यावृत्ति के कार्यों का ग्राफिक चित्रण"
|
||||
|
||||
#~ msgid "No references to adultery"
|
||||
#~ msgstr "व्यभिचार का कोई संदर्भ नहीं"
|
||||
|
||||
#~ msgid "Indirect references to adultery"
|
||||
#~ msgstr "व्यभिचार के लिए अप्रत्यक्ष संदर्भ"
|
||||
|
||||
#~ msgid "Direct references to adultery"
|
||||
#~ msgstr "व्यभिचार का प्रत्यक्ष संदर्भ"
|
||||
|
||||
#~ msgid "Graphic depictions of the act of adultery"
|
||||
#~ msgstr "व्यभिचार अधिनियम के ग्राफिक चित्रण"
|
||||
|
||||
#~ msgid "No sexualized characters"
|
||||
#~ msgstr "कोई यौन सम्बंधित शब्द नहीं है"
|
||||
|
||||
#~ msgid "Scantily clad human characters"
|
||||
#~ msgstr "असाधारण रूप से मानवीय चरित्रों को ढकते हैं"
|
||||
|
||||
#~ msgid "Overtly sexualized human characters"
|
||||
#~ msgstr "अति कामुक मानव पात्र "
|
||||
|
||||
#~ msgid "No references to desecration"
|
||||
#~ msgstr "अपवित्रता का कोई संदर्भ नहीं"
|
||||
|
||||
#~ msgid "Depictions or references to historical desecration"
|
||||
#~ msgstr "ऐतिहासिक अवनति का चित्रण या संदर्भ"
|
||||
|
||||
#~ msgid "Depictions of modern-day human desecration"
|
||||
#~ msgstr "आधुनिक-मानव की निराशा का चित्रण"
|
||||
|
||||
#~ msgid "Graphic depictions of modern-day desecration"
|
||||
#~ msgstr "आधुनिक समय की असमानताओं के ग्राफिक चित्रण"
|
||||
|
||||
#~ msgid "No visible dead human remains"
|
||||
#~ msgstr "मृत मानव के प्रत्यक्ष अवशेष नहीं हैं"
|
||||
|
||||
#~ msgid "Visible dead human remains"
|
||||
#~ msgstr "दर्शनीय मृत मानव अवशेष"
|
||||
|
||||
#~ msgid "Dead human remains that are exposed to the elements"
|
||||
#~ msgstr "मृत मानव के अवशेष जो तत्वों के लिए अनावृत है"
|
||||
|
||||
#~ msgid "Graphic depictions of desecration of human bodies"
|
||||
#~ msgstr "मानव शरीर की अपवित्रता का ग्राफिक चित्रण"
|
||||
|
||||
#~ msgid "No references to slavery"
|
||||
#~ msgstr "दासता का कोई संदर्भ नहीं"
|
||||
|
||||
#~ msgid "Depictions or references to historical slavery"
|
||||
#~ msgstr "ऐतिहासिक गुलामी के संदर्भ या वर्णन"
|
||||
|
||||
#~ msgid "Depictions of modern-day slavery"
|
||||
#~ msgstr "आधुनिक गुलामी के वर्णन"
|
||||
|
||||
#~ msgid "Graphic depictions of modern-day slavery"
|
||||
#~ msgstr "आधुनिक काल की दासता का ग्राफिक चित्रण"
|
||||
|
|
701
po/hu.po
701
po/hu.po
|
@ -1,381 +1,386 @@
|
|||
# Hungarian translations for malcontent package.
|
||||
# Copyright (C) 2020 THE malcontent'S COPYRIGHT HOLDER
|
||||
# Hungarian translation for malcontent.
|
||||
# Copyright (C) 2022 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the malcontent package.
|
||||
# Automatically generated, 2020.
|
||||
#
|
||||
# Balázs Úr <ur.balazs at fsf dot hu>, 2022.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: malcontent\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-06-10 12:04+0100\n"
|
||||
"PO-Revision-Date: 2020-04-15 13:42+0100\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2022-07-25 03:26+0000\n"
|
||||
"PO-Revision-Date: 2022-09-22 01:02+0200\n"
|
||||
"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
|
||||
"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
|
||||
"Language: hu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 19.12.3\n"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
|
||||
msgid "Change your own app filter"
|
||||
msgstr ""
|
||||
msgstr "A saját alkalmazásszűrőjének megváltoztatása"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:5
|
||||
msgid "Authentication is required to change your app filter."
|
||||
msgstr ""
|
||||
msgstr "Hitelesítés szükséges az alkalmazásszűrőjének megváltoztatásához."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:14
|
||||
msgid "Read your own app filter"
|
||||
msgstr ""
|
||||
msgstr "A saját alkalmazásszűrőjének olvasása"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:15
|
||||
msgid "Authentication is required to read your app filter."
|
||||
msgstr ""
|
||||
msgstr "Hitelesítés szükséges az alkalmazásszűrőjének olvasásához."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:24
|
||||
msgid "Change another user’s app filter"
|
||||
msgstr ""
|
||||
msgstr "Egy másik felhasználó alkalmazásszűrőjének megváltoztatása"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
|
||||
msgid "Authentication is required to change another user’s app filter."
|
||||
msgstr ""
|
||||
"Hitelesítés szükséges egy másik felhasználó alkalmazásszűrőjének "
|
||||
"megváltoztatásához."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
|
||||
msgid "Read another user’s app filter"
|
||||
msgstr ""
|
||||
msgstr "Egy másik felhasználó alkalmazásszűrőjének olvasása"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
|
||||
msgid "Authentication is required to read another user’s app filter."
|
||||
msgstr ""
|
||||
"Hitelesítés szükséges egy másik felhasználó alkalmazásszűrőjének olvasásához."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:44
|
||||
msgid "Change your own session limits"
|
||||
msgstr ""
|
||||
msgstr "A saját munkamenetkorlátainak megváltoztatása"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:45
|
||||
msgid "Authentication is required to change your session limits."
|
||||
msgstr ""
|
||||
msgstr "Hitelesítés szükséges a munkamenetkorlátainak megváltoztatásához."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:54
|
||||
msgid "Read your own session limits"
|
||||
msgstr ""
|
||||
msgstr "A saját munkamenetkorlátainak olvasása"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:55
|
||||
msgid "Authentication is required to read your session limits."
|
||||
msgstr ""
|
||||
msgstr "Hitelesítés szükséges a munkamenetkorlátainak olvasásához."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:64
|
||||
msgid "Change another user’s session limits"
|
||||
msgstr ""
|
||||
msgstr "Egy másik felhasználó munkamenetkorlátainak megváltoztatása"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
|
||||
msgid "Authentication is required to change another user’s session limits."
|
||||
msgstr ""
|
||||
"Hitelesítés szükséges egy másik felhasználó munkamenetkorlátainak "
|
||||
"megváltoztatásához."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
|
||||
msgid "Read another user’s session limits"
|
||||
msgstr ""
|
||||
msgstr "Egy másik felhasználó munkamenetkorlátainak olvasása"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
|
||||
msgid "Authentication is required to read another user’s session limits."
|
||||
msgstr ""
|
||||
"Hitelesítés szükséges egy másik felhasználó munkamenetkorlátainak "
|
||||
"olvasásához."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:84
|
||||
msgid "Change your own account info"
|
||||
msgstr ""
|
||||
msgstr "A saját fiókinformációinak megváltoztatása"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:85
|
||||
msgid "Authentication is required to change your account info."
|
||||
msgstr ""
|
||||
msgstr "Hitelesítés szükséges a fiókinformációinak megváltoztatásához."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:94
|
||||
msgid "Read your own account info"
|
||||
msgstr ""
|
||||
msgstr "A saját fiókinformációinak olvasása"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:95
|
||||
msgid "Authentication is required to read your account info."
|
||||
msgstr ""
|
||||
msgstr "Hitelesítés szükséges a fiókinformációinak olvasásához."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:104
|
||||
msgid "Change another user’s account info"
|
||||
msgstr ""
|
||||
msgstr "Egy másik felhasználó fiókinformációinak megváltoztatása"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
|
||||
msgid "Authentication is required to change another user’s account info."
|
||||
msgstr ""
|
||||
"Hitelesítés szükséges egy másik felhasználó fiókinformációinak "
|
||||
"megváltoztatásához."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
|
||||
msgid "Read another user’s account info"
|
||||
msgstr ""
|
||||
msgstr "Egy másik felhasználó fiókinformációinak olvasása"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
|
||||
msgid "Authentication is required to read another user’s account info."
|
||||
msgstr ""
|
||||
"Hitelesítés szükséges egy másik felhasználó fiókinformációinak olvasásához."
|
||||
|
||||
#: libmalcontent/app-filter.c:694
|
||||
#, c-format
|
||||
msgid "App filter for user %u was in an unrecognized format"
|
||||
msgstr ""
|
||||
msgstr "%u felhasználó alkalmazásszűrője felismerhetetlen formátumban volt"
|
||||
|
||||
#: libmalcontent/app-filter.c:725
|
||||
#, c-format
|
||||
msgid "OARS filter for user %u has an unrecognized kind ‘%s’"
|
||||
msgstr ""
|
||||
msgstr "%u felhasználó OARS-szűrője felismerhetetlen „%s” fajtájú"
|
||||
|
||||
#: libmalcontent/manager.c:283 libmalcontent/manager.c:412
|
||||
#: libmalcontent/manager.c:283 libmalcontent/manager.c:420
|
||||
#: libmalcontent/manager.c:803
|
||||
#, c-format
|
||||
msgid "Not allowed to query app filter data for user %u"
|
||||
msgid "Not allowed to query parental controls data for user %u"
|
||||
msgstr ""
|
||||
"Nem engedélyezett %u felhasználó szülői felügyeleti adatainak lekérdezése"
|
||||
|
||||
#: libmalcontent/manager.c:288
|
||||
#, c-format
|
||||
msgid "User %u does not exist"
|
||||
msgstr ""
|
||||
msgstr "%u felhasználó nem létezik"
|
||||
|
||||
#: libmalcontent/manager.c:394
|
||||
#: libmalcontent/manager.c:296
|
||||
msgid "System accounts service not available"
|
||||
msgstr "A rendszer fiókjainak szolgáltatása nem érhető el"
|
||||
|
||||
#: libmalcontent/manager.c:402
|
||||
msgid "App filtering is globally disabled"
|
||||
msgstr ""
|
||||
msgstr "Az alkalmazásszűrés globálisan le van tiltva"
|
||||
|
||||
#: libmalcontent/manager.c:777
|
||||
#: libmalcontent/manager.c:785
|
||||
msgid "Session limits are globally disabled"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent/manager.c:795
|
||||
#, c-format
|
||||
msgid "Not allowed to query session limits data for user %u"
|
||||
msgstr ""
|
||||
msgstr "A munkamenetkorlátok globálisan le vannak tiltva"
|
||||
|
||||
#: libmalcontent/session-limits.c:306
|
||||
#, c-format
|
||||
msgid "Session limit for user %u was in an unrecognized format"
|
||||
msgstr ""
|
||||
msgstr "%u felhasználó munkamenetkorlátja felismerhetetlen formátumban volt"
|
||||
|
||||
#: libmalcontent/session-limits.c:328
|
||||
#, c-format
|
||||
msgid "Session limit for user %u has an unrecognized type ‘%u’"
|
||||
msgstr ""
|
||||
msgstr "%u felhasználó munkamenetkorlátjának felismerhetetlen „%u” típusa van"
|
||||
|
||||
#: libmalcontent/session-limits.c:346
|
||||
#, c-format
|
||||
msgid "Session limit for user %u has invalid daily schedule %u–%u"
|
||||
msgstr ""
|
||||
|
||||
#. TRANSLATORS: This is the formatting of English and localized name
|
||||
#. of the rating e.g. "Adults Only (solo adultos)"
|
||||
#: libmalcontent-ui/gs-content-rating.c:75
|
||||
#, c-format
|
||||
msgid "%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:209
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:218
|
||||
msgid "ALL"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:222
|
||||
#: libmalcontent-ui/gs-content-rating.c:485
|
||||
msgid "Adults Only"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:224
|
||||
#: libmalcontent-ui/gs-content-rating.c:484
|
||||
msgid "Mature"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:226
|
||||
#: libmalcontent-ui/gs-content-rating.c:483
|
||||
msgid "Teen"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:228
|
||||
#: libmalcontent-ui/gs-content-rating.c:482
|
||||
msgid "Everyone 10+"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:230
|
||||
#: libmalcontent-ui/gs-content-rating.c:481
|
||||
msgid "Everyone"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:232
|
||||
#: libmalcontent-ui/gs-content-rating.c:480
|
||||
msgid "Early Childhood"
|
||||
msgstr ""
|
||||
"%u felhasználó munkamenetkorlátjának érvénytelen %u–%u napi ütemezése van"
|
||||
|
||||
#. Translators: the placeholder is a user’s full name
|
||||
#: libmalcontent-ui/restrict-applications-dialog.c:222
|
||||
#: libmalcontent-ui/restrict-applications-dialog.c:223
|
||||
#, c-format
|
||||
msgid "Restrict %s from using the following installed applications."
|
||||
msgstr ""
|
||||
"%s korlátozása abban, hogy a következő telepített alkalmazásokat használja."
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:6
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:12
|
||||
msgid "Restrict Applications"
|
||||
msgstr ""
|
||||
msgstr "Alkalmazások korlátozása"
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-selector.ui:24
|
||||
#: libmalcontent-ui/restrict-applications-selector.ui:13
|
||||
msgid "No applications found to restrict."
|
||||
msgstr ""
|
||||
msgstr "Nem találhatók korlátozandó alkalmazások."
|
||||
|
||||
#. Translators: this is the full name for an unknown user account.
|
||||
#: libmalcontent-ui/user-controls.c:242 libmalcontent-ui/user-controls.c:253
|
||||
#: libmalcontent-ui/user-controls.c:198 libmalcontent-ui/user-controls.c:209
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
msgstr "ismeretlen"
|
||||
|
||||
#: libmalcontent-ui/user-controls.c:338 libmalcontent-ui/user-controls.c:425
|
||||
#: libmalcontent-ui/user-controls.c:711
|
||||
#: libmalcontent-ui/user-controls.c:303 libmalcontent-ui/user-controls.c:388
|
||||
#: libmalcontent-ui/user-controls.c:641
|
||||
msgid "All Ages"
|
||||
msgstr ""
|
||||
msgstr "Összes életkor"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:514
|
||||
#: libmalcontent-ui/user-controls.c:470
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Prevents %s from running web browsers. Limited web content may still be "
|
||||
"available in other applications."
|
||||
msgstr ""
|
||||
"Megakadályozza, hogy %s webböngészőket futtasson. Korlátozott webes tartalom "
|
||||
"továbbra is elérhető lehet egyéb alkalmazásokban."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:519
|
||||
#: libmalcontent-ui/user-controls.c:475
|
||||
#, c-format
|
||||
msgid "Prevents specified applications from being used by %s."
|
||||
msgstr ""
|
||||
msgstr "Megakadályozza, hogy %s a megadott alkalmazásokat használja."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:524
|
||||
#: libmalcontent-ui/user-controls.c:480
|
||||
#, c-format
|
||||
msgid "Prevents %s from installing applications."
|
||||
msgstr ""
|
||||
msgstr "Megakadályozza, hogy %s alkalmazásokat telepítsen."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:529
|
||||
#, c-format
|
||||
msgid "Applications installed by %s will not appear for other users."
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:17
|
||||
#: libmalcontent-ui/user-controls.ui:25
|
||||
msgid "Application Usage Restrictions"
|
||||
msgstr ""
|
||||
msgstr "Alkalmazáshasználati korlátozások"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:68
|
||||
#: libmalcontent-ui/user-controls.ui:28
|
||||
msgid "Restrict _Web Browsers"
|
||||
msgstr ""
|
||||
msgstr "_Webböngészők korlátozása"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:152
|
||||
#: libmalcontent-ui/user-controls.ui:50
|
||||
msgid "_Restrict Applications"
|
||||
msgstr ""
|
||||
msgstr "_Alkalmazások korlátozása"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:231
|
||||
#: libmalcontent-ui/user-controls.ui:72
|
||||
msgid "Software Installation Restrictions"
|
||||
msgstr ""
|
||||
msgstr "Szoftvertelepítési korlátozások"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:281
|
||||
#: libmalcontent-ui/user-controls.ui:76
|
||||
msgid "Restrict Application _Installation"
|
||||
msgstr ""
|
||||
msgstr "Alkalmazás_telepítés korlátozása"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:366
|
||||
msgid "Restrict Application Installation for _Others"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:451
|
||||
#: libmalcontent-ui/user-controls.ui:97
|
||||
msgid "Application _Suitability"
|
||||
msgstr ""
|
||||
msgstr "Alkalmazás _alkalmassága"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:473
|
||||
#: libmalcontent-ui/user-controls.ui:100
|
||||
msgid ""
|
||||
"Restricts browsing or installation of applications to applications suitable "
|
||||
"for certain ages or above."
|
||||
msgstr ""
|
||||
"Korlátozza az alkalmazások böngészését vagy telepítését a bizonyos "
|
||||
"korosztályok vagy afölöttiek számára alkalmas alkalmazásokra."
|
||||
|
||||
#. Translators: This documents the --user command line option to malcontent-control:
|
||||
#: malcontent-control/application.c:102
|
||||
msgid "User to select in the UI"
|
||||
msgstr "A felhasználói felületen kiválasztandó felhasználó"
|
||||
|
||||
#. Translators: This is a placeholder for a command line argument value:
|
||||
#: malcontent-control/application.c:104
|
||||
msgid "USERNAME"
|
||||
msgstr "FELHASZNÁLÓNÉV"
|
||||
|
||||
#: malcontent-control/application.c:116
|
||||
msgid "— view and edit parental controls"
|
||||
msgstr "— szülői felügyelet megtekintése és szerkesztése"
|
||||
|
||||
#. Translators: This is the title of the main window
|
||||
#. Translators: the name of the application as it appears in a software center
|
||||
#: malcontent-control/application.c:105 malcontent-control/main.ui:12
|
||||
#: malcontent-control/application.c:123 malcontent-control/main.ui:17
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:9
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:3
|
||||
msgid "Parental Controls"
|
||||
msgstr ""
|
||||
msgstr "Szülői felügyelet"
|
||||
|
||||
#: malcontent-control/application.c:270
|
||||
#: malcontent-control/application.c:309
|
||||
msgid "Copyright © 2019, 2020 Endless Mobile, Inc."
|
||||
msgstr ""
|
||||
msgstr "Copyright © 2019, 2020 Endless Mobile, Inc."
|
||||
|
||||
#. Translators: this should be "translated" to the
|
||||
#. names of people who have translated Malcontent into
|
||||
#. this language, one per line.
|
||||
#: malcontent-control/application.c:275
|
||||
#: malcontent-control/application.c:314
|
||||
msgid "translator-credits"
|
||||
msgstr ""
|
||||
msgstr "Úr Balázs <ur dot balazs at fsf dot hu>, 2022."
|
||||
|
||||
#. Translators: "Malcontent" is the brand name of this
|
||||
#. project, so should not be translated.
|
||||
#: malcontent-control/application.c:281
|
||||
#: malcontent-control/application.c:320
|
||||
msgid "Malcontent Website"
|
||||
msgstr ""
|
||||
msgstr "A Malcontent weboldala"
|
||||
|
||||
#: malcontent-control/application.c:299
|
||||
#: malcontent-control/application.c:341
|
||||
msgid "The help contents could not be displayed"
|
||||
msgstr ""
|
||||
msgstr "A súgótartalmat nem sikerült megjeleníteni"
|
||||
|
||||
#: malcontent-control/application.c:336
|
||||
#: malcontent-control/application.c:388
|
||||
msgid "Failed to load user data from the system"
|
||||
msgstr ""
|
||||
msgstr "Nem sikerült betölteni a felhasználói adatokat a rendszerről"
|
||||
|
||||
#: malcontent-control/application.c:338
|
||||
#: malcontent-control/application.c:390
|
||||
msgid "Please make sure that the AccountsService is installed and enabled."
|
||||
msgstr ""
|
||||
"Győződjön meg arról, hogy az AccountsService telepítve van-e és engedélyezve "
|
||||
"van-e."
|
||||
|
||||
#: malcontent-control/carousel.ui:48
|
||||
#. Translators: Replace the link to commonsensemedia.org with some
|
||||
#. * localised guidance for parents/carers on how to set restrictions on
|
||||
#. * their child/caree in a responsible way which is in keeping with the
|
||||
#. * best practice and culture of the region. If no suitable localised
|
||||
#. * guidance exists, and if the default commonsensemedia.org link is not
|
||||
#. * suitable, please file an issue against malcontent so we can discuss
|
||||
#. * further!
|
||||
#. * https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/new
|
||||
#.
|
||||
#: malcontent-control/application.c:421
|
||||
#, c-format
|
||||
msgid ""
|
||||
"It’s recommended that restrictions are set as part of an ongoing "
|
||||
"conversation with %s. <a href='https://www.commonsensemedia.org/privacy-and-"
|
||||
"internet-safety'>Read guidance</a> on what to consider."
|
||||
msgstr ""
|
||||
"Azt javasoljuk, hogy a korlátozásokat %s felhasználóval történő folyamatos "
|
||||
"beszélgetés részeként határozzák meg. <a href='https://www.commonsensemedia."
|
||||
"org/privacy-and-internet-safety'>Olvasson útmutatást</a> arról, hogy mit "
|
||||
"kell figyelembe venni."
|
||||
|
||||
#: malcontent-control/carousel.ui:38
|
||||
msgid "Previous Page"
|
||||
msgstr ""
|
||||
msgstr "Előző oldal"
|
||||
|
||||
#: malcontent-control/carousel.ui:74
|
||||
#: malcontent-control/carousel.ui:57
|
||||
msgid "Next Page"
|
||||
msgstr ""
|
||||
msgstr "Következő oldal"
|
||||
|
||||
#: malcontent-control/main.ui:93
|
||||
#: malcontent-control/main.ui:87
|
||||
msgid "Permission Required"
|
||||
msgstr ""
|
||||
msgstr "Engedély szükséges"
|
||||
|
||||
#: malcontent-control/main.ui:107
|
||||
#: malcontent-control/main.ui:88
|
||||
msgid ""
|
||||
"Permission is required to view and change user parental controls settings."
|
||||
msgstr ""
|
||||
"Engedély szükséges a felhasználó szülői felügyeleti beállításainak "
|
||||
"megtekintéséhez és megváltoztatásához."
|
||||
|
||||
#: malcontent-control/main.ui:148
|
||||
msgid "No Child Users Configured"
|
||||
msgstr ""
|
||||
#: malcontent-control/main.ui:110
|
||||
msgid "No Standard User Accounts"
|
||||
msgstr "Nincsenek szabványos felhasználói fiókok"
|
||||
|
||||
#: malcontent-control/main.ui:162
|
||||
#: malcontent-control/main.ui:111
|
||||
msgid ""
|
||||
"No child users are currently set up on the system. Create one before setting "
|
||||
"up their parental controls."
|
||||
"Parental controls can only be applied to standard user\n"
|
||||
"accounts. These can be created in the user settings."
|
||||
msgstr ""
|
||||
"A szülői felügyeletet csak szabványos felhasználói fiókokra lehet\n"
|
||||
"alkalmazni. Ezek a felhasználói beállításokban hozhatók létre."
|
||||
|
||||
#: malcontent-control/main.ui:174
|
||||
msgid "Create _Child User"
|
||||
msgstr ""
|
||||
#: malcontent-control/main.ui:115
|
||||
msgid "_User Settings"
|
||||
msgstr "_Felhasználói beállítások"
|
||||
|
||||
#: malcontent-control/main.ui:202
|
||||
#: malcontent-control/main.ui:138
|
||||
msgid "Loading…"
|
||||
msgstr ""
|
||||
msgstr "Betöltés…"
|
||||
|
||||
#: malcontent-control/main.ui:265
|
||||
#: malcontent-control/main.ui:171
|
||||
msgid "_Help"
|
||||
msgstr "_Súgó"
|
||||
|
||||
#: malcontent-control/main.ui:269
|
||||
#: malcontent-control/main.ui:175
|
||||
msgid "_About Parental Controls"
|
||||
msgstr ""
|
||||
msgstr "_A szülői felügyeletről"
|
||||
|
||||
#. Translators: the brief summary of the application as it appears in a software center.
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:12
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:4
|
||||
msgid "Set parental controls and monitor usage by users"
|
||||
msgstr ""
|
||||
"Szülői felügyelet beállítása és a felhasználók tevékenységeinek megfigyelése"
|
||||
|
||||
#. Translators: These are the application description paragraphs in the AppData file.
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:16
|
||||
|
@ -384,67 +389,36 @@ msgid ""
|
|||
"use the computer for, what software they can install, and what installed "
|
||||
"software they can run."
|
||||
msgstr ""
|
||||
"A felhasználók szülői felügyeleti korlátozásainak kezelése, a számítógép "
|
||||
"használati idejének szabályozása, milyen szoftvereket telepíthetnek, "
|
||||
"valamint mely telepített szoftvereket futtathatnak."
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
|
||||
msgid "Main window"
|
||||
msgstr "Főablak"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
|
||||
msgid "The GNOME Project"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:50
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:59
|
||||
msgid "Minor improvements to parental controls application UI"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:51
|
||||
msgid "Add a user manual"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:52
|
||||
msgid "Translation updates"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:60
|
||||
msgid "Translations to Ukrainian and Polish"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:67
|
||||
msgid "Improve parental controls application UI and add icon"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:68
|
||||
msgid "Support for indicating which accounts are parent accounts"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:75
|
||||
msgid "Initial release of basic parental controls application"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:76
|
||||
msgid "Support for setting app installation and run restrictions on users"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:83
|
||||
msgid "Maintenance release of underlying parental controls library"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:7
|
||||
msgid "org.freedesktop.MalcontentControl"
|
||||
msgstr ""
|
||||
msgstr "A GNOME projekt"
|
||||
|
||||
#. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon!
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:13
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:14
|
||||
msgid ""
|
||||
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
|
||||
"usage;usage limit;kid;child;"
|
||||
msgstr ""
|
||||
"szülői felügyelet;képernyőidő;alkalmazáskorlátozások;webböngésző-"
|
||||
"korlátozások;oars;használat;használati korlátozás;kölyök;gyerek;gyermek;"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:9
|
||||
msgid "Manage parental controls"
|
||||
msgstr ""
|
||||
msgstr "Szülői felügyelet kezelése"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:10
|
||||
msgid "Authentication is required to read and change user parental controls"
|
||||
msgstr ""
|
||||
"Hitelesítés szükséges a felhasználó szülői felügyeletének olvasásához és "
|
||||
"megváltoztatásához"
|
||||
|
||||
#: malcontent-control/user-selector.c:426
|
||||
msgid "Your account"
|
||||
|
@ -455,331 +429,20 @@ msgstr "Az Ön fiókja"
|
|||
#: pam/pam_malcontent.c:142 pam/pam_malcontent.c:188
|
||||
#, c-format
|
||||
msgid "User ‘%s’ has no time limits enabled"
|
||||
msgstr ""
|
||||
msgstr "„%s” felhasználónak nincsenek időkorlátok engedélyezve"
|
||||
|
||||
#: pam/pam_malcontent.c:151 pam/pam_malcontent.c:172
|
||||
#, c-format
|
||||
msgid "Error getting session limits for user ‘%s’: %s"
|
||||
msgstr ""
|
||||
msgstr "Hiba történt „%s” felhasználó munkamenetkorlátjainak lekérésekor: %s"
|
||||
|
||||
#: pam/pam_malcontent.c:182
|
||||
#, c-format
|
||||
msgid "User ‘%s’ has no time remaining"
|
||||
msgstr ""
|
||||
msgstr "„%s” felhasználónak nincs hátralévő ideje"
|
||||
|
||||
#: pam/pam_malcontent.c:200
|
||||
#, c-format
|
||||
msgid "Error setting time limit on login session: %s"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "No cartoon violence"
|
||||
#~ msgstr "Nincs rajzfilmes erőszak"
|
||||
|
||||
#~ msgid "Cartoon characters in unsafe situations"
|
||||
#~ msgstr "Rajzfilmfigurák veszélyes helyzetekben"
|
||||
|
||||
#~ msgid "Cartoon characters in aggressive conflict"
|
||||
#~ msgstr "Rajzfilmfigurák agresszív konfliktusban"
|
||||
|
||||
#~ msgid "Graphic violence involving cartoon characters"
|
||||
#~ msgstr "Rajzfilmfigurákat érintő grafikus erőszak"
|
||||
|
||||
#~ msgid "No fantasy violence"
|
||||
#~ msgstr "Nincs kitalált erőszak"
|
||||
|
||||
#~ msgid "Characters in unsafe situations easily distinguishable from reality"
|
||||
#~ msgstr ""
|
||||
#~ "Karakterek veszélyes helyzetekben, amely könnyen megkülönböztethető a "
|
||||
#~ "valóságtól"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Characters in aggressive conflict easily distinguishable from reality"
|
||||
#~ msgstr ""
|
||||
#~ "Karakterek agresszív konfliktusban, amely könnyen megkülönböztethető a "
|
||||
#~ "valóságtól"
|
||||
|
||||
#~ msgid "Graphic violence easily distinguishable from reality"
|
||||
#~ msgstr "Grafikus erőszak, amely könnyen megkülönböztethető a valóságtól"
|
||||
|
||||
#~ msgid "No realistic violence"
|
||||
#~ msgstr "Nincs valósághű erőszak"
|
||||
|
||||
#~ msgid "Mildly realistic characters in unsafe situations"
|
||||
#~ msgstr "Enyhén valósághű karakterek veszélyes helyzetekben"
|
||||
|
||||
#~ msgid "Depictions of realistic characters in aggressive conflict"
|
||||
#~ msgstr "Valósághű karakterek ábrázolása agresszív konfliktusban"
|
||||
|
||||
#~ msgid "Graphic violence involving realistic characters"
|
||||
#~ msgstr "Valósághű karaktereket érintő grafikus erőszak"
|
||||
|
||||
#~ msgid "No bloodshed"
|
||||
#~ msgstr "Nincs vérontás"
|
||||
|
||||
#~ msgid "Unrealistic bloodshed"
|
||||
#~ msgstr "Nem valósághű vérontás"
|
||||
|
||||
#~ msgid "Realistic bloodshed"
|
||||
#~ msgstr "Valósághű vérontás"
|
||||
|
||||
#~ msgid "Depictions of bloodshed and the mutilation of body parts"
|
||||
#~ msgstr "Várontás és a testrészek megcsonkításának ábrázolása"
|
||||
|
||||
#~ msgid "No sexual violence"
|
||||
#~ msgstr "Nincs szexuális erőszak"
|
||||
|
||||
#~ msgid "Rape or other violent sexual behavior"
|
||||
#~ msgstr "Megerőszakolás vagy egyéb erőszakos szexuális viselkedés"
|
||||
|
||||
#~ msgid "No references to alcohol"
|
||||
#~ msgstr "Nincs alkoholtartalmú italokra való hivatkozás"
|
||||
|
||||
#~ msgid "References to alcoholic beverages"
|
||||
#~ msgstr "Alkoholtartalmú italokra való hivatkozások"
|
||||
|
||||
#~ msgid "Use of alcoholic beverages"
|
||||
#~ msgstr "Alkoholtartalmú italok használata"
|
||||
|
||||
#~ msgid "No references to illicit drugs"
|
||||
#~ msgstr "Nincs tiltott kábítószerekre való hivatkozás"
|
||||
|
||||
#~ msgid "References to illicit drugs"
|
||||
#~ msgstr "Tiltott kábítószerekre való hivatkozások"
|
||||
|
||||
#~ msgid "Use of illicit drugs"
|
||||
#~ msgstr "Tiltott kábítószerek használata"
|
||||
|
||||
#~ msgid "References to tobacco products"
|
||||
#~ msgstr "Dohánytermékekre való hivatkozások"
|
||||
|
||||
#~ msgid "Use of tobacco products"
|
||||
#~ msgstr "Dohánytermékek használata"
|
||||
|
||||
#~ msgid "No nudity of any sort"
|
||||
#~ msgstr "Nincs semmiféle meztelenség"
|
||||
|
||||
#~ msgid "Brief artistic nudity"
|
||||
#~ msgstr "Rövid művészi meztelenség"
|
||||
|
||||
#~ msgid "Prolonged nudity"
|
||||
#~ msgstr "Hosszan tartó meztelenség"
|
||||
|
||||
#~ msgid "No references or depictions of sexual nature"
|
||||
#~ msgstr "Nincs szexuális hivatkozás vagy ábrázolás"
|
||||
|
||||
#~ msgid "Provocative references or depictions"
|
||||
#~ msgstr "Kihívó hivatkozások vagy ábrázolások"
|
||||
|
||||
#~ msgid "Sexual references or depictions"
|
||||
#~ msgstr "Szexuális hivatkozások vagy ábrázolások"
|
||||
|
||||
#~ msgid "Graphic sexual behavior"
|
||||
#~ msgstr "Grafikus szexuális viselkedés"
|
||||
|
||||
#~ msgid "No profanity of any kind"
|
||||
#~ msgstr "Nincs káromkodás"
|
||||
|
||||
#~ msgid "Mild or infrequent use of profanity"
|
||||
#~ msgstr "Enyhe vagy ritka káromkodáshasználat"
|
||||
|
||||
#~ msgid "Moderate use of profanity"
|
||||
#~ msgstr "Mérsékelt káromkodáshasználat"
|
||||
|
||||
#~ msgid "Strong or frequent use of profanity"
|
||||
#~ msgstr "Erős vagy gyakori káromkodáshasználat"
|
||||
|
||||
#~ msgid "No inappropriate humor"
|
||||
#~ msgstr "Nincs helytelen humor"
|
||||
|
||||
#~ msgid "Slapstick humor"
|
||||
#~ msgstr "Helyzethumor"
|
||||
|
||||
#~ msgid "Vulgar or bathroom humor"
|
||||
#~ msgstr "Vulgáris vagy fürdőszoba humor"
|
||||
|
||||
#~ msgid "Mature or sexual humor"
|
||||
#~ msgstr "Felnőtt vagy szexuális humor"
|
||||
|
||||
#~ msgid "No discriminatory language of any kind"
|
||||
#~ msgstr "Nincs semmiféle diszkriminatív nyelvezet"
|
||||
|
||||
#~ msgid "Negativity towards a specific group of people"
|
||||
#~ msgstr "Negatívság egy bizonyos embercsoport felé"
|
||||
|
||||
#~ msgid "Discrimination designed to cause emotional harm"
|
||||
#~ msgstr "Érzelmi károsodást okozó tervezett diszkrimináció"
|
||||
|
||||
#~ msgid "Explicit discrimination based on gender, sexuality, race or religion"
|
||||
#~ msgstr ""
|
||||
#~ "Kifejezetten nemi, szexuális, faji vagy vallási alapú diszkrimináció"
|
||||
|
||||
#~ msgid "No advertising of any kind"
|
||||
#~ msgstr "Nincs semmiféle hirdetés"
|
||||
|
||||
#~ msgid "Product placement"
|
||||
#~ msgstr "Termékelhelyezés"
|
||||
|
||||
#~ msgid "Explicit references to specific brands or trademarked products"
|
||||
#~ msgstr ""
|
||||
#~ "Közvetlen utalások egy bizonyos márkára vagy védjeggyel védett termékre"
|
||||
|
||||
#~ msgid "Users are encouraged to purchase specific real-world items"
|
||||
#~ msgstr ""
|
||||
#~ "A felhasználókat arra ösztönzik, hogy a valódi világban bizonyos "
|
||||
#~ "tárgyakat vásároljanak"
|
||||
|
||||
#~ msgid "No gambling of any kind"
|
||||
#~ msgstr "Nincs semmiféle szerencsejáték"
|
||||
|
||||
#~ msgid "Gambling on random events using tokens or credits"
|
||||
#~ msgstr ""
|
||||
#~ "Szerencsejáték véletlenszerű eseményeken zsetonok vagy kreditek "
|
||||
#~ "használatával"
|
||||
|
||||
#~ msgid "Gambling using “play” money"
|
||||
#~ msgstr "Szerencsejáték „játékpénz” használatával"
|
||||
|
||||
#~ msgid "Gambling using real money"
|
||||
#~ msgstr "Szerencsejáték valódi pénz használatával"
|
||||
|
||||
#~ msgid "No ability to spend money"
|
||||
#~ msgstr "Nem lehet valódi pénzt elkölteni"
|
||||
|
||||
#~ msgid "Users are encouraged to donate real money"
|
||||
#~ msgstr "A felhasználókat arra ösztönzik, hogy valós pénzt adományozzanak"
|
||||
|
||||
#~ msgid "Ability to spend real money in-game"
|
||||
#~ msgstr "Lehetséges a játékon belül valódi pénzt elkölteni"
|
||||
|
||||
#~ msgid "No way to chat with other users"
|
||||
#~ msgstr "Nincs mód a csevegésre más felhasználókkal"
|
||||
|
||||
#~ msgid "User-to-user game interactions without chat functionality"
|
||||
#~ msgstr ""
|
||||
#~ "Felhasználók közötti játékinterakció, csevegés funkcionalitás nélkül"
|
||||
|
||||
#~ msgid "Moderated chat functionality between users"
|
||||
#~ msgstr "Moderált csevegés funkcionalitás a felhasználók között"
|
||||
|
||||
#~ msgid "Uncontrolled chat functionality between users"
|
||||
#~ msgstr "Ellenőrizetlen csevegés funkcionalitás a felhasználók között"
|
||||
|
||||
#~ msgid "No way to talk with other users"
|
||||
#~ msgstr "Nincs mód a beszélgetésre más felhasználókkal"
|
||||
|
||||
#~ msgid "Uncontrolled audio or video chat functionality between users"
|
||||
#~ msgstr ""
|
||||
#~ "Ellenőrizetlen hang- vagy videocsevegés funkcionalitás a felhasználók "
|
||||
#~ "között"
|
||||
|
||||
#~ msgid "No sharing of social network usernames or email addresses"
|
||||
#~ msgstr ""
|
||||
#~ "Nincs közösségi hálózatokon használt felhasználónevek vagy e-mail címek "
|
||||
#~ "megosztása"
|
||||
|
||||
#~ msgid "Sharing social network usernames or email addresses"
|
||||
#~ msgstr ""
|
||||
#~ "Közösségi hálózatokon használt felhasználónevek vagy e-mail címek "
|
||||
#~ "megosztása"
|
||||
|
||||
#~ msgid "No sharing of user information with 3rd parties"
|
||||
#~ msgstr "Felhasználói információk nem kerülnek megosztásra harmadik féllel"
|
||||
|
||||
#~ msgid "Checking for the latest application version"
|
||||
#~ msgstr "A legfrissebb alkalmazásverzió ellenőrzése"
|
||||
|
||||
#~ msgid "Sharing diagnostic data that does not let others identify the user"
|
||||
#~ msgstr ""
|
||||
#~ "Diagnosztikai adatok megosztása, amelyek mások számára nem azonosítják a "
|
||||
#~ "felhasználót"
|
||||
|
||||
#~ msgid "Sharing information that lets others identify the user"
|
||||
#~ msgstr ""
|
||||
#~ "Információk megosztása, amelyek mások számára azonosítják a felhasználót"
|
||||
|
||||
#~ msgid "No sharing of physical location to other users"
|
||||
#~ msgstr "Fizikai hely nem kerül megosztásra más felhasználók számára"
|
||||
|
||||
#~ msgid "Sharing physical location to other users"
|
||||
#~ msgstr "Fizikai hely megosztása más felhasználók számára"
|
||||
|
||||
#~ msgid "No references to homosexuality"
|
||||
#~ msgstr "Nincs homoszexualitásra való hivatkozás"
|
||||
|
||||
#~ msgid "Indirect references to homosexuality"
|
||||
#~ msgstr "Közvetett homoszexualitásra való hivatkozás"
|
||||
|
||||
#~ msgid "Kissing between people of the same gender"
|
||||
#~ msgstr "Csókolózás azonos nemű emberek között"
|
||||
|
||||
#~ msgid "Graphic sexual behavior between people of the same gender"
|
||||
#~ msgstr "Grafikus szexuális viselkedés azonos nemű emberek között"
|
||||
|
||||
#~ msgid "No references to prostitution"
|
||||
#~ msgstr "Nincs prostitúcióra való hivatkozás"
|
||||
|
||||
#~ msgid "Indirect references to prostitution"
|
||||
#~ msgstr "Közvetett prostitúcióra való hivatkozás"
|
||||
|
||||
#~ msgid "Direct references to prostitution"
|
||||
#~ msgstr "Közvetlen prostitúcióra való hivatkozás"
|
||||
|
||||
#~ msgid "Graphic depictions of the act of prostitution"
|
||||
#~ msgstr "Prostitúció grafikus ábrázolása"
|
||||
|
||||
#~ msgid "No references to adultery"
|
||||
#~ msgstr "Nincs házasságtörésre való hivatkozás"
|
||||
|
||||
#~ msgid "Indirect references to adultery"
|
||||
#~ msgstr "Közvetett házasságtörésre való hivatkozás"
|
||||
|
||||
#~ msgid "Direct references to adultery"
|
||||
#~ msgstr "Közvetlen házasságtörésre való hivatkozás"
|
||||
|
||||
#~ msgid "Graphic depictions of the act of adultery"
|
||||
#~ msgstr "Házasságtörés grafikus ábrázolása"
|
||||
|
||||
#~ msgid "No sexualized characters"
|
||||
#~ msgstr "Nincsenek szexualizált karakterek"
|
||||
|
||||
#~ msgid "Scantily clad human characters"
|
||||
#~ msgstr "Hiányosan öltözött emberi karakterek"
|
||||
|
||||
#~ msgid "Overtly sexualized human characters"
|
||||
#~ msgstr "Nyíltan szexualizált emberi karakterek"
|
||||
|
||||
#~ msgid "No references to desecration"
|
||||
#~ msgstr "Nincs gyalázásra való hivatkozás"
|
||||
|
||||
#~ msgid "Depictions or references to historical desecration"
|
||||
#~ msgstr "Gyalázás történelmi ábrázolása vagy arra való hivatkozás"
|
||||
|
||||
#~ msgid "Depictions of modern-day human desecration"
|
||||
#~ msgstr "Modern kori emberi gyalázás ábrázolása"
|
||||
|
||||
#~ msgid "Graphic depictions of modern-day desecration"
|
||||
#~ msgstr "Modern kori emberi gyalázás grafikus ábrázolása"
|
||||
|
||||
#~ msgid "No visible dead human remains"
|
||||
#~ msgstr "Nincsenek látható emberi maradványok"
|
||||
|
||||
#~ msgid "Visible dead human remains"
|
||||
#~ msgstr "Látható emberi maradványok"
|
||||
|
||||
#~ msgid "Dead human remains that are exposed to the elements"
|
||||
#~ msgstr "Emberi maradványok, kitéve az időjárási viszonyoknak"
|
||||
|
||||
#~ msgid "Graphic depictions of desecration of human bodies"
|
||||
#~ msgstr "Emberi testek gyalázásának grafikus ábrázolása"
|
||||
|
||||
#~ msgid "No references to slavery"
|
||||
#~ msgstr "Nincs rabszolgaságra való hivatkozás"
|
||||
|
||||
#~ msgid "Depictions or references to historical slavery"
|
||||
#~ msgstr "Rabszolgaság történelmi ábrázolása vagy arra való hivatkozás"
|
||||
|
||||
#~ msgid "Depictions of modern-day slavery"
|
||||
#~ msgstr "Modern kori rabszolgaság ábrázolása"
|
||||
|
||||
#~ msgid "Graphic depictions of modern-day slavery"
|
||||
#~ msgstr "Modern kori rabszolgaság grafikus ábrázolása"
|
||||
"Hiba történt a bejelentkezési munkameneten való időkorlát beállításakor: %s"
|
6
po/it.po
6
po/it.po
|
@ -10,7 +10,7 @@ msgstr ""
|
|||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2020-12-18 15:14+0000\n"
|
||||
"PO-Revision-Date: 2022-01-06 13:27+0100\n"
|
||||
"PO-Revision-Date: 2022-03-12 13:27+0100\n"
|
||||
"Last-Translator: Albano Battistella <albano_battistella@hotmail.com>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: it\n"
|
||||
|
@ -192,7 +192,7 @@ msgstr "Generale"
|
|||
|
||||
#: libmalcontent-ui/gs-content-rating.c:218
|
||||
msgid "ALL"
|
||||
msgstr "Tutto"
|
||||
msgstr "TUTTO"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:222
|
||||
#: libmalcontent-ui/gs-content-rating.c:485
|
||||
|
@ -334,7 +334,7 @@ msgstr "Copyright © 2019, 2020 Endless Mobile, Inc."
|
|||
#. this language, one per line.
|
||||
#: malcontent-control/application.c:313
|
||||
msgid "translator-credits"
|
||||
msgstr "Milo Casagrande <milo@milo.name>, 2020"
|
||||
msgstr "Milo Casagrande <milo@milo.name>, 2020, Albano Battistella,2022"
|
||||
|
||||
#. Translators: "Malcontent" is the brand name of this
|
||||
#. project, so should not be translated.
|
||||
|
|
|
@ -0,0 +1,479 @@
|
|||
# Georgian translations for malcontent package.
|
||||
# Copyright (C) 2022 THE malcontent'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the malcontent package.
|
||||
# Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2020.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: malcontent\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2021-09-18 12:41+0000\n"
|
||||
"PO-Revision-Date: 2022-09-14 09:48+0200\n"
|
||||
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
|
||||
"Language-Team: Georgian <(nothing)>\n"
|
||||
"Language: ka\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.1.1\n"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
|
||||
msgid "Change your own app filter"
|
||||
msgstr "შეცვალეთ თქვენი საკუთარი აპის ფილტრი"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:5
|
||||
msgid "Authentication is required to change your app filter."
|
||||
msgstr "თქვენი აპის ფილტრის შესაცვლელად საჭიროა ავთენტიკაცია."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:14
|
||||
msgid "Read your own app filter"
|
||||
msgstr "წაიკთხეთ თქვენი საკუთარი აპის ფილტრი"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:15
|
||||
msgid "Authentication is required to read your app filter."
|
||||
msgstr "თქვენი აპის ფილტრის წასაკითხად საჭიროა ავთენტიკაცია."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:24
|
||||
msgid "Change another user’s app filter"
|
||||
msgstr "სხვა მომხმარებლის აპის ფილტრის შეცვლა"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
|
||||
msgid "Authentication is required to change another user’s app filter."
|
||||
msgstr "სხვა მომხმარებლის აპის ფილტრის შესაცვლელად ავთენტიკაციაა საჭირო."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
|
||||
msgid "Read another user’s app filter"
|
||||
msgstr "სხვა მომხმარებლის აპის ფილტრის წაკითხვა"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
|
||||
msgid "Authentication is required to read another user’s app filter."
|
||||
msgstr "სხვა მომხმარებლის აპის ფილტრის წასაკითხად ავთენტიკაციაა საჭირო."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:44
|
||||
msgid "Change your own session limits"
|
||||
msgstr "თქვენი საკუთარი სესიის ლიმიტების შეცვლა"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:45
|
||||
msgid "Authentication is required to change your session limits."
|
||||
msgstr "თქვენი საკუთარი სესიის ლიმიტების შესაცვლელად ავთენთიკაციაა საჭირო."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:54
|
||||
msgid "Read your own session limits"
|
||||
msgstr "თქვენი საკუთარი სესიის ლიმიტების შეცვლა"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:55
|
||||
msgid "Authentication is required to read your session limits."
|
||||
msgstr "თქვენი საკუთარი სესიის ლიმიტების წასაკითხად ავთენთიკაციაა საჭირო."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:64
|
||||
msgid "Change another user’s session limits"
|
||||
msgstr "სხვა მომხმარებლის სესიის ლიმიტების შეცვლა"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
|
||||
msgid "Authentication is required to change another user’s session limits."
|
||||
msgstr "სხვა მომხმარებლის სესიის ლიმიტების შესაცვლელად ავთენტიკაციაა საჭირო."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
|
||||
msgid "Read another user’s session limits"
|
||||
msgstr "სხვა მომხმარებლის სესიის ლიმიტების წაკითხვა"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
|
||||
msgid "Authentication is required to read another user’s session limits."
|
||||
msgstr "სხვა მომხმარებლის სესიის ლიმიტების წასაკითხად ავთენტიკაციაა საჭირო."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:84
|
||||
msgid "Change your own account info"
|
||||
msgstr "თქვენი საკუთარი ანგარიშის ინფორმაციის შეცვლა"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:85
|
||||
msgid "Authentication is required to change your account info."
|
||||
msgstr ""
|
||||
"თქვენი საკუთარი ანგარიშის ინფორმაციის შესაცვლელად ავთენთიკაციაა საჭირო."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:94
|
||||
msgid "Read your own account info"
|
||||
msgstr "თქვენი საკუთარი ანგარიშის ინფორმაციის წაკითხვა"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:95
|
||||
msgid "Authentication is required to read your account info."
|
||||
msgstr "თქვენი საკუთარი ანგარიშის ინფორმაციის წასაკითხად ავთენთიკაციაა საჭირო."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:104
|
||||
msgid "Change another user’s account info"
|
||||
msgstr "სხვა მომხმარებლის ანგარიშის ინფორმაციის შეცვლა"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
|
||||
msgid "Authentication is required to change another user’s account info."
|
||||
msgstr ""
|
||||
"სხვა მომხმარებლის ანგარიშის ინფორმაციის შესაცვლელად ავთენტიკაციაა საჭირო."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
|
||||
msgid "Read another user’s account info"
|
||||
msgstr "სხვა მომხმარებლის ანგარიშის ინფორმაციის წაკითხვა"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
|
||||
msgid "Authentication is required to read another user’s account info."
|
||||
msgstr ""
|
||||
"სხვა მომხმარებლის ანგარიშის ინფორმაციის წასაკითხად ავთენტიკაციაა საჭირო."
|
||||
|
||||
#: libmalcontent/app-filter.c:694
|
||||
#, c-format
|
||||
msgid "App filter for user %u was in an unrecognized format"
|
||||
msgstr "აპის ფილტრი მომხმარებლისთვის %u უცნობი ფორმატითაა"
|
||||
|
||||
#: libmalcontent/app-filter.c:725
|
||||
#, c-format
|
||||
msgid "OARS filter for user %u has an unrecognized kind ‘%s’"
|
||||
msgstr "OARS ფილტრი მომხმარებლისთვის %u უცნობი სახისაა: '%s'"
|
||||
|
||||
#: libmalcontent/manager.c:283 libmalcontent/manager.c:420
|
||||
#: libmalcontent/manager.c:803
|
||||
#, c-format
|
||||
msgid "Not allowed to query parental controls data for user %u"
|
||||
msgstr ""
|
||||
"მშობლების კონტროლის მონაცემების გამოთხოვა მომხმარებლისთვის %u დაშვებული არაა"
|
||||
|
||||
#: libmalcontent/manager.c:288
|
||||
#, c-format
|
||||
msgid "User %u does not exist"
|
||||
msgstr "მომხმარებელი %u არ არსებობს"
|
||||
|
||||
#: libmalcontent/manager.c:296
|
||||
msgid "System accounts service not available"
|
||||
msgstr "სისტემური ანგარიშების სერვისი მიუწვდომელია"
|
||||
|
||||
#: libmalcontent/manager.c:402
|
||||
msgid "App filtering is globally disabled"
|
||||
msgstr "აპის გაფილტვრა გლობალურადაა გათიშული"
|
||||
|
||||
#: libmalcontent/manager.c:785
|
||||
msgid "Session limits are globally disabled"
|
||||
msgstr "სესიის ლიმიტები გლობალურადაა გათიშული"
|
||||
|
||||
#: libmalcontent/session-limits.c:306
|
||||
#, c-format
|
||||
msgid "Session limit for user %u was in an unrecognized format"
|
||||
msgstr "მომხმარებლისთვის %u სესიის ლიმიტი უცნობ ფორმატშია"
|
||||
|
||||
#: libmalcontent/session-limits.c:328
|
||||
#, c-format
|
||||
msgid "Session limit for user %u has an unrecognized type ‘%u’"
|
||||
msgstr "მომხმარებლისთვის %u სესიის ლიმიტის ტიპი (%u) უცნობია"
|
||||
|
||||
#: libmalcontent/session-limits.c:346
|
||||
#, c-format
|
||||
msgid "Session limit for user %u has invalid daily schedule %u–%u"
|
||||
msgstr ""
|
||||
"სესიის ლიმიტს მომხმარებლისთვის %u არასწორი დღიური გრაფიკი(%u–%u) გააჩნია"
|
||||
|
||||
#. TRANSLATORS: This is the formatting of English and localized name
|
||||
#. of the rating e.g. "Adults Only (solo adultos)"
|
||||
#: libmalcontent-ui/gs-content-rating.c:75
|
||||
#, c-format
|
||||
msgid "%s (%s)"
|
||||
msgstr "%s (%s)"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:209
|
||||
msgid "General"
|
||||
msgstr "ზოგადი"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:218
|
||||
msgid "ALL"
|
||||
msgstr "ყველა"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:222
|
||||
#: libmalcontent-ui/gs-content-rating.c:485
|
||||
msgid "Adults Only"
|
||||
msgstr "მხოლოდ დიდებისთვის"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:224
|
||||
#: libmalcontent-ui/gs-content-rating.c:484
|
||||
msgid "Mature"
|
||||
msgstr "ასაკიანები"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:226
|
||||
#: libmalcontent-ui/gs-content-rating.c:483
|
||||
msgid "Teen"
|
||||
msgstr "მოზარდები"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:228
|
||||
#: libmalcontent-ui/gs-content-rating.c:482
|
||||
msgid "Everyone 10+"
|
||||
msgstr "ყველა 10+"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:230
|
||||
#: libmalcontent-ui/gs-content-rating.c:481
|
||||
msgid "Everyone"
|
||||
msgstr "ყველა"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:232
|
||||
#: libmalcontent-ui/gs-content-rating.c:480
|
||||
msgid "Early Childhood"
|
||||
msgstr "პტარა ბავშვები"
|
||||
|
||||
#. Translators: the placeholder is a user’s full name
|
||||
#: libmalcontent-ui/restrict-applications-dialog.c:222
|
||||
#, c-format
|
||||
msgid "Restrict %s from using the following installed applications."
|
||||
msgstr "%s-სთვის მითითებული დაყენებული აპლიკაციების გამოყენების აკრძალვა."
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:6
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:12
|
||||
msgid "Restrict Applications"
|
||||
msgstr "აპლიკაციების შეზღუდვა"
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-selector.ui:24
|
||||
msgid "No applications found to restrict."
|
||||
msgstr "შესაზღუდი აპლიკაციების გარეშე."
|
||||
|
||||
#. Translators: this is the full name for an unknown user account.
|
||||
#: libmalcontent-ui/user-controls.c:207 libmalcontent-ui/user-controls.c:218
|
||||
msgid "unknown"
|
||||
msgstr "უცნობი"
|
||||
|
||||
#: libmalcontent-ui/user-controls.c:312 libmalcontent-ui/user-controls.c:397
|
||||
#: libmalcontent-ui/user-controls.c:669
|
||||
msgid "All Ages"
|
||||
msgstr "ყველა ასაკი"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:477
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Prevents %s from running web browsers. Limited web content may still be "
|
||||
"available in other applications."
|
||||
msgstr ""
|
||||
"%s-სთვის ბრაუზერების გაშვების აკრძალვა. სხვა აპლიკაციებში შეზღუდული ვებ-"
|
||||
"შემცველობა მაინც შეიძლება ხელმისაწვდომი იყოს."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:482
|
||||
#, c-format
|
||||
msgid "Prevents specified applications from being used by %s."
|
||||
msgstr "%s-სთვის მითითებული აპლიკაციების გამოყენების აკრძალვა."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:487
|
||||
#, c-format
|
||||
msgid "Prevents %s from installing applications."
|
||||
msgstr "%s-სთვის აპლიკაციების დაყენების უფლების წართმევა."
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:16
|
||||
msgid "Application Usage Restrictions"
|
||||
msgstr "აპლიკაციის გამოყენების შეზღუდვები"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:67
|
||||
msgid "Restrict _Web Browsers"
|
||||
msgstr "_ვებ ბრაუზერების შეზღუდვა"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:151
|
||||
msgid "_Restrict Applications"
|
||||
msgstr "აპლიკაციების _შეზღუდვა"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:230
|
||||
msgid "Software Installation Restrictions"
|
||||
msgstr "პროგრამების დაყენების შეზღუდვები"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:280
|
||||
msgid "Restrict Application _Installation"
|
||||
msgstr "აპლიკაციების _დაყენების შეზღუდვა"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:365
|
||||
msgid "Application _Suitability"
|
||||
msgstr "აპლიკაციის _შესაბამისობა"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:387
|
||||
msgid ""
|
||||
"Restricts browsing or installation of applications to applications suitable "
|
||||
"for certain ages or above."
|
||||
msgstr ""
|
||||
"ზღუდავს აპლიკაციების დათვალიერებას ან დაყენებას გარკვეული ასაკამდე ან ქვემოთ."
|
||||
|
||||
#. Translators: This documents the --user command line option to malcontent-control:
|
||||
#: malcontent-control/application.c:102
|
||||
msgid "User to select in the UI"
|
||||
msgstr "UI-ში ასარჩევი მომხმარებელი"
|
||||
|
||||
#. Translators: This is a placeholder for a command line argument value:
|
||||
#: malcontent-control/application.c:104
|
||||
msgid "USERNAME"
|
||||
msgstr "მომხმარებლის სახელი"
|
||||
|
||||
#: malcontent-control/application.c:115
|
||||
msgid "— view and edit parental controls"
|
||||
msgstr "— მშობლის კონტროლების ნახვა და ჩასწორება"
|
||||
|
||||
#. Translators: This is the title of the main window
|
||||
#. Translators: the name of the application as it appears in a software center
|
||||
#: malcontent-control/application.c:122 malcontent-control/main.ui:12
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:9
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:3
|
||||
msgid "Parental Controls"
|
||||
msgstr "მშობლის კონტროლი"
|
||||
|
||||
#: malcontent-control/application.c:308
|
||||
msgid "Copyright © 2019, 2020 Endless Mobile, Inc."
|
||||
msgstr "© 2019, 2020 Endless Mobile, Inc., ყველა უფლება დაცულია."
|
||||
|
||||
#. Translators: this should be "translated" to the
|
||||
#. names of people who have translated Malcontent into
|
||||
#. this language, one per line.
|
||||
#: malcontent-control/application.c:313
|
||||
msgid "translator-credits"
|
||||
msgstr "თემური დოღონაძე"
|
||||
|
||||
#. Translators: "Malcontent" is the brand name of this
|
||||
#. project, so should not be translated.
|
||||
#: malcontent-control/application.c:319
|
||||
msgid "Malcontent Website"
|
||||
msgstr "Malcontent -ის ვებგვერდი"
|
||||
|
||||
#: malcontent-control/application.c:337
|
||||
msgid "The help contents could not be displayed"
|
||||
msgstr "დახმარების შემცველობის ჩვენება შეუძლებელია"
|
||||
|
||||
#: malcontent-control/application.c:374
|
||||
msgid "Failed to load user data from the system"
|
||||
msgstr "სისტემიდან მომხმარებლის მონაცემების წაკითხვის შეცდომა"
|
||||
|
||||
#: malcontent-control/application.c:376
|
||||
msgid "Please make sure that the AccountsService is installed and enabled."
|
||||
msgstr "დარწმუნდით, რომ AccountService დაყენებული და ჩართულია."
|
||||
|
||||
#. Translators: Replace the link to commonsensemedia.org with some
|
||||
#. * localised guidance for parents/carers on how to set restrictions on
|
||||
#. * their child/caree in a responsible way which is in keeping with the
|
||||
#. * best practice and culture of the region. If no suitable localised
|
||||
#. * guidance exists, and if the default commonsensemedia.org link is not
|
||||
#. * suitable, please file an issue against malcontent so we can discuss
|
||||
#. * further!
|
||||
#. * https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/new
|
||||
#.
|
||||
#: malcontent-control/application.c:407
|
||||
#, c-format
|
||||
msgid ""
|
||||
"It’s recommended that restrictions are set as part of an ongoing "
|
||||
"conversation with %s. <a href='https://www.commonsensemedia.org/privacy-and-"
|
||||
"internet-safety'>Read guidance</a> on what to consider."
|
||||
msgstr ""
|
||||
"რეკომენდებულია, რომ შეზღუდვები %s-სთან მიმდინარე საუბრის ნაწილი იყოს. <a "
|
||||
"href='https://www.commonsensemedia.org/privacy-and-internet-"
|
||||
"safety'>წაიკითხეთ,</a> რა უნდა გაითვალისწინოთ."
|
||||
|
||||
#: malcontent-control/carousel.ui:48
|
||||
msgid "Previous Page"
|
||||
msgstr "წინა გვერდი"
|
||||
|
||||
#: malcontent-control/carousel.ui:74
|
||||
msgid "Next Page"
|
||||
msgstr "შემდეგი გვერდი"
|
||||
|
||||
#: malcontent-control/main.ui:115
|
||||
msgid "Permission Required"
|
||||
msgstr "საჭიროა წვდომის უფლება"
|
||||
|
||||
#: malcontent-control/main.ui:129
|
||||
msgid ""
|
||||
"Permission is required to view and change user parental controls settings."
|
||||
msgstr ""
|
||||
"მომხმარებლის მშობლის კონტროლის პარამეტრების შესაცვლელად საჭირო წვდომა არ "
|
||||
"გაგაჩნიათ."
|
||||
|
||||
#: malcontent-control/main.ui:184
|
||||
msgid "No Standard User Accounts"
|
||||
msgstr "სტანდარტული მომხმარებლის ანგარიშების გარეშე"
|
||||
|
||||
#: malcontent-control/main.ui:199
|
||||
msgid ""
|
||||
"Parental controls can only be applied to standard user\n"
|
||||
"accounts. These can be created in the user settings."
|
||||
msgstr ""
|
||||
"მშობლის კონტროლის პოლიტიკის გადატარება მხოლოდ ჩვეულებრივ\n"
|
||||
"მომხმარებლებზე შეიძლება. მათი შექმნა მომხმარებლის პარამეტრებში შეგიძლიათ."
|
||||
|
||||
#: malcontent-control/main.ui:212
|
||||
msgid "_User Settings"
|
||||
msgstr "_მომხმარებლის პარამეტრები"
|
||||
|
||||
#: malcontent-control/main.ui:242
|
||||
msgid "Loading…"
|
||||
msgstr "ჩატვირთვა…"
|
||||
|
||||
#: malcontent-control/main.ui:305
|
||||
msgid "_Help"
|
||||
msgstr "და_ხმარება"
|
||||
|
||||
#: malcontent-control/main.ui:309
|
||||
msgid "_About Parental Controls"
|
||||
msgstr "მშობლის კონტროლის _შესახებ"
|
||||
|
||||
#. Translators: the brief summary of the application as it appears in a software center.
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:12
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:4
|
||||
msgid "Set parental controls and monitor usage by users"
|
||||
msgstr "დააყენეთ მშობლის კონტროლი და აკონტროლეთ მომხმარებლების ქცევა"
|
||||
|
||||
#. Translators: These are the application description paragraphs in the AppData file.
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:16
|
||||
msgid ""
|
||||
"Manage users’ parental controls restrictions, controlling how long they can "
|
||||
"use the computer for, what software they can install, and what installed "
|
||||
"software they can run."
|
||||
msgstr ""
|
||||
"მართეთ მომხმარებლის მშობლის კონტროლის შეზღუდვები. აკონტროლეთ, რამდენ ხანს "
|
||||
"შეუძლიათ, ისარგებლონ კომპიუტერით, რა პროგრამების დაყენება შეუძლიათ და "
|
||||
"დაყენებული პროგრამებიდან რისი გაშვება შეუძლიათ."
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
|
||||
msgid "Main window"
|
||||
msgstr "მთავარი ფანჯარა"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:38
|
||||
msgid "The GNOME Project"
|
||||
msgstr "პროექტი \"GNOME\""
|
||||
|
||||
#. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon!
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:14
|
||||
msgid ""
|
||||
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
|
||||
"usage;usage limit;kid;child;"
|
||||
msgstr ""
|
||||
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
|
||||
"usage;usage limit;kid;child;"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:9
|
||||
msgid "Manage parental controls"
|
||||
msgstr "მშობლის კონტროლის მართვა"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:10
|
||||
msgid "Authentication is required to read and change user parental controls"
|
||||
msgstr ""
|
||||
"მომხმარებლის მშობლის კონტროლის წასაკითხად და შესაცვლელად ავთენტიკაციაა საჭირო"
|
||||
|
||||
#: malcontent-control/user-selector.c:426
|
||||
msgid "Your account"
|
||||
msgstr "თქვენი ანგარიში"
|
||||
|
||||
#. Always allow root, to avoid a situation where this PAM module prevents
|
||||
#. * all users logging in with no way of recovery.
|
||||
#: pam/pam_malcontent.c:142 pam/pam_malcontent.c:188
|
||||
#, c-format
|
||||
msgid "User ‘%s’ has no time limits enabled"
|
||||
msgstr "მომხმარებელს \"%s\" დროის ლიმიტები ჩართული არ აქვს"
|
||||
|
||||
#: pam/pam_malcontent.c:151 pam/pam_malcontent.c:172
|
||||
#, c-format
|
||||
msgid "Error getting session limits for user ‘%s’: %s"
|
||||
msgstr "მომხმარებლისთვის '%s' სესიის ლიმიტების მიღების შეცდომა: %s"
|
||||
|
||||
#: pam/pam_malcontent.c:182
|
||||
#, c-format
|
||||
msgid "User ‘%s’ has no time remaining"
|
||||
msgstr "მომხმარებელს \"%s\" დრო დარჩენილი არ აქვს"
|
||||
|
||||
#: pam/pam_malcontent.c:200
|
||||
#, c-format
|
||||
msgid "Error setting time limit on login session: %s"
|
||||
msgstr "შესვლის სესიაზე დროის ლიმიტის დაყენების შეცდომა: %s"
|
27
po/pt_BR.po
27
po/pt_BR.po
|
@ -125,6 +125,25 @@ msgid "Authentication is required to read another user’s account info."
|
|||
msgstr ""
|
||||
"Autenticação é necessária para ler as informações da conta de outro usuário."
|
||||
|
||||
#: malcontent-control/main.ui:197
|
||||
msgid ""
|
||||
"Parental controls can only be applied to standard user\n"
|
||||
"accounts. These can be created in the user settings."
|
||||
msgstr ""
|
||||
"O controle dos pais só pode ser aplicado para o usuário\n"
|
||||
"padrão. É possível cria-lo nas configurações do usuário."
|
||||
|
||||
#: malcontent-control/application.c:407
|
||||
#, c-format
|
||||
msgid ""
|
||||
"It’s recommended that restrictions are set as part of an ongoing "
|
||||
"conversation with %s. <a href='https://www.commonsensemedia.org/privacy-and-"
|
||||
"internet-safety'>Read guidance</a> on what to consider."
|
||||
msgstr ""
|
||||
"É recomendável que as restrições sejam definidas como parte de uma "
|
||||
"conversa em andamento com %s. Para mais informações <a href='https://www."
|
||||
"commonsensemedia.org/privacy-and-internet-safety'>Leia as orientações</a>"
|
||||
|
||||
#: libmalcontent/app-filter.c:694
|
||||
#, c-format
|
||||
msgid "App filter for user %u was in an unrecognized format"
|
||||
|
@ -385,10 +404,18 @@ msgstr ""
|
|||
msgid "Create _Child User"
|
||||
msgstr "_Criar usuário filho"
|
||||
|
||||
#: malcontent-control/main.ui:182
|
||||
msgid "No Standard User Accounts"
|
||||
msgstr "Não há conta de usuário padrão"
|
||||
|
||||
#: malcontent-control/main.ui:202
|
||||
msgid "Loading…"
|
||||
msgstr "Carregando…"
|
||||
|
||||
#: malcontent-control/main.ui:210
|
||||
msgid "_User Settings"
|
||||
msgstr "Configurações do _Usuário"
|
||||
|
||||
#: malcontent-control/main.ui:265
|
||||
msgid "_Help"
|
||||
msgstr "Aj_uda"
|
||||
|
|
425
po/ru.po
425
po/ru.po
|
@ -6,377 +6,384 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: malcontent\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-06-10 12:04+0100\n"
|
||||
"PO-Revision-Date: 2020-04-15 13:42+0100\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2023-10-13 16:18+0000\n"
|
||||
"PO-Revision-Date: 2023-10-29 01:03+1000\n"
|
||||
"Last-Translator: Ser82-png <asvmail.as@gmail.com>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: ru\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Poedit 3.0.1\n"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
|
||||
msgid "Change your own app filter"
|
||||
msgstr ""
|
||||
msgstr "Изменение собственного фильтра приложений"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:5
|
||||
msgid "Authentication is required to change your app filter."
|
||||
msgstr ""
|
||||
msgstr "Для изменения своего фильтра приложений требуется идентификация."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:14
|
||||
msgid "Read your own app filter"
|
||||
msgstr ""
|
||||
msgstr "Чтение собственного фильтра приложений"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:15
|
||||
msgid "Authentication is required to read your app filter."
|
||||
msgstr ""
|
||||
msgstr "Для чтения своего фильтра приложений требуется идентификация."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:24
|
||||
msgid "Change another user’s app filter"
|
||||
msgstr ""
|
||||
msgstr "Изменение фильтра приложений другого пользователя"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
|
||||
msgid "Authentication is required to change another user’s app filter."
|
||||
msgstr ""
|
||||
"Для изменения фильтра приложений другого пользователя требуется "
|
||||
"идентификация."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
|
||||
msgid "Read another user’s app filter"
|
||||
msgstr ""
|
||||
msgstr "Чтение фильтра приложений другого пользователя"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
|
||||
msgid "Authentication is required to read another user’s app filter."
|
||||
msgstr ""
|
||||
"Для чтения фильтра приложений другого пользователя требуется идентификация."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:44
|
||||
msgid "Change your own session limits"
|
||||
msgstr ""
|
||||
msgstr "Изменение ограничений собственного сеанса"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:45
|
||||
msgid "Authentication is required to change your session limits."
|
||||
msgstr ""
|
||||
msgstr "Для изменения ограничений собственного сеанса требуется идентификация."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:54
|
||||
msgid "Read your own session limits"
|
||||
msgstr ""
|
||||
msgstr "Чтение ограничений собственного сеанса"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:55
|
||||
msgid "Authentication is required to read your session limits."
|
||||
msgstr ""
|
||||
msgstr "Для чтения ограничений собственного сеанса требуется идентификация."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:64
|
||||
msgid "Change another user’s session limits"
|
||||
msgstr ""
|
||||
msgstr "Изменение ограничений сеанса другого пользователя"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
|
||||
msgid "Authentication is required to change another user’s session limits."
|
||||
msgstr ""
|
||||
"Для изменения ограничений сеанса другого пользователя требуется "
|
||||
"идентификация."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
|
||||
msgid "Read another user’s session limits"
|
||||
msgstr ""
|
||||
msgstr "Чтение ограничений сеанса другого пользователя"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
|
||||
msgid "Authentication is required to read another user’s session limits."
|
||||
msgstr ""
|
||||
"Для чтения ограничений сеанса другого пользователя требуется идентификация."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:84
|
||||
msgid "Change your own account info"
|
||||
msgstr ""
|
||||
msgstr "Изменение данных своей учётной записи"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:85
|
||||
msgid "Authentication is required to change your account info."
|
||||
msgstr ""
|
||||
msgstr "Для изменения данных своей учётной записи требуется идентификация."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:94
|
||||
msgid "Read your own account info"
|
||||
msgstr ""
|
||||
msgstr "Чтение данных своей учётной записи"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:95
|
||||
msgid "Authentication is required to read your account info."
|
||||
msgstr ""
|
||||
msgstr "Для чтения данных своей учётной записи требуется идентификация."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:104
|
||||
msgid "Change another user’s account info"
|
||||
msgstr ""
|
||||
msgstr "Изменение данных учётной записи другого пользователя"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
|
||||
msgid "Authentication is required to change another user’s account info."
|
||||
msgstr ""
|
||||
"Для изменения данных учётной записи другого пользователя требуется "
|
||||
"идентификация."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
|
||||
msgid "Read another user’s account info"
|
||||
msgstr ""
|
||||
msgstr "Чтение данных учётной записи другого пользователя"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
|
||||
msgid "Authentication is required to read another user’s account info."
|
||||
msgstr ""
|
||||
"Для чтения данных учётной записи другого пользователя требуется "
|
||||
"идентификация."
|
||||
|
||||
#: libmalcontent/app-filter.c:694
|
||||
#, c-format
|
||||
msgid "App filter for user %u was in an unrecognized format"
|
||||
msgstr ""
|
||||
msgstr "Фильтр приложений для пользователя %u записан в неизвестном формате"
|
||||
|
||||
#: libmalcontent/app-filter.c:725
|
||||
#, c-format
|
||||
msgid "OARS filter for user %u has an unrecognized kind ‘%s’"
|
||||
msgstr ""
|
||||
msgstr "Фильтр OARS для пользователя %u имеет неизвестный тип «%s»"
|
||||
|
||||
#: libmalcontent/manager.c:283 libmalcontent/manager.c:412
|
||||
#: libmalcontent/manager.c:283 libmalcontent/manager.c:420
|
||||
#: libmalcontent/manager.c:803
|
||||
#, c-format
|
||||
msgid "Not allowed to query app filter data for user %u"
|
||||
msgid "Not allowed to query parental controls data for user %u"
|
||||
msgstr ""
|
||||
"Запрещено запрашивать данные родительского контроля для пользователя %u"
|
||||
|
||||
#: libmalcontent/manager.c:288
|
||||
#, c-format
|
||||
msgid "User %u does not exist"
|
||||
msgstr ""
|
||||
msgstr "Пользователь %u не существует"
|
||||
|
||||
#: libmalcontent/manager.c:394
|
||||
#: libmalcontent/manager.c:296
|
||||
msgid "System accounts service not available"
|
||||
msgstr "Служба системных учётных записей недоступна"
|
||||
|
||||
#: libmalcontent/manager.c:402
|
||||
msgid "App filtering is globally disabled"
|
||||
msgstr ""
|
||||
msgstr "Фильтрация приложений отключена глобально"
|
||||
|
||||
#: libmalcontent/manager.c:777
|
||||
#: libmalcontent/manager.c:785
|
||||
msgid "Session limits are globally disabled"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent/manager.c:795
|
||||
#, c-format
|
||||
msgid "Not allowed to query session limits data for user %u"
|
||||
msgstr ""
|
||||
msgstr "Ограничения сеанса отключены глобально"
|
||||
|
||||
#: libmalcontent/session-limits.c:306
|
||||
#, c-format
|
||||
msgid "Session limit for user %u was in an unrecognized format"
|
||||
msgstr ""
|
||||
msgstr "Ограничение сеанса для пользователя %u записаны в неизвестном формате"
|
||||
|
||||
#: libmalcontent/session-limits.c:328
|
||||
#, c-format
|
||||
msgid "Session limit for user %u has an unrecognized type ‘%u’"
|
||||
msgstr ""
|
||||
msgstr "Ограничение сеанса для пользователя %u имеет неизвестный тип «%u»"
|
||||
|
||||
#: libmalcontent/session-limits.c:346
|
||||
#, c-format
|
||||
msgid "Session limit for user %u has invalid daily schedule %u–%u"
|
||||
msgstr ""
|
||||
|
||||
#. TRANSLATORS: This is the formatting of English and localized name
|
||||
#. of the rating e.g. "Adults Only (solo adultos)"
|
||||
#: libmalcontent-ui/gs-content-rating.c:75
|
||||
#, c-format
|
||||
msgid "%s (%s)"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:209
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:218
|
||||
msgid "ALL"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:222
|
||||
#: libmalcontent-ui/gs-content-rating.c:485
|
||||
msgid "Adults Only"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:224
|
||||
#: libmalcontent-ui/gs-content-rating.c:484
|
||||
msgid "Mature"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:226
|
||||
#: libmalcontent-ui/gs-content-rating.c:483
|
||||
msgid "Teen"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:228
|
||||
#: libmalcontent-ui/gs-content-rating.c:482
|
||||
msgid "Everyone 10+"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:230
|
||||
#: libmalcontent-ui/gs-content-rating.c:481
|
||||
msgid "Everyone"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:232
|
||||
#: libmalcontent-ui/gs-content-rating.c:480
|
||||
msgid "Early Childhood"
|
||||
msgstr ""
|
||||
"Ограничение сеанса для пользователя %u имеет недопустимое ежедневное "
|
||||
"расписание %u–%u"
|
||||
|
||||
#. Translators: the placeholder is a user’s full name
|
||||
#: libmalcontent-ui/restrict-applications-dialog.c:222
|
||||
#: libmalcontent-ui/restrict-applications-dialog.c:256
|
||||
#, c-format
|
||||
msgid "Restrict %s from using the following installed applications."
|
||||
msgstr ""
|
||||
msgstr "Запретить %s использовать следующие установленные приложения."
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:6
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:12
|
||||
msgid "Restrict Applications"
|
||||
msgstr ""
|
||||
msgstr "Ограничение доступа к приложениям"
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-selector.ui:24
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:22
|
||||
msgid "Search for applications…"
|
||||
msgstr "Поиск приложений…"
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-selector.ui:13
|
||||
msgid "No applications found to restrict."
|
||||
msgstr ""
|
||||
msgstr "Не найдено приложений, доступ к которым ограничен."
|
||||
|
||||
#. Translators: this is the full name for an unknown user account.
|
||||
#: libmalcontent-ui/user-controls.c:242 libmalcontent-ui/user-controls.c:253
|
||||
#: libmalcontent-ui/user-controls.c:198 libmalcontent-ui/user-controls.c:209
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
msgstr "неизвестный"
|
||||
|
||||
#: libmalcontent-ui/user-controls.c:338 libmalcontent-ui/user-controls.c:425
|
||||
#: libmalcontent-ui/user-controls.c:711
|
||||
#: libmalcontent-ui/user-controls.c:303 libmalcontent-ui/user-controls.c:388
|
||||
#: libmalcontent-ui/user-controls.c:641
|
||||
msgid "All Ages"
|
||||
msgstr ""
|
||||
msgstr "Все возрастные группы"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:514
|
||||
#: libmalcontent-ui/user-controls.c:470
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Prevents %s from running web browsers. Limited web content may still be "
|
||||
"available in other applications."
|
||||
msgstr ""
|
||||
"Запретить %s запускать веб-браузеры. Ограниченный веб-контент может быть "
|
||||
"доступен в других приложениях."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:519
|
||||
#: libmalcontent-ui/user-controls.c:475
|
||||
#, c-format
|
||||
msgid "Prevents specified applications from being used by %s."
|
||||
msgstr ""
|
||||
msgstr "Запретить %s использование указанных приложений."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:524
|
||||
#: libmalcontent-ui/user-controls.c:480
|
||||
#, c-format
|
||||
msgid "Prevents %s from installing applications."
|
||||
msgstr ""
|
||||
msgstr "Запретить %s устанавливать приложения."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:529
|
||||
#, c-format
|
||||
msgid "Applications installed by %s will not appear for other users."
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:17
|
||||
#: libmalcontent-ui/user-controls.ui:25
|
||||
msgid "Application Usage Restrictions"
|
||||
msgstr ""
|
||||
msgstr "Ограничения на использование приложений"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:68
|
||||
#: libmalcontent-ui/user-controls.ui:28
|
||||
msgid "Restrict _Web Browsers"
|
||||
msgstr ""
|
||||
msgstr "Ограничить доступ к _Веб-браузерам"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:152
|
||||
#: libmalcontent-ui/user-controls.ui:51
|
||||
msgid "_Restrict Applications"
|
||||
msgstr ""
|
||||
msgstr "_Ограничить доступ к приложениям"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:231
|
||||
#: libmalcontent-ui/user-controls.ui:73
|
||||
msgid "Software Installation Restrictions"
|
||||
msgstr ""
|
||||
msgstr "Ограничения на установку программного обеспечения"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:281
|
||||
#: libmalcontent-ui/user-controls.ui:77
|
||||
msgid "Restrict Application _Installation"
|
||||
msgstr ""
|
||||
msgstr "Ограничить _установку приложений"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:366
|
||||
msgid "Restrict Application Installation for _Others"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:451
|
||||
#: libmalcontent-ui/user-controls.ui:99
|
||||
msgid "Application _Suitability"
|
||||
msgstr ""
|
||||
msgstr "_Пригодность приложений"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:473
|
||||
#: libmalcontent-ui/user-controls.ui:102
|
||||
msgid ""
|
||||
"Restricts browsing or installation of applications to applications suitable "
|
||||
"for certain ages or above."
|
||||
"Restricts the browsing or installation of applications unsuitable for this "
|
||||
"age or younger."
|
||||
msgstr ""
|
||||
"Ограничить просмотр или установку приложений неподходящих для этой "
|
||||
"возрастной группы."
|
||||
|
||||
#. Translators: This documents the --user command line option to malcontent-control:
|
||||
#: malcontent-control/application.c:102
|
||||
msgid "User to select in the UI"
|
||||
msgstr "Пользователь для выбора в пользовательском интерфейсе"
|
||||
|
||||
#. Translators: This is a placeholder for a command line argument value:
|
||||
#: malcontent-control/application.c:104
|
||||
msgid "USERNAME"
|
||||
msgstr "ПОЛЬЗОВАТЕЛЬ"
|
||||
|
||||
#: malcontent-control/application.c:116
|
||||
msgid "— view and edit parental controls"
|
||||
msgstr "— просмотр и редактирование родительского контроя"
|
||||
|
||||
#. Translators: This is the title of the main window
|
||||
#. Translators: the name of the application as it appears in a software center
|
||||
#: malcontent-control/application.c:105 malcontent-control/main.ui:12
|
||||
#: malcontent-control/application.c:123 malcontent-control/main.ui:17
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:9
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:3
|
||||
msgid "Parental Controls"
|
||||
msgstr ""
|
||||
msgstr "Родительский контроль"
|
||||
|
||||
#: malcontent-control/application.c:270
|
||||
#: malcontent-control/application.c:309
|
||||
msgid "Copyright © 2019, 2020 Endless Mobile, Inc."
|
||||
msgstr ""
|
||||
msgstr "Copyright © 2019, 2020 Endless Mobile, Inc."
|
||||
|
||||
#. Translators: this should be "translated" to the
|
||||
#. names of people who have translated Malcontent into
|
||||
#. this language, one per line.
|
||||
#: malcontent-control/application.c:275
|
||||
#: malcontent-control/application.c:314
|
||||
msgid "translator-credits"
|
||||
msgstr ""
|
||||
msgstr "Ser82-png <asvmail.as@gmail.com>, 2022-2023"
|
||||
|
||||
#. Translators: "Malcontent" is the brand name of this
|
||||
#. project, so should not be translated.
|
||||
#: malcontent-control/application.c:281
|
||||
#: malcontent-control/application.c:320
|
||||
msgid "Malcontent Website"
|
||||
msgstr ""
|
||||
msgstr "Веб-сайт Malcontent"
|
||||
|
||||
#: malcontent-control/application.c:299
|
||||
#: malcontent-control/application.c:341
|
||||
msgid "The help contents could not be displayed"
|
||||
msgstr ""
|
||||
msgstr "Содержание справки не может быть отображено"
|
||||
|
||||
#: malcontent-control/application.c:336
|
||||
#: malcontent-control/application.c:388
|
||||
msgid "Failed to load user data from the system"
|
||||
msgstr ""
|
||||
msgstr "Не удалось загрузить пользовательские данные из системы"
|
||||
|
||||
#: malcontent-control/application.c:338
|
||||
#: malcontent-control/application.c:390
|
||||
msgid "Please make sure that the AccountsService is installed and enabled."
|
||||
msgstr ""
|
||||
msgstr "Убедитесь, что служба AccountsService установлена и включена."
|
||||
|
||||
#: malcontent-control/carousel.ui:48
|
||||
#. Translators: Replace the link to commonsensemedia.org with some
|
||||
#. * localised guidance for parents/carers on how to set restrictions on
|
||||
#. * their child/caree in a responsible way which is in keeping with the
|
||||
#. * best practice and culture of the region. If no suitable localised
|
||||
#. * guidance exists, and if the default commonsensemedia.org link is not
|
||||
#. * suitable, please file an issue against malcontent so we can discuss
|
||||
#. * further!
|
||||
#. * https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/new
|
||||
#.
|
||||
#: malcontent-control/application.c:421
|
||||
#, c-format
|
||||
msgid ""
|
||||
"It’s recommended that restrictions are set as part of an ongoing "
|
||||
"conversation with %s. <a href='https://www.commonsensemedia.org/privacy-and-"
|
||||
"internet-safety'>Read guidance</a> on what to consider."
|
||||
msgstr ""
|
||||
"Рекомендуется устанавливать эти ограничения как дополнение к беседе с %s. <a "
|
||||
"href='https://www.commonsensemedia.org/privacy-and-internet-"
|
||||
"safety'>Ознакомьтесь с инструкцией</a> о том, что нужно учитывать."
|
||||
|
||||
#: malcontent-control/carousel.ui:38
|
||||
msgid "Previous Page"
|
||||
msgstr ""
|
||||
msgstr "Предыдущая страница"
|
||||
|
||||
#: malcontent-control/carousel.ui:74
|
||||
#: malcontent-control/carousel.ui:57
|
||||
msgid "Next Page"
|
||||
msgstr ""
|
||||
msgstr "Следующая страница"
|
||||
|
||||
#: malcontent-control/main.ui:93
|
||||
#: malcontent-control/main.ui:87
|
||||
msgid "Permission Required"
|
||||
msgstr ""
|
||||
msgstr "Требуется разрешение"
|
||||
|
||||
#: malcontent-control/main.ui:107
|
||||
#: malcontent-control/main.ui:88
|
||||
msgid ""
|
||||
"Permission is required to view and change user parental controls settings."
|
||||
msgstr ""
|
||||
"Требуется разрешение для просмотра и изменения настроек родительского "
|
||||
"контроля пользователя."
|
||||
|
||||
#: malcontent-control/main.ui:148
|
||||
msgid "No Child Users Configured"
|
||||
msgstr ""
|
||||
#: malcontent-control/main.ui:110
|
||||
msgid "No Standard User Accounts"
|
||||
msgstr "Нет обычных учётных записей пользователей"
|
||||
|
||||
#: malcontent-control/main.ui:162
|
||||
#: malcontent-control/main.ui:111
|
||||
msgid ""
|
||||
"No child users are currently set up on the system. Create one before setting "
|
||||
"up their parental controls."
|
||||
"Parental controls can only be applied to standard user\n"
|
||||
"accounts. These can be created in the user settings."
|
||||
msgstr ""
|
||||
"Родительский контроль может быть применен только к обычным учётным\n"
|
||||
"записям пользователей. Такие записи можно создать в настройках пользователя."
|
||||
|
||||
#: malcontent-control/main.ui:174
|
||||
msgid "Create _Child User"
|
||||
msgstr ""
|
||||
#: malcontent-control/main.ui:115
|
||||
msgid "_User Settings"
|
||||
msgstr "Настройки _пользователя"
|
||||
|
||||
#: malcontent-control/main.ui:202
|
||||
#: malcontent-control/main.ui:138
|
||||
msgid "Loading…"
|
||||
msgstr ""
|
||||
msgstr "Загрузка…"
|
||||
|
||||
#: malcontent-control/main.ui:265
|
||||
#: malcontent-control/main.ui:171
|
||||
msgid "_Help"
|
||||
msgstr "_Справка"
|
||||
|
||||
#: malcontent-control/main.ui:269
|
||||
#: malcontent-control/main.ui:175
|
||||
msgid "_About Parental Controls"
|
||||
msgstr ""
|
||||
msgstr "_О родительском контроле"
|
||||
|
||||
#. Translators: the brief summary of the application as it appears in a software center.
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:12
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:4
|
||||
msgid "Set parental controls and monitor usage by users"
|
||||
msgstr ""
|
||||
"Создание родительского контроля и управление использованием компьютера для "
|
||||
"каждого пользователя"
|
||||
|
||||
#. Translators: These are the application description paragraphs in the AppData file.
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:16
|
||||
|
@ -385,67 +392,37 @@ msgid ""
|
|||
"use the computer for, what software they can install, and what installed "
|
||||
"software they can run."
|
||||
msgstr ""
|
||||
"Управление ограничениями родительского контроля, позволяет контролировать "
|
||||
"время использования компьютера, какое программное обеспечение вы можете "
|
||||
"установить и какое уже установленное программное обеспечение разрешено "
|
||||
"запускать."
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
|
||||
msgid "Main window"
|
||||
msgstr "Главное окно"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
|
||||
msgid "The GNOME Project"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:50
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:59
|
||||
msgid "Minor improvements to parental controls application UI"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:51
|
||||
msgid "Add a user manual"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:52
|
||||
msgid "Translation updates"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:60
|
||||
msgid "Translations to Ukrainian and Polish"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:67
|
||||
msgid "Improve parental controls application UI and add icon"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:68
|
||||
msgid "Support for indicating which accounts are parent accounts"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:75
|
||||
msgid "Initial release of basic parental controls application"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:76
|
||||
msgid "Support for setting app installation and run restrictions on users"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:83
|
||||
msgid "Maintenance release of underlying parental controls library"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:7
|
||||
msgid "org.freedesktop.MalcontentControl"
|
||||
msgstr ""
|
||||
msgstr "Проект GNOME"
|
||||
|
||||
#. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon!
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:13
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:14
|
||||
msgid ""
|
||||
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
|
||||
"usage;usage limit;kid;child;"
|
||||
msgstr ""
|
||||
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
|
||||
"usage;usage limit;kid;child;родительский контроль;ребенок;ограничение;"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:9
|
||||
msgid "Manage parental controls"
|
||||
msgstr ""
|
||||
msgstr "Управление родительским контролем"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:10
|
||||
msgid "Authentication is required to read and change user parental controls"
|
||||
msgstr ""
|
||||
"Для просмотра и внесения изменений в родительский контроль пользователя "
|
||||
"требуется идентификация"
|
||||
|
||||
#: malcontent-control/user-selector.c:426
|
||||
msgid "Your account"
|
||||
|
@ -456,22 +433,52 @@ msgstr "Ваша учётная запись"
|
|||
#: pam/pam_malcontent.c:142 pam/pam_malcontent.c:188
|
||||
#, c-format
|
||||
msgid "User ‘%s’ has no time limits enabled"
|
||||
msgstr ""
|
||||
msgstr "Пользователь «%s» не имеет ограничений по времени"
|
||||
|
||||
#: pam/pam_malcontent.c:151 pam/pam_malcontent.c:172
|
||||
#, c-format
|
||||
msgid "Error getting session limits for user ‘%s’: %s"
|
||||
msgstr ""
|
||||
"Ошибка при попытке получить данные об ограничениях сеанса пользователя «%s»: "
|
||||
"%s"
|
||||
|
||||
#: pam/pam_malcontent.c:182
|
||||
#, c-format
|
||||
msgid "User ‘%s’ has no time remaining"
|
||||
msgstr ""
|
||||
msgstr "У пользователя «%s» не осталось времени"
|
||||
|
||||
#: pam/pam_malcontent.c:200
|
||||
#, c-format
|
||||
msgid "Error setting time limit on login session: %s"
|
||||
msgstr ""
|
||||
msgstr "Ошибка установки ограничения времени на сеанс входа в систему: %s"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "%s (%s)"
|
||||
#~ msgstr "%s (%s)"
|
||||
|
||||
#~ msgid "General"
|
||||
#~ msgstr "Общие"
|
||||
|
||||
#~ msgid "ALL"
|
||||
#~ msgstr "ВСЕ"
|
||||
|
||||
#~ msgid "Adults Only"
|
||||
#~ msgstr "Только для взрослых"
|
||||
|
||||
#~ msgid "Mature"
|
||||
#~ msgstr "Для повзрослевшых"
|
||||
|
||||
#~ msgid "Teen"
|
||||
#~ msgstr "Для подростков"
|
||||
|
||||
#~ msgid "Everyone 10+"
|
||||
#~ msgstr "Для всех старше 10"
|
||||
|
||||
#~ msgid "Everyone"
|
||||
#~ msgstr "Для всех"
|
||||
|
||||
#~ msgid "Early Childhood"
|
||||
#~ msgstr "Для маленьких"
|
||||
|
||||
#~ msgid "No cartoon violence"
|
||||
#~ msgstr "Отсутствуют сцены мультипликационного насилия"
|
||||
|
|
164
po/sv.po
164
po/sv.po
|
@ -1,16 +1,16 @@
|
|||
# Swedish translations for malcontent package.
|
||||
# Copyright (C) 2020 THE malcontent'S COPYRIGHT HOLDER
|
||||
# Copyright © 2020-2023 malcontent's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the malcontent package.
|
||||
# Automatically generated, 2020.
|
||||
# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2020.
|
||||
# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2020, 2023.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: malcontent\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2020-12-09 03:28+0000\n"
|
||||
"PO-Revision-Date: 2020-12-17 18:28+0100\n"
|
||||
"POT-Creation-Date: 2023-10-13 16:18+0000\n"
|
||||
"PO-Revision-Date: 2023-10-20 21:11+0200\n"
|
||||
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
|
||||
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
|
||||
"Language: sv\n"
|
||||
|
@ -18,7 +18,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: Poedit 2.4.2\n"
|
||||
"X-Generator: Poedit 3.4\n"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
|
||||
msgid "Change your own app filter"
|
||||
|
@ -165,79 +165,36 @@ msgstr "Sessionsgräns för användare %u har en okänd typ ”%u”"
|
|||
msgid "Session limit for user %u has invalid daily schedule %u–%u"
|
||||
msgstr "Sessionsgräns för användare %u har ett ogiltigt dagsschema %u–%u"
|
||||
|
||||
#. TRANSLATORS: This is the formatting of English and localized name
|
||||
#. of the rating e.g. "Adults Only (solo adultos)"
|
||||
#: libmalcontent-ui/gs-content-rating.c:75
|
||||
#, c-format
|
||||
msgid "%s (%s)"
|
||||
msgstr "%s (%s)"
|
||||
|
||||
# Alla åldrar i MDA-systemet
|
||||
#: libmalcontent-ui/gs-content-rating.c:209
|
||||
msgid "General"
|
||||
msgstr "Alla"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:218
|
||||
msgid "ALL"
|
||||
msgstr "ALLA"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:222
|
||||
#: libmalcontent-ui/gs-content-rating.c:485
|
||||
msgid "Adults Only"
|
||||
msgstr "Endast för vuxna"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:224
|
||||
#: libmalcontent-ui/gs-content-rating.c:484
|
||||
msgid "Mature"
|
||||
msgstr "Mogen"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:226
|
||||
#: libmalcontent-ui/gs-content-rating.c:483
|
||||
msgid "Teen"
|
||||
msgstr "Tonåring"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:228
|
||||
#: libmalcontent-ui/gs-content-rating.c:482
|
||||
msgid "Everyone 10+"
|
||||
msgstr "Alla över 10 år"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:230
|
||||
#: libmalcontent-ui/gs-content-rating.c:481
|
||||
msgid "Everyone"
|
||||
msgstr "Alla"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:232
|
||||
#: libmalcontent-ui/gs-content-rating.c:480
|
||||
msgid "Early Childhood"
|
||||
msgstr "Tidig barndom"
|
||||
|
||||
#. Translators: the placeholder is a user’s full name
|
||||
#: libmalcontent-ui/restrict-applications-dialog.c:222
|
||||
#: libmalcontent-ui/restrict-applications-dialog.c:256
|
||||
#, c-format
|
||||
msgid "Restrict %s from using the following installed applications."
|
||||
msgstr "Begränsa %s från att använda följande installerade program."
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:6
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:12
|
||||
msgid "Restrict Applications"
|
||||
msgstr "Begränsa program"
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-selector.ui:24
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:22
|
||||
msgid "Search for applications…"
|
||||
msgstr "Sök efter program…"
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-selector.ui:13
|
||||
msgid "No applications found to restrict."
|
||||
msgstr "Inga program att begränsa hittades."
|
||||
|
||||
#. Translators: this is the full name for an unknown user account.
|
||||
#: libmalcontent-ui/user-controls.c:207 libmalcontent-ui/user-controls.c:218
|
||||
#: libmalcontent-ui/user-controls.c:198 libmalcontent-ui/user-controls.c:209
|
||||
msgid "unknown"
|
||||
msgstr "okänd"
|
||||
|
||||
#: libmalcontent-ui/user-controls.c:312 libmalcontent-ui/user-controls.c:397
|
||||
#: libmalcontent-ui/user-controls.c:669
|
||||
#: libmalcontent-ui/user-controls.c:303 libmalcontent-ui/user-controls.c:388
|
||||
#: libmalcontent-ui/user-controls.c:641
|
||||
msgid "All Ages"
|
||||
msgstr "Alla åldrar"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:477
|
||||
#: libmalcontent-ui/user-controls.c:470
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Prevents %s from running web browsers. Limited web content may still be "
|
||||
|
@ -247,48 +204,48 @@ msgstr ""
|
|||
"fortfarande finnas tillgängligt i andra program."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:482
|
||||
#: libmalcontent-ui/user-controls.c:475
|
||||
#, c-format
|
||||
msgid "Prevents specified applications from being used by %s."
|
||||
msgstr "Förhindrar angivna program från att användas av %s."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:487
|
||||
#: libmalcontent-ui/user-controls.c:480
|
||||
#, c-format
|
||||
msgid "Prevents %s from installing applications."
|
||||
msgstr "Förhindrar %s från att installera program."
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:16
|
||||
#: libmalcontent-ui/user-controls.ui:25
|
||||
msgid "Application Usage Restrictions"
|
||||
msgstr "Begränsningar av programanvändning"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:67
|
||||
#: libmalcontent-ui/user-controls.ui:28
|
||||
msgid "Restrict _Web Browsers"
|
||||
msgstr "Begränsa _webbläsare"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:151
|
||||
#: libmalcontent-ui/user-controls.ui:51
|
||||
msgid "_Restrict Applications"
|
||||
msgstr "_Begränsa program"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:230
|
||||
#: libmalcontent-ui/user-controls.ui:73
|
||||
msgid "Software Installation Restrictions"
|
||||
msgstr "Begränsningar av programvaruinstallation"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:280
|
||||
#: libmalcontent-ui/user-controls.ui:77
|
||||
msgid "Restrict Application _Installation"
|
||||
msgstr "Begränsa _installation av program"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:365
|
||||
#: libmalcontent-ui/user-controls.ui:99
|
||||
msgid "Application _Suitability"
|
||||
msgstr "_Lämplighet för program"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:387
|
||||
#: libmalcontent-ui/user-controls.ui:102
|
||||
msgid ""
|
||||
"Restricts browsing or installation of applications to applications suitable "
|
||||
"for certain ages or above."
|
||||
"Restricts the browsing or installation of applications unsuitable for this "
|
||||
"age or younger."
|
||||
msgstr ""
|
||||
"Begränsar bläddring bland eller installation av program till program som är "
|
||||
"lämpliga för vissa åldrar och uppåt."
|
||||
"Begränsar bläddring bland eller installation av program som är olämpliga för "
|
||||
"denna ålder och yngre."
|
||||
|
||||
#. Translators: This documents the --user command line option to malcontent-control:
|
||||
#: malcontent-control/application.c:102
|
||||
|
@ -300,44 +257,44 @@ msgstr "Användare att välja i användargränssnittet"
|
|||
msgid "USERNAME"
|
||||
msgstr "ANVÄNDARNAMN"
|
||||
|
||||
#: malcontent-control/application.c:115
|
||||
#: malcontent-control/application.c:116
|
||||
msgid "— view and edit parental controls"
|
||||
msgstr "— visa och redigera föräldrakontroller"
|
||||
|
||||
#. Translators: This is the title of the main window
|
||||
#. Translators: the name of the application as it appears in a software center
|
||||
#: malcontent-control/application.c:122 malcontent-control/main.ui:12
|
||||
#: malcontent-control/application.c:123 malcontent-control/main.ui:17
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:9
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:3
|
||||
msgid "Parental Controls"
|
||||
msgstr "Föräldrakontroller"
|
||||
|
||||
#: malcontent-control/application.c:308
|
||||
#: malcontent-control/application.c:309
|
||||
msgid "Copyright © 2019, 2020 Endless Mobile, Inc."
|
||||
msgstr "Copyright © 2019, 2020 Endless Mobile, Inc."
|
||||
|
||||
#. Translators: this should be "translated" to the
|
||||
#. names of people who have translated Malcontent into
|
||||
#. this language, one per line.
|
||||
#: malcontent-control/application.c:313
|
||||
#: malcontent-control/application.c:314
|
||||
msgid "translator-credits"
|
||||
msgstr "Anders Jonsson <anders.jonsson@norsjovallen.se>"
|
||||
|
||||
#. Translators: "Malcontent" is the brand name of this
|
||||
#. project, so should not be translated.
|
||||
#: malcontent-control/application.c:319
|
||||
#: malcontent-control/application.c:320
|
||||
msgid "Malcontent Website"
|
||||
msgstr "Webbplats för Malcontent"
|
||||
|
||||
#: malcontent-control/application.c:337
|
||||
#: malcontent-control/application.c:341
|
||||
msgid "The help contents could not be displayed"
|
||||
msgstr "Hjälpinnehållet kunde inte visas"
|
||||
|
||||
#: malcontent-control/application.c:374
|
||||
#: malcontent-control/application.c:388
|
||||
msgid "Failed to load user data from the system"
|
||||
msgstr "Misslyckades med att läsa in användardata från systemet"
|
||||
|
||||
#: malcontent-control/application.c:376
|
||||
#: malcontent-control/application.c:390
|
||||
msgid "Please make sure that the AccountsService is installed and enabled."
|
||||
msgstr "Försäkra dig om att AccountsService är installerat och aktiverat."
|
||||
|
||||
|
@ -350,7 +307,7 @@ msgstr "Försäkra dig om att AccountsService är installerat och aktiverat."
|
|||
#. * further!
|
||||
#. * https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/new
|
||||
#.
|
||||
#: malcontent-control/application.c:407
|
||||
#: malcontent-control/application.c:421
|
||||
#, c-format
|
||||
msgid ""
|
||||
"It’s recommended that restrictions are set as part of an ongoing "
|
||||
|
@ -362,30 +319,30 @@ msgstr ""
|
|||
"internet-safety'>Du kan läsa denna guide</a> (på engelska) om vad som finns "
|
||||
"att ta i beaktande."
|
||||
|
||||
#: malcontent-control/carousel.ui:48
|
||||
#: malcontent-control/carousel.ui:38
|
||||
msgid "Previous Page"
|
||||
msgstr "Föregående sida"
|
||||
|
||||
#: malcontent-control/carousel.ui:74
|
||||
#: malcontent-control/carousel.ui:57
|
||||
msgid "Next Page"
|
||||
msgstr "Nästa sida"
|
||||
|
||||
#: malcontent-control/main.ui:115
|
||||
#: malcontent-control/main.ui:87
|
||||
msgid "Permission Required"
|
||||
msgstr "Behörighet krävs"
|
||||
|
||||
#: malcontent-control/main.ui:129
|
||||
#: malcontent-control/main.ui:88
|
||||
msgid ""
|
||||
"Permission is required to view and change user parental controls settings."
|
||||
msgstr ""
|
||||
"Behörighet krävs för att visa och ändra inställningar för föräldrakontroll "
|
||||
"för användare."
|
||||
|
||||
#: malcontent-control/main.ui:182
|
||||
#: malcontent-control/main.ui:110
|
||||
msgid "No Standard User Accounts"
|
||||
msgstr "Inga standardanvändarkonton"
|
||||
|
||||
#: malcontent-control/main.ui:197
|
||||
#: malcontent-control/main.ui:111
|
||||
msgid ""
|
||||
"Parental controls can only be applied to standard user\n"
|
||||
"accounts. These can be created in the user settings."
|
||||
|
@ -394,19 +351,19 @@ msgstr ""
|
|||
"standardanvändarkonton. Dessa kan skapas i\n"
|
||||
"användarinställningarna."
|
||||
|
||||
#: malcontent-control/main.ui:210
|
||||
#: malcontent-control/main.ui:115
|
||||
msgid "_User Settings"
|
||||
msgstr "_Användarinställningar"
|
||||
|
||||
#: malcontent-control/main.ui:238
|
||||
#: malcontent-control/main.ui:138
|
||||
msgid "Loading…"
|
||||
msgstr "Läser in…"
|
||||
|
||||
#: malcontent-control/main.ui:301
|
||||
#: malcontent-control/main.ui:171
|
||||
msgid "_Help"
|
||||
msgstr "_Hjälp"
|
||||
|
||||
#: malcontent-control/main.ui:305
|
||||
#: malcontent-control/main.ui:175
|
||||
msgid "_About Parental Controls"
|
||||
msgstr "_Om Föräldrakontroller"
|
||||
|
||||
|
@ -431,12 +388,12 @@ msgstr ""
|
|||
msgid "Main window"
|
||||
msgstr "Huvudfönster"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:38
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
|
||||
msgid "The GNOME Project"
|
||||
msgstr "GNOME-projektet"
|
||||
|
||||
#. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon!
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:13
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:14
|
||||
msgid ""
|
||||
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
|
||||
"usage;usage limit;kid;child;"
|
||||
|
@ -478,26 +435,3 @@ msgstr "Användaren ”%s” har ingen återstående tid"
|
|||
#, c-format
|
||||
msgid "Error setting time limit on login session: %s"
|
||||
msgstr "Fel vid inställning av tidsgräns på inloggningssession: %s"
|
||||
|
||||
#~ msgid "Not allowed to query session limits data for user %u"
|
||||
#~ msgstr "Ej tillåtet att efterfråga sessionsgränsdata för användare %u"
|
||||
|
||||
#~ msgid "Applications installed by %s will not appear for other users."
|
||||
#~ msgstr "Program installerade av %s kommer inte visas för andra användare."
|
||||
|
||||
# Systeminstallation ej tillåtet, användaren kan bara installera åt sig själv
|
||||
#~ msgid "Restrict Application Installation for _Others"
|
||||
#~ msgstr "Begränsa installation av program åt _andra"
|
||||
|
||||
#~ msgid "No Child Users Configured"
|
||||
#~ msgstr "Inga barnanvändare konfigurerade"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "No child users are currently set up on the system. Create one before "
|
||||
#~ "setting up their parental controls."
|
||||
#~ msgstr ""
|
||||
#~ "Inga barnanvändare har konfigurerats på systemet. Skapa en innan du "
|
||||
#~ "konfigurerar deras föräldrakontroller."
|
||||
|
||||
#~ msgid "Create _Child User"
|
||||
#~ msgstr "Skapa _barnanvändare"
|
||||
|
|
656
po/tr.po
656
po/tr.po
|
@ -1,381 +1,429 @@
|
|||
# Turkish translations for malcontent package.
|
||||
# Copyright (C) 2020 THE malcontent'S COPYRIGHT HOLDER
|
||||
# Copyright (C) 2022 malcontent's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the malcontent package.
|
||||
# Automatically generated, 2020.
|
||||
#
|
||||
# Sabri Ünal <libreajans@gmail.com>, 2022.
|
||||
# Emin Tufan Çetin <etcetin@gmail.com>, 2022.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: malcontent\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-06-10 12:04+0100\n"
|
||||
"PO-Revision-Date: 2020-04-15 13:42+0100\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2022-05-18 03:25+0000\n"
|
||||
"PO-Revision-Date: 2023-03-09 03:35+0300\n"
|
||||
"Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
|
||||
"Language-Team: Türkçe <gnome-turk@gnome.org>\n"
|
||||
"Language: tr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Poedit 3.1.1\n"
|
||||
"X-POOTLE-MTIME: 1434043811.000000\n"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
|
||||
msgid "Change your own app filter"
|
||||
msgstr ""
|
||||
msgstr "Kendi uygulama süzgecini değiştir"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:5
|
||||
msgid "Authentication is required to change your app filter."
|
||||
msgstr ""
|
||||
msgstr "Uygulama süzgecinizi değiştirmek için kimlik doğrulanmalıdır."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:14
|
||||
msgid "Read your own app filter"
|
||||
msgstr ""
|
||||
msgstr "Kendi uygulama süzgecini oku"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:15
|
||||
msgid "Authentication is required to read your app filter."
|
||||
msgstr ""
|
||||
msgstr "Uygulama süzgecinizi okumak için kimlik doğrulanmalıdır."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:24
|
||||
msgid "Change another user’s app filter"
|
||||
msgstr ""
|
||||
msgstr "Başka kullanıcının uygulama süzgecini değiştir"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
|
||||
msgid "Authentication is required to change another user’s app filter."
|
||||
msgstr ""
|
||||
"Başka kullanıcının uygulama süzgecini değiştirmek için kimlik "
|
||||
"doğrulanmalıdır."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
|
||||
msgid "Read another user’s app filter"
|
||||
msgstr ""
|
||||
msgstr "Başka kullanıcının uygulama süzgecini oku"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
|
||||
msgid "Authentication is required to read another user’s app filter."
|
||||
msgstr ""
|
||||
"Başka kullanıcının uygulama süzgecini okumak için kimlik doğrulanmalıdır."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:44
|
||||
msgid "Change your own session limits"
|
||||
msgstr ""
|
||||
msgstr "Kendi oturum sınırlarını değiştir"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:45
|
||||
msgid "Authentication is required to change your session limits."
|
||||
msgstr ""
|
||||
msgstr "Kendi oturum sınırlarınızı değiştirmek için kimlik doğrulanmalıdır."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:54
|
||||
msgid "Read your own session limits"
|
||||
msgstr ""
|
||||
msgstr "Kendi oturum sınırlarını oku"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:55
|
||||
msgid "Authentication is required to read your session limits."
|
||||
msgstr ""
|
||||
msgstr "Kendi oturum sınırlarınızı okumak için kimlik doğrulanmalıdır."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:64
|
||||
msgid "Change another user’s session limits"
|
||||
msgstr ""
|
||||
msgstr "Başka kullanıcının oturum kısıtlarını değiştir"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
|
||||
msgid "Authentication is required to change another user’s session limits."
|
||||
msgstr ""
|
||||
"Başka kullanıcının oturum sınırlarını değiştirmek için kimlik "
|
||||
"doğrulanmalıdır."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
|
||||
msgid "Read another user’s session limits"
|
||||
msgstr ""
|
||||
msgstr "Başka kullanıcının oturum sınırlarını oku"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
|
||||
msgid "Authentication is required to read another user’s session limits."
|
||||
msgstr ""
|
||||
"Başka kullanıcının oturum sınırlarını okumak için kimlik doğrulanmalıdır."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:84
|
||||
msgid "Change your own account info"
|
||||
msgstr ""
|
||||
msgstr "Kendi hesap bilgilerini değiştir"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:85
|
||||
msgid "Authentication is required to change your account info."
|
||||
msgstr ""
|
||||
msgstr "Kendi hesap bilgilerinizi değiştirmek için kimlik doğrulanmalıdır."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:94
|
||||
msgid "Read your own account info"
|
||||
msgstr ""
|
||||
msgstr "Kendi hesap bilgilerini oku"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:95
|
||||
msgid "Authentication is required to read your account info."
|
||||
msgstr ""
|
||||
msgstr "Kendi hesap bilgilerinizi okumak için kimlik doğrulanmalıdır."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:104
|
||||
msgid "Change another user’s account info"
|
||||
msgstr ""
|
||||
msgstr "Başka kullanıcının hesap bilgilerini değiştir"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
|
||||
msgid "Authentication is required to change another user’s account info."
|
||||
msgstr ""
|
||||
"Başka kullanıcının hesap bilgilerini değiştirmek için kimlik doğrulanmalıdır."
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
|
||||
msgid "Read another user’s account info"
|
||||
msgstr ""
|
||||
msgstr "Başka kullanıcının hesap bilgilerini oku"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
|
||||
msgid "Authentication is required to read another user’s account info."
|
||||
msgstr ""
|
||||
"Başka kullanıcının hesap bilgilerini okumak için kimlik doğrulanmalıdır."
|
||||
|
||||
#: libmalcontent/app-filter.c:694
|
||||
#, c-format
|
||||
msgid "App filter for user %u was in an unrecognized format"
|
||||
msgstr ""
|
||||
msgstr "%u kullanıcısı için uygulama süzgeci tanınmayan biçimde"
|
||||
|
||||
#: libmalcontent/app-filter.c:725
|
||||
#, c-format
|
||||
msgid "OARS filter for user %u has an unrecognized kind ‘%s’"
|
||||
msgstr ""
|
||||
msgstr "%u kullanıcısı için OARS süzgeci tanınmayan ‘%s’ türünde"
|
||||
|
||||
#: libmalcontent/manager.c:283 libmalcontent/manager.c:412
|
||||
#: libmalcontent/manager.c:283 libmalcontent/manager.c:420
|
||||
#: libmalcontent/manager.c:803
|
||||
#, c-format
|
||||
msgid "Not allowed to query app filter data for user %u"
|
||||
msgstr ""
|
||||
msgid "Not allowed to query parental controls data for user %u"
|
||||
msgstr "%u kullanıcısı için ebeveyn denetimi verileri sorgulanamaz"
|
||||
|
||||
#: libmalcontent/manager.c:288
|
||||
#, c-format
|
||||
msgid "User %u does not exist"
|
||||
msgstr ""
|
||||
msgstr "%u kullanıcısı yok"
|
||||
|
||||
#: libmalcontent/manager.c:394
|
||||
#: libmalcontent/manager.c:296
|
||||
msgid "System accounts service not available"
|
||||
msgstr "Sistem hesap hizmeti kullanılamıyor"
|
||||
|
||||
#: libmalcontent/manager.c:402
|
||||
msgid "App filtering is globally disabled"
|
||||
msgstr ""
|
||||
msgstr "Uygulama süzgeci tümüyle devre dışı"
|
||||
|
||||
#: libmalcontent/manager.c:777
|
||||
#: libmalcontent/manager.c:785
|
||||
msgid "Session limits are globally disabled"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent/manager.c:795
|
||||
#, c-format
|
||||
msgid "Not allowed to query session limits data for user %u"
|
||||
msgstr ""
|
||||
msgstr "Oturum kısıtları tümüyle devre dışı"
|
||||
|
||||
#: libmalcontent/session-limits.c:306
|
||||
#, c-format
|
||||
msgid "Session limit for user %u was in an unrecognized format"
|
||||
msgstr ""
|
||||
msgstr "%u kullanıcısı için oturum kısıtları tanınmayan biçimde"
|
||||
|
||||
#: libmalcontent/session-limits.c:328
|
||||
#, c-format
|
||||
msgid "Session limit for user %u has an unrecognized type ‘%u’"
|
||||
msgstr ""
|
||||
msgstr "%u kullanıcısı için oturum kısıtları tanınmayan ‘%u’ türünde"
|
||||
|
||||
#: libmalcontent/session-limits.c:346
|
||||
#, c-format
|
||||
msgid "Session limit for user %u has invalid daily schedule %u–%u"
|
||||
msgstr ""
|
||||
msgstr "%u kullanıcısı için oturum kısıtları geçersiz günlük düzende %u–%u"
|
||||
|
||||
#. TRANSLATORS: This is the formatting of English and localized name
|
||||
#. of the rating e.g. "Adults Only (solo adultos)"
|
||||
#: libmalcontent-ui/gs-content-rating.c:75
|
||||
#, c-format
|
||||
msgid "%s (%s)"
|
||||
msgstr ""
|
||||
msgstr "%s (%s)"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:209
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
msgstr "Genel"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:218
|
||||
msgid "ALL"
|
||||
msgstr ""
|
||||
msgstr "TÜMÜ"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:222
|
||||
#: libmalcontent-ui/gs-content-rating.c:485
|
||||
msgid "Adults Only"
|
||||
msgstr ""
|
||||
msgstr "Yalnızca Yetişkinler"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:224
|
||||
#: libmalcontent-ui/gs-content-rating.c:484
|
||||
msgid "Mature"
|
||||
msgstr ""
|
||||
msgstr "Yetişkin"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:226
|
||||
#: libmalcontent-ui/gs-content-rating.c:483
|
||||
msgid "Teen"
|
||||
msgstr ""
|
||||
msgstr "Genç"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:228
|
||||
#: libmalcontent-ui/gs-content-rating.c:482
|
||||
msgid "Everyone 10+"
|
||||
msgstr ""
|
||||
msgstr "10 Yaş Üstü Herkes"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:230
|
||||
#: libmalcontent-ui/gs-content-rating.c:481
|
||||
msgid "Everyone"
|
||||
msgstr ""
|
||||
msgstr "Herkes"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:232
|
||||
#: libmalcontent-ui/gs-content-rating.c:480
|
||||
msgid "Early Childhood"
|
||||
msgstr ""
|
||||
msgstr "Erken Çocukluk"
|
||||
|
||||
#. Translators: the placeholder is a user’s full name
|
||||
#: libmalcontent-ui/restrict-applications-dialog.c:222
|
||||
#, c-format
|
||||
msgid "Restrict %s from using the following installed applications."
|
||||
msgstr ""
|
||||
msgstr "%s kullanıcısının aşağıdaki kurulu uygulamaları kullanmasını kısıtla."
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:6
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:12
|
||||
msgid "Restrict Applications"
|
||||
msgstr ""
|
||||
msgstr "Uygulamaları Kısıtla"
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-selector.ui:24
|
||||
msgid "No applications found to restrict."
|
||||
msgstr ""
|
||||
msgstr "Kısıtlanacak uygulama bulunamadı."
|
||||
|
||||
#. Translators: this is the full name for an unknown user account.
|
||||
#: libmalcontent-ui/user-controls.c:242 libmalcontent-ui/user-controls.c:253
|
||||
#: libmalcontent-ui/user-controls.c:207 libmalcontent-ui/user-controls.c:218
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
msgstr "bilinmeyen"
|
||||
|
||||
#: libmalcontent-ui/user-controls.c:338 libmalcontent-ui/user-controls.c:425
|
||||
#: libmalcontent-ui/user-controls.c:711
|
||||
#: libmalcontent-ui/user-controls.c:312 libmalcontent-ui/user-controls.c:397
|
||||
#: libmalcontent-ui/user-controls.c:669
|
||||
msgid "All Ages"
|
||||
msgstr ""
|
||||
msgstr "Tüm Yaşlar"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:514
|
||||
#: libmalcontent-ui/user-controls.c:477
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Prevents %s from running web browsers. Limited web content may still be "
|
||||
"available in other applications."
|
||||
msgstr ""
|
||||
"%s kullanıcısının web tarayıcılarını çalıştırmasını engeller. Yine de "
|
||||
"sınırlı web içeriği diğer uygulamalarda da bulunabilir."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:519
|
||||
#: libmalcontent-ui/user-controls.c:482
|
||||
#, c-format
|
||||
msgid "Prevents specified applications from being used by %s."
|
||||
msgstr ""
|
||||
msgstr "Belirtilen uygulamaların %s tarafından kullanılmasını engeller."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:524
|
||||
#: libmalcontent-ui/user-controls.c:487
|
||||
#, c-format
|
||||
msgid "Prevents %s from installing applications."
|
||||
msgstr ""
|
||||
msgstr "%s kullanıcısının uygulama kurmasını engeller."
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:529
|
||||
#, c-format
|
||||
msgid "Applications installed by %s will not appear for other users."
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:17
|
||||
#: libmalcontent-ui/user-controls.ui:16
|
||||
msgid "Application Usage Restrictions"
|
||||
msgstr ""
|
||||
msgstr "Uygulama Kullanım Kısıtlamaları"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:68
|
||||
msgid "Restrict _Web Browsers"
|
||||
msgstr ""
|
||||
msgstr "_Web Tarayıcılarını Kısıtla"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:152
|
||||
msgid "_Restrict Applications"
|
||||
msgstr ""
|
||||
msgstr "Uygulamaları _Kısıtla"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:231
|
||||
msgid "Software Installation Restrictions"
|
||||
msgstr ""
|
||||
msgstr "Yazılım Kurulumu Kısıtlamaları"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:281
|
||||
#: libmalcontent-ui/user-controls.ui:282
|
||||
msgid "Restrict Application _Installation"
|
||||
msgstr ""
|
||||
msgstr "Uygulama _Kurulumunu Kısıtla"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:366
|
||||
msgid "Restrict Application Installation for _Others"
|
||||
msgstr ""
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:451
|
||||
#: libmalcontent-ui/user-controls.ui:367
|
||||
msgid "Application _Suitability"
|
||||
msgstr ""
|
||||
msgstr "Uygulama _Uygunluğu"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:473
|
||||
# Biraz serbest çeviri oldu.
|
||||
#: libmalcontent-ui/user-controls.ui:389
|
||||
msgid ""
|
||||
"Restricts browsing or installation of applications to applications suitable "
|
||||
"for certain ages or above."
|
||||
msgstr ""
|
||||
"Gezinmeyi veya uygulamaların kurulmasını belirli yaşa veya üstüne elverişli "
|
||||
"uygulamalarla kısıtla."
|
||||
|
||||
#. Translators: This documents the --user command line option to malcontent-control:
|
||||
#: malcontent-control/application.c:102
|
||||
msgid "User to select in the UI"
|
||||
msgstr "Kullanıcı arayüzünde seçilecek kullanıcı"
|
||||
|
||||
#. Translators: This is a placeholder for a command line argument value:
|
||||
#: malcontent-control/application.c:104
|
||||
msgid "USERNAME"
|
||||
msgstr "KULLANICIADI"
|
||||
|
||||
#: malcontent-control/application.c:116
|
||||
msgid "— view and edit parental controls"
|
||||
msgstr "— ebeveyn denetimlerini görüntüle ve düzenle"
|
||||
|
||||
#. Translators: This is the title of the main window
|
||||
#. Translators: the name of the application as it appears in a software center
|
||||
#: malcontent-control/application.c:105 malcontent-control/main.ui:12
|
||||
#: malcontent-control/application.c:123 malcontent-control/main.ui:12
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:9
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:3
|
||||
msgid "Parental Controls"
|
||||
msgstr ""
|
||||
msgstr "Ebeveyn Denetimleri"
|
||||
|
||||
#: malcontent-control/application.c:270
|
||||
#: malcontent-control/application.c:309
|
||||
msgid "Copyright © 2019, 2020 Endless Mobile, Inc."
|
||||
msgstr ""
|
||||
msgstr "Telif Hakkı © 2019, 2020 Endless Mobile, Inc."
|
||||
|
||||
#. Translators: this should be "translated" to the
|
||||
#. names of people who have translated Malcontent into
|
||||
#. this language, one per line.
|
||||
#: malcontent-control/application.c:275
|
||||
#: malcontent-control/application.c:314
|
||||
msgid "translator-credits"
|
||||
msgstr ""
|
||||
"Sabri Ünal <libreajans@gmail.com>\n"
|
||||
"Emin Tufan Çetin <etcetin@gmail.com>"
|
||||
|
||||
#. Translators: "Malcontent" is the brand name of this
|
||||
#. project, so should not be translated.
|
||||
#: malcontent-control/application.c:281
|
||||
#: malcontent-control/application.c:320
|
||||
msgid "Malcontent Website"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/application.c:299
|
||||
msgid "The help contents could not be displayed"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/application.c:336
|
||||
msgid "Failed to load user data from the system"
|
||||
msgstr ""
|
||||
msgstr "Malcontent Web Sitesi"
|
||||
|
||||
#: malcontent-control/application.c:338
|
||||
msgid "The help contents could not be displayed"
|
||||
msgstr "Yardım içeriği gösterilemiyor"
|
||||
|
||||
#: malcontent-control/application.c:375
|
||||
msgid "Failed to load user data from the system"
|
||||
msgstr "Sistemden kullanıcı verisi yüklenemedi"
|
||||
|
||||
#: malcontent-control/application.c:377
|
||||
msgid "Please make sure that the AccountsService is installed and enabled."
|
||||
msgstr "AccountsService’in kurulu ve etkinleştirildiğinden emin olun."
|
||||
|
||||
#. Translators: Replace the link to commonsensemedia.org with some
|
||||
#. * localised guidance for parents/carers on how to set restrictions on
|
||||
#. * their child/caree in a responsible way which is in keeping with the
|
||||
#. * best practice and culture of the region. If no suitable localised
|
||||
#. * guidance exists, and if the default commonsensemedia.org link is not
|
||||
#. * suitable, please file an issue against malcontent so we can discuss
|
||||
#. * further!
|
||||
#. * https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/new
|
||||
#.
|
||||
#: malcontent-control/application.c:408
|
||||
#, c-format
|
||||
msgid ""
|
||||
"It’s recommended that restrictions are set as part of an ongoing "
|
||||
"conversation with %s. <a href='https://www.commonsensemedia.org/privacy-and-"
|
||||
"internet-safety'>Read guidance</a> on what to consider."
|
||||
msgstr ""
|
||||
"Kısıtlamaların, %s ile süren konuşmanın parçası olarak belirlenmesi "
|
||||
"önerilir. Nelere özenilmesi gerektiğine ilişkin <a href='https://www."
|
||||
"guvenliweb.org.tr/e_kilavuz'>kılavuzu okuyun</a>."
|
||||
|
||||
#: malcontent-control/carousel.ui:48
|
||||
msgid "Previous Page"
|
||||
msgstr ""
|
||||
msgstr "Önceki Sayfa"
|
||||
|
||||
#: malcontent-control/carousel.ui:74
|
||||
msgid "Next Page"
|
||||
msgstr ""
|
||||
msgstr "Sonraki Sayfa"
|
||||
|
||||
#: malcontent-control/main.ui:93
|
||||
#: malcontent-control/main.ui:115
|
||||
msgid "Permission Required"
|
||||
msgstr ""
|
||||
msgstr "İzin Gerekli"
|
||||
|
||||
#: malcontent-control/main.ui:107
|
||||
#: malcontent-control/main.ui:129
|
||||
msgid ""
|
||||
"Permission is required to view and change user parental controls settings."
|
||||
msgstr ""
|
||||
"Kullanıcı ebeveyn denetimleri ayarlarını görüntülemek ve değiştirmek için "
|
||||
"izin gereklidir."
|
||||
|
||||
#: malcontent-control/main.ui:148
|
||||
msgid "No Child Users Configured"
|
||||
msgstr ""
|
||||
#: malcontent-control/main.ui:184
|
||||
msgid "No Standard User Accounts"
|
||||
msgstr "Standart Kullanıcı Hesabı Yok"
|
||||
|
||||
#: malcontent-control/main.ui:162
|
||||
#: malcontent-control/main.ui:199
|
||||
msgid ""
|
||||
"No child users are currently set up on the system. Create one before setting "
|
||||
"up their parental controls."
|
||||
"Parental controls can only be applied to standard user\n"
|
||||
"accounts. These can be created in the user settings."
|
||||
msgstr ""
|
||||
"Ebeveyn denetimleri yalnızca standart kullanıcı hesaplarına uygulanabilir. \n"
|
||||
"Bunlar kullanıcı ayarlarından oluşturulabilir."
|
||||
|
||||
#: malcontent-control/main.ui:174
|
||||
msgid "Create _Child User"
|
||||
msgstr ""
|
||||
#: malcontent-control/main.ui:212
|
||||
msgid "_User Settings"
|
||||
msgstr "_Kullanıcı Ayarları"
|
||||
|
||||
#: malcontent-control/main.ui:202
|
||||
#: malcontent-control/main.ui:242
|
||||
msgid "Loading…"
|
||||
msgstr ""
|
||||
msgstr "Yükleniyor…"
|
||||
|
||||
#: malcontent-control/main.ui:265
|
||||
#: malcontent-control/main.ui:305
|
||||
msgid "_Help"
|
||||
msgstr "_Yardım"
|
||||
|
||||
#: malcontent-control/main.ui:269
|
||||
#: malcontent-control/main.ui:309
|
||||
msgid "_About Parental Controls"
|
||||
msgstr ""
|
||||
msgstr "Ebeveyn Denetimleri _Hakkında"
|
||||
|
||||
#. Translators: the brief summary of the application as it appears in a software center.
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:12
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:4
|
||||
msgid "Set parental controls and monitor usage by users"
|
||||
msgstr ""
|
||||
msgstr "Ebeveyn denetimlerini ayarlayın ve kullanıcılarla kullanımı izleyin"
|
||||
|
||||
#. Translators: These are the application description paragraphs in the AppData file.
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:16
|
||||
|
@ -384,67 +432,40 @@ msgid ""
|
|||
"use the computer for, what software they can install, and what installed "
|
||||
"software they can run."
|
||||
msgstr ""
|
||||
"Kullanıcıların ebeveyn denetimi kısıtlamalarını yönetin, bilgisayarı ne çok "
|
||||
"süre kullanabileceklerini, hangi yazılımları kurabileceklerini ve hangi "
|
||||
"kurulu yazılımları çalıştırabileceklerini denetleyin."
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
|
||||
msgid "Main window"
|
||||
msgstr "Ana pencere"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
|
||||
msgid "The GNOME Project"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:50
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:59
|
||||
msgid "Minor improvements to parental controls application UI"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:51
|
||||
msgid "Add a user manual"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:52
|
||||
msgid "Translation updates"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:60
|
||||
msgid "Translations to Ukrainian and Polish"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:67
|
||||
msgid "Improve parental controls application UI and add icon"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:68
|
||||
msgid "Support for indicating which accounts are parent accounts"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:75
|
||||
msgid "Initial release of basic parental controls application"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:76
|
||||
msgid "Support for setting app installation and run restrictions on users"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:83
|
||||
msgid "Maintenance release of underlying parental controls library"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:7
|
||||
msgid "org.freedesktop.MalcontentControl"
|
||||
msgstr ""
|
||||
msgstr "GNOME Projesi"
|
||||
|
||||
#. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon!
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:13
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:14
|
||||
msgid ""
|
||||
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
|
||||
"usage;usage limit;kid;child;"
|
||||
msgstr ""
|
||||
"ebeveyn denetimleri;ebeveyn denetimi;aile denetimleri;aile denetimi;ebeveyn "
|
||||
"kontrolleri;ebeveyn kontrolü;aile kontrolü;ekran zamanı;uygulama "
|
||||
"kısıtlamaları;uygulama sınırlamaları;yazılım kısıtlamaları;yazılım "
|
||||
"sınırlamaları;web tarayıcı kısıtlamaları;web tarayıcı sınırlamaları;internet "
|
||||
"tarayıcı kısıtlamaları;internet tarayıcı sınırlamaları;oars;kullanım;"
|
||||
"kullanım sınırı;kullanım kısıtı;çocuk;evlat;"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:9
|
||||
msgid "Manage parental controls"
|
||||
msgstr ""
|
||||
msgstr "Ebeveyn denetimlerini yönet"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:10
|
||||
msgid "Authentication is required to read and change user parental controls"
|
||||
msgstr ""
|
||||
"Kullanıcı ebeveyn denetimlerini okumak ve değiştirmek için kimlik "
|
||||
"doğrulaması gereklidir"
|
||||
|
||||
#: malcontent-control/user-selector.c:426
|
||||
msgid "Your account"
|
||||
|
@ -455,314 +476,19 @@ msgstr "Hesabınız"
|
|||
#: pam/pam_malcontent.c:142 pam/pam_malcontent.c:188
|
||||
#, c-format
|
||||
msgid "User ‘%s’ has no time limits enabled"
|
||||
msgstr ""
|
||||
msgstr "‘%s’ kullanıcısının etkin zaman sınırı yok"
|
||||
|
||||
#: pam/pam_malcontent.c:151 pam/pam_malcontent.c:172
|
||||
#, c-format
|
||||
msgid "Error getting session limits for user ‘%s’: %s"
|
||||
msgstr ""
|
||||
msgstr "‘%s’ kullanıcısı için oturum sınırları alınırken hata oluştu: %s"
|
||||
|
||||
#: pam/pam_malcontent.c:182
|
||||
#, c-format
|
||||
msgid "User ‘%s’ has no time remaining"
|
||||
msgstr ""
|
||||
msgstr "‘%s’ kullanıcısının hiç zamanı kalmadı"
|
||||
|
||||
#: pam/pam_malcontent.c:200
|
||||
#, c-format
|
||||
msgid "Error setting time limit on login session: %s"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "No cartoon violence"
|
||||
#~ msgstr "Çizgi dizisi şiddeti yok"
|
||||
|
||||
#~ msgid "Cartoon characters in unsafe situations"
|
||||
#~ msgstr "Çizgi karakterler güvensiz durumlarda"
|
||||
|
||||
#~ msgid "Cartoon characters in aggressive conflict"
|
||||
#~ msgstr "Çizgi karakterler saldırgan çatışma halinde"
|
||||
|
||||
#~ msgid "Graphic violence involving cartoon characters"
|
||||
#~ msgstr "Çizgi karakterlerin dahil olduğu görsel şiddet"
|
||||
|
||||
#~ msgid "No fantasy violence"
|
||||
#~ msgstr "Fantezi şiddeti yok"
|
||||
|
||||
#~ msgid "Characters in unsafe situations easily distinguishable from reality"
|
||||
#~ msgstr ""
|
||||
#~ "Güvensiz durumlardaki karakterler gerçeklikten kolayca ayırt edilebilir"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Characters in aggressive conflict easily distinguishable from reality"
|
||||
#~ msgstr ""
|
||||
#~ "Agresif çatışma içindeki karakterler gerçeklikten kolayca ayırt edilebilir"
|
||||
|
||||
#~ msgid "Graphic violence easily distinguishable from reality"
|
||||
#~ msgstr "Gerçeklikten kolayca ayırt edilebilen canlı şiddet"
|
||||
|
||||
#~ msgid "No realistic violence"
|
||||
#~ msgstr "Gerçekçi şiddet yok"
|
||||
|
||||
#~ msgid "Mildly realistic characters in unsafe situations"
|
||||
#~ msgstr "Hafif gerçekçi karakterler güvenli olmayan durumlarda"
|
||||
|
||||
#~ msgid "Depictions of realistic characters in aggressive conflict"
|
||||
#~ msgstr "Agresif çatışma içindeki gerçekçi karakterlerin betimlemesi"
|
||||
|
||||
#~ msgid "Graphic violence involving realistic characters"
|
||||
#~ msgstr "Gerçekçi karakterleri ilgilendiren canlı şiddet"
|
||||
|
||||
#~ msgid "No bloodshed"
|
||||
#~ msgstr "Kan dökme yok"
|
||||
|
||||
#~ msgid "Unrealistic bloodshed"
|
||||
#~ msgstr "Gerçekçi olmayan kan dökme"
|
||||
|
||||
#~ msgid "Realistic bloodshed"
|
||||
#~ msgstr "Gerçekçi kan dökme"
|
||||
|
||||
#~ msgid "Depictions of bloodshed and the mutilation of body parts"
|
||||
#~ msgstr "Kan dökme betimlemeleri ve vücut parçalarının sakatlanması"
|
||||
|
||||
#~ msgid "No sexual violence"
|
||||
#~ msgstr "Cinsel şiddet yok"
|
||||
|
||||
#~ msgid "Rape or other violent sexual behavior"
|
||||
#~ msgstr "Tecavüz veya diğer şiddetli cinsel davranış"
|
||||
|
||||
#~ msgid "No references to alcohol"
|
||||
#~ msgstr "Alkole atıf yok"
|
||||
|
||||
#~ msgid "References to alcoholic beverages"
|
||||
#~ msgstr "Alkollü içeceklere atıflar"
|
||||
|
||||
#~ msgid "Use of alcoholic beverages"
|
||||
#~ msgstr "Alkollü içeceklerin kullanımı"
|
||||
|
||||
#~ msgid "No references to illicit drugs"
|
||||
#~ msgstr "Yasadışı ilaçlara atıf yok"
|
||||
|
||||
#~ msgid "References to illicit drugs"
|
||||
#~ msgstr "Yasadışı ilaçlara atıflar"
|
||||
|
||||
#~ msgid "Use of illicit drugs"
|
||||
#~ msgstr "Yasadışı ilaçların kullanımı"
|
||||
|
||||
#~ msgid "References to tobacco products"
|
||||
#~ msgstr "Tütün ürünlerine atıflar"
|
||||
|
||||
#~ msgid "Use of tobacco products"
|
||||
#~ msgstr "Tütün ürünlerinin kullanımı"
|
||||
|
||||
#~ msgid "No nudity of any sort"
|
||||
#~ msgstr "Herhangi biçimde çıplaklık yok"
|
||||
|
||||
#~ msgid "Brief artistic nudity"
|
||||
#~ msgstr "Kısa sanatsal çıplaklık"
|
||||
|
||||
#~ msgid "Prolonged nudity"
|
||||
#~ msgstr "Uzun çıplaklık"
|
||||
|
||||
#~ msgid "No references or depictions of sexual nature"
|
||||
#~ msgstr "Cinsel doğa atfı veya tasviri yok"
|
||||
|
||||
#~ msgid "Provocative references or depictions"
|
||||
#~ msgstr "Kışkırtıcı atıflar veya betimlemeler"
|
||||
|
||||
#~ msgid "Sexual references or depictions"
|
||||
#~ msgstr "Cinsel atıflar veya betimlemeler"
|
||||
|
||||
#~ msgid "Graphic sexual behavior"
|
||||
#~ msgstr "Canlı cinsel davranış"
|
||||
|
||||
#~ msgid "No profanity of any kind"
|
||||
#~ msgstr "Herhangi biçimde küfür yok"
|
||||
|
||||
#~ msgid "Mild or infrequent use of profanity"
|
||||
#~ msgstr "Hafif veya sık olmayan küfür kullanımı"
|
||||
|
||||
#~ msgid "Moderate use of profanity"
|
||||
#~ msgstr "Orta kullanımlı küfür"
|
||||
|
||||
#~ msgid "Strong or frequent use of profanity"
|
||||
#~ msgstr "Şiddetli veya sık küfür kullanımı"
|
||||
|
||||
#~ msgid "No inappropriate humor"
|
||||
#~ msgstr "Uygunsuz mizah yok"
|
||||
|
||||
#~ msgid "Slapstick humor"
|
||||
#~ msgstr "Kaba mizah"
|
||||
|
||||
#~ msgid "Vulgar or bathroom humor"
|
||||
#~ msgstr "Kaba veya banyo mizahı"
|
||||
|
||||
#~ msgid "Mature or sexual humor"
|
||||
#~ msgstr "Olgun veya cinsel mizah"
|
||||
|
||||
#~ msgid "No discriminatory language of any kind"
|
||||
#~ msgstr "Herhangi biçimde ayrımcı dil yok"
|
||||
|
||||
#~ msgid "Negativity towards a specific group of people"
|
||||
#~ msgstr "Belirli bir insan kümesine karşı olumsuzluk"
|
||||
|
||||
#~ msgid "Discrimination designed to cause emotional harm"
|
||||
#~ msgstr "Duygusal zarara neden olmaya tasarlanmış ayrımcılık"
|
||||
|
||||
#~ msgid "Explicit discrimination based on gender, sexuality, race or religion"
|
||||
#~ msgstr "Cinsiyet, cinsellik, ırk veya din tabanlı açık ayrımcılık"
|
||||
|
||||
#~ msgid "No advertising of any kind"
|
||||
#~ msgstr "Herhangi biçimde reklam yok"
|
||||
|
||||
#~ msgid "Product placement"
|
||||
#~ msgstr "Ürün yerleştirme"
|
||||
|
||||
#~ msgid "Explicit references to specific brands or trademarked products"
|
||||
#~ msgstr "Belirli markalara veya ticari markalı ürünlere açık atıflar"
|
||||
|
||||
#~ msgid "Users are encouraged to purchase specific real-world items"
|
||||
#~ msgstr ""
|
||||
#~ "Kullanıcılar belirli gerçek dünya ögelerini satın almaya özendirilir"
|
||||
|
||||
#~ msgid "No gambling of any kind"
|
||||
#~ msgstr "Herhangi biçimde kumar yok"
|
||||
|
||||
#~ msgid "Gambling on random events using tokens or credits"
|
||||
#~ msgstr ""
|
||||
#~ "Belirteç veya kontör kullanarak rastlantısal etkinlikler üzerinde kumar"
|
||||
|
||||
#~ msgid "Gambling using “play” money"
|
||||
#~ msgstr "“Oyun” parası kullanarak kumar"
|
||||
|
||||
#~ msgid "Gambling using real money"
|
||||
#~ msgstr "Gerçek para kullanarak kumar"
|
||||
|
||||
#~ msgid "No ability to spend money"
|
||||
#~ msgstr "Para harcama yeteneği yok"
|
||||
|
||||
#~ msgid "Users are encouraged to donate real money"
|
||||
#~ msgstr "Kullanıcılar gerçek para bağışlamaya özendirilir"
|
||||
|
||||
#~ msgid "Ability to spend real money in-game"
|
||||
#~ msgstr "Oyun içinde gerçek para harcanabilmesi"
|
||||
|
||||
#~ msgid "No way to chat with other users"
|
||||
#~ msgstr "Diğer kullanıcılarla sohbet etme yolu yok"
|
||||
|
||||
#~ msgid "Moderated chat functionality between users"
|
||||
#~ msgstr "Kullanıcılar arasında denetlenen konuşma işlevi"
|
||||
|
||||
#~ msgid "Uncontrolled chat functionality between users"
|
||||
#~ msgstr "Kullanıcılar arasında denetlenmeyen konuşma işlevi"
|
||||
|
||||
#~ msgid "No way to talk with other users"
|
||||
#~ msgstr "Diğer kullanıcılarla konuşma yolu yok"
|
||||
|
||||
#~ msgid "Uncontrolled audio or video chat functionality between users"
|
||||
#~ msgstr ""
|
||||
#~ "Kullanıcılar arasında denetlenmeyen sesli veya görüntülü konuşma işlevi"
|
||||
|
||||
#~ msgid "No sharing of social network usernames or email addresses"
|
||||
#~ msgstr ""
|
||||
#~ "Sosyal ağ kullanıcı adlarının veya e-posta adreslerinin paylaşımı yok"
|
||||
|
||||
#~ msgid "Sharing social network usernames or email addresses"
|
||||
#~ msgstr "Sosyal ağ kullanıcı adlarını veya e-posta adreslerini paylaşır"
|
||||
|
||||
#~ msgid "No sharing of user information with 3rd parties"
|
||||
#~ msgstr "Kullanıcı bilgisini 3. şahıslarla paylaşmıyor"
|
||||
|
||||
#~ msgid "Checking for the latest application version"
|
||||
#~ msgstr "En son uygulama sürümünün denetlenmesi"
|
||||
|
||||
#~ msgid "Sharing diagnostic data that does not let others identify the user"
|
||||
#~ msgstr ""
|
||||
#~ "Başkalarının kullanıcıyı tanımasını sağlamayacak tanılama verisinin "
|
||||
#~ "paylaşılması"
|
||||
|
||||
#~ msgid "Sharing information that lets others identify the user"
|
||||
#~ msgstr ""
|
||||
#~ "Başkalarının kullanıcıyı tanımasını sağlayacak bilgilerin paylaşılması"
|
||||
|
||||
#~ msgid "No sharing of physical location to other users"
|
||||
#~ msgstr "Fiziksel konumun diğer kullanıcılara paylaşımı yok"
|
||||
|
||||
#~ msgid "Sharing physical location to other users"
|
||||
#~ msgstr "Diğer kullanıcılara fiziksel konumu paylaşır"
|
||||
|
||||
#~ msgid "No references to homosexuality"
|
||||
#~ msgstr "Eş cinselliğe atıf yok"
|
||||
|
||||
#~ msgid "Indirect references to homosexuality"
|
||||
#~ msgstr "Eş cinselliğe doğrudan olmayan atıflar"
|
||||
|
||||
#~ msgid "Kissing between people of the same gender"
|
||||
#~ msgstr "Benzer cinsiyetteki insanlar arasında öpüşme"
|
||||
|
||||
#~ msgid "Graphic sexual behavior between people of the same gender"
|
||||
#~ msgstr "Benzer cinsiyetteki insanların arasında görsel cinsî davranış"
|
||||
|
||||
#~ msgid "No references to prostitution"
|
||||
#~ msgstr "Fuhşa atıf yok"
|
||||
|
||||
#~ msgid "Indirect references to prostitution"
|
||||
#~ msgstr "Fuhşa doğrudan olmayan atıflar"
|
||||
|
||||
#~ msgid "Direct references to prostitution"
|
||||
#~ msgstr "Fuhuşa doğrudan atıflar"
|
||||
|
||||
#~ msgid "Graphic depictions of the act of prostitution"
|
||||
#~ msgstr "Fuhuş eyleminin görsel betimlemeleri"
|
||||
|
||||
#~ msgid "No references to adultery"
|
||||
#~ msgstr "Eş aldatmaya atıf yok"
|
||||
|
||||
#~ msgid "Indirect references to adultery"
|
||||
#~ msgstr "Eş aldatmaya doğrudan olmayan atıflar"
|
||||
|
||||
#~ msgid "Direct references to adultery"
|
||||
#~ msgstr "Eş aldatmaya doğrudan atıflar"
|
||||
|
||||
#~ msgid "Graphic depictions of the act of adultery"
|
||||
#~ msgstr "Eş aldatma eyleminin görsel betimlemeleri"
|
||||
|
||||
#~ msgid "No sexualized characters"
|
||||
#~ msgstr "Cinselleştirilmiş karakterler yok"
|
||||
|
||||
#~ msgid "Scantily clad human characters"
|
||||
#~ msgstr "Yetersizce giyinmiş insan karakterleri"
|
||||
|
||||
#~ msgid "Overtly sexualized human characters"
|
||||
#~ msgstr "Açıkça cinselleştirilmiş insan karakterleri"
|
||||
|
||||
#~ msgid "No references to desecration"
|
||||
#~ msgstr "Kutsala saygısızlığa atıf yok"
|
||||
|
||||
#~ msgid "Depictions of modern-day human desecration"
|
||||
#~ msgstr "Çağdaş zaman insan saygısızlığının betimlemeleri"
|
||||
|
||||
#~ msgid "Graphic depictions of modern-day desecration"
|
||||
#~ msgstr "Çağdaş zaman saygısızlığının görsel betimlemeleri"
|
||||
|
||||
#~ msgid "No visible dead human remains"
|
||||
#~ msgstr "Görününür ölü insan kalıntıları yok"
|
||||
|
||||
#~ msgid "Visible dead human remains"
|
||||
#~ msgstr "Görününür ölü insan kalıntıları"
|
||||
|
||||
#~ msgid "Dead human remains that are exposed to the elements"
|
||||
#~ msgstr "Parçalarına ayrılmış ölü insan kalıntıları"
|
||||
|
||||
#~ msgid "Graphic depictions of desecration of human bodies"
|
||||
#~ msgstr "İnsan bedenlerine saygısızlığın görsel betimlemeleri"
|
||||
|
||||
#~ msgid "No references to slavery"
|
||||
#~ msgstr "Köleliğe atıf yok"
|
||||
|
||||
#~ msgid "Depictions or references to historical slavery"
|
||||
#~ msgstr "Tarihsel köleliğe ait betimlemeler veya atıflar"
|
||||
|
||||
#~ msgid "Depictions of modern-day slavery"
|
||||
#~ msgstr "Çağdaş zaman köleliğinin betimlemeleri"
|
||||
|
||||
#~ msgid "Graphic depictions of modern-day slavery"
|
||||
#~ msgstr "Çağdaş zaman köleliğinin görsel betimlemeleri"
|
||||
msgstr "Oturum açma oturum zaman sınırı ayarlanırken hata oluştu: %s"
|
||||
|
|
369
po/zh_TW.po
369
po/zh_TW.po
|
@ -9,216 +9,219 @@
|
|||
# S.J. Luo <crystal@mickey.ee.nctu.edu.tw>, 1999
|
||||
# Wei-Lun Chao <chaoweilun@gmail.com>, 2010
|
||||
# Will Thompson <wjt@endlessm.com>, 2019, 2020
|
||||
# Freddy Cheng <freddy4212@gmail.com>, 2022.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: malcontent\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-06-10 12:08+0100\n"
|
||||
"PO-Revision-Date: 2020-04-17 21:58+0000\n"
|
||||
"Last-Translator: Will Thompson <wjt@endlessm.com>, 2020\n"
|
||||
"Language-Team: Chinese (Taiwan) (https://www.transifex.com/endless-os/"
|
||||
"teams/9016/zh_TW/)\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2022-05-05 03:26+0000\n"
|
||||
"PO-Revision-Date: 2022-05-31 01:43+0800\n"
|
||||
"Last-Translator: Freddy Cheng <freddy4212@gmail.com>\n"
|
||||
"Language-Team: Chinese - Taiwan <chinese-l10n@googlegroups.com>\n"
|
||||
"Language: zh_TW\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"Plural-Forms: nplurals=1; plural=0\n"
|
||||
"X-Generator: Gtranslator 41.0\n"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
|
||||
msgid "Change your own app filter"
|
||||
msgstr "變更您自己的應用程式篩選條件"
|
||||
msgstr "更改您的應用程式過濾器"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:5
|
||||
msgid "Authentication is required to change your app filter."
|
||||
msgstr "需要驗證才能變更您的應用程式篩選條件。"
|
||||
msgstr "需要認證才能更改您的應用程式過濾器。"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:14
|
||||
msgid "Read your own app filter"
|
||||
msgstr "讀取您自己的應用程式篩選條件"
|
||||
msgstr "讀取您的應用程式過濾器"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:15
|
||||
msgid "Authentication is required to read your app filter."
|
||||
msgstr "需要驗證才能讀取您的應用程式篩選條件。"
|
||||
msgstr "需要認證才能讀取您的應用程式過濾器。"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:24
|
||||
msgid "Change another user’s app filter"
|
||||
msgstr "變更另一使用者的應用程式篩選條件"
|
||||
msgstr "更改另一位使用者的應用程式過濾器"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
|
||||
msgid "Authentication is required to change another user’s app filter."
|
||||
msgstr "需要驗證才能變更另一使用者的應用程式篩選條件。"
|
||||
msgstr "需要認證才能更改另一位使用者的應用程式過濾器。"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
|
||||
msgid "Read another user’s app filter"
|
||||
msgstr "讀取另一使用者的應用程式篩選條件"
|
||||
msgstr "讀取另一位使用者的應用程式過濾器"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
|
||||
msgid "Authentication is required to read another user’s app filter."
|
||||
msgstr "需要驗證才能讀取另一使用者的應用程式篩選條件。"
|
||||
msgstr "需要認證才能讀取另一位使用者的應用程式過濾器。"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:44
|
||||
msgid "Change your own session limits"
|
||||
msgstr "變更您自己的工作階段限制"
|
||||
msgstr "更改您的工作階段限制"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:45
|
||||
msgid "Authentication is required to change your session limits."
|
||||
msgstr "需要驗證才能變更您的工作階段限制。"
|
||||
msgstr "需要認證才能更改您的工作階段限制。"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:54
|
||||
msgid "Read your own session limits"
|
||||
msgstr "讀取您自己的工作階段限制"
|
||||
msgstr "讀取您的工作階段限制"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:55
|
||||
msgid "Authentication is required to read your session limits."
|
||||
msgstr "需要驗證才能讀取您的工作階段限制。"
|
||||
msgstr "需要認證才能讀取您的工作階段限制。"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:64
|
||||
msgid "Change another user’s session limits"
|
||||
msgstr "變更另一使用者的工作階段限制"
|
||||
msgstr "更改另一位使用者的工作階段限制"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
|
||||
msgid "Authentication is required to change another user’s session limits."
|
||||
msgstr "需要驗證才能變更另一使用者的工作階段限制。"
|
||||
msgstr "需要驗證才能更改另一位使用者的工作階段限制。"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
|
||||
msgid "Read another user’s session limits"
|
||||
msgstr "讀取另一使用者的工作階段限制"
|
||||
msgstr "讀取另一位使用者的工作階段限制"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
|
||||
msgid "Authentication is required to read another user’s session limits."
|
||||
msgstr "需要驗證才能讀取另一使用者的工作階段限制。"
|
||||
msgstr "需要認證才能讀取另一位使用者的工作階段限制。"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:84
|
||||
msgid "Change your own account info"
|
||||
msgstr "變更您自己的帳戶資訊"
|
||||
msgstr "更改您的帳戶資訊"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:85
|
||||
msgid "Authentication is required to change your account info."
|
||||
msgstr "需要驗證才能變更您的帳戶資訊。"
|
||||
msgstr "需要認證才能更改您的帳戶資訊。"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:94
|
||||
msgid "Read your own account info"
|
||||
msgstr "讀取您自己的帳戶資訊"
|
||||
msgstr "讀取您的帳戶資訊"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:95
|
||||
msgid "Authentication is required to read your account info."
|
||||
msgstr "需要驗證才能讀取您的帳戶資訊。"
|
||||
msgstr "需要認證才能讀取您的帳戶資訊。"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:104
|
||||
msgid "Change another user’s account info"
|
||||
msgstr "變更另一使用者帳戶資訊"
|
||||
msgstr "更改另一位使用者的帳戶資訊"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
|
||||
msgid "Authentication is required to change another user’s account info."
|
||||
msgstr "需要驗證才能變更另一使用者的帳戶資訊。"
|
||||
msgstr "需要認證才能更改另一位使用者的帳戶資訊。"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
|
||||
msgid "Read another user’s account info"
|
||||
msgstr "讀取另一使用者的帳戶資訊"
|
||||
msgstr "讀取另一位使用者的帳戶資訊"
|
||||
|
||||
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
|
||||
msgid "Authentication is required to read another user’s account info."
|
||||
msgstr "需要驗證才能讀取另一使用者的帳戶資訊。"
|
||||
msgstr "需要認證才能讀取另一位使用者的帳戶資訊。"
|
||||
|
||||
#: libmalcontent/app-filter.c:694
|
||||
#, c-format
|
||||
msgid "App filter for user %u was in an unrecognized format"
|
||||
msgstr "針對使用者 %u 的應用程式篩選條件為無法辨識的格式"
|
||||
msgstr "使用者 %u 的應用程式過濾器設定格式錯誤"
|
||||
|
||||
#: libmalcontent/app-filter.c:725
|
||||
#, c-format
|
||||
msgid "OARS filter for user %u has an unrecognized kind ‘%s’"
|
||||
msgstr "針對使用者 %u 的 OARS 篩選條件有無法辨識類型 ‘%s’"
|
||||
msgstr "使用者 %u 的 OARS 過濾器設定有無效類型「%s」"
|
||||
|
||||
#: libmalcontent/manager.c:283 libmalcontent/manager.c:412
|
||||
#: libmalcontent/manager.c:283 libmalcontent/manager.c:420
|
||||
#: libmalcontent/manager.c:803
|
||||
#, c-format
|
||||
msgid "Not allowed to query app filter data for user %u"
|
||||
msgstr "不允許查詢使用者 %u 應用程式篩選條件資料"
|
||||
#| msgid "Not allowed to query app filter data for user %u"
|
||||
msgid "Not allowed to query parental controls data for user %u"
|
||||
msgstr "不允許查詢使用者 %u 的應用程式過濾器資料"
|
||||
|
||||
#: libmalcontent/manager.c:288
|
||||
#, c-format
|
||||
msgid "User %u does not exist"
|
||||
msgstr "使用者 %u 不存在"
|
||||
msgstr "使用者「%u」不存在"
|
||||
|
||||
#: libmalcontent/manager.c:394
|
||||
#: libmalcontent/manager.c:296
|
||||
msgid "System accounts service not available"
|
||||
msgstr "沒有系統帳號服務"
|
||||
|
||||
#: libmalcontent/manager.c:402
|
||||
msgid "App filtering is globally disabled"
|
||||
msgstr "已全域停用應用程式篩選條件"
|
||||
msgstr "已全域停用應用程式過濾器"
|
||||
|
||||
#: libmalcontent/manager.c:777
|
||||
#: libmalcontent/manager.c:785
|
||||
msgid "Session limits are globally disabled"
|
||||
msgstr "已全域停用工作階段限制"
|
||||
|
||||
#: libmalcontent/manager.c:795
|
||||
#, c-format
|
||||
msgid "Not allowed to query session limits data for user %u"
|
||||
msgstr "不允許查詢使用者 %u 工作階段限制"
|
||||
|
||||
#: libmalcontent/session-limits.c:306
|
||||
#, c-format
|
||||
msgid "Session limit for user %u was in an unrecognized format"
|
||||
msgstr "針對使用者 %u 的工作階段限制為無法辨識的格式"
|
||||
msgstr "使用者 %u 的工作階段限制設定格式錯誤"
|
||||
|
||||
#: libmalcontent/session-limits.c:328
|
||||
#, c-format
|
||||
msgid "Session limit for user %u has an unrecognized type ‘%u’"
|
||||
msgstr "針對使用者 %u 的工作階段限制有無法辨識的類型 ‘%u’"
|
||||
msgstr "使用者 %u 的工作階段限制設定有無效類型「%u」"
|
||||
|
||||
#: libmalcontent/session-limits.c:346
|
||||
#, c-format
|
||||
msgid "Session limit for user %u has invalid daily schedule %u–%u"
|
||||
msgstr "針對使用者 %u 的工作階段限制有無效的每日排程 %u–%u"
|
||||
msgstr "使用者 %u 的工作階段限制每日排程 %u–%u 設定無效"
|
||||
|
||||
#. TRANSLATORS: This is the formatting of English and localized name
|
||||
#. of the rating e.g. "Adults Only (solo adultos)"
|
||||
#: libmalcontent-ui/gs-content-rating.c:75
|
||||
#, c-format
|
||||
msgid "%s (%s)"
|
||||
msgstr ""
|
||||
msgstr "%s(%s)"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:209
|
||||
msgid "General"
|
||||
msgstr ""
|
||||
msgstr "一般"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:218
|
||||
msgid "ALL"
|
||||
msgstr ""
|
||||
msgstr "所有"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:222
|
||||
#: libmalcontent-ui/gs-content-rating.c:485
|
||||
msgid "Adults Only"
|
||||
msgstr ""
|
||||
msgstr "僅限成人"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:224
|
||||
#: libmalcontent-ui/gs-content-rating.c:484
|
||||
msgid "Mature"
|
||||
msgstr ""
|
||||
msgstr "成熟"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:226
|
||||
#: libmalcontent-ui/gs-content-rating.c:483
|
||||
msgid "Teen"
|
||||
msgstr ""
|
||||
msgstr "青少年"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:228
|
||||
#: libmalcontent-ui/gs-content-rating.c:482
|
||||
msgid "Everyone 10+"
|
||||
msgstr ""
|
||||
msgstr "十歲以上"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:230
|
||||
#: libmalcontent-ui/gs-content-rating.c:481
|
||||
msgid "Everyone"
|
||||
msgstr ""
|
||||
msgstr "任何人"
|
||||
|
||||
#: libmalcontent-ui/gs-content-rating.c:232
|
||||
#: libmalcontent-ui/gs-content-rating.c:480
|
||||
msgid "Early Childhood"
|
||||
msgstr ""
|
||||
msgstr "幼兒"
|
||||
|
||||
#. Translators: the placeholder is a user’s full name
|
||||
#: libmalcontent-ui/restrict-applications-dialog.c:222
|
||||
#, c-format
|
||||
msgid "Restrict %s from using the following installed applications."
|
||||
msgstr "限制 '%s' 使用以下已安裝的應用程式。"
|
||||
msgstr "限制 %s 使用下列已安裝的應用程式。"
|
||||
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:6
|
||||
#: libmalcontent-ui/restrict-applications-dialog.ui:12
|
||||
|
@ -227,116 +230,146 @@ msgstr "限制應用程式"
|
|||
|
||||
#: libmalcontent-ui/restrict-applications-selector.ui:24
|
||||
msgid "No applications found to restrict."
|
||||
msgstr "找不到可限制的應用程式。"
|
||||
msgstr "沒有可限制的應用程式。"
|
||||
|
||||
#. Translators: this is the full name for an unknown user account.
|
||||
#: libmalcontent-ui/user-controls.c:242 libmalcontent-ui/user-controls.c:253
|
||||
#: libmalcontent-ui/user-controls.c:207 libmalcontent-ui/user-controls.c:218
|
||||
msgid "unknown"
|
||||
msgstr "未知"
|
||||
msgstr "不明"
|
||||
|
||||
#: libmalcontent-ui/user-controls.c:338 libmalcontent-ui/user-controls.c:425
|
||||
#: libmalcontent-ui/user-controls.c:711
|
||||
#: libmalcontent-ui/user-controls.c:312 libmalcontent-ui/user-controls.c:397
|
||||
#: libmalcontent-ui/user-controls.c:669
|
||||
msgid "All Ages"
|
||||
msgstr "所有年齡"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:514
|
||||
#: libmalcontent-ui/user-controls.c:477
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Prevents %s from running web browsers. Limited web content may still be "
|
||||
"available in other applications."
|
||||
msgstr ""
|
||||
"防止 '%s' 執行網頁瀏覽器。受限制的網頁內容可能在其他應用程式中仍然可用。"
|
||||
msgstr "防止 %s 執行網頁瀏覽器。受限制的網頁內容仍可能在其他應用程式中取用。"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:519
|
||||
#: libmalcontent-ui/user-controls.c:482
|
||||
#, c-format
|
||||
msgid "Prevents specified applications from being used by %s."
|
||||
msgstr "防止 %s 使用特定應用程式。"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:524
|
||||
#: libmalcontent-ui/user-controls.c:487
|
||||
#, c-format
|
||||
msgid "Prevents %s from installing applications."
|
||||
msgstr "防止 %s 安裝應用程式。"
|
||||
|
||||
#. Translators: The placeholder is a user’s display name.
|
||||
#: libmalcontent-ui/user-controls.c:529
|
||||
#, c-format
|
||||
msgid "Applications installed by %s will not appear for other users."
|
||||
msgstr "由 %s 安裝的應用程式將不會讓其他使用者看到。"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:17
|
||||
#: libmalcontent-ui/user-controls.ui:16
|
||||
msgid "Application Usage Restrictions"
|
||||
msgstr "應用程式使用限制"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:68
|
||||
msgid "Restrict _Web Browsers"
|
||||
msgstr "限制_網頁瀏覽器"
|
||||
msgstr "限制網頁瀏覽器(_W)"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:152
|
||||
msgid "_Restrict Applications"
|
||||
msgstr "_限制應用程式"
|
||||
msgstr "限制應用程式(_R)"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:231
|
||||
msgid "Software Installation Restrictions"
|
||||
msgstr "軟體安裝限制"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:281
|
||||
#: libmalcontent-ui/user-controls.ui:282
|
||||
msgid "Restrict Application _Installation"
|
||||
msgstr "限制應用程式_安裝"
|
||||
msgstr "限制應用程式安裝(_I)"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:366
|
||||
msgid "Restrict Application Installation for _Others"
|
||||
msgstr " 針對其他人_限制安裝應用程式"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:451
|
||||
#: libmalcontent-ui/user-controls.ui:367
|
||||
msgid "Application _Suitability"
|
||||
msgstr "應用程式 _合適性"
|
||||
msgstr "應用程式合適年齡(_S)"
|
||||
|
||||
#: libmalcontent-ui/user-controls.ui:473
|
||||
#: libmalcontent-ui/user-controls.ui:389
|
||||
msgid ""
|
||||
"Restricts browsing or installation of applications to applications suitable "
|
||||
"for certain ages or above."
|
||||
msgstr "將瀏覽或安裝的應用程式,限制為適合特定年齡或更年長年齡的應用程式。"
|
||||
msgstr "根據應用程式年齡分級制度,限制可瀏覽或安裝的應用程式項目。"
|
||||
|
||||
#. Translators: This documents the --user command line option to malcontent-control:
|
||||
#: malcontent-control/application.c:102
|
||||
msgid "User to select in the UI"
|
||||
msgstr "界面上要選擇的使用者"
|
||||
|
||||
#. Translators: This is a placeholder for a command line argument value:
|
||||
#: malcontent-control/application.c:104
|
||||
msgid "USERNAME"
|
||||
msgstr "使用者名稱"
|
||||
|
||||
#: malcontent-control/application.c:116
|
||||
#| msgid "Manage parental controls"
|
||||
msgid "— view and edit parental controls"
|
||||
msgstr "― 檢視和編輯家長控制"
|
||||
|
||||
#. Translators: This is the title of the main window
|
||||
#. Translators: the name of the application as it appears in a software center
|
||||
#: malcontent-control/application.c:105 malcontent-control/main.ui:12
|
||||
#: malcontent-control/application.c:123 malcontent-control/main.ui:12
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:9
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:3
|
||||
msgid "Parental Controls"
|
||||
msgstr "分級控制"
|
||||
msgstr "家長控制"
|
||||
|
||||
#: malcontent-control/application.c:270
|
||||
#: malcontent-control/application.c:309
|
||||
msgid "Copyright © 2019, 2020 Endless Mobile, Inc."
|
||||
msgstr "版權所有 © 2019, 2020 Endless Mobile, Inc."
|
||||
|
||||
#. Translators: this should be "translated" to the
|
||||
#. names of people who have translated Malcontent into
|
||||
#. this language, one per line.
|
||||
#: malcontent-control/application.c:275
|
||||
#: malcontent-control/application.c:314
|
||||
msgid "translator-credits"
|
||||
msgstr ""
|
||||
"S.J. Luo <crystal@mickey.ee.nctu.edu.tw>, 1999\n"
|
||||
"Abel Cheung <abel@oaka.org>, 2001-2003, 2005\n"
|
||||
"Wei-Lun Chao <chaoweilun@gmail.com>, 2010\n"
|
||||
"Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>, 2010\n"
|
||||
"Roddy Shuler <roddy@stanfordalumni.org>, 2018\n"
|
||||
"Will Thompson <wjt@endlessm.com>, 2019, 2020\n"
|
||||
"Freddy Cheng <freddy4212@gmail.com>, 2022."
|
||||
|
||||
#. Translators: "Malcontent" is the brand name of this
|
||||
#. project, so should not be translated.
|
||||
#: malcontent-control/application.c:281
|
||||
#: malcontent-control/application.c:320
|
||||
msgid "Malcontent Website"
|
||||
msgstr "Malcontent 網站"
|
||||
|
||||
#: malcontent-control/application.c:299
|
||||
msgid "The help contents could not be displayed"
|
||||
msgstr "無法顯示說明內容"
|
||||
|
||||
#: malcontent-control/application.c:336
|
||||
msgid "Failed to load user data from the system"
|
||||
msgstr "從系統載入使用者資料失敗"
|
||||
|
||||
#: malcontent-control/application.c:338
|
||||
msgid "The help contents could not be displayed"
|
||||
msgstr "無法顯示求助內容"
|
||||
|
||||
#: malcontent-control/application.c:375
|
||||
msgid "Failed to load user data from the system"
|
||||
msgstr "無法從系統載入使用者資料"
|
||||
|
||||
#: malcontent-control/application.c:377
|
||||
msgid "Please make sure that the AccountsService is installed and enabled."
|
||||
msgstr "請確認已安裝並啟用 AccountsService。"
|
||||
|
||||
#. Translators: Replace the link to commonsensemedia.org with some
|
||||
#. * localised guidance for parents/carers on how to set restrictions on
|
||||
#. * their child/caree in a responsible way which is in keeping with the
|
||||
#. * best practice and culture of the region. If no suitable localised
|
||||
#. * guidance exists, and if the default commonsensemedia.org link is not
|
||||
#. * suitable, please file an issue against malcontent so we can discuss
|
||||
#. * further!
|
||||
#. * https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/new
|
||||
#.
|
||||
#: malcontent-control/application.c:408
|
||||
#, c-format
|
||||
msgid ""
|
||||
"It’s recommended that restrictions are set as part of an ongoing "
|
||||
"conversation with %s. <a href='https://www.commonsensemedia.org/privacy-and-"
|
||||
"internet-safety'>Read guidance</a> on what to consider."
|
||||
msgstr ""
|
||||
"建議在設定家長控制前要先與 %s 溝通過。<a href='https://parents.smartkid.org."
|
||||
"tw/'>閱讀指南</a>了解須考慮的事項。"
|
||||
|
||||
#: malcontent-control/carousel.ui:48
|
||||
msgid "Previous Page"
|
||||
msgstr "上一頁"
|
||||
|
@ -345,46 +378,48 @@ msgstr "上一頁"
|
|||
msgid "Next Page"
|
||||
msgstr "下一頁"
|
||||
|
||||
#: malcontent-control/main.ui:93
|
||||
#: malcontent-control/main.ui:115
|
||||
msgid "Permission Required"
|
||||
msgstr "需要權限"
|
||||
msgstr "需要許可"
|
||||
|
||||
#: malcontent-control/main.ui:107
|
||||
#: malcontent-control/main.ui:129
|
||||
msgid ""
|
||||
"Permission is required to view and change user parental controls settings."
|
||||
msgstr "需要權限才能檢視和變更使用者分級控制設定。"
|
||||
msgstr "需要許可才能檢視和更改家長控制設定。"
|
||||
|
||||
#: malcontent-control/main.ui:148
|
||||
msgid "No Child Users Configured"
|
||||
msgstr "沒有預設兒童使用者"
|
||||
#: malcontent-control/main.ui:184
|
||||
msgid "No Standard User Accounts"
|
||||
msgstr "沒有標準使用者"
|
||||
|
||||
#: malcontent-control/main.ui:162
|
||||
#: malcontent-control/main.ui:199
|
||||
msgid ""
|
||||
"No child users are currently set up on the system. Create one before setting "
|
||||
"up their parental controls."
|
||||
msgstr "系統目前沒有兒童使用者的設定。請在設定他們的分級控制之前先建立一個。"
|
||||
"Parental controls can only be applied to standard user\n"
|
||||
"accounts. These can be created in the user settings."
|
||||
msgstr ""
|
||||
"家長控制只能套用到標準使用者上。\n"
|
||||
"可至使用者設定建立帳號。"
|
||||
|
||||
#: malcontent-control/main.ui:174
|
||||
msgid "Create _Child User"
|
||||
msgstr "建立 _兒童使用者"
|
||||
#: malcontent-control/main.ui:212
|
||||
msgid "_User Settings"
|
||||
msgstr "使用者設定(_U)"
|
||||
|
||||
#: malcontent-control/main.ui:202
|
||||
#: malcontent-control/main.ui:242
|
||||
msgid "Loading…"
|
||||
msgstr "載入中……"
|
||||
msgstr "正在載入…"
|
||||
|
||||
#: malcontent-control/main.ui:265
|
||||
#: malcontent-control/main.ui:305
|
||||
msgid "_Help"
|
||||
msgstr "求助(_H)"
|
||||
|
||||
#: malcontent-control/main.ui:269
|
||||
#: malcontent-control/main.ui:309
|
||||
msgid "_About Parental Controls"
|
||||
msgstr "_關於分級控制"
|
||||
msgstr "關於家長控制(_A)"
|
||||
|
||||
#. Translators: the brief summary of the application as it appears in a software center.
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:12
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:4
|
||||
msgid "Set parental controls and monitor usage by users"
|
||||
msgstr "設定分級控制和監視使用者的使用情況"
|
||||
msgstr "設定家長控制和監視孩童或青少年的使用情況"
|
||||
|
||||
#. Translators: These are the application description paragraphs in the AppData file.
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:16
|
||||
|
@ -393,71 +428,34 @@ msgid ""
|
|||
"use the computer for, what software they can install, and what installed "
|
||||
"software they can run."
|
||||
msgstr ""
|
||||
"管理使用者的分級控制限制,控制他們可以使用電腦多久、可以安裝什麼軟體以及能執"
|
||||
"行哪些已安裝的軟體。"
|
||||
"管理孩童或青少年的家長控制設定值,控制他們的電腦使用時間、可以安裝的軟體以及"
|
||||
"能執行哪些已安裝的軟體。"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
|
||||
msgid "Main window"
|
||||
msgstr "主視窗"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
|
||||
msgid "The GNOME Project"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:50
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:59
|
||||
msgid "Minor improvements to parental controls application UI"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:51
|
||||
msgid "Add a user manual"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:52
|
||||
msgid "Translation updates"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:60
|
||||
msgid "Translations to Ukrainian and Polish"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:67
|
||||
msgid "Improve parental controls application UI and add icon"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:68
|
||||
msgid "Support for indicating which accounts are parent accounts"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:75
|
||||
msgid "Initial release of basic parental controls application"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:76
|
||||
msgid "Support for setting app installation and run restrictions on users"
|
||||
msgstr ""
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:83
|
||||
msgid "Maintenance release of underlying parental controls library"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:7
|
||||
msgid "org.freedesktop.MalcontentControl"
|
||||
msgstr ""
|
||||
msgstr "GNOME 專案"
|
||||
|
||||
#. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon!
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:13
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:14
|
||||
msgid ""
|
||||
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
|
||||
"usage;usage limit;kid;child;"
|
||||
msgstr ""
|
||||
"分級控制;電腦使用時間;應用程式限制;網頁瀏覽器限制;oars;使用;使用限制;小孩;兒"
|
||||
"童;"
|
||||
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
|
||||
"usage;usage limit;kid;child;家長控制;分級控制;電腦使用時間;應用程式限制;網頁"
|
||||
"瀏覽器限制;使用;使用限制;小孩;兒童;孩童;青少年;軟體限制;安裝限制;限制;"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:9
|
||||
msgid "Manage parental controls"
|
||||
msgstr "管理分級控制"
|
||||
msgstr "管理家長控制"
|
||||
|
||||
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:10
|
||||
msgid "Authentication is required to read and change user parental controls"
|
||||
msgstr "需要驗證才能讀取和變更使用者分級控制"
|
||||
msgstr "需要認證才能讀取和更改使用者的家長控制"
|
||||
|
||||
#: malcontent-control/user-selector.c:426
|
||||
msgid "Your account"
|
||||
|
@ -468,22 +466,45 @@ msgstr "您的帳號"
|
|||
#: pam/pam_malcontent.c:142 pam/pam_malcontent.c:188
|
||||
#, c-format
|
||||
msgid "User ‘%s’ has no time limits enabled"
|
||||
msgstr "沒有為使用者 '%s' 啟用時間限制"
|
||||
msgstr "沒有啟動「%s」的使用時間限制"
|
||||
|
||||
#: pam/pam_malcontent.c:151 pam/pam_malcontent.c:172
|
||||
#, c-format
|
||||
msgid "Error getting session limits for user ‘%s’: %s"
|
||||
msgstr "為使用者 ‘%s’ 取得工作階段限制發生錯誤:%s"
|
||||
msgstr "取得使用者「%s」的工作階段限制設定發生錯誤:%s"
|
||||
|
||||
#: pam/pam_malcontent.c:182
|
||||
#, c-format
|
||||
msgid "User ‘%s’ has no time remaining"
|
||||
msgstr "使用者 ‘%s’ 沒有剩餘時間"
|
||||
msgstr "使用者「%s」已達使用時間上限"
|
||||
|
||||
#: pam/pam_malcontent.c:200
|
||||
#, c-format
|
||||
msgid "Error setting time limit on login session: %s"
|
||||
msgstr "登入工作階段時發生設定時間限制錯誤:%s"
|
||||
msgstr "無法在登入工作階段設定時間限制:%s"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Not allowed to query session limits data for user %u"
|
||||
#~ msgstr "不允許查詢使用者 %u 工作階段限制"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Applications installed by %s will not appear for other users."
|
||||
#~ msgstr "由 %s 安裝的應用程式將不會讓其他使用者看到。"
|
||||
|
||||
#~ msgid "Restrict Application Installation for _Others"
|
||||
#~ msgstr " 針對其他人_限制安裝應用程式"
|
||||
|
||||
#~ msgid "No Child Users Configured"
|
||||
#~ msgstr "沒有預設兒童使用者"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "No child users are currently set up on the system. Create one before "
|
||||
#~ "setting up their parental controls."
|
||||
#~ msgstr ""
|
||||
#~ "系統目前沒有兒童使用者的設定。請在設定他們的分級控制之前先建立一個。"
|
||||
|
||||
#~ msgid "Create _Child User"
|
||||
#~ msgstr "建立 _兒童使用者"
|
||||
|
||||
#~ msgid "No cartoon violence"
|
||||
#~ msgstr "沒有漫畫暴力"
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[wrap-git]
|
||||
url = https://gitlab.gnome.org/GNOME/libadwaita.git
|
||||
revision = 1.1.0
|
||||
depth = 1
|
Loading…
Reference in New Issue