Compare commits

...

242 Commits
0.9.0 ... main

Author SHA1 Message Date
Philip Withnall 7c615a46b9 Merge branch 'hide-private-structs' into 'main'
build: Hide private structs from generated GIR files

See merge request pwithnall/malcontent!163
2023-12-20 11:04:46 +00:00
Philip Withnall 8ca426f631 build: Hide private structs from generated GIR files
Otherwise the fields in `MctAppFilter` become visible to introspected
languages, which was not the intention.

Spotted in
https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/65.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
2023-12-20 11:02:43 +00:00
Philip Withnall de7a645548 Merge branch 'sathieu-main-patch-63945' into 'main'
Add AppInfo support to malcontent-client check-app-filter

See merge request pwithnall/malcontent!157
2023-12-07 10:10:53 +00:00
Mathieu Parent cdaa32ae4e Add AppInfo support to malcontent-client check-app-filter 2023-12-07 10:10:53 +00:00
Philip Withnall a7e6f0e973 Merge branch 'fix-appdata' into 'main'
data: Update appdata

See merge request pwithnall/malcontent!162
2023-11-21 09:42:49 +00:00
Sabri Ünal 6c561cd93c data: Update appdata
- Update the donation URL.
- Add the cvs-browser URL.

These URLs are visible on Flathub and GNOME Software.

For more information: https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-url"
2023-11-20 04:18:08 +03:00
Philip Withnall 4508c2ca1d Merge branch 'l10n-sv' into 'main'
Update Swedish translation

See merge request pwithnall/malcontent!161
2023-11-13 12:04:01 +00:00
Anders Jonsson 8d7b560795 Update Swedish translation 2023-11-11 14:11:07 +01:00
Philip Withnall 5bb3c24b08 Merge branch 'main' into 'main'
update ru.po

See merge request pwithnall/malcontent!160
2023-11-01 15:08:46 +00:00
Ser82-png 086b0ede78 update ru.po 2023-10-29 01:04:15 +10:00
Philip Withnall b3e6666fe3 Merge branch 'cs-update' into 'main'
Update Czech translation

See merge request pwithnall/malcontent!159
2023-10-24 10:04:15 +00:00
AsciiWolf c11596e3da Update Czech translation 2023-10-23 23:04:48 +02:00
Philip Withnall c764487abf Merge branch '53-carousel-focus' into 'main'
ui: Add explicit focus outline to carousel items

Closes #53

See merge request pwithnall/malcontent!156
2023-10-13 13:58:45 +00:00
Philip Withnall 51bd3a668d ui: Add explicit focus outline to carousel items
Since they’re custom widgets, they need custom CSS to define a focus
outline, and can’t rely on GTK providing it for them.

Ideally we’d be using the same `$focus_border_color` as GTK does, and
adjusting it for dark and high-contrast themes, but GTK doesn’t export
that colour so we have to work around it.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #53
2023-10-13 14:51:25 +01:00
Philip Withnall cbad81565e Merge branch '31-app-list-search' into 'main'
restrict-applications-dialog: Add support for searching the app list

Closes #31

See merge request pwithnall/malcontent!155
2023-10-13 12:31:20 +00:00
Philip Withnall 73d8343a3e restrict-applications-dialog: Add support for searching the app list
This is a type-ahead search which filters the app list by app name.

It’s always visible because search is a very obvious interaction the
user might want to do to find an app in the app list. That’s why
`GtkSearchBar` is not being used here.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #31
2023-10-13 13:24:37 +01:00
Philip Withnall 69253a2b2c build: Post-release version bump
We’re about to add new API, so bump the version number in preparation.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2023-10-13 11:34:29 +01:00
Philip Withnall 4a1cc8a830 user-controls: Fix a minor string leak
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2023-10-13 11:32:13 +01:00
Philip Withnall a58c660dca restrict-applications-selector: Add more spacing around placeholder label
This makes it look nicer.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2023-10-13 11:25:48 +01:00
Philip Withnall 13c8a88e17 restrict-applications-selector: Fix display of placeholder
The `GtkListBox` already correctly works out when to show/hide the
placeholder; we don’t need to do that ourselves. It actually breaks
things if we hide the placeholder, since `GtkListBox` then doesn’t
re-show it.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2023-10-13 11:24:50 +01:00
Philip Withnall 537d4bf791 restrict-applications-selector: Move GListStore to UI file
This simplifies the code a little and will allow binding to it in an
upcoming commit.

It introduces no functional changes.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #31
2023-10-13 11:23:31 +01:00
Philip Withnall d4951a333f Merge branch '56-string-tweak' into 'main'
user-controls: Tweak a string to improve understandability

Closes #56

See merge request pwithnall/malcontent!154
2023-10-12 13:39:46 +00:00
Philip Withnall f763d71cd2 user-controls: Tweak a string to improve understandability
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #56
2023-10-12 11:48:30 +01:00
Philip Withnall 2f67afec78 Merge branch 'update_pt_BR' into 'main'
Update pt_BR translation

See merge request pwithnall/malcontent!153
2023-07-20 12:33:22 +00:00
Matheus Polkorny b4c6e9d8ef Update pt_BR translation 2023-07-07 23:34:31 +00:00
Philip Withnall 0979e60567
0.11.1
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2023-03-16 13:16:02 +00:00
Philip Withnall bcb33bced1 Merge branch 'update-tr' into 'main'
doc: Add Turkish Translation

See merge request pwithnall/malcontent!152
2023-03-09 09:54:31 +00:00
Sabri Unal 828c5b5973 doc: Add Turkish Translation 2023-03-09 09:54:30 +00:00
Philip Withnall 062231804a Merge branch 'wip/jtojnar/meson_postinstall' into 'main'
build: Switch to Meson’s gnome.post_install function

See merge request pwithnall/malcontent!148
2022-12-30 16:57:12 +00:00
Jan Tojnar 4d234c01dd build: Switch to Meson’s gnome.post_install function
Instead of using a custom post install script.
This drops the GTK 3 dependency.

Required bumping minimum Meson version to 0.59
for the `update_desktop_database` kwarg.

https://mesonbuild.com/Gnome-module.html#gnomepost_install
2022-12-30 16:35:55 +00:00
Jan Tojnar 6c96a5e7b6 build: Bump Meson dependency to 0.59.0
Required for switching to `gnome.post_install()` function
with `update_desktop_database` kwarg.

Even newer version is available in bullseye-backports in Debian
so it should probably be fine.
2022-12-30 16:35:55 +00:00
Philip Withnall 54ebc3739e ci: Add missing dependencies
`libdbus-1-dev` is needed for the interfaces dir from `dbus-1.pc`, and
`desktop-file-utils` is needed for `update-desktop-database`.

These are needed due to updating Debian Unstable.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-12-30 16:35:15 +00:00
Philip Withnall 8c2a1dd73b Merge branch 'main' into 'main'
Update Hindi (hi) translation

See merge request pwithnall/malcontent!151
2022-11-29 11:29:51 +00:00
Hemish 3d1ec3047f Update Hindi (hi) translation 2022-11-29 13:07:23 +05:30
Philip Withnall 327173ba11 Merge branch 'hun-20220922' into 'main'
Update Hungarian translation

See merge request pwithnall/malcontent!150
2022-10-10 11:56:49 +00:00
Philip Withnall afb3f9630c Merge branch 'main' into 'main'
po: add Georgian translation

See merge request pwithnall/malcontent!149
2022-10-10 11:55:41 +00:00
Balázs Úr c577543af8 Update Hungarian translation 2022-09-22 21:55:47 +00:00
NorwayFun af4cd80fd5 add Georgian translation 2022-09-14 07:50:37 +00:00
NorwayFun 2ef945255c add Georgian 2022-09-14 07:50:08 +00:00
Georges Basile Stavracas Neto 741bc8a2b0 Merge branch 'gbsneto/release-0-11-0' into 'main'
0.11.0

See merge request pwithnall/malcontent!147
2022-08-12 15:10:26 +00:00
Georges Basile Stavracas Neto 810c16bbf1 0.11.0 2022-08-12 12:06:34 -03:00
Georges Basile Stavracas Neto e1c5b8a4fe Merge branch '52-focusable' into 'main'
restrict-applications-selector: Make rows not focusable

Closes #52

See merge request pwithnall/malcontent!146
2022-08-12 14:58:06 +00:00
Philip Withnall 950abf2e44 user-controls: Mark rows as not focusable
Only the controls inside them should be focusable. This saves having to
press the tab key twice as much as needed.

The row to open the restrict applications dialogue remains focusable, as
it doesn’t contain an interactive widget. It’s essentially one big
button.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #52
2022-07-25 23:53:24 +02:00
Philip Withnall 2e72916afb restrict-applications-selector: Make rows not focusable
The toggle switches remain focusable, but the rows should not be
focusable. Otherwise tabbing through the list involves two tabs per row.

The screen reader continues to work correctly with this MR applied: when
tabbing to a new switch, it reads out the label from the row, plus the
switch state.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #52
2022-07-25 23:53:24 +02:00
Philip Withnall 2f64f3865e Merge branch 'piotrdrag/fix-string' into 'main'
main: Restore previous whitespace in string

See merge request pwithnall/malcontent!145
2022-07-24 18:55:29 +00:00
Piotr Drąg 8416b0f263 main: Restore previous whitespace in string
So that we don’t change the string for no reason,
invalidating all existing translations.
2022-07-24 15:47:45 +02:00
Georges Basile Stavracas Neto a859e22e26 Merge branch 'wip/wjt/more-gtk4' into 'main'
Fix some build system leftovers from the GTK 4 port

See merge request pwithnall/malcontent!144
2022-07-22 12:22:04 +00:00
Will Thompson 8eba2f2ef3 Prepare for 0.11.0 release 2022-07-22 11:26:28 +01:00
Will Thompson ffba5dab43 libmalcontent-ui: Bump API version
An app which currently depends on malcontent-ui-0.pc or
MalcontentUi-0.gir will fail to compile or run, respectively, aganist
the GTK 4-ified version.

Bump the API version, which is used in both those names. This will also
(I think) allow the two versions of libmalcontent-ui to be
parallel-installed.
2022-07-22 11:13:33 +01:00
Will Thompson 922ae096be libmalcontent-ui: Fix includes for GIR
The libmalcontent-ui API exposes types from GTK 4 (not 3) and
libadwaita.
2022-07-22 11:12:47 +01:00
Will Thompson 1c7fe694fa Don't depend on gtk+-3.0 if xmllint is found
When validating the .ui files, we need to determine the path to GTK 4's
relaxng schema. Previously this was erroneously looked up in the prefix
of GTK 3, which malcontent otherwise doesn't depend on.

Define the GTK dependency once, and use that variable everywhere.
2022-07-22 11:09:35 +01:00
Georges Basile Stavracas Neto 2da5d5597e Merge branch 'gbsneto/gtk4' into 'main'
GTK4

See merge request pwithnall/malcontent!141
2022-07-20 22:27:51 +00:00
Georges Basile Stavracas Neto fe785d357d user-controls: Remove AdwPreferencesPage
AdwPreferencesPage is intended to be used as the first widget
inside page. It has an AdwClamp and a scrolled window to handle
just that.

Putting it in the MctUserControls widget is undesired, because
it introduces an oddly positioned scrolled window in the parental
controls page of Initial Setup, and if we ever reintroduce this
widgetry in Settings, it would suffer from the same problem.

Remove AdwPreferencesPage from MctUserControls, and replace it
with a vertical box. Add an AdwPreferencesPage in malcontent-controls
to compensate for that.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 9a35a09e24 malcontent-control: Update copyright headers
Append myself as the author of the files I've meaninfully changed.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto e8e9231d89 libmalcontent-ui: Cleanup CSS
Use named colors, and reimplement the disabled slider with a CSS
grayscale filter.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 61141a6670 restrict-applications-selector: Center-align app list
Simply expanding this list is enough to let the AdwClamp of
the parent AdwPreferencesGroup center it.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto d204944ae2 main: Improve visuals of loading label
Replace the manual scaling of the font size by a proper style
class, and center-align it vertically.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto a4ac1d644d user-selector: Purge items after listing users
The first call to act_user_manager_list_users() may lazily load
and notify the 'is-loaded' property, in which case we end up
indirectly recursing into reload_users(). Because we recurse
*after* purging carousel items, the same user is added twice:
once in the leaf recursion call, and once again in the call that
notified the 'is-loaded' property.

A simple workaround to this is purging carousel items after the
call to act_user_manager_list_users().
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto b5e516bea0 user-controls: Don't set popover direction
Let GTK handle that as it sees fit.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto e5ecc02488 user-controls: Remove OARS widgetry size group
We don't actually want the menu button to have the same size
of the popover, since the popover can grow pretty wide.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto b25a4e2119 carousel: Simplify arrow handling
The CSS-based animation is incompatible with the layout machinery
of GTK4, and we can't easily reintroduce it without another major
surgery in the carousel code, so just drop it for now.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 15172723dd carousel: Use revealer to calculate arrow offset
Now that the inner GtkStack has margins, it has an odd offset from
what we would expect. A better widget to use is the GtkRevealer,
which must cover the entire allocation, and therefore will always
produce the expected x offset.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 4887ded149 carousel: Replace size-allocate callback by a layout manager
GTK4 has no size-allocate signal anymore, but we can use a custom
layout manager to produce the same effect.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 3656cffcc0 carousel: Cleanup overlays
There are overlays inside overlays and that is not playing well
with event delivery - the main box is eating away clicks from the
userlist avatars.

Remove all that, and the extra overlays, and just leave one simple
overlay handling the whole widgetry.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 1d20fc50c9 carousel: Improve carousel box
This makes the carousel look more like what it used to.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto cd7d6a3845 carousel: Reindent file
No functional changes, just reindent the file.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto a9290f86b9 main: Make unlock button a pill
And set the 'suggested-action' style class too. This makes the
button more inline with modern GNOME HIG.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 486183a017 carousel: Move margins to inner stack 2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 0134e5d875 main: Remove has-default from buttons
This property is read-only in GTK4.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 8a8fe7b346 restrict-applications-dialog: Use close-request
Instead of delete-event. Pretty straightforward, 1:1 port to this
new signal.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 977b82f681 main: Remove can-default 2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto adaea91a4c carousel: Remove pass-through from overlay children
It doesn't exist anymore.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 3e1c14bda3 project: Port to GtkStack API changes 2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 6cd201166b main: Remove use-popover property from GtkMenuButton
It doesn't exist anymore.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 58fc4e0a5b main: Reimplement primary menu accellerator as a shortcut
In GTK4, the replacement to accelerators like this are shortcut
controllers.

Add a global shortcut controller to the primary menu button, and
bind it to F10.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 6fc250d5cf main: Adapt to GtkHeaderBar API changes 2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto dc1f68c7bc application: Port to gtk_show_uri_full()
A pretty straightfoward port, and most importantly, this function
actually exists in GTK4 :)
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto b71b83f348 carousel: Port MctCarousel to GTK4
Make it an AdwBin subclass. Purge all GtkContainer usage, and expose
GTK4-inspired API to add items to the carousel, and also to control
the internal GtkRevealer.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 0fca70768a carousel: Make MctCarouselItem subclass GtkButton
And add a setter to its internal child.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto e088443645 carousel: use double to translate coordinates
That's what GTK4 expects now.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 03ecb2dcb2 user-controls: Use GtkPopoverMenu API to set menu model
Pretty trivial replacement, since 'oars_popover' already is a
GtkPopoverMenu.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 6cb361efb9 user-image: Port to AdwAvatar
This simultaneously allows us to remove a lot of code, and make
Malcontent more consistent with the rest of the system.

Port MctUserImage to use an AdwAvatar internally. Make it inherit
AdwBin since it has a single child now.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto d4f219b71e user-controls: Use GtkRoot API to get toplevel
In practice, widgets that implement GtkRoot represent what
toplevel widgets used to. Use that instead.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 8c170d11a2 project: Port GdkScreen to GdkDisplay
API looks about the same, just switching to 'display'.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 6ee8b77b95 user-controls: Remove unused variable 2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto c39ffd45fc project: Remove unnecessary usage of gtk_widget_show()
Now that widgets are visible by default, no need to show them
after creating them. Also revove gtk_widget_show_all() which
doesn't exist in GTK4.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto bb0865eb23 project: Use gtk_window_present() to present windows
Instead of gtk_widget_show(). In practice, it's exactly the same,
but it'll make follow-up patches cleaner.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 360c5b0271 restrict-applications-selector: Adapt to GtkImage API changes
This was supposed to be a project-wide commit, but actually only
MctRestrictApplicationsDialog had APIs to be updated. MctUseImage
will undergo a major surgery soon, so it's left out.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 8560ca0677 project: Simplify buttons
GtkButton has an 'icon-name' property that greatly simplifies
setting up buttons. GtkMenuButton has a new 'always-show-arrow'
property that also allows us to simplify some code.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto c9f8bb22f6 restrict-applications-selector: Adapt to AdwActionRow
This greatly reduces the code size. GtkBin is no more, and
AdwActionRow has specific API to add suffix widgets.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 631df4f1a5 project: Adapt to GtkBox API changes
GtkBox provides a different API surface, such as gtk_box_append()
and gtk_box_prepend(), so switch to that.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 2d9b408a32 user-controls: Inherit from AdwBin
GtkBin is no more, but libadwaita has a nice 1:1 replacement which
is AdwBin.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto e322d8cd98 Hdy → Adw
This simply changes namespaces. Fortunately, no further widgetry
changes will be necessary - all the widgets and APIs seem to have
an exact match in libadwaita.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto d142554ed3 malcontent-control: Replace border-width by margins
The 'border-width' property does not exist in GTK4 anymore, so
replace it with margin-* and in one case just remove it entirely.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto a8484b9c07 project: Port to GTK4 accessibility framework
This was simple, since few widgets have accessibility properties
manually set. The 'static' role doesn't exist anymore, and GtkLabel
handles everything for us, so we can just drop it.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 262d6a6e7a project: Remove most can-focus properties
In GTK4, can-focus usage is much more specific to widget subclasses,
and in almost all cases it's not necessary to set it.

Remove it everywhere, except in one case where it still needs to be
manually set to False.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto 5bec6e8fdc project: Remove all visible=True properties
Start the GTK4 port by cleaning up all visible=True properties,
since widgets are visible by default on GTK4.
2022-07-20 19:23:12 -03:00
Georges Basile Stavracas Neto c31640fa12 build: Switch to GTK4 and libadwaita
Switch the build system to GTK4 and libadwaita, instead of GTK3
and libhandy.

This commit breaks the build.
2022-07-20 19:23:12 -03:00
Christopher Davis 52b4b490f3 dockerfile: Add libhandy as a dependency
Though it's unlikely Debian will have a version
new enough for us, it's still useful to have this an
advance. The meson subproject will work in cases where
we don't have a new enough version of libhandy.
2022-07-20 19:23:12 -03:00
Christopher Davis d11e609543 dependencies: Add libhandy as a subproject
Allows for building on systems that don't ship libhandy
or a version of libhandy that's new enough.
2022-07-20 19:23:12 -03:00
Christopher Davis 554b390cd4 main.ui: Use HdyStatusPage for status pages
We now have a nice pre-built widget for status pages
with an icon, title, description, and children.
We should take advantage of that instead of manually
setting up each status page.
2022-07-20 19:23:12 -03:00
Christopher Davis 73c1d7f3fe restrict-applications-selector: Hide placeholder when list isn't empty
Prevents a broken bottom border radius on the list.
2022-07-20 19:23:12 -03:00
Christopher Davis 9ed46ae597 restrict-applications-selector: Use HdyActionRow
Implements click-to-activate for rows in the dialog.
2022-07-20 19:23:12 -03:00
Christopher Davis c68058f0f3 restrict-applications: Use HdyPreferencesWindow
HdyPreferencesWindow provides a neat API we can use for
windows like this.
2022-07-20 19:23:12 -03:00
Christopher Davis 358cad3a24 user-controls: Use HdyPreferencesPage and HdyActionRow API
This allows us to get styling consistent with
HdyPreferencesWindow and similar content across GNOME.

Part of a consistency push for GNOME 40
2022-07-20 19:23:12 -03:00
Philip Withnall 598fab96a9 Merge branch 'fix-it-help' into 'main'
po: Fix markup error in Italian translation of the help

See merge request pwithnall/malcontent!143
2022-07-15 12:18:48 +00:00
Philip Withnall 766603676c po: Fix markup error in Italian translation of the help
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-07-15 13:16:29 +01:00
Christopher Davis d80ed10592 malcontent-control: Use HdyWindow and HdyHeaderBar 2022-07-13 12:00:33 -03:00
Philip Withnall f11d91da3a Merge branch 'gbsneto/appstream' into 'main'
libmalcontent-ui: Port to libappstream

Closes #51

See merge request pwithnall/malcontent!142
2022-07-13 14:29:08 +00:00
Georges Basile Stavracas Neto 25486a1df9 libmalcontent-ui: Port to libappstream
Depend on libappstream-dev, and include appstream.h instead of
appstream-glib.h.

We can depend on a new enough version of libappstream that all the
content rating symbols we need are available, which means that
`gs-content-rating.[ch]` can be dropped entirely.

Turns out no code changes are needed other than that.

Fixes: #51
2022-07-13 15:26:12 +01:00
Philip Withnall 0bbdb242a0 build: Bump Meson dependency to 0.57.0
This means we can depend on fix 42ba8efaf2 in Meson, which fixes use of
`volatile` in the default templates used by `gnome.mkenums_simple()`.
This fixes compiler warnings with recent compilers, which are promoted
to errors due to `-Werror`.

Meson 0.57.0 is available in bullseye-backports in Debian, which means
it’s available basically everywhere now.

Bumping the dependency required fixing a few deprecations in the
`meson.build` files.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-07-13 15:26:11 +01:00
Philip Withnall a732fd418d Merge branch 'main' into 'main'
update ru.po

See merge request pwithnall/malcontent!140
2022-06-20 09:43:56 +00:00
Ser82-png cae9044b92 update ru.po 2022-06-19 20:36:14 +10:00
Philip Withnall 40933baef2 Merge branch 'main' into 'main'
Update Russian translation

See merge request pwithnall/malcontent!139
2022-06-06 10:43:13 +00:00
Ser82-png c6581c49cd Update Russian translation 2022-06-05 11:43:28 +10:00
Philip Withnall 9d1e8ac3c5 0.10.5
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-05-31 13:56:40 +01:00
Philip Withnall 26961a0614 Merge branch 'main' into 'main'
Update Chinese (Taiwan) translation file.

See merge request pwithnall/malcontent!138
2022-05-31 12:52:16 +00:00
Freddy Cheng 788c13d827 Update Chinese (Taiwan) translation file. 2022-05-30 19:36:36 +00:00
Philip Withnall 0baa23ab44 Merge branch 'main' into 'main'
Update tr.po

See merge request pwithnall/malcontent!137
2022-05-19 13:51:20 +00:00
libre ajans 88a7c57fb0 Update tr.po 2022-05-19 13:42:32 +00:00
Philip Withnall 1a0b3e5d4b Merge branch 'polkornyipt-main-patch-69406' into 'main'
Update pt_BR.po

See merge request pwithnall/malcontent!136
2022-04-13 15:07:35 +00:00
Matheus Polkorny c36b5b268e Update pt_BR.po 2022-04-13 15:07:35 +00:00
Philip Withnall 0e89f39e89 Merge branch 'main' into 'main'
Add German help translation

See merge request pwithnall/malcontent!135
2022-03-21 13:15:26 +00:00
Tim Sabsch 069fe74e9c Add German help translation 2022-03-21 14:03:01 +01:00
Philip Withnall f8a7d0e372 Merge branch 'albanobattistella-main-patch-74286' into 'main'
Update it.po

See merge request pwithnall/malcontent!134
2022-03-14 11:47:22 +00:00
albanobattistella dbdc0d3f16 Update it.po 2022-03-12 15:13:38 +00:00
Philip Withnall d9bcc0537b 0.10.4
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-03-09 17:17:48 +00:00
Philip Withnall e1adf705cb help: Fix incorrect quoting in Italian .po file
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-03-09 17:17:48 +00:00
Philip Withnall 7259dab831 subproject: Bump libglib-testing to 0.1.1 for Meson fixes
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-03-09 17:07:23 +00:00
Philip Withnall 4b6e1521a6 Merge branch 'main' into 'main'
help: Add Italian help translation

See merge request pwithnall/malcontent!133
2022-01-17 13:38:47 +00:00
albanobattistella e1920eb287 help: Add Italian help translation 2022-01-17 13:36:46 +00:00
Philip Withnall db48b73b6e Merge branch 'fix-build-with-meson-0-61' into 'main'
Remove superfluous arguments to i18n.merge_file

See merge request pwithnall/malcontent!132
2022-01-17 13:29:09 +00:00
Heiko Becker f433aaf8c8 Remove superfluous arguments to i18n.merge_file
It fixes the build with meson 0.61.0. The positional argument was
ignored in the past, became a warning in meson 0.60 and a hard error
starting with 0.61.0.
2022-01-13 09:50:05 +01:00
Philip Withnall 88757a149c Merge branch 'albanobattistella-main-patch-66771' into 'main'
Update it.po

See merge request pwithnall/malcontent!129
2022-01-06 12:49:23 +00:00
albanobattistella aa61f7d8bd Update it.po 2022-01-06 12:31:41 +00:00
Philip Withnall 37e834e340 Merge branch 'main' into 'main'
Update German proof-read translation from https://l10n.gnome.org/vertimus/malcontent/main/po/de/

See merge request pwithnall/malcontent!128
2021-11-30 23:11:26 +00:00
Christian K 4332e90e8a Update German proof-read translation from https://l10n.gnome.org/vertimus/malcontent/main/po/de/ 2021-11-30 20:59:55 +00:00
Philip Withnall df0ab419dc Merge branch 'main' into 'main'
Update Catalan translation

See merge request pwithnall/malcontent!127
2021-11-11 10:22:52 +00:00
Jordi Mas b2a514cb25 Update Catalan translation 2021-11-10 18:15:18 +01:00
Philip Withnall 9dd47e5abc 0.10.3
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-11-01 11:10:05 +00:00
Philip Withnall dcf7265f55 Merge branch 'fix-focus' into 'main'
malcontent-control: Focus controls rather than user selector

See merge request pwithnall/malcontent!126
2021-10-12 14:08:58 +00:00
Philip Withnall ec7fa2529b libmalcontent-ui: Improve keynav between listboxes
Fix using the up and down keys to change the keyboard focus between rows
between the listboxes. Previously, keynav would fail at the bottom of
the first listbox, and at the top of the second.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-10-07 16:22:51 +01:00
Philip Withnall 98ebfaa20e malcontent-control: Focus controls rather than user selector
When showing the controls, focus them first rather than the user
selector. The correct user is probably already selected.

This has the added benefit of not drawing attention to the ugly focus
rectangle on the user selector.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-10-07 16:22:51 +01:00
Philip Withnall b311cbd2bf Merge branch 'fix-array-length' into 'main'
malcontent-control: Fix an unterminated option entry array

See merge request pwithnall/malcontent!125
2021-10-07 13:44:17 +00:00
Philip Withnall 6115ebf119 malcontent-control: Fix an unterminated option entry array
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-10-07 14:43:02 +01:00
Philip Withnall 6b45db7b1b Merge branch 'asciiwolf-l10n' into 'main'
Update Czech translation

See merge request pwithnall/malcontent!124
2021-10-04 10:32:38 +00:00
AsciiWolf a90a67013b Update Czech translation 2021-10-02 00:36:34 +02:00
Philip Withnall f0d330ccd7 Merge branch 'asciiwolf-l10n' into 'main'
Add Czech translation

See merge request pwithnall/malcontent!123
2021-10-01 08:51:00 +00:00
Philip Withnall 9d020326bf Merge branch 'asciiwolf-main-patch-62608' into 'main'
malcontent-control: Add <compulsory_for_desktop> to the AppData file

Closes #44

See merge request pwithnall/malcontent!122
2021-10-01 08:49:49 +00:00
AsciiWolf f123f52005 Add Czech translation 2021-10-01 00:24:52 +02:00
AsciiWolf ac9b8bea67 malcontent-control: Add <compulsory_for_desktop> to the AppData file 2021-09-30 22:06:08 +00:00
Philip Withnall 33b0692896 0.10.2
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-09-17 12:48:32 +01:00
Philip Withnall a22a8fdaf3 Merge branch 'master-to-main' into 'main'
ci: Rename master to main branch

See merge request pwithnall/malcontent!121
2021-09-17 11:40:10 +00:00
Philip Withnall de353089de ci: Rename master to main branch
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-09-17 12:39:17 +01:00
Philip Withnall 16982f4914 Merge branch 'wip/hadess/hide-icon-by-default' into 'master'
malcontent-control: Hide application in GNOME

See merge request pwithnall/malcontent!119
2021-09-06 14:41:45 +00:00
Philip Withnall 41980463ad Merge branch 'master' into 'master'
Update Indonesian translation of UI & help

See merge request pwithnall/malcontent!120
2021-09-06 13:23:45 +00:00
Andika Triwidada 4538cfeba3 Update Indonesian translation of UI & help 2021-09-06 13:23:45 +00:00
Bastien Nocera 6d0ee2b7ab malcontent-control: Hide application in GNOME
The parental controls application is instead accessed through the user
accounts GNOME Settings panel.
2021-08-26 17:00:42 +02:00
Philip Withnall 11f9288ef0 Merge branch 'subprojects-update' into 'master'
ci: Limit depth of clone of subprojects

See merge request pwithnall/malcontent!118
2021-03-22 17:55:58 +00:00
Philip Withnall 1b09aca666 ci: Limit depth of clone of subprojects
This saves bandwidth and CI image size.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-03-22 17:54:42 +00:00
Philip Withnall a0ec9f1f2f build: Post-release version bump to 0.11.0
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-03-22 17:49:24 +00:00
Philip Withnall 7a877f611a Merge branch 'l10n/it' into 'master'
l10n: update Italian translation

See merge request pwithnall/malcontent!117
2021-03-17 14:19:44 +00:00
Milo Casagrande 32c2709fb1 l10n: update Italian translation
Signed-off-by: Milo Casagrande <milo@milo.name>
2021-03-17 14:31:24 +01:00
Philip Withnall e0fac33638 0.10.1
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-03-11 14:14:16 +00:00
Philip Withnall 04fbddbfa7 Merge branch 'drop-eos-link' into 'master'
libmalcontent-ui: Drop handling of eos-link desktop files

See merge request pwithnall/malcontent!116
2021-03-11 13:52:41 +00:00
Philip Withnall af3a8b33db libmalcontent-ui: Drop handling of eos-link desktop files
They are being dropped in Endless OS, and would have been filtered out
by the fact they’re not flatpaks anyway.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2021-03-11 13:50:53 +00:00
Philip Withnall ff8ec54b22 Merge branch '32-sort-on-name' into 'master'
libmalcontent-ui: Sort apps on the visible name

Closes #32

See merge request pwithnall/malcontent!115
2021-02-26 18:20:48 +00:00
Will Thompson fc047e6e67 libmalcontent-ui: Sort apps on the visible name
Previously, we sorted apps based on their display name, but
(confusingly) displayed their name. This leads to inconsistencies like
Rhythmbox being sorted (in French) as "Lecteur de musique Rhythmbox"
which places it between Krita and LibreOffice, but displayed as
"Rhythmbox".

Fixes #32
2021-02-25 14:12:20 +00:00
Philip Withnall b067a84266 Merge branch 'piotrdrag/pl-update-201220' into 'master'
Update Polish translation 201220

See merge request pwithnall/malcontent!113
2020-12-21 14:24:52 +00:00
Piotr Drąg c76c2346dc Update Polish translation 2020-12-20 13:34:13 +01:00
Philip Withnall 515a96fab4 Merge branch 'l10n-sv' into 'master'
Update Swedish translation

See merge request pwithnall/malcontent!112
2020-12-18 10:02:57 +00:00
Anders Jonsson e2644f8ed2 Update Swedish translation 2020-12-17 18:56:33 +01:00
Philip Withnall b35be5bd8d 0.10.0
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-12-09 16:53:16 +00:00
Philip Withnall f73fb35207 Merge branch 'system-repo-permissions' into 'master'
accounts-service: Allow installation to the system repo by default

See merge request pwithnall/malcontent!111
2020-12-09 16:23:16 +00:00
Philip Withnall cc195235ac Merge branch '15-padding-again' into 'master'
ui: Increase spacing between labels and buttons to 18px

Closes #15

See merge request pwithnall/malcontent!110
2020-12-09 16:23:02 +00:00
Philip Withnall b4a74b0fa4 accounts-service: Allow installation to the system repo by default
Note that this permissions check only concerns parental controls. If the
system flatpak polkit policy disallows installation to the system repo
(or requires an administrator password for it), this setting cannot
override that.

The default was previously to disallow installation, because the flatpak
polkit policy was previously overridden by these settings. How parental
controls are checked in flatpak has evolved since then, though.

See: https://github.com/flatpak/flatpak/issues/3995

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-12-09 16:08:52 +00:00
Philip Withnall ebad35703b ui: Increase spacing between labels and buttons to 18px
Was previously 12px, but the buttons are slightly logically separate
from the labels, so it should be 18px according to
https://developer.gnome.org/hig/stable/visual-layout.html.en.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
Fixes: #15
2020-12-09 15:53:31 +00:00
Philip Withnall c2c25a14aa Merge branch 'uk_update5' into 'master'
Update Ukrainian translation

See merge request pwithnall/malcontent!109
2020-12-09 09:17:54 +00:00
Yuri Chornoivan 63e2ec7809 Update Ukrainian translation 2020-12-09 09:03:57 +02:00
Philip Withnall d0153db94a Merge branch 'uk_update4' into 'master'
Update Ukrainian translation

See merge request pwithnall/malcontent!108
2020-12-08 20:29:15 +00:00
Yuri Chornoivan badd856534 Update Ukrainian translation 2020-12-08 22:22:21 +02:00
Philip Withnall d352fe2550 Merge branch '25-initial-screen' into 'master'
malcontent-control: Change wording on no-other-users page

Closes #25

See merge request pwithnall/malcontent!90
2020-12-08 16:37:04 +00:00
Philip Withnall 9335565fe3 malcontent-control: Change wording on no-other-users page
Clarify that a standard user account has to be created, and then
parental controls enabled for it — and that clicking the button will
open the control centre.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #25
Helps: #26
2020-12-08 16:35:07 +00:00
Philip Withnall 045ed2ec02 Merge branch '13-terminology' into 'master'
Resolve "Consider terminology of ‘parental controls’"

Closes #13

See merge request pwithnall/malcontent!99
2020-12-08 12:18:14 +00:00
Philip Withnall 351a7811e5 Merge branch 'appstream-glib-dep' into 'master'
Bump appstream-glib dep and update content rating code

See merge request pwithnall/malcontent!100
2020-12-08 12:18:09 +00:00
Philip Withnall 854ea21fb4 Merge branch 'csm-guidance' into 'master'
malcontent-control: Add link to guidance on how to set parental controls

See merge request pwithnall/malcontent!103
2020-12-08 12:18:07 +00:00
Philip Withnall 8a8405fc4e Merge branch 'use-case-docs' into 'master'
docs: Add a development principles section to the README

See merge request pwithnall/malcontent!104
2020-12-08 12:17:52 +00:00
Philip Withnall 2010898947 malcontent-control: Add link to guidance on how to set parental controls
Try and nudge parents/carers towards the best practice for how to set
parental controls on a user, by linking them to appropriate external
content from people who know what they’re talking about.

This external content can vary in the translations so that parents are
pointed to appropriate localised guidelines. In the UK, for example,
this may be
https://www.nspcc.org.uk/keeping-children-safe/online-safety/.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-12-04 11:58:06 +00:00
Philip Withnall 01e861f317 Merge branch 'uk_update3' into 'master'
Update Ukrainian translation

See merge request pwithnall/malcontent!107
2020-11-22 17:55:28 +00:00
Yuri Chornoivan e50c0c58d6 Update Ukrainian translation 2020-11-22 17:55:28 +00:00
Philip Withnall 34c774addc Merge branch '30-drop-user-repos' into 'master'
malcontent-control: Drop ‘Restrict Application Installation for Others’

Closes #30

See merge request pwithnall/malcontent!105
2020-11-21 22:37:28 +00:00
Philip Withnall 60a46fb623 Merge branch 'patch-1' into 'master'
Update Danish translation

See merge request pwithnall/malcontent!106
2020-11-18 09:38:58 +00:00
scootergrisen b71424a4e2 Update Danish translation 2020-11-18 09:38:58 +00:00
Philip Withnall cd36d90091 malcontent-control: Drop ‘Restrict Application Installation for Others’
This simplifies the UI, as nobody really understood the difference
between ‘Restrict Application Installation’ and ‘Restrict Application
Installation for Others’. Now there’s just a ‘Restrict Application
Installation’ checkbox, which controls application installation in the
home and system flatpak repos.

The underlying app-filter representation in libmalcontent still supports
restricting installation to them separately, but the UI will always set
them to the same value.

There is a suggestion that we may want to support user repos again in
future iff the user has added a remote to their user repo. However,
figuring that out for other users (which is what the admin would have to
do when setting this all up) starts to get tricky with permissions for
reading other users’ home directories. Skip that for the moment — we can
reconsider adding that option in future if someone argues a case for it.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #30
2020-11-15 17:31:21 +00:00
Philip Withnall 07ee189e2c docs: Add a development principles section to the README
This documents some development principles which should be borne in mind
when working on new malcontent features.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-11-05 11:37:11 +00:00
Philip Withnall 8e65091fc2 Merge branch 'app-filter-unchanged' into 'master'
user-controls: Only save the app filter if it’s changed

See merge request pwithnall/malcontent!102
2020-11-04 09:50:05 +00:00
Philip Withnall cac7ba414c user-controls: Only save the app filter if it’s changed
This prevents a polkit authentication prompt popping up unexpectedly if,
for example, a non-privileged user has opened and immediately closed
malcontent-control.

Spotted by Andre Moreira Magalhaes.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-11-03 17:49:00 +00:00
Philip Withnall ecd541b2e9 libmalcontent: Add mct_app_filter_equal() comparison method
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-11-03 17:49:00 +00:00
Philip Withnall a045e9fc51 Merge branch 'ui-load-saved-app-filter' into 'master'
Fix partial loss of parental controls settings when partially updating them

See merge request pwithnall/malcontent!101
2020-11-02 13:31:08 +00:00
Philip Withnall ecfb3035d5 libmalcontent-ui: Load restricted apps and OARS when loading app filter
While the label for the OARS pseudo-combobox was updated when loading a
user’s app filter, the internal state (`self->selected_age`) was not.
Similarly, the set of restricted apps wasn’t loaded until the restricted
apps dialog was opened.

This caused problems when loading a user’s parental controls and then
editing a control which *wasn’t* restricted apps or the OARS level. The
resulting app filter would be built using default values for those two
controls, overwriting and losing their previous values when it was
saved.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-10-29 19:22:13 +00:00
Philip Withnall e7588a2333 libmalcontent-ui: Sync switches with app filter when loading selector
Since the changes to avoid reloading the app list entirely when loading
an app filter (commit 9d4639cf49), the switch states haven’t been set
properly when loading a new app filter, since the app rows already
exist, and the switch states were only set on creation.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-10-29 19:20:14 +00:00
Philip Withnall fc5432205c gs-content-rating: Backport OARS/CSM mapping changes from appstream-glib
This is a backport of commit f742cc3cf2428 from appstream-glib:

    as-content-rating: Align the OARS/CSM mappings of sex-*

    Align the OARS/CSM mappings of sex-homosexuality and sex-themes, as the
    two are identical apart from discriminating on sexual orientation.

    This is a follow-up to commit 01e9ee8113a8ad.

    Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-10-29 15:13:09 +00:00
Philip Withnall 1371e1c819 libmalcontent-ui: Bump appstream-glib dependency to ≥ 0.7.15
This allows some (but not all) of the fallback code to be dropped.
appstream-glib 0.7.17 is available on all versions of Fedora and Debian
which malcontent is packaged for:
 • https://packages.debian.org/search?suite=bullseye&searchon=names&keywords=appstream-glibhttps://src.fedoraproject.org/rpms/libappstream-glib

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-10-29 15:10:00 +00:00
Philip Withnall f791ded58f docs: Document terminology used in the project
This is to be referred to by developers when working on the project, and
documents the decisions behind the terminology used.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #13
2020-10-28 17:01:44 +00:00
Philip Withnall ac2ed2c21a docs: Tidy up wording in DOAP file
We’re standardising on ‘parental controls’ as terminology, and moving
away from explicitly referring to ‘children’.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #13
2020-10-28 16:35:18 +00:00
Philip Withnall d31d021896 help: Clarify that parental controls can be used in other situations
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #13
2020-10-28 16:34:42 +00:00
Philip Withnall e1cd202ad5 Merge branch '4-manpage' into 'master'
Resolve "Add manpage docs for malcontent-client monitor, set and oars-section commands"

Closes #4

See merge request pwithnall/malcontent!98
2020-10-27 18:28:31 +00:00
Philip Withnall c40d5ff9b4 malcontent-client: Add newer subcommands and examples to man page
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #4
2020-10-27 18:26:51 +00:00
Philip Withnall 194fef286e malcontent-client: Update support URI in man page
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #4
2020-10-27 18:26:32 +00:00
Philip Withnall adbf176186 Merge branch 'piotrdrag/pl-update-201025' into 'master'
Update Polish translation 201025

See merge request pwithnall/malcontent!96
2020-10-26 09:55:39 +00:00
Piotr Drąg cbf0586fe8 Update Polish translation 2020-10-25 09:26:13 +01:00
Philip Withnall 540c337ae1 Merge branch '19-select-user' into 'master'
Resolve "Add command line option to malcontent-control to pre-select a user"

Closes #19

See merge request pwithnall/malcontent!95
2020-10-22 13:38:22 +00:00
Philip Withnall b6a0b14cdd Merge branch '28-empty-app-list' into 'master'
Fix several issues with the app list in the restrict applications dialogue

Closes #28 and #18

See merge request pwithnall/malcontent!92
2020-10-20 18:14:18 +00:00
Philip Withnall 93b88af0c1 libmalcontent-ui: Reload the app list when it changes on the system
This will no longer destroy in-progress user input.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #18
2020-10-20 19:13:01 +01:00
Philip Withnall e1b5bcd324 libmalcontent-ui: Load the app list when constructing the apps selector
Rather than waiting until an app filter is set on the application
selector, load the app list immediately at construction time. This is
now possible because it can be diffed easily when the app filter is set.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #28
2020-10-20 19:13:01 +01:00
Philip Withnall 9d4639cf49 libmalcontent-ui: Cache and diff the app list when rebuilding it
Instead of removing all the entries in the list store when the set of
installed apps is updated, diff the old and new lists so that removed
apps can be selectively removed from the list store, and added apps can
be selectively added.

This means that we can (in subsequent commits) reload the app list less
conservatively, as doing so will no longer remove in-progress user
modifications to the set of blocked apps. Modifications are still only
saved when the restrict applications dialogue is closed.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #18, #28
2020-10-20 19:13:01 +01:00
Philip Withnall 60754b6745 build: Bump version for new release series
This will allow g-c-c to check for version 0.10 at compile time.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-10-20 12:41:05 +01:00
Philip Withnall db54baf9d6 malcontent-control: Add a --user command line argument
This is handled on the primary instance, and causes the tab to be
switched to show the given username (if possible).

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #19
2020-10-19 17:55:47 +01:00
Philip Withnall 5efc773bda malcontent-control: Add API to select users by username
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-10-19 17:54:37 +01:00
Philip Withnall 887b8c9b9b Merge branch 'piotrdrag/pl-update-201018' into 'master'
Update Polish translation 201018

See merge request pwithnall/malcontent!94
2020-10-19 09:39:41 +00:00
Philip Withnall 03f207965b Merge branch 'uk_update3' into 'master'
Update Ukrainian translation

See merge request pwithnall/malcontent!93
2020-10-19 09:39:23 +00:00
Piotr Drąg 4e9c95e3fe Update Polish translation 2020-10-18 13:15:20 +02:00
Yuri Chornoivan faa0fa94d8 Update Ukrainian translation 2020-10-17 16:57:43 +03:00
Philip Withnall 1d5da7c094 libmalcontent-ui: Adjust the app list sort to be more stable
This doesn’t achieve anything by itself, but makes some upcoming commits
to diff the new/old app lists work properly.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: #18, #28
2020-10-15 16:40:10 +01:00
Philip Withnall d01f063c39 libmalcontent-ui: Add g_autolist() to simplify memory management
This introduces no functional changes.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-10-15 15:09:11 +01:00
Philip Withnall 792a069736 Merge branch 'string-rationalisation' into 'master'
libmalcontent: Rationalise a couple of translatable strings

See merge request pwithnall/malcontent!91
2020-10-15 13:56:12 +00:00
Philip Withnall ee290a21e6 libmalcontent: Rationalise a couple of translatable strings
Following on from commit b5b1ac2, change a couple of other strings to be
the same to reduce the number of translatable strings. These strings are
unlikely to ever be seen by the user, so it’s not an issue that they’re
becoming a little less specific.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-10-15 14:54:46 +01:00
Philip Withnall ba5dccfde0 Merge branch 'wip/tolerate-no-accountsservice' into 'master'
manager: Return MCT_MANAGER_ERROR_DISABLED if no accountsservice

Closes #27

See merge request pwithnall/malcontent!89
2020-10-15 13:52:45 +00:00
Simon McVittie b5b1ac26a2 manager: Make an error message less specific
Philip Withnall pointed out that if mct_manager_get_session_limits()
fails with G_DBUS_ERROR_ACCESS_DENIED or
org.freedesktop.Accounts.Error.PermissionDenied, the error message
will wrongly refer to app filter data. Make it more generally applicable.

Signed-off-by: Simon McVittie <smcv@debian.org>
2020-10-15 09:05:56 +01:00
Simon McVittie 1abce3eb91 manager: Return MCT_MANAGER_ERROR_DISABLED if no accountsservice
In distributions that package shared libraries and daemons separately,
it's possible to have the shared library (because it's required to run
something like Flatpak) but not the accountsservice daemon or its
malcontent extension (because the administrator of this particular
installation has no interest in parental controls, and their choice of
desktop environment is such that nothing else depends on accountsservice
either). This minimizes the memory and disk space cost of enabling the
libmalcontent feature in Flatpak for those who do not need it, while
keeping it available for those that do.

Treat this the same as if accountsservice is available but the
malcontent extension is not: fail open, by returning
MCT_MANAGER_ERROR_DISABLED.

Resolves: https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/27
Bug-Debian: https://bugs.debian.org/972145
Signed-off-by: Simon McVittie <smcv@debian.org>
2020-10-15 09:04:13 +01:00
Philip Withnall 5c0a7bf056 Merge branch 's1' into 'master'
Add Danish translation

See merge request pwithnall/malcontent!88
2020-10-12 11:13:39 +00:00
scootergrisen fe5deabdf4 Add Danish translation 2020-10-11 23:00:16 +02:00
Philip Withnall dbe726fb5e Merge branch 'master' into 'master'
l10n-sv

See merge request pwithnall/malcontent!87
2020-09-14 14:28:02 +00:00
Anders Jonsson 2c37e217b4 Add Swedish help translation 2020-09-14 16:10:12 +02:00
Anders Jonsson 40373ee255 Update Swedish translation 2020-09-14 16:00:39 +02:00
Philip Withnall f9d283ac83 Merge branch 'l10n-it' into 'master'
l10n: Update Italian translation

See merge request pwithnall/malcontent!86
2020-09-14 08:29:16 +00:00
Milo Casagrande bda8b88bbc l10n: Update Italian translation
Signed-off-by: Milo Casagrande <milo@milo.name>
2020-09-14 09:56:01 +02:00
Philip Withnall bbe53b521f Merge branch 'uk_update2' into 'master'
Update Ukrainian translation

See merge request pwithnall/malcontent!85
2020-09-10 08:55:31 +00:00
Yuri Chornoivan aca7f0aeab Update Ukrainian translation 2020-09-10 09:35:18 +03:00
Philip Withnall f592d0e36c Merge branch 'appstream-validation' into 'master'
Fix strict appdata validation

Closes #23

See merge request pwithnall/malcontent!84
2020-09-08 12:04:08 +00:00
Philip Withnall 8789d8980b malcontent-control: Add descriptive paragraphs to appdata releases
This fixes strict validation.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Fixes: #23
2020-09-08 12:52:17 +01:00
Philip Withnall b25110beab malcontent-control: Add a screenshot to the appdata
This fixes a problem with strict validation.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #23
2020-09-08 12:51:53 +01:00
82 changed files with 7857 additions and 6880 deletions

View File

@ -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"
@ -60,7 +60,7 @@ debian:
pages:
stage: deploy
only:
- master
- main
script:
- mv _coverage/ public/
artifacts:

View File

@ -2,7 +2,7 @@
set -e
git clone https://gitlab.freedesktop.org/pwithnall/malcontent.git
git clone --depth 1 --no-tags https://gitlab.freedesktop.org/pwithnall/malcontent.git
meson subprojects download --sourcedir malcontent
rm malcontent/subprojects/*.wrap
mv malcontent/subprojects/ .

View File

@ -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}

View File

@ -24,7 +24,7 @@ aparser.add_argument('--job-id', metavar='ID',
default='Unknown')
aparser.add_argument('--branch', metavar='NAME',
help='Branch of the project being tested',
default='master')
default='main')
aparser.add_argument('--output', metavar='FILE',
help='The output file, stdout by default',
type=argparse.FileType('w', encoding='UTF-8'),

22
HACKING.md Normal file
View File

@ -0,0 +1,22 @@
Terminology
-----------
The main terminology used in malcontent is parental controls, which are
implemented by administrators and enforced on child users.
The feature applies to a range of other carer/caree relationships, though, where
the caree user might need to be protected from doing things on the computer
which arent suitable for them.
The terminology parental controls is used consistently, despite not all
situations actually involving a parent or child, because thats how most users
will find the functionality.
To remain as inclusive as possible, there are some rules about which terminology
to use:
- Use parental controls to refer to the overall feature
- Refer to administrators or administrator accounts rather than parents
- Refer to child users in general contexts, but refer to particular user
accounts using their full name — dont mention child in that case
Reference: https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/13

162
NEWS
View File

@ -1,3 +1,165 @@
Overview of changes in malcontent 0.11.1
========================================
* Bugs fixed:
- !147 0.11.0
- !148 build: Switch to Mesons 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
========================================
* Bugs fixed:
- !127 Update Catalan translation
- !128 Update German proof-read translation from https://l10n.gnome.org/vertimus/malcontent/main/po/de/
- !129 Update it.po
- !132 Remove superfluous arguments to i18n.merge_file
- !133 help: Add Italian help translation
* Translation updates:
- Catalan
- German
- Italian
Overview of changes in malcontent 0.10.3
========================================
* Bugs fixed:
- #44 Do not make malcontent-control user uninstallable using gui
- !123 Add Czech translation
- !124 Update Czech translation
- !125 malcontent-control: Fix an unterminated option entry array
- !126 malcontent-control: Focus controls rather than user selector
* Translation updates:
- Czech
Overview of changes in malcontent 0.10.2
========================================
* Hide the launcher for malcontent-control from gnome-shell if using the GNOME
desktop; find it via gnome-control-center instead (!119)
* Bugs fixed:
- !118 ci: Limit depth of clone of subprojects
- !119 malcontent-control: Hide application in GNOME
- !121 ci: Rename master to main branch
* Translation updates:
- Indonesian
- Italian
Overview of changes in malcontent 0.10.1
========================================
* Bugs fixed:
- #32 App sort key does not match displayed name
- !112 Update Swedish translation
- !113 Update Polish translation 201220
- !116 libmalcontent-ui: Drop handling of eos-link desktop files
* Translation updates:
- Polish
- Swedish
Overview of changes in malcontent 0.10.0
========================================
* Improve support for systems without accountsservice (#27)
* Fix some data loss-causing state synchronisation problems (#18, #28)
* Hide support for flatpak user repositories, as they are typically not
configured on systems (#30)
* Bugs fixed:
- #4 Add manpage docs for malcontent-client monitor, set and oars-section commands
- #13 Consider terminology of parental controls
- #15 Improving padding/spacing in malcontent-control UI
- #18 Reload Restrict Apps list when installed apps change on system
- #19 Add command line option to malcontent-control to pre-select a user
- #23 appdata not validating
- #25 Parental controls app empty state is misleading
- #27 Fails closed if accountsservice isn't available on the bus
- #28 Restrict Applications dialogue is empty if MctUserControls is created with empty app filter
- #30 Restrict App Installation tickboxes are confusing
- !85 Update Ukrainian translation
- !86 l10n: Update Italian translation
- !87 l10n-sv
- !88 Add Danish translation
- !91 libmalcontent: Rationalise a couple of translatable strings
- !92 Fix several issues with the app list in the restrict applications dialogue
- !93 Update Ukrainian translation
- !94 Update Polish translation 201018
- !96 Update Polish translation 201025
- !100 Bump appstream-glib dep and update content rating code
- !101 Fix partial loss of parental controls settings when partially updating them
- !102 user-controls: Only save the app filter if its changed
- !103 malcontent-control: Add link to guidance on how to set parental controls
- !104 docs: Add a development principles section to the README
- !106 Update Danish translation
- !107 Update Ukrainian translation
- !108 Update Ukrainian translation
- !109 Update Ukrainian translation
- !111 accounts-service: Allow installation to the system repo by default
* Translation updates:
- Danish
- Italian
- Polish
- Swedish
- Ukrainian
Overview of changes in malcontent 0.9.0
=======================================

View File

@ -52,6 +52,32 @@ AppArmor or SELinux. However, its correct use by applications should provide
enough of an obstacle to prevent users easily or accidentally having access to
content which they shouldnt.
Development principles
---
malcontent exists to make it easier for parents to responsibly set limits on
what their children can do on the computer (similarly, for other carer/caree
relationships). It should provide guidance on, and nudge parents towards,
following the best practice for discussing, choosing and setting restrictions on
their childs computer use.
Restrictions should be supported which allow giving children access to material
which is appropriate to their age/stage of development, but which can restrict
access to other material so they are not overwhelmed with too many, or too
complex, ideas for their stage of development. Similarly, restrictions should be
supported to control unsupervised communication with unknown people online, as
being coerced or bullied is one of the more common harms for children online.
Best practices should be research and evidence-based, and supported by large
international or national childrens organisations or charities. They may change
over time.
malcontent is a tool to help with a social problem. In the hands of a bad
parent, it can be used to do bad things. Features in malcontent should be
designed with that in mind, such that if they are used maliciously, they should
not give the parent radically more power over their child than they would have
had without malcontent.
Example usage
---
@ -89,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

View File

@ -69,7 +69,7 @@
installation can proceed.
If this is false, the user is not allowed to install any apps or runtimes
to their flatpak user repository.
to their flatpak user repository due to parental controls.
-->
<property name="AllowUserInstallation" type="b" access="readwrite">
<annotation name="org.freedesktop.Accounts.DefaultValue" value="true"/>
@ -80,14 +80,15 @@
Whether this user is allowed to install to the flatpak system repository.
If this is true, and if the polkit check for allowing app installation
succeeds, and if the OarsFilter does not restrict this app, app
succeeds (i.e. the user is an administrator or an administrator has given
permission), and if the OarsFilter does not restrict this app, app
installation can proceed.
If this is false, the user is not allowed to install any apps or runtimes
to the flatpak system repository.
to the flatpak system repository due to parental controls.
-->
<property name="AllowSystemInstallation" type="b" access="readwrite">
<annotation name="org.freedesktop.Accounts.DefaultValue" value="false"/>
<annotation name="org.freedesktop.Accounts.DefaultValue" value="true"/>
</property>
</interface>
</node>

View File

@ -1,4 +1,4 @@
i18n.merge_file('com.endlessm.ParentalControls.policy',
i18n.merge_file(
input: 'com.endlessm.ParentalControls.policy.in',
output: 'com.endlessm.ParentalControls.policy',
po_dir: po_dir,

View File

@ -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])

View File

@ -3,7 +3,9 @@
<info>
<link type="guide" xref="index#setup"/>
<include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude"/>
<desc>Overview of parental controls and the <app>Parental Controls</app> application.</desc>
<desc>Overview of parental controls, the <app>Parental Controls</app>
application and its use in other situations where access restrictions are
needed on a user.</desc>
<link type="seealso" xref="creating-a-child-user"/>
</info>
@ -15,7 +17,7 @@
supervision.</p>
<p>This functionality can be used in other situations ­ such as other
carer/caree relationships but is labelled as parental controls so that
its easy to find.</p>
its easy to find, as thats what most people will be looking for.</p>
<p>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

View File

@ -8,10 +8,11 @@
<title>Restricting Software Installation</title>
<p>You can prevent a user from installing additional software, either for the
entire system, or just for themselves. 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.</p>
<p>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.</p>
<p>Additionally, you can restrict which software a user can browse or search
for in the <app>Software</app> catalog by age categories.</p>
@ -27,18 +28,7 @@
<item><p>Open the <app>Parental Controls</app> application.</p></item>
<item><p>Select the user in the tabs at the top.</p></item>
<item><p>Enable the <gui style="checkbox">Restrict Application Installation</gui> checkbox.</p></item>
<item><p>Or enable the <gui style="checkbox">Restrict Application Installation for Others</gui> checkbox.</p></item>
</steps>
<p>The <gui style="checkbox">Restrict Application Installation for Others</gui>
checkbox allows the user to install additional software for themselves, but
prevents that software from being made available to other users. It could be
used, for example, if there were two child users, one of whom is mature
enough to be allowed to install additional software, but the other isnt —
enabling <gui style="checkbox">Restrict Application Installation for Others</gui>
would prevent the more mature child from installing applications which are
inappropriate for the other child and making them available to the other
child.</p>
</section>
<section id="oars">

View File

@ -1,6 +1,13 @@
# please keep this list sorted alphabetically
da
de
es
hu
id
it
pl
pt_BR
ru
sv
tr
uk

457
help/da/da.po Normal file
View File

@ -0,0 +1,457 @@
# Danish translation for malcontent.
# Copyright (C) 2020 malcontent's COPYRIGHT HOLDER
# This file is distributed under the same license as the malcontent package.
# scootergrisen, 2020.
# scootergrisen: oversættelsen er ikke afprøvet
msgid ""
msgstr ""
"Project-Id-Version: malcontent master\n"
"POT-Creation-Date: 2020-10-11 03:28+0000\n"
"PO-Revision-Date: 2020-11-18 00:00+0200\n"
"Last-Translator: scootergrisen\n"
"Language-Team: Danish\n"
"Language: da\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"
#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
msgctxt "_"
msgid "translator-credits"
msgstr "scootergrisen <>, 2020"
#. (itstool) path: info/desc
#: C/creating-a-child-user.page:6
msgid "Creating a child user on the computer."
msgstr "Oprettelse af en barnebruger på computeren."
#. (itstool) path: page/title
#: C/creating-a-child-user.page:9
msgid "Creating a Child User"
msgstr "Oprettelse af en barnebruger"
#. (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 ""
"Forældrestyring kan kun anvendes på konti som ikke er administrator. En "
"sådan konto kan være blevet oprettet, første gang computeren blev opsat. Er "
"det ikke tilfældet, så kan der oprettes en ny barnebruger i programmet "
"<app>Forældrestyring</app>, hvis der ikke allerede findes en barnebruger, "
"ellers kan den oprettes i <app>Kontrolpanel</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 ""
"Se <link type=\"guide\" xref=\"help:gnome-"
"help/user-add\">Tilføj en ny brugerkonto</link>, for at oprette en ny barnebruger. Den nye bruger vises i "
"vinduet <app>Forældrestyring</app>, så snart den er oprettet, så dens "
"forældrestyringsindstillinger kan konfigureres."
#. (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 "Hjælp til Forældrestyring"
#. (itstool) path: section/title
#: C/index.page:15
msgid "Introduction &amp; Setup"
msgstr "Introduktion og opsætning"
#. (itstool) path: section/title
#: C/index.page:19
msgid "Controls to Apply"
msgstr "Styring som kan anvendes"
#. (itstool) path: info/desc
#: C/internet.page:6
msgid "Restricting a child users access to the internet."
msgstr "Begrænsning af en barnebrugers adgang til internettet."
#. (itstool) path: page/title
#: C/internet.page:9
msgid "Restricting Access to the Internet"
msgstr "Begrænsning af adgang til internettet"
#. (itstool) path: page/p
#: C/internet.page:11
msgid ""
"You can restrict a users 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 ""
"Du kan begrænse en brugers adgang til internettet. Det forhindrer dem i at "
"bruge en webbrowser, men det forhindrer dem ikke i at bruge internettet (i "
"potentielt mere begrænset form) gennem andre programmer. Det vil f.eks. "
"ikke forhindre adgang til e-mailkonti med <app>Evolution</app> og det "
"forhindrer ikke softwareopdateringer i at blive downloadet og installeret."
#. (itstool) path: page/p
#: C/internet.page:17
msgid "To restrict a users access to the internet:"
msgstr "Sådan begrænses en brugers adgang til internettet:"
#. (itstool) path: item/p
#: C/internet.page:19 C/restricting-applications.page:20
#: C/software-installation.page:27 C/software-installation.page:64
msgid "Open the <app>Parental Controls</app> application."
msgstr "Åbn programmet <app>Forældrestyring</app>."
#. (itstool) path: item/p
#: C/internet.page:20 C/restricting-applications.page:21
#: C/software-installation.page:28 C/software-installation.page:65
msgid "Select the user in the tabs at the top."
msgstr "Vælg brugeren i fanebladene øverst."
#. (itstool) path: item/p
#: C/internet.page:21
msgid ""
"Enable the <gui style=\"checkbox\">Restrict Web Browsers</gui> checkbox."
msgstr ""
"Aktivér afkrydsningsboksen <gui style=\"checkbox\">Begræns webbrowsere</gui>."
#. (itstool) path: info/desc
#: C/introduction.page:6
msgid ""
"Overview of parental controls and the <app>Parental Controls</app> "
"application."
msgstr "Overblik over forældrestyring og programmet <app>Forældrestyring</app>."
#. (itstool) path: page/title
#: C/introduction.page:10
msgid "Introduction to Parental Controls"
msgstr "Introduktion til Forældrestyring"
#. (itstool) path: page/p
#: C/introduction.page:12
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 ""
"Forældrestyring er et måde til at begrænse, hvad konti, som ikke er "
"administrator, kan gøre på computeren med det mål at give forældre mulighed "
"for at begrænse, hvad deres børn kan, når de bruger computeren uden opsyn "
"eller under begrænset opsyn."
# scootergrisen: fra gennemlæsning: det skal nok ikke forstås som en plejesituation som på et plejehjem, men som et forhold mellem dem, der bestemmer, og dem der bliver bestemt over
# scootergrisen: fra gennemlæsning: Prøv med: såsom andre forhold mellem myndige og umyndige
#. (itstool) path: page/p
#: C/introduction.page:16
msgid ""
"This functionality can be used in other situations ­ such as other carer/"
"caree relationships but is labelled as parental controls so that its "
"easy to find."
msgstr ""
"Funktionaliteten kan bruges i andre situationer ­ såsom et andet forhold mellem "
"plejer og plejede men kaldes forældrestyring for at det skal være let at finde."
#. (itstool) path: page/p
#: C/introduction.page:19
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 ""
"Forældrestyringen kan for alle brugere forespørges og indstilles med "
"programmet <app>Forældrestyring</app>. Det viser de konti, som ikke er "
"administrator, i faneblade langs den øverste linje og viser deres nuværende "
"forældrestyringsindstillinger nedenfor. Ændringer til forældrestyringen "
"anvendes straks."
#. (itstool) path: page/p
#: C/introduction.page:23
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 users "
"account by entering their password when prompted by the <app>Parental "
"Controls</app> application."
msgstr ""
"Begrænsninger i at bruge computeren kan kun anvendes på konti som ikke er "
"administrator. Forældrestyringsindstillingerne til en bruger kan kun ændres "
"af en administrator, dog kan administratoren gøre det fra brugerens konto "
"ved at indtaste deres adgangskode når de bliver spurgt om det i programmet "
"<app>Forældrestyring</app>."
#. (itstool) path: p/link
#: C/legal.xml:4
msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License"
msgstr ""
"Creative Commons Kreditering-Deling på samme vilkår 3.0 Ikke porteret-licens"
#. (itstool) path: license/p
#: C/legal.xml:3
msgid "This work is licensed under a <_:link-1/>."
msgstr "Værket er licenseret under en <_:link-1/>."
#. (itstool) path: info/desc
#: C/restricting-applications.page:6
msgid "Restricting a child user from running already-installed applications."
msgstr ""
"Begrænsning af en barnebruger i at køre programmer som allerede er "
"installeret."
#. (itstool) path: page/title
#: C/restricting-applications.page:9
msgid "Restricting Access to Installed Applications"
msgstr "Begrænsning af adgang til installerede programmer"
#. (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 ""
"Du kan forhindre en bruger i at køre bestemte programmer som allerede er "
"installeret på computeren. Det kan være nyttigt hvis andre brugere har brug "
"for de programmet men de ikke er egnet til et barn."
#. (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 ""
"Når der installeres yderligere software bør du overveje om det skal "
"begrænses til nogle brugere — nyligt "
"installeret software kan bruges af alle brugere som standard."
#. (itstool) path: page/p
#: C/restricting-applications.page:18
msgid "To restrict a users access to a specific application:"
msgstr "Sådan begrænses en brugers adgang til et bestemt program:"
#. (itstool) path: item/p
#: C/restricting-applications.page:22
msgid "Press the <gui style=\"button\">Restrict Applications</gui> button."
msgstr "Tryk på knappen <gui style=\"button\">Begræns programmer</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 ""
"Aktivér kontakten i rækken ved de programmer du vil begrænse brugeren i at få "
"adgang til."
#. (itstool) path: item/p
#: C/restricting-applications.page:24
msgid "Close the <gui>Restrict Applications</gui> window."
msgstr "Luk vinduet <gui>Begræns programmer</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 ""
"Begrænsning af adgang til bestemte programmer bruges ofte sammen med <link "
"xref=\"software-installation\"/> for at forhindre en bruger i at installere "
"yderligere software som ikke er blevet undersøgt."
# scootergrisen: her er både "Restricting" og "preventing" brugt
# scootergrisen: så måske de ikke begge skal være samme ord
#. (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 ""
"Begrænsning af den software en barnebruger kan installere eller helt forhindre "
"dem i at installere yderligere software."
#. (itstool) path: page/title
#: C/software-installation.page:9
msgid "Restricting Software Installation"
msgstr "Begrænsning af softwareinstallation"
#. (itstool) path: page/p
#: C/software-installation.page:11
msgid ""
"You can prevent a user from installing additional software, either for the "
"entire system, or just for themselves. 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."
msgstr ""
"Du kan forhindre en bruger i at installere yderligere software, enten for "
"hele systemet eller blot sig selv. De vil stadigvæk være i stand til at søge "
"efter ny software der skal installeres, men en administrator skal godkende "
"installationen når de forsøger at installere et program."
#. (itstool) path: page/p
#: C/software-installation.page:16
msgid ""
"Additionally, you can restrict which software a user can browse or search "
"for in the <app>Software</app> catalog by age categories."
msgstr ""
"Derudover kan du begrænse, hvilken software en bruger kan gennemse eller søge "
"efter i <app>Software</app>-kataloget efter aldersgruppekategorier."
#. (itstool) path: page/p
#: C/software-installation.page:19
msgid ""
"To prevent a user from running an application which has already been "
"installed, see <link xref=\"restricting-applications\"/>."
msgstr ""
"For at forhindre en bruger i at køre et program som allerede er blevet "
"installeret, se <link xref=\"restricting-applications\"/>."
#. (itstool) path: section/title
#: C/software-installation.page:23
msgid "Preventing Software Installation"
msgstr "Forhindring af softwareinstallation"
#. (itstool) path: section/p
#: C/software-installation.page:25
msgid "To prevent a user from installing additional software:"
msgstr "Sådan forhindres en bruger i at installere yderligere software:"
#. (itstool) path: item/p
#: C/software-installation.page:29
msgid ""
"Enable the <gui style=\"checkbox\">Restrict Application Installation</gui> "
"checkbox."
msgstr ""
"Aktivér afkrydsningsboksen <gui style=\"checkbox\">Begræns "
"programinstallation</gui>."
#. (itstool) path: item/p
#: C/software-installation.page:30
msgid ""
"Or enable the <gui style=\"checkbox\">Restrict Application Installation for "
"Others</gui> checkbox."
msgstr ""
"Eller aktivér afkrydsningsboksen <gui style=\"checkbox\">Begræns "
"programinstallation for andre</gui>."
#. (itstool) path: section/p
#: C/software-installation.page:33
msgid ""
"The <gui style=\"checkbox\">Restrict Application Installation for Others</"
"gui> checkbox allows the user to install additional software for themselves, "
"but prevents that software from being made available to other users. It "
"could be used, for example, if there were two child users, one of whom is "
"mature enough to be allowed to install additional software, but the other "
"isnt — enabling <gui style=\"checkbox\">Restrict Application Installation "
"for Others</gui> would prevent the more mature child from installing "
"applications which are inappropriate for the other child and making them "
"available to the other child."
msgstr ""
"Afkrydsningsboksen <gui style=\"checkbox\">Begræns programinstallation for "
"andre</gui> giver brugeren mulighed for at installere yderligere software "
"til sig selv, men forhindrer softwaren i at blive gjort tilgængelig for andre "
"brugere. Det kan f.eks. bruges, hvis der er to barnebrugere, hvoraf en af dem "
"er moden nok til at få tilladelse til at installere yderligere software, men "
"den anden ikke er — hvis <gui style=\"checkbox\">Begræns programinstallation "
"for andre</gui> tillades vil det forhindre det modne barn i at installere "
"programmer, som kan være uegnet for det andet barn og gøre dem tilgængelige "
"for det andet barn."
#. (itstool) path: section/title
#: C/software-installation.page:45
msgid "Restricting Software Installation by Age"
msgstr "Begrænsning af softwareinstallation efter aldersgruppe"
# scootergrisen: find god oversættelse af "unmoderated"
#. (itstool) path: section/p
#: C/software-installation.page:47
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 ""
"Programmer i <app>Software</app>-kataloget har information om deres indhold "
"som kan være uegnet til nogle aldersgrupper — f.eks. diverse former for "
"vold, umodereret chat med andre personer på internettet eller muligheden for "
"at bruge penge."
# scootergrisen: find ud af hvordan "suitable for ages 7+" er oversat andet sted
#. (itstool) path: section/p
#: C/software-installation.page:51
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 ""
"Informationen er opsummeret i hvert program som den laveste alder for børn "
"det typisk er egnet for at blive brugt af — f.eks. “suitable for ages 7+”. "
"Disse aldersvurderinger præsenteres i områdespecifikke modeller som kan "
"sammenlignes med de vurderingsmodeller som bruges til film og spil."
# scootergrisen: tjek "age suitability". Findes to gange
#. (itstool) path: section/p
#: C/software-installation.page:55
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 ""
"De programmer, som vises til en bruger i <app>Software</app>-kataloget, kan "
"filtreres efter den aldersgruppe, de er egnet til. Programmer, som ikke er "
"egnet til brugeren, skjules og kan ikke installeres af den bruger. De kan "
"installeres af andre brugere (hvis aldersgruppen de er egnet til er "
"indstillet højt nok)."
#. (itstool) path: section/p
#: C/software-installation.page:61
msgid ""
"To filter the applications seen by a user in the <app>Software</app> catalog "
"to only those suitable for a certain age:"
msgstr ""
"Sådan filtreres de programmer en bruger kan se i "
"<app>Software</app>-kataloget til dem der kun er egnet til en bestemt "
"aldersgruppe:"
#. (itstool) path: item/p
#: C/software-installation.page:66
msgid ""
"In the <gui>Application Suitability</gui> list, select the age which "
"applications should be suitable for."
msgstr ""
"Vælg den aldersgruppe som programmerne "
"skal være egnet til i listen <gui>Programegnethed</gui>."
#. (itstool) path: note/p
#: C/software-installation.page:70
msgid ""
"The users 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 ""
"Brugerens rigtige alder gemmes ikke, så <gui>Programegnethed</gui> opdateres "
"ikke automatisk efterhånden som barnet bliver ældre. Du skal periodisk "
"revurdere den passende <gui>Programegnethed</gui> til hver bruger."

362
help/de/de.po Normal file
View File

@ -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 &amp; 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 users 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 users 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 users 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 its "
"easy to find, as thats 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 users "
"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 users 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 users 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 ""

441
help/hu/hu.po Normal file
View File

@ -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 &amp; 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 users 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 users 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 users 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 its "
"easy to find, as thats 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 users "
"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 users 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 users 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."

View File

@ -1,25 +1,25 @@
# Indonesian translation for malcontent.
# Copyright (C) 2020 malcontent's COPYRIGHT HOLDER
# This file is distributed under the same license as the malcontent package.
# Andika Triwidada <atriwidada@gnome.org>, 2020.
# Andika Triwidada <andika@gmail.com>, 2020, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: malcontent master\n"
"POT-Creation-Date: 2020-04-11 15:30+0000\n"
"PO-Revision-Date: 2020-04-12 17:20+0700\n"
"POT-Creation-Date: 2020-12-18 15:14+0000\n"
"PO-Revision-Date: 2021-08-30 18:26+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: id\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"X-Generator: Poedit 2.3\n"
"X-Generator: Poedit 2.4.3\n"
#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
msgctxt "_"
msgid "translator-credits"
msgstr "Andika Triwidada <andika@gmail.com>, 2020"
msgstr "Andika Triwidada <andika@gmail.com>, 2020, 2021."
#. (itstool) path: info/desc
#: C/creating-a-child-user.page:6
@ -117,13 +117,13 @@ msgstr "Untuk membatasi akses pengguna ke internet:"
#. (itstool) path: item/p
#: C/internet.page:19 C/restricting-applications.page:20
#: C/software-installation.page:27 C/software-installation.page:64
#: C/software-installation.page:28 C/software-installation.page:54
msgid "Open the <app>Parental Controls</app> application."
msgstr "Buka aplikasi <app>Pengawasan Orang Tua</app>."
#. (itstool) path: item/p
#: C/internet.page:20 C/restricting-applications.page:21
#: C/software-installation.page:28 C/software-installation.page:65
#: C/software-installation.page:29 C/software-installation.page:55
msgid "Select the user in the tabs at the top."
msgstr "Pilih pengguna di tab di bagian atas."
@ -137,18 +137,21 @@ msgstr ""
#. (itstool) path: info/desc
#: C/introduction.page:6
msgid ""
"Overview of parental controls and the <app>Parental Controls</app> "
"application."
"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 ""
"Ikhtisar pengawasan orang tua dan aplikasi <app>Pengawasan Orang Tua</app>."
"Ikhtisar pengawasan orang tua, aplikasi <app>Pengawasan Orang Tua</app>, dan "
"penggunaannya dalam situasi lain dimana pembatasan akses diperlukan pada "
"seorang pengguna."
#. (itstool) path: page/title
#: C/introduction.page:10
#: C/introduction.page:12
msgid "Introduction to Parental Controls"
msgstr "Pengenalan untuk Pengawasan Orang Tua"
#. (itstool) path: page/p
#: C/introduction.page:12
#: 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 "
@ -161,18 +164,18 @@ msgstr ""
"komputer tanpa pengawasan atau di bawah supervisi yang terbatas."
#. (itstool) path: page/p
#: C/introduction.page:16
#: 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 its "
"easy to find."
"easy to find, as thats what most people will be looking for."
msgstr ""
"Fungsi ini dapat digunakan dalam situasi lain seperti hubungan perawat/"
"terrawat lainnya tetapi diberi label sebagai 'pengawasan orang tua' "
"sehingga mudah ditemukan."
"sehingga mudah ditemukan, karena itulah yang kebanyakan orang akan cari."
#. (itstool) path: page/p
#: C/introduction.page:19
#: 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 "
@ -186,7 +189,7 @@ msgstr ""
"orang tua akan segera berlaku."
#. (itstool) path: page/p
#: C/introduction.page:23
#: 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 "
@ -294,19 +297,20 @@ msgstr "Membatasi Instalasi Perangkat Lunak"
#. (itstool) path: page/p
#: C/software-installation.page:11
msgid ""
"You can prevent a user from installing additional software, either for the "
"entire system, or just for themselves. 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."
"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 ""
"Anda dapat mencegah pengguna dari menginstal perangkat lunak tambahan, baik "
"Anda dapat mencegah pengguna dari memasang perangkat lunak tambahan, baik "
"untuk seluruh sistem, atau hanya untuk diri mereka sendiri. Mereka masih "
"akan dapat mencari perangkat lunak baru untuk diinstal, tetapi akan "
"akan dapat mencari perangkat lunak baru untuk dipasang, tetapi akan "
"memerlukan administrator untuk mengesahkan instalasi ketika mereka mencoba "
"untuk menginstal aplikasi."
"untuk memasang aplikasi."
#. (itstool) path: page/p
#: C/software-installation.page:16
#: 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."
@ -316,7 +320,7 @@ msgstr ""
"kategori usia."
#. (itstool) path: page/p
#: C/software-installation.page:19
#: C/software-installation.page:20
msgid ""
"To prevent a user from running an application which has already been "
"installed, see <link xref=\"restricting-applications\"/>."
@ -325,17 +329,17 @@ msgstr ""
"<link xref=\"restricting-applications\"/> ."
#. (itstool) path: section/title
#: C/software-installation.page:23
#: C/software-installation.page:24
msgid "Preventing Software Installation"
msgstr "Mencegah Instalasi Perangkat Lunak"
#. (itstool) path: section/p
#: C/software-installation.page:25
#: C/software-installation.page:26
msgid "To prevent a user from installing additional software:"
msgstr "Untuk mencegah pengguna menginstal perangkat lunak tambahan:"
#. (itstool) path: item/p
#: C/software-installation.page:29
#: C/software-installation.page:30
msgid ""
"Enable the <gui style=\"checkbox\">Restrict Application Installation</gui> "
"checkbox."
@ -343,45 +347,13 @@ msgstr ""
"Fungsikan kotak centang <gui style=\"checkbox\">Batasi Pemasangan Aplikasi</"
"gui>."
#. (itstool) path: item/p
#: C/software-installation.page:30
msgid ""
"Or enable the <gui style=\"checkbox\">Restrict Application Installation for "
"Others</gui> checkbox."
msgstr ""
"Atau fungsikan kotak centang <gui style=\"checkbox\">Batasi Pemasangan "
"Aplikasi untuk Orang Lain</gui>."
#. (itstool) path: section/p
#: C/software-installation.page:33
msgid ""
"The <gui style=\"checkbox\">Restrict Application Installation for Others</"
"gui> checkbox allows the user to install additional software for themselves, "
"but prevents that software from being made available to other users. It "
"could be used, for example, if there were two child users, one of whom is "
"mature enough to be allowed to install additional software, but the other "
"isnt — enabling <gui style=\"checkbox\">Restrict Application Installation "
"for Others</gui> would prevent the more mature child from installing "
"applications which are inappropriate for the other child and making them "
"available to the other child."
msgstr ""
"Kotak centang <gui style=\"checkbox\">Batasi Pemasangan Aplikasi untuk Orang "
"Lain</gui> memungkinkan pengguna untuk menginstal perangkat lunak tambahan "
"untuk diri mereka sendiri, tetapi mencegah bahwa perangkat lunak yang dibuat "
"tersedia untuk pengguna lain. Hal ini dapat digunakan, misalnya, jika ada "
"dua pengguna anak, salah satunya cukup dewasa untuk diizinkan untuk "
"menginstal perangkat lunak tambahan, tetapi yang lain tidak — memfungsikan "
"<gui style=\"checkbox\">Batasi Pemasangan Aplikasi untuk Orang Lain</gui> "
"akan mencegah anak yang lebih dewasa dari menginstal aplikasi yang tidak "
"pantas untuk anak lain dan membuat mereka tersedia untuk anak lain."
#. (itstool) path: section/title
#: C/software-installation.page:45
#: C/software-installation.page:35
msgid "Restricting Software Installation by Age"
msgstr "Membatasi Instalasi Perangkat Lunak berdasarkan Umur"
#. (itstool) path: section/p
#: C/software-installation.page:47
#: 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 "
@ -394,7 +366,7 @@ msgstr ""
"lain di internet, atau kemungkinan membelanjakan uang."
#. (itstool) path: section/p
#: C/software-installation.page:51
#: 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 "
@ -407,7 +379,7 @@ msgstr ""
"dibandingkan dengan skema penilaian yang digunakan untuk film dan permainan."
#. (itstool) path: section/p
#: C/software-installation.page:55
#: 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 "
@ -421,7 +393,7 @@ msgstr ""
"kesesuaian usia mereka ditetapkan cukup tinggi)."
#. (itstool) path: section/p
#: C/software-installation.page:61
#: 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:"
@ -430,7 +402,7 @@ msgstr ""
"<app>Perangkat Lunak</app> agar hanya yang cocok untuk usia tertentu:"
#. (itstool) path: item/p
#: C/software-installation.page:66
#: C/software-installation.page:56
msgid ""
"In the <gui>Application Suitability</gui> list, select the age which "
"applications should be suitable for."
@ -439,7 +411,7 @@ msgstr ""
"cocok."
#. (itstool) path: note/p
#: C/software-installation.page:70
#: C/software-installation.page:60
msgid ""
"The users actual age is not stored, so the <gui>Application Suitability</"
"gui> is not automatically updated over time as the child grows older. You "

450
help/it/it.po Normal file
View File

@ -0,0 +1,450 @@
# Italian translations for malcontent.
# Copyright © 2020 the malcontent authors.
# This file is distributed under the same license as the malcontent package.
# Albano Battistella <albano_battistella@hotmail.com>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: malcontent master\n"
"POT-Creation-Date: 2020-04-24 15:30+0000\n"
"PO-Revision-Date: 2022-01-07 15:41+0100\n"
"Last-Translator: Albano Battistella <albano_battistella@hotmail.com>\n"
"Language-Team: Italian\n"
"Language: it\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 2.4.1\n"
#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
msgctxt "_"
msgid "translator-credits"
msgstr "Albano Battistella <albano_battistella@hotmail.com>, 2022."
#. (itstool) path: info/desc
#: C/creating-a-child-user.page:6
msgid "Creating a child user on the computer."
msgstr "Creazione di un account per bambini sul computer."
#. (itstool) path: page/title
#: C/creating-a-child-user.page:9
msgid "Creating a Child User"
msgstr "Creazione un Account per Bambini"
#. (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 ""
"Il controllo parentale può essere applicato solo agli account non-amministratore."
"Al momento potrebbe essere stato creato un account di questo tipo "
"dalla configurazione iniziale del computer. In caso contrario, è possibile creare un "
"nuovo account per bambino dall'applicazione <app>Controllo Parentale</app> o "
"tramite le <app>Impostazioni</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 ""
"Per creare un nuovo utente per bambino, vedere <link type =\"guide\" xref=\"help:gnome-help/"
"user-add\">Aggiungi un nuovo account utente</link>. Non appena il nuovo utente sarà "
"creato, apparirà nella finestra <app>Controllo Parentale</app> in modo che "
"le sue impostazioni di controllo parentale possano essere configurate."
#. (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 "Aiuto sui controlli parentali"
#. (itstool) path: section/title
#: C/index.page:15
msgid "Introduction &amp; Setup"
msgstr "Introduzione e configurazione"
#. (itstool) path: section/title
#: C/index.page:19
msgid "Controls to Apply"
msgstr "Controlli da applicare"
#. (itstool) path: info/desc
#: C/internet.page:6
msgid "Restricting a child users access to the internet."
msgstr "Limitare l'accesso a Internet da parte di un minore"
#. (itstool) path: page/title
#: C/internet.page:9
msgid "Restricting Access to the Internet"
msgstr "Limitare l'accesso a Internet"
#. (itstool) path: page/p
#: C/internet.page:11
msgid ""
"You can restrict a users 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 ""
"È possibile limitare l'accesso di un utente a Internet. Questo gli impedirà "
"di usare un browser web, ma non limiterà la connessione a Internet (in forma limitata) di "
"altre applicazioni. Ad esempio, non impedirà l'accesso agli account di "
"e-mail utilizzando <app>Evolution</app>, né impedirà il download ed "
"applicazione di aggiornamenti software."
#. (itstool) path: page/p
#: C/internet.page:17
msgid "To restrict a users access to the internet:"
msgstr "Per limitare l'accesso di un utente a Internet:"
#. (itstool) path: item/p
#: C/internet.page:19 C/restricting-applications.page:20
#: C/software-installation.page:27 C/software-installation.page:64
msgid "Open the <app>Parental Controls</app> application."
msgstr "Apri l'app <app>Controllo Parentale</app>."
#. (itstool) path: item/p
#: C/internet.page:20 C/restricting-applications.page:21
#: C/software-installation.page:28 C/software-installation.page:65
msgid "Select the user in the tabs at the top."
msgstr "Nelle schede in alto, seleziona l'account desiderato."
#. (itstool) path: item/p
#: C/internet.page:21
msgid ""
"Enable the <gui style=\"checkbox\">Restrict Web Browsers</gui> checkbox."
msgstr ""
"Seleziona la casella <gui style=\"checkbox\">Limita i browser web</gui>."
#. (itstool) path: info/desc
#: C/introduction.page:6
msgid ""
"Overview of parental controls and the <app>Parental Controls</app> "
"application."
msgstr ""
"Panoramica del controllo parentale e dell'applicazione "
"<app>Controllo Parentale</app>."
#. (itstool) path: page/title
#: C/introduction.page:10
msgid "Introduction to Parental Controls"
msgstr "Introduzione al Controllo Parentale"
#. (itstool) path: page/p
#: C/introduction.page:12
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 ""
"Il controllo parentale è un modo per limitare ciò che gli account non-amministratore possono "
"fare al computer, con l'obiettivo di consentire ai genitori di limitare ciò che i loro "
"bambini possono fare quando usano il computer senza sorveglianza o sotto una supervisione "
"limitata."
#. (itstool) path: page/p
#: C/introduction.page:16
msgid ""
"This functionality can be used in other situations ­ such as other carer/"
"caree relationships but is labelled as parental controls so that its "
"easy to find."
msgstr ""
"Questa funzionalità può essere utilizzata in altre situazioni, ad esempio per altri tutori/"
"relazioni di carriera - ma è etichettato comecontrollo parentale in modo che sia "
"facile da trovare."
#. (itstool) path: page/p
#: C/introduction.page:19
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 ""
"L'applicazione <app>Controllo Parentale</app> consente le query "
"a qualsiasi titolo e definisce i controlli per ciascuno. L'applicazione "
"elenca tutti gli account non-amministratore sotto forma di schede nella "
"barra superiore della finestra e sotto mostra i controlli definiti "
"attualmente. Le modifiche al controllo parentale hanno effetto immediato."
#. (itstool) path: page/p
#: C/introduction.page:23
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 users "
"account by entering their password when prompted by the <app>Parental "
"Controls</app> application."
msgstr ""
"Le restrizioni sull'uso dei computer possono essere applicate solo agli account "
"non-amministratore. Le impostazioni del controllo parentale per un utente possono "
"essere modificate solo da un amministratore, anche se l'amministratore può farlo dall'utente "
"account inserendo la password quando richiesto dall'applicazione "
"<app>Controllo Parentale</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 "Quest'opera è sotto licenza <_:link-1/>."
#. (itstool) path: info/desc
#: C/restricting-applications.page:6
msgid "Restricting a child user from running already-installed applications."
msgstr "Limita l'utilizzo di applicazioni già installate ai minori."
#. (itstool) path: page/title
#: C/restricting-applications.page:9
msgid "Restricting Access to Installed Applications"
msgstr "Limita l'accesso alle applicazioni installate"
#. (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 ""
"Puoi impedire ad un utente di eseguire applicazioni specifiche che sono già "
"installate nel computer. Questo potrebbe essere utile se altri utenti hanno bisogno "
"di queste applicazioni ma che non siano appropriate per un bambino."
#. (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 ""
"Durante l'installazione di software aggiuntivo, è necessario considerare se sia necessario "
"limitarlo per alcuni utenti: il software appena installato è utilizzabile da tutti gli "
"utenti per impostazione predefinita."
#. (itstool) path: page/p
#: C/restricting-applications.page:18
msgid "To restrict a users access to a specific application:"
msgstr "Per limitare l'accesso di un utente a un'applicazione specifica:"
#. (itstool) path: item/p
#: C/restricting-applications.page:22
msgid "Press the <gui style=\"button\">Restrict Applications</gui> button."
msgstr "Premi il pulsante <gui style=\"button\">Limita Applicazioni</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 ""
"Attiva l'interruttore nella riga per ogni app che desideri limitare."
#. (itstool) path: item/p
#: C/restricting-applications.page:24
msgid "Close the <gui>Restrict Applications</gui> window."
msgstr "Chiudi la finestra <gui>Limita Applicazioni</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 ""
"Spesso viene utilizzata la limitazione dell'accesso a determinate applicazioni "
"Con <link xref=\"software-installation\"/> per evitare che venga installato "
"software senza che sia stato verificato."
#. (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 ""
"Limita il software che un minore può installare o impediscigli di "
"installare completamente software aggiuntivo."
#. (itstool) path: page/title
#: C/software-installation.page:9
msgid "Restricting Software Installation"
msgstr "Limitare Installazione di Software"
#. (itstool) path: page/p
#: C/software-installation.page:11
msgid ""
"You can prevent a user from installing additional software, either for the "
"entire system, or just for themselves. 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."
msgstr ""
"Puoi impedire ad un utente di installare software aggiuntivo, sia per l'intero "
"sistema, sia per te stesso. Sarà ancora in grado di cercare nuovo software "
"da installare, ma se proverà ad installarlo dovrà avere l'aiuto di un "
"amministratore per l'autorizzazione."
#. (itstool) path: page/p
#: C/software-installation.page:16
msgid ""
"Additionally, you can restrict which software a user can browse or search "
"for in the <app>Software</app> catalog by age categories."
msgstr ""
"Inoltre, se utilizzi le categorie di età in <app>Software</app>, "
"puoi limitare quale software può essere sfogliato nel tuo catalogo."
#. (itstool) path: page/p
#: C/software-installation.page:19
msgid ""
"To prevent a user from running an application which has already been "
"installed, see <link xref=\"restricting-applications\"/>."
msgstr ""
"Per impedire a un utente di eseguire un'applicazione precedentemente installata, "
"vedere <link xref=\"restricting-applications\"/>."
#. (itstool) path: section/title
#: C/software-installation.page:23
msgid "Preventing Software Installation"
msgstr "Evitare l'installazione di software"
#. (itstool) path: section/p
#: C/software-installation.page:25
msgid "To prevent a user from installing additional software:"
msgstr ""
"Seguire questa procedura per impedire l'installazione di software aggiuntivo:"
#. (itstool) path: item/p
#: C/software-installation.page:29
msgid ""
"Enable the <gui style=\"checkbox\">Restrict Application Installation</gui> "
"checkbox."
msgstr ""
"Selezionare la casella <gui style=\"checkbox\">Limita l'installazione di "
"Applicazioni</gui>."
#. (itstool) path: item/p
#: C/software-installation.page:30
msgid ""
"Or enable the <gui style=\"checkbox\">Restrict Application Installation for "
"Others</gui> checkbox."
msgstr ""
"Oppure, seleziona la casella <gui style=\"checkbox\">Limita l'installazione di "
"applicazioni per gli altri</gui>."
#. (itstool) path: section/p
#: C/software-installation.page:33
msgid ""
"The <gui style=\"checkbox\">Restrict Application Installation for Others</"
"gui> checkbox allows the user to install additional software for themselves, "
"but prevents that software from being made available to other users. It "
"could be used, for exampcheckboxle, if there were two child users, one of whom is "
"mature enough to be allowed to install additional software, but the other "
"isnt — enabling <gui style=\"\">Restrict Application Installation "
"for Others</gui> would prevent the more mature child from installing "
"applications which are inappropriate for the other child and making them "
"available to the other child."
msgstr ""
"La casella <gui style=\"checkbox\">Limita l'installazione di applicazioni "
"ad altri</gui> consente l'installazione di software aggiuntivo per se stessi, "
"ma ne limita la disponibilità agli altri account. Potrebbe essere usato "
"approfittando di questa funzione, ad esempio, se hai due minorenni, di cui "
"solo uno è abbastanza maturo da potersi installare software "
"abilitando <gui style=\"checkbox\">Limita l'installazione di "
"applicazioni ad altri</gui> impedirà al minore più maturo di installare "
"applicazioni inadeguate per l'altro bambino."
#. (itstool) path: section/title
#: C/software-installation.page:45
msgid "Restricting Software Installation by Age"
msgstr "Limitare l'installazione del software in base all'età"
#. (itstool) path: section/p
#: C/software-installation.page:47
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 ""
"Le applicazioni incluse nel catalogo di <app>Software</app> "
"includono informazioni riguardanti il contenuto che possiedono e la sua idoneità "
"secondo l'età, annotando dettagli come: varie forme di violenza, chat non "
"moderate con altre persone tramite internet, o la capacità di spendere "
"soldi."
#. (itstool) path: section/p
#: C/software-installation.page:51
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 ""
"In ogni applicazione, questa informazione è condensata come l'età minima "
"che è ritenuta appropriata per un minore utilizzarla; ad esempio,“7 anni o +“. "
"Queste classificazioni sono presentate in conformità con alcuni "
"schemi regionali, paragonabili a quelli utilizzati per classificare "
"film e giochi."
#. (itstool) path: section/p
#: C/software-installation.page:55
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 ""
"Le applicazioni <app>Software</app> mostrate a ciascun utente possono essere "
"filtrate per adeguatezza all'età. Le applicazioni non adatte per un account "
"verranno nascoste dal catalogo e non potranno essere installate. "
"Altri utenti potranno installarle (se la loro fascia d'età è tale che lo si permetta)."
#. (itstool) path: section/p
#: C/software-installation.page:61
msgid ""
"To filter the applications seen by a user in the <app>Software</app> catalog "
"to only those suitable for a certain age:"
msgstr ""
"Per filtrare le applicazioni che vede un utente nel catalogo "
"<app>Software</app> e che solo quelli appropriati vengono mostrati per una "
"certa età:"
#. (itstool) path: item/p
#: C/software-installation.page:66
msgid ""
"In the <gui>Application Suitability</gui> list, select the age which "
"applications should be suitable for."
msgstr ""
"Nella lista <gui>Idoneità dell'applicazione</gui>, selezionare l'età desiderata."
#. (itstool) path: note/p
#: C/software-installation.page:70
msgid ""
"The users 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 ""
"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."

View File

@ -7,14 +7,14 @@
msgid ""
msgstr ""
"Project-Id-Version: malcontent-help\n"
"POT-Creation-Date: 2020-04-12 03:55+0000\n"
"PO-Revision-Date: 2020-04-12 15:33+0200\n"
"POT-Creation-Date: 2020-12-18 15:14+0000\n"
"PO-Revision-Date: 2020-12-20 13:22+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <community-poland@mozilla.org>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pl\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
@ -123,13 +123,13 @@ msgstr "Aby ograniczyć dostęp użytkownika do Internetu:"
#. (itstool) path: item/p
#: C/internet.page:19 C/restricting-applications.page:20
#: C/software-installation.page:27 C/software-installation.page:64
#: C/software-installation.page:28 C/software-installation.page:54
msgid "Open the <app>Parental Controls</app> application."
msgstr "Otwórz program <app>Kontrola rodzicielska</app>."
#. (itstool) path: item/p
#: C/internet.page:20 C/restricting-applications.page:21
#: C/software-installation.page:28 C/software-installation.page:65
#: C/software-installation.page:29 C/software-installation.page:55
msgid "Select the user in the tabs at the top."
msgstr "Wybierz użytkownika z kart na górze."
@ -144,18 +144,21 @@ msgstr ""
#. (itstool) path: info/desc
#: C/introduction.page:6
msgid ""
"Overview of parental controls and the <app>Parental Controls</app> "
"application."
"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 ""
"Przegląd kontroli rodzicielskiej i programu <app>Kontrola rodzicielska</app>."
"Przegląd kontroli rodzicielskiej, programu <app>Kontrola rodzicielska</app> "
"i jego użycia w innych sytuacjach, w których potrzebne są ograniczenia "
"dostępu użytkownika."
#. (itstool) path: page/title
#: C/introduction.page:10
#: C/introduction.page:12
msgid "Introduction to Parental Controls"
msgstr "Wprowadzenie do kontroli rodzicielskiej"
#. (itstool) path: page/p
#: C/introduction.page:12
#: 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 "
@ -168,18 +171,18 @@ msgstr ""
"nadzoru lub z minimalnym nadzorem."
#. (itstool) path: page/p
#: C/introduction.page:16
#: 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 its "
"easy to find."
"easy to find, as thats what most people will be looking for."
msgstr ""
"Ta funkcjonalność może być używana w innych sytuacjach — takich jak inne "
"relacje opiekuńcze — ale nazywa się „kontrola rodzicielska”, aby można ją "
"było łatwo znaleźć."
"było łatwo znaleźć, jako że większość osób będzie szukać tego terminu."
#. (itstool) path: page/p
#: C/introduction.page:19
#: 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 "
@ -193,7 +196,7 @@ msgstr ""
"są uwzględniane od razu."
#. (itstool) path: page/p
#: C/introduction.page:23
#: 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 "
@ -305,18 +308,20 @@ msgstr "Ograniczanie instalacji oprogramowania"
#. (itstool) path: page/p
#: C/software-installation.page:11
msgid ""
"You can prevent a user from installing additional software, either for the "
"entire system, or just for themselves. 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."
"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 ""
"Można uniemożliwić użytkownikowi instalowanie dodatkowego oprogramowania dla "
"całego komputera lub tylko dla niego. Nadal będzie on mógł wyszukiwać nowe "
"oprogramowanie, ale do jego zainstalowania będzie potrzebował upoważnienia "
"administratora."
"Można uniemożliwić użytkownikowi instalowanie dodatkowego oprogramowania na "
"komputerze. Nadal będzie on mógł wyszukiwać nowe oprogramowanie, ale do jego "
"zainstalowania będzie potrzebował upoważnienia administratora. Ma to "
"zastosowanie niezależnie od tego, czy użytkownik próbuje zainstalować "
"program w systemie (dla wszystkich użytkowników) czy tylko dla siebie."
#. (itstool) path: page/p
#: C/software-installation.page:16
#: 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."
@ -326,7 +331,7 @@ msgstr ""
"wiekowych."
#. (itstool) path: page/p
#: C/software-installation.page:19
#: C/software-installation.page:20
msgid ""
"To prevent a user from running an application which has already been "
"installed, see <link xref=\"restricting-applications\"/>."
@ -335,63 +340,31 @@ msgstr ""
"uniemożliwić użytkownikowi uruchamianie już zainstalowanego programu."
#. (itstool) path: section/title
#: C/software-installation.page:23
#: C/software-installation.page:24
msgid "Preventing Software Installation"
msgstr "Uniemożliwianie instalacji oprogramowania"
#. (itstool) path: section/p
#: C/software-installation.page:25
#: C/software-installation.page:26
msgid "To prevent a user from installing additional software:"
msgstr ""
"Aby uniemożliwić użytkownikowi instalowanie dodatkowego oprogramowania:"
#. (itstool) path: item/p
#: C/software-installation.page:29
#: C/software-installation.page:30
msgid ""
"Enable the <gui style=\"checkbox\">Restrict Application Installation</gui> "
"checkbox."
msgstr ""
"Zaznacz pole <gui style=\"checkbox\">Ograniczanie instalacji programów</gui>."
#. (itstool) path: item/p
#: C/software-installation.page:30
msgid ""
"Or enable the <gui style=\"checkbox\">Restrict Application Installation for "
"Others</gui> checkbox."
msgstr ""
"Lub zaznacz pole <gui style=\"checkbox\">Ograniczanie instalacji programów "
"dla innych</gui>."
#. (itstool) path: section/p
#: C/software-installation.page:33
msgid ""
"The <gui style=\"checkbox\">Restrict Application Installation for Others</"
"gui> checkbox allows the user to install additional software for themselves, "
"but prevents that software from being made available to other users. It "
"could be used, for example, if there were two child users, one of whom is "
"mature enough to be allowed to install additional software, but the other "
"isnt — enabling <gui style=\"checkbox\">Restrict Application Installation "
"for Others</gui> would prevent the more mature child from installing "
"applications which are inappropriate for the other child and making them "
"available to the other child."
msgstr ""
"Pole <gui style=\"checkbox\">Ograniczanie instalacji programów dla innych</"
"gui> umożliwia użytkownikowi instalowanie dodatkowego oprogramowania dla "
"siebie, ale uniemożliwia korzystanie z tego oprogramowania pozostałym "
"użytkownikom. Można go używać na przykład jeśli są dwa konta dzieci, "
"z których jedno na tyle dorosłe, aby móc instalować dodatkowe "
"oprogramowanie, ale drugie nie jest — włączenie <gui style=\"checkbox"
"\">Ograniczanie instalacji programów dla innych</gui> uniemożliwi starszemu "
"dziecku instalowanie programów nieodpowiednich dla młodszego i dawanie mu do "
"nich dostępu."
#. (itstool) path: section/title
#: C/software-installation.page:45
#: C/software-installation.page:35
msgid "Restricting Software Installation by Age"
msgstr "Ograniczanie instalacji oprogramowania według wieku"
#. (itstool) path: section/p
#: C/software-installation.page:47
#: 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 "
@ -404,7 +377,7 @@ msgstr ""
"w Internecie lub możliwość wydawania pieniędzy."
#. (itstool) path: section/p
#: C/software-installation.page:51
#: 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 "
@ -418,7 +391,7 @@ msgstr ""
"filmów i gier."
#. (itstool) path: section/p
#: C/software-installation.page:55
#: 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 "
@ -432,7 +405,7 @@ msgstr ""
"kategoria wiekowa jest ustawiona odpowiednio wysoko)."
#. (itstool) path: section/p
#: C/software-installation.page:61
#: 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:"
@ -441,7 +414,7 @@ msgstr ""
"<app>Menedżera oprogramowania</app>:"
#. (itstool) path: item/p
#: C/software-installation.page:66
#: C/software-installation.page:56
msgid ""
"In the <gui>Application Suitability</gui> list, select the age which "
"applications should be suitable for."
@ -450,7 +423,7 @@ msgstr ""
"programy powinny być odpowiednie."
#. (itstool) path: note/p
#: C/software-installation.page:70
#: C/software-installation.page:60
msgid ""
"The users actual age is not stored, so the <gui>Application Suitability</"
"gui> is not automatically updated over time as the child grows older. You "

435
help/ru/ru.po Normal file
View File

@ -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 &amp; Setup"
msgstr "Введение &amp; Настройка"
#. (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 users 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 users 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 users 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 its "
"easy to find, as thats 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 users "
"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 users 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 users 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>."

455
help/sv/sv.po Normal file
View File

@ -0,0 +1,455 @@
# Swedish translation for malcontent.
# Copyright (C) 2020 malcontent's COPYRIGHT HOLDER
# This file is distributed under the same license as the malcontent package.
# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2020.
#
msgid ""
msgstr ""
"Project-Id-Version: malcontent master\n"
"POT-Creation-Date: 2020-12-08 15:28+0000\n"
"PO-Revision-Date: 2020-12-17 18:25+0100\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\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 2.4.2\n"
#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
msgctxt "_"
msgid "translator-credits"
msgstr "Anders Jonsson <anders.jonsson@norsjovallen.se>"
#. (itstool) path: info/desc
#: C/creating-a-child-user.page:6
msgid "Creating a child user on the computer."
msgstr "Skapa en barnanvändare på datorn."
#. (itstool) path: page/title
#: C/creating-a-child-user.page:9
msgid "Creating a Child User"
msgstr "Skapa en barnanvändare"
#. (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 ""
"Föräldrakontroller kan endast tillämpas på konton som inte är "
"administratörer. Ett sådant konto kan ha skapats när datorn ursprungligen "
"konfigurerades. Om inte så kan en ny barnanvändare skapas från programmet "
"<app>Föräldrakontroller</app> om det inte redan finns några barnanvändare. "
"Annars kan de skapas från <app>Kontrollpanel</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 ""
"För att skapa en ny barnanvändare, se <link type=\"guide\" xref=\"help:gnome-"
"help/user-add\">Lägg till ett nytt användarkonto</link>. Så snart användaren "
"har skapats kommer den dyka upp i <app>Föräldrakontroller</app>-fönstret så "
"att dess inställningar för föräldrakontroll kan konfigureras."
#. (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 "Hjälp för Föräldrakontroller"
#. (itstool) path: section/title
#: C/index.page:15
msgid "Introduction &amp; Setup"
msgstr "Introduktion &amp; konfiguration"
#. (itstool) path: section/title
#: C/index.page:19
msgid "Controls to Apply"
msgstr "Kontroller att tillämpa"
#. (itstool) path: info/desc
#: C/internet.page:6
msgid "Restricting a child users access to the internet."
msgstr "Begränsa en barnanvändares åtkomst till internet."
#. (itstool) path: page/title
#: C/internet.page:9
msgid "Restricting Access to the Internet"
msgstr "Begränsa åtkomst till internet"
#. (itstool) path: page/p
#: C/internet.page:11
msgid ""
"You can restrict a users 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 ""
"Du kan begränsa en användares åtkomst till internet. Detta kommer att "
"förhindra dem från att använda en webbläsare, men det kommer inte att hindra "
"dem från att använda internet (potentiellt i mer begränsade former) genom "
"andra program. Det kommer till exempel inte förhindra åtkomst till e-"
"postkonton genom <app>Evolution</app>, och kommer inte förhindra att "
"programvaruuppdateringar hämtas och tillämpas."
#. (itstool) path: page/p
#: C/internet.page:17
msgid "To restrict a users access to the internet:"
msgstr "För att begränsa en användares åtkomst till internet:"
#. (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 "Öppna programmet <app>Föräldrakontroller</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 "Välj användaren i flikarna högst upp."
#. (itstool) path: item/p
#: C/internet.page:21
msgid ""
"Enable the <gui style=\"checkbox\">Restrict Web Browsers</gui> checkbox."
msgstr "Aktivera kryssrutan <gui style=\"checkbox\">Begränsa webbläsare</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 ""
"Översikt över föräldrakontroller, programmet <app>Föräldrakontroller</app> "
"och dess användning i andra situationer där åtkomstbegränsningar behövs för "
"en användare."
#. (itstool) path: page/title
#: C/introduction.page:12
msgid "Introduction to Parental Controls"
msgstr "Introduktion till Föräldrakontroller"
#. (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 ""
"Föräldrakontroller är ett sätt att begränsa vad icke-administratörskonton "
"kan göra på datorn, med målet att låta föräldrar begränsa vad deras barn kan "
"göra när de använder datorn utan översikt eller med begränsad översikt."
#. (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 its "
"easy to find, as thats what most people will be looking for."
msgstr ""
"Denna funktionalitet kan användas i andra situationer som i andra "
"relationer där ena parten har ansvar för den andra men kallas "
"”föräldrakontroller” för att vara lätt att hitta, då det är vad de flesta "
"kommer att söka efter."
#. (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 ""
"Föräldrakontrollerna för alla användare kan efterfrågas och ställas in med "
"programmet <app>Föräldrakontroller</app>. Detta listar icke-"
"administratörskontona i flikar i en rad högst upp, och visar deras aktuella "
"inställningar för föräldrakontroller nedanför. Ändringar till "
"föräldrakontrollerna tillämpas omedelbart."
#. (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 users "
"account by entering their password when prompted by the <app>Parental "
"Controls</app> application."
msgstr ""
"Begränsningar på användning av datorn kan endast ställas in för konton som "
"inte är administratörer. Inställningarna för föräldrakontroller för en "
"användare kan endast ändras av en administratör, även om administratören kan "
"göra det från användarens konto genom att ange sitt lösenord då programmet "
"<app>Föräldrakontroller</app> efterfrågar det."
#. (itstool) path: p/link
#: C/legal.xml:4
msgid "Creative Commons Attribution-ShareAlike 3.0 Unported License"
msgstr "Creative Commons Erkännande-DelaLika 3.0 Unported"
#. (itstool) path: license/p
#: C/legal.xml:3
msgid "This work is licensed under a <_:link-1/>."
msgstr "Detta verk licensieras under licensen <_:link-1/>."
#. (itstool) path: info/desc
#: C/restricting-applications.page:6
msgid "Restricting a child user from running already-installed applications."
msgstr "Begränsa en barnanvändare från att köra redan installerade program."
#. (itstool) path: page/title
#: C/restricting-applications.page:9
msgid "Restricting Access to Installed Applications"
msgstr "Begränsa åtkomst till installerade program"
#. (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 ""
"Du kan förhindra en användare från att köra specifika program som redan "
"finns installerade på datorn. Detta kan vara användbart om andra användare "
"behöver de programmen men de inte är lämpliga för barn."
#. (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 ""
"När du installerar ytterligare programvara bör du överväga om den behöver "
"begränsas för vissa användare — programvara som installeras kan som standard "
"användas av alla användare."
#. (itstool) path: page/p
#: C/restricting-applications.page:18
msgid "To restrict a users access to a specific application:"
msgstr "För att begränsa en användares åtkomst till ett specifikt program:"
#. (itstool) path: item/p
#: C/restricting-applications.page:22
msgid "Press the <gui style=\"button\">Restrict Applications</gui> button."
msgstr "Tryck på knappen <gui style=\"button\">Begränsa program</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 ""
"Aktivera växelknappen i raden för varje program som du vill begränsa "
"användaren från att komma åt."
#. (itstool) path: item/p
#: C/restricting-applications.page:24
msgid "Close the <gui>Restrict Applications</gui> window."
msgstr "Stäng fönstret <gui>Begränsa program</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 ""
"Att begränsa åtkomst till vissa program används ofta tillsammans med <link "
"xref=\"software-installation\"/> för att förhindra en användare från att "
"installera ytterligare programvara som inte har granskats."
#. (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 ""
"Begränsa vilken programvara som en barnanvändare kan installera, eller "
"förhindra dem helt från att installera ytterligare programvara."
#. (itstool) path: page/title
#: C/software-installation.page:9
msgid "Restricting Software Installation"
msgstr "Begränsa installation av programvara"
#. (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 ""
"Du kan förhindra en användare från att installera ytterligare programvara på "
"systemet. De kommer fortfarande kunna söka efter ny programvara att "
"installera, men kommer behöva att en administratör godkänner installationen "
"när de försöker installera ett program. Detta gäller oavsett om de försöker "
"installera programmet systemomfattande (för alla användare) eller bara för "
"sig själva."
#. (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 ""
"Du kan dessutom begränsa vilken programvara en användare kan bläddra bland "
"eller söka efter i katalogen för <app>Programvara</app> enligt "
"ålderskategorier."
#. (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 ""
"För att förhindra en användare från att köra ett program som redan har "
"installerats, se <link xref=\"restricting-applications\"/>."
#. (itstool) path: section/title
#: C/software-installation.page:24
msgid "Preventing Software Installation"
msgstr "Förhindra installation av programvara"
#. (itstool) path: section/p
#: C/software-installation.page:26
msgid "To prevent a user from installing additional software:"
msgstr ""
"För att förhindra en användare från att installera ytterligare programvara:"
#. (itstool) path: item/p
#: C/software-installation.page:30
msgid ""
"Enable the <gui style=\"checkbox\">Restrict Application Installation</gui> "
"checkbox."
msgstr ""
"Aktivera kryssrutan <gui style=\"checkbox\">Begränsa installation av "
"program</gui>."
#. (itstool) path: section/title
#: C/software-installation.page:35
msgid "Restricting Software Installation by Age"
msgstr "Begränsning av programvaruinstallation enligt ålder"
#. (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 ""
"Program i katalogen för <app>Programvara</app> har information om innehåll "
"de har som kan vara olämpligt för vissa åldrar — exempelvis olika sorters "
"våld, oövervakad chatt med andra personer över internet, eller möjligheten "
"att spendera pengar."
#. (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 ""
"För varje program sammanfattas denna information som den lägsta åldern på "
"ett barn som det lämpligen kan användas av — exempelvis ”Lämpligt för åldrar "
"7+”. Dessa åldersgränser presenteras i regionsspecifika klassifikationer som "
"kan jämföras med klassifikationerna som används för film och spel."
#. (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 ""
"Programmen som visas för en användare i katalogen för <app>Programvara</app> "
"kan filtreras enligt deras lämplighetsålder. Program som inte är lämpliga "
"för användaren kommer att döljas, och kommer inte kunna installeras av den "
"användaren. De kan installeras av andra användare (om deras lämplighetsålder "
"är satt tillräckligt högt)."
#. (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 ""
"För att filtrera programmen som en användare ser i katalogen för "
"<app>Programvara</app> till att bara vara de som är lämpliga för en viss "
"ålder:"
#. (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 ""
"I listan <gui>Lämplighet för program</gui>, välj åldern som programmen ska "
"vara lämpliga för."
#. (itstool) path: note/p
#: C/software-installation.page:60
msgid ""
"The users 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 ""
"Användarens faktiska ålder lagras inte, så <gui>Lämplighet för program</gui> "
"uppdateras inte automatiskt då barnet blir äldre. Du måste periodiskt "
"utvärdera den rätta <gui>Lämplighet för program</gui> för varje användare på "
"nytt."
#~ msgid ""
#~ "Or enable the <gui style=\"checkbox\">Restrict Application Installation "
#~ "for Others</gui> checkbox."
#~ msgstr ""
#~ "Eller aktivera kryssrutan <gui style=\"checkbox\">Begränsa installation "
#~ "av program åt andra</gui>."
#~ msgid ""
#~ "The <gui style=\"checkbox\">Restrict Application Installation for Others</"
#~ "gui> checkbox allows the user to install additional software for "
#~ "themselves, but prevents that software from being made available to other "
#~ "users. It could be used, for example, if there were two child users, one "
#~ "of whom is mature enough to be allowed to install additional software, "
#~ "but the other isnt — enabling <gui style=\"checkbox\">Restrict "
#~ "Application Installation for Others</gui> would prevent the more mature "
#~ "child from installing applications which are inappropriate for the other "
#~ "child and making them available to the other child."
#~ msgstr ""
#~ "Kryssrutan <gui style=\"checkbox\">Begränsa installation av program åt "
#~ "andra</gui> låter användaren installera ytterligare programvara åt sig "
#~ "själv, men förhindrar den programvaran från att bli tillgänglig för andra "
#~ "användare. Det kan till exempel användas om det finns två barnanvändare, "
#~ "en som är mogen nog för att tillåtas installera ytterligare programvara, "
#~ "och en som inte är det — att aktivera <gui style=\"checkbox\">Begränsa "
#~ "installation av program åt andra</gui> skulle förhindra det mognare "
#~ "barnet från att installera program som är olämpliga så att de blir "
#~ "tillgängliga för det andra barnet."

427
help/tr/tr.po Normal file
View File

@ -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 &amp; 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 users 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 users 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 users 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ıı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 its "
"easy to find, as thats 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 users "
"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 users 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 users 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."

View File

@ -6,17 +6,17 @@
msgid ""
msgstr ""
"Project-Id-Version: malcontent master\n"
"POT-Creation-Date: 2020-04-05 03:53+0000\n"
"PO-Revision-Date: 2020-04-05 14:45+0300\n"
"POT-Creation-Date: 2020-12-08 15:28+0000\n"
"PO-Revision-Date: 2020-12-08 22:19+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
"Language: uk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: uk\n"
"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Lokalize 20.07.70\n"
"X-Generator: Lokalize 20.11.70\n"
#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
msgctxt "_"
@ -42,12 +42,12 @@ msgid ""
"application if no child users already exist; and otherwise may be created "
"from the <app>Control Center</app>."
msgstr ""
"Батьківський контроль можна застосовувати лише до облікових записів без"
" адміністративних прав. Такий обліковий запис могло бути створено під час"
" початкового налаштовування системи. Якщо цього не було зроблено, можна"
" створити новий дитячий обліковий запис за допомогою програми <app"
">Батьківський контроль</app>. Крім того, такий обліковий запис можна створити"
" за допомогою <app>Центру керування</app>."
"Батьківський контроль можна застосовувати лише до облікових записів без "
"адміністративних прав. Такий обліковий запис могло бути створено під час "
"початкового налаштовування системи. Якщо цього не було зроблено, можна "
"створити новий дитячий обліковий запис за допомогою програми "
"<app>Батьківський контроль</app>. Крім того, такий обліковий запис можна "
"створити за допомогою <app>Центру керування</app>."
#. (itstool) path: page/p
#: C/creating-a-child-user.page:17
@ -57,12 +57,11 @@ msgid ""
"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>, отже, ви зможете налаштувати параметри"
" батьківського контролю."
"Щоб створити дитячий обліковий запис, ознайомтеся із розділом довідки <link "
"type=\"guide\" xref=\"help:gnome-help/user-add\">Додавання нового облікового "
"запису користувача</link>. Щойно запис нового користувача буде створено, "
"його буде показано у вікні програми <app>Батьківський контроль</app>, отже, "
"ви зможете налаштувати параметри батьківського контролю."
#. (itstool) path: credit/name
#: C/index.page:6
@ -108,12 +107,12 @@ msgid ""
"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>. Заборона також не"
" стосуватиметься отримання і застосування оновлень програмного забезпечення."
"Ви можете обмежити доступ користувача до інтернету. Таким чином можна "
"заборонити користувачу користуватися браузером, але користувач збереже "
"доступ до інтернету (у потенційно обмеженішій формі) за допомогою інших "
"програм. Наприклад, користувач матиме доступ до облікових записів "
"електронної пошти за допомогою <app>Evolution</app>. Заборона також не "
"стосуватиметься отримання і застосування оновлень програмного забезпечення."
#. (itstool) path: page/p
#: C/internet.page:17
@ -122,13 +121,13 @@ msgstr "Щоб обмежити доступ користувача до інт
#. (itstool) path: item/p
#: C/internet.page:19 C/restricting-applications.page:20
#: C/software-installation.page:27 C/software-installation.page:64
#: 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:28 C/software-installation.page:65
#: C/software-installation.page:29 C/software-installation.page:55
msgid "Select the user in the tabs at the top."
msgstr "Виберіть користувача у вкладках верхньої частини вікна."
@ -140,57 +139,68 @@ msgstr "Позначте пункт <gui style=\"checkbox\">Обмежити б
#. (itstool) path: info/desc
#: C/introduction.page:6
#| msgid ""
#| "Overview of parental controls and the <app>Parental Controls</app> "
#| "application."
msgid ""
"Overview of parental controls and the <app>Parental Controls</app> "
"application."
"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>."
"Огляд батьківського контролю, програми <app>Батьківський контроль</app> та її"
" використання у інших ситуаціях, коли потрібне обмеження доступу для"
" користувача."
#. (itstool) path: page/title
#: C/introduction.page:10
#: C/introduction.page:12
msgid "Introduction to Parental Controls"
msgstr "Вступ до «Батьківського контролю»"
#. (itstool) path: page/p
#: C/introduction.page:12
#: 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:16
#: 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 its "
#| "easy to find."
msgid ""
"This functionality can be used in other situations ­ such as other carer/"
"caree relationships but is labelled as parental controls so that its "
"easy to find."
"easy to find, as thats what most people will be looking for."
msgstr ""
"Цими функціональними можливостями можна скористатися і в інших ситуаціях —"
" зокрема у ситуаціях із стосунками доглядач-пацієнт, — ми назвали це"
" «батьківський контроль» лише для зручності пошуку."
"Цими функціональними можливостями можна скористатися і в інших ситуаціях — "
"зокрема у ситуаціях із стосунками доглядач-пацієнт, — ми назвали це "
"«батьківський контроль» лише для зручності пошуку, оскільки саме це шукають"
" більшість наших користувачів."
#. (itstool) path: page/p
#: C/introduction.page:19
#: 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>. У вікні"
" програми буде показано список неадміністративних облікових записів уздовж"
" верхньої панелі, а також параметри поточного батьківського контролю на"
" панелі під списком. Зміни у батьківському контролі буде застосовано негайно."
"Переглянути і встановити батьківський контроль для будь-якого користувача "
"можна за допомогою програми <app>Батьківський контроль</app>. У вікні "
"програми буде показано список неадміністративних облікових записів уздовж "
"верхньої панелі, а також параметри поточного батьківського контролю на "
"панелі під списком. Зміни у батьківському контролі буде застосовано негайно."
#. (itstool) path: page/p
#: C/introduction.page:23
#: 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 "
@ -198,11 +208,11 @@ msgid ""
"account by entering their password when prompted by the <app>Parental "
"Controls</app> application."
msgstr ""
"Обмеження у користуванні комп'ютером можна запроваджувати лише для облікових"
" записів, які не є адміністративними. Параметри батьківського контролю для"
" користувача може бути змінено лише адміністратором, хоча адміністратор може"
" зробити це з облікового запису користувача, якщо введе пароль, коли про"
" нього запитає програма <app>Батьківський контроль</app>."
"Обмеження у користуванні комп'ютером можна запроваджувати лише для облікових "
"записів, які не є адміністративними. Параметри батьківського контролю для "
"користувача може бути змінено лише адміністратором, хоча адміністратор може "
"зробити це з облікового запису користувача, якщо введе пароль, коли про "
"нього запитає програма <app>Батьківський контроль</app>."
#. (itstool) path: p/link
#: C/legal.xml:4
@ -231,9 +241,9 @@ msgid ""
"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
@ -242,10 +252,10 @@ msgid ""
"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
@ -265,8 +275,8 @@ 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
@ -280,10 +290,10 @@ msgid ""
"with <link xref=\"software-installation\"/> to prevent a user from "
"installing additional software which has not been vetted."
msgstr ""
"Обмеження доступу до певної програми часто використовується у поєднанні із <"
"link xref=\"software-installation\"/> для запобігання встановленню"
" користувачем додаткового програмного забезпечення, доступ до якого не"
" обмежено."
"Обмеження доступу до певної програми часто використовується у поєднанні із "
"<link xref=\"software-installation\"/> для запобігання встановленню "
"користувачем додаткового програмного забезпечення, доступ до якого не "
"обмежено."
#. (itstool) path: info/desc
#: C/software-installation.page:6
@ -291,9 +301,9 @@ 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
@ -303,163 +313,162 @@ msgstr "Обмеження встановлення програмного за
#. (itstool) path: page/p
#: C/software-installation.page:11
msgid ""
"You can prevent a user from installing additional software, either for the "
"entire system, or just for themselves. 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."
"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:16
#: 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>, за віковими категоріями."
"Крім того, ви можете обмежити перелік програмного забезпечення, яке зможе "
"бачити або шукати користувач у каталозі програми <app>Програмне "
"забезпечення</app>, за віковими категоріями."
#. (itstool) path: page/p
#: C/software-installation.page:19
#: 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\"/>."
"Щоб заборонити користувачу запускати програму, яку вже встановлено, "
"ознайомтеся із вмістом розділу <link xref=\"restricting-applications\"/>."
#. (itstool) path: section/title
#: C/software-installation.page:23
#: C/software-installation.page:24
msgid "Preventing Software Installation"
msgstr "Заборона встановлення програмного забезпечення"
#. (itstool) path: section/p
#: C/software-installation.page:25
#: C/software-installation.page:26
msgid "To prevent a user from installing additional software:"
msgstr ""
"Щоб заборонити користувачеві встановлення додаткового програмного"
" забезпечення:"
"Щоб заборонити користувачеві встановлення додаткового програмного "
"забезпечення:"
#. (itstool) path: item/p
#: C/software-installation.page:29
#: C/software-installation.page:30
msgid ""
"Enable the <gui style=\"checkbox\">Restrict Application Installation</gui> "
"checkbox."
msgstr ""
"Позначте пункт <gui style=\"checkbox\">Обмежити встановлення програм</gui>."
#. (itstool) path: item/p
#: C/software-installation.page:30
msgid ""
"Or enable the <gui style=\"checkbox\">Restrict Application Installation for "
"Others</gui> checkbox."
msgstr ""
"Або позначте пункт <gui style=\"checkbox\">Обмежити встановлення програм для"
" інших</gui>."
#. (itstool) path: section/p
#: C/software-installation.page:33
msgid ""
"The <gui style=\"checkbox\">Restrict Application Installation for Others</"
"gui> checkbox allows the user to install additional software for themselves, "
"but prevents that software from being made available to other users. It "
"could be used, for example, if there were two child users, one of whom is "
"mature enough to be allowed to install additional software, but the other "
"isnt — enabling <gui style=\"checkbox\">Restrict Application Installation "
"for Others</gui> would prevent the more mature child from installing "
"applications which are inappropriate for the other child and making them "
"available to the other child."
msgstr ""
"За допомогою пункту <gui style=\"checkbox\">Обмежити встановлення програм для"
" інших</gui> можна дозволити користувачеві встановлювати додаткове програмне"
" забезпечення для себе, але заборонити доступ до встановленого програмного"
" забезпечення для інших користувачів. Цим можна скористатися, наприклад, якщо"
" у вас двоє дітей, з яких одна дитина достатньо доросла, щоб дозволити їй"
" встановлювати додаткові програми, але інша є надто малою. Позначення пункту"
" <gui style=\"checkbox\">Обмежити встановлення програм для інших</gui>"
" заборонить старшій дитині встановлювати програми, доступ до яких для"
" молодшої дитини слід обмежити."
#. (itstool) path: section/title
#: C/software-installation.page:45
#: C/software-installation.page:35
msgid "Restricting Software Installation by Age"
msgstr "Обмеження встановлення програмного забезпечення за віком"
#. (itstool) path: section/p
#: C/software-installation.page:47
#: 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>"
" містяться відомості щодо вмісту пакунків, який може бути неприйнятним для"
" певних вікових груп. Наприклад, у програмах можуть бути посилання на різні"
" форми насильства, необмежені можливості спілкування зі сторонніми особами у"
" інтернеті або можливості з витрачання грошей."
"У пакунках програми з каталогу програми <app>Програмне забезпечення</app> "
"містяться відомості щодо вмісту пакунків, який може бути неприйнятним для "
"певних вікових груп. Наприклад, у програмах можуть бути посилання на різні "
"форми насильства, необмежені можливості спілкування зі сторонніми особами у "
"інтернеті або можливості з витрачання грошей."
#. (itstool) path: section/p
#: C/software-installation.page:51
#: 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+». Ці оцінки віку представлено у"
" вигляді специфічних для регіону схем, які можна порівняти із схемами"
" рейтингів для фільмів та відеоігор."
"Для кожної програми у цих відомостях щодо програми містяться дані щодо "
"мінімального віку дітей, з якого їх можна допускати до користування "
"програмою, наприклад, «придатна для віку 7+». Ці оцінки віку представлено у "
"вигляді специфічних для регіону схем, які можна порівняти із схемами "
"рейтингів для фільмів та відеоігор."
#. (itstool) path: section/p
#: C/software-installation.page:55
#: 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>, можна фільтрувати за придатністю для вікових груп."
" Програми, які є непридатними для користувача, буде приховано — користувач не"
" зможе їх встановити. Їх зможуть встановлювати інші користувачі (якщо їхній"
" вік є відповідним до вікової категорії програм)."
"Програми, які буде показано користувачеві у каталозі <app>Програмне "
"забезпечення</app>, можна фільтрувати за придатністю для вікових груп. "
"Програми, які є непридатними для користувача, буде приховано — користувач не "
"зможе їх встановити. Їх зможуть встановлювати інші користувачі (якщо їхній "
"вік є відповідним до вікової категорії програм)."
#. (itstool) path: section/p
#: C/software-installation.page:61
#: 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> лише програмами, які"
" рекомендовано для певного вікового діапазону, виконайте такі дії:"
"Щоб налаштувати фільтрування програм, пункти яких буде показано "
"користувачеві у програмі <app>Програмне забезпечення</app> лише програмами, "
"які рекомендовано для певного вікового діапазону, виконайте такі дії:"
#. (itstool) path: item/p
#: C/software-installation.page:66
#: 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> виберіть вік, для якого мають бути"
" придатними програми."
"У списку <gui>Придатність програм</gui> виберіть вік, для якого мають бути "
"придатними програми."
#. (itstool) path: note/p
#: C/software-installation.page:70
#: C/software-installation.page:60
msgid ""
"The users 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> для"
" кожного користувача."
"Програма не зберігає дані щодо віку користувача, тому список "
"<gui>Придатність програм</gui> не оновлюється автоматично з дорослішанням "
"дитини. Вам слід час від часу оновлювати дані списку <gui>Придатність "
"програм</gui> для кожного користувача."
#~ msgid ""
#~ "Or enable the <gui style=\"checkbox\">Restrict Application Installation "
#~ "for Others</gui> checkbox."
#~ msgstr ""
#~ "Або позначте пункт <gui style=\"checkbox\">Обмежити встановлення програм "
#~ "для інших</gui>."
#~ msgid ""
#~ "The <gui style=\"checkbox\">Restrict Application Installation for Others</"
#~ "gui> checkbox allows the user to install additional software for "
#~ "themselves, but prevents that software from being made available to other "
#~ "users. It could be used, for example, if there were two child users, one "
#~ "of whom is mature enough to be allowed to install additional software, "
#~ "but the other isnt — enabling <gui style=\"checkbox\">Restrict "
#~ "Application Installation for Others</gui> would prevent the more mature "
#~ "child from installing applications which are inappropriate for the other "
#~ "child and making them available to the other child."
#~ msgstr ""
#~ "За допомогою пункту <gui style=\"checkbox\">Обмежити встановлення програм "
#~ "для інших</gui> можна дозволити користувачеві встановлювати додаткове "
#~ "програмне забезпечення для себе, але заборонити доступ до встановленого "
#~ "програмного забезпечення для інших користувачів. Цим можна скористатися, "
#~ "наприклад, якщо у вас двоє дітей, з яких одна дитина достатньо доросла, "
#~ "щоб дозволити їй встановлювати додаткові програми, але інша є надто "
#~ "малою. Позначення пункту <gui style=\"checkbox\">Обмежити встановлення "
#~ "програм для інших</gui> заборонить старшій дитині встановлювати програми, "
#~ "доступ до яких для молодшої дитини слід обмежити."

View File

@ -1,655 +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 cant 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 dont 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, 10, 13, 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, 15)
/**
* as_content_rating_id_value_to_csm_age:
* @id: the subsection ID e.g. "violence-cartoon"
* @value: the #AsContentRatingValue, e.g. %MCT_APP_FILTER_OARS_VALUE_INTENSE
*
* Gets the Common Sense Media approved age for a specific rating level.
*
* Returns: The age in years, or 0 for no details.
*
* Since: 0.5.12
**/
guint
as_content_rating_id_value_to_csm_age (const gchar *id, MctAppFilterOarsValue value)
{
if (value == AS_CONTENT_RATING_VALUE_UNKNOWN ||
value == AS_CONTENT_RATING_VALUE_LAST)
return 0;
for (gsize i = 0; i < G_N_ELEMENTS (oars_to_csm_mappings); i++) {
if (g_str_equal (id, oars_to_csm_mappings[i].id)) {
switch (value) {
case AS_CONTENT_RATING_VALUE_NONE:
return oars_to_csm_mappings[i].csm_age_none;
case AS_CONTENT_RATING_VALUE_MILD:
return oars_to_csm_mappings[i].csm_age_mild;
case AS_CONTENT_RATING_VALUE_MODERATE:
return oars_to_csm_mappings[i].csm_age_moderate;
case AS_CONTENT_RATING_VALUE_INTENSE:
return oars_to_csm_mappings[i].csm_age_intense;
case AS_CONTENT_RATING_VALUE_UNKNOWN:
case AS_CONTENT_RATING_VALUE_LAST:
default:
/* Handled above. */
g_assert_not_reached ();
return 0;
}
}
}
/* @id not found. */
return 0;
}
#endif /* appstream-glib < 0.7.15 */
#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 */

View File

@ -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

View File

@ -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'),
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',

View File

@ -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 users 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;
}
/**

View File

@ -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);

View File

@ -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>

View File

@ -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
@ -61,7 +68,10 @@ struct _MctRestrictApplicationsSelector
GtkListBox *listbox;
GListStore *apps; /* (owned) */
GList *cached_apps; /* (nullable) (owned) (element-type GAppInfo) */
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) */
@ -72,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)
@ -79,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,
@ -103,6 +116,9 @@ mct_restrict_applications_selector_constructed (GObject *obj)
g_assert (self->app_filter != NULL);
/* Load the apps. */
reload_apps (self);
G_OBJECT_CLASS (mct_restrict_applications_selector_parent_class)->constructed (obj);
}
@ -119,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);
@ -138,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);
@ -150,7 +172,7 @@ 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)
{
@ -162,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);
}
@ -196,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);
/**
@ -217,14 +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);
gtk_widget_init_template (GTK_WIDGET (self));
self->app_info_monitor = g_app_info_monitor_get ();
self->app_info_monitor_changed_id =
@ -232,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);
@ -284,6 +328,21 @@ on_switch_active_changed_cb (GtkSwitch *s,
g_signal_emit (self, signals[SIGNAL_CHANGED], 0);
}
static void
update_listbox_row_switch (MctRestrictApplicationsSelector *self,
GtkSwitch *w)
{
GAppInfo *app = g_object_get_data (G_OBJECT (w), "GAppInfo");
gboolean allowed = mct_app_filter_is_appinfo_allowed (self->app_filter, app);
gtk_switch_set_active (w, !allowed);
if (allowed)
g_hash_table_remove (self->blocklisted_apps, app);
else
g_hash_table_add (self->blocklisted_apps, g_object_ref (app));
}
static GtkWidget *
create_row_for_app_cb (gpointer item,
gpointer user_data)
@ -291,10 +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;
gboolean allowed;
GtkWidget *row, *w;
const gchar *app_name;
gint size;
GtkStyleContext *context;
app_name = g_app_info_get_name (app);
@ -307,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,
@ -334,24 +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 */
allowed = mct_app_filter_is_appinfo_allowed (self->app_filter, app);
gtk_switch_set_active (GTK_SWITCH (w), !allowed);
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);
if (allowed)
g_hash_table_remove (self->blocklisted_apps, app);
else
g_hash_table_add (self->blocklisted_apps, g_object_ref (app));
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
@ -362,8 +411,8 @@ compare_app_info_cb (gconstpointer a,
GAppInfo *app_a = (GAppInfo*) a;
GAppInfo *app_b = (GAppInfo*) b;
return g_utf8_collate (g_app_info_get_display_name (app_a),
g_app_info_get_display_name (app_b));
return g_utf8_collate (g_app_info_get_name (app_a),
g_app_info_get_name (app_b));
}
static gint
@ -372,6 +421,7 @@ app_compare_id_length_cb (gconstpointer a,
{
GAppInfo *info_a = (GAppInfo *) a, *info_b = (GAppInfo *) b;
const gchar *id_a, *id_b;
gsize id_a_len, id_b_len;
id_a = g_app_info_get_id (info_a);
id_b = g_app_info_get_id (info_b);
@ -383,17 +433,76 @@ app_compare_id_length_cb (gconstpointer a,
else if (id_b == NULL)
return 1;
return strlen (id_a) - strlen (id_b);
id_a_len = strlen (id_a);
id_b_len = strlen (id_b);
if (id_a_len == id_b_len)
return strcmp (id_a, id_b);
else
return id_a_len - id_b_len;
}
/* Elements in @added_out and @removed_out are valid as long as @old_apps and
* @new_apps are valid.
*
* Both lists have to be sorted the same before calling this function. */
static void
diff_app_lists (GList *old_apps,
GList *new_apps,
GPtrArray **added_out,
GPtrArray **removed_out)
{
g_autoptr(GPtrArray) added = g_ptr_array_new_with_free_func (NULL);
g_autoptr(GPtrArray) removed = g_ptr_array_new_with_free_func (NULL);
GList *o, *n;
g_return_if_fail (added_out != NULL);
g_return_if_fail (removed_out != NULL);
for (o = old_apps, n = new_apps; o != NULL || n != NULL;)
{
int comparison;
if (o == NULL)
comparison = 1;
else if (n == NULL)
comparison = -1;
else
comparison = app_compare_id_length_cb (o->data, n->data);
if (comparison < 0)
{
g_ptr_array_add (removed, o->data);
o = o->next;
}
else if (comparison > 0)
{
g_ptr_array_add (added, n->data);
n = n->next;
}
else
{
o = o->next;
n = n->next;
}
}
*added_out = g_steal_pointer (&added);
*removed_out = g_steal_pointer (&removed);
}
/* This is quite expensive to call, as theres no way to avoid calling
* g_app_info_get_all() to see if anythings changed; and thats quite expensive. */
static void
reload_apps (MctRestrictApplicationsSelector *self)
{
GList *iter, *apps;
g_autolist(GAppInfo) old_apps = NULL;
g_autolist(GAppInfo) new_apps = NULL;
g_autoptr(GPtrArray) added_apps = NULL, removed_apps = NULL;
g_autoptr(GHashTable) seen_flatpak_ids = NULL;
g_autoptr(GHashTable) seen_executables = NULL;
apps = g_app_info_get_all ();
old_apps = g_steal_pointer (&self->cached_apps);
new_apps = g_app_info_get_all ();
/* Sort the apps by increasing length of #GAppInfo ID. When coupled with the
* deduplication of flatpak IDs and executable paths, below, this should ensure that we
@ -402,20 +511,46 @@ reload_apps (MctRestrictApplicationsSelector *self)
*
* This is designed to avoid listing all the components of LibreOffice for example,
* which all share an app ID and hence have the same entry in the parental controls
* app filter. */
apps = g_list_sort (apps, app_compare_id_length_cb);
* app filter.
*
* Then diff the old and new lists so that the code below doesnt end up
* removing more rows than are necessary, and hence potentially losing
* in-progress user input. */
new_apps = g_list_sort (new_apps, app_compare_id_length_cb);
diff_app_lists (old_apps, new_apps, &added_apps, &removed_apps);
g_debug ("%s: Diffed old and new app lists: %u apps added, %u apps removed",
G_STRFUNC, added_apps->len, removed_apps->len);
seen_flatpak_ids = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
seen_executables = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
g_list_store_remove_all (self->apps);
for (iter = apps; iter; iter = iter->next)
/* Remove items first. */
for (guint i = 0; i < removed_apps->len; i++)
{
GAppInfo *app;
GAppInfo *app = removed_apps->pdata[i];
guint pos;
gboolean found;
found = g_list_store_find_with_equal_func (self->apps, app,
(GEqualFunc) g_app_info_equal, &pos);
/* The app being removed may have not passed the condition checks below
* to have been added to self->apps. */
if (!found)
continue;
g_debug ("Removing app %s", g_app_info_get_id (app));
g_list_store_remove (self->apps, pos);
}
/* Now add the new items. */
for (guint i = 0; i < added_apps->len; i++)
{
GAppInfo *app = added_apps->pdata[i];
const gchar *app_name;
const gchar * const *supported_types;
app = iter->data;
app_name = g_app_info_get_name (app);
supported_types = g_app_info_get_supported_types (app);
@ -423,8 +558,6 @@ reload_apps (MctRestrictApplicationsSelector *self)
if (!G_IS_DESKTOP_APP_INFO (app) ||
!g_app_info_should_show (app) ||
app_name[0] == '\0' ||
/* Endless' link apps have the "eos-link" prefix, and should be ignored too */
g_str_has_prefix (g_app_info_get_id (app), "eos-link") ||
/* FIXME: Only list flatpak apps and apps with X-Parental-Controls
* key set for now; we really need a system-wide MAC to be able to
* reliably support blocklisting system programs. */
@ -486,21 +619,17 @@ reload_apps (MctRestrictApplicationsSelector *self)
self);
}
g_list_free_full (apps, g_object_unref);
/* Update the cache for next time. */
self->cached_apps = g_steal_pointer (&new_apps);
}
static void
app_info_changed_cb (GAppInfoMonitor *monitor,
gpointer user_data)
{
/* FIXME: We should update the list of apps here, but we cant call
* reload_apps() because that will dump and reload the entire list, losing
* any changes the user has already made to the set of switches. We need
* something more fine-grained.
MctRestrictApplicationsSelector *self = MCT_RESTRICT_APPLICATIONS_SELECTOR (user_data);
reload_apps (self);
*/
}
/* Will return %NULL if @flatpak_id is not installed. */
@ -663,6 +792,7 @@ mct_restrict_applications_selector_set_app_filter (MctRestrictApplicationsSelect
MctAppFilter *app_filter)
{
g_autoptr(MctAppFilter) owned_app_filter = NULL;
guint n_apps;
g_return_if_fail (MCT_IS_RESTRICT_APPLICATIONS_SELECTOR (self));
@ -680,6 +810,70 @@ mct_restrict_applications_selector_set_app_filter (MctRestrictApplicationsSelect
g_clear_pointer (&self->app_filter, mct_app_filter_unref);
self->app_filter = mct_app_filter_ref (app_filter);
reload_apps (self);
/* Update the status of each app row. */
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 *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));
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));
}
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]);
}

View File

@ -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

View File

@ -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>

View File

@ -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%);
}

View File

@ -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,24 +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_system_installation_switch;
GtkLabel *restrict_system_installation_description;
GtkSwitch *restrict_user_installation_switch;
GtkLabel *restrict_user_installation_description;
GtkSwitch *restrict_software_installation_switch;
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) */
@ -104,7 +98,8 @@ struct _MctUserControls
GDBusConnection *dbus_connection; /* (owned) */
GCancellable *cancellable; /* (owned) */
MctManager *manager; /* (owned) */
MctAppFilter *filter; /* (owned) (nullable) */
MctAppFilter *filter; /* (owned) (nullable); updated by the user of #MctUserControls */
MctAppFilter *last_saved_filter; /* (owned) (nullable); updated each time we internally time out and save the app filter */
guint selected_age; /* @oars_disabled_age to disable OARS */
guint blocklist_apps_source_id;
@ -113,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);
@ -125,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,
@ -148,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
{
@ -159,57 +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, }}
};
#if !AS_CHECK_VERSION(0, 7, 15)
static const gchar * const oars_categories[] =
{
"violence-cartoon",
"violence-fantasy",
"violence-realistic",
"violence-bloodshed",
"violence-sexual",
"violence-desecration",
"violence-slavery",
"violence-worship",
"drugs-alcohol",
"drugs-narcotics",
"drugs-tobacco",
"sex-nudity",
"sex-themes",
"sex-homosexuality",
"sex-prostitution",
"sex-adultery",
"sex-appearance",
"language-profanity",
"language-humor",
"language-discrimination",
"social-chat",
"social-info",
"social-audio",
"social-location",
"social-contacts",
"money-purchasing",
"money-gambling",
NULL
};
#endif /* appstream-glib < 0.7.15 */
/* 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 *
@ -296,6 +252,7 @@ update_app_filter_from_user (MctUserControls *self)
/* FIXME: make it asynchronous */
g_clear_pointer (&self->filter, mct_app_filter_unref);
g_clear_pointer (&self->last_saved_filter, mct_app_filter_unref);
self->filter = mct_manager_get_app_filter (self->manager,
act_user_get_uid (self->user),
MCT_MANAGER_GET_VALUE_FLAGS_NONE,
@ -310,13 +267,21 @@ update_app_filter_from_user (MctUserControls *self)
return;
}
self->last_saved_filter = mct_app_filter_ref (self->filter);
g_debug ("Retrieved new app filter for user '%s'", act_user_get_user_name (self->user));
}
static void
update_restricted_apps (MctUserControls *self)
{
mct_restrict_applications_dialog_set_app_filter (self->restrict_applications_dialog, self->filter);
}
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;
@ -324,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);
@ -383,14 +348,12 @@ 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;
guint maximum_age, selected_age;
gsize i;
gboolean all_categories_unset;
#if AS_CHECK_VERSION(0, 7, 15)
g_autofree const gchar **oars_categories = as_content_rating_get_all_rating_ids ();
#endif
g_assert (self->filter != NULL);
@ -404,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));
@ -416,23 +379,28 @@ 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)
{
g_clear_pointer (&rating_age_category, g_free);
rating_age_category = g_strdup (_("All Ages"));
selected_age = oars_disabled_age;
}
else
{
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;
}
static void
update_allow_app_installation (MctUserControls *self)
{
gboolean restrict_system_installation;
gboolean restrict_user_installation;
gboolean restrict_software_installation;
gboolean non_admin_user = TRUE;
if (self->user_account_type == ACT_USER_ACCOUNT_TYPE_ADMINISTRATOR)
@ -440,8 +408,7 @@ update_allow_app_installation (MctUserControls *self)
/* Admins are always allowed to install apps for all users. This behaviour is governed
* by flatpak polkit rules. Hence, these hide these defunct switches for admins. */
gtk_widget_set_visible (GTK_WIDGET (self->restrict_system_installation_switch), non_admin_user);
gtk_widget_set_visible (GTK_WIDGET (self->restrict_user_installation_switch), non_admin_user);
gtk_widget_set_visible (GTK_WIDGET (self->restrict_software_installation_switch), non_admin_user);
/* If user is admin, we are done here, bail out. */
if (!non_admin_user)
@ -451,35 +418,22 @@ update_allow_app_installation (MctUserControls *self)
return;
}
restrict_system_installation = !mct_app_filter_is_system_installation_allowed (self->filter);
restrict_user_installation = !mct_app_filter_is_user_installation_allowed (self->filter);
/* While the underlying permissions storage allows the system and user settings
* to be stored completely independently, force the system setting to OFF if
* the user setting is OFF in the UI. This keeps the policy in use for most
* people simpler. */
if (restrict_user_installation)
restrict_system_installation = TRUE;
restrict_software_installation = !mct_app_filter_is_user_installation_allowed (self->filter);
g_signal_handlers_block_by_func (self->restrict_system_installation_switch,
g_signal_handlers_block_by_func (self->restrict_software_installation_switch,
on_restrict_installation_switch_active_changed_cb,
self);
g_signal_handlers_block_by_func (self->restrict_user_installation_switch,
on_restrict_installation_switch_active_changed_cb,
self);
gtk_switch_set_active (self->restrict_software_installation_switch, restrict_software_installation);
gtk_switch_set_active (self->restrict_system_installation_switch, restrict_system_installation);
gtk_switch_set_active (self->restrict_user_installation_switch, restrict_user_installation);
g_debug ("Restrict system installation: %s", restrict_software_installation ? "yes" : "no");
g_debug ("Restrict user installation: %s", restrict_software_installation ? "yes" : "no");
g_debug ("Restrict system installation: %s", restrict_system_installation ? "yes" : "no");
g_debug ("Restrict user installation: %s", restrict_user_installation ? "yes" : "no");
g_signal_handlers_unblock_by_func (self->restrict_system_installation_switch,
on_restrict_installation_switch_active_changed_cb,
self);
g_signal_handlers_unblock_by_func (self->restrict_user_installation_switch,
g_signal_handlers_unblock_by_func (self->restrict_software_installation_switch,
on_restrict_installation_switch_active_changed_cb,
self);
}
@ -510,24 +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 users 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 users 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 users display name. */
l = g_strdup_printf (_("Prevents %s from installing applications."), self->user_display_name);
gtk_label_set_label (self->restrict_user_installation_description, l);
g_clear_pointer (&l, g_free);
/* Translators: The placeholder is a users display name. */
l = g_strdup_printf (_("Applications installed by %s will not appear for other users."), self->user_display_name);
gtk_label_set_label (self->restrict_system_installation_description, l);
adw_action_row_set_subtitle (self->restrict_software_installation_row, l);
g_clear_pointer (&l, g_free);
}
@ -550,6 +501,7 @@ setup_parental_control_settings (MctUserControls *self)
gtk_widget_set_sensitive (GTK_WIDGET (self), is_authorized);
update_restricted_apps (self);
update_categories_from_language (self);
update_oars_level (self);
update_allow_app_installation (self);
@ -578,6 +530,15 @@ blocklist_apps_cb (gpointer data)
mct_user_controls_build_app_filter (self, &builder);
new_filter = mct_app_filter_builder_end (&builder);
/* Dont bother saving the app filter (which could result in asking the user
* for admin permission) if it hasnt changed. */
if (self->last_saved_filter != NULL &&
mct_app_filter_equal (new_filter, self->last_saved_filter))
{
g_debug ("Not saving app filter as it hasnt changed");
return G_SOURCE_REMOVE;
}
/* FIXME: should become asynchronous */
mct_manager_set_app_filter (self->manager,
act_user_get_uid (self->user),
@ -592,6 +553,10 @@ blocklist_apps_cb (gpointer data)
setup_parental_control_settings (self);
}
/* Update the cached copy */
mct_app_filter_unref (self->last_saved_filter);
self->last_saved_filter = g_steal_pointer (&new_filter);
return G_SOURCE_REMOVE;
}
@ -600,20 +565,6 @@ on_restrict_installation_switch_active_changed_cb (GtkSwitch *s,
GParamSpec *pspec,
MctUserControls *self)
{
/* See the comment about policy in update_allow_app_installation(). */
if (s == self->restrict_user_installation_switch &&
gtk_switch_get_active (s) &&
!gtk_switch_get_active (self->restrict_system_installation_switch))
{
g_signal_handlers_block_by_func (self->restrict_system_installation_switch,
on_restrict_installation_switch_active_changed_cb,
self);
gtk_switch_set_active (self->restrict_system_installation_switch, TRUE);
g_signal_handlers_unblock_by_func (self->restrict_system_installation_switch,
on_restrict_installation_switch_active_changed_cb,
self);
}
/* Save the changes. */
schedule_update_blocklisted_apps (self);
}
@ -628,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);
@ -665,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;
@ -703,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;
}
}
@ -731,28 +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);
}
}
/* GObject overrides */
static void
@ -794,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)
{
@ -803,6 +712,7 @@ mct_user_controls_finalize (GObject *object)
g_clear_object (&self->permission);
g_clear_pointer (&self->filter, mct_app_filter_unref);
g_clear_pointer (&self->last_saved_filter, mct_app_filter_unref);
g_clear_object (&self->manager);
g_clear_object (&self->dbus_connection);
@ -867,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);
}
@ -912,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);
}
@ -1030,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)
*
@ -1053,33 +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, restrict_system_installation_switch);
gtk_widget_class_bind_template_child (widget_class, MctUserControls, restrict_system_installation_description);
gtk_widget_class_bind_template_child (widget_class, MctUserControls, restrict_user_installation_switch);
gtk_widget_class_bind_template_child (widget_class, MctUserControls, restrict_user_installation_description);
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_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_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. */
@ -1090,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;
@ -1108,17 +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);
g_object_bind_property (self->restrict_user_installation_switch, "active",
self->restrict_system_installation_switch, "sensitive",
G_BINDING_DEFAULT | G_BINDING_INVERT_BOOLEAN);
/* 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));
}
/**
@ -1320,8 +1238,12 @@ mct_user_controls_set_app_filter (MctUserControls *self,
return;
g_clear_pointer (&self->filter, mct_app_filter_unref);
g_clear_pointer (&self->last_saved_filter, mct_app_filter_unref);
if (app_filter != NULL)
self->filter = mct_app_filter_ref (app_filter);
{
self->filter = mct_app_filter_ref (app_filter);
self->last_saved_filter = mct_app_filter_ref (app_filter);
}
g_debug ("Set new app filter from caller");
setup_parental_control_settings (self);
@ -1479,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
@ -1495,9 +1449,7 @@ mct_user_controls_build_app_filter (MctUserControls *self,
{
gboolean restrict_web_browsers;
gsize i;
#if AS_CHECK_VERSION(0, 7, 15)
g_autofree const gchar **oars_categories = as_content_rating_get_all_rating_ids ();
#endif
g_return_if_fail (MCT_IS_USER_CONTROLS (self));
g_return_if_fail (builder != NULL);
@ -1523,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));
@ -1541,16 +1493,14 @@ mct_user_controls_build_app_filter (MctUserControls *self,
/* App installation */
if (self->user_account_type != ACT_USER_ACCOUNT_TYPE_ADMINISTRATOR)
{
gboolean restrict_system_installation;
gboolean restrict_user_installation;
gboolean restrict_software_installation;
restrict_system_installation = gtk_switch_get_active (self->restrict_system_installation_switch);
restrict_user_installation = gtk_switch_get_active (self->restrict_user_installation_switch);
restrict_software_installation = gtk_switch_get_active (self->restrict_software_installation_switch);
g_debug ("\t → %s system installation", restrict_system_installation ? "Restricting" : "Allowing");
g_debug ("\t → %s user installation", restrict_user_installation ? "Restricting" : "Allowing");
g_debug ("\t → %s system installation", restrict_software_installation ? "Restricting" : "Allowing");
g_debug ("\t → %s user installation", restrict_software_installation ? "Restricting" : "Allowing");
mct_app_filter_builder_set_allow_user_installation (builder, !restrict_user_installation);
mct_app_filter_builder_set_allow_system_installation (builder, !restrict_system_installation);
mct_app_filter_builder_set_allow_user_installation (builder, !restrict_software_installation);
mct_app_filter_builder_set_allow_system_installation (builder, !restrict_software_installation);
}
}

View File

@ -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);

View File

@ -2,576 +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="margin-top">18</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" />
<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>
<object class="AdwPreferencesGroup">
<property name="title" translatable="yes">Software Installation Restrictions</property>
<child>
<object class="GtkListBoxRow">
<property name="visible" bind-source="restrict_user_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>
<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="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_user_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_user_installation_switch</property>
<accessibility>
<relation target="restrict_user_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_user_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_user_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_user_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" bind-source="restrict_system_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>
<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="restrict_system_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 for _Others</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">restrict_system_installation_switch</property>
<accessibility>
<relation target="restrict_system_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_system_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">Applications installed by {username} will not appear for other users.</property>
<attributes>
<attribute name="scale" value="0.88"/>
</attributes>
<style>
<class name="dim-label" />
</style>
<accessibility>
<relation target="restrict_system_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_system_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>
</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>
<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="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_user_installation_label" />
<widget name="restrict_system_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>

View File

@ -48,6 +48,7 @@ typedef enum
struct _MctAppFilter
{
/*< private >*/
gint ref_count;
uid_t user_id;

View File

@ -755,6 +755,33 @@ mct_app_filter_deserialize (GVariant *variant,
return g_steal_pointer (&app_filter);
}
/**
* mct_app_filter_equal:
* @a: (not nullable): an #MctAppFilter
* @b: (not nullable): an #MctAppFilter
*
* Check whether app filters @a and @b are equal.
*
* Returns: %TRUE if @a and @b are equal, %FALSE otherwise
* Since: 0.10.0
*/
gboolean
mct_app_filter_equal (MctAppFilter *a,
MctAppFilter *b)
{
g_return_val_if_fail (a != NULL, FALSE);
g_return_val_if_fail (a->ref_count >= 1, FALSE);
g_return_val_if_fail (b != NULL, FALSE);
g_return_val_if_fail (b->ref_count >= 1, FALSE);
return (a->user_id == b->user_id &&
a->app_list_type == b->app_list_type &&
a->allow_user_installation == b->allow_user_installation &&
a->allow_system_installation == b->allow_system_installation &&
g_strv_equal ((const gchar * const *) a->app_list, (const gchar * const *) b->app_list) &&
g_variant_equal (a->oars_ratings, b->oars_ratings));
}
/*
* Actual implementation of #MctAppFilterBuilder.
*

View File

@ -104,6 +104,9 @@ MctAppFilter *mct_app_filter_deserialize (GVariant *variant,
uid_t user_id,
GError **error);
gboolean mct_app_filter_equal (MctAppFilter *a,
MctAppFilter *b);
/**
* MctAppFilterBuilder:
*

View File

@ -280,12 +280,20 @@ bus_error_to_manager_error (const GError *bus_error,
if (g_error_matches (bus_error, G_DBUS_ERROR, G_DBUS_ERROR_ACCESS_DENIED) ||
bus_remote_error_matches (bus_error, "org.freedesktop.Accounts.Error.PermissionDenied"))
return g_error_new (MCT_MANAGER_ERROR, MCT_MANAGER_ERROR_PERMISSION_DENIED,
_("Not allowed to query app filter data for user %u"),
_("Not allowed to query parental controls data for user %u"),
(guint) user_id);
else if (g_error_matches (bus_error, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD) ||
bus_remote_error_matches (bus_error, "org.freedesktop.Accounts.Error.Failed"))
return g_error_new (MCT_MANAGER_ERROR, MCT_MANAGER_ERROR_INVALID_USER,
_("User %u does not exist"), (guint) user_id);
else if (g_error_matches (bus_error, G_DBUS_ERROR, G_DBUS_ERROR_SERVICE_UNKNOWN) ||
g_error_matches (bus_error, G_DBUS_ERROR, G_DBUS_ERROR_NAME_HAS_NO_OWNER))
/* If accountsservice is not available on the system bus, then the
* com.endlessm.ParentalControls.AppFilter extension interface
* certainly can't be available. */
return g_error_new_literal (MCT_MANAGER_ERROR,
MCT_MANAGER_ERROR_DISABLED,
_("System accounts service not available"));
else
return g_error_copy (bus_error);
}
@ -409,7 +417,7 @@ mct_manager_get_app_filter (MctManager *self,
{
g_set_error (error, MCT_MANAGER_ERROR,
MCT_MANAGER_ERROR_PERMISSION_DENIED,
_("Not allowed to query app filter data for user %u"),
_("Not allowed to query parental controls data for user %u"),
(guint) user_id);
return NULL;
}
@ -792,7 +800,7 @@ mct_manager_get_session_limits (MctManager *self,
{
g_set_error (error, MCT_MANAGER_ERROR,
MCT_MANAGER_ERROR_PERMISSION_DENIED,
_("Not allowed to query session limits data for user %u"),
_("Not allowed to query parental controls data for user %u"),
(guint) user_id);
return NULL;
}

View File

@ -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_',

View File

@ -50,6 +50,7 @@ typedef enum
struct _MctSessionLimits
{
/*< private >*/
gint ref_count;
uid_t user_id;

View File

@ -162,6 +162,65 @@ test_app_filter_deserialize_invalid (void)
}
}
/* Test that mct_app_filter_equal() returns the correct results on various
* app filters. */
static void
test_app_filter_equal (void)
{
g_auto(MctAppFilterBuilder) builder = MCT_APP_FILTER_BUILDER_INIT ();
MctAppFilter *equal_filters[2];
const gchar *unequal_filters_serialised[] =
{
"{ 'AppFilter': <(true, @as ['/usr/bin/gnome-software'])> }",
"{ 'AppFilter': <(false, @as ['/usr/bin/gnome-software'])> }",
"{ 'AllowUserInstallation': <true> }",
"{ 'AllowSystemInstallation': <true> }",
"{ 'OarsFilter': <('oars-1.1', { 'violence-cartoon': 'mild' })> }",
};
MctAppFilter *unequal_filters[G_N_ELEMENTS (unequal_filters_serialised)];
/* Build a couple of filters which are identical. */
equal_filters[0] = mct_app_filter_builder_end (&builder);
mct_app_filter_builder_init (&builder);
equal_filters[1] = mct_app_filter_builder_end (&builder);
/* And a load of filters which are not. */
for (gsize i = 0; i < G_N_ELEMENTS (unequal_filters_serialised); i++)
{
g_autoptr(GVariant) serialized = NULL;
serialized = g_variant_parse (NULL, unequal_filters_serialised[i], NULL, NULL, NULL);
g_assert (serialized != NULL);
unequal_filters[i] = mct_app_filter_deserialize (serialized, 1, NULL);
g_assert (unequal_filters[i] != NULL);
}
/* Test the equality checks on them all. */
for (gsize i = 0; i < G_N_ELEMENTS (equal_filters); i++)
for (gsize j = 0; j < G_N_ELEMENTS (equal_filters); j++)
g_assert_true (mct_app_filter_equal (equal_filters[i], equal_filters[j]));
for (gsize i = 0; i < G_N_ELEMENTS (unequal_filters); i++)
{
for (gsize j = 0; j < G_N_ELEMENTS (equal_filters); j++)
g_assert_false (mct_app_filter_equal (unequal_filters[i], equal_filters[j]));
for (gsize j = 0; j < G_N_ELEMENTS (unequal_filters); j++)
{
if (i != j)
g_assert_false (mct_app_filter_equal (unequal_filters[i], unequal_filters[j]));
else
g_assert_true (mct_app_filter_equal (unequal_filters[i], unequal_filters[j]));
}
}
for (gsize i = 0; i < G_N_ELEMENTS (equal_filters); i++)
mct_app_filter_unref (equal_filters[i]);
for (gsize i = 0; i < G_N_ELEMENTS (unequal_filters); i++)
mct_app_filter_unref (unequal_filters[i]);
}
/* Test that mct_app_filter_is_enabled() returns the correct results on various
* app filters. */
static void
@ -1521,6 +1580,8 @@ main (int argc,
g_test_add_func ("/app-filter/deserialize", test_app_filter_deserialize);
g_test_add_func ("/app-filter/deserialize/invalid", test_app_filter_deserialize_invalid);
g_test_add_func ("/app-filter/equal", test_app_filter_equal);
g_test_add_func ("/app-filter/is-enabled", test_app_filter_is_enabled);
g_test_add ("/app-filter/builder/stack/non-empty", BuilderFixture, NULL,

View File

@ -1,7 +1,7 @@
.\" Manpage for malcontent\-client.
.\" Documentation is under the same licence as the malcontent
.\" package.
.TH man 8 "13 Jun 2019" "1.1" "malcontent\-client man page"
.TH man 8 "27 Oct 2020" "1.2" "malcontent\-client man page"
.\"
.SH NAME
.IX Header "NAME"
@ -13,6 +13,14 @@ malcontent\-client \- Parental Controls Access Utility
\fBmalcontent\-client get\-app\-filter [\-q] [\-n] [\fPUSER\fB]
.PP
\fBmalcontent\-client check\-app\-filter [\-q] [\-n] [\fPUSER\fB] \fPARG\fB
.PP
\fBmalcontent\-client set\-app\-filter [\-q] [\-n] [\fPUSER\fB] \fPARG\fB
.PP
\fBmalcontent\-client oars\-section [\-q] [\-n] [\fPUSER\fB] \fPSECTION\fB
.PP
\fBmalcontent\-client get\-session\-limits [\-q] [\-n] [\fPUSER\fB]
.PP
\fBmalcontent\-client monitor [\-q] [\fPUSER\fB]
.\"
.SH DESCRIPTION
.IX Header "DESCRIPTION"
@ -24,8 +32,8 @@ controls.
.PP
It communicates with accounts-service, which stores parental controls data.
.PP
Its first argument is a command to run. Currently, the only supported commands
are \fBget\-app\-filter\fP and \fBcheck\-app\-filter\fP.
Its first argument is a command to run. The supported commands are documented
below.
.PP
The command line API and output format are unstable and likely to change in
future versions of \fBmalcontent\-client\fP.
@ -33,6 +41,13 @@ future versions of \fBmalcontent\-client\fP.
.SH \fBget\-app\-filter\fP OPTIONS
.IX Header "get\-app\-filter OPTIONS"
.\"
Get the app filter for a user. For example:
.RS
.ad l
# malcontent\-client get\-app\-filter timmy
.ad b
.RE
.\"
.IP "\fBUSER\fP"
Username or ID of the user to get the app filter for. If not specified, the
current user will be used by default.
@ -49,6 +64,18 @@ authorization.)
.SH \fBcheck\-app\-filter\fP OPTIONS
.IX Header "check\-app\-filter OPTIONS"
.\"
Check if a given program, content type or flatpak ref is permitted to be used by
a user, according to their current app filter. For example:
.RS
.ad l
# malcontent\-client check\-app\-filter timmy $(which gnome\-calculator)
.PP
# malcontent\-client check\-app\-filter timmy x\-scheme\-handler/http
.PP
# malcontent\-client check\-app\-filter timmy app/com.realm667.WolfenDoom_Blade_of_Agony/x86_64/stable
.ad b
.RE
.\"
.IP "\fBUSER\fP"
Username or ID of the user to get the app filter for. If not specified, the
current user will be used by default.
@ -66,6 +93,127 @@ Do not allow interactive authorization with polkit. If this is needed to
complete the operation, the operation will fail. (Default: Allow interactive
authorization.)
.\"
.SH \fBset\-app\-filter\fP OPTIONS
.IX Header "set\-app\-filter OPTIONS"
.\"
Set the app filter for a user, replacing all previous values in it. For example:
.RS
.ad l
# malcontent\-client set\-app\-filter timmy \\
\-\-disallow\-user\-installation \\
$(which gnome\-calculator) \\
x\-scheme\-handler/http \\
app/com.realm667.WolfenDoom_Blade_of_Agony/x86_64/stable
.ad b
.RE
.\"
.IP "\fBUSER\fP"
Username or ID of the user to set the app filter for. If not specified, the
current user will be used by default.
.\"
.IP "\fBARG\fP"
Item to filter in the users app filter. This could either be an absolute path
or flatpak ref of a program to block; a content type to block all programs
handling that type; or an OARS \fBsection=value\fP pair to block installation of
apps with a more extreme rating for that OARS section. Multiple items may be
specified, and they will replace the users current app filter in entirety. If
zero items are specified, the app filter is cleared.
.\"
.IP "\fB\-\-allow\-user\-installation\fP"
Allow the user to install flatpaks to their user repository.
.\"
.IP "\fB\-\-disallow\-user\-installation\fP"
Disallow the user from installing flatpaks to their user repository.
.\"
.IP "\fB\-\-allow\-system\-installation\fP"
Allow the user to install flatpaks to the system repository.
.\"
.IP "\fB\-\-disallow\-system\-installation\fP"
Disallow the user from installing flatpaks to the system repository.
.\"
.IP "\fB\-q\fP, \fB\-\-quiet\fP"
Only output error messages, and no informational messages, as the operation
progresses. (Default: Output informational messages.)
.\"
.IP "\fB\-n\fP, \fB\-\-no\-interactive\fP"
Do not allow interactive authorization with polkit. If this is needed to
complete the operation, the operation will fail. (Default: Allow interactive
authorization.)
.\"
.SH \fBoars\-section\fP OPTIONS
.IX Header "oars\-section OPTIONS"
.\"
Get the value set for a specific OARS section from the app filter of the given
user. For example:
.RS
.ad l
# malcontent\-client oars\-section timmy language\-profanity
.ad b
.RE
.\"
.IP "\fBUSER\fP"
Username or ID of the user to get the OARS filter for. If not specified, the
current user will be used by default.
.\"
.IP "\fBSECTION\fP"
OARS section to get the restriction level of the given user for.
For example, \fBlanguage\-profanity\fP.
.\"
.IP "\fB\-q\fP, \fB\-\-quiet\fP"
Only output error messages, and no informational messages, as the operation
progresses. (Default: Output informational messages.)
.\"
.IP "\fB\-n\fP, \fB\-\-no\-interactive\fP"
Do not allow interactive authorization with polkit. If this is needed to
complete the operation, the operation will fail. (Default: Allow interactive
authorization.)
.\"
.SH \fBget\-session\-limits\fP OPTIONS
.IX Header "get\-session\-limits OPTIONS"
.\"
Get the session limits set for a user. For example:
.RS
.ad l
# malcontent\-client get\-session\-limits timmy
.ad b
.RE
.\"
.IP "\fBUSER\fP"
Username or ID of the user to get the session limits for. If not specified, the
current user will be used by default.
.\"
.IP "\fB\-q\fP, \fB\-\-quiet\fP"
Only output error messages, and no informational messages, as the operation
progresses. (Default: Output informational messages.)
.\"
.IP "\fB\-n\fP, \fB\-\-no\-interactive\fP"
Do not allow interactive authorization with polkit. If this is needed to
complete the operation, the operation will fail. (Default: Allow interactive
authorization.)
.\"
.IP "\fB\-\-now yyyy\-mm\-ddThh:mm:ssZ\fP"
Check session limits (in particular, session expiry time) against the given
date/time, provided in ISO 8601 format. (Default: Current date/time.)
.\"
.SH \fBmonitor\fP OPTIONS
.IX Header "monitor OPTIONS"
.\"
Monitor changes to the parental controls settings for a specific user. For
example:
.RS
.ad l
# malcontent\-client monitor timmy
.ad b
.RE
.\"
.IP "\fBUSER\fP"
Username or ID of the user to monitor the parental controls for. If not
specified, the current user will be used by default.
.\"
.IP "\fB\-q\fP, \fB\-\-quiet\fP"
Only output error messages, and no informational messages, as the operation
progresses. (Default: Output informational messages.)
.\"
.SH "ENVIRONMENT"
.IX Header "ENVIRONMENT"
.\"
@ -119,7 +267,7 @@ An operation failed and no more specific error information is available.
.\"
Any bugs which are found should be reported on the project website:
.br
\fIhttps://support.endlessm.com/\fP
\fIhttps://gitlab.freedesktop.org/pwithnall/malcontent/-/issues\fP
.\"
.SH AUTHOR
.IX Header "AUTHOR"

View File

@ -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)

View File

@ -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,10 +77,10 @@ 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;
};
G_DEFINE_TYPE (MctApplication, mct_application, GTK_TYPE_APPLICATION)
@ -94,9 +95,26 @@ static void
mct_application_constructed (GObject *object)
{
GApplication *application = G_APPLICATION (object);
const GOptionEntry options[] =
{
{ "user", 'u', G_OPTION_FLAG_NONE, G_OPTION_ARG_STRING, NULL,
/* Translators: This documents the --user command line option to malcontent-control: */
N_("User to select in the UI"),
/* Translators: This is a placeholder for a command line argument value: */
N_("USERNAME") },
{ NULL, },
};
g_application_set_application_id (application, "org.freedesktop.MalcontentControl");
g_application_add_main_option_entries (application, options);
g_application_set_flags (application, g_application_get_flags (application) | G_APPLICATION_HANDLES_COMMAND_LINE);
/* Translators: This is a summary of what the application does, displayed when
* its run with --help: */
g_application_set_option_context_parameter_string (application,
N_("— view and edit parental controls"));
/* Localisation */
bindtextdomain ("malcontent", PACKAGE_LOCALE_DIR);
bind_textdomain_codeset ("malcontent", "UTF-8");
@ -191,8 +209,7 @@ 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"));
@ -211,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. */
@ -231,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);
@ -240,6 +259,25 @@ mct_application_startup (GApplication *application)
"app.quit", (const gchar * const[]) { "<Primary>q", "<Primary>w", NULL });
}
static gint
mct_application_command_line (GApplication *application,
GApplicationCommandLine *command_line)
{
MctApplication *self = MCT_APPLICATION (application);
GVariantDict *options = g_application_command_line_get_options_dict (command_line);
const gchar *username;
/* Show the application. */
g_application_activate (application);
/* Select a user if requested. */
if (g_variant_dict_lookup (options, "user", "&s", &username) &&
!mct_user_selector_select_user_by_username (self->user_selector, username))
g_warning ("Failed to select user %s", username);
return 0; /* exit status */
}
static void
mct_application_class_init (MctApplicationClass *klass)
{
@ -251,6 +289,7 @@ mct_application_class_init (MctApplicationClass *klass)
application_class->activate = mct_application_activate;
application_class->startup = mct_application_startup;
application_class->command_line = mct_application_command_line;
}
static void
@ -284,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,
@ -298,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)
{
@ -332,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;
@ -355,10 +407,28 @@ update_main_stack (MctApplication *self)
}
else if (is_permission_loaded && is_user_manager_loaded)
{
g_autofree gchar *help_label = NULL;
/* 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
*/
help_label = g_strdup_printf (_("Its 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."),
act_user_get_real_name (selected_user));
mct_user_controls_set_description (self->user_controls, help_label);
mct_user_controls_set_user (self->user_controls, selected_user);
new_page_name = "controls";
new_focus_widget = GTK_WIDGET (self->user_selector);
new_focus_widget = GTK_WIDGET (self->user_controls);
}
else
{

View File

@ -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)
{
}

View File

@ -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;
}

View File

@ -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

View File

@ -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>

View File

@ -2,257 +2,163 @@
<!-- Copyright © 2019, 2020 Endless Mobile, Inc. -->
<interface>
<requires lib="gtk+" version="3.12"/>
<object class="GtkApplicationWindow" id="main_window">
<property name="default-width">500</property>
<property name="default-height">600</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>
<object class="AdwApplicationWindow" id="main_window">
<property name="default-width">540</property>
<property name="default-height">580</property>
<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>
<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>
</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="GtkShortcutController">
<property name="scope">global</property>
<child>
<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="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="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">Its 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>
<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">350</property>
<child>
<object class="MctUserControls" id="user_controls">
<property name="halign">center</property>
<property name="visible">True</property>
<property name="margin">12</property>
<property name="dbus-connection">dbus_connection</property>
</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 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="GtkLockButton" id="lock_button">
<property name="halign">center</property>
<style>
<class name="suggested-action" />
<class name="pill" />
</style>
</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>
</property>
</object>
</child>
<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="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>
<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="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>
</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="GtkLabel">
<property name="visible">True</property>
<property name="label" translatable="yes">No Child Users Configured</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>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="label" translatable="yes">No child users are currently set up on the system. Create one before setting up their parental controls.</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="GtkButton" id="user_accounts_panel_button">
<property name="visible">True</property>
<property name="label" translatable="yes">Create _Child User</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>
<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">error</property>
<property name="child">
<object class="AdwStatusPage" id="error_page">
<property name="icon-name">dialog-error-symbolic</property>
</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>
</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>
</object>
</child>
</object>
<packing>
<property name="name">error</property>
</packing>
</child>
</object>
</child>

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View File

@ -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,
],
@ -36,7 +37,7 @@ malcontent_control = executable('malcontent-control',
install: true,
)
desktop_file = i18n.merge_file('desktop-file',
desktop_file = i18n.merge_file(
type: 'desktop',
input: '@0@.desktop.in'.format(application_id),
output: '@0@.desktop'.format(application_id),
@ -57,7 +58,7 @@ if desktop_file_validate.found()
)
endif
appdata_file = i18n.merge_file('appdata-file',
appdata_file = i18n.merge_file(
input: '@0@.appdata.xml.in'.format(application_id),
output: '@0@.appdata.xml'.format(application_id),
po_dir: join_paths(meson.current_source_dir(), '..', 'po'),
@ -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',
@ -94,7 +95,7 @@ if xmllint.found()
)
endif
policy_file = i18n.merge_file('policy-file',
policy_file = i18n.merge_file(
input: '@0@.policy.in'.format(application_id),
output: '@0@.policy'.format(application_id),
po_dir: join_paths(meson.current_source_dir(), '..', 'po'),

View File

@ -19,22 +19,23 @@
installed software they can run.
</p>
</description>
<!--
<screenshots>
<screenshot type="default" width="400" height="480">
<image>https://FIXME/malcontent-control.png</image>
<screenshot height="552" width="699" type="default">
<image>https://gitlab.freedesktop.org/pwithnall/malcontent/-/raw/HEAD/malcontent-control/malcontent-control.png</image>
<caption>Main window</caption>
</screenshot>
</screenshots>
-->
<provides>
<binary>malcontent-control</binary>
</provides>
<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>
<project_group>GNOME</project_group>
<developer_name>The GNOME Project</developer_name>
<kudos>
@ -44,8 +45,85 @@
</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>
<ul>
<li>Italian translation of the user help</li>
<li>Translation updates</li>
</ul>
</description>
</release>
<release version="0.10.3" date="2021-11-01" type="stable">
<description>
<p>This is a stable release with the following changes:</p>
<ul>
<li>Prevent malcontent-control from being uninstalled and removing core desktop components with it</li>
<li>Improve keyboard navigation of the interface</li>
<li>Translation updates</li>
</ul>
</description>
</release>
<release version="0.10.2" date="2021-09-17" type="stable">
<description>
<p>This is a stable release with the following changes:</p>
<ul>
<li>Hide the launcher for malcontent-control from gnome-shell if using the GNOME desktop; find it via gnome-control-center instead</li>
<li>Translation updates</li>
</ul>
</description>
</release>
<release version="0.10.1" date="2021-03-11" type="stable">
<description>
<p>This is a stable release with the following changes:</p>
<ul>
<li>Sort apps by displayed name when listing them</li>
<li>Translation updates</li>
</ul>
</description>
</release>
<release version="0.10.0" date="2020-12-09" type="stable">
<description>
<p>This is a stable release with the following changes:</p>
<ul>
<li>Reload the application list when apps are installed or removed</li>
<li>Fix some data loss consistency problems in the UI</li>
<li>Hide support for flatpak user repositories, as they are typically not configured</li>
<li>Minor improvements to parental controls application UI</li>
<li>Translation updates</li>
</ul>
</description>
</release>
<release version="0.9.0" date="2020-09-03" type="stable">
<description>
<p>This is a stable release with the following changes:</p>
<ul>
<li>Minor improvements to parental controls application UI</li>
<li>Choose rating system by territory rather than language</li>
@ -55,6 +133,7 @@
</release>
<release version="0.8.0" date="2020-04-28" type="stable">
<description>
<p>This is a stable release with the following changes:</p>
<ul>
<li>Minor improvements to parental controls application UI</li>
<li>Add a user manual</li>
@ -64,6 +143,7 @@
</release>
<release version="0.7.0" date="2020-03-24" type="stable">
<description>
<p>This is a stable release with the following changes:</p>
<ul>
<li>Minor improvements to parental controls application UI</li>
<li>Translations to Ukrainian and Polish</li>
@ -72,6 +152,7 @@
</release>
<release version="0.6.0" date="2020-02-26" type="stable">
<description>
<p>This is a stable release with the following changes:</p>
<ul>
<li>Improve parental controls application UI and add icon</li>
<li>Support for indicating which accounts are parent accounts</li>
@ -80,6 +161,7 @@
</release>
<release version="0.5.0" date="2020-02-14" type="stable">
<description>
<p>This is a stable release with the following changes:</p>
<ul>
<li>Initial release of basic parental controls application</li>
<li>Support for setting app installation and run restrictions on users</li>
@ -88,6 +170,7 @@
</release>
<release version="0.4.0" date="2019-07-17" type="stable">
<description>
<p>This is a stable release with the following changes:</p>
<ul>
<li>Maintenance release of underlying parental controls library</li>
</ul>

View File

@ -7,6 +7,7 @@ Icon=org.freedesktop.MalcontentControl
Terminal=false
Type=Application
Categories=GTK;GNOME;System;
NotShowIn=GNOME;
StartupNotify=true
# Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon!
Keywords=parental controls;screen time;app restrictions;web browser restrictions;oars;usage;usage limit;kid;child;

View File

@ -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 *

View File

@ -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,

View File

@ -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
@ -506,3 +506,38 @@ mct_user_selector_get_user (MctUserSelector *self)
return self->user;
}
/**
* mct_user_selector_select_user_by_username:
* @self: an #MctUserSelector
* @username: username of the user to select
*
* Selects the given @username in the widget. This might fail if @username isnt
* a valid user, or if they arent listed in the selector due to being an
* administrator (see #MctUserSelector:show-administrators).
*
* Returns: %TRUE if the user was successfully selected, %FALSE otherwise
* Since: 0.10.0
*/
gboolean
mct_user_selector_select_user_by_username (MctUserSelector *self,
const gchar *username)
{
MctCarouselItem *item = NULL;
ActUser *user = NULL;
g_return_val_if_fail (MCT_IS_USER_SELECTOR (self), FALSE);
g_return_val_if_fail (username != NULL && *username != '\0', FALSE);
user = act_user_manager_get_user (self->user_manager, username);
if (user == NULL)
return FALSE;
item = mct_carousel_find_item (self->carousel, user, user_compare);
if (item == NULL)
return FALSE;
mct_carousel_select_item (self->carousel, item);
return TRUE;
}

View File

@ -34,4 +34,7 @@ MctUserSelector *mct_user_selector_new (ActUserManager *user_manager);
ActUser *mct_user_selector_get_user (MctUserSelector *self);
gboolean mct_user_selector_select_user_by_username (MctUserSelector *self,
const gchar *username);
G_END_DECLS

View File

@ -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>

View File

@ -1,6 +1,6 @@
<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns="http://usefulinc.com/ns/doap#">
<name xml:lang="en">malcontent</name>
<shortdesc xml:lang="en">malcontent provides restrictions for children on Linux systems</shortdesc>
<shortdesc xml:lang="en">malcontent provides parental controls functionality on Linux systems</shortdesc>
<description xml:lang="en">malcontent implements support for restricting the abilities of non-administrator accounts on a Linux system.</description>
<homepage rdf:resource="https://gitlab.freedesktop.org/pwithnall/malcontent"/>
<license rdf:resource="http://usefulinc.com/doap/licenses/lgpl"/>

View File

@ -1,6 +1,6 @@
project('malcontent', 'c',
version : '0.9.0',
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')

View File

@ -23,6 +23,7 @@ hr
hu
id
it
ka
kk
ko
lt

View File

@ -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

346
po/ca.po
View File

@ -6,375 +6,420 @@
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: 2021-11-10 15:28+0000\n"
"PO-Revision-Date: 2021-11-10 17:02+0100\n"
"Last-Translator: maite guix <maite.guix@me.com>\n"
"Language-Team: none\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0\n"
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
msgid "Change your own app filter"
msgstr ""
msgstr "Canvieu el filtre d'app propi"
#: accounts-service/com.endlessm.ParentalControls.policy.in:5
msgid "Authentication is required to change your app filter."
msgstr ""
msgstr "L'autenticació és necessària per a canviar el seu filtre de l'app."
#: accounts-service/com.endlessm.ParentalControls.policy.in:14
msgid "Read your own app filter"
msgstr ""
msgstr "Llegeix el teu propi filtre d'app"
#: accounts-service/com.endlessm.ParentalControls.policy.in:15
msgid "Authentication is required to read your app filter."
msgstr ""
msgstr "L'autenticació és necessària per a llegir el seu filtre de l'app."
#: accounts-service/com.endlessm.ParentalControls.policy.in:24
msgid "Change another users app filter"
msgstr ""
msgstr "Canvieu el filtre d'app d'un altre usuari"
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
msgid "Authentication is required to change another users app filter."
msgstr ""
msgstr "Cal autenticació per a canviar el filtre d'app d'un altre usuari."
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
msgid "Read another users app filter"
msgstr ""
msgstr "Llegeix el filtre d'app d'un altre usuari"
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
msgid "Authentication is required to read another users app filter."
msgstr ""
"L'autenticació és necessària per a llegir el filtre d'app d'un altre usuari."
#: accounts-service/com.endlessm.ParentalControls.policy.in:44
msgid "Change your own session limits"
msgstr ""
msgstr "Canvieu els límits de sessió propis"
#: accounts-service/com.endlessm.ParentalControls.policy.in:45
msgid "Authentication is required to change your session limits."
msgstr ""
msgstr "Es requereix autenticació per a canviar els límits de sessió."
#: accounts-service/com.endlessm.ParentalControls.policy.in:54
msgid "Read your own session limits"
msgstr ""
msgstr "Llegeix els propis límits de sessió"
#: accounts-service/com.endlessm.ParentalControls.policy.in:55
msgid "Authentication is required to read your session limits."
msgstr ""
msgstr "Es requereix autenticació per a llegir els límits de sessió."
#: accounts-service/com.endlessm.ParentalControls.policy.in:64
msgid "Change another users session limits"
msgstr ""
msgstr "Canvieu els límits de sessió d'un altre usuari"
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
msgid "Authentication is required to change another users session limits."
msgstr ""
"L'autenticació és necessària per a canviar els límits de sessió d'un altre "
"usuari."
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
msgid "Read another users session limits"
msgstr ""
msgstr "Llegeix els límits de sessió d'un altre usuari"
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
msgid "Authentication is required to read another users session limits."
msgstr ""
"Es requereix autenticació per a llegir els límits de sessió d'un altre "
"usuari."
#: accounts-service/com.endlessm.ParentalControls.policy.in:84
msgid "Change your own account info"
msgstr ""
msgstr "Canvieu la informació del compte"
#: accounts-service/com.endlessm.ParentalControls.policy.in:85
msgid "Authentication is required to change your account info."
msgstr ""
msgstr "És necessària l'autenticació per a canviar la informació del compte."
#: accounts-service/com.endlessm.ParentalControls.policy.in:94
msgid "Read your own account info"
msgstr ""
msgstr "Llegeix la informació del compte propi"
#: accounts-service/com.endlessm.ParentalControls.policy.in:95
msgid "Authentication is required to read your account info."
msgstr ""
msgstr "L'autenticació és necessària per a llegir la informació del compte."
#: accounts-service/com.endlessm.ParentalControls.policy.in:104
msgid "Change another users account info"
msgstr ""
msgstr "Canvieu la informació del compte d'un altre usuari"
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
msgid "Authentication is required to change another users account info."
msgstr ""
"Es requereix autenticació per a canviar la informació del compte d'un altre "
"usuari."
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
msgid "Read another users account info"
msgstr ""
msgstr "Llegeix la informació del compte d'un altre usuari"
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
msgid "Authentication is required to read another users account info."
msgstr ""
"Es requereix autenticació per a llegir la informació del compte d'un altre "
"usuari."
#: libmalcontent/app-filter.c:694
#, c-format
msgid "App filter for user %u was in an unrecognized format"
msgstr ""
msgstr "El filtre d'app de l'usuari %u tenia un format no reconegut"
#: libmalcontent/app-filter.c:725
#, c-format
msgid "OARS filter for user %u has an unrecognized kind %s"
msgstr ""
msgstr "El filtre OARS de l'usuari %u té un tipus «%s» no reconegut"
#: 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 ""
"No es permet consultar les dades dels controls paternals de l'usuari %u"
#: libmalcontent/manager.c:288
#, c-format
msgid "User %u does not exist"
msgstr ""
msgstr "L'usuari %u no existeix"
#: libmalcontent/manager.c:394
#: libmalcontent/manager.c:296
msgid "System accounts service not available"
msgstr "El servei de comptes del sistema no està disponible"
#: libmalcontent/manager.c:402
msgid "App filtering is globally disabled"
msgstr ""
msgstr "El filtratge d'app està inhabilitat globalment"
#: 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 "Els límits de sessió estan inhabilitats globalment"
#: libmalcontent/session-limits.c:306
#, c-format
msgid "Session limit for user %u was in an unrecognized format"
msgstr ""
msgstr "El límit de sessió de l'usuari %u tenia un format no reconegut"
#: libmalcontent/session-limits.c:328
#, c-format
msgid "Session limit for user %u has an unrecognized type %u"
msgstr ""
msgstr "El límit de sessió de l'usuari %u té un tipus «%u» no reconegut"
#: libmalcontent/session-limits.c:346
#, c-format
msgid "Session limit for user %u has invalid daily schedule %u%u"
msgstr ""
"El límit de sessió de l'usuari %u té una planificació diària no vàlida %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 "General"
#: libmalcontent-ui/gs-content-rating.c:218
msgid "ALL"
msgstr ""
msgstr "TOT"
#: libmalcontent-ui/gs-content-rating.c:222
#: libmalcontent-ui/gs-content-rating.c:485
msgid "Adults Only"
msgstr ""
msgstr "Només adults"
#: libmalcontent-ui/gs-content-rating.c:224
#: libmalcontent-ui/gs-content-rating.c:484
msgid "Mature"
msgstr ""
msgstr "Madur"
#: libmalcontent-ui/gs-content-rating.c:226
#: libmalcontent-ui/gs-content-rating.c:483
msgid "Teen"
msgstr ""
msgstr "Adolescents"
#: libmalcontent-ui/gs-content-rating.c:228
#: libmalcontent-ui/gs-content-rating.c:482
msgid "Everyone 10+"
msgstr ""
msgstr "Majors de 10 anys"
#: libmalcontent-ui/gs-content-rating.c:230
#: libmalcontent-ui/gs-content-rating.c:481
msgid "Everyone"
msgstr ""
msgstr "Tothom"
#: libmalcontent-ui/gs-content-rating.c:232
#: libmalcontent-ui/gs-content-rating.c:480
msgid "Early Childhood"
msgstr ""
msgstr "Infantesa"
#. Translators: the placeholder is a users full name
#: libmalcontent-ui/restrict-applications-dialog.c:222
#, c-format
msgid "Restrict %s from using the following installed applications."
msgstr ""
msgstr "Restringeix %s de l'ús de les aplicacions instal·lades següents."
#: libmalcontent-ui/restrict-applications-dialog.ui:6
#: libmalcontent-ui/restrict-applications-dialog.ui:12
msgid "Restrict Applications"
msgstr ""
msgstr "Restringir les aplicacions"
#: libmalcontent-ui/restrict-applications-selector.ui:24
msgid "No applications found to restrict."
msgstr ""
msgstr "No s'ha trobat cap aplicació a restringir."
#. 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 "desconegut"
#: 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 "Totes les edats"
#. Translators: The placeholder is a users 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 ""
"Evita que %s executi navegadors web. El contingut web limitat encara pot "
"estar disponible en altres aplicacions."
#. Translators: The placeholder is a users 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 "Evita que les aplicacions especificades siguin utilitzades per %s."
#. Translators: The placeholder is a users display name.
#: libmalcontent-ui/user-controls.c:524
#: libmalcontent-ui/user-controls.c:487
#, c-format
msgid "Prevents %s from installing applications."
msgstr ""
msgstr "Evita que %s instal·li aplicacions."
#. Translators: The placeholder is a users 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 "Restriccions d'ús de l'aplicació"
#: libmalcontent-ui/user-controls.ui:68
msgid "Restrict _Web Browsers"
msgstr ""
msgstr "Restringir navegadors _Web"
#: libmalcontent-ui/user-controls.ui:152
msgid "_Restrict Applications"
msgstr ""
msgstr "_Restringeix aplicacions"
#: libmalcontent-ui/user-controls.ui:231
msgid "Software Installation Restrictions"
msgstr ""
msgstr "Restriccions d'instal·lació de programari"
#: libmalcontent-ui/user-controls.ui:281
#: libmalcontent-ui/user-controls.ui:282
msgid "Restrict Application _Installation"
msgstr ""
msgstr "Restringeix la _instal·lació de l'aplicació"
#: 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 "_Idoneïtat de l'aplicació"
#: 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 ""
"Restringeix la navegació o instal·lació d'aplicacions a aplicacions "
"adequades per a determinades edats o superiors."
#. Translators: This documents the --user command line option to malcontent-control:
#: malcontent-control/application.c:102
msgid "User to select in the UI"
msgstr "Usuari a seleccionar a la interfície d'usuari"
#. Translators: This is a placeholder for a command line argument value:
#: malcontent-control/application.c:104
msgid "USERNAME"
msgstr "NOM D'USUARI"
#: malcontent-control/application.c:116
msgid "— view and edit parental controls"
msgstr "— veure i editar els controls parentals"
#. 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 "Controls parentals"
#: 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 "Maite Guix <maite.guix@me.com>, 2021"
#. 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 "Lloc web de Malcontent"
#: malcontent-control/application.c:338
msgid "The help contents could not be displayed"
msgstr "No s'ha pogut visualitzar el contingut de l'ajuda"
#: malcontent-control/application.c:375
msgid "Failed to load user data from the system"
msgstr "No s'han pogut carregar les dades de l'usuari del sistema"
#: malcontent-control/application.c:377
msgid "Please make sure that the AccountsService is installed and enabled."
msgstr "Assegureu-vos que el AccountsService està instal·lat i habilitat."
#. 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 ""
"Its 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 ""
"Es recomana que les restriccions s'estableixin com a part d'una conversa en "
"curs amb %s . <a href='https://www.commonsensemedia.org/privacy-and-internet-"
"safety'>Llegiu les indicacions</a> sobre què cal tenir en compte."
#: malcontent-control/carousel.ui:48
msgid "Previous Page"
msgstr ""
msgstr "Pàgina anterior"
#: malcontent-control/carousel.ui:74
msgid "Next Page"
msgstr ""
msgstr "Pàgina següent"
#: malcontent-control/main.ui:93
#: malcontent-control/main.ui:115
msgid "Permission Required"
msgstr ""
msgstr "Es necessari tenir permís"
#: malcontent-control/main.ui:107
#: malcontent-control/main.ui:129
msgid ""
"Permission is required to view and change user parental controls settings."
msgstr ""
"Es requereix permís per a visualitzar i canviar la configuració dels "
"controls parentals de l'usuari."
#: malcontent-control/main.ui:148
msgid "No Child Users Configured"
msgstr ""
#: malcontent-control/main.ui:184
msgid "No Standard User Accounts"
msgstr "No hi ha comptes d'usuari estàndard"
#: 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 ""
"Els controls parentals només es poden aplicar als comptes d'usuari\n"
"estàndard. Aquests es poden crear a la configuració d'usuari."
#: malcontent-control/main.ui:174
msgid "Create _Child User"
msgstr ""
#: malcontent-control/main.ui:212
msgid "_User Settings"
msgstr "_Paràmetres de l'usuari"
#: malcontent-control/main.ui:202
#: malcontent-control/main.ui:242
msgid "Loading…"
msgstr ""
msgstr "S'està carregant…"
#: malcontent-control/main.ui:265
#: malcontent-control/main.ui:305
msgid "_Help"
msgstr "_Ajuda"
#: malcontent-control/main.ui:269
#: malcontent-control/main.ui:309
msgid "_About Parental Controls"
msgstr ""
msgstr "_Quant als controls parentals"
#. 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 "Definir els controls parentals i supervisar-ne l'ús"
#. Translators: These are the application description paragraphs in the AppData file.
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:16
@ -383,93 +428,64 @@ msgid ""
"use the computer for, what software they can install, and what installed "
"software they can run."
msgstr ""
"Gestionar les restriccions dels controls parentals dels usuaris, controlar "
"quant de temps poden utilitzar l'ordinador, quin programari poden instal·lar "
"i quin programari instal·lat poden executar."
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
msgid "Main window"
msgstr "Finestra principal"
#: 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 "El projecte 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 ""
"controls parentals;temps de pantalla;restriccions d'app;restriccions del "
"navegador web;rems;ús;límit d'ús;criatura;nen;"
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:9
msgid "Manage parental controls"
msgstr ""
msgstr "Administra els controls parentals"
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:10
msgid "Authentication is required to read and change user parental controls"
msgstr ""
"L'autenticació és necessària per a llegir i canviar els controls parentals "
"de l'usuari"
#: malcontent-control/user-selector.c:426
msgid "Your account"
msgstr "El vostre compte"
msgstr "El compte propi"
#. 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 ""
msgstr "L'usuari «%s» no té límits de temps habilitats"
#: pam/pam_malcontent.c:151 pam/pam_malcontent.c:172
#, c-format
msgid "Error getting session limits for user %s: %s"
msgstr ""
"S'ha produït un error en obtenir els límits de sessió de l'usuari «%s»: %s"
#: pam/pam_malcontent.c:182
#, c-format
msgid "User %s has no time remaining"
msgstr ""
msgstr "A l'usuari «%s» no li queda temps"
#: pam/pam_malcontent.c:200
#, c-format
msgid "Error setting time limit on login session: %s"
msgstr ""
"S'ha produït un error en establir el límit de temps d'inici de sessió: %s"
#~ msgid "No cartoon violence"
#~ msgstr "Sense violència en personatges animats"

420
po/cs.po
View File

@ -6,376 +6,368 @@
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-23 23:04+0200\n"
"Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n"
"Language-Team: none\n"
"Language: cs\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==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Poedit 3.4\n"
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
msgid "Change your own app filter"
msgstr ""
msgstr "Měnit filtr vlastních aplikací"
#: accounts-service/com.endlessm.ParentalControls.policy.in:5
msgid "Authentication is required to change your app filter."
msgstr ""
msgstr "Pro změnu vlastního filtru aplikací je vyžadováno ověření."
#: accounts-service/com.endlessm.ParentalControls.policy.in:14
msgid "Read your own app filter"
msgstr ""
msgstr "Číst filtr vlastních aplikací"
#: accounts-service/com.endlessm.ParentalControls.policy.in:15
msgid "Authentication is required to read your app filter."
msgstr ""
msgstr "Pro čtení vlastního filtru aplikací je vyžadováno ověření."
#: accounts-service/com.endlessm.ParentalControls.policy.in:24
msgid "Change another users app filter"
msgstr ""
msgstr "Měnit filtr aplikací jiného uživatele"
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
msgid "Authentication is required to change another users app filter."
msgstr ""
msgstr "Pro změnu filtru aplikací jiného uživatele je vyžadováno ověření."
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
msgid "Read another users app filter"
msgstr ""
msgstr "Číst filtr aplikací jiného uživatele"
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
msgid "Authentication is required to read another users app filter."
msgstr ""
msgstr "Pro čtení filtru aplikací jiného uživatele je vyžadováno ověření."
#: accounts-service/com.endlessm.ParentalControls.policy.in:44
msgid "Change your own session limits"
msgstr ""
msgstr "Měnit limity vlastního sezení"
#: accounts-service/com.endlessm.ParentalControls.policy.in:45
msgid "Authentication is required to change your session limits."
msgstr ""
msgstr "Pro změnu limitů vlastního sezení je vyžadováno ověření."
#: accounts-service/com.endlessm.ParentalControls.policy.in:54
msgid "Read your own session limits"
msgstr ""
msgstr "Číst limity vlastního sezení"
#: accounts-service/com.endlessm.ParentalControls.policy.in:55
msgid "Authentication is required to read your session limits."
msgstr ""
msgstr "Pro čtení limitů vlastního sezení je vyžadováno ověření."
#: accounts-service/com.endlessm.ParentalControls.policy.in:64
msgid "Change another users session limits"
msgstr ""
msgstr "Měnit limity sezení jiného uživatele"
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
msgid "Authentication is required to change another users session limits."
msgstr ""
msgstr "Pro změnu limitů sezení jiného uživatele je vyžadováno ověření."
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
msgid "Read another users session limits"
msgstr ""
msgstr "Číst limity sezení jiného uživatele"
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
msgid "Authentication is required to read another users session limits."
msgstr ""
msgstr "Pro čtení limitů sezení jiného uživatele je vyžadováno ověření."
#: accounts-service/com.endlessm.ParentalControls.policy.in:84
msgid "Change your own account info"
msgstr ""
msgstr "Měnit informace o vlastním účtu"
#: accounts-service/com.endlessm.ParentalControls.policy.in:85
msgid "Authentication is required to change your account info."
msgstr ""
msgstr "Pro změnu informací o vlastním účtu je vyžadováno ověření."
#: accounts-service/com.endlessm.ParentalControls.policy.in:94
msgid "Read your own account info"
msgstr ""
msgstr "Číst informace o vlastním účtu"
#: accounts-service/com.endlessm.ParentalControls.policy.in:95
msgid "Authentication is required to read your account info."
msgstr ""
msgstr "Pro čtení informací o vlastním účtu je vyžadováno ověření."
#: accounts-service/com.endlessm.ParentalControls.policy.in:104
msgid "Change another users account info"
msgstr ""
msgstr "Měnit informace o účtu jiného uživatele"
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
msgid "Authentication is required to change another users account info."
msgstr ""
msgstr "Pro změnu informací o účtu jiného uživatele je vyžadováno ověření."
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
msgid "Read another users account info"
msgstr ""
msgstr "Číst informace o účtu jiného uživatele"
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
msgid "Authentication is required to read another users account info."
msgstr ""
msgstr "Pro čtení informací o účtu jiného uživatele je vyžadováno ověření."
#: libmalcontent/app-filter.c:694
#, c-format
msgid "App filter for user %u was in an unrecognized format"
msgstr ""
msgstr "Filtr aplikací pro uživatele %u byl v nerozpoznaném formátu"
#: libmalcontent/app-filter.c:725
#, c-format
msgid "OARS filter for user %u has an unrecognized kind %s"
msgstr ""
msgstr "OARS filtr pro uživatele %u má nerozpoznaný typ %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 ""
"Není povoleno dotazovat se na data rodičovské kontroly pro uživatele %u"
#: libmalcontent/manager.c:288
#, c-format
msgid "User %u does not exist"
msgstr ""
msgstr "Uživatel %u neexistuje"
#: libmalcontent/manager.c:394
#: libmalcontent/manager.c:296
msgid "System accounts service not available"
msgstr "Služba systémových účtů není dostupná"
#: libmalcontent/manager.c:402
msgid "App filtering is globally disabled"
msgstr ""
msgstr "Filtrování aplikací je globálně zakázáno"
#: 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 "Limity sezení jsou globálně zakázány"
#: libmalcontent/session-limits.c:306
#, c-format
msgid "Session limit for user %u was in an unrecognized format"
msgstr ""
msgstr "Limit sezení pro uživatele %u byl v nerozpoznaném formátu"
#: libmalcontent/session-limits.c:328
#, c-format
msgid "Session limit for user %u has an unrecognized type %u"
msgstr ""
msgstr "Limit sezení pro uživatele %u má nerozpoznaný typ %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 ""
msgstr "Limit sezení pro uživatele %u má neplatný denní rozvrh %u%u"
#. Translators: the placeholder is a users 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 "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 ""
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 ""
msgstr "Nenalezeny žádné aplikace k omezení."
#. 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 "neznámé"
#: 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 "libovolný věk"
#. Translators: The placeholder is a users 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 ""
"Zabraňuje uživateli %s ve spouštění webových prohlížečů. Omezený webový "
"obsah může být stále dostupný v jiných aplikacích."
#. Translators: The placeholder is a users 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 "Zabraňuje v používání určených aplikací uživatelem %s."
#. Translators: The placeholder is a users display name.
#: libmalcontent-ui/user-controls.c:524
#: libmalcontent-ui/user-controls.c:480
#, c-format
msgid "Prevents %s from installing applications."
msgstr ""
msgstr "Zabraňuje uživateli %s v instalaci aplikací."
#. Translators: The placeholder is a users 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 "Omezení použití aplikací"
#: libmalcontent-ui/user-controls.ui:68
#: libmalcontent-ui/user-controls.ui:28
msgid "Restrict _Web Browsers"
msgstr ""
msgstr "Omezit _webové prohlížeče"
#: libmalcontent-ui/user-controls.ui:152
#: libmalcontent-ui/user-controls.ui:51
msgid "_Restrict Applications"
msgstr ""
msgstr "Omezit _aplikace"
#: libmalcontent-ui/user-controls.ui:231
#: libmalcontent-ui/user-controls.ui:73
msgid "Software Installation Restrictions"
msgstr ""
msgstr "Omezení instalace softwaru"
#: libmalcontent-ui/user-controls.ui:281
#: libmalcontent-ui/user-controls.ui:77
msgid "Restrict Application _Installation"
msgstr ""
msgstr "Omezit _instalaci aplikací"
#: 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 "Vhodno_st aplikací"
#: 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 ""
"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
msgid "User to select in the UI"
msgstr "Uživatel ke zvolení v UI"
#. Translators: This is a placeholder for a command line argument value:
#: malcontent-control/application.c:104
msgid "USERNAME"
msgstr "UŽIVATEL"
#: 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: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 "Rodičovská kontrola"
#: 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 "Daniel Rusek <mail@asciiwolf.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 ""
msgstr "Webové stránky"
#: malcontent-control/application.c:299
#: malcontent-control/application.c:341
msgid "The help contents could not be displayed"
msgstr ""
msgstr "Obsah nápovědy nemohl být zobrazen"
#: malcontent-control/application.c:336
#: malcontent-control/application.c:388
msgid "Failed to load user data from the system"
msgstr ""
msgstr "Selhalo načtení uživatelských dat ze systému"
#: malcontent-control/application.c:338
#: malcontent-control/application.c:390
msgid "Please make sure that the AccountsService is installed and enabled."
msgstr ""
msgstr "Ověřte prosím, že je AccountsService nainstalováno a povoleno."
#: 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 ""
"Its 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 ""
"Je doporučeno, aby byla omezení nastavena jako součást probíhající "
"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:38
msgid "Previous Page"
msgstr ""
msgstr "Předchozí stránka"
#: malcontent-control/carousel.ui:74
#: malcontent-control/carousel.ui:57
msgid "Next Page"
msgstr ""
msgstr "Následující stránka"
#: malcontent-control/main.ui:93
#: malcontent-control/main.ui:87
msgid "Permission Required"
msgstr ""
msgstr "Vyžadováno oprávnění"
#: malcontent-control/main.ui:107
#: 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:148
msgid "No Child Users Configured"
msgstr ""
#: malcontent-control/main.ui:110
msgid "No Standard User Accounts"
msgstr "Žádný běžný uživatelský účet"
#: 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 ""
"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:174
msgid "Create _Child User"
msgstr ""
#: malcontent-control/main.ui:115
msgid "_User Settings"
msgstr "Nastavení _uživatelů"
#: malcontent-control/main.ui:202
#: malcontent-control/main.ui:138
msgid "Loading…"
msgstr ""
msgstr "Načítá se…"
#: malcontent-control/main.ui:265
#: malcontent-control/main.ui:171
msgid "_Help"
msgstr "_Nápověda"
#: malcontent-control/main.ui:269
#: malcontent-control/main.ui:175
msgid "_About Parental Controls"
msgstr ""
msgstr "O _aplikaci Rodičovská kontrola"
#. 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 "Nastavte rodičovskou kontrolu a monitorujte používání uživateli"
#. Translators: These are the application description paragraphs in the AppData file.
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:16
@ -384,67 +376,35 @@ msgid ""
"use the computer for, what software they can install, and what installed "
"software they can run."
msgstr ""
"Spravujte omezení rodičovské kontroly uživatelů, určující jak dlouho mohou "
"používat počítač, jaký software mohou instalovat a jaký software mohou "
"spouštět."
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
msgid "Main window"
msgstr "Hlavní okno"
#: 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 "Projekt 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 ""
"rodičovská kontrola;čas u obrazovky;omezení aplikací;omezení webového "
"prohlížeče;oars;použití;omezení použití;dítě;děti;"
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:9
msgid "Manage parental controls"
msgstr ""
msgstr "Spravovat rodičovskou kontrolu"
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:10
msgid "Authentication is required to read and change user parental controls"
msgstr ""
"Pro zobrazení a změnu rodičovské kontroly uživatele je vyžadováno ověření"
#: malcontent-control/user-selector.c:426
msgid "Your account"
@ -455,22 +415,50 @@ msgstr "Váš účet"
#: pam/pam_malcontent.c:142 pam/pam_malcontent.c:188
#, c-format
msgid "User %s has no time limits enabled"
msgstr ""
msgstr "Uživatel %s nemá nastaveny časové limity"
#: pam/pam_malcontent.c:151 pam/pam_malcontent.c:172
#, c-format
msgid "Error getting session limits for user %s: %s"
msgstr ""
msgstr "Chyba při získávání limitů sezení pro uživatele %s: %s"
#: pam/pam_malcontent.c:182
#, c-format
msgid "User %s has no time remaining"
msgstr ""
msgstr "Uživatel %s nemá žádný zbývající čas"
#: pam/pam_malcontent.c:200
#, c-format
msgid "Error setting time limit on login session: %s"
msgstr ""
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í"

600
po/da.po
View File

@ -1,16 +1,21 @@
# Danish translations for malcontent package.
# Copyright (C) 2020 THE malcontent'S COPYRIGHT HOLDER
# Danish translation for malcontent.
# Copyright (C) 2020 malcontent's COPYRIGHT HOLDER
# This file is distributed under the same license as the malcontent package.
# Automatically generated, 2020.
#
# scootergrisen, 2020.
# scootergrisen: oversættelsen er ikke afprøvet
# scootergrisen: tjek følgende i malcontent og malcontent-help:
# scootergrisen: restrict - begræns (ikke sikkert den er god) - forhindr - bloker
# scootergrisen: age - aldersgruppe - måske alder
# scootergrisen: change - ændr - måske skift
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"
"Project-Id-Version: malcontent master\n"
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
"issues\n"
"POT-Creation-Date: 2020-11-18 03:27+0000\n"
"PO-Revision-Date: 2020-11-18 00:00+0200\n"
"Last-Translator: scootergrisen\n"
"Language-Team: Danish\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,349 +24,377 @@ msgstr ""
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
msgid "Change your own app filter"
msgstr ""
msgstr "Ændr dit eget programfilter"
#: accounts-service/com.endlessm.ParentalControls.policy.in:5
msgid "Authentication is required to change your app filter."
msgstr ""
msgstr "Der kræves godkendelse for at ændre dit eget programfilter."
#: accounts-service/com.endlessm.ParentalControls.policy.in:14
msgid "Read your own app filter"
msgstr ""
msgstr "Læs dit eget programfilter"
#: accounts-service/com.endlessm.ParentalControls.policy.in:15
msgid "Authentication is required to read your app filter."
msgstr ""
msgstr "Der kræves godkendelse for at læse dit eget programfilter."
#: accounts-service/com.endlessm.ParentalControls.policy.in:24
msgid "Change another users app filter"
msgstr ""
msgstr "Ændr en anden brugers programfilter"
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
msgid "Authentication is required to change another users app filter."
msgstr ""
msgstr "Der kræves godkendelse for at ændre en anden brugers programfilter."
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
msgid "Read another users app filter"
msgstr ""
msgstr "Læs en anden brugers programfilter"
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
msgid "Authentication is required to read another users app filter."
msgstr ""
msgstr "Der kræves godkendelse for at læse en anden brugers programfilter."
#: accounts-service/com.endlessm.ParentalControls.policy.in:44
msgid "Change your own session limits"
msgstr ""
msgstr "Ændr dine egne sessionsgrænser"
#: accounts-service/com.endlessm.ParentalControls.policy.in:45
msgid "Authentication is required to change your session limits."
msgstr ""
msgstr "Der kræves godkendelse for at ændre dine egne sessionsgrænser."
#: accounts-service/com.endlessm.ParentalControls.policy.in:54
msgid "Read your own session limits"
msgstr ""
msgstr "Læs dine egne sessionsgrænser"
#: accounts-service/com.endlessm.ParentalControls.policy.in:55
msgid "Authentication is required to read your session limits."
msgstr ""
msgstr "Der kræves godkendelse for at læse dine egne sessionsgrænser."
#: accounts-service/com.endlessm.ParentalControls.policy.in:64
msgid "Change another users session limits"
msgstr ""
msgstr "Ændr en anden brugers sessionsgrænser"
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
msgid "Authentication is required to change another users session limits."
msgstr ""
msgstr "Der kræves godkendelse for at ændre en anden brugers sessionsgrænser."
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
msgid "Read another users session limits"
msgstr ""
msgstr "Læs en anden brugers sessionsgrænser"
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
msgid "Authentication is required to read another users session limits."
msgstr ""
msgstr "Der kræves godkendelse for at læse en anden brugers sessionsgrænser."
#: accounts-service/com.endlessm.ParentalControls.policy.in:84
msgid "Change your own account info"
msgstr ""
msgstr "Ændr din egen kontoinformation"
#: accounts-service/com.endlessm.ParentalControls.policy.in:85
msgid "Authentication is required to change your account info."
msgstr ""
msgstr "Der kræves godkendelse for at ændre din egen kontoinformation."
#: accounts-service/com.endlessm.ParentalControls.policy.in:94
msgid "Read your own account info"
msgstr ""
msgstr "Læs din egen kontoinformation"
#: accounts-service/com.endlessm.ParentalControls.policy.in:95
msgid "Authentication is required to read your account info."
msgstr ""
msgstr "Der kræves godkendelse for at læse din egen kontoinformation."
#: accounts-service/com.endlessm.ParentalControls.policy.in:104
msgid "Change another users account info"
msgstr ""
msgstr "Ændr en anden brugers kontoinformation"
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
msgid "Authentication is required to change another users account info."
msgstr ""
msgstr "Der kræves godkendelse for at ændre en anden brugers kontoinformation."
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
msgid "Read another users account info"
msgstr ""
msgstr "Læs en anden brugers kontoinformation"
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
msgid "Authentication is required to read another users account info."
msgstr ""
msgstr "Der kræves godkendelse for at læse en anden brugers kontoinformation."
#: libmalcontent/app-filter.c:694
#, c-format
msgid "App filter for user %u was in an unrecognized format"
msgstr ""
msgstr "Programfilteret til brugeren %u var i et format som ikke blev genkendt"
# scootergrisen: tjek oversættelsen af "kind"
#: libmalcontent/app-filter.c:725
#, c-format
msgid "OARS filter for user %u has an unrecognized kind %s"
msgstr ""
msgstr "OARS-filteret til brugeren %u har en slags “%s” som ikke blev genkendt"
#: 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 ""
"Har ikke tilladelse til at forespørge forældrestyringsdata til brugeren %u"
#: libmalcontent/manager.c:288
#, c-format
msgid "User %u does not exist"
msgstr ""
msgstr "Brugeren %u findes ikke"
#: libmalcontent/manager.c:394
#: libmalcontent/manager.c:296
msgid "System accounts service not available"
msgstr "Systemets kontitjeneste ikke tilgængeligt"
#: libmalcontent/manager.c:402
msgid "App filtering is globally disabled"
msgstr ""
msgstr "Programfiltrering er deaktiveret globalt"
#: 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 "Sessionsgrænser er deaktiveret globalt"
#: libmalcontent/session-limits.c:306
#, c-format
msgid "Session limit for user %u was in an unrecognized format"
msgstr ""
msgstr "Sessionsgrænse til brugeren %u var i et format som ikke blev genkendt"
#: libmalcontent/session-limits.c:328
#, c-format
msgid "Session limit for user %u has an unrecognized type %u"
msgstr ""
msgstr "Sessionsgrænse til brugeren %u har en type “%u” som ikke blev genkendt"
#: libmalcontent/session-limits.c:346
#, c-format
msgid "Session limit for user %u has invalid daily schedule %u%u"
msgstr ""
msgstr "Sessionsgrænse til brugeren %u har ugyldig daglig planlægning %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 "Generelt"
#: libmalcontent-ui/gs-content-rating.c:218
msgid "ALL"
msgstr ""
msgstr "ALLE"
#: libmalcontent-ui/gs-content-rating.c:222
#: libmalcontent-ui/gs-content-rating.c:485
msgid "Adults Only"
msgstr ""
msgstr "Kun voksne"
# scootergrisen: fra gennemlæsning: Jeg ved ikke helt hvilken aldersgruppe, de mener, men måske store teenagere
#: libmalcontent-ui/gs-content-rating.c:224
#: libmalcontent-ui/gs-content-rating.c:484
msgid "Mature"
msgstr ""
msgstr "Modne"
#: libmalcontent-ui/gs-content-rating.c:226
#: libmalcontent-ui/gs-content-rating.c:483
msgid "Teen"
msgstr ""
msgstr "Teenagere"
#: libmalcontent-ui/gs-content-rating.c:228
#: libmalcontent-ui/gs-content-rating.c:482
msgid "Everyone 10+"
msgstr ""
msgstr "10 år og op"
#: libmalcontent-ui/gs-content-rating.c:230
#: libmalcontent-ui/gs-content-rating.c:481
msgid "Everyone"
msgstr ""
msgstr "Alle"
#: libmalcontent-ui/gs-content-rating.c:232
#: libmalcontent-ui/gs-content-rating.c:480
msgid "Early Childhood"
msgstr ""
msgstr "Småbørn"
#. Translators: the placeholder is a users full name
#: libmalcontent-ui/restrict-applications-dialog.c:222
#, c-format
msgid "Restrict %s from using the following installed applications."
msgstr ""
msgstr "Begræns %s i at bruge følgende installerede programmer."
#: libmalcontent-ui/restrict-applications-dialog.ui:6
#: libmalcontent-ui/restrict-applications-dialog.ui:12
msgid "Restrict Applications"
msgstr ""
msgstr "Begræns programmer"
#: libmalcontent-ui/restrict-applications-selector.ui:24
msgid "No applications found to restrict."
msgstr ""
msgstr "Fandt ingen programmer at begrænse."
#. 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:243 libmalcontent-ui/user-controls.c:254
msgid "unknown"
msgstr ""
msgstr "ukendt"
#: libmalcontent-ui/user-controls.c:338 libmalcontent-ui/user-controls.c:425
#: libmalcontent-ui/user-controls.c:711
#: libmalcontent-ui/user-controls.c:348 libmalcontent-ui/user-controls.c:435
#: libmalcontent-ui/user-controls.c:741
msgid "All Ages"
msgstr ""
msgstr "Alle aldersgrupper"
#. Translators: The placeholder is a users display name.
#: libmalcontent-ui/user-controls.c:514
#: libmalcontent-ui/user-controls.c:530
#, c-format
msgid ""
"Prevents %s from running web browsers. Limited web content may still be "
"available in other applications."
msgstr ""
"Forhindrer %s i at køre webbrowsere. Begrænset webindhold kan stadigvæk være "
"tilgængelig i andre programmer."
#. Translators: The placeholder is a users display name.
#: libmalcontent-ui/user-controls.c:519
#: libmalcontent-ui/user-controls.c:535
#, c-format
msgid "Prevents specified applications from being used by %s."
msgstr ""
msgstr "Forhindrer %s i at bruge de angivne programmer."
#. Translators: The placeholder is a users display name.
#: libmalcontent-ui/user-controls.c:524
#: libmalcontent-ui/user-controls.c:540
#, c-format
msgid "Prevents %s from installing applications."
msgstr ""
msgstr "Forhindrer %s i at installere programmer."
#. Translators: The placeholder is a users display name.
#: libmalcontent-ui/user-controls.c:529
#: libmalcontent-ui/user-controls.c:545
#, c-format
msgid "Applications installed by %s will not appear for other users."
msgstr ""
"Programmer, som er blevet installeret af %s, vises ikke for andre brugere."
#: libmalcontent-ui/user-controls.ui:17
msgid "Application Usage Restrictions"
msgstr ""
msgstr "Begrænsninger for anvendelse af programmer"
#: libmalcontent-ui/user-controls.ui:68
msgid "Restrict _Web Browsers"
msgstr ""
msgstr "Begræns _webbrowsere"
#: libmalcontent-ui/user-controls.ui:152
msgid "_Restrict Applications"
msgstr ""
msgstr "Begræns _programmer"
#: libmalcontent-ui/user-controls.ui:231
msgid "Software Installation Restrictions"
msgstr ""
msgstr "Begrænsninger for softwareinstallation"
#: libmalcontent-ui/user-controls.ui:281
msgid "Restrict Application _Installation"
msgstr ""
msgstr "Begræns program_installation"
#: libmalcontent-ui/user-controls.ui:366
msgid "Restrict Application Installation for _Others"
msgstr ""
msgstr "Begræns programinstallation for _andre"
#: libmalcontent-ui/user-controls.ui:451
msgid "Application _Suitability"
msgstr ""
msgstr "Program_egnethed"
#: libmalcontent-ui/user-controls.ui:473
msgid ""
"Restricts browsing or installation of applications to applications suitable "
"for certain ages or above."
msgstr ""
"Begrænser gennemgang eller installation af programmer til programmer som er "
"egnet til bestemte aldersgrupper eller ældre."
#. Translators: This documents the --user command line option to malcontent-control:
#: malcontent-control/application.c:101
msgid "User to select in the UI"
msgstr "Brugeren som skal vælges i brugerfladen"
#. Translators: This is a placeholder for a command line argument value:
#: malcontent-control/application.c:103
msgid "USERNAME"
msgstr "BRUGERNAVN"
#: malcontent-control/application.c:114
msgid "— view and edit parental controls"
msgstr "— vis og rediger forældrestyring"
#. 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:121 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 "Forældrestyring"
#: malcontent-control/application.c:270
#: malcontent-control/application.c:306
msgid "Copyright © 2019, 2020 Endless Mobile, Inc."
msgstr ""
msgstr "Ophavsret © 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:311
msgid "translator-credits"
msgstr ""
msgstr "scootergrisen"
#. Translators: "Malcontent" is the brand name of this
#. project, so should not be translated.
#: malcontent-control/application.c:281
#: malcontent-control/application.c:317
msgid "Malcontent Website"
msgstr ""
msgstr "Malcontents websted"
#: malcontent-control/application.c:299
#: malcontent-control/application.c:335
msgid "The help contents could not be displayed"
msgstr ""
msgstr "Hjælpeindholdet kunne ikke vises"
#: malcontent-control/application.c:336
#: malcontent-control/application.c:372
msgid "Failed to load user data from the system"
msgstr ""
msgstr "Kunne ikke indlæse brugerdata fra systemet"
#: malcontent-control/application.c:338
#: malcontent-control/application.c:374
msgid "Please make sure that the AccountsService is installed and enabled."
msgstr ""
msgstr "Sørg venligst for at AccountsService er installeret og aktiveret."
#: malcontent-control/carousel.ui:48
msgid "Previous Page"
msgstr ""
msgstr "Forrige side"
#: malcontent-control/carousel.ui:74
msgid "Next Page"
msgstr ""
msgstr "Næste side"
#: malcontent-control/main.ui:93
msgid "Permission Required"
msgstr ""
msgstr "Kræver tilladelse"
#: malcontent-control/main.ui:107
msgid ""
"Permission is required to view and change user parental controls settings."
msgstr ""
"Der kræves tilladelse for at vise og ændre brugerens "
"forældrestyringsindstillinger."
# scootergrisen: fra gennemlæsning: Er det nogen som bruger børn?
# scootergrisen: fra gennemlæsning: brug f.eks.: mindreårige brugere (og i flere efterfølgende - også i help)
#: malcontent-control/main.ui:148
msgid "No Child Users Configured"
msgstr ""
msgstr "Der er ikke konfigureret nogen barnebrugere"
#: 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 ""
"Der er ikke opsat nogen barnebrugere på systemet i øjeblikket. Opret en "
"inden opsætningen af dens forældrestyring."
#: malcontent-control/main.ui:174
msgid "Create _Child User"
msgstr ""
msgstr "Opret _barnebruger"
#: malcontent-control/main.ui:202
msgid "Loading…"
msgstr ""
msgstr "Indlæser …"
#: malcontent-control/main.ui:265
msgid "_Help"
@ -369,13 +402,13 @@ msgstr "_Hjælp"
#: malcontent-control/main.ui:269
msgid "_About Parental Controls"
msgstr ""
msgstr "_Om Forældrestyring"
#. 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 "Indstil forældrestyring og overvåg brugernes anvendelse"
#. Translators: These are the application description paragraphs in the AppData file.
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:16
@ -384,52 +417,17 @@ msgid ""
"use the computer for, what software they can install, and what installed "
"software they can run."
msgstr ""
"Håndter brugernes forældrestyringsbegrænsninger, styring af hvor længe de "
"kan bruge computeren, hvilke software de kan installere og hvilke "
"installeret software de kan køre."
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
msgid "Main window"
msgstr "Hovedvindue"
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:38
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-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
@ -437,14 +435,16 @@ msgid ""
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
"usage;usage limit;kid;child;"
msgstr ""
"forældrestyring;skærmtid;programbegrænsninger;webbrowserbegrænsninger;oars;"
"anvendelse;anvendelsesbegrænsning;barn;børn;"
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:9
msgid "Manage parental controls"
msgstr ""
msgstr "Håndter forældrestyring"
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:10
msgid "Authentication is required to read and change user parental controls"
msgstr ""
msgstr "Der kræves godkendelse for at læse og ændre brugerens forældrestyring"
#: malcontent-control/user-selector.c:426
msgid "Your account"
@ -455,313 +455,19 @@ msgstr "Din konto"
#: pam/pam_malcontent.c:142 pam/pam_malcontent.c:188
#, c-format
msgid "User %s has no time limits enabled"
msgstr ""
msgstr "Brugeren “%s” har ingen tidsgrænser aktiveret"
#: pam/pam_malcontent.c:151 pam/pam_malcontent.c:172
#, c-format
msgid "Error getting session limits for user %s: %s"
msgstr ""
msgstr "Fejl ved hentning af sessionsgrænser for brugeren “%s”: %s"
#: pam/pam_malcontent.c:182
#, c-format
msgid "User %s has no time remaining"
msgstr ""
msgstr "Brugeren “%s” har ikke mere tid tilbage"
#: pam/pam_malcontent.c:200
#, c-format
msgid "Error setting time limit on login session: %s"
msgstr ""
#~ msgid "No cartoon violence"
#~ msgstr "Ingen tegneserie-vold"
#~ msgid "Cartoon characters in unsafe situations"
#~ msgstr "Tegneseriefigurer i farlige situationer"
#~ msgid "Cartoon characters in aggressive conflict"
#~ msgstr "Tegneseriefigurer i aggressiv konflikt"
#~ msgid "Graphic violence involving cartoon characters"
#~ msgstr "Visuel fremstilling af vold som involverer tegneseriefigurer"
#~ msgid "No fantasy violence"
#~ msgstr "Ingen fantasy-vold"
#~ msgid "Characters in unsafe situations easily distinguishable from reality"
#~ msgstr ""
#~ "Karakterer, som er nemme at skelne fra virkeligheden, i farlige "
#~ "situationer"
#~ msgid ""
#~ "Characters in aggressive conflict easily distinguishable from reality"
#~ msgstr ""
#~ "Karakterer, som er nemme at skelne fra virkeligheden, i aggressiv konflikt"
#~ msgid "Graphic violence easily distinguishable from reality"
#~ msgstr "Visuel fremstilling af vold som er nemt at skelne fra virkeligheden"
#~ msgid "No realistic violence"
#~ msgstr "Ingen realistisk vold"
#~ msgid "Mildly realistic characters in unsafe situations"
#~ msgstr "Lettere realistiske karakterer i farlige situationer"
#~ msgid "Depictions of realistic characters in aggressive conflict"
#~ msgstr "Skildringer af realistiske karakterer i aggressiv konflikt"
#~ msgid "Graphic violence involving realistic characters"
#~ msgstr "Visuel fremstilling af vold som involverer realistiske karakterer"
#~ msgid "No bloodshed"
#~ msgstr "Ingen blodsudgydelser"
#~ msgid "Unrealistic bloodshed"
#~ msgstr "Urealistiske blodsudgydelser"
#~ msgid "Realistic bloodshed"
#~ msgstr "Realistiske blodsudgydelser"
#~ msgid "Depictions of bloodshed and the mutilation of body parts"
#~ msgstr "Skildringer af blodsudgydelser og lemlæstelse af kropsdele"
#~ msgid "No sexual violence"
#~ msgstr "Ingen seksuel vold"
#~ msgid "Rape or other violent sexual behavior"
#~ msgstr "Voldtægt eller anden voldelig seksuel opførsel"
#~ msgid "No references to alcohol"
#~ msgstr "Ingen referencer til alkohol"
#~ msgid "References to alcoholic beverages"
#~ msgstr "Referencer til alkoholiske drikke"
#~ msgid "Use of alcoholic beverages"
#~ msgstr "Brug af alkoholiske drikke"
#~ msgid "No references to illicit drugs"
#~ msgstr "Ingen referencer til ulovlige stoffer"
#~ msgid "References to illicit drugs"
#~ msgstr "Referencer til ulovlige stoffer"
#~ msgid "Use of illicit drugs"
#~ msgstr "Brug af ulovlige stoffer"
#~ msgid "References to tobacco products"
#~ msgstr "Referencer til tobaksvarer"
#~ msgid "Use of tobacco products"
#~ msgstr "Brug af tobaksvarer"
#~ msgid "No nudity of any sort"
#~ msgstr "Ingen nøgenhed af nogen art"
#~ msgid "Brief artistic nudity"
#~ msgstr "Kortvarig kunstnerisk nøgenhed"
#~ msgid "Prolonged nudity"
#~ msgstr "Længerevarende nøgenhed"
#~ msgid "No references or depictions of sexual nature"
#~ msgstr "Ingen referencer til eller skildringer af seksuel natur"
#~ msgid "Provocative references or depictions"
#~ msgstr "Provokerende referencer eller skildringer"
#~ msgid "Sexual references or depictions"
#~ msgstr "Seksuelle referencer eller skildringer"
#~ msgid "Graphic sexual behavior"
#~ msgstr "Visuel fremstilling af seksuel opførsel"
#~ msgid "No profanity of any kind"
#~ msgstr "Ingen bandeord af nogen art"
#~ msgid "Mild or infrequent use of profanity"
#~ msgstr "Lettere eller sjælden brug af bandeord"
#~ msgid "Moderate use of profanity"
#~ msgstr "Moderat brug af bandeord"
#~ msgid "Strong or frequent use of profanity"
#~ msgstr "Stærk eller udbredt brug af bandeord"
#~ msgid "No inappropriate humor"
#~ msgstr "Ingen upassende humor"
#~ msgid "Slapstick humor"
#~ msgstr "Slapstick-humor"
#~ msgid "Vulgar or bathroom humor"
#~ msgstr "Toilet- eller vulgær humor"
#~ msgid "Mature or sexual humor"
#~ msgstr "Voksen- eller seksuel humor"
#~ msgid "No discriminatory language of any kind"
#~ msgstr "Intet diskriminerende sprog af nogen art"
#~ msgid "Negativity towards a specific group of people"
#~ msgstr "Negativitet mod en specifik gruppe af mennesker"
#~ msgid "Discrimination designed to cause emotional harm"
#~ msgstr "Diskriminering med følelsesmæssig skade som formål"
#~ msgid "Explicit discrimination based on gender, sexuality, race or religion"
#~ msgstr ""
#~ "Eksplicit diskriminering baseret på køn, seksualitet, race eller religion"
#~ msgid "No advertising of any kind"
#~ msgstr "Ingen reklamer af nogen art"
#~ msgid "Product placement"
#~ msgstr "Product placement"
#~ msgid "Explicit references to specific brands or trademarked products"
#~ msgstr ""
#~ "Eksplicitte referencer til specifikke brands eller varemærkede produkter"
#~ msgid "Users are encouraged to purchase specific real-world items"
#~ msgstr ""
#~ "Brugere opfordres til at købe specifikke ting fra den virkelige verden"
#~ msgid "No gambling of any kind"
#~ msgstr "Ingen hasardspil af nogen art"
#~ msgid "Gambling on random events using tokens or credits"
#~ msgstr ""
#~ "Hasardspil om tilfældige lejligheder, med brug af spille-tokens eller "
#~ "kredit"
#~ msgid "Gambling using “play” money"
#~ msgstr "Hasardspil med “legetøjs”-penge"
#~ msgid "Gambling using real money"
#~ msgstr "Hasardspil med rigtige penge"
#~ msgid "No ability to spend money"
#~ msgstr "Ingen mulighed for at bruge penge"
#~ msgid "Users are encouraged to donate real money"
#~ msgstr "Brugere opfordres til at donere virkelige penge"
#~ msgid "Ability to spend real money in-game"
#~ msgstr "Mulighed for at bruge rigtige penge i spillet"
#~ msgid "No way to chat with other users"
#~ msgstr "Ingen mulighed for at chatte med andre brugere"
#~ msgid "Moderated chat functionality between users"
#~ msgstr "Modereret chat-funktionalitet mellem brugere"
#~ msgid "Uncontrolled chat functionality between users"
#~ msgstr "Ubegrænset chat-funktionalitet mellem brugere"
#~ msgid "No way to talk with other users"
#~ msgstr "Ingen mulighed for at tale med andre brugere"
#~ msgid "Uncontrolled audio or video chat functionality between users"
#~ msgstr "Ubegrænset lyd- eller video-chat-funktionalitet mellem brugere"
#~ msgid "No sharing of social network usernames or email addresses"
#~ msgstr ""
#~ "Ingen deling af brugernavne fra sociale netværk eller email-adresser"
#~ msgid "Sharing social network usernames or email addresses"
#~ msgstr "Deling af brugernavne fra sociale netværk eller email-adresser"
#~ msgid "No sharing of user information with 3rd parties"
#~ msgstr "Ingen deling af brugerinformation med tredjeparter"
#~ msgid "Checking for the latest application version"
#~ msgstr "Tjekker for den seneste version af programmet"
#~ msgid "Sharing diagnostic data that does not let others identify the user"
#~ msgstr ""
#~ "Deling af diagnostiske data som ikke lader andre identificere brugeren"
#~ msgid "Sharing information that lets others identify the user"
#~ msgstr "Deling af information som lader andre identificere brugeren"
#~ msgid "No sharing of physical location to other users"
#~ msgstr "Ingen deling af fysisk placering med andre brugere"
#~ msgid "Sharing physical location to other users"
#~ msgstr "Deler fysisk placering med andre brugere"
#~ msgid "No references to homosexuality"
#~ msgstr "Ingen referencer til homoseksualitet"
#~ msgid "Indirect references to homosexuality"
#~ msgstr "Indirekte referencer til homoseksualitet"
#~ msgid "Kissing between people of the same gender"
#~ msgstr "Personer af samme køn som kysser"
#~ msgid "Graphic sexual behavior between people of the same gender"
#~ msgstr ""
#~ "Visuel fremstilling af seksuel opførsel mellem mennesker af samme køn"
#~ msgid "No references to prostitution"
#~ msgstr "Ingen referencer til prostitution"
#~ msgid "Indirect references to prostitution"
#~ msgstr "Indirekte referencer til prostitution"
#~ msgid "Direct references to prostitution"
#~ msgstr "Direkte referencer til prostitution"
#~ msgid "Graphic depictions of the act of prostitution"
#~ msgstr "Visuel fremstilling af prostitution"
#~ msgid "No references to adultery"
#~ msgstr "Ingen referencer til utroskab"
#~ msgid "Indirect references to adultery"
#~ msgstr "Indirekte referencer til utroskab"
#~ msgid "Direct references to adultery"
#~ msgstr "Direkte referencer til utroskab"
#~ msgid "Graphic depictions of the act of adultery"
#~ msgstr "Visuel fremstilling af utroskab"
#~ msgid "No sexualized characters"
#~ msgstr "Ingen seksualiserede personer"
#~ msgid "Scantily clad human characters"
#~ msgstr "Sparsomt påklædte personer"
#~ msgid "Overtly sexualized human characters"
#~ msgstr "Åbenlyst seksualiserede personer"
#~ msgid "No references to desecration"
#~ msgstr "Ingen referencer til vanhelligelse"
#~ msgid "Depictions of modern-day human desecration"
#~ msgstr "Fremstilling af nutidig vanhelligelse"
#~ msgid "Graphic depictions of modern-day desecration"
#~ msgstr "Visuel fremstilling af nutidig vanhelligelse"
#~ msgid "No visible dead human remains"
#~ msgstr "Ingen synlige ligdele"
#~ msgid "Visible dead human remains"
#~ msgstr "Synlige ligdele"
#~ msgid "Dead human remains that are exposed to the elements"
#~ msgstr "Ligdele i forfald"
#~ msgid "Graphic depictions of desecration of human bodies"
#~ msgstr "Visuel fremstilling af ligskænding"
#~ msgid "No references to slavery"
#~ msgstr "Ingen referencer til slaveri"
#~ msgid "Depictions of modern-day slavery"
#~ msgstr "Fremstilling af nutidigt slaveri"
#~ msgid "Graphic depictions of modern-day slavery"
#~ msgstr "Visuel fremstilling af nutidigt slaveri"
msgstr "Fejl ved indstilling af tidsgrænse i indlogningssession: %s"

350
po/de.po
View File

@ -6,376 +6,431 @@
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: 2021-10-12 15:28+0000\n"
"PO-Revision-Date: 2021-04-11 14:21+0200\n"
"Last-Translator: Tim Sabsch <tim@sabsch.com>\n"
"Language-Team: none\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 2.4.2\n"
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
msgid "Change your own app filter"
msgstr ""
msgstr "Ihren eigenen Anwendungsfilter ändern"
#: accounts-service/com.endlessm.ParentalControls.policy.in:5
msgid "Authentication is required to change your app filter."
msgstr ""
msgstr "Legitimierung ist erforderlich, um Ihren Anwendungsfilter zu ändern."
#: accounts-service/com.endlessm.ParentalControls.policy.in:14
msgid "Read your own app filter"
msgstr ""
msgstr "Ihren eigenen Anwendungsfilter ansehen"
#: accounts-service/com.endlessm.ParentalControls.policy.in:15
msgid "Authentication is required to read your app filter."
msgstr ""
msgstr "Legitimierung ist erforderlich, um Ihren Anwendungsfilter anzusehen."
#: accounts-service/com.endlessm.ParentalControls.policy.in:24
msgid "Change another users app filter"
msgstr ""
msgstr "Anwendungsfilter eines anderen Nutzers ändern"
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
msgid "Authentication is required to change another users app filter."
msgstr ""
"Legitimierung ist erforderlich, um den Anwendungsfilter eines anderen "
"Nutzers zu ändern."
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
msgid "Read another users app filter"
msgstr ""
msgstr "Anwendungsfilter eines anderen Nutzers ansehen"
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
msgid "Authentication is required to read another users app filter."
msgstr ""
"Legitimierung ist erforderlich, um den Anwendungsfilter eines anderen "
"Nutzers anzusehen."
#: accounts-service/com.endlessm.ParentalControls.policy.in:44
msgid "Change your own session limits"
msgstr ""
msgstr "Ihre eigenen Sitzungsbeschränkungen ändern"
#: accounts-service/com.endlessm.ParentalControls.policy.in:45
msgid "Authentication is required to change your session limits."
msgstr ""
"Legitimierung ist erforderlich, um Ihre Sitzungsbeschränkungen zu ändern."
#: accounts-service/com.endlessm.ParentalControls.policy.in:54
msgid "Read your own session limits"
msgstr ""
msgstr "Ihre eigenen Sitzungsbeschränkungen ansehen"
#: accounts-service/com.endlessm.ParentalControls.policy.in:55
msgid "Authentication is required to read your session limits."
msgstr ""
"Legitimierung ist erforderlich, um Ihre Sitzungsbeschränkungen anzusehen."
#: accounts-service/com.endlessm.ParentalControls.policy.in:64
msgid "Change another users session limits"
msgstr ""
msgstr "Sitzungsbeschränkungen eines anderen Nutzers ändern"
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
msgid "Authentication is required to change another users session limits."
msgstr ""
"Legitimierung ist erforderlich, um die Sitzungsbeschränkungen eines anderen "
"Nutzers zu ändern."
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
msgid "Read another users session limits"
msgstr ""
msgstr "Sitzungsbeschränkungen eines anderen Nutzers ansehen"
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
msgid "Authentication is required to read another users session limits."
msgstr ""
"Legitimierung ist erforderlich, um die Sitzungsbeschränkungen eines anderen "
"Nutzers anzusehen."
#: accounts-service/com.endlessm.ParentalControls.policy.in:84
msgid "Change your own account info"
msgstr ""
msgstr "Eigene Kontoinformationen ändern"
#: accounts-service/com.endlessm.ParentalControls.policy.in:85
msgid "Authentication is required to change your account info."
msgstr ""
msgstr "Legitimierung ist erforderlich, um Ihre Kontoinformationen zu ändern."
#: accounts-service/com.endlessm.ParentalControls.policy.in:94
msgid "Read your own account info"
msgstr ""
msgstr "Eigene Kontoinformationen ansehen"
#: accounts-service/com.endlessm.ParentalControls.policy.in:95
msgid "Authentication is required to read your account info."
msgstr ""
msgstr "Legitimierung ist erforderlich, um Ihre Kontoinformationen anzusehen."
#: accounts-service/com.endlessm.ParentalControls.policy.in:104
msgid "Change another users account info"
msgstr ""
msgstr "Kontoinformationen eines anderen Nutzers ändern"
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
msgid "Authentication is required to change another users account info."
msgstr ""
"Legitimierung ist erforderlich, um die Kontoinformationen eines anderen "
"Nutzers zu ändern."
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
msgid "Read another users account info"
msgstr ""
msgstr "Kontoinformationen eines anderen Nutzers ansehen"
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
msgid "Authentication is required to read another users account info."
msgstr ""
"Legitimierung ist erforderlich, um die Kontoinformationen eines anderen "
"Nutzers anzusehen."
#: libmalcontent/app-filter.c:694
#, c-format
msgid "App filter for user %u was in an unrecognized format"
msgstr ""
msgstr "Anwendungsfilter für Nutzer %u war in einem unbekannten Format"
#: libmalcontent/app-filter.c:725
#, c-format
msgid "OARS filter for user %u has an unrecognized kind %s"
msgstr ""
msgstr "OARS-Filter für den Nutzer %u hat ein unbekanntes Element »%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 ""
msgid "Not allowed to query parental controls data for user %u"
msgstr "Nicht zur Abfrage der Kindersicherungsdaten des Nutzers %u berechtigt"
#: libmalcontent/manager.c:288
#, c-format
msgid "User %u does not exist"
msgstr ""
msgstr "Nutzer %u existiert nicht"
#: libmalcontent/manager.c:394
#: libmalcontent/manager.c:296
msgid "System accounts service not available"
msgstr "Kontendienst nicht verfügbar"
#: libmalcontent/manager.c:402
msgid "App filtering is globally disabled"
msgstr ""
msgstr "Filtern von Anwendungen ist global deaktiviert"
#: 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 "Sitzungsbeschränkungen sind global deaktiviert"
#: libmalcontent/session-limits.c:306
#, c-format
msgid "Session limit for user %u was in an unrecognized format"
msgstr ""
msgstr "Sitzungsbeschränkung für Nutzer %u war in einem unbekannten Format"
#: libmalcontent/session-limits.c:328
#, c-format
msgid "Session limit for user %u has an unrecognized type %u"
msgstr ""
msgstr "Sitzungsbeschränkung des Nutzers %u hat einen unbekannten Typ »%u«"
#: libmalcontent/session-limits.c:346
#, c-format
msgid "Session limit for user %u has invalid daily schedule %u%u"
msgstr ""
"Sitzungsbeschränkung für Nutzer %u hat einen ungültigen täglichen Plan %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 "Allgemein"
#: libmalcontent-ui/gs-content-rating.c:218
msgid "ALL"
msgstr ""
msgstr "ALLE"
#: libmalcontent-ui/gs-content-rating.c:222
#: libmalcontent-ui/gs-content-rating.c:485
msgid "Adults Only"
msgstr ""
msgstr "Nur Erwachsene"
#: libmalcontent-ui/gs-content-rating.c:224
#: libmalcontent-ui/gs-content-rating.c:484
msgid "Mature"
msgstr ""
msgstr "Erwachsen"
#: libmalcontent-ui/gs-content-rating.c:226
#: libmalcontent-ui/gs-content-rating.c:483
msgid "Teen"
msgstr ""
msgstr "Jugendliche"
#: libmalcontent-ui/gs-content-rating.c:228
#: libmalcontent-ui/gs-content-rating.c:482
msgid "Everyone 10+"
msgstr ""
msgstr "Alle ab 10 Jahren"
#: libmalcontent-ui/gs-content-rating.c:230
#: libmalcontent-ui/gs-content-rating.c:481
msgid "Everyone"
msgstr ""
msgstr "Jeder"
#: libmalcontent-ui/gs-content-rating.c:232
#: libmalcontent-ui/gs-content-rating.c:480
msgid "Early Childhood"
msgstr ""
msgstr "Frühe Kindheit"
#. Translators: the placeholder is a users full name
#: libmalcontent-ui/restrict-applications-dialog.c:222
#, c-format
msgid "Restrict %s from using the following installed applications."
msgstr ""
msgstr "Hindern Sie %s an der Nutzung folgender installierter Anwendungen."
#: libmalcontent-ui/restrict-applications-dialog.ui:6
#: libmalcontent-ui/restrict-applications-dialog.ui:12
msgid "Restrict Applications"
msgstr ""
msgstr "Anwendungen einschränken"
#: libmalcontent-ui/restrict-applications-selector.ui:24
msgid "No applications found to restrict."
msgstr ""
msgstr "Keine einzuschränkenden Anwendungen gefunden."
#. 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 "unbekannt"
#: 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 "Alle Altersstufen"
#. Translators: The placeholder is a users 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 ""
"Hindert %s, Webbrowser zu nutzen. Inhalte des Internets könnten durch andere "
"Anwendungen weiterhin in eingeschränkter Form verfügbar sein."
#. Translators: The placeholder is a users 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 "Hindert %s, bestimmte Anwendungen zu nutzen."
#. Translators: The placeholder is a users display name.
#: libmalcontent-ui/user-controls.c:524
#: libmalcontent-ui/user-controls.c:487
#, c-format
msgid "Prevents %s from installing applications."
msgstr ""
msgstr "Hindert %s an der Installation von Anwendungen."
#. Translators: The placeholder is a users 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 "Einschränkungen der Anwendungsnutzung"
#: libmalcontent-ui/user-controls.ui:68
msgid "Restrict _Web Browsers"
msgstr ""
msgstr "In_ternet-Browser einschränken"
#: libmalcontent-ui/user-controls.ui:152
msgid "_Restrict Applications"
msgstr ""
msgstr "Anwendungen _einschränken"
#: libmalcontent-ui/user-controls.ui:231
msgid "Software Installation Restrictions"
msgstr ""
msgstr "Einschränkungen der Anwendungsinstallation"
#: libmalcontent-ui/user-controls.ui:281
#: libmalcontent-ui/user-controls.ui:282
msgid "Restrict Application _Installation"
msgstr ""
msgstr "_Installation von Anwendungen einschränken"
#: 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 "_Angemessenheit von Anwendungen"
#: libmalcontent-ui/user-controls.ui:473
# Browsing = Internetnutzung?
#: libmalcontent-ui/user-controls.ui:389
msgid ""
"Restricts browsing or installation of applications to applications suitable "
"for certain ages or above."
msgstr ""
"Schränkt die Internetnutzung oder die Installation von Anwendungen auf dem "
"Alter angemessene Anwendungen ein."
#. Translators: This documents the --user command line option to malcontent-control:
#: malcontent-control/application.c:102
msgid "User to select in the UI"
msgstr "In der UI auszuwählender Nutzer"
#. Translators: This is a placeholder for a command line argument value:
#: malcontent-control/application.c:104
msgid "USERNAME"
msgstr "BENUTZERNAME"
#: malcontent-control/application.c:116
msgid "— view and edit parental controls"
msgstr "— Kindersicherung ansehen und bearbeiten"
#. 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 "Kindersicherung"
#: 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 ""
"Philipp Kiemle <philipp.kiemle@gmail.com>, 2020.\n"
"Christian Kirbach <christian.kirbach@gmail.com>, 2021"
#. 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 Website"
#: malcontent-control/application.c:338
msgid "The help contents could not be displayed"
msgstr "Der Inhalt der Hilfe konnte nicht angezeigt werden"
#: malcontent-control/application.c:375
msgid "Failed to load user data from the system"
msgstr "Laden der Nutzerdaten vom System fehlgeschlagen"
#: malcontent-control/application.c:377
msgid "Please make sure that the AccountsService is installed and enabled."
msgstr ""
"Bitte stellen Sie sicher, dass der Kontendienst korrekt installiert und "
"aktiviert ist."
#. 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 ""
"Its 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 ""
"Es wird empfohlen, dass Einschränkungen im Gespräch mit %s festgelegt "
"werden. Lesen Sie <a href='https://www.service-bw.de/lebenslage/-/sbw/"
"Sicherer+Umgang+mit+digitalen+Medien-5000515-lebenslage-0'>diese "
"Empfehlungen</a> für weitere Informationen."
#: malcontent-control/carousel.ui:48
msgid "Previous Page"
msgstr ""
msgstr "Vorherige Seite"
#: malcontent-control/carousel.ui:74
msgid "Next Page"
msgstr ""
msgstr "Nächste Seite"
#: malcontent-control/main.ui:93
#: malcontent-control/main.ui:115
msgid "Permission Required"
msgstr ""
msgstr "Berechtigung erforderlich"
#: malcontent-control/main.ui:107
#: malcontent-control/main.ui:129
msgid ""
"Permission is required to view and change user parental controls settings."
msgstr ""
"Zum Ansehen und Ändern der Kindersicherungseinstellungen des Nutzers wird "
"eine Erlaubnis benötigt."
#: malcontent-control/main.ui:148
msgid "No Child Users Configured"
msgstr ""
#: malcontent-control/main.ui:184
msgid "No Standard User Accounts"
msgstr "Keine Standard-Benutzerkonten"
#: 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 ""
"Kindersicherungen können nur auf Standard-Nutzerkonten angewendet\n"
"werden.Diese können in den Nutzereinstellungen erstellt werden."
#: malcontent-control/main.ui:174
msgid "Create _Child User"
msgstr ""
#: malcontent-control/main.ui:212
msgid "_User Settings"
msgstr "_Benutzereinstellungen"
#: malcontent-control/main.ui:202
#: malcontent-control/main.ui:242
msgid "Loading…"
msgstr ""
msgstr "Wird geladen …"
#: malcontent-control/main.ui:265
#: malcontent-control/main.ui:305
msgid "_Help"
msgstr "_Hilfe"
#: malcontent-control/main.ui:269
#: malcontent-control/main.ui:309
msgid "_About Parental Controls"
msgstr ""
msgstr "_Info zu Kindersicherung"
#. 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 "Kindersicherungen erstellen und Computernutzung pro Benutzer verwalten"
#. Translators: These are the application description paragraphs in the AppData file.
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:16
@ -384,67 +439,37 @@ msgid ""
"use the computer for, what software they can install, and what installed "
"software they can run."
msgstr ""
"Die Einschränkungen des Nutzers verwalten, wie lange sie den Computer nutzen "
"können, welche Software sie installieren können und welche bereits "
"installierte Software ausgeführt werden darf."
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
msgid "Main window"
msgstr "Hauptfenster"
#: 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 "Das 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 ""
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
"usage;usage limit;kid;child;kindersicherung;bildschirmzeit;einschränkung;"
"oars;limit;kind;"
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:9
msgid "Manage parental controls"
msgstr ""
msgstr "Kindersicherung verwalten"
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:10
msgid "Authentication is required to read and change user parental controls"
msgstr ""
"Legitimierung ist erforderlich, um die Kindersicherung einzusehen und zu "
"ändern"
#: malcontent-control/user-selector.c:426
msgid "Your account"
@ -455,22 +480,23 @@ msgstr "Ihr Konto"
#: pam/pam_malcontent.c:142 pam/pam_malcontent.c:188
#, c-format
msgid "User %s has no time limits enabled"
msgstr ""
msgstr "Nutzer »%s« hat keine zeitliche Beschränkung aktiviert"
#: pam/pam_malcontent.c:151 pam/pam_malcontent.c:172
#, c-format
msgid "Error getting session limits for user %s: %s"
msgstr ""
"Sitzungsbeschränkungen für Nutzer »%s« konnten nicht ermittelt werden: %s"
#: pam/pam_malcontent.c:182
#, c-format
msgid "User %s has no time remaining"
msgstr ""
msgstr "Nutzer »%s« hat keine Zeit mehr übrig"
#: pam/pam_malcontent.c:200
#, c-format
msgid "Error setting time limit on login session: %s"
msgstr ""
msgstr "Setzen des Zeitlimits für Login-Sitzung fehlgeschlagen: %s"
#~ msgid "No cartoon violence"
#~ msgstr "Keine Gewalt in Cartoons"

670
po/hi.po
View File

@ -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 users app filter"
msgstr "अन्य उपयोगकर्ता का ऐप फ़िल्टर बदलें"
msgstr "किसी अन्य उपयोगकर्ता के ऐप फ़िल्टर बदलें"
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
msgid "Authentication is required to change another users app filter."
msgstr ""
"किसी अन्य उपयोगकर्ता के ऐप फ़िल्टर को बदलने के लिए प्रमाणीकरण की आवश्यकता होती है"
msgstr "किसी अन्य उपयोगकर्ता के ऐप फ़िल्टर को बदलने के लिए प्रमाणीकरण की आवश्यकता है।"
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
msgid "Read another users app filter"
msgstr "अन्य उपयोगकर्ता का ऐप फ़िल्टर पढ़ें"
msgstr "किसी अन्य उपयोगकर्ता के ऐप फ़िल्टर पढ़ें"
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
msgid "Authentication is required to read another users 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 users session limits"
@ -72,7 +77,7 @@ msgstr "किसी अन्य उपयोगकर्ता की सत
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
msgid "Authentication is required to change another users session limits."
msgstr "उपयोगकर्ता की सत्र सीमाओं को बदलने के लिए प्रमाणीकरण आवश्यक है"
msgstr "किसी अन्य उपयोगकर्ता की सत्र सीमाओं को बदलने के लिए प्रमाणीकरण आवश्यक है"
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
msgid "Read another users 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 users account info"
@ -112,128 +117,82 @@ msgstr "अन्य उपयोगकर्ता के खाते की
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
msgid "Authentication is required to read another users 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 users 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 users 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 users 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 users 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 users 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 ""
"Its 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
View File

@ -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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 ""
"Its 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"

528
po/id.po
View File

@ -1,21 +1,22 @@
# Indonesian translation for malcontent.
# Copyright (C) 2020 malcontent's COPYRIGHT HOLDER
# This file is distributed under the same license as the malcontent package.
# Andika Triwidada <atriwidada@gnome.org>, 2020.
# Andika Triwidada <atriwidada@gnome.org>, 2020, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: malcontent master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-10 12:04+0100\n"
"PO-Revision-Date: 2020-03-31 19:22+0700\n"
"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: 2021-08-30 18:21+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n"
"X-Generator: Poedit 2.4.3\n"
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
msgid "Change your own app filter"
@ -123,29 +124,30 @@ msgstr "Filter aplikasi untuk pengguna %u dalam format yang tidak dikenal"
msgid "OARS filter for user %u has an unrecognized kind %s"
msgstr "Filter OARS untuk pengguna %u memiliki jenis yang tidak dikenal '%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 "Tidak diizinkan untuk meminta data filter aplikasi untuk pengguna %u"
msgid "Not allowed to query parental controls data for user %u"
msgstr ""
"Tidak diizinkan untuk menanyakan data pengawasan orang tua untuk pengguna %u"
#: libmalcontent/manager.c:288
#, c-format
msgid "User %u does not exist"
msgstr "Pengguna %u tidak ada"
#: libmalcontent/manager.c:394
#: libmalcontent/manager.c:296
msgid "System accounts service not available"
msgstr "Layanan akun sistem tidak tersedia"
#: libmalcontent/manager.c:402
msgid "App filtering is globally disabled"
msgstr "Penyaringan aplikasi dinonaktifkan secara global"
#: libmalcontent/manager.c:777
#: libmalcontent/manager.c:785
msgid "Session limits are globally disabled"
msgstr "Batas sesi dinonaktifkan secara global"
#: libmalcontent/manager.c:795
#, c-format
msgid "Not allowed to query session limits data for user %u"
msgstr "Tidak diizinkan untuk meminta data batasan sesi untuk pengguna %u"
#: libmalcontent/session-limits.c:306
#, c-format
msgid "Session limit for user %u was in an unrecognized format"
@ -167,45 +169,45 @@ msgstr ""
#: 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 "Umum"
#: libmalcontent-ui/gs-content-rating.c:218
msgid "ALL"
msgstr ""
msgstr "SEMUA"
#: libmalcontent-ui/gs-content-rating.c:222
#: libmalcontent-ui/gs-content-rating.c:485
msgid "Adults Only"
msgstr ""
msgstr "Hanya Orang Dewasa"
#: libmalcontent-ui/gs-content-rating.c:224
#: libmalcontent-ui/gs-content-rating.c:484
msgid "Mature"
msgstr ""
msgstr "Dewasa"
#: libmalcontent-ui/gs-content-rating.c:226
#: libmalcontent-ui/gs-content-rating.c:483
msgid "Teen"
msgstr ""
msgstr "Remaja"
#: libmalcontent-ui/gs-content-rating.c:228
#: libmalcontent-ui/gs-content-rating.c:482
msgid "Everyone 10+"
msgstr ""
msgstr "Siapa Pun 10+"
#: libmalcontent-ui/gs-content-rating.c:230
#: libmalcontent-ui/gs-content-rating.c:481
msgid "Everyone"
msgstr ""
msgstr "Siapa Pun"
#: libmalcontent-ui/gs-content-rating.c:232
#: libmalcontent-ui/gs-content-rating.c:480
msgid "Early Childhood"
msgstr ""
msgstr "Anak Usia Dini"
#. Translators: the placeholder is a users full name
#: libmalcontent-ui/restrict-applications-dialog.c:222
@ -223,17 +225,17 @@ msgid "No applications found to restrict."
msgstr "Tidak ditemukan aplikasi yang akan dibatasi."
#. 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 "tidak dikenal"
#: 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 "Semua umur"
#. Translators: The placeholder is a users 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 "
@ -243,52 +245,42 @@ msgstr ""
"tersedia di aplikasi lain."
#. Translators: The placeholder is a users 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 "Mencegah aplikasi tertentu agar tidak digunakan oleh %s."
#. Translators: The placeholder is a users display name.
#: libmalcontent-ui/user-controls.c:524
#: libmalcontent-ui/user-controls.c:487
#, c-format
msgid "Prevents %s from installing applications."
msgstr "Mencegah %s menginstal aplikasi."
#. Translators: The placeholder is a users display name.
#: libmalcontent-ui/user-controls.c:529
#, c-format
msgid "Applications installed by %s will not appear for other users."
msgstr "Aplikasi yang dipasang oleh %s tidak akan muncul untuk pengguna lain."
#: libmalcontent-ui/user-controls.ui:17
#: libmalcontent-ui/user-controls.ui:16
msgid "Application Usage Restrictions"
msgstr "Pembatasan Penggunaan Aplikasi"
#: libmalcontent-ui/user-controls.ui:68
#: libmalcontent-ui/user-controls.ui:67
msgid "Restrict _Web Browsers"
msgstr "Batasi Peramban _Web"
#: libmalcontent-ui/user-controls.ui:152
#: libmalcontent-ui/user-controls.ui:151
msgid "_Restrict Applications"
msgstr "_Batasi Aplikasi"
#: libmalcontent-ui/user-controls.ui:231
#: libmalcontent-ui/user-controls.ui:230
msgid "Software Installation Restrictions"
msgstr "Pembatasan Instalasi Perangkat Lunak"
#: libmalcontent-ui/user-controls.ui:281
#: libmalcontent-ui/user-controls.ui:280
msgid "Restrict Application _Installation"
msgstr "Batasi _Instalasi Aplikasi"
#: libmalcontent-ui/user-controls.ui:366
msgid "Restrict Application Installation for _Others"
msgstr "Batasi Instalasi Aplikasi untuk _Lain"
#: libmalcontent-ui/user-controls.ui:451
#: libmalcontent-ui/user-controls.ui:365
msgid "Application _Suitability"
msgstr "Ke_sesuaian Aplikasi"
#: libmalcontent-ui/user-controls.ui:473
#: libmalcontent-ui/user-controls.ui:387
msgid ""
"Restricts browsing or installation of applications to applications suitable "
"for certain ages or above."
@ -296,43 +288,78 @@ msgstr ""
"Membatasi penjelajahan atau pemasangan aplikasi ke aplikasi yang sesuai "
"untuk usia tertentu atau di atas."
#. Translators: This documents the --user command line option to malcontent-control:
#: malcontent-control/application.c:102
msgid "User to select in the UI"
msgstr "Pengguna yang dipilih dalam UI"
#. Translators: This is a placeholder for a command line argument value:
#: malcontent-control/application.c:104
msgid "USERNAME"
msgstr "NAMAPENGGUNA"
#: malcontent-control/application.c:115
msgid "— view and edit parental controls"
msgstr "— tilik dan kelola pengawasan orang tua"
#. 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: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 "Pengawasan Orang Tua"
#: malcontent-control/application.c:270
#: malcontent-control/application.c:308
msgid "Copyright © 2019, 2020 Endless Mobile, Inc."
msgstr ""
msgstr "Hak cipta © 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:313
msgid "translator-credits"
msgstr ""
msgstr "Andika Triwidada <andika@gmail.com>, 2020, 2021."
#. Translators: "Malcontent" is the brand name of this
#. project, so should not be translated.
#: malcontent-control/application.c:281
#: malcontent-control/application.c:319
msgid "Malcontent Website"
msgstr ""
msgstr "Situs Web Malcontent"
#: malcontent-control/application.c:299
#: malcontent-control/application.c:337
msgid "The help contents could not be displayed"
msgstr ""
msgstr "Isi bantuan tidak dapat ditampilkan"
#: malcontent-control/application.c:336
#: malcontent-control/application.c:374
msgid "Failed to load user data from the system"
msgstr "Gagal memuat data pengguna dari sistem"
#: malcontent-control/application.c:338
#: malcontent-control/application.c:376
msgid "Please make sure that the AccountsService is installed and enabled."
msgstr "Harap pastikan bahwa AccountsService diinstal dan diaktifkan."
#. 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 ""
"Its 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 ""
"Disarankan agar pembatasan ditetapkan sebagai bagian dari percakapan yang "
"sedang berlangsung dengan %s. <a href='https://www.commonsensemedia.org/"
"privacy-and-internet-safety'>Baca panduan</a> tentang apa yang harus "
"dipertimbangkan."
#: malcontent-control/carousel.ui:48
msgid "Previous Page"
msgstr "Halaman Sebelumnya"
@ -341,45 +368,44 @@ msgstr "Halaman Sebelumnya"
msgid "Next Page"
msgstr "Halaman Selanjutnya"
#: malcontent-control/main.ui:93
#: malcontent-control/main.ui:115
msgid "Permission Required"
msgstr "Diperlukan Izin"
#: malcontent-control/main.ui:107
#: malcontent-control/main.ui:129
msgid ""
"Permission is required to view and change user parental controls settings."
msgstr ""
"Diperlukan izin untuk melihat dan mengubah pengaturan kontrol orang tua "
"pengguna."
#: malcontent-control/main.ui:148
msgid "No Child Users Configured"
msgstr "Tidak Ada Pengguna Anak yang Dikonfigurasi"
#: malcontent-control/main.ui:184
msgid "No Standard User Accounts"
msgstr "Tidak Ada Akun Pengguna Standar"
#: 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 ""
"Tidak ada pengguna anak yang saat ini diatur pada sistem. Buat satu sebelum "
"menyiapkan kontrol orangtua mereka."
"Pengawasan orang tua hanya dapat diterapkan pada akun\n"
"pengguna standar. Ini dapat dibuat di pengaturan pengguna."
#: malcontent-control/main.ui:174
msgid "Create _Child User"
msgstr "Buat Pengguna _Anak"
#: malcontent-control/main.ui:212
msgid "_User Settings"
msgstr "Pengat_uran Pengguna"
#: malcontent-control/main.ui:202
#: malcontent-control/main.ui:242
msgid "Loading…"
msgstr "Memuat…"
#: malcontent-control/main.ui:265
#: malcontent-control/main.ui:305
msgid "_Help"
msgstr ""
msgstr "Ba_ntuan"
#: malcontent-control/main.ui:269
#, fuzzy
#: malcontent-control/main.ui:309
msgid "_About Parental Controls"
msgstr "Pengawasan Orang Tua"
msgstr "Tent_ang Pengawasan Orang Tua"
#. Translators: the brief summary of the application as it appears in a software center.
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:12
@ -398,52 +424,14 @@ msgstr ""
"dapat menggunakan komputer, perangkat lunak apa yang dapat mereka instal, "
"dan perangkat lunak terinstal mana yang dapat mereka jalankan."
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
msgid "Main window"
msgstr "Jendela utama"
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:38
msgid "The GNOME Project"
msgstr "Projek GNOME"
#: 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 ""
#. 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
msgid ""
@ -487,303 +475,3 @@ msgstr "Pengguna '%s' tidak punya waktu tersisa"
#, c-format
msgid "Error setting time limit on login session: %s"
msgstr "Kesalahan pengaturan batas waktu pada sesi login: %s"
#~ msgid "No cartoon violence"
#~ msgstr "Tidak ada kekerasan kartun"
#~ msgid "Cartoon characters in unsafe situations"
#~ msgstr "Karakter kartun dalam situasi yang tidak aman"
#~ msgid "Cartoon characters in aggressive conflict"
#~ msgstr "Karakter kartun dalam konflik agresif"
#~ msgid "Graphic violence involving cartoon characters"
#~ msgstr "Kekerasan grafis yang melibatkan karakter kartun"
#~ msgid "No fantasy violence"
#~ msgstr "Tidak ada kekerasan fantasi"
#~ msgid "Characters in unsafe situations easily distinguishable from reality"
#~ msgstr ""
#~ "Karakter dalam situasi yang tidak aman dengan mudah dibedakan dari "
#~ "realitas"
#~ msgid ""
#~ "Characters in aggressive conflict easily distinguishable from reality"
#~ msgstr "Karakter dalam konflik agresif dengan mudah dibedakan dari realitas"
#~ msgid "Graphic violence easily distinguishable from reality"
#~ msgstr "Kekerasan grafis dengan mudah dibedakan dari realitas"
#~ msgid "No realistic violence"
#~ msgstr "Tidak ada kekerasan realistis"
#~ msgid "Mildly realistic characters in unsafe situations"
#~ msgstr "Sedikit karakter realistis dalam situasi yang tidak aman"
#~ msgid "Depictions of realistic characters in aggressive conflict"
#~ msgstr "Penggambaran karakter yang realistis dalam konflik agresif"
#~ msgid "Graphic violence involving realistic characters"
#~ msgstr "Kekerasan grafis yang melibatkan karakter yang realistis"
#~ msgid "No bloodshed"
#~ msgstr "Tidak ada pertumpahan darah"
#~ msgid "Unrealistic bloodshed"
#~ msgstr "Pertumpahan darah yang tidak realistis"
#~ msgid "Realistic bloodshed"
#~ msgstr "Pertumpahan darah yang realistis"
#~ msgid "Depictions of bloodshed and the mutilation of body parts"
#~ msgstr "Penggambaran pertumpahan darah dan mutilasi bagian tubuh"
#~ msgid "No sexual violence"
#~ msgstr "Tidak ada kekerasan seksual"
#~ msgid "Rape or other violent sexual behavior"
#~ msgstr "Perkosaan atau perilaku seksual kekerasan lainnya"
#~ msgid "No references to alcohol"
#~ msgstr "Tidak ada referensi ke alkohol"
#~ msgid "References to alcoholic beverages"
#~ msgstr "Referensi ke minuman beralkohol"
#~ msgid "Use of alcoholic beverages"
#~ msgstr "Penggunaan minuman beralkohol"
#~ msgid "No references to illicit drugs"
#~ msgstr "Tidak ada referensi untuk obat-obatan terlarang"
#~ msgid "References to illicit drugs"
#~ msgstr "Referensi untuk obat-obatan terlarang"
#~ msgid "Use of illicit drugs"
#~ msgstr "Penggunaan obat-obatan terlarang"
#~ msgid "References to tobacco products"
#~ msgstr "Referensi untuk produk tembakau"
#~ msgid "Use of tobacco products"
#~ msgstr "Penggunaan produk tembakau"
#~ msgid "No nudity of any sort"
#~ msgstr "Tidak ada ketelanjangan apapun"
#~ msgid "Brief artistic nudity"
#~ msgstr "Ketelanjangan artistik singkat"
#~ msgid "Prolonged nudity"
#~ msgstr "Ketelanjangan berkepanjangan"
#~ msgid "No references or depictions of sexual nature"
#~ msgstr "Tidak ada referensi atau penggambaran bersifat seksual"
#~ msgid "Provocative references or depictions"
#~ msgstr "Referensi atau penggambaran provokatif"
#~ msgid "Sexual references or depictions"
#~ msgstr "Referensi atau penggambaran seksual"
#~ msgid "Graphic sexual behavior"
#~ msgstr "Perilaku seksual grafis"
#~ msgid "No profanity of any kind"
#~ msgstr "Tidak ada kata-kata tidak senonoh apapun"
#~ msgid "Mild or infrequent use of profanity"
#~ msgstr "Penggunaan ringan atau jarang kata-kata tidak senonoh"
#~ msgid "Moderate use of profanity"
#~ msgstr "Penggunaan sedang kata-kata tidak senonoh"
#~ msgid "Strong or frequent use of profanity"
#~ msgstr "Penggunaan kuat atau sering kata-kata tidak senonoh"
#~ msgid "No inappropriate humor"
#~ msgstr "Tidak ada humor yang tidak pantas"
#~ msgid "Slapstick humor"
#~ msgstr "Humor slapstick"
#~ msgid "Vulgar or bathroom humor"
#~ msgstr "Humor kamar mandi atau vulgar"
#~ msgid "Mature or sexual humor"
#~ msgstr "Humor dewasa atau seksual"
#~ msgid "No discriminatory language of any kind"
#~ msgstr "Tidak ada bahasa diskriminatif apapun"
#~ msgid "Negativity towards a specific group of people"
#~ msgstr "Negatif terhadap sekelompok orang tertentu"
#~ msgid "Discrimination designed to cause emotional harm"
#~ msgstr "Diskriminasi dirancang untuk menyebabkan kerusakan emosional"
#~ msgid "Explicit discrimination based on gender, sexuality, race or religion"
#~ msgstr ""
#~ "Diskriminasi eksplisit berdasarkan gender, seksualitas, ras, atau agama"
#~ msgid "No advertising of any kind"
#~ msgstr "Tidak ada iklan jenis apapun"
#~ msgid "Product placement"
#~ msgstr "Penempatan produk"
#~ msgid "Explicit references to specific brands or trademarked products"
#~ msgstr ""
#~ "Referensi eksplisit untuk merek tertentu atau produk dengan merek dagang"
#~ msgid "Users are encouraged to purchase specific real-world items"
#~ msgstr "Pengguna dianjurkan untuk membeli barang dunia nyata tertentu"
#~ msgid "No gambling of any kind"
#~ msgstr "Tidak ada perjudian jenis apapun"
#~ msgid "Gambling on random events using tokens or credits"
#~ msgstr "Perjudian pada peristiwa acak menggunakan token atau kredit"
#~ msgid "Gambling using “play” money"
#~ msgstr "Perjudian menggunakan uang \"permainan\""
#~ msgid "Gambling using real money"
#~ msgstr "Perjudian menggunakan uang nyata"
#~ msgid "No ability to spend money"
#~ msgstr "Tidak ada kemampuan membelanjakan uang"
#~ msgid "Users are encouraged to donate real money"
#~ msgstr "Pengguna dianjurkan untuk menyumbangkan uang sungguhan"
#~ msgid "Ability to spend real money in-game"
#~ msgstr "Kemampuan untuk menghabiskan uang nyata dalam permainan"
#~ msgid "No way to chat with other users"
#~ msgstr "Tidak ada cara untuk mengobrol dengan pengguna lain"
#~ msgid "User-to-user game interactions without chat functionality"
#~ msgstr "Interaksi permainan antar pengguna tanpa fungsi obrolan"
#~ msgid "Moderated chat functionality between users"
#~ msgstr "Moderasi fungsi obrolan antar pengguna"
#~ msgid "Uncontrolled chat functionality between users"
#~ msgstr "Fungsi obrolan yang tidak terkontrol antara pengguna"
#~ msgid "No way to talk with other users"
#~ msgstr "Tidak ada cara untuk berbicara dengan pengguna lain"
#~ msgid "Uncontrolled audio or video chat functionality between users"
#~ msgstr ""
#~ "Fungsi obrolan audio atau video yang tidak terkontrol antara pengguna"
#~ msgid "No sharing of social network usernames or email addresses"
#~ msgstr "Tidak berbagi alamat surel atau nama pengguna media sosial"
#~ msgid "Sharing social network usernames or email addresses"
#~ msgstr "Berbagi nama pengguna jejaring sosial atau alamat surel"
#~ msgid "No sharing of user information with 3rd parties"
#~ msgstr "Tidak berbagi informasi pengguna dengan pihak ke-3"
#~ msgid "Checking for the latest application version"
#~ msgstr "Memeriksa versi aplikasi terbaru"
#~ msgid "Sharing diagnostic data that does not let others identify the user"
#~ msgstr ""
#~ "Berbagi data diagnostik yang tidak membiarkan orang lain mengidentifikasi "
#~ "pengguna"
#~ msgid "Sharing information that lets others identify the user"
#~ msgstr ""
#~ "Berbagi informasi yang memungkinkan orang lain mengidentifikasi pengguna"
#~ msgid "No sharing of physical location to other users"
#~ msgstr "Tidak berbagi lokasi fisik ke pengguna lain"
#~ msgid "Sharing physical location to other users"
#~ msgstr "Berbagi lokasi fisik dengan pengguna lain"
#~ msgid "No references to homosexuality"
#~ msgstr "Tidak ada referensi ke homoseksualitas"
#~ msgid "Indirect references to homosexuality"
#~ msgstr "Referensi tak langsung ke homoseksualitas"
#~ msgid "Kissing between people of the same gender"
#~ msgstr "Berciuman antara orang-orang dengan jenis kelamin yang sama"
#~ msgid "Graphic sexual behavior between people of the same gender"
#~ msgstr "Perilaku seksual grafis antara orang dengan jenis kelamin yang sama"
#~ msgid "No references to prostitution"
#~ msgstr "Tidak ada referensi untuk prostitusi"
#~ msgid "Indirect references to prostitution"
#~ msgstr "Referensi tidak langsung untuk prostitusi"
#~ msgid "Direct references to prostitution"
#~ msgstr "Referensi langsung ke prostitusi"
#~ msgid "Graphic depictions of the act of prostitution"
#~ msgstr "Penggambaran grafis dari aksi prostitusi"
#~ msgid "No references to adultery"
#~ msgstr "Tidak ada referensi untuk perzinaan"
#~ msgid "Indirect references to adultery"
#~ msgstr "Referensi tidak langsung untuk perzinaan"
#~ msgid "Direct references to adultery"
#~ msgstr "Referensi langsung ke perzinaan"
#~ msgid "Graphic depictions of the act of adultery"
#~ msgstr "Penggambaran grafis dari tindakan perzinaan"
#~ msgid "No sexualized characters"
#~ msgstr "Tidak ada karakter seksual"
#~ msgid "Scantily clad human characters"
#~ msgstr "Karakter manusia berpakaian minim"
#~ msgid "Overtly sexualized human characters"
#~ msgstr "Karakter manusia seksual secara menyeluruh"
#~ msgid "No references to desecration"
#~ msgstr "Tidak ada referensi untuk penodaan"
#~ msgid "Depictions or references to historical desecration"
#~ msgstr "Penggambaran atau referensi tentang penodaan sejarah"
#~ msgid "Depictions of modern-day human desecration"
#~ msgstr "Penggambaran tentang penodaan manusia zaman modern"
#~ msgid "Graphic depictions of modern-day desecration"
#~ msgstr "Penggambaran grafis tentang penodaan modern"
#~ msgid "No visible dead human remains"
#~ msgstr "Tidak ada sisa manusia mati yang terlihat"
#~ msgid "Visible dead human remains"
#~ msgstr "Sisa manusia mati yang terlihat"
#~ msgid "Dead human remains that are exposed to the elements"
#~ msgstr "Sisa manusia mati yang terpapar unsur"
#~ msgid "Graphic depictions of desecration of human bodies"
#~ msgstr "Penggambaran grafis penodaan tubuh manusia"
#~ msgid "No references to slavery"
#~ msgstr "Tidak ada referensi untuk perbudakan"
#~ msgid "Depictions or references to historical slavery"
#~ msgstr "Penggambaran atau referensi tentang perbudakan bersejarah"
#~ msgid "Depictions of modern-day slavery"
#~ msgstr "Penggambaran perbudakan modern"
#~ msgid "Graphic depictions of modern-day slavery"
#~ msgstr "Penggambaran grafis tentang perbudakan modern"

642
po/it.po
View File

@ -1,381 +1,433 @@
# Italian translations for malcontent package.
# Copyright (C) 2020 THE malcontent'S COPYRIGHT HOLDER
# Copyright (C) 2020, 2021 Free Software Foundation, Inc.
# This file is distributed under the same license as the malcontent package.
# Automatically generated, 2020.
# Milo Casagrande <milo@milo.name>, 2020, 2021.
# Albano Battistella <albano_battistella@hotmail.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"
"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-03-12 13:27+0100\n"
"Last-Translator: Albano Battistella <albano_battistella@hotmail.com>\n"
"Language-Team: none\n"
"Language: it\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 2.4.2\n"
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
msgid "Change your own app filter"
msgstr ""
msgstr "Modifica filtri app personali"
#: accounts-service/com.endlessm.ParentalControls.policy.in:5
msgid "Authentication is required to change your app filter."
msgstr ""
msgstr "È richiesto autenticarsi per modificare i propri filtri app."
#: accounts-service/com.endlessm.ParentalControls.policy.in:14
msgid "Read your own app filter"
msgstr ""
msgstr "Lettura dei filtri app personali"
#: accounts-service/com.endlessm.ParentalControls.policy.in:15
msgid "Authentication is required to read your app filter."
msgstr ""
msgstr "È richiesto autenticarsi per leggere i propri filtri app."
#: accounts-service/com.endlessm.ParentalControls.policy.in:24
msgid "Change another users app filter"
msgstr ""
msgstr "Modifica dei filtri app di un altro utente"
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
msgid "Authentication is required to change another users app filter."
msgstr ""
"È richiesto autenticarsi per modificare i filtri app di un altro utente."
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
msgid "Read another users app filter"
msgstr ""
msgstr "Lettura dei filtri app di un altro utente"
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
msgid "Authentication is required to read another users app filter."
msgstr ""
msgstr "È richiesto autenticarsi per leggere i filtri app di un altro utente."
#: accounts-service/com.endlessm.ParentalControls.policy.in:44
msgid "Change your own session limits"
msgstr ""
msgstr "Modifica dei limiti di sessione personali"
#: accounts-service/com.endlessm.ParentalControls.policy.in:45
msgid "Authentication is required to change your session limits."
msgstr ""
msgstr "È richiesto autenticarsi per modificare i propri limiti di sessione."
#: accounts-service/com.endlessm.ParentalControls.policy.in:54
msgid "Read your own session limits"
msgstr ""
msgstr "Lettura limiti di sessione personali"
#: accounts-service/com.endlessm.ParentalControls.policy.in:55
msgid "Authentication is required to read your session limits."
msgstr ""
msgstr "È richiesto autenticarsi per leggere i propri limiti di sessione."
#: accounts-service/com.endlessm.ParentalControls.policy.in:64
msgid "Change another users session limits"
msgstr ""
msgstr "Modifica dei limiti di sessione di un altro utente"
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
msgid "Authentication is required to change another users session limits."
msgstr ""
"È richiesto autenticarsi per modificare i limiti di sessione di un altro "
"utente."
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
msgid "Read another users session limits"
msgstr ""
msgstr "Lettura dei limiti di sessione di un altro utente"
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
msgid "Authentication is required to read another users session limits."
msgstr ""
"È richiesto autenticarsi per leggere i limiti di sessione di un altro utente."
#: accounts-service/com.endlessm.ParentalControls.policy.in:84
msgid "Change your own account info"
msgstr ""
msgstr "Modifica delle informazioni dell'account personale"
#: accounts-service/com.endlessm.ParentalControls.policy.in:85
msgid "Authentication is required to change your account info."
msgstr ""
"È richiesto autenticarsi per modificare le informazioni del proprio account."
#: accounts-service/com.endlessm.ParentalControls.policy.in:94
msgid "Read your own account info"
msgstr ""
msgstr "Lettura delle informazioni dell'account personale"
#: accounts-service/com.endlessm.ParentalControls.policy.in:95
msgid "Authentication is required to read your account info."
msgstr ""
"È richiesto autenticarsi per leggere le informazioni del proprio account."
#: accounts-service/com.endlessm.ParentalControls.policy.in:104
msgid "Change another users account info"
msgstr ""
msgstr "Modifica delle informazioni dell'account di un altro utente"
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
msgid "Authentication is required to change another users account info."
msgstr ""
"È richiesto autenticarsi per modificare le informazioni dell'account di un "
"altro utente."
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
msgid "Read another users account info"
msgstr ""
msgstr "Lettura delle informazioni dell'account di un altro utente"
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
msgid "Authentication is required to read another users account info."
msgstr ""
"È richiesto autenticarsi per leggere le informazioni dell'account di un "
"altro utente."
#: libmalcontent/app-filter.c:694
#, c-format
msgid "App filter for user %u was in an unrecognized format"
msgstr ""
msgstr "Il filtro app per l'utente %u era in un formato non riconosciuto"
#: libmalcontent/app-filter.c:725
#, c-format
msgid "OARS filter for user %u has an unrecognized kind %s"
msgstr ""
msgstr "Il filtro OARS per l'utente %u presenta un tipo «%s» non riconosciuto"
#: 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 ""
"Non è consentito richiedere i dati sui controlli parentali per l'utente %u"
#: libmalcontent/manager.c:288
#, c-format
msgid "User %u does not exist"
msgstr ""
msgstr "L'utente %u non esiste"
#: libmalcontent/manager.c:394
#: libmalcontent/manager.c:296
msgid "System accounts service not available"
msgstr "Servizio account di sistema non disponibile"
#: libmalcontent/manager.c:402
msgid "App filtering is globally disabled"
msgstr ""
msgstr "I filtri sulle app sono disabilitati globalmente"
#: 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 "I limiti sulla sessione sono disabilitati globalmente"
#: libmalcontent/session-limits.c:306
#, c-format
msgid "Session limit for user %u was in an unrecognized format"
msgstr ""
"Il limite di sessione per l'utente %u era in un formato non riconosciuto"
#: libmalcontent/session-limits.c:328
#, c-format
msgid "Session limit for user %u has an unrecognized type %u"
msgstr ""
"Il limite di sessione per l'utente %u presenta un tipo «%u» non riconosciuto"
#: libmalcontent/session-limits.c:346
#, c-format
msgid "Session limit for user %u has invalid daily schedule %u%u"
msgstr ""
"Il limite di sessione per l'utente %u presenta una pianificazione "
"giornaliera %u-%u non valida"
#. 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 "%2$s (%1$s)"
#: libmalcontent-ui/gs-content-rating.c:209
msgid "General"
msgstr ""
msgstr "Generale"
#: libmalcontent-ui/gs-content-rating.c:218
msgid "ALL"
msgstr ""
msgstr "TUTTO"
#: libmalcontent-ui/gs-content-rating.c:222
#: libmalcontent-ui/gs-content-rating.c:485
msgid "Adults Only"
msgstr ""
msgstr "Solo per adulti"
#: libmalcontent-ui/gs-content-rating.c:224
#: libmalcontent-ui/gs-content-rating.c:484
msgid "Mature"
msgstr ""
msgstr "Maturo"
#: libmalcontent-ui/gs-content-rating.c:226
#: libmalcontent-ui/gs-content-rating.c:483
msgid "Teen"
msgstr ""
msgstr "Adolescente"
#: libmalcontent-ui/gs-content-rating.c:228
#: libmalcontent-ui/gs-content-rating.c:482
msgid "Everyone 10+"
msgstr ""
msgstr "Chiunque di 10+"
#: libmalcontent-ui/gs-content-rating.c:230
#: libmalcontent-ui/gs-content-rating.c:481
msgid "Everyone"
msgstr ""
msgstr "Chiunque"
#: libmalcontent-ui/gs-content-rating.c:232
#: libmalcontent-ui/gs-content-rating.c:480
msgid "Early Childhood"
msgstr ""
msgstr "Prima infanzia"
#. Translators: the placeholder is a users full name
#: libmalcontent-ui/restrict-applications-dialog.c:222
#, c-format
msgid "Restrict %s from using the following installed applications."
msgstr ""
msgstr "Limita l'uso delle seguenti applicazioni da parte dell'utente %s."
#: libmalcontent-ui/restrict-applications-dialog.ui:6
#: libmalcontent-ui/restrict-applications-dialog.ui:12
msgid "Restrict Applications"
msgstr ""
msgstr "Limita applicazioni"
#: libmalcontent-ui/restrict-applications-selector.ui:24
msgid "No applications found to restrict."
msgstr ""
msgstr "Non è stata trovata alcuna applicazione da limitare."
#. 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 "sconosciuto"
#: 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 "Tutte le età"
#. Translators: The placeholder is a users 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 ""
"Impedisce all'utente %s di lanciare browser web. Contenuti web limitati "
"possono comunque essere accessibili in altre applicazioni."
#. Translators: The placeholder is a users 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 "Impedisce all'utente %s di utilizzare applicazioni specifiche."
#. Translators: The placeholder is a users display name.
#: libmalcontent-ui/user-controls.c:524
#: libmalcontent-ui/user-controls.c:487
#, c-format
msgid "Prevents %s from installing applications."
msgstr ""
msgstr "Impedisce all'utente %s di installare applicazioni."
#. Translators: The placeholder is a users 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 "Limitazioni utilizzo applicazioni"
#: libmalcontent-ui/user-controls.ui:68
#: libmalcontent-ui/user-controls.ui:67
msgid "Restrict _Web Browsers"
msgstr ""
msgstr "Limita browser _web"
#: libmalcontent-ui/user-controls.ui:152
#: libmalcontent-ui/user-controls.ui:151
msgid "_Restrict Applications"
msgstr ""
msgstr "_Limita applicazioni"
#: libmalcontent-ui/user-controls.ui:231
#: libmalcontent-ui/user-controls.ui:230
msgid "Software Installation Restrictions"
msgstr ""
msgstr "Limitazioni installazione software"
#: libmalcontent-ui/user-controls.ui:281
#: libmalcontent-ui/user-controls.ui:280
msgid "Restrict Application _Installation"
msgstr ""
msgstr "Limita _installazione applicazioni"
#: libmalcontent-ui/user-controls.ui:366
msgid "Restrict Application Installation for _Others"
msgstr ""
#: libmalcontent-ui/user-controls.ui:451
#: libmalcontent-ui/user-controls.ui:365
msgid "Application _Suitability"
msgstr ""
msgstr "Co_mpatibilità applicazioni"
#: libmalcontent-ui/user-controls.ui:473
#: libmalcontent-ui/user-controls.ui:387
msgid ""
"Restricts browsing or installation of applications to applications suitable "
"for certain ages or above."
msgstr ""
"Limita l'esplorazione o l'installazione di applicazioni a solo quelle "
"compatibili con certe fasce d'età."
#. Translators: This documents the --user command line option to malcontent-control:
#: malcontent-control/application.c:102
msgid "User to select in the UI"
msgstr "Utente da selezionare nell'interfaccia utente"
#. Translators: This is a placeholder for a command line argument value:
#: malcontent-control/application.c:104
msgid "USERNAME"
msgstr "NOMEUTENTE"
#: malcontent-control/application.c:115
msgid "— view and edit parental controls"
msgstr "— Visualizza e modifica i controlli parentali"
#. 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: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 ""
msgstr "Controlli parentali"
#: malcontent-control/application.c:270
#: malcontent-control/application.c:308
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:313
msgid "translator-credits"
msgstr ""
msgstr "Milo Casagrande <milo@milo.name>, 2020, Albano Battistella,2022"
#. Translators: "Malcontent" is the brand name of this
#. project, so should not be translated.
#: malcontent-control/application.c:281
#: malcontent-control/application.c:319
msgid "Malcontent Website"
msgstr ""
msgstr "Sito web di Malcontent"
#: malcontent-control/application.c:299
#: malcontent-control/application.c:337
msgid "The help contents could not be displayed"
msgstr ""
msgstr "I contenuti dell'aiuto non possono essere visualizzati"
#: malcontent-control/application.c:336
#: malcontent-control/application.c:374
msgid "Failed to load user data from the system"
msgstr ""
msgstr "Caricamento dei dati utente dal sistema non riuscito"
#: malcontent-control/application.c:338
#: malcontent-control/application.c:376
msgid "Please make sure that the AccountsService is installed and enabled."
msgstr ""
"Assicurarsi che il servizio AccountsService sia installato e abilitato."
#. 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 ""
"Its 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 ""
"Si consiglia di impostare le restrizioni come parte di una conversazione "
"attiva con %s. Per maggiori informazioni su cosa considerare per le "
"restrizioni, è possibile <a href='https://www.internetmatters.org/it/"
"resources/online-safety-guide/'>consultare questa guida</a>."
#: malcontent-control/carousel.ui:48
msgid "Previous Page"
msgstr ""
msgstr "Pagina precedente"
#: malcontent-control/carousel.ui:74
msgid "Next Page"
msgstr ""
msgstr "Pagina successiva"
#: malcontent-control/main.ui:93
#: malcontent-control/main.ui:115
msgid "Permission Required"
msgstr ""
msgstr "Richiesti permessi"
#: malcontent-control/main.ui:107
#: malcontent-control/main.ui:129
msgid ""
"Permission is required to view and change user parental controls settings."
msgstr ""
"È richiesto avere i permessi necessari per visualizzare e modificare i "
"controlli parentali dell'utente."
#: malcontent-control/main.ui:148
msgid "No Child Users Configured"
msgstr ""
#: malcontent-control/main.ui:184
msgid "No Standard User Accounts"
msgstr "Nessun account utente standard"
#: 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 ""
"I controlli parentali possono essere applicati solo agli account utenti\n"
"standard. Questi possono essere creati nelle impostazioni utente."
#: malcontent-control/main.ui:174
msgid "Create _Child User"
msgstr ""
#: malcontent-control/main.ui:212
msgid "_User Settings"
msgstr "Impostazioni _utente"
#: malcontent-control/main.ui:202
#: malcontent-control/main.ui:242
msgid "Loading…"
msgstr ""
msgstr "Caricamento…"
#: malcontent-control/main.ui:265
#: malcontent-control/main.ui:305
msgid "_Help"
msgstr "A_iuto"
#: malcontent-control/main.ui:269
#: malcontent-control/main.ui:309
msgid "_About Parental Controls"
msgstr ""
msgstr "I_nformazioni su Controlli parentali"
#. 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 "Imposta i controlli parentali e monitora l'utilizzo degli utenti"
#. Translators: These are the application description paragraphs in the AppData file.
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:16
@ -384,52 +436,17 @@ msgid ""
"use the computer for, what software they can install, and what installed "
"software they can run."
msgstr ""
"Gestisce i limiti sui controlli parentali dell'utente, controllando per "
"quanto tempo possono usare il computer, che software possono installare e "
"quali applicazioni installate possono usare."
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
msgid "Main window"
msgstr "Finestra principale"
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:38
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 "Il progetto 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
@ -437,14 +454,18 @@ msgid ""
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
"usage;usage limit;kid;child;"
msgstr ""
"controlli parentali;tempo schermo;tempo utilizzo;limitazione app;limitazioni "
"browser web;utilizzo;limite utilizzo;utilizzazione;bambino;bambina;ragazzo;"
"ragazza;"
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:9
msgid "Manage parental controls"
msgstr ""
msgstr "Gestione controlli parentali"
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:10
msgid "Authentication is required to read and change user parental controls"
msgstr ""
"È richiesto autenticarsi per leggere e modificare i controlli parentali"
#: malcontent-control/user-selector.c:426
msgid "Your account"
@ -455,312 +476,19 @@ msgstr "Il proprio account"
#: pam/pam_malcontent.c:142 pam/pam_malcontent.c:188
#, c-format
msgid "User %s has no time limits enabled"
msgstr ""
msgstr "L'utente «%s» non ha alcun limite di tempo abilitato"
#: pam/pam_malcontent.c:151 pam/pam_malcontent.c:172
#, c-format
msgid "Error getting session limits for user %s: %s"
msgstr ""
msgstr "Errore nell'ottenere i limiti di sessione per l'utente «%s»: %s"
#: pam/pam_malcontent.c:182
#, c-format
msgid "User %s has no time remaining"
msgstr ""
msgstr "L'utente «%s» non ha più tempo disponibile"
#: pam/pam_malcontent.c:200
#, c-format
msgid "Error setting time limit on login session: %s"
msgstr ""
#~ msgid "No cartoon violence"
#~ msgstr "Nessuna violenza nel cartone animato"
#~ msgid "Cartoon characters in unsafe situations"
#~ msgstr "Personaggi dei cartoni animati in situazioni rischiose"
#~ msgid "Cartoon characters in aggressive conflict"
#~ msgstr "Personaggi dei cartoni animati in conflitti aggressivi"
#~ msgid "Graphic violence involving cartoon characters"
#~ msgstr "Violenza grafica che coinvolge personaggi dei cartoni animati"
#~ msgid "No fantasy violence"
#~ msgstr "Nessuna violenza nel fantasy"
#~ msgid "Characters in unsafe situations easily distinguishable from reality"
#~ msgstr ""
#~ "Personaggi in situazioni rischiose facilmente distinguibili dalla realtà"
#~ msgid ""
#~ "Characters in aggressive conflict easily distinguishable from reality"
#~ msgstr ""
#~ "Personaggi in conflitti aggressivi facilmente distinguibili dalla realtà"
#~ msgid "Graphic violence easily distinguishable from reality"
#~ msgstr "Violenza grafica facilmente distinguibile dalla realtà"
#~ msgid "No realistic violence"
#~ msgstr "Nessuna violenza realistica"
#~ msgid "Mildly realistic characters in unsafe situations"
#~ msgstr "Personaggi lievemente realistici in situazioni rischiose"
#~ msgid "Depictions of realistic characters in aggressive conflict"
#~ msgstr "Raffigurazioni di personaggi realistici in conflitti aggressivi"
#~ msgid "Graphic violence involving realistic characters"
#~ msgstr "Violenza grafica che coinvolge personaggi realistici"
#~ msgid "No bloodshed"
#~ msgstr "Nessun eccidio"
#~ msgid "Unrealistic bloodshed"
#~ msgstr "Eccidio non realistico"
#~ msgid "Realistic bloodshed"
#~ msgstr "Eccidio realistico"
#~ msgid "Depictions of bloodshed and the mutilation of body parts"
#~ msgstr "Raffigurazioni di eccidi e mutilazioni di parti del corpo"
#~ msgid "No sexual violence"
#~ msgstr "Nessuna violenza sessuale"
#~ msgid "Rape or other violent sexual behavior"
#~ msgstr "Stupro o altri comportamenti sessuali violenti"
#~ msgid "No references to alcohol"
#~ msgstr "Nessun riferimento all'alcol"
#~ msgid "References to alcoholic beverages"
#~ msgstr "Riferimenti a bevande alcoliche"
#~ msgid "Use of alcoholic beverages"
#~ msgstr "Uso di bevande alcoliche"
#~ msgid "No references to illicit drugs"
#~ msgstr "Nessun riferimento a droghe illecite"
#~ msgid "References to illicit drugs"
#~ msgstr "Riferimenti a droghe illecite"
#~ msgid "Use of illicit drugs"
#~ msgstr "Uso di droghe illecite"
#~ msgid "References to tobacco products"
#~ msgstr "Riferimenti a prodotti del tabacco"
#~ msgid "Use of tobacco products"
#~ msgstr "Uso di prodotti del tabacco"
#~ msgid "No nudity of any sort"
#~ msgstr "Nessuna nudità di qualsiasi sorta"
#~ msgid "Brief artistic nudity"
#~ msgstr "Breve nudità artistica"
#~ msgid "Prolonged nudity"
#~ msgstr "Nudità prolungata"
#~ msgid "No references or depictions of sexual nature"
#~ msgstr "Nessun riferimento o raffigurazione di natura sessuale"
#~ msgid "Provocative references or depictions"
#~ msgstr "Riferimenti o raffigurazioni provocanti"
#~ msgid "Sexual references or depictions"
#~ msgstr "Riferimenti o raffigurazioni sessuali"
#~ msgid "Graphic sexual behavior"
#~ msgstr "Comportamento grafico sessuale"
#~ msgid "No profanity of any kind"
#~ msgstr "Nessuna volgarità di qualsiasi tipo"
#~ msgid "Mild or infrequent use of profanity"
#~ msgstr "Lieve o infrequente uso di volgarità"
#~ msgid "Moderate use of profanity"
#~ msgstr "Moderato uso di volgarità"
#~ msgid "Strong or frequent use of profanity"
#~ msgstr "Forte o frequente uso di volgarità"
#~ msgid "No inappropriate humor"
#~ msgstr "Nessun umorismo inappropriato"
#~ msgid "Slapstick humor"
#~ msgstr "Umorismo da pagliacciata"
#~ msgid "Vulgar or bathroom humor"
#~ msgstr "Umorismo volgare o da gabinetto"
#~ msgid "Mature or sexual humor"
#~ msgstr "Umorismo maturo o sessuale"
#~ msgid "No discriminatory language of any kind"
#~ msgstr "Nessun linguaggio discriminatorio di qualsiasi tipo"
#~ msgid "Negativity towards a specific group of people"
#~ msgstr "Negatività verso un gruppo specifico di persone"
#~ msgid "Discrimination designed to cause emotional harm"
#~ msgstr "Discriminazione progettata per causare danni emotivi"
#~ msgid "Explicit discrimination based on gender, sexuality, race or religion"
#~ msgstr ""
#~ "Discriminazione esplicita basata sul sesso, sessualità, razza o religione"
#~ msgid "No advertising of any kind"
#~ msgstr "Nessuna pubblicità di qualsiasi tipo"
#~ msgid "Product placement"
#~ msgstr "Inserimento prodotto"
#~ msgid "Explicit references to specific brands or trademarked products"
#~ msgstr "Riferimenti espliciti a specifici marchi o prodotti commerciali"
#~ msgid "Users are encouraged to purchase specific real-world items"
#~ msgstr ""
#~ "Gli utenti sono incoraggiati ad acquistare specifici oggetti del mondo "
#~ "reale"
#~ msgid "No gambling of any kind"
#~ msgstr "Nessun gioco d'azzardo di qualsiasi tipo"
#~ msgid "Gambling on random events using tokens or credits"
#~ msgstr "Gioco d'azzardo su eventi casuali che usano gettoni o crediti"
#~ msgid "Gambling using “play” money"
#~ msgstr "Gioco d'azzardo che usa soldi «di gioco»"
#~ msgid "Gambling using real money"
#~ msgstr "Gioco d'azzardo che usa soldi veri"
#~ msgid "No ability to spend money"
#~ msgstr "Nessuna possibilità di spendere soldi"
#~ msgid "Users are encouraged to donate real money"
#~ msgstr "Gli utenti sono incoraggiati a donare moneta reale"
#~ msgid "Ability to spend real money in-game"
#~ msgstr "Possibilità di spendere soldi veri in gioco"
#~ msgid "No way to chat with other users"
#~ msgstr "Nessuna possibilità di conversare con altri utenti"
#~ msgid "Moderated chat functionality between users"
#~ msgstr "Funzionalità di chat moderata fra utenti"
#~ msgid "Uncontrolled chat functionality between users"
#~ msgstr "Funzionalità di chat non controllata fra utenti"
#~ msgid "No way to talk with other users"
#~ msgstr "Nessuna possibilità di parlare con altri utenti"
#~ msgid "Uncontrolled audio or video chat functionality between users"
#~ msgstr "Funzionalità di chat audio e video non controllata fra utenti"
#~ msgid "No sharing of social network usernames or email addresses"
#~ msgstr ""
#~ "Nessuna condivisione di nomi utente di social network o di indirizzi email"
#~ msgid "Sharing social network usernames or email addresses"
#~ msgstr "Condivisione di nomi utente di social network o di indirizzi email"
#~ msgid "No sharing of user information with 3rd parties"
#~ msgstr "Nessuna condivisione di informazioni dell'utente con terze parti"
#~ msgid "Checking for the latest application version"
#~ msgstr "Verifica dell'ultima versione dell'applicazione"
#~ msgid "Sharing diagnostic data that does not let others identify the user"
#~ msgstr ""
#~ "Condivisione di dati diagnostici che non consentono agli altri di "
#~ "identificare l'utente"
#~ msgid "Sharing information that lets others identify the user"
#~ msgstr ""
#~ "Condivisione di informazioni che consentono ad altri di identificare "
#~ "l'utente"
#~ msgid "No sharing of physical location to other users"
#~ msgstr "Nessuna condivisione della posizione fisica con altri utenti"
#~ msgid "Sharing physical location to other users"
#~ msgstr "Condivisione della posizione fisica con altri utenti"
#~ msgid "No references to homosexuality"
#~ msgstr "Neessun riferimento all'omosessualità"
#~ msgid "Indirect references to homosexuality"
#~ msgstr "Riferimenti indiretti all'omosessualità"
#~ msgid "Kissing between people of the same gender"
#~ msgstr "Effusioni fra persone dello stesso sesso"
#~ msgid "Graphic sexual behavior between people of the same gender"
#~ msgstr "Comportamento sessuale grafico fra persone dello stesso sesso"
#~ msgid "No references to prostitution"
#~ msgstr "Nessun riferimento alla prostituzione"
#~ msgid "Indirect references to prostitution"
#~ msgstr "Riferimenti indiretti alla prostituzione"
#~ msgid "Direct references to prostitution"
#~ msgstr "Riferimenti diretti alla prostituzione"
#~ msgid "Graphic depictions of the act of prostitution"
#~ msgstr "Rappresentazioni grafiche dell'atto di prostituzione"
#~ msgid "No references to adultery"
#~ msgstr "Nessun riferimento all'adulterio"
#~ msgid "Indirect references to adultery"
#~ msgstr "Riferimenti indiretti all'adulterio"
#~ msgid "Direct references to adultery"
#~ msgstr "Riferimenti diretti all'adulterio"
#~ msgid "Graphic depictions of the act of adultery"
#~ msgstr "Rappresentazioni grafiche dell'atto dell'adulterio"
#~ msgid "No sexualized characters"
#~ msgstr "Nessuna personaggio sessualizzato"
#~ msgid "Scantily clad human characters"
#~ msgstr "Personaggi umani poco vestiti"
#~ msgid "Overtly sexualized human characters"
#~ msgstr "Personaggi umani sessualizzati in modo anomalo"
#~ msgid "No references to desecration"
#~ msgstr "Nessun riferimento alla profanazione"
#~ msgid "Depictions of modern-day human desecration"
#~ msgstr "Rappresentazioni della moderna dissacrazione umana"
#~ msgid "Graphic depictions of modern-day desecration"
#~ msgstr "Rappresentazioni grafiche di moderna profanazione"
#~ msgid "No visible dead human remains"
#~ msgstr "Nessun resto visibile di umano morto"
#~ msgid "Visible dead human remains"
#~ msgstr "Resti visibili di umano morto"
#~ msgid "Dead human remains that are exposed to the elements"
#~ msgstr "Resti di umano morto che è stato esposto agli elementi"
#~ msgid "Graphic depictions of desecration of human bodies"
#~ msgstr "Rappresentazioni grafiche della profanazione di corpi umani"
#~ msgid "No references to slavery"
#~ msgstr "Nessun riferimento alla schiavitù"
#~ msgid "Depictions of modern-day slavery"
#~ msgstr "Rappresentazioni della schiavitù moderna"
#~ msgid "Graphic depictions of modern-day slavery"
#~ msgstr "Rappresentazioni grafiche della schiavitù moderna"
msgstr "Errore nell'impostare il tempo limite sulla sessione di accesso: %s"

479
po/ka.po Normal file
View File

@ -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 users app filter"
msgstr "სხვა მომხმარებლის აპის ფილტრის შეცვლა"
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
msgid "Authentication is required to change another users app filter."
msgstr "სხვა მომხმარებლის აპის ფილტრის შესაცვლელად ავთენტიკაციაა საჭირო."
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
msgid "Read another users app filter"
msgstr "სხვა მომხმარებლის აპის ფილტრის წაკითხვა"
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
msgid "Authentication is required to read another users 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 users session limits"
msgstr "სხვა მომხმარებლის სესიის ლიმიტების შეცვლა"
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
msgid "Authentication is required to change another users session limits."
msgstr "სხვა მომხმარებლის სესიის ლიმიტების შესაცვლელად ავთენტიკაციაა საჭირო."
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
msgid "Read another users session limits"
msgstr "სხვა მომხმარებლის სესიის ლიმიტების წაკითხვა"
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
msgid "Authentication is required to read another users 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 users account info"
msgstr "სხვა მომხმარებლის ანგარიშის ინფორმაციის შეცვლა"
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
msgid "Authentication is required to change another users account info."
msgstr ""
"სხვა მომხმარებლის ანგარიშის ინფორმაციის შესაცვლელად ავთენტიკაციაა საჭირო."
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
msgid "Read another users account info"
msgstr "სხვა მომხმარებლის ანგარიშის ინფორმაციის წაკითხვა"
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
msgid "Authentication is required to read another users 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 users 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 users 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 users 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 users 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 ""
"Its 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"

159
po/pl.po
View File

@ -9,8 +9,8 @@ msgstr ""
"Project-Id-Version: malcontent\n"
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
"issues\n"
"POT-Creation-Date: 2020-06-10 15:26+0000\n"
"PO-Revision-Date: 2020-06-14 13:48+0200\n"
"POT-Creation-Date: 2020-12-18 15:14+0000\n"
"PO-Revision-Date: 2020-12-20 13:30+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <community-poland@mozilla.org>\n"
"Language: pl\n"
@ -141,29 +141,30 @@ msgstr "Filtr programów użytkownika %u jest w nieznanym formacie"
msgid "OARS filter for user %u has an unrecognized kind %s"
msgstr "Filtr OARS użytkownika %u ma nieznany rodzaj „%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 "Brak zezwolenia na odpytanie danych filtru programów użytkownika %u"
msgid "Not allowed to query parental controls data for user %u"
msgstr ""
"Brak zezwolenia na odpytanie danych kontroli rodzicielskiej użytkownika %u"
#: libmalcontent/manager.c:288
#, c-format
msgid "User %u does not exist"
msgstr "Użytkownik %u nie istnieje"
#: libmalcontent/manager.c:394
#: libmalcontent/manager.c:296
msgid "System accounts service not available"
msgstr "Systemowa usługa kont jest niedostępna"
#: libmalcontent/manager.c:402
msgid "App filtering is globally disabled"
msgstr "Filtrowanie programów jest wyłączone globalnie"
#: libmalcontent/manager.c:777
#: libmalcontent/manager.c:785
msgid "Session limits are globally disabled"
msgstr "Ograniczenia sesji są wyłączone globalnie"
#: libmalcontent/manager.c:795
#, c-format
msgid "Not allowed to query session limits data for user %u"
msgstr "Brak zezwolenia na odpytanie danych ograniczeń sesji użytkownika %u"
#: libmalcontent/session-limits.c:306
#, c-format
msgid "Session limit for user %u was in an unrecognized format"
@ -230,8 +231,8 @@ msgstr "Dla małych dzieci"
#, c-format
msgid "Restrict %s from using the following installed applications."
msgstr ""
"Ograniczanie użytkownikowi %s możliwości używania poniższych "
"zainstalowanych programów."
"Ograniczanie użytkownikowi %s możliwości używania poniższych zainstalowanych "
"programów."
#: libmalcontent-ui/restrict-applications-dialog.ui:6
#: libmalcontent-ui/restrict-applications-dialog.ui:12
@ -243,74 +244,62 @@ msgid "No applications found to restrict."
msgstr "Nie odnaleziono żadnych programów do ograniczenia."
#. 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 "nieznany"
#: 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 "W każdym wieku"
#. Translators: The placeholder is a users 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 ""
"Uniemożliwia użytkownikowi %s używanie przeglądarek internetowych. Pewne "
"Uniemożliwia użytkownikowi %s używanie przeglądarek internetowych. Pewne "
"treści internetowe mogą nadal być dostępne w innych programach."
#. Translators: The placeholder is a users 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 "Uniemożliwia użytkownikowi %s używanie podanych programów."
msgstr "Uniemożliwia użytkownikowi %s używanie podanych programów."
#. Translators: The placeholder is a users display name.
#: libmalcontent-ui/user-controls.c:524
#: libmalcontent-ui/user-controls.c:487
#, c-format
msgid "Prevents %s from installing applications."
msgstr "Uniemożliwia użytkownikowi %s instalowanie programów."
msgstr "Uniemożliwia użytkownikowi %s instalowanie programów."
#. Translators: The placeholder is a users display name.
#: libmalcontent-ui/user-controls.c:529
#, c-format
msgid "Applications installed by %s will not appear for other users."
msgstr ""
"Programy zainstalowane przez użytkownika „%s” nie będą widoczne dla "
"pozostałych użytkowników."
#: libmalcontent-ui/user-controls.ui:17
#: libmalcontent-ui/user-controls.ui:16
msgid "Application Usage Restrictions"
msgstr "Ograniczenia używania programów"
#: libmalcontent-ui/user-controls.ui:68
#: libmalcontent-ui/user-controls.ui:67
msgid "Restrict _Web Browsers"
msgstr "_Ograniczanie przeglądarek internetowych"
#: libmalcontent-ui/user-controls.ui:152
#: libmalcontent-ui/user-controls.ui:151
msgid "_Restrict Applications"
msgstr "Ogr_aniczanie programów"
#: libmalcontent-ui/user-controls.ui:231
#: libmalcontent-ui/user-controls.ui:230
msgid "Software Installation Restrictions"
msgstr "Ograniczenia instalacji oprogramowania"
#: libmalcontent-ui/user-controls.ui:281
#: libmalcontent-ui/user-controls.ui:280
msgid "Restrict Application _Installation"
msgstr "Ogra_niczanie instalacji programów"
#: libmalcontent-ui/user-controls.ui:366
msgid "Restrict Application Installation for _Others"
msgstr "Ograni_czanie instalacji programów dla innych"
#: libmalcontent-ui/user-controls.ui:451
#: libmalcontent-ui/user-controls.ui:365
msgid "Application _Suitability"
msgstr "O_dpowiedniość programów"
#: libmalcontent-ui/user-controls.ui:473
#: libmalcontent-ui/user-controls.ui:387
msgid ""
"Restricts browsing or installation of applications to applications suitable "
"for certain ages or above."
@ -318,22 +307,36 @@ msgstr ""
"Ogranicza przeglądanie lub instalowanie programów do tych odpowiednich dla "
"danego wieku."
#. Translators: This documents the --user command line option to malcontent-control:
#: malcontent-control/application.c:102
msgid "User to select in the UI"
msgstr "Użytkownik do wybrania w interfejsie użytkownika"
#. Translators: This is a placeholder for a command line argument value:
#: malcontent-control/application.c:104
msgid "USERNAME"
msgstr "NAZWA-UŻYTKOWNIKA"
#: malcontent-control/application.c:115
msgid "— view and edit parental controls"
msgstr "— wyświetlanie i modyfikowanie kontroli rodzicielskiej"
#. 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: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 "Kontrola rodzicielska"
#: malcontent-control/application.c:270
#: malcontent-control/application.c:308
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:275
#: malcontent-control/application.c:313
msgid "translator-credits"
msgstr ""
"Piotr Drąg <piotrdrag@gmail.com>, 2020\n"
@ -341,23 +344,43 @@ msgstr ""
#. Translators: "Malcontent" is the brand name of this
#. project, so should not be translated.
#: malcontent-control/application.c:281
#: malcontent-control/application.c:319
msgid "Malcontent Website"
msgstr "Witryna projektu Malcontent"
#: malcontent-control/application.c:299
#: malcontent-control/application.c:337
msgid "The help contents could not be displayed"
msgstr "Nie można wyświetlić treści pomocy"
#: malcontent-control/application.c:336
#: malcontent-control/application.c:374
msgid "Failed to load user data from the system"
msgstr "Wczytanie danych użytkownika z systemu się nie powiodło"
#: malcontent-control/application.c:338
#: malcontent-control/application.c:376
msgid "Please make sure that the AccountsService is installed and enabled."
msgstr ""
"Proszę się upewnić, że usługa AccountsService jest zainstalowana i włączona."
#. 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 ""
"Its 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 ""
"Zalecane jest ustawianie ograniczeń jako część rozmowy z użytkownikiem %s. "
"Można przeczytać <a href='https://www.commonsensemedia.org/privacy-and-"
"internet-safety'>porady</a> na ten temat."
#: malcontent-control/carousel.ui:48
msgid "Previous Page"
msgstr "Poprzednia strona"
@ -366,42 +389,42 @@ msgstr "Poprzednia strona"
msgid "Next Page"
msgstr "Następna strona"
#: malcontent-control/main.ui:93
#: malcontent-control/main.ui:115
msgid "Permission Required"
msgstr "Wymagane jest pozwolenie"
#: malcontent-control/main.ui:107
#: malcontent-control/main.ui:129
msgid ""
"Permission is required to view and change user parental controls settings."
msgstr ""
"Wymagane jest uprawnienie, aby wyświetlić lub zmienić ustawienia kontroli "
"rodzicielskiej użytkownika."
#: malcontent-control/main.ui:148
msgid "No Child Users Configured"
msgstr "Nie skonfigurowano żadnych kont dzieci"
#: malcontent-control/main.ui:184
msgid "No Standard User Accounts"
msgstr "Brak standardowych kont użytkowników"
#: 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 ""
"Na komputerze obecnie nie skonfigurowano żadnego konta dziecka. Należy "
"utworzyć takie konto, aby móc skonfigurować jego kontrolę rodzicielską."
"Kontrola rodzicielska może być stosowana tylko na standardowych\n"
"kontach użytkowników. Można je utworzyć w ustawieniach użytkowników."
#: malcontent-control/main.ui:174
msgid "Create _Child User"
msgstr "_Utwórz konto dziecka"
#: malcontent-control/main.ui:212
msgid "_User Settings"
msgstr "_Ustawienia użytkowników"
#: malcontent-control/main.ui:202
#: malcontent-control/main.ui:242
msgid "Loading…"
msgstr "Wczytywanie…"
#: malcontent-control/main.ui:265
#: malcontent-control/main.ui:305
msgid "_Help"
msgstr "Pomo_c"
#: malcontent-control/main.ui:269
#: malcontent-control/main.ui:309
msgid "_About Parental Controls"
msgstr "_O programie"
@ -422,7 +445,11 @@ msgstr ""
"kontrolowanie jak długo mogą używać komputera, jakie oprogramowanie mogą "
"instalować oraz którego zainstalowanego oprogramowania mogą używać."
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
msgid "Main window"
msgstr "Główne okno"
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:38
msgid "The GNOME Project"
msgstr "Projekt GNOME"

View File

@ -125,6 +125,25 @@ msgid "Authentication is required to read another users 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 ""
"Its 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
View File

@ -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 users app filter"
msgstr ""
msgstr "Изменение фильтра приложений другого пользователя"
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
msgid "Authentication is required to change another users app filter."
msgstr ""
"Для изменения фильтра приложений другого пользователя требуется "
"идентификация."
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
msgid "Read another users app filter"
msgstr ""
msgstr "Чтение фильтра приложений другого пользователя"
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
msgid "Authentication is required to read another users 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 users session limits"
msgstr ""
msgstr "Изменение ограничений сеанса другого пользователя"
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
msgid "Authentication is required to change another users session limits."
msgstr ""
"Для изменения ограничений сеанса другого пользователя требуется "
"идентификация."
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
msgid "Read another users session limits"
msgstr ""
msgstr "Чтение ограничений сеанса другого пользователя"
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
msgid "Authentication is required to read another users 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 users account info"
msgstr ""
msgstr "Изменение данных учётной записи другого пользователя"
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
msgid "Authentication is required to change another users account info."
msgstr ""
"Для изменения данных учётной записи другого пользователя требуется "
"идентификация."
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
msgid "Read another users account info"
msgstr ""
msgstr "Чтение данных учётной записи другого пользователя"
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
msgid "Authentication is required to read another users 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 users 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 users 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 users 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 users 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 users 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 ""
"Its 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 "Отсутствуют сцены мультипликационного насилия"

689
po/sv.po
View File

@ -1,381 +1,377 @@
# 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, 2023.
#
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: 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"
"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.4\n"
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
msgid "Change your own app filter"
msgstr ""
msgstr "Ändra ditt eget programfilter"
#: accounts-service/com.endlessm.ParentalControls.policy.in:5
msgid "Authentication is required to change your app filter."
msgstr ""
msgstr "Autentisering krävs för att ändra ditt programfilter."
#: accounts-service/com.endlessm.ParentalControls.policy.in:14
msgid "Read your own app filter"
msgstr ""
msgstr "Läs ditt eget programfilter"
#: accounts-service/com.endlessm.ParentalControls.policy.in:15
msgid "Authentication is required to read your app filter."
msgstr ""
msgstr "Autentisering krävs för att läsa ditt programfilter."
#: accounts-service/com.endlessm.ParentalControls.policy.in:24
msgid "Change another users app filter"
msgstr ""
msgstr "Ändra en annan användares programfilter"
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
msgid "Authentication is required to change another users app filter."
msgstr ""
msgstr "Autentisering krävs för att ändra en annan användares programfilter."
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
msgid "Read another users app filter"
msgstr ""
msgstr "Läs en annan användares programfilter"
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
msgid "Authentication is required to read another users app filter."
msgstr ""
msgstr "Autentisering krävs för att läsa en annan användares programfilter."
#: accounts-service/com.endlessm.ParentalControls.policy.in:44
msgid "Change your own session limits"
msgstr ""
msgstr "Ändra dina egna sessionsgränser"
#: accounts-service/com.endlessm.ParentalControls.policy.in:45
msgid "Authentication is required to change your session limits."
msgstr ""
msgstr "Autentisering krävs för att ändra dina sessionsgränser."
#: accounts-service/com.endlessm.ParentalControls.policy.in:54
msgid "Read your own session limits"
msgstr ""
msgstr "Läs dina egna sessionsgränser"
#: accounts-service/com.endlessm.ParentalControls.policy.in:55
msgid "Authentication is required to read your session limits."
msgstr ""
msgstr "Autentisering krävs för att läsa dina sessionsgränser."
#: accounts-service/com.endlessm.ParentalControls.policy.in:64
msgid "Change another users session limits"
msgstr ""
msgstr "Ändra en annan användares sessionsgränser"
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
msgid "Authentication is required to change another users session limits."
msgstr ""
msgstr "Autentisering krävs för att ändra en annan användares sessionsgränser."
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
msgid "Read another users session limits"
msgstr ""
msgstr "Läs en annan användares sessionsgränser"
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
msgid "Authentication is required to read another users session limits."
msgstr ""
msgstr "Autentisering krävs för att läsa en annan användares sessionsgränser."
#: accounts-service/com.endlessm.ParentalControls.policy.in:84
msgid "Change your own account info"
msgstr ""
msgstr "Ändra din egen kontoinformation"
#: accounts-service/com.endlessm.ParentalControls.policy.in:85
msgid "Authentication is required to change your account info."
msgstr ""
msgstr "Autentisering krävs för att ändra din kontoinformation."
#: accounts-service/com.endlessm.ParentalControls.policy.in:94
msgid "Read your own account info"
msgstr ""
msgstr "Läs din egen kontoinformation"
#: accounts-service/com.endlessm.ParentalControls.policy.in:95
msgid "Authentication is required to read your account info."
msgstr ""
msgstr "Autentisering krävs för att läsa din kontoinformation."
#: accounts-service/com.endlessm.ParentalControls.policy.in:104
msgid "Change another users account info"
msgstr ""
msgstr "Ändra en annan användares kontoinformation"
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
msgid "Authentication is required to change another users account info."
msgstr ""
"Autentisering krävs för att ändra en annan användares kontoinformation."
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
msgid "Read another users account info"
msgstr ""
msgstr "Läs en annan användares kontoinformation"
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
msgid "Authentication is required to read another users account info."
msgstr ""
msgstr "Autentisering krävs för att läsa en annan användares kontoinformation."
#: libmalcontent/app-filter.c:694
#, c-format
msgid "App filter for user %u was in an unrecognized format"
msgstr ""
msgstr "Programfilter för användare %u var i ett okänt format"
#: libmalcontent/app-filter.c:725
#, c-format
msgid "OARS filter for user %u has an unrecognized kind %s"
msgstr ""
msgstr "OARS-filter för användare %u har en okänd typ ”%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 ""
msgid "Not allowed to query parental controls data for user %u"
msgstr "Ej tillåtet att efterfråga föräldrakontrollsdata för användare %u"
#: libmalcontent/manager.c:288
#, c-format
msgid "User %u does not exist"
msgstr ""
msgstr "Användare %u finns inte"
#: libmalcontent/manager.c:394
#: libmalcontent/manager.c:296
msgid "System accounts service not available"
msgstr "Systemkontotjänst ej tillgänglig"
#: libmalcontent/manager.c:402
msgid "App filtering is globally disabled"
msgstr ""
msgstr "Programfiltrering är globalt inaktiverad"
#: 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 "Sessionsgränser är globalt inaktiverade"
#: libmalcontent/session-limits.c:306
#, c-format
msgid "Session limit for user %u was in an unrecognized format"
msgstr ""
msgstr "Sessionsgräns för användare %u var i ett okänt format"
#: libmalcontent/session-limits.c:328
#, c-format
msgid "Session limit for user %u has an unrecognized type %u"
msgstr ""
msgstr "Sessionsgräns för användare %u har en okänd typ ”%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 ""
msgstr "Sessionsgräns för användare %u har ett ogiltigt dagsschema %u%u"
#. Translators: the placeholder is a users 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 "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 ""
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 ""
msgstr "Inga program att begränsa hittades."
#. 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 "okänd"
#: 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 "Alla åldrar"
#. Translators: The placeholder is a users 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 ""
"Förhindrar %s från att köra webbläsare. Begränsat webbinnehåll kan "
"fortfarande finnas tillgängligt i andra program."
#. Translators: The placeholder is a users 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 "Förhindrar angivna program från att användas av %s."
#. Translators: The placeholder is a users display name.
#: libmalcontent-ui/user-controls.c:524
#: libmalcontent-ui/user-controls.c:480
#, c-format
msgid "Prevents %s from installing applications."
msgstr ""
msgstr "Förhindrar %s från att installera program."
#. Translators: The placeholder is a users 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 "Begränsningar av programanvändning"
#: libmalcontent-ui/user-controls.ui:68
#: libmalcontent-ui/user-controls.ui:28
msgid "Restrict _Web Browsers"
msgstr ""
msgstr "Begränsa _webbläsare"
#: libmalcontent-ui/user-controls.ui:152
#: libmalcontent-ui/user-controls.ui:51
msgid "_Restrict Applications"
msgstr ""
msgstr "_Begränsa program"
#: libmalcontent-ui/user-controls.ui:231
#: libmalcontent-ui/user-controls.ui:73
msgid "Software Installation Restrictions"
msgstr ""
msgstr "Begränsningar av programvaruinstallation"
#: libmalcontent-ui/user-controls.ui:281
#: libmalcontent-ui/user-controls.ui:77
msgid "Restrict Application _Installation"
msgstr ""
msgstr "Begränsa _installation av program"
#: 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 "_Lämplighet för program"
#: 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 ""
"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
msgid "User to select in the UI"
msgstr "Användare att välja i användargränssnittet"
#. Translators: This is a placeholder for a command line argument value:
#: malcontent-control/application.c:104
msgid "USERNAME"
msgstr "ANVÄNDARNAMN"
#: 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: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 "Föräldrakontroller"
#: 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 "Anders Jonsson <anders.jonsson@norsjovallen.se>"
#. 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 "Webbplats för Malcontent"
#: malcontent-control/application.c:299
#: malcontent-control/application.c:341
msgid "The help contents could not be displayed"
msgstr ""
msgstr "Hjälpinnehållet kunde inte visas"
#: malcontent-control/application.c:336
#: malcontent-control/application.c:388
msgid "Failed to load user data from the system"
msgstr ""
msgstr "Misslyckades med att läsa in användardata från systemet"
#: malcontent-control/application.c:338
#: malcontent-control/application.c:390
msgid "Please make sure that the AccountsService is installed and enabled."
msgstr ""
msgstr "Försäkra dig om att AccountsService är installerat och aktiverat."
#: 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 ""
"Its 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 ""
"Det rekommenderas att begränsningar ställs in som en del av en pågående "
"diskussion med %s. <a href='https://www.commonsensemedia.org/privacy-and-"
"internet-safety'>Du kan läsa denna guide</a> (på engelska) om vad som finns "
"att ta i beaktande."
#: malcontent-control/carousel.ui:38
msgid "Previous Page"
msgstr ""
msgstr "Föregående sida"
#: malcontent-control/carousel.ui:74
#: malcontent-control/carousel.ui:57
msgid "Next Page"
msgstr ""
msgstr "Nästa sida"
#: malcontent-control/main.ui:93
#: malcontent-control/main.ui:87
msgid "Permission Required"
msgstr ""
msgstr "Behörighet krävs"
#: malcontent-control/main.ui:107
#: 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:148
msgid "No Child Users Configured"
msgstr ""
#: malcontent-control/main.ui:110
msgid "No Standard User Accounts"
msgstr "Inga standardanvändarkonton"
#: 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 ""
"Föräldrakontroller kan endast tillämpas för\n"
"standardanvändarkonton. Dessa kan skapas i\n"
"användarinställningarna."
#: malcontent-control/main.ui:174
msgid "Create _Child User"
msgstr ""
#: malcontent-control/main.ui:115
msgid "_User Settings"
msgstr "_Användarinställningar"
#: malcontent-control/main.ui:202
#: malcontent-control/main.ui:138
msgid "Loading…"
msgstr ""
msgstr "Läser in…"
#: malcontent-control/main.ui:265
#: malcontent-control/main.ui:171
msgid "_Help"
msgstr "_Hjälp"
#: malcontent-control/main.ui:269
#: malcontent-control/main.ui:175
msgid "_About Parental Controls"
msgstr ""
msgstr "_Om Föräldrakontroller"
#. 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 "Ställ in föräldrakontroller och övervaka användares användning"
#. Translators: These are the application description paragraphs in the AppData file.
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:16
@ -384,67 +380,35 @@ msgid ""
"use the computer for, what software they can install, and what installed "
"software they can run."
msgstr ""
"Hantera användares föräldrakontrollsbegränsningar, vilket styr hur länge de "
"kan använda datorn, vilken programvara de kan installera, och vilken "
"installerad programvara som de kan köra."
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:25
msgid "Main window"
msgstr "Huvudfönster"
#: 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-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;"
msgstr ""
"föräldrakontroller;skärmtid;programbegränsningar;appbegränsningar;"
"webbläsarbegränsningar;oars;användning;användningsgräns;barn;"
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:9
msgid "Manage parental controls"
msgstr ""
msgstr "Hantera föräldrakontroller"
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:10
msgid "Authentication is required to read and change user parental controls"
msgstr ""
"Autentisering krävs för att läsa och ändra föräldrakontroller för användare"
#: malcontent-control/user-selector.c:426
msgid "Your account"
@ -455,308 +419,19 @@ msgstr "Ditt konto"
#: pam/pam_malcontent.c:142 pam/pam_malcontent.c:188
#, c-format
msgid "User %s has no time limits enabled"
msgstr ""
msgstr "Användaren ”%s” har inga tidsgränser aktiverade"
#: pam/pam_malcontent.c:151 pam/pam_malcontent.c:172
#, c-format
msgid "Error getting session limits for user %s: %s"
msgstr ""
msgstr "Fel vid hämtning av sessionsgränser för användaren ”%s”: %s"
#: pam/pam_malcontent.c:182
#, c-format
msgid "User %s has no time remaining"
msgstr ""
msgstr "Användaren ”%s” har ingen återstående tid"
#: pam/pam_malcontent.c:200
#, c-format
msgid "Error setting time limit on login session: %s"
msgstr ""
#~ msgid "No cartoon violence"
#~ msgstr "Inget tecknat våld"
#~ msgid "Cartoon characters in unsafe situations"
#~ msgstr "Tecknade figurer i farliga situationer"
#~ msgid "Cartoon characters in aggressive conflict"
#~ msgstr "Tecknade figurer i aggressiv konflikt"
#~ msgid "Graphic violence involving cartoon characters"
#~ msgstr "Våldsskildring som involverar tecknade figurer"
#~ msgid "No fantasy violence"
#~ msgstr "Inget orealistiskt våld"
#~ msgid "Characters in unsafe situations easily distinguishable from reality"
#~ msgstr "Figurer i farliga situationer lätt åtskiljbara från verkligheten"
#~ msgid ""
#~ "Characters in aggressive conflict easily distinguishable from reality"
#~ msgstr "Figurer i aggressiv konflikt lätt åtskiljbar från verkligheten"
#~ msgid "Graphic violence easily distinguishable from reality"
#~ msgstr "Våldsskildring lätt åtskiljbar från verkligheten"
#~ msgid "No realistic violence"
#~ msgstr "Inget realistiskt våld"
#~ msgid "Mildly realistic characters in unsafe situations"
#~ msgstr "Någorlunda realistiska figurer i farliga situationer"
#~ msgid "Depictions of realistic characters in aggressive conflict"
#~ msgstr "Skildringar av realistiska figurer i aggressiv konflikt"
#~ msgid "Graphic violence involving realistic characters"
#~ msgstr "Våldsskildring som involverar realistiska figurer"
#~ msgid "No bloodshed"
#~ msgstr "Ingen blodsutgjutelse"
#~ msgid "Unrealistic bloodshed"
#~ msgstr "Orealistisk blodsutgjutelse"
#~ msgid "Realistic bloodshed"
#~ msgstr "Realistisk blodsutgjutelse"
#~ msgid "Depictions of bloodshed and the mutilation of body parts"
#~ msgstr "Skildringar av blodsutgjutelse och lemlästning"
#~ msgid "No sexual violence"
#~ msgstr "Inget sexuellt våld"
#~ msgid "Rape or other violent sexual behavior"
#~ msgstr "Våldtäkt eller annat våldsamt sexuellt beteende"
#~ msgid "No references to alcohol"
#~ msgstr "Inga referenser till alkohol"
#~ msgid "References to alcoholic beverages"
#~ msgstr "Referenser till alkoholhaltiga drycker"
#~ msgid "Use of alcoholic beverages"
#~ msgstr "Användning av alkoholhaltiga drycker"
#~ msgid "No references to illicit drugs"
#~ msgstr "Inga referenser till illegala droger"
#~ msgid "References to illicit drugs"
#~ msgstr "Referenser till illegala droger"
#~ msgid "Use of illicit drugs"
#~ msgstr "Användning av illegala droger"
#~ msgid "References to tobacco products"
#~ msgstr "Referenser till tobaksprodukter"
#~ msgid "Use of tobacco products"
#~ msgstr "Användning av tobaksprodukter"
#~ msgid "No nudity of any sort"
#~ msgstr "Inga sorters nakenhet"
#~ msgid "Brief artistic nudity"
#~ msgstr "Kortvarig konstnärlig nakenhet"
#~ msgid "Prolonged nudity"
#~ msgstr "Långvarig nakenhet"
#~ msgid "No references or depictions of sexual nature"
#~ msgstr "Inga sexuella referenser eller skildringar"
#~ msgid "Provocative references or depictions"
#~ msgstr "Provokativa referenser eller skildringar"
#~ msgid "Sexual references or depictions"
#~ msgstr "Sexuella referenser eller skildringar"
#~ msgid "Graphic sexual behavior"
#~ msgstr "Skildring av sexuellt beteende"
#~ msgid "No profanity of any kind"
#~ msgstr "Inga sorters svordomar"
#~ msgid "Mild or infrequent use of profanity"
#~ msgstr "Milda eller tillfälligt förekommande svordomar"
#~ msgid "Moderate use of profanity"
#~ msgstr "Måttlig användning av svordomar"
#~ msgid "Strong or frequent use of profanity"
#~ msgstr "Grova eller ofta förekommande svordomar"
#~ msgid "No inappropriate humor"
#~ msgstr "Ingen olämplig humor"
#~ msgid "Slapstick humor"
#~ msgstr "Slapstickhumor"
#~ msgid "Vulgar or bathroom humor"
#~ msgstr "Vulgär humor eller badrumshumor"
#~ msgid "Mature or sexual humor"
#~ msgstr "Mogen eller sexuell humor"
#~ msgid "No discriminatory language of any kind"
#~ msgstr "Inget diskriminerande språkbruk"
#~ msgid "Negativity towards a specific group of people"
#~ msgstr "Negativ inställning mot en specifik folkgrupp"
#~ msgid "Discrimination designed to cause emotional harm"
#~ msgstr "Diskriminering avsedd att orsaka emotionell smärta"
#~ msgid "Explicit discrimination based on gender, sexuality, race or religion"
#~ msgstr ""
#~ "Explicit diskriminering baserad på kön, sexuell läggning, ras eller "
#~ "religion"
#~ msgid "No advertising of any kind"
#~ msgstr "Inga sorters annonser"
#~ msgid "Product placement"
#~ msgstr "Produktplacering"
#~ msgid "Explicit references to specific brands or trademarked products"
#~ msgstr ""
#~ "Explicita referenser till specifika varumärken eller varumärkesskyddade "
#~ "produkter"
#~ msgid "Users are encouraged to purchase specific real-world items"
#~ msgstr "Användare uppmanas att köpa specifika föremål i verkliga världen"
#~ msgid "No gambling of any kind"
#~ msgstr "Inget spelande"
#~ msgid "Gambling on random events using tokens or credits"
#~ msgstr "Spel på slumpbaserade händelser med marker eller poäng"
#~ msgid "Gambling using “play” money"
#~ msgstr "Spel med låtsaspengar"
#~ msgid "Gambling using real money"
#~ msgstr "Spel med riktiga pengar"
#~ msgid "No ability to spend money"
#~ msgstr "Ingen möjlighet att spendera pengar"
#~ msgid "Users are encouraged to donate real money"
#~ msgstr "Användare uppmanas att skänka riktiga pengar"
#~ msgid "Ability to spend real money in-game"
#~ msgstr "Möjlighet att spendera riktiga pengar i spelet"
#~ msgid "No way to chat with other users"
#~ msgstr "Inget sätt att chatta med andra användare"
#~ msgid "Moderated chat functionality between users"
#~ msgstr "Modererad chattfunktion mellan användare"
#~ msgid "Uncontrolled chat functionality between users"
#~ msgstr "Okontrollerad chattfunktion mellan användare"
#~ msgid "No way to talk with other users"
#~ msgstr "Inget sätt att prata med andra användare"
#~ msgid "Uncontrolled audio or video chat functionality between users"
#~ msgstr "Okontrollerad ljud- eller videochattfunktion mellan användare"
#~ msgid "No sharing of social network usernames or email addresses"
#~ msgstr ""
#~ "Ingen delning av e-postadresser eller användarnamn på sociala nätverk"
#~ msgid "Sharing social network usernames or email addresses"
#~ msgstr "Delning av e-postadresser eller användarnamn på sociala nätverk"
#~ msgid "No sharing of user information with 3rd parties"
#~ msgstr "Ingen delning av användarinformation med tredje part"
#~ msgid "Checking for the latest application version"
#~ msgstr "Söker efter den senaste programversionen"
#~ msgid "Sharing diagnostic data that does not let others identify the user"
#~ msgstr ""
#~ "Delning av diagnostiska data som inte låter andra identifiera användaren"
#~ msgid "Sharing information that lets others identify the user"
#~ msgstr "Delning av information som låter andra identifiera användaren"
#~ msgid "No sharing of physical location to other users"
#~ msgstr "Ingen delning av fysisk plats med andra användare"
#~ msgid "Sharing physical location to other users"
#~ msgstr "Delning av fysisk plats med andra användare"
#~ msgid "No references to homosexuality"
#~ msgstr "Inga referenser till homosexualitet"
#~ msgid "Indirect references to homosexuality"
#~ msgstr "Indirekta referenser till homosexualitet"
#~ msgid "Kissing between people of the same gender"
#~ msgstr "Kyssande mellan personer av samma kön"
#~ msgid "Graphic sexual behavior between people of the same gender"
#~ msgstr "Skildring av sexuellt beteende mellan personer av samma kön"
#~ msgid "No references to prostitution"
#~ msgstr "Inga referenser till prostitution"
#~ msgid "Indirect references to prostitution"
#~ msgstr "Indirekta referenser till prostitution"
#~ msgid "Direct references to prostitution"
#~ msgstr "Direkta referenser till prostitution"
#~ msgid "Graphic depictions of the act of prostitution"
#~ msgstr "Skildringar av prostitution"
#~ msgid "No references to adultery"
#~ msgstr "Inga referenser till otrohet"
#~ msgid "Indirect references to adultery"
#~ msgstr "Indirekta referenser till otrohet"
#~ msgid "Direct references to adultery"
#~ msgstr "Direkta referenser till otrohet"
#~ msgid "Graphic depictions of the act of adultery"
#~ msgstr "Skildringar av otrohet"
#~ msgid "No sexualized characters"
#~ msgstr "Inga sexualiserade figurer"
#~ msgid "Scantily clad human characters"
#~ msgstr "Lättklädda mänskliga figurer"
#~ msgid "Overtly sexualized human characters"
#~ msgstr "Öppet sexualiserade mänskliga figurer"
#~ msgid "No references to desecration"
#~ msgstr "Inga referenser till skändning"
#~ msgid "Depictions of modern-day human desecration"
#~ msgstr "Skildringar av nutida skändning av människor"
#~ msgid "Graphic depictions of modern-day desecration"
#~ msgstr "Realistiska skildringar av nutida skändning"
#~ msgid "No visible dead human remains"
#~ msgstr "Inga synliga kvarlevor av människor"
#~ msgid "Visible dead human remains"
#~ msgstr "Synliga kvarlevor av människor"
#~ msgid "Dead human remains that are exposed to the elements"
#~ msgstr "Kvarlevor av döda människor som utsatts för väder och vind"
#~ msgid "Graphic depictions of desecration of human bodies"
#~ msgstr "Realistiska skildringar av skändning av mänskliga kroppar"
#~ msgid "No references to slavery"
#~ msgstr "Inga referenser till slaveri"
#~ msgid "Depictions of modern-day slavery"
#~ msgstr "Skildringar av nutida slaveri"
#~ msgid "Graphic depictions of modern-day slavery"
#~ msgstr "Grafiska skildringar av nutida slaveri"
msgstr "Fel vid inställning av tidsgräns på inloggningssession: %s"

656
po/tr.po
View File

@ -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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 "AccountsServicein 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 ""
"Its 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ıı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"

150
po/uk.po
View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: malcontent master\n"
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/issu"
"es\n"
"POT-Creation-Date: 2020-06-10 15:26+0000\n"
"PO-Revision-Date: 2020-06-10 20:33+0300\n"
"POT-Creation-Date: 2020-12-09 03:28+0000\n"
"PO-Revision-Date: 2020-12-09 08:59+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
"Language: uk\n"
@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Lokalize 20.07.70\n"
"X-Generator: Lokalize 20.11.70\n"
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
msgid "Change your own app filter"
@ -136,31 +136,30 @@ msgstr "Фільтр програм для користувача %u запис
msgid "OARS filter for user %u has an unrecognized kind %s"
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"
"Не дозволено опитувати дані щодо батьківського контролю для користувача %u"
#: libmalcontent/manager.c:288
#, c-format
msgid "User %u does not exist"
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 "Фільтрування програм вимкнено на загальному рівні"
#: 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"
@ -238,17 +237,17 @@ msgid "No applications found to restrict."
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 "невідомий"
#: 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 users 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 "
@ -258,52 +257,42 @@ msgstr ""
"можливий за допомогою інших програм."
#. Translators: The placeholder is a users 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 users 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 users 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
#: libmalcontent-ui/user-controls.ui:67
msgid "Restrict _Web Browsers"
msgstr "Обмежити _браузери"
#: libmalcontent-ui/user-controls.ui:152
#: libmalcontent-ui/user-controls.ui:151
msgid "_Restrict Applications"
msgstr "_Обмежити доступ до програм"
#: libmalcontent-ui/user-controls.ui:231
#: libmalcontent-ui/user-controls.ui:230
msgid "Software Installation Restrictions"
msgstr "Обмеження на встановлення програмного забезпечення"
#: libmalcontent-ui/user-controls.ui:281
#: libmalcontent-ui/user-controls.ui:280
msgid "Restrict Application _Installation"
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:365
msgid "Application _Suitability"
msgstr "П_ридатність програм"
#: libmalcontent-ui/user-controls.ui:473
#: libmalcontent-ui/user-controls.ui:387
msgid ""
"Restricts browsing or installation of applications to applications suitable "
"for certain ages or above."
@ -311,43 +300,77 @@ 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: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:105 malcontent-control/main.ui:12
#: 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:270
#: malcontent-control/application.c:308
msgid "Copyright © 2019, 2020 Endless Mobile, Inc."
msgstr "© Endless Mobile, Inc., 2019, 2020"
#. 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:313
msgid "translator-credits"
msgstr "Юрій Чорноіван <yurchor@ukr.net>"
#. Translators: "Malcontent" is the brand name of this
#. project, so should not be translated.
#: malcontent-control/application.c:281
#: malcontent-control/application.c:319
msgid "Malcontent Website"
msgstr "Сайт Malcontent"
#: malcontent-control/application.c:299
#: malcontent-control/application.c:337
msgid "The help contents could not be displayed"
msgstr "Неможливо показати вміст довідки"
#: malcontent-control/application.c:336
#: malcontent-control/application.c:374
msgid "Failed to load user data from the system"
msgstr "Не вдалося завантажити дані користувача з системи"
#: malcontent-control/application.c:338
#: malcontent-control/application.c:376
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:407
#, c-format
msgid ""
"Its 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 "Попередня сторінка"
@ -356,42 +379,43 @@ msgstr "Попередня сторінка"
msgid "Next Page"
msgstr "Наступна сторінка"
#: malcontent-control/main.ui:93
#: malcontent-control/main.ui:115
msgid "Permission Required"
msgstr "Потрібні права доступу"
#: malcontent-control/main.ui:107
#: malcontent-control/main.ui:129
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:182
msgid "No Standard User Accounts"
msgstr "Немає стандартних облікових записів користувачів"
#: malcontent-control/main.ui:162
#: malcontent-control/main.ui:197
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:210
msgid "_User Settings"
msgstr "П_араметри користувачів"
#: malcontent-control/main.ui:202
#: malcontent-control/main.ui:238
msgid "Loading…"
msgstr "Завантаження…"
#: malcontent-control/main.ui:265
#: malcontent-control/main.ui:301
msgid "_Help"
msgstr "_Довідка"
#: malcontent-control/main.ui:269
#: malcontent-control/main.ui:305
msgid "_About Parental Controls"
msgstr "_Про «Батьківський контроль»"
@ -413,7 +437,11 @@ msgstr ""
"забезпечення, яке можна встановлювати, та переліком програмного "
"забезпечення, яке можна запускати."
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
#: 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"

View File

@ -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 users app filter"
msgstr "變更另一使用者的應用程式篩選條件"
msgstr "更改另一位使用者的應用程式過濾器"
#: accounts-service/com.endlessm.ParentalControls.policy.in:25
msgid "Authentication is required to change another users app filter."
msgstr "需要驗證才能變更另一使用者的應用程式篩選條件。"
msgstr "需要認證才能更改另一位使用者的應用程式過濾器。"
#: accounts-service/com.endlessm.ParentalControls.policy.in:34
msgid "Read another users app filter"
msgstr "讀取另一使用者的應用程式篩選條件"
msgstr "讀取另一位使用者的應用程式過濾器"
#: accounts-service/com.endlessm.ParentalControls.policy.in:35
msgid "Authentication is required to read another users 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 users session limits"
msgstr "更另一使用者的工作階段限制"
msgstr "更另一使用者的工作階段限制"
#: accounts-service/com.endlessm.ParentalControls.policy.in:65
msgid "Authentication is required to change another users session limits."
msgstr "需要驗證才能更另一使用者的工作階段限制。"
msgstr "需要驗證才能更另一使用者的工作階段限制。"
#: accounts-service/com.endlessm.ParentalControls.policy.in:74
msgid "Read another users session limits"
msgstr "讀取另一使用者的工作階段限制"
msgstr "讀取另一使用者的工作階段限制"
#: accounts-service/com.endlessm.ParentalControls.policy.in:75
msgid "Authentication is required to read another users 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 users account info"
msgstr "更另一使用者帳戶資訊"
msgstr "更另一使用者帳戶資訊"
#: accounts-service/com.endlessm.ParentalControls.policy.in:105
msgid "Authentication is required to change another users account info."
msgstr "需要驗證才能變更另一使用者的帳戶資訊。"
msgstr "需要認證才能更改另一位使用者的帳戶資訊。"
#: accounts-service/com.endlessm.ParentalControls.policy.in:114
msgid "Read another users account info"
msgstr "讀取另一使用者的帳戶資訊"
msgstr "讀取另一使用者的帳戶資訊"
#: accounts-service/com.endlessm.ParentalControls.policy.in:115
msgid "Authentication is required to read another users 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 users 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 users 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 users 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 users 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 users 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 ""
"Its 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 "沒有漫畫暴力"

View File

@ -0,0 +1,4 @@
[wrap-git]
url = https://gitlab.gnome.org/GNOME/libadwaita.git
revision = 1.1.0
depth = 1

View File

@ -1,5 +1,5 @@
[wrap-git]
directory = libglib-testing
url = https://gitlab.gnome.org/pwithnall/libglib-testing.git
revision = 0.1.0
revision = 0.1.1
depth = 1