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. - + + vertical + 12 + + + Search for 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"