Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[4.0][RFC] svg icons instead of the ugly gif #21410

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion build/build-modules-js/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,14 @@
"editor-codemirror",
"hidden-mail",
"editor-none",
"toolbar-button"
"toolbar-button",
"language-flag"
],
"webcomponents": {
"language-flag": {
"css": "media/system/webcomponents/css",
"js": "media/system/webcomponents/js"
},
"field-media": {
"css": "media/system/webcomponents/css",
"js": "media/system/webcomponents/js"
Expand Down
21 changes: 10 additions & 11 deletions build/media/mod_languages/css/template.css
Original file line number Diff line number Diff line change
@@ -1,26 +1,25 @@
div.mod-languages ul {
.mod-languages__list {
margin: 0;
padding: 0;
list-style:none;
list-style: none;
}
div.mod-languages li {

.mod-languages__list li {
margin-left: 5px;
margin-right: 5px;
}

div.mod-languages ul.lang-inline li {
.mod-languages__list.lang-inline {
margin: 0;
padding: 0;
list-style: none;
display:inline-block;
}

div.mod-languages ul.lang-block li {
.mod-languages__list > .lang-block {
display:block;
}

div.mod-languages img {
border:none;
display:inline-block;
}

div.mod-languages a {
.mod-languages__list > a {
text-decoration: none;
}
Binary file removed build/media/mod_languages/images/af.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/af_za.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/al.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/ar.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/ar_aa.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/at.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/az.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/az_az.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/be.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/be_by.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/belg.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/bg.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/bg_bg.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/bn.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/bn_bd.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/br.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/br_fr.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/bs.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/bs_ba.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/ca.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/ca_es.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/cbk_iq.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/ch.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/cs.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/cs_cz.gif
Binary file not shown.
Binary file removed build/media/mod_languages/images/cy.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/cy_gb.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/cz.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/cz_cz.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/da.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/da_dk.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/de.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/de_at.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/de_ch.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/de_de.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/de_li.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/de_lu.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/dk.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/dz_bt.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/el.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/el_gr.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/en.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/en_au.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/en_ca.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/en_gb.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/en_nz.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/en_us.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/eo.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/eo_xx.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/es.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/es_co.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/es_es.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/et.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/et_ee.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/eu_es.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/fa.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/fa_ir.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/fi.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/fi_fi.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/fr.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/fr_ca.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/fr_fr.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ga_ie.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/gd.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/gd_gb.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/gl.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/gl_es.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/he.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/he_il.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/hi.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/hi_in.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/hk.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/hk_hk.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/hr.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/hr_hr.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/hu.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/hu_hu.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/hy.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/hy_am.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/icon-16-language.png
Diff not rendered.
Binary file removed build/media/mod_languages/images/id.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/id_id.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/is.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/is_is.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/it.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/it_it.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ja.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ja_jp.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ka.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ka_ge.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/km.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/km_kh.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ko.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ko_kr.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ku.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/lo.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/lo_la.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/lt.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/lt_lt.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/lv.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/lv_lv.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/mk.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/mk_mk.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/mn.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/mn_mn.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ms_my.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/nb_no.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/nl.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/nl_be.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/nl_nl.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/nn_no.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/no.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/pl.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/pl_pl.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/prs_af.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ps.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ps_af.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/pt.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/pt_br.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/pt_pt.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ro.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ro_ro.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ru.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ru_ru.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/si.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/si_lk.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sk.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sk_sk.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sl.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sl_si.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sq_al.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sr.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sr_rs.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sr_yu.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/srp_me.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sv.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sv_se.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sw.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sw_ke.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sy.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/sy_iq.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ta.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ta_in.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/th.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/th_th.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/tk_tm.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/tr.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/tr_tr.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/tw.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ug_cn.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/uk.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/uk_ua.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ur.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/ur_pk.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/us.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/uz.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/uz_uz.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/vi.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/vi_vn.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/zh.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/zh_cn.gif
Diff not rendered.
Binary file removed build/media/mod_languages/images/zh_tw.gif
Diff not rendered.
35 changes: 35 additions & 0 deletions build/media/webcomponents/js/language-flag/language-flag.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
class LanguageFlag extends HTMLElement {
constructor() {
super();
}
connectedCallback() {
const style = this.style;
style.display = 'inline-block';
style.position = 'relative';
style.backgroundSize = 'contain';
style.backgroundPosition = '50%';
style.backgroundRepeat = 'no-repeat';
style.height = '1em';

this.render()
}

// @todo use images from: https://github.com/lipis/flag-icon-css
get path() { return 'https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.1.0/flags'}
set path(value) {
this.path = value;
this.render()
}

get country() { return this.getAttribute('country') }
set country(value) {
this.setAttribute('country', value);
this.render()
}

render() {
this.style.backgroundImage = `url(${this.path}/1x1/${this.country.toLowerCase()}.svg)`;
this.style.width = '1em';
}
}
customElements.define('joomla-language-flag', LanguageFlag);
16 changes: 6 additions & 10 deletions modules/mod_languages/tmpl/default.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,8 @@
use Joomla\CMS\HTML\HTMLHelper;
use Joomla\CMS\Uri\Uri;

HTMLHelper::_('stylesheet', 'mod_languages/template.css', array('version' => 'auto', 'relative' => true));

if ($params->get('dropdown', 1) && !$params->get('dropdownimage', 0))
{
HTMLHelper::_('formbehavior.chosen');
}
HTMLHelper::_('stylesheet', 'mod_languages/template.min.css', ['version' => 'auto', 'relative' => true]);
HTMLHelper::_('webcomponent', 'system/webcomponents/joomla-language-flag.min.js', ['version' => 'auto', 'relative' => true]);
?>
<div class="mod-languages">
<?php if ($headerText) : ?>
Expand All @@ -27,7 +23,7 @@

<?php if ($params->get('dropdown', 1) && !$params->get('dropdownimage', 0)) : ?>
<form name="lang" method="post" action="<?php echo htmlspecialchars(Uri::current(), ENT_COMPAT, 'UTF-8'); ?>">
<select class="inputbox advancedSelect" onchange="document.location.replace(this.value);" >
<select class="inputbox" onchange="document.location.replace(this.value);" >
<?php foreach ($list as $language) : ?>
<option dir=<?php echo $language->rtl ? '"rtl"' : '"ltr"'; ?> value="<?php echo $language->link; ?>" <?php echo $language->active ? 'selected="selected"' : ''; ?>>
<?php echo $params->get('full_name', 1) ? $language->title_native : strtoupper($language->sef); ?></option>
Expand All @@ -41,7 +37,7 @@
<a href="#" data-toggle="dropdown" class="btn dropdown-toggle">
<span class="caret"></span>
<?php if ($language->image) : ?>
&nbsp;<?php echo HTMLHelper::_('image', 'mod_languages/' . $language->image . '.gif', '', null, true); ?>
&nbsp;<joomla-language-flag country="<?php echo substr($language->image, 3); ?>"></joomla-language-flag>
<?php endif; ?>
<?php echo $params->get('full_name', 1) ? $language->title_native : strtoupper($language->sef); ?>
</a>
Expand All @@ -53,7 +49,7 @@
<li<?php echo $language->active ? ' class="lang-active"' : ''; ?>>
<a href="<?php echo $language->link; ?>">
<?php if ($language->image) : ?>
<?php echo HTMLHelper::_('image', 'mod_languages/' . $language->image . '.gif', '', null, true); ?>
<joomla-language-flag country="<?php echo substr($language->image, 3); ?>"></joomla-language-flag>
<?php endif; ?>
<?php echo $params->get('full_name', 1) ? $language->title_native : strtoupper($language->sef); ?>
</a>
Expand All @@ -70,7 +66,7 @@
<a href="<?php echo $language->link; ?>">
<?php if ($params->get('image', 1)) : ?>
<?php if ($language->image) : ?>
<?php echo HTMLHelper::_('image', 'mod_languages/' . $language->image . '.gif', $language->title_native, array('title' => $language->title_native), true); ?>
<joomla-language-flag country="<?php echo substr($language->image, 3); ?>"></joomla-language-flag>
<?php else : ?>
<span class="badge badge-secondary"><?php echo strtoupper($language->sef); ?></span>
<?php endif; ?>
Expand Down