diff --git a/libmalcontent-ui/restrict-applications-dialog.c b/libmalcontent-ui/restrict-applications-dialog.c
index 83e3da2..d09b0cb 100644
--- a/libmalcontent-ui/restrict-applications-dialog.c
+++ b/libmalcontent-ui/restrict-applications-dialog.c
@@ -55,11 +55,18 @@ struct _MctRestrictApplicationsDialog
MctRestrictApplicationsSelector *selector;
AdwPreferencesGroup *group;
+ GtkSearchEntry *search_entry;
MctAppFilter *app_filter; /* (owned) (not nullable) */
gchar *user_display_name; /* (owned) (nullable) */
};
+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
@@ -140,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)
{
@@ -151,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)
*
@@ -197,6 +219,15 @@ mct_restrict_applications_dialog_class_init (MctRestrictApplicationsDialogClass
gtk_widget_class_bind_template_child (widget_class, MctRestrictApplicationsDialog, selector);
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
@@ -206,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
@@ -225,6 +258,25 @@ update_description (MctRestrictApplicationsDialog *self)
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;
+}
+
/**
* mct_restrict_applications_dialog_new:
* @app_filter: (transfer none): the initial app filter configuration to show
diff --git a/libmalcontent-ui/restrict-applications-dialog.ui b/libmalcontent-ui/restrict-applications-dialog.ui
index 2fd728f..744d3a5 100644
--- a/libmalcontent-ui/restrict-applications-dialog.ui
+++ b/libmalcontent-ui/restrict-applications-dialog.ui
@@ -14,7 +14,21 @@
Restrict {username} from using the following installed applications.
-
+
diff --git a/libmalcontent-ui/restrict-applications-selector.c b/libmalcontent-ui/restrict-applications-selector.c
index 2da2eee..c151066 100644
--- a/libmalcontent-ui/restrict-applications-selector.c
+++ b/libmalcontent-ui/restrict-applications-selector.c
@@ -41,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:
@@ -54,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,10 +67,11 @@ struct _MctRestrictApplicationsSelector
GtkBox parent_instance;
GtkListBox *listbox;
- GtkLabel *placeholder;
GList *cached_apps; /* (nullable) (owned) (element-type GAppInfo) */
- GListStore *apps; /* (owned) */
+ GListStore *apps;
+ GtkFilterListModel *filtered_apps;
+ GtkStringFilter *search_filter;
GAppInfoMonitor *app_info_monitor; /* (owned) */
gulong app_info_monitor_changed_id;
GHashTable *blocklisted_apps; /* (owned) (element-type GAppInfo) */
@@ -75,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)
@@ -82,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,
@@ -125,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);
@@ -144,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);
@@ -156,7 +172,6 @@ mct_restrict_applications_selector_dispose (GObject *object)
MctRestrictApplicationsSelector *self = (MctRestrictApplicationsSelector *)object;
g_clear_pointer (&self->blocklisted_apps, g_hash_table_unref);
- g_clear_object (&self->apps);
g_clear_list (&self->cached_apps, g_object_unref);
if (self->app_info_monitor != NULL && self->app_info_monitor_changed_id != 0)
@@ -169,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);
}
@@ -203,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);
/**
@@ -224,34 +257,30 @@ 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, placeholder);
+ 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)
{
- guint n_apps;
gtk_widget_init_template (GTK_WIDGET (self));
- self->apps = g_list_store_new (G_TYPE_APP_INFO);
- self->cached_apps = NULL;
-
self->app_info_monitor = g_app_info_monitor_get ();
self->app_info_monitor_changed_id =
g_signal_connect (self->app_info_monitor, "changed",
(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);
- /* Hide placeholder if not empty */
- n_apps = g_list_model_get_n_items (G_LIST_MODEL (self->apps));
- gtk_widget_set_visible (GTK_WIDGET (self->placeholder), n_apps != 0);
-
self->blocklisted_apps = g_hash_table_new_full (g_direct_hash,
g_direct_equal,
g_object_unref,
@@ -368,6 +397,12 @@ create_row_for_app_cb (gpointer item,
return row;
}
+static char *
+app_info_dup_name (GAppInfo *app_info)
+{
+ return g_strdup (g_app_info_get_name (app_info));
+}
+
static gint
compare_app_info_cb (gconstpointer a,
gconstpointer b,
@@ -776,7 +811,7 @@ mct_restrict_applications_selector_set_app_filter (MctRestrictApplicationsSelect
self->app_filter = mct_app_filter_ref (app_filter);
/* Update the status of each app row. */
- n_apps = g_list_model_get_n_items (G_LIST_MODEL (self->apps));
+ n_apps = g_list_model_get_n_items (G_LIST_MODEL (self->filtered_apps));
for (guint i = 0; i < n_apps; i++)
{
@@ -795,3 +830,50 @@ mct_restrict_applications_selector_set_app_filter (MctRestrictApplicationsSelect
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_APP_FILTER]);
}
+
+/**
+ * mct_restrict_applications_selector_get_search:
+ * @self: an #MctRestrictApplicationsSelector
+ *
+ * Get the value of #MctRestrictApplicationsSelector:search.
+ *
+ * Returns: current search terms, or %NULL if no search filtering is active
+ * Since: 0.12.0
+ */
+const gchar *
+mct_restrict_applications_selector_get_search (MctRestrictApplicationsSelector *self)
+{
+ g_return_val_if_fail (MCT_IS_RESTRICT_APPLICATIONS_SELECTOR (self), NULL);
+
+ return self->search;
+}
+
+/**
+ * mct_restrict_applications_selector_set_search:
+ * @self: an #MctRestrictApplicationsSelector
+ * @search: (nullable): search terms, or %NULL to not filter the app list
+ *
+ * Set the value of #MctRestrictApplicationsSelector:search, or clear it to
+ * %NULL.
+ *
+ * Since: 0.12.0
+ */
+void
+mct_restrict_applications_selector_set_search (MctRestrictApplicationsSelector *self,
+ const gchar *search)
+{
+ g_return_if_fail (MCT_IS_RESTRICT_APPLICATIONS_SELECTOR (self));
+
+ /* Squash empty search terms down to nothing. */
+ if (search != NULL && *search == '\0')
+ search = NULL;
+
+ if (g_strcmp0 (search, self->search) == 0)
+ return;
+
+ g_clear_pointer (&self->search, g_free);
+ self->search = g_strdup (search);
+
+ gtk_string_filter_set_search (self->search_filter, self->search);
+ g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_SEARCH]);
+}
diff --git a/libmalcontent-ui/restrict-applications-selector.h b/libmalcontent-ui/restrict-applications-selector.h
index e02a10a..8a37916 100644
--- a/libmalcontent-ui/restrict-applications-selector.h
+++ b/libmalcontent-ui/restrict-applications-selector.h
@@ -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
diff --git a/libmalcontent-ui/restrict-applications-selector.ui b/libmalcontent-ui/restrict-applications-selector.ui
index aabda5c..0c75dfb 100644
--- a/libmalcontent-ui/restrict-applications-selector.ui
+++ b/libmalcontent-ui/restrict-applications-selector.ui
@@ -9,8 +9,10 @@
none
-
+
No applications found to restrict.
+ 12
+ 12
@@ -20,4 +22,19 @@
+
+
+ GAppInfo
+
+
+
+ apps
+ search_filter
+
+
+
+
+
+
+
diff --git a/libmalcontent-ui/user-controls.c b/libmalcontent-ui/user-controls.c
index 99908b8..27b65aa 100644
--- a/libmalcontent-ui/user-controls.c
+++ b/libmalcontent-ui/user-controls.c
@@ -702,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)
{
diff --git a/libmalcontent-ui/user-controls.ui b/libmalcontent-ui/user-controls.ui
index 5e948c1..887bc2d 100644
--- a/libmalcontent-ui/user-controls.ui
+++ b/libmalcontent-ui/user-controls.ui
@@ -99,7 +99,7 @@
Application _Suitability
True
oars_button
- 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.
0
False
diff --git a/libmalcontent/app-filter-private.h b/libmalcontent/app-filter-private.h
index 8b2fefd..8772ebc 100644
--- a/libmalcontent/app-filter-private.h
+++ b/libmalcontent/app-filter-private.h
@@ -48,6 +48,7 @@ typedef enum
struct _MctAppFilter
{
+ /*< private >*/
gint ref_count;
uid_t user_id;
diff --git a/libmalcontent/meson.build b/libmalcontent/meson.build
index f68299c..2f36420 100644
--- a/libmalcontent/meson.build
+++ b/libmalcontent/meson.build
@@ -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_',
diff --git a/libmalcontent/session-limits-private.h b/libmalcontent/session-limits-private.h
index 88f6c84..11a2ac9 100644
--- a/libmalcontent/session-limits-private.h
+++ b/libmalcontent/session-limits-private.h
@@ -50,6 +50,7 @@ typedef enum
struct _MctSessionLimits
{
+ /*< private >*/
gint ref_count;
uid_t user_id;
diff --git a/malcontent-client/malcontent-client.py b/malcontent-client/malcontent-client.py
index 5bc4731..051bc54 100644
--- a/malcontent-client/malcontent-client.py
+++ b/malcontent-client/malcontent-client.py
@@ -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)
diff --git a/malcontent-control/carousel.css b/malcontent-control/carousel.css
index 1c414d6..a2a0660 100644
--- a/malcontent-control/carousel.css
+++ b/malcontent-control/carousel.css
@@ -28,3 +28,12 @@ carousel-item {
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;
+}
diff --git a/malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in b/malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in
index e8b27fd..a58a361 100644
--- a/malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in
+++ b/malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in
@@ -31,7 +31,8 @@
org.freedesktop.MalcontentControl.desktop
https://gitlab.freedesktop.org/pwithnall/malcontent
https://gitlab.freedesktop.org/pwithnall/malcontent/issues
- http://www.gnome.org/friends/
+ https://www.gnome.org/donate/
+ https://gitlab.freedesktop.org/pwithnall/malcontent
https://wiki.gnome.org/TranslationProject/LocalisationGuide
philip_at_tecnocode.co.uk
GNOME
diff --git a/meson.build b/meson.build
index 038dd35..4f0cabd 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('malcontent', 'c',
- version : '0.11.1',
+ version : '0.12.0',
meson_version : '>= 0.59.0',
license: ['LGPL-2.1-or-later', 'GPL-2.0-or-later'],
default_options : [
diff --git a/po/cs.po b/po/cs.po
index fda724a..c57cfe2 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: malcontent\n"
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
"issues\n"
-"POT-Creation-Date: 2021-09-18 12:41+0000\n"
-"PO-Revision-Date: 2021-10-02 00:36+0200\n"
+"POT-Creation-Date: 2023-10-13 16:18+0000\n"
+"PO-Revision-Date: 2023-10-23 23:04+0200\n"
"Last-Translator: Daniel Rusek \n"
"Language-Team: none\n"
"Language: cs\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Poedit 3.0\n"
+"X-Generator: Poedit 3.4\n"
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
msgid "Change your own app filter"
@@ -164,78 +164,36 @@ msgstr "Limit sezení pro uživatele %u má nerozpoznaný typ ‘%u’"
msgid "Session limit for user %u has invalid daily schedule %u–%u"
msgstr "Limit sezení pro uživatele %u má neplatný denní rozvrh %u–%u"
-#. TRANSLATORS: This is the formatting of English and localized name
-#. of the rating e.g. "Adults Only (solo adultos)"
-#: libmalcontent-ui/gs-content-rating.c:75
-#, c-format
-msgid "%s (%s)"
-msgstr "%s (%s)"
-
-#: libmalcontent-ui/gs-content-rating.c:209
-msgid "General"
-msgstr "Obecné"
-
-#: libmalcontent-ui/gs-content-rating.c:218
-msgid "ALL"
-msgstr "VŠECHNY"
-
-#: libmalcontent-ui/gs-content-rating.c:222
-#: libmalcontent-ui/gs-content-rating.c:485
-msgid "Adults Only"
-msgstr "pouze dospělé"
-
-#: libmalcontent-ui/gs-content-rating.c:224
-#: libmalcontent-ui/gs-content-rating.c:484
-msgid "Mature"
-msgstr "plnoleté"
-
-#: libmalcontent-ui/gs-content-rating.c:226
-#: libmalcontent-ui/gs-content-rating.c:483
-msgid "Teen"
-msgstr "mládež"
-
-#: libmalcontent-ui/gs-content-rating.c:228
-#: libmalcontent-ui/gs-content-rating.c:482
-msgid "Everyone 10+"
-msgstr "všechny 10+"
-
-#: libmalcontent-ui/gs-content-rating.c:230
-#: libmalcontent-ui/gs-content-rating.c:481
-msgid "Everyone"
-msgstr "všechny"
-
-#: libmalcontent-ui/gs-content-rating.c:232
-#: libmalcontent-ui/gs-content-rating.c:480
-msgid "Early Childhood"
-msgstr "malé děti"
-
#. Translators: the placeholder is a user’s full name
-#: libmalcontent-ui/restrict-applications-dialog.c:222
+#: libmalcontent-ui/restrict-applications-dialog.c:256
#, c-format
msgid "Restrict %s from using the following installed applications."
msgstr "Omezit uživateli %s použití následujících nainstalovaných aplikací."
#: libmalcontent-ui/restrict-applications-dialog.ui:6
-#: libmalcontent-ui/restrict-applications-dialog.ui:12
msgid "Restrict Applications"
msgstr "Omezit aplikace"
-#: libmalcontent-ui/restrict-applications-selector.ui:24
+#: libmalcontent-ui/restrict-applications-dialog.ui:22
+msgid "Search for applications…"
+msgstr "Hledat aplikace…"
+
+#: libmalcontent-ui/restrict-applications-selector.ui:13
msgid "No applications found to restrict."
msgstr "Nenalezeny žádné aplikace k omezení."
#. Translators: this is the full name for an unknown user account.
-#: libmalcontent-ui/user-controls.c:207 libmalcontent-ui/user-controls.c:218
+#: libmalcontent-ui/user-controls.c:198 libmalcontent-ui/user-controls.c:209
msgid "unknown"
msgstr "neznámé"
-#: libmalcontent-ui/user-controls.c:312 libmalcontent-ui/user-controls.c:397
-#: libmalcontent-ui/user-controls.c:669
+#: libmalcontent-ui/user-controls.c:303 libmalcontent-ui/user-controls.c:388
+#: libmalcontent-ui/user-controls.c:641
msgid "All Ages"
msgstr "libovolný věk"
#. Translators: The placeholder is a user’s display name.
-#: libmalcontent-ui/user-controls.c:477
+#: libmalcontent-ui/user-controls.c:470
#, c-format
msgid ""
"Prevents %s from running web browsers. Limited web content may still be "
@@ -245,48 +203,48 @@ msgstr ""
"obsah může být stále dostupný v jiných aplikacích."
#. Translators: The placeholder is a user’s display name.
-#: libmalcontent-ui/user-controls.c:482
+#: libmalcontent-ui/user-controls.c:475
#, c-format
msgid "Prevents specified applications from being used by %s."
msgstr "Zabraňuje v používání určených aplikací uživatelem %s."
#. Translators: The placeholder is a user’s display name.
-#: libmalcontent-ui/user-controls.c:487
+#: libmalcontent-ui/user-controls.c:480
#, c-format
msgid "Prevents %s from installing applications."
msgstr "Zabraňuje uživateli %s v instalaci aplikací."
-#: libmalcontent-ui/user-controls.ui:16
+#: libmalcontent-ui/user-controls.ui:25
msgid "Application Usage Restrictions"
msgstr "Omezení použití aplikací"
-#: libmalcontent-ui/user-controls.ui:67
+#: libmalcontent-ui/user-controls.ui:28
msgid "Restrict _Web Browsers"
msgstr "Omezit _webové prohlížeče"
-#: libmalcontent-ui/user-controls.ui:151
+#: libmalcontent-ui/user-controls.ui:51
msgid "_Restrict Applications"
msgstr "Omezit _aplikace"
-#: libmalcontent-ui/user-controls.ui:230
+#: libmalcontent-ui/user-controls.ui:73
msgid "Software Installation Restrictions"
msgstr "Omezení instalace softwaru"
-#: libmalcontent-ui/user-controls.ui:280
+#: libmalcontent-ui/user-controls.ui:77
msgid "Restrict Application _Installation"
msgstr "Omezit _instalaci aplikací"
-#: libmalcontent-ui/user-controls.ui:365
+#: libmalcontent-ui/user-controls.ui:99
msgid "Application _Suitability"
msgstr "Vhodno_st aplikací"
-#: libmalcontent-ui/user-controls.ui:387
+#: libmalcontent-ui/user-controls.ui:102
msgid ""
-"Restricts browsing or installation of applications to applications suitable "
-"for certain ages or above."
+"Restricts the browsing or installation of applications unsuitable for this "
+"age or younger."
msgstr ""
-"Omezí prohlížení nebo instalaci aplikací na aplikace vhodné pro určitý věk "
-"nebo výše."
+"Omezí prohlížení nebo instalaci aplikací nevhodných pro tento věk nebo "
+"mladší."
#. Translators: This documents the --user command line option to malcontent-control:
#: malcontent-control/application.c:102
@@ -298,44 +256,44 @@ msgstr "Uživatel ke zvolení v UI"
msgid "USERNAME"
msgstr "UŽIVATEL"
-#: malcontent-control/application.c:115
+#: malcontent-control/application.c:116
msgid "— view and edit parental controls"
msgstr "— zobrazit a upravit rodičovskou kontrolu"
#. Translators: This is the title of the main window
#. Translators: the name of the application as it appears in a software center
-#: malcontent-control/application.c:122 malcontent-control/main.ui:12
+#: malcontent-control/application.c:123 malcontent-control/main.ui:17
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:9
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:3
msgid "Parental Controls"
msgstr "Rodičovská kontrola"
-#: malcontent-control/application.c:308
+#: malcontent-control/application.c:309
msgid "Copyright © 2019, 2020 Endless Mobile, Inc."
msgstr "Copyright © 2019, 2020 Endless Mobile, Inc."
#. Translators: this should be "translated" to the
#. names of people who have translated Malcontent into
#. this language, one per line.
-#: malcontent-control/application.c:313
+#: malcontent-control/application.c:314
msgid "translator-credits"
msgstr "Daniel Rusek "
#. Translators: "Malcontent" is the brand name of this
#. project, so should not be translated.
-#: malcontent-control/application.c:319
+#: malcontent-control/application.c:320
msgid "Malcontent Website"
msgstr "Webové stránky"
-#: malcontent-control/application.c:337
+#: malcontent-control/application.c:341
msgid "The help contents could not be displayed"
msgstr "Obsah nápovědy nemohl být zobrazen"
-#: malcontent-control/application.c:374
+#: malcontent-control/application.c:388
msgid "Failed to load user data from the system"
msgstr "Selhalo načtení uživatelských dat ze systému"
-#: malcontent-control/application.c:376
+#: malcontent-control/application.c:390
msgid "Please make sure that the AccountsService is installed and enabled."
msgstr "Ověřte prosím, že je AccountsService nainstalováno a povoleno."
@@ -348,7 +306,7 @@ msgstr "Ověřte prosím, že je AccountsService nainstalováno a povoleno."
#. * further!
#. * https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/new
#.
-#: malcontent-control/application.c:407
+#: malcontent-control/application.c:421
#, c-format
msgid ""
"It’s recommended that restrictions are set as part of an ongoing "
@@ -359,29 +317,29 @@ msgstr ""
"konverzace s %s. Přečtěte si návod na to, co je třeba vzít v úvahu."
-#: malcontent-control/carousel.ui:48
+#: malcontent-control/carousel.ui:38
msgid "Previous Page"
msgstr "Předchozí stránka"
-#: malcontent-control/carousel.ui:74
+#: malcontent-control/carousel.ui:57
msgid "Next Page"
msgstr "Následující stránka"
-#: malcontent-control/main.ui:115
+#: malcontent-control/main.ui:87
msgid "Permission Required"
msgstr "Vyžadováno oprávnění"
-#: malcontent-control/main.ui:129
+#: malcontent-control/main.ui:88
msgid ""
"Permission is required to view and change user parental controls settings."
msgstr ""
"Pro zobrazení a změnu rodičovské kontroly uživatele je nutné oprávnění."
-#: malcontent-control/main.ui:184
+#: malcontent-control/main.ui:110
msgid "No Standard User Accounts"
msgstr "Žádný běžný uživatelský účet"
-#: malcontent-control/main.ui:199
+#: malcontent-control/main.ui:111
msgid ""
"Parental controls can only be applied to standard user\n"
"accounts. These can be created in the user settings."
@@ -389,19 +347,19 @@ msgstr ""
"Rodičovská kontrola může být aplikována pouze na standardní uživatelské\n"
"účty. Ty mohou být vytvořeny v nastavení uživatelů."
-#: malcontent-control/main.ui:212
+#: malcontent-control/main.ui:115
msgid "_User Settings"
msgstr "Nastavení _uživatelů"
-#: malcontent-control/main.ui:242
+#: malcontent-control/main.ui:138
msgid "Loading…"
msgstr "Načítá se…"
-#: malcontent-control/main.ui:305
+#: malcontent-control/main.ui:171
msgid "_Help"
msgstr "_Nápověda"
-#: malcontent-control/main.ui:309
+#: malcontent-control/main.ui:175
msgid "_About Parental Controls"
msgstr "O _aplikaci Rodičovská kontrola"
@@ -426,7 +384,7 @@ msgstr ""
msgid "Main window"
msgstr "Hlavní okno"
-#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:38
+#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
msgid "The GNOME Project"
msgstr "Projekt GNOME"
@@ -474,6 +432,34 @@ msgstr "Uživatel ‘%s’ nemá žádný zbývající čas"
msgid "Error setting time limit on login session: %s"
msgstr "Chyba při nastavení časového limitu na přihlašovací sezení: %s"
+#, c-format
+#~ msgid "%s (%s)"
+#~ msgstr "%s (%s)"
+
+#~ msgid "General"
+#~ msgstr "Obecné"
+
+#~ msgid "ALL"
+#~ msgstr "VŠECHNY"
+
+#~ msgid "Adults Only"
+#~ msgstr "pouze dospělé"
+
+#~ msgid "Mature"
+#~ msgstr "plnoleté"
+
+#~ msgid "Teen"
+#~ msgstr "mládež"
+
+#~ msgid "Everyone 10+"
+#~ msgstr "všechny 10+"
+
+#~ msgid "Everyone"
+#~ msgstr "všechny"
+
+#~ msgid "Early Childhood"
+#~ msgstr "malé děti"
+
#~ msgid "No cartoon violence"
#~ msgstr "Žádné kreslené násilí"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 51dc139..34ab117 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -404,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"
diff --git a/po/ru.po b/po/ru.po
index 44d3d7a..c05a2cd 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,17 +8,17 @@ msgstr ""
"Project-Id-Version: malcontent\n"
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
"issues\n"
-"POT-Creation-Date: 2022-06-04 15:25+0000\n"
-"PO-Revision-Date: 2022-06-19 20:05+1000\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 \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"
-"X-Generator: Poedit 2.3\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"
@@ -177,78 +177,36 @@ msgstr ""
"Ограничение сеанса для пользователя %u имеет недопустимое ежедневное "
"расписание %u–%u"
-#. TRANSLATORS: This is the formatting of English and localized name
-#. of the rating e.g. "Adults Only (solo adultos)"
-#: libmalcontent-ui/gs-content-rating.c:75
-#, c-format
-msgid "%s (%s)"
-msgstr "%s (%s)"
-
-#: libmalcontent-ui/gs-content-rating.c:209
-msgid "General"
-msgstr "Общие"
-
-#: libmalcontent-ui/gs-content-rating.c:218
-msgid "ALL"
-msgstr "ВСЕ"
-
-#: libmalcontent-ui/gs-content-rating.c:222
-#: libmalcontent-ui/gs-content-rating.c:485
-msgid "Adults Only"
-msgstr "Только для взрослых"
-
-#: libmalcontent-ui/gs-content-rating.c:224
-#: libmalcontent-ui/gs-content-rating.c:484
-msgid "Mature"
-msgstr "Для повзрослевшых"
-
-#: libmalcontent-ui/gs-content-rating.c:226
-#: libmalcontent-ui/gs-content-rating.c:483
-msgid "Teen"
-msgstr "Для подростков"
-
-#: libmalcontent-ui/gs-content-rating.c:228
-#: libmalcontent-ui/gs-content-rating.c:482
-msgid "Everyone 10+"
-msgstr "Для всех старше 10"
-
-#: libmalcontent-ui/gs-content-rating.c:230
-#: libmalcontent-ui/gs-content-rating.c:481
-msgid "Everyone"
-msgstr "Для всех"
-
-#: libmalcontent-ui/gs-content-rating.c:232
-#: libmalcontent-ui/gs-content-rating.c:480
-msgid "Early Childhood"
-msgstr "Для маленьких"
-
#. Translators: the placeholder is a user’s full name
-#: libmalcontent-ui/restrict-applications-dialog.c:222
+#: libmalcontent-ui/restrict-applications-dialog.c:256
#, 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-dialog.ui:22
+msgid "Search for applications…"
+msgstr "Поиск приложений…"
+
+#: libmalcontent-ui/restrict-applications-selector.ui:13
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
+#: libmalcontent-ui/user-controls.c:198 libmalcontent-ui/user-controls.c:209
msgid "unknown"
msgstr "неизвестный"
-#: libmalcontent-ui/user-controls.c:312 libmalcontent-ui/user-controls.c:397
-#: libmalcontent-ui/user-controls.c:669
+#: libmalcontent-ui/user-controls.c:303 libmalcontent-ui/user-controls.c:388
+#: libmalcontent-ui/user-controls.c:641
msgid "All Ages"
msgstr "Все возрастные группы"
#. Translators: The placeholder is a user’s display name.
-#: libmalcontent-ui/user-controls.c:477
+#: libmalcontent-ui/user-controls.c:470
#, c-format
msgid ""
"Prevents %s from running web browsers. Limited web content may still be "
@@ -258,48 +216,48 @@ msgstr ""
"доступен в других приложениях."
#. Translators: The placeholder is a user’s display name.
-#: libmalcontent-ui/user-controls.c:482
+#: libmalcontent-ui/user-controls.c:475
#, c-format
msgid "Prevents specified applications from being used by %s."
msgstr "Запретить %s использование указанных приложений."
#. Translators: The placeholder is a user’s display name.
-#: libmalcontent-ui/user-controls.c:487
+#: libmalcontent-ui/user-controls.c:480
#, c-format
msgid "Prevents %s from installing applications."
msgstr "Запретить %s устанавливать приложения."
-#: libmalcontent-ui/user-controls.ui:16
+#: libmalcontent-ui/user-controls.ui:25
msgid "Application Usage Restrictions"
msgstr "Ограничения на использование приложений"
-#: libmalcontent-ui/user-controls.ui:68
+#: libmalcontent-ui/user-controls.ui:28
msgid "Restrict _Web Browsers"
msgstr "Ограничить доступ к _Веб-браузерам"
-#: libmalcontent-ui/user-controls.ui:152
+#: libmalcontent-ui/user-controls.ui:51
msgid "_Restrict Applications"
msgstr "_Ограничить доступ к приложениям"
-#: libmalcontent-ui/user-controls.ui:231
+#: libmalcontent-ui/user-controls.ui:73
msgid "Software Installation Restrictions"
msgstr "Ограничения на установку программного обеспечения"
-#: libmalcontent-ui/user-controls.ui:282
+#: libmalcontent-ui/user-controls.ui:77
msgid "Restrict Application _Installation"
msgstr "Ограничить _установку приложений"
-#: libmalcontent-ui/user-controls.ui:367
+#: libmalcontent-ui/user-controls.ui:99
msgid "Application _Suitability"
msgstr "_Пригодность приложений"
-#: libmalcontent-ui/user-controls.ui:389
+#: 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
@@ -317,7 +275,7 @@ 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:123 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"
@@ -332,7 +290,7 @@ msgstr "Copyright © 2019, 2020 Endless Mobile, Inc."
#. this language, one per line.
#: malcontent-control/application.c:314
msgid "translator-credits"
-msgstr "Ser82-png , 2022"
+msgstr "Ser82-png , 2022-2023"
#. Translators: "Malcontent" is the brand name of this
#. project, so should not be translated.
@@ -340,15 +298,15 @@ msgstr "Ser82-png , 2022"
msgid "Malcontent Website"
msgstr "Веб-сайт Malcontent"
-#: malcontent-control/application.c:338
+#: malcontent-control/application.c:341
msgid "The help contents could not be displayed"
msgstr "Содержание справки не может быть отображено"
-#: malcontent-control/application.c:375
+#: malcontent-control/application.c:388
msgid "Failed to load user data from the system"
msgstr "Не удалось загрузить пользовательские данные из системы"
-#: malcontent-control/application.c:377
+#: malcontent-control/application.c:390
msgid "Please make sure that the AccountsService is installed and enabled."
msgstr "Убедитесь, что служба AccountsService установлена и включена."
@@ -361,7 +319,7 @@ msgstr "Убедитесь, что служба AccountsService установл
#. * further!
#. * https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/new
#.
-#: malcontent-control/application.c:408
+#: malcontent-control/application.c:421
#, c-format
msgid ""
"It’s recommended that restrictions are set as part of an ongoing "
@@ -372,30 +330,30 @@ msgstr ""
"href='https://www.commonsensemedia.org/privacy-and-internet-"
"safety'>Ознакомьтесь с инструкцией о том, что нужно учитывать."
-#: malcontent-control/carousel.ui:48
+#: malcontent-control/carousel.ui:38
msgid "Previous Page"
msgstr "Предыдущая страница"
-#: malcontent-control/carousel.ui:74
+#: malcontent-control/carousel.ui:57
msgid "Next Page"
msgstr "Следующая страница"
-#: malcontent-control/main.ui:115
+#: malcontent-control/main.ui:87
msgid "Permission Required"
msgstr "Требуется разрешение"
-#: malcontent-control/main.ui:129
+#: malcontent-control/main.ui:88
msgid ""
"Permission is required to view and change user parental controls settings."
msgstr ""
"Требуется разрешение для просмотра и изменения настроек родительского "
"контроля пользователя."
-#: malcontent-control/main.ui:184
+#: malcontent-control/main.ui:110
msgid "No Standard User Accounts"
msgstr "Нет обычных учётных записей пользователей"
-#: malcontent-control/main.ui:199
+#: malcontent-control/main.ui:111
msgid ""
"Parental controls can only be applied to standard user\n"
"accounts. These can be created in the user settings."
@@ -403,19 +361,19 @@ msgstr ""
"Родительский контроль может быть применен только к обычным учётным\n"
"записям пользователей. Такие записи можно создать в настройках пользователя."
-#: malcontent-control/main.ui:212
+#: malcontent-control/main.ui:115
msgid "_User Settings"
msgstr "Настройки _пользователя"
-#: malcontent-control/main.ui:242
+#: malcontent-control/main.ui:138
msgid "Loading…"
msgstr "Загрузка…"
-#: malcontent-control/main.ui:305
+#: malcontent-control/main.ui:171
msgid "_Help"
msgstr "_Справка"
-#: malcontent-control/main.ui:309
+#: malcontent-control/main.ui:175
msgid "_About Parental Controls"
msgstr "_О родительском контроле"
@@ -454,7 +412,7 @@ msgid ""
"usage;usage limit;kid;child;"
msgstr ""
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
-"usage;usage limit;kid;child;родительский контроль;ребенок;"
+"usage;usage limit;kid;child;родительский контроль;ребенок;ограничение;"
#: malcontent-control/org.freedesktop.MalcontentControl.policy.in:9
msgid "Manage parental controls"
@@ -494,6 +452,34 @@ msgstr "У пользователя «%s» не осталось времени"
msgid "Error setting time limit on login session: %s"
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 "Отсутствуют сцены мультипликационного насилия"
diff --git a/po/sv.po b/po/sv.po
index b21b09c..95f9443 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,16 +1,16 @@
# Swedish translations for malcontent package.
-# Copyright (C) 2020 THE malcontent'S COPYRIGHT HOLDER
+# Copyright © 2020-2023 malcontent's COPYRIGHT HOLDER
# This file is distributed under the same license as the malcontent package.
# Automatically generated, 2020.
-# Anders Jonsson , 2020.
+# Anders Jonsson , 2020, 2023.
#
msgid ""
msgstr ""
"Project-Id-Version: malcontent\n"
"Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/pwithnall/malcontent/"
"issues\n"
-"POT-Creation-Date: 2020-12-09 03:28+0000\n"
-"PO-Revision-Date: 2020-12-17 18:28+0100\n"
+"POT-Creation-Date: 2023-10-13 16:18+0000\n"
+"PO-Revision-Date: 2023-10-20 21:11+0200\n"
"Last-Translator: Anders Jonsson \n"
"Language-Team: Swedish \n"
"Language: sv\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.4.2\n"
+"X-Generator: Poedit 3.4\n"
#: accounts-service/com.endlessm.ParentalControls.policy.in:4
msgid "Change your own app filter"
@@ -165,79 +165,36 @@ msgstr "Sessionsgräns för användare %u har en okänd typ ”%u”"
msgid "Session limit for user %u has invalid daily schedule %u–%u"
msgstr "Sessionsgräns för användare %u har ett ogiltigt dagsschema %u–%u"
-#. TRANSLATORS: This is the formatting of English and localized name
-#. of the rating e.g. "Adults Only (solo adultos)"
-#: libmalcontent-ui/gs-content-rating.c:75
-#, c-format
-msgid "%s (%s)"
-msgstr "%s (%s)"
-
-# Alla åldrar i MDA-systemet
-#: libmalcontent-ui/gs-content-rating.c:209
-msgid "General"
-msgstr "Alla"
-
-#: libmalcontent-ui/gs-content-rating.c:218
-msgid "ALL"
-msgstr "ALLA"
-
-#: libmalcontent-ui/gs-content-rating.c:222
-#: libmalcontent-ui/gs-content-rating.c:485
-msgid "Adults Only"
-msgstr "Endast för vuxna"
-
-#: libmalcontent-ui/gs-content-rating.c:224
-#: libmalcontent-ui/gs-content-rating.c:484
-msgid "Mature"
-msgstr "Mogen"
-
-#: libmalcontent-ui/gs-content-rating.c:226
-#: libmalcontent-ui/gs-content-rating.c:483
-msgid "Teen"
-msgstr "Tonåring"
-
-#: libmalcontent-ui/gs-content-rating.c:228
-#: libmalcontent-ui/gs-content-rating.c:482
-msgid "Everyone 10+"
-msgstr "Alla över 10 år"
-
-#: libmalcontent-ui/gs-content-rating.c:230
-#: libmalcontent-ui/gs-content-rating.c:481
-msgid "Everyone"
-msgstr "Alla"
-
-#: libmalcontent-ui/gs-content-rating.c:232
-#: libmalcontent-ui/gs-content-rating.c:480
-msgid "Early Childhood"
-msgstr "Tidig barndom"
-
#. Translators: the placeholder is a user’s full name
-#: libmalcontent-ui/restrict-applications-dialog.c:222
+#: libmalcontent-ui/restrict-applications-dialog.c:256
#, c-format
msgid "Restrict %s from using the following installed applications."
msgstr "Begränsa %s från att använda följande installerade program."
#: libmalcontent-ui/restrict-applications-dialog.ui:6
-#: libmalcontent-ui/restrict-applications-dialog.ui:12
msgid "Restrict Applications"
msgstr "Begränsa program"
-#: libmalcontent-ui/restrict-applications-selector.ui:24
+#: libmalcontent-ui/restrict-applications-dialog.ui:22
+msgid "Search for applications…"
+msgstr "Sök efter program…"
+
+#: libmalcontent-ui/restrict-applications-selector.ui:13
msgid "No applications found to restrict."
msgstr "Inga program att begränsa hittades."
#. Translators: this is the full name for an unknown user account.
-#: libmalcontent-ui/user-controls.c:207 libmalcontent-ui/user-controls.c:218
+#: libmalcontent-ui/user-controls.c:198 libmalcontent-ui/user-controls.c:209
msgid "unknown"
msgstr "okänd"
-#: libmalcontent-ui/user-controls.c:312 libmalcontent-ui/user-controls.c:397
-#: libmalcontent-ui/user-controls.c:669
+#: libmalcontent-ui/user-controls.c:303 libmalcontent-ui/user-controls.c:388
+#: libmalcontent-ui/user-controls.c:641
msgid "All Ages"
msgstr "Alla åldrar"
#. Translators: The placeholder is a user’s display name.
-#: libmalcontent-ui/user-controls.c:477
+#: libmalcontent-ui/user-controls.c:470
#, c-format
msgid ""
"Prevents %s from running web browsers. Limited web content may still be "
@@ -247,48 +204,48 @@ msgstr ""
"fortfarande finnas tillgängligt i andra program."
#. Translators: The placeholder is a user’s display name.
-#: libmalcontent-ui/user-controls.c:482
+#: libmalcontent-ui/user-controls.c:475
#, c-format
msgid "Prevents specified applications from being used by %s."
msgstr "Förhindrar angivna program från att användas av %s."
#. Translators: The placeholder is a user’s display name.
-#: libmalcontent-ui/user-controls.c:487
+#: libmalcontent-ui/user-controls.c:480
#, c-format
msgid "Prevents %s from installing applications."
msgstr "Förhindrar %s från att installera program."
-#: libmalcontent-ui/user-controls.ui:16
+#: libmalcontent-ui/user-controls.ui:25
msgid "Application Usage Restrictions"
msgstr "Begränsningar av programanvändning"
-#: libmalcontent-ui/user-controls.ui:67
+#: libmalcontent-ui/user-controls.ui:28
msgid "Restrict _Web Browsers"
msgstr "Begränsa _webbläsare"
-#: libmalcontent-ui/user-controls.ui:151
+#: libmalcontent-ui/user-controls.ui:51
msgid "_Restrict Applications"
msgstr "_Begränsa program"
-#: libmalcontent-ui/user-controls.ui:230
+#: libmalcontent-ui/user-controls.ui:73
msgid "Software Installation Restrictions"
msgstr "Begränsningar av programvaruinstallation"
-#: libmalcontent-ui/user-controls.ui:280
+#: libmalcontent-ui/user-controls.ui:77
msgid "Restrict Application _Installation"
msgstr "Begränsa _installation av program"
-#: libmalcontent-ui/user-controls.ui:365
+#: libmalcontent-ui/user-controls.ui:99
msgid "Application _Suitability"
msgstr "_Lämplighet för program"
-#: libmalcontent-ui/user-controls.ui:387
+#: libmalcontent-ui/user-controls.ui:102
msgid ""
-"Restricts browsing or installation of applications to applications suitable "
-"for certain ages or above."
+"Restricts the browsing or installation of applications unsuitable for this "
+"age or younger."
msgstr ""
-"Begränsar bläddring bland eller installation av program till program som är "
-"lämpliga för vissa åldrar och uppåt."
+"Begränsar bläddring bland eller installation av program som är olämpliga för "
+"denna ålder och yngre."
#. Translators: This documents the --user command line option to malcontent-control:
#: malcontent-control/application.c:102
@@ -300,44 +257,44 @@ msgstr "Användare att välja i användargränssnittet"
msgid "USERNAME"
msgstr "ANVÄNDARNAMN"
-#: malcontent-control/application.c:115
+#: malcontent-control/application.c:116
msgid "— view and edit parental controls"
msgstr "— visa och redigera föräldrakontroller"
#. Translators: This is the title of the main window
#. Translators: the name of the application as it appears in a software center
-#: malcontent-control/application.c:122 malcontent-control/main.ui:12
+#: malcontent-control/application.c:123 malcontent-control/main.ui:17
#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:9
#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:3
msgid "Parental Controls"
msgstr "Föräldrakontroller"
-#: malcontent-control/application.c:308
+#: malcontent-control/application.c:309
msgid "Copyright © 2019, 2020 Endless Mobile, Inc."
msgstr "Copyright © 2019, 2020 Endless Mobile, Inc."
#. Translators: this should be "translated" to the
#. names of people who have translated Malcontent into
#. this language, one per line.
-#: malcontent-control/application.c:313
+#: malcontent-control/application.c:314
msgid "translator-credits"
msgstr "Anders Jonsson "
#. Translators: "Malcontent" is the brand name of this
#. project, so should not be translated.
-#: malcontent-control/application.c:319
+#: malcontent-control/application.c:320
msgid "Malcontent Website"
msgstr "Webbplats för Malcontent"
-#: malcontent-control/application.c:337
+#: malcontent-control/application.c:341
msgid "The help contents could not be displayed"
msgstr "Hjälpinnehållet kunde inte visas"
-#: malcontent-control/application.c:374
+#: malcontent-control/application.c:388
msgid "Failed to load user data from the system"
msgstr "Misslyckades med att läsa in användardata från systemet"
-#: malcontent-control/application.c:376
+#: malcontent-control/application.c:390
msgid "Please make sure that the AccountsService is installed and enabled."
msgstr "Försäkra dig om att AccountsService är installerat och aktiverat."
@@ -350,7 +307,7 @@ msgstr "Försäkra dig om att AccountsService är installerat och aktiverat."
#. * further!
#. * https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/new
#.
-#: malcontent-control/application.c:407
+#: malcontent-control/application.c:421
#, c-format
msgid ""
"It’s recommended that restrictions are set as part of an ongoing "
@@ -362,30 +319,30 @@ msgstr ""
"internet-safety'>Du kan läsa denna guide (på engelska) om vad som finns "
"att ta i beaktande."
-#: malcontent-control/carousel.ui:48
+#: malcontent-control/carousel.ui:38
msgid "Previous Page"
msgstr "Föregående sida"
-#: malcontent-control/carousel.ui:74
+#: malcontent-control/carousel.ui:57
msgid "Next Page"
msgstr "Nästa sida"
-#: malcontent-control/main.ui:115
+#: malcontent-control/main.ui:87
msgid "Permission Required"
msgstr "Behörighet krävs"
-#: malcontent-control/main.ui:129
+#: malcontent-control/main.ui:88
msgid ""
"Permission is required to view and change user parental controls settings."
msgstr ""
"Behörighet krävs för att visa och ändra inställningar för föräldrakontroll "
"för användare."
-#: malcontent-control/main.ui:182
+#: malcontent-control/main.ui:110
msgid "No Standard User Accounts"
msgstr "Inga standardanvändarkonton"
-#: malcontent-control/main.ui:197
+#: malcontent-control/main.ui:111
msgid ""
"Parental controls can only be applied to standard user\n"
"accounts. These can be created in the user settings."
@@ -394,19 +351,19 @@ msgstr ""
"standardanvändarkonton. Dessa kan skapas i\n"
"användarinställningarna."
-#: malcontent-control/main.ui:210
+#: malcontent-control/main.ui:115
msgid "_User Settings"
msgstr "_Användarinställningar"
-#: malcontent-control/main.ui:238
+#: malcontent-control/main.ui:138
msgid "Loading…"
msgstr "Läser in…"
-#: malcontent-control/main.ui:301
+#: malcontent-control/main.ui:171
msgid "_Help"
msgstr "_Hjälp"
-#: malcontent-control/main.ui:305
+#: malcontent-control/main.ui:175
msgid "_About Parental Controls"
msgstr "_Om Föräldrakontroller"
@@ -431,12 +388,12 @@ msgstr ""
msgid "Main window"
msgstr "Huvudfönster"
-#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:38
+#: malcontent-control/org.freedesktop.MalcontentControl.appdata.xml.in:39
msgid "The GNOME Project"
msgstr "GNOME-projektet"
#. Translators: Search terms to find this application. Do NOT translate or localise the semicolons! The list MUST also end with a semicolon!
-#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:13
+#: malcontent-control/org.freedesktop.MalcontentControl.desktop.in:14
msgid ""
"parental controls;screen time;app restrictions;web browser restrictions;oars;"
"usage;usage limit;kid;child;"
@@ -478,26 +435,3 @@ msgstr "Användaren ”%s” har ingen återstående tid"
#, c-format
msgid "Error setting time limit on login session: %s"
msgstr "Fel vid inställning av tidsgräns på inloggningssession: %s"
-
-#~ msgid "Not allowed to query session limits data for user %u"
-#~ msgstr "Ej tillåtet att efterfråga sessionsgränsdata för användare %u"
-
-#~ msgid "Applications installed by %s will not appear for other users."
-#~ msgstr "Program installerade av %s kommer inte visas för andra användare."
-
-# Systeminstallation ej tillåtet, användaren kan bara installera åt sig själv
-#~ msgid "Restrict Application Installation for _Others"
-#~ msgstr "Begränsa installation av program åt _andra"
-
-#~ msgid "No Child Users Configured"
-#~ msgstr "Inga barnanvändare konfigurerade"
-
-#~ msgid ""
-#~ "No child users are currently set up on the system. Create one before "
-#~ "setting up their parental controls."
-#~ msgstr ""
-#~ "Inga barnanvändare har konfigurerats på systemet. Skapa en innan du "
-#~ "konfigurerar deras föräldrakontroller."
-
-#~ msgid "Create _Child User"
-#~ msgstr "Skapa _barnanvändare"