Merge branch 'main' into 0.3.0

This commit is contained in:
0xMRTT 2022-09-23 16:18:20 +02:00 committed by GitHub
commit 0fba835869
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 390 additions and 410 deletions

View file

@ -84,9 +84,8 @@ class FirefoxGnomeThemePlugin(IPlugin):
custom_settings = {"overwrite": True}
css = BASE
browser_row = Adw.EntryRow(
title="Path to the profile directory",
)
title="Path to the profile directory",
)
profile_dir = None
def activate(self):
@ -135,18 +134,18 @@ class FirefoxGnomeThemePlugin(IPlugin):
# Browser
self.browser_pref = Adw.PreferencesGroup()
self.browser_pref.set_title("Browser")
self.browser_pref.set_description("Choose where profiles are stored. If you don't know what this is, leave it as default, it will work in most cases.")
self.browser_pref.set_description(
"Choose where profiles are stored. If you don't know what this is, leave it as default, it will work in most cases."
)
self.browser_row = Adw.EntryRow(
title="Path to the directory where profiles are stored",
)
self.browser_row.set_text("~/.mozilla/firefox")
self.browser_row.set_show_apply_button(True)
self.browser_row.connect("apply", self.on_apply)
self.browser_pref.add(self.browser_row)
self.main_page.add(self.browser_pref)
self.window.add(self.main_page)
@ -160,12 +159,10 @@ class FirefoxGnomeThemePlugin(IPlugin):
else:
self.browser_row.remove_css_class("error")
def on_overwrite(self, widget, _):
# This is called when the user changes the overwrite setting
self.custom_settings["overwrite"] = not self.custom_settings["overwrite"]
def validate(self):
# Normally, it would be a good idea to validate the settings here
# But because there is only one setting and it can onbly be a boolean
@ -198,21 +195,38 @@ class FirefoxGnomeThemePlugin(IPlugin):
print("No profiles found")
return
else:
self.css = self.css.format(d_1=self.palette["dark_"]["1"], d_2=self.palette["dark_"]["2"], d_3=self.palette["dark_"]["3"], d_4=self.palette["dark_"]["4"],
l_1=self.palette["light_"]["1"], l_2=self.palette["light_"][
"2"], l_3=self.palette["light_"]["3"], l_4=self.palette["light_"]["4"],
bg=self.variables["window_bg_color"], fg=self.variables["window_fg_color"],
red=self.palette["red_"]["5"], grn=self.palette["green_"][
"5"], ylw=self.palette["yellow_"]["5"], blu=self.palette["blue_"]["5"],
pnk=self.palette["purple_"]["5"], cyn=self.palette["blue_"][
"5"], wht=self.palette["light_"]["5"], blk=self.palette["dark_"]["5"],
b_red=self.palette["red_"]["1"], b_grn=self.palette["green_"][
"1"], b_ylw=self.palette["yellow_"]["1"], b_blu=self.palette["blue_"]["1"],
b_pnk=self.palette["purple_"]["1"], b_cyn=self.palette["blue_"]["1"], b_wht=self.palette["light_"]["1"], b_blk=self.palette["dark_"]["1"])
self.css = self.css.format(
d_1=self.palette["dark_"]["1"],
d_2=self.palette["dark_"]["2"],
d_3=self.palette["dark_"]["3"],
d_4=self.palette["dark_"]["4"],
l_1=self.palette["light_"]["1"],
l_2=self.palette["light_"]["2"],
l_3=self.palette["light_"]["3"],
l_4=self.palette["light_"]["4"],
bg=self.variables["window_bg_color"],
fg=self.variables["window_fg_color"],
red=self.palette["red_"]["5"],
grn=self.palette["green_"]["5"],
ylw=self.palette["yellow_"]["5"],
blu=self.palette["blue_"]["5"],
pnk=self.palette["purple_"]["5"],
cyn=self.palette["blue_"]["5"],
wht=self.palette["light_"]["5"],
blk=self.palette["dark_"]["5"],
b_red=self.palette["red_"]["1"],
b_grn=self.palette["green_"]["1"],
b_ylw=self.palette["yellow_"]["1"],
b_blu=self.palette["blue_"]["1"],
b_pnk=self.palette["purple_"]["1"],
b_cyn=self.palette["blue_"]["1"],
b_wht=self.palette["light_"]["1"],
b_blk=self.palette["dark_"]["1"],
)
for profile in profiles:
profile = profile / "chrome" / "firefox-gnome-theme" / "customChrome.css"
profile = (
profile / "chrome" / "firefox-gnome-theme" / "customChrome.css"
)
if profile.exists():
if self.custom_settings["overwrite"]:
with open(profile, "w", encoding="utf-8") as f:

View file

@ -60,10 +60,7 @@ class GradienceApplication(Adw.Application):
settings = Gio.Settings.new(app_id)
def __init__(self):
super().__init__(
application_id=app_id,
flags=Gio.ApplicationFlags.FLAGS_NONE
)
super().__init__(application_id=app_id, flags=Gio.ApplicationFlags.FLAGS_NONE)
self.set_resource_base_path(rootdir)
self.portal = Xdp.Portal()
@ -180,8 +177,9 @@ class GradienceApplication(Adw.Application):
raise KeyError("variables")
if preset.get("palette") is None:
raise KeyError("palette")
presets_list[file_name.replace(".json", "")] \
= preset["name"]
presets_list[file_name.replace(".json", "")] = preset[
"name"
]
except Exception:
self.win.toast_overlay.add_toast(
Adw.Toast(title=_("Failed to load preset"))
@ -207,8 +205,9 @@ class GradienceApplication(Adw.Application):
raise KeyError("variables")
if preset.get("palette") is None:
raise KeyError("palette")
presets_list["user"][file_name.replace(".json", "")] \
= preset["name"]
presets_list["user"][file_name.replace(".json", "")] = preset[
"name"
]
except Exception:
self.win.toast_overlay.add_toast(
Adw.Toast(title=_("Failed to load preset"))
@ -398,59 +397,44 @@ class GradienceApplication(Adw.Application):
dark_theme = theme["schemes"]["dark"]
variable = {
"accent_color": self.rgba_from_argb(dark_theme.primary),
"accent_bg_color":
self.rgba_from_argb(dark_theme.primaryContainer),
"accent_fg_color":
self.rgba_from_argb(dark_theme.onPrimaryContainer),
"accent_bg_color": self.rgba_from_argb(dark_theme.primaryContainer),
"accent_fg_color": self.rgba_from_argb(dark_theme.onPrimaryContainer),
"destructive_color": self.rgba_from_argb(dark_theme.error),
"destructive_bg_color":
self.rgba_from_argb(dark_theme.errorContainer),
"destructive_bg_color": self.rgba_from_argb(dark_theme.errorContainer),
"destructive_fg_color": self.rgba_from_argb(
dark_theme.onErrorContainer
),
"success_color": self.rgba_from_argb(dark_theme.tertiary),
"success_bg_color": self.rgba_from_argb(dark_theme.onTertiary),
"success_fg_color":
self.rgba_from_argb(dark_theme.onTertiaryContainer),
"success_fg_color": self.rgba_from_argb(dark_theme.onTertiaryContainer),
"warning_color": self.rgba_from_argb(dark_theme.secondary),
"warning_bg_color":
self.rgba_from_argb(dark_theme.onSecondary),
"warning_fg_color":
self.rgba_from_argb(dark_theme.primary, "0.8"),
"warning_bg_color": self.rgba_from_argb(dark_theme.onSecondary),
"warning_fg_color": self.rgba_from_argb(dark_theme.primary, "0.8"),
"error_color": self.rgba_from_argb(dark_theme.error),
"error_bg_color":
self.rgba_from_argb(dark_theme.errorContainer),
"error_bg_color": self.rgba_from_argb(dark_theme.errorContainer),
"error_fg_color": self.rgba_from_argb(dark_theme.onError),
"window_bg_color": self.rgba_from_argb(dark_theme.surface),
"window_fg_color": self.rgba_from_argb(dark_theme.onSurface),
"view_bg_color": self.rgba_from_argb(dark_theme.surface),
"view_fg_color": self.rgba_from_argb(dark_theme.onSurface),
"headerbar_bg_color": self.rgba_from_argb(dark_theme.surface),
"headerbar_fg_color":
self.rgba_from_argb(dark_theme.onSurface),
"headerbar_fg_color": self.rgba_from_argb(dark_theme.onSurface),
"headerbar_border_color": self.rgba_from_argb(
dark_theme.primary, "0.8"
),
"headerbar_backdrop_color": "@window_bg_color",
"headerbar_shade_color":
self.rgba_from_argb(dark_theme.shadow),
"card_bg_color":
self.rgba_from_argb(dark_theme.primary, "0.05"),
"card_fg_color":
self.rgba_from_argb(dark_theme.onSecondaryContainer),
"headerbar_shade_color": self.rgba_from_argb(dark_theme.shadow),
"card_bg_color": self.rgba_from_argb(dark_theme.primary, "0.05"),
"card_fg_color": self.rgba_from_argb(dark_theme.onSecondaryContainer),
"card_shade_color": self.rgba_from_argb(dark_theme.shadow),
"dialog_bg_color":
self.rgba_from_argb(dark_theme.secondaryContainer),
"dialog_fg_color":
self.rgba_from_argb(dark_theme.onSecondaryContainer),
"popover_bg_color":
self.rgba_from_argb(dark_theme.secondaryContainer),
"dialog_bg_color": self.rgba_from_argb(dark_theme.secondaryContainer),
"dialog_fg_color": self.rgba_from_argb(dark_theme.onSecondaryContainer),
"popover_bg_color": self.rgba_from_argb(dark_theme.secondaryContainer),
"popover_fg_color": self.rgba_from_argb(
dark_theme.onSecondaryContainer
),
"shade_color": self.rgba_from_argb(dark_theme.shadow),
"scrollbar_outline_color":
self.rgba_from_argb(dark_theme.outline),
"scrollbar_outline_color": self.rgba_from_argb(dark_theme.outline),
}
else: # light
light_theme = theme["schemes"]["light"]
@ -459,38 +443,31 @@ class GradienceApplication(Adw.Application):
"accent_bg_color": self.rgba_from_argb(light_theme.primary),
"accent_fg_color": self.rgba_from_argb(light_theme.onPrimary),
"destructive_color": self.rgba_from_argb(light_theme.error),
"destructive_bg_color":
self.rgba_from_argb(light_theme.errorContainer),
"destructive_bg_color": self.rgba_from_argb(light_theme.errorContainer),
"destructive_fg_color": self.rgba_from_argb(
light_theme.onErrorContainer
),
"success_color": self.rgba_from_argb(light_theme.tertiary),
"success_bg_color":
self.rgba_from_argb(light_theme.tertiaryContainer),
"success_bg_color": self.rgba_from_argb(light_theme.tertiaryContainer),
"success_fg_color": self.rgba_from_argb(
light_theme.onTertiaryContainer
),
"warning_color": self.rgba_from_argb(light_theme.secondary),
"warning_bg_color":
self.rgba_from_argb(light_theme.secondaryContainer),
"warning_bg_color": self.rgba_from_argb(light_theme.secondaryContainer),
"warning_fg_color": self.rgba_from_argb(
light_theme.onSecondaryContainer
),
"error_color": self.rgba_from_argb(light_theme.error),
"error_bg_color":
self.rgba_from_argb(light_theme.errorContainer),
"error_bg_color": self.rgba_from_argb(light_theme.errorContainer),
"error_fg_color": self.rgba_from_argb(light_theme.onError),
"window_bg_color":
self.rgba_from_argb(light_theme.secondaryContainer),
"window_bg_color": self.rgba_from_argb(light_theme.secondaryContainer),
"window_fg_color": self.rgba_from_argb(light_theme.onSurface),
"view_bg_color":
self.rgba_from_argb(light_theme.secondaryContainer),
"view_bg_color": self.rgba_from_argb(light_theme.secondaryContainer),
"view_fg_color": self.rgba_from_argb(light_theme.onSurface),
"headerbar_bg_color": self.rgba_from_argb(
light_theme.secondaryContainer
),
"headerbar_fg_color":
self.rgba_from_argb(light_theme.onSurface),
"headerbar_fg_color": self.rgba_from_argb(light_theme.onSurface),
"headerbar_border_color": self.rgba_from_argb(
light_theme.primary, "0.8"
),
@ -498,24 +475,19 @@ class GradienceApplication(Adw.Application):
"headerbar_shade_color": self.rgba_from_argb(
light_theme.secondaryContainer
),
"card_bg_color":
self.rgba_from_argb(light_theme.primary, "0.05"),
"card_fg_color":
self.rgba_from_argb(light_theme.onSecondaryContainer),
"card_bg_color": self.rgba_from_argb(light_theme.primary, "0.05"),
"card_fg_color": self.rgba_from_argb(light_theme.onSecondaryContainer),
"card_shade_color": self.rgba_from_argb(light_theme.shadow),
"dialog_bg_color":
self.rgba_from_argb(light_theme.secondaryContainer),
"dialog_bg_color": self.rgba_from_argb(light_theme.secondaryContainer),
"dialog_fg_color": self.rgba_from_argb(
light_theme.onSecondaryContainer
),
"popover_bg_color":
self.rgba_from_argb(light_theme.secondaryContainer),
"popover_bg_color": self.rgba_from_argb(light_theme.secondaryContainer),
"popover_fg_color": self.rgba_from_argb(
light_theme.onSecondaryContainer
),
"shade_color": self.rgba_from_argb(light_theme.shadow),
"scrollbar_outline_color":
self.rgba_from_argb(light_theme.outline),
"scrollbar_outline_color": self.rgba_from_argb(light_theme.outline),
}
for key in variable:
@ -829,16 +801,12 @@ class GradienceApplication(Adw.Application):
pass
else:
with open(
os.path.join(gtk4_dir, "gtk.css.bak"),
"w",
encoding="utf-8"
os.path.join(gtk4_dir, "gtk.css.bak"), "w", encoding="utf-8"
) as file:
file.write(contents)
finally:
with open(
os.path.join(gtk4_dir, "gtk.css"),
"w",
encoding="utf-8"
os.path.join(gtk4_dir, "gtk.css"), "w", encoding="utf-8"
) as file:
file.write(gtk4_css)
@ -854,25 +822,19 @@ class GradienceApplication(Adw.Application):
contents = ""
try:
with open(
os.path.join(gtk3_dir, "gtk.css"),
"r",
encoding="utf-8"
os.path.join(gtk3_dir, "gtk.css"), "r", encoding="utf-8"
) as file:
contents = file.read()
except FileNotFoundError: # first run
pass
else:
with open(
os.path.join(gtk3_dir, "gtk.css.bak"),
"w",
encoding="utf-8"
os.path.join(gtk3_dir, "gtk.css.bak"), "w", encoding="utf-8"
) as file:
file.write(contents)
finally:
with open(
os.path.join(gtk3_dir, "gtk.css"),
"w",
encoding="utf-8"
os.path.join(gtk3_dir, "gtk.css"), "w", encoding="utf-8"
) as file:
file.write(gtk3_css)
@ -980,8 +942,8 @@ class GradienceApplication(Adw.Application):
artists=["David Lapshin https://github.com/daudix-UFO"],
designers=["David Lapshin https://github.com/daudix-UFO"],
# Translators: This is a place to put your credits (formats:
# "Name https://example.com" or "Name <email@example.com>",
# no quotes) and is not meant to be translated literally.
# "Name https://example.com" or "Name <email@example.com>",
# no quotes) and is not meant to be translated literally.
# TODO: Automate this process using CI, because not everyone knows
# about this
translator_credits="""Maxime V https://www.transifex.com/user/profile/Adaoh/

View file

@ -58,13 +58,7 @@ def get_user_flatpak_path():
return GLib.build_filenamev([userDataDir, "flatpak"])
def user_save_keyfile(
toast_overlay,
settings,
user_keyfile,
filename,
gtk_ver
):
def user_save_keyfile(toast_overlay, settings, user_keyfile, filename, gtk_ver):
try:
user_keyfile.save_to_file(filename)
except GLib.GError as e:
@ -83,13 +77,7 @@ def user_save_keyfile(
)
def global_save_keyfile(
toast_overlay,
settings,
global_keyfile,
filename,
gtk_ver
):
def global_save_keyfile(toast_overlay, settings, global_keyfile, filename, gtk_ver):
try:
global_keyfile.save_to_file(filename)
except GLib.GError as e:

View file

@ -22,14 +22,7 @@ class Preset:
name = "new_preset"
badges = {}
def __init__(
self,
name=None,
repo=None,
preset_path=None,
text=None,
preset=None
):
def __init__(self, name=None, repo=None, preset_path=None, text=None, preset=None):
if text: # load from ressource
self.load_preset(text=text)
elif preset: # css or dict

View file

@ -34,13 +34,7 @@ class GradienceOption(Adw.ActionRow):
explanation_button = Gtk.Template.Child("explanation-button")
explanation_label = Gtk.Template.Child("explanation-label")
def __init__(self,
name,
title,
explanation,
adw_gtk3_support="yes",
**kwargs
):
def __init__(self, name, title, explanation, adw_gtk3_support="yes", **kwargs):
super().__init__(**kwargs)
self.set_name(name)
@ -52,8 +46,10 @@ class GradienceOption(Adw.ActionRow):
elif adw_gtk3_support == "partial":
self.warning_button.add_css_class("warning")
self.warning_label.set_label(
_("This option is only partially supported by the adw-gtk3 \
theme.")
_(
"This option is only partially supported by the adw-gtk3 \
theme."
)
)
elif adw_gtk3_support == "no":
self.warning_button.add_css_class("error")

View file

@ -59,8 +59,9 @@ class GradiencePaletteShades(Adw.ActionRow):
Gtk.Application.get_default().is_ready
and kwargs.get("update_from") == "color_value"
):
Gtk.Application.get_default().palette[self.prefix][str(i)] = \
shades[str(i)]
Gtk.Application.get_default().palette[self.prefix][str(i)] = shades[
str(i)
]
if (
Gtk.Application.get_default().is_ready

View file

@ -46,7 +46,9 @@ class GradiencePluginRow(Adw.ActionRow):
self.plugins_list = plugins_list
self.plugin_object = plugin_object
if not os.path.exists(USER_PLUGIN_DIR / f"{self.plugin_object.plugin_id}.yapsy-plugin"):
if not os.path.exists(
USER_PLUGIN_DIR / f"{self.plugin_object.plugin_id}.yapsy-plugin"
):
self.remove_button.set_visible(False)
self.set_name(plugin_object.plugin_id)
@ -73,11 +75,9 @@ class GradiencePluginRow(Adw.ActionRow):
os.remove(plugin_yapsy_file)
except FileNotFoundError:
error_dialog = Adw.MessageDialog(
#transient_for=self.props.active_window,
# transient_for=self.props.active_window,
heading=_("Unable to remove"),
body=_(
"This is a system plugin, and cannot be removed. "
)
body=_("This is a system plugin, and cannot be removed. "),
)
error_dialog.add_response("close", _("Close"))
error_dialog.present()

View file

@ -34,6 +34,7 @@ SYSTEM_PLUGIN_DIR = os.path.join(
"plugins",
)
class GradiencePluginsList:
"""Represent the plugin group in Advanced"""
@ -113,8 +114,7 @@ class GradiencePluginsList:
def save(self):
saved = {}
for pluginInfo in self.pm.getAllPlugins():
saved[pluginInfo.plugin_object.plugin_id] = \
pluginInfo.plugin_object.save()
saved[pluginInfo.plugin_object.plugin_id] = pluginInfo.plugin_object.save()
return saved
def validate(self):

View file

@ -118,9 +118,7 @@ class GradiencePresetRow(Adw.ExpanderRow):
self.delete_toast.set_button_label(_("Undo"))
self.delete_toast.connect("dismissed", self.on_delete_toast_dismissed)
self.delete_toast.connect(
"button-clicked",
self.on_undo_button_clicked
)
"button-clicked", self.on_undo_button_clicked)
self.toast_overlay.add_toast(self.delete_toast)
@ -211,5 +209,3 @@ class GradiencePresetRow(Adw.ExpanderRow):
self.win.reload_pref_group()
self.delete_preset = True

View file

@ -62,10 +62,12 @@ class GradiencePresetWindow(Adw.Window):
custom_presets = {}
official_repositories = {
_("Official"):
"https://github.com/GradienceTeam/Community/raw/next/official.json",
_("Curated"):
"https://github.com/GradienceTeam/Community/raw/next/curated.json"
_(
"Official"
): "https://github.com/GradienceTeam/Community/raw/next/official.json",
_(
"Curated"
): "https://github.com/GradienceTeam/Community/raw/next/curated.json",
}
search_results_list = []
@ -291,8 +293,12 @@ class GradiencePresetWindow(Adw.Window):
Adw.Toast(title=_("Preset imported")))
else:
self.toast_overlay.add_toast(
Adw.Toast(title=_("Unsupported file format, must be \
.json"))
Adw.Toast(
title=_(
"Unsupported file format, must be \
.json"
)
)
)
self.reload_pref_group()
@ -330,8 +336,9 @@ class GradiencePresetWindow(Adw.Window):
raise KeyError("variables")
if preset.get("palette") is None:
raise KeyError("palette")
presets_list[file_name.replace(".json", "")] = \
preset["name"]
presets_list[file_name.replace(".json", "")] = preset[
"name"
]
except Exception:
self.toast_overlay.add_toast(
Adw.Toast(title=_("Failed to load preset"))
@ -356,8 +363,9 @@ class GradiencePresetWindow(Adw.Window):
raise KeyError("variables")
if preset.get("palette") is None:
raise KeyError("palette")
presets_list["user"][file_name.replace(".json", "")] \
= preset["name"]
presets_list["user"][file_name.replace(".json", "")] = preset[
"name"
]
except Exception:
self.toast_overlay.add_toast(
Adw.Toast(title=_("Failed to load preset"))

View file

@ -18,13 +18,7 @@
class GradienceSetting:
def __init__(self,
name,
title,
value_type,
explanation=None,
default_value=None
):
def __init__(self, name, title, value_type, explanation=None, default_value=None):
# TODO supported types:
# text
# integer

View file

@ -275,8 +275,10 @@ settings_schema = {
{
"name": "card_colors",
"title": _("Card Colors"),
"description": _("These colors are used for cards and boxed \
lists."),
"description": _(
"These colors are used for cards and boxed \
lists."
),
"variables": [
{
"name": "card_bg_color",

View file

@ -56,13 +56,13 @@ class GradienceWelcomeWindow(Adw.Window):
]
carousel_pages = [
"welcome", # 0
"release", # 1
"agreement", # 2
"gradience", # 3
"configure", # 4
"download", # 5
"finish", # 6
"welcome", # 0
"release", # 1
"agreement", # 2
"gradience", # 3
"configure", # 4
"download", # 5
"finish", # 6
]
page_welcome = Gtk.Template.Child()
@ -142,15 +142,15 @@ class GradienceWelcomeWindow(Adw.Window):
self.btn_next.set_visible(True)
self.btn_install.set_visible(False)
if self.update:
self.window.last_opened_version = \
self.window.settings.set_string("last-opened-version", version)
self.window.last_opened_version = self.window.settings.set_string(
"last-opened-version", version
)
self.btn_close.set_sensitive(True)
self.label_skip.set_visible(False)
self.next_page(index=5)
else:
self.next_page()
@staticmethod
def quit(widget=False):
sys.exit()

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-09-23 00:55+0000\n"
"POT-Creation-Date: 2022-09-23 12:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -19,7 +19,7 @@ msgstr ""
#: data/com.github.GradienceTeam.Gradience.desktop.in.in:3
#: data/com.github.GradienceTeam.Gradience.appdata.xml.in.in:5
#: data/ui/window.blp:5 gradience/main.py:923
#: data/ui/window.blp:5 gradience/main.py:931
msgid "Gradience"
msgstr ""
@ -28,7 +28,7 @@ msgid "Change the look of Adwaita, with ease."
msgstr ""
#: data/com.github.GradienceTeam.Gradience.appdata.xml.in.in:7
#: gradience/main.py:925
#: gradience/main.py:933
msgid "Gradience Team"
msgstr ""
@ -291,7 +291,7 @@ msgstr ""
#: data/ui/presets_manager_window.blp:143
#: gradience/presets_manager_window.py:122
#: gradience/presets_manager_window.py:421
#: gradience/presets_manager_window.py:428
msgid "Repositories"
msgstr ""
@ -413,7 +413,7 @@ msgstr ""
msgid "Next"
msgstr ""
#: data/ui/window.blp:23 gradience/main.py:592 gradience/window.py:140
#: data/ui/window.blp:23 gradience/main.py:592 gradience/window.py:141
msgid "Apply"
msgstr ""
@ -457,7 +457,7 @@ msgstr ""
msgid "GTK4 Widget Factory"
msgstr ""
#: data/ui/window.blp:160 gradience/presets_manager_window.py:376
#: data/ui/window.blp:160 gradience/presets_manager_window.py:380
msgid "Built-in Presets"
msgstr ""
@ -473,8 +473,8 @@ msgstr ""
msgid "Unexpected file error occurred"
msgstr ""
#: gradience/app_type_dialog.py:44 gradience/main.py:642 gradience/main.py:712
#: gradience/presets_manager_window.py:190
#: gradience/app_type_dialog.py:44 gradience/main.py:643 gradience/main.py:716
#: gradience/presets_manager_window.py:189
msgid "Cancel"
msgstr ""
@ -486,36 +486,36 @@ msgstr ""
msgid "Preset downloaded"
msgstr ""
#: gradience/main.py:184 gradience/main.py:212
#: gradience/presets_manager_window.py:340
#: gradience/presets_manager_window.py:367
#: gradience/main.py:185 gradience/main.py:213
#: gradience/presets_manager_window.py:344
#: gradience/presets_manager_window.py:371
msgid "Failed to load preset"
msgstr ""
#: gradience/main.py:249
#: gradience/main.py:250
msgid "Open in File Manager"
msgstr ""
#: gradience/main.py:256
#: gradience/main.py:257
msgid "Installed Presets"
msgstr ""
#: gradience/main.py:518
#: gradience/main.py:517
msgid "Unsaved changes"
msgstr ""
#: gradience/main.py:529
#: gradience/main.py:528
msgid "Save changes"
msgstr ""
#: gradience/main.py:587
#: gradience/main.py:586
msgid "Apply this color scheme?"
msgstr ""
#: gradience/main.py:589
#: gradience/main.py:588
msgid ""
"Warning: any custom CSS files for those app types will be irreversibly "
"overwritten!"
"Warning: any custom CSS files for those app types will be "
"\t\t\t\tirreversibly overwritten!"
msgstr ""
#: gradience/main.py:602
@ -542,69 +542,77 @@ msgstr ""
msgid "Save preset as..."
msgstr ""
#: gradience/main.py:629 gradience/main.py:656 gradience/main.py:672
#: gradience/main.py:699 gradience/main.py:729 gradience/main.py:745
#: gradience/main.py:629 gradience/main.py:702
#, python-brace-format
msgid ""
"Saving preset to <tt>{0}</tt>. If that preset already exists, it will be "
"overwritten!"
"Saving preset to <tt>{0}</tt>. If that preset already \t\t\t\texists, it "
"will be overwritten!"
msgstr ""
#: gradience/main.py:643 gradience/main.py:714
#: gradience/main.py:644 gradience/main.py:718
msgid "Save"
msgstr ""
#: gradience/main.py:697
#: gradience/main.py:657 gradience/main.py:674 gradience/main.py:733
#: gradience/main.py:750
#, python-brace-format
msgid ""
"Saving preset to <tt>{0}</tt>. If that preset \t\t\t\t\t\talready exists, it "
"will be overwritten!"
msgstr ""
#: gradience/main.py:700
msgid "You have unsaved changes!"
msgstr ""
#: gradience/main.py:713
#: gradience/main.py:717
msgid "Discard"
msgstr ""
#: gradience/main.py:772
#: gradience/main.py:778
msgid "Preset saved"
msgstr ""
#: gradience/main.py:837
#: gradience/main.py:845
msgid "Preset set sucessfully"
msgstr ""
#: gradience/main.py:880
#: gradience/main.py:888
msgid "Could not restore GTK4 backup"
msgstr ""
#: gradience/main.py:913
#: gradience/main.py:921
msgid "Preset reseted"
msgstr ""
#: gradience/main.py:957
#: gradience/main.py:965
msgid ""
"\n"
" <ul>\n"
" <li>Add AdwViewSwitcher in the header bar.</li>\n"
" <li>Move CSS to the \"Advanced\" tab</li>\n"
" <li>Move the rest to the \"Colours\" tab</li>\n"
" <li>Add Monet tab which generates a theme from a background</li>\n"
" <li>Add disk saved and disk unsaved icon in the header bar</li>\n"
" <li>Update about dialog</li>\n"
" <li>Change license to GNU GPLv3</li>\n"
" <li>Begin plugin support</li>\n"
" <li>Move preset selector to a drop-down called palette (icon "
"palette)</li>\n"
" <li>Add ability to apply the theme onlyfor dark theme or oy for "
"light theme</li>\n"
" <li>Automaticly use Adwaita-dark preset if the user prefered scheme "
"is dark.</li>\n"
" <li>Added Flatpak CI build</li>\n"
" <li>Added issue template for bug and feature request </li>\n"
" <li>`Main` branch is now protected by GitHub branch protection. The "
"development is done on `next` branch </li>\n"
" </ul>\n"
" "
" \t\t<li>Add AdwViewSwitcher in the header bar.</li>\n"
" \t\t<li>Move CSS to the \"Advanced\" tab</li>\n"
" \t\t<li>Move the rest to the \"Colours\" tab</li>\n"
" \t\t<li>Add Monet tab which generates a theme from a background\n"
"\t\t\t\t\t</li>\n"
" \t\t<li>Add disk saved and disk unsaved icon in the header bar</li>\n"
" \t\t<li>Update about dialog</li>\n"
" \t\t<li>Change license to GNU GPLv3</li>\n"
" \t\t<li>Begin plugin support</li>\n"
" \t\t<li>Move preset selector to a drop-down called palette (icon "
"\t\t\t\t\tpalette)</li>\n"
" \t\t<li>Add ability to apply the theme onlyfor dark theme or oy "
"\t\t\t\t\tfor light theme</li>\n"
" \t\t<li>Automaticly use Adwaita-dark preset if the user prefered "
"\t\t\t\t\tscheme is dark.</li>\n"
" \t\t<li>Added Flatpak CI build</li>\n"
" \t\t<li>Added issue template for bug and feature request </li>\n"
" \t\t<li>`Main` branch is now protected by GitHub branch "
"\t\t\t\t\tprotection. The development is done on `next` branch </li>\n"
" \t\t</ul>\n"
" \t"
msgstr ""
#: gradience/main.py:977
#: gradience/main.py:990
msgid ""
"\n"
"Gradience is a tool for customizing Libadwaita applications and the adw-gtk3 "
@ -621,45 +629,58 @@ msgid ""
" "
msgstr ""
#: gradience/option.py:49
msgid "This option is only partially supported by the adw-gtk3 theme."
#: gradience/option.py:50
msgid ""
"This option is only partially supported by the adw-gtk3 \t\t\t\t\ttheme."
msgstr ""
#: gradience/option.py:54
#: gradience/option.py:57
msgid "This option is not supported by the adw-gtk3 theme."
msgstr ""
#: gradience/option.py:97
#: gradience/option.py:100
msgid "Not a color, see text value"
msgstr ""
#: gradience/plugin_row.py:79
msgid "Unable to remove"
msgstr ""
#: gradience/plugin_row.py:80
msgid "This is a system plugin, and cannot be removed. "
msgstr ""
#: gradience/plugin_row.py:82
msgid "Close"
msgstr ""
#: gradience/plugins_list.py:95
msgid "Plugins"
msgstr ""
#: gradience/plugins_list.py:98
msgid ""
"Plugins add additional features to Gradience, plugins are made by Gradience "
"community and can make issues."
"Plugins add additional features to Gradience, plugins are \t\t\t\tmade by "
"Gradience community and can make issues."
msgstr ""
#: gradience/plugins_list.py:109
msgid "No plugins found"
#: gradience/plugins_list.py:110
msgid "No plugins found."
msgstr ""
#: gradience/preset_row.py:112
#: gradience/preset_row.py:117
msgid "Preset removed"
msgstr ""
#: gradience/preset_row.py:113
#: gradience/preset_row.py:118
msgid "Undo"
msgstr ""
#: gradience/preset_row.py:138
#: gradience/preset_row.py:142
msgid "Pending deletion"
msgstr ""
#: gradience/preset_row.py:174
#: gradience/preset_row.py:181
msgid "Unable to delete preset"
msgstr ""
@ -667,7 +688,7 @@ msgstr ""
msgid "Official"
msgstr ""
#: gradience/presets_manager_window.py:83
#: gradience/presets_manager_window.py:69
msgid "Curated"
msgstr ""
@ -676,44 +697,44 @@ msgid "Builtin Presets"
msgstr ""
#: gradience/presets_manager_window.py:116
#: gradience/presets_manager_window.py:383
#: gradience/presets_manager_window.py:387
msgid "User Presets"
msgstr ""
#: gradience/presets_manager_window.py:183
#: gradience/presets_manager_window.py:182
msgid "Add new repository"
msgstr ""
#: gradience/presets_manager_window.py:184
#: gradience/presets_manager_window.py:183
msgid "Add a repository to install additional presets"
msgstr ""
#: gradience/presets_manager_window.py:191
#: gradience/presets_manager_window.py:190
msgid "Add"
msgstr ""
#: gradience/presets_manager_window.py:279
#: gradience/presets_manager_window.py:278
msgid "Preset already exists"
msgstr ""
#: gradience/presets_manager_window.py:294
#: gradience/presets_manager_window.py:293
msgid "Preset imported"
msgstr ""
#: gradience/presets_manager_window.py:297
msgid "Unsupported file format, must be .json"
#: gradience/presets_manager_window.py:298
msgid "Unsupported file format, must be \t\t\t\t\t\t.json"
msgstr ""
#: gradience/presets_manager_window.py:386
#: gradience/presets_manager_window.py:390
msgid ""
"See <a href=\"https://github.com/GradienceTeam/Community\">GradienceTeam/"
"Community</a> on Github for more presets"
"See \t\t\t\t<a href=\"https://github.com/GradienceTeam/"
"Community\">GradienceTeam/Community</a> \t\t\t\ton Github for more presets"
msgstr ""
#: gradience/presets_manager_window.py:411
#: gradience/presets_manager_window.py:417
msgid ""
"No preset found! Use the import button to import one or search one on the "
"Explore tab"
"No preset found! Use the import button to import one or \t\t\t\t\tsearch one "
"on the Explore tab"
msgstr ""
#: gradience/repo_row.py:60
@ -726,236 +747,241 @@ msgstr ""
#: gradience/settings_schema.py:25
msgid ""
"These colors are used across many different widgets, such as buttons, "
"labels, and entries, to indicate that a widget is important, interactive, or "
"currently active."
"These colors are used across many different widgets, such as "
"\t\t\t\tbuttons, labels, and entries, to indicate that a widget is "
"\t\t\t\timportant, interactive, or currently active."
msgstr ""
#: gradience/settings_schema.py:30 gradience/settings_schema.py:57
#: gradience/settings_schema.py:84 gradience/settings_schema.py:111
#: gradience/settings_schema.py:138
#: gradience/settings_schema.py:32 gradience/settings_schema.py:63
#: gradience/settings_schema.py:95 gradience/settings_schema.py:127
#: gradience/settings_schema.py:158
msgid "Standalone Color"
msgstr ""
#: gradience/settings_schema.py:32 gradience/settings_schema.py:59
#: gradience/settings_schema.py:86 gradience/settings_schema.py:113
#: gradience/settings_schema.py:140
#: gradience/settings_schema.py:34 gradience/settings_schema.py:65
#: gradience/settings_schema.py:97 gradience/settings_schema.py:129
#: gradience/settings_schema.py:160
msgid ""
"The standalone colors are similar to the background ones, but provide better "
"contrast when used as foreground color on top of a neutral background - for "
"example, colorful text in a window."
"The standalone colors are similar to the background \t\t\t\t\t\tones, but "
"provide better contrast when used as \t\t\t\t\t\tforeground color on top of "
"a neutral background - for \t\t\t\t\t\texample, colorful text in a window."
msgstr ""
#: gradience/settings_schema.py:38 gradience/settings_schema.py:65
#: gradience/settings_schema.py:92 gradience/settings_schema.py:119
#: gradience/settings_schema.py:146 gradience/settings_schema.py:163
#: gradience/settings_schema.py:182 gradience/settings_schema.py:201
#: gradience/settings_schema.py:242 gradience/settings_schema.py:267
#: gradience/settings_schema.py:284
#: gradience/settings_schema.py:43 gradience/settings_schema.py:74
#: gradience/settings_schema.py:106 gradience/settings_schema.py:138
#: gradience/settings_schema.py:169 gradience/settings_schema.py:186
#: gradience/settings_schema.py:206 gradience/settings_schema.py:227
#: gradience/settings_schema.py:285 gradience/settings_schema.py:312
#: gradience/settings_schema.py:329
msgid "Background Color"
msgstr ""
#: gradience/settings_schema.py:43 gradience/settings_schema.py:70
#: gradience/settings_schema.py:97 gradience/settings_schema.py:124
#: gradience/settings_schema.py:151 gradience/settings_schema.py:168
#: gradience/settings_schema.py:187 gradience/settings_schema.py:206
#: gradience/settings_schema.py:247 gradience/settings_schema.py:272
#: gradience/settings_schema.py:289
#: gradience/settings_schema.py:48 gradience/settings_schema.py:79
#: gradience/settings_schema.py:111 gradience/settings_schema.py:143
#: gradience/settings_schema.py:174 gradience/settings_schema.py:191
#: gradience/settings_schema.py:211 gradience/settings_schema.py:232
#: gradience/settings_schema.py:290 gradience/settings_schema.py:317
#: gradience/settings_schema.py:334
msgid "Foreground Color"
msgstr ""
#: gradience/settings_schema.py:50
#: gradience/settings_schema.py:55
msgid "Destructive Colors"
msgstr ""
#: gradience/settings_schema.py:52
#: gradience/settings_schema.py:57
msgid ""
"These colors are used for buttons to indicate a dangerous action, such as "
"deleting a file."
"These colors are used for buttons to indicate a dangerous \t\t\t\taction, "
"such as deleting a file."
msgstr ""
#: gradience/settings_schema.py:77
#: gradience/settings_schema.py:86
msgid "Success Colors"
msgstr ""
#: gradience/settings_schema.py:79
#: gradience/settings_schema.py:88
msgid ""
"These colors are used across many different widgets, such as buttons, "
"labels, entries, and level bars, to indicate a success or a high level."
"These colors are used across many different widgets, such as "
"\t\t\t\tbuttons, labels, entries, and level bars, to indicate a "
"\t\t\t\tsuccess or a high level."
msgstr ""
#: gradience/settings_schema.py:104
#: gradience/settings_schema.py:118
msgid "Warning Colors"
msgstr ""
#: gradience/settings_schema.py:106
#: gradience/settings_schema.py:120
msgid ""
"These colors are used across many different widgets, such as buttons, "
"labels, entries, and level bars, to indicate a warning or a low level."
"These colors are used across many different widgets, such as "
"\t\t\t\tbuttons, labels, entries, and level bars, to indicate a "
"\t\t\t\twarning or a low level."
msgstr ""
#: gradience/settings_schema.py:131
#: gradience/settings_schema.py:150
msgid "Error Colors"
msgstr ""
#: gradience/settings_schema.py:133
#: gradience/settings_schema.py:152
msgid ""
"These colors are used across many different widgets, such as buttons, "
"labels, and entries, to indicate a failure."
"These colors are used across many different widgets, such as "
"\t\t\t\tbuttons, labels, and entries, to indicate a failure."
msgstr ""
#: gradience/settings_schema.py:158
#: gradience/settings_schema.py:181
msgid "Window Colors"
msgstr ""
#: gradience/settings_schema.py:159
#: gradience/settings_schema.py:182
msgid "These colors are used primarily for windows."
msgstr ""
#: gradience/settings_schema.py:175
#: gradience/settings_schema.py:198
msgid "View Colors"
msgstr ""
#: gradience/settings_schema.py:177
#: gradience/settings_schema.py:200
msgid ""
"These colors are used in a variety of widgets, such as text views and "
"entries."
"These colors are used in a variety of widgets, such as text \t\t\t\tviews "
"and entries."
msgstr ""
#: gradience/settings_schema.py:194
#: gradience/settings_schema.py:218
msgid "Header Bar Colors"
msgstr ""
#: gradience/settings_schema.py:196
#: gradience/settings_schema.py:220
msgid ""
"These colors are used for header bars, as well as widgets that are meant to "
"be visually attached to it, such as search bars or tab bars."
msgstr ""
#: gradience/settings_schema.py:211
msgid "Border Color"
msgstr ""
#: gradience/settings_schema.py:213
msgid ""
"The border color has the same default value as a foreground color, but "
"doesn't change along with it. This can be useful if a light window has a "
"dark header bar with light text; in this case it may be desirable to keep "
"the border dark. This variable is only used for vertical borders - for "
"example, separators between the two header bars in a split header bar layout."
msgstr ""
#: gradience/settings_schema.py:219
msgid "Backdrop Color"
msgstr ""
#: gradience/settings_schema.py:221
msgid ""
"The backdrop color is used instead of the background color when the window "
"is not focused. By default it's an alias of the window's background color "
"and changes together with it. When changing this variable, make sure to set "
"it to a value matching your header bar background color."
msgstr ""
#: gradience/settings_schema.py:227 gradience/settings_schema.py:252
#: gradience/settings_schema.py:301
msgid "Shade Color"
msgstr ""
#: gradience/settings_schema.py:229
msgid ""
"The shade color is used to provide a dark border for header bars and similar "
"widgets that separates them from the main window."
"These colors are used for header bars, as well as widgets \t\t\t\tthat are "
"meant to be visually attached to it, such as search \t\t\t\tbars or tab bars."
msgstr ""
#: gradience/settings_schema.py:237
msgid "Card Colors"
msgid "Border Color"
msgstr ""
#: gradience/settings_schema.py:238
msgid "These colors are used for cards and boxed lists."
#: gradience/settings_schema.py:239
msgid ""
"The border color has the same default value as a \t\t\t\t\t\tforeground "
"color, but doesn't change along with it. \t\t\t\t\t\tThis can be useful if a "
"light window has a dark \t\t\t\t\t\theader bar with light text; in this case "
"it may be \t\t\t\t\t\tdesirable to keep the border dark. This variable is "
"\t\t\t\t\t\tonly used for vertical borders - for example, "
"\t\t\t\t\t\tseparators between the two header bars in a split "
"\t\t\t\t\t\theader bar layout."
msgstr ""
#: gradience/settings_schema.py:252
msgid "Backdrop Color"
msgstr ""
#: gradience/settings_schema.py:254
msgid ""
"The shade color is used for shadows that are used by cards to separate "
"themselves from the window background, as well as for row dividers in the "
"cards."
"The backdrop color is used instead of the background \t\t\t\t\t\tcolor when "
"the window is not focused. By default it's \t\t\t\t\t\tan alias of the "
"window's background color and changes \t\t\t\t\t\ttogether with it. When "
"changing this variable, make \t\t\t\t\t\tsure to set it to a value matching "
"your header bar \t\t\t\t\t\tbackground color."
msgstr ""
#: gradience/settings_schema.py:262
msgid "Dialog Colors"
#: gradience/settings_schema.py:265 gradience/settings_schema.py:295
#: gradience/settings_schema.py:346
msgid "Shade Color"
msgstr ""
#: gradience/settings_schema.py:263
msgid "These colors are used for message dialogs."
#: gradience/settings_schema.py:267
msgid ""
"The shade color is used to provide a dark border for \t\t\t\t\t\theader bars "
"and similar widgets that separates them \t\t\t\t\t\tfrom the main window."
msgstr ""
#: gradience/settings_schema.py:277
msgid "Card Colors"
msgstr ""
#: gradience/settings_schema.py:279
msgid "Popover Colors"
msgstr ""
#: gradience/settings_schema.py:280
msgid "These colors are used for popovers."
msgstr ""
#: gradience/settings_schema.py:296
msgid "Miscalleneous Colors"
msgid "These colors are used for cards and boxed \t\t\t\tlists."
msgstr ""
#: gradience/settings_schema.py:297
msgid "Colors that don't fit in any particular group."
msgstr ""
#: gradience/settings_schema.py:303
msgid ""
"The shade color is used by inline tab bars, as well as the transitions in "
"leaflets and flaps, and info bar borders."
"The shade color is used for shadows that are used by \t\t\t\t\t\tcards to "
"separate themselves from the window \t\t\t\t\t\tbackground, as well as for "
"row dividers in the cards."
msgstr ""
#: gradience/settings_schema.py:309
msgid "Scrollbar Outline Color"
#: gradience/settings_schema.py:307
msgid "Dialog Colors"
msgstr ""
#: gradience/settings_schema.py:311
msgid ""
"The scrollbar outline color is used by scrollbars to ensure that overlay "
"scrollbars are visible regardless of the content color."
msgstr ""
#: gradience/settings_schema.py:319
msgid "Blue"
msgstr ""
#: gradience/settings_schema.py:320
msgid "Green"
msgstr ""
#: gradience/settings_schema.py:321
msgid "Yellow"
msgstr ""
#: gradience/settings_schema.py:322
msgid "Orange"
msgstr ""
#: gradience/settings_schema.py:323
msgid "Red"
#: gradience/settings_schema.py:308
msgid "These colors are used for message dialogs."
msgstr ""
#: gradience/settings_schema.py:324
msgid "Purple"
msgid "Popover Colors"
msgstr ""
#: gradience/settings_schema.py:325
msgid "These colors are used for popovers."
msgstr ""
#: gradience/settings_schema.py:341
msgid "Miscalleneous Colors"
msgstr ""
#: gradience/settings_schema.py:342
msgid "Colors that don't fit in any particular group."
msgstr ""
#: gradience/settings_schema.py:348
msgid ""
"The shade color is used by inline tab bars, as well \t\t\t\t\t\tas the "
"transitions in leaflets and flaps, and info \t\t\t\t\t\tbar borders."
msgstr ""
#: gradience/settings_schema.py:356
msgid "Scrollbar Outline Color"
msgstr ""
#: gradience/settings_schema.py:358
msgid ""
"The scrollbar outline color is used by scrollbars to \t\t\t\t\t\tensure that "
"overlay scrollbars are visible regardless \t\t\t\t\t\tof the content color."
msgstr ""
#: gradience/settings_schema.py:368
msgid "Blue"
msgstr ""
#: gradience/settings_schema.py:369
msgid "Green"
msgstr ""
#: gradience/settings_schema.py:370
msgid "Yellow"
msgstr ""
#: gradience/settings_schema.py:371
msgid "Orange"
msgstr ""
#: gradience/settings_schema.py:372
msgid "Red"
msgstr ""
#: gradience/settings_schema.py:373
msgid "Purple"
msgstr ""
#: gradience/settings_schema.py:374
msgid "Brown"
msgstr ""
#: gradience/settings_schema.py:326
#: gradience/settings_schema.py:375
msgid "Light"
msgstr ""
#: gradience/settings_schema.py:327
#: gradience/settings_schema.py:376
msgid "Dark"
msgstr ""
@ -965,49 +991,49 @@ msgstr ""
#: gradience/window.py:135
msgid ""
"Monet is an engine that generates a Material Design 3 palette from an "
"image's color."
"Monet is an engine that generates a Material Design 3 \t\t\t\tpalette from "
"an image's color."
msgstr ""
#: gradience/window.py:146
#: gradience/window.py:147
msgid "Background Image"
msgstr ""
#: gradience/window.py:156
#: gradience/window.py:157
msgid "Choose a file"
msgstr ""
#: gradience/window.py:176
#: gradience/window.py:177
msgid "Monet Palette"
msgstr ""
#: gradience/window.py:183
#: gradience/window.py:184
msgid "Tone"
msgstr ""
#: gradience/window.py:195
#: gradience/window.py:196
msgid "Theme"
msgstr ""
#: gradience/window.py:222
#: gradience/window.py:223
msgid "Unsupported background type"
msgstr ""
#: gradience/window.py:239
#: gradience/window.py:240
msgid "Palette generated"
msgstr ""
#: gradience/window.py:243
#: gradience/window.py:244
msgid "Select a background first"
msgstr ""
#: gradience/window.py:268
#: gradience/window.py:269
msgid "Palette Colors"
msgstr ""
#: gradience/window.py:271
#: gradience/window.py:272
msgid ""
"Named palette colors used by some applications. Default colors follow the <a "
"href=\"https://developer.gnome.org/hig/reference/palette.html\">GNOME Human "
"Interface Guidelines</a>."
"Named palette colors used by some applications. Default \t\t\t\tcolors "
"follow the \t\t\t\t<a href=\"https://developer.gnome.org/hig/reference/"
"palette.html\">\t\t\t\t\tGNOME Human Interface Guidelines</a>."
msgstr ""