diff --git a/app/assets/javascripts/application.coffee b/app/assets/javascripts/application.coffee
index 79c3a2dbf..1911519a3 100644
--- a/app/assets/javascripts/application.coffee
+++ b/app/assets/javascripts/application.coffee
@@ -32,31 +32,7 @@ $("textarea, #form_answers input").keypress (event) ->
$(@).off event
# Add/Remove dynamically links in the news form
-langs =
- fr: "Français"
- de: "Allemand"
- en: "Anglais"
- eu: "Basque"
- ct: "Catalan"
- cn: "Chinois"
- ko: "Coréen"
- da: "Danois"
- es: "Espagnol"
- ee: "Estonien"
- fi: "Finnois"
- el: "Grec"
- it: "Italien"
- ja: "Japonais"
- nl: "Néerlandais"
- no: "Norvégien"
- pl: "Polonais"
- pt: "Portugais"
- ru: "Russe"
- sv: "Suédois"
- xx: "!? hmmm ?!"
- wq: "Code/binaire"
-
-$("#form_links").nested_fields "news", "link", "lien", "fieldset", title: "text", url: "url", lang: langs
+$("#form_links").nested_fields "news", "link", "lien", "fieldset", title: "text", url: "url", lang: window.langs
$("#form_answers").nested_fields "poll", "answer", "choix", "p", answer: "text"
# Mask the contributors if they are too many
diff --git a/app/assets/javascripts/lang.coffee b/app/assets/javascripts/lang.coffee
new file mode 100644
index 000000000..2f67b3dcc
--- /dev/null
+++ b/app/assets/javascripts/lang.coffee
@@ -0,0 +1,24 @@
+# Export langs as defined in rails
+window.langs =
+ xx: "!? hmmm ?!" # default choice
+ fr: "Français" # main language, then others sorted
+ de: "Allemand"
+ en: "Anglais"
+ eu: "Basque"
+ ct: "Catalan"
+ cn: "Chinois"
+ wq: "Code/binaire"
+ ko: "Coréen"
+ da: "Danois"
+ es: "Espagnol"
+ ee: "Estonien"
+ fi: "Finnois"
+ el: "Grec"
+ it: "Italien"
+ ja: "Japonais"
+ nl: "Néerlandais"
+ no: "Norvégien"
+ pl: "Polonais"
+ pt: "Portugais"
+ ru: "Russe"
+ sv: "Suédois"
diff --git a/app/assets/javascripts/redaction.coffee b/app/assets/javascripts/redaction.coffee
index 006949845..765edf538 100644
--- a/app/assets/javascripts/redaction.coffee
+++ b/app/assets/javascripts/redaction.coffee
@@ -1,3 +1,4 @@
+#= require lang
#= require push
$ = window.jQuery
@@ -49,7 +50,7 @@ class Redaction
innerHtmlForLink: (msg) ->
"""
- #{msg.title} (#{msg.nb_clicks} clic#{if msg.nb_clicks > 1 then 's' else ''})
+ #{msg.title} (#{if msg.lang == 'fr' then '' else 'en ' + window.langs[msg.lang].toLowerCase() + ', '}#{msg.nb_clicks} clic#{if msg.nb_clicks > 1 then 's' else ''})
"""
htmlForLink: (msg) ->
diff --git a/app/assets/stylesheets/common/langs.scss b/app/assets/stylesheets/common/langs.scss
deleted file mode 100644
index 60acb9b96..000000000
--- a/app/assets/stylesheets/common/langs.scss
+++ /dev/null
@@ -1,67 +0,0 @@
-// Flags for the languages
-li.link[lang="cn"] {
- list-style-image: url("/images/langs/cn.png");
-}
-li.link[lang="ct"] {
- list-style-image: url("/images/langs/ct.png");
-}
-li.link[lang="da"] {
- list-style-image: url("/images/langs/da.png");
-}
-li.link[lang="de"] {
- list-style-image: url("/images/langs/de.png");
-}
-li.link[lang="ee"] {
- list-style-image: url("/images/langs/ee.png");
-}
-li.link[lang="el"] {
- list-style-image: url("/images/langs/el.png");
-}
-li.link[lang="en"] {
- list-style-image: url("/images/langs/en.png");
-}
-li.link[lang="es"] {
- list-style-image: url("/images/langs/es.png");
-}
-li.link[lang="eu"] {
- list-style-image: url("/images/langs/eu.png");
-}
-li.link[lang="fi"] {
- list-style-image: url("/images/langs/fi.png");
-}
-li.link[lang="fr"] {
- list-style-image: url("/images/langs/fr.png");
-}
-li.link[lang="it"] {
- list-style-image: url("/images/langs/it.png");
-}
-li.link[lang="ja"] {
- list-style-image: url("/images/langs/ja.png");
-}
-li.link[lang="ko"] {
- list-style-image: url("/images/langs/ko.png");
-}
-li.link[lang="nl"] {
- list-style-image: url("/images/langs/nl.png");
-}
-li.link[lang="no"] {
- list-style-image: url("/images/langs/no.png");
-}
-li.link[lang="pl"] {
- list-style-image: url("/images/langs/pl.png");
-}
-li.link[lang="pt"] {
- list-style-image: url("/images/langs/pt.png");
-}
-li.link[lang="ru"] {
- list-style-image: url("/images/langs/ru.png");
-}
-li.link[lang="sv"] {
- list-style-image: url("/images/langs/sv.png");
-}
-li.link[lang="xx"] {
- list-style-image: url("/images/langs/xx.png");
-}
-li.link[lang="wq"] {
- list-style-image: url("/images/langs/wq.png");
-}
diff --git a/app/assets/stylesheets/contrib/RonRonnement-Classic.scss b/app/assets/stylesheets/contrib/RonRonnement-Classic.scss
index 3246b5400..e06181cf7 100644
--- a/app/assets/stylesheets/contrib/RonRonnement-Classic.scss
+++ b/app/assets/stylesheets/contrib/RonRonnement-Classic.scss
@@ -4,7 +4,6 @@
@import "../common/ac";
@import "../common/generics";
-@import "../common/langs";
@import "../common/markitup";
@import "../common/statistics";
@import "../common/doorkeeper";
diff --git a/app/assets/stylesheets/contrib/RonRonnement-Sepia.scss b/app/assets/stylesheets/contrib/RonRonnement-Sepia.scss
index 91b5fe455..1c65cdfab 100644
--- a/app/assets/stylesheets/contrib/RonRonnement-Sepia.scss
+++ b/app/assets/stylesheets/contrib/RonRonnement-Sepia.scss
@@ -25,7 +25,6 @@ $C_BD5: transparentize($C_BANDEAU, 0.17);
@import "common/ac";
@import "common/generics";
-@import "common/langs";
@import "common/markitup";
@import "common/statistics";
@import "pygments/colorful";
diff --git a/app/assets/stylesheets/contrib/grayscale.scss b/app/assets/stylesheets/contrib/grayscale.scss
index 878facdd5..508fcc6bb 100644
--- a/app/assets/stylesheets/contrib/grayscale.scss
+++ b/app/assets/stylesheets/contrib/grayscale.scss
@@ -2287,110 +2287,6 @@ form#new_diary > p:nth-child(4) {
.markItUp .link a {
background-image: url(/images/markitup/link.png);
}
-*:not(.markItUpHeader) > ul > .link {
- list-style: none;
- margin-left: -14px;
-}
-:not(.markItUpHeader) > ul > .link[lang="cn"]:before {
- content: url("/images/contrib/grayscale/flags/cn.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="ct"]:before {
- content: url("/images/contrib/grayscale/flags/ct.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="da"]:before {
- content: url("/images/contrib/grayscale/flags/da.png");
- position: / images/contrib/grayscale/relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="de"]:before {
- content: url("/images/contrib/grayscale/flags/de.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="el"]:before {
- content: url("/images/contrib/grayscale/flags/el.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="en"]:before {
- content: url("/images/contrib/grayscale/flags/en.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="es"]:before {
- content: url("/images/contrib/grayscale/flags/es.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="eu"]:before {
- content: url("/images/contrib/grayscale/flags/eu.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="fi"]:before {
- content: url("/images/contrib/grayscale/flags/fi.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="fr"]:before {
- content: url("/images/contrib/grayscale/flags/fr.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="it"]:before {
- content: url("/images/contrib/grayscale/flags/it.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="ja"]:before {
- content: url("/images/contrib/grayscale/flags/ja.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="ko"]:before {
- content: url("/images/contrib/grayscale/flags/ko.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="nl"]:before {
- content: url("/images/contrib/grayscale/flags/nl.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="no"]:before {
- content: url("/images/contrib/grayscale/flags/no.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="pl"]:before {
- content: url("/images/contrib/grayscale/flags/pl.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="pt"]:before {
- content: url("/images/contrib/grayscale/flags/pt.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="ru"]:before {
- content: url("/images/contrib/grayscale/flags/ru.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="sv"]:before {
- content: url("/images/contrib/grayscale/flags/sv.png");
- position: relative;
- top: 2px;
-}
-*:not(.markItUpHeader) > ul > .link[lang="xx"]:before {
- content: url("/images/contrib/grayscale/flags/xx.png");
- position: relative;
- top: 2px;
-}
#phare .link,
#phare .meta,
#phare footer {
diff --git a/app/assets/stylesheets/contrib/kaiska-new.scss b/app/assets/stylesheets/contrib/kaiska-new.scss
index 0ddb7e9bb..abcd1ced9 100644
--- a/app/assets/stylesheets/contrib/kaiska-new.scss
+++ b/app/assets/stylesheets/contrib/kaiska-new.scss
@@ -750,68 +750,6 @@ div#moderation_box input#board_message {
width: 95%;
}
-/* Langues */
-li.link[lang="cn"] {
- list-style: url("/images/langs/cn.png");
-}
-li.link[lang="ct"] {
- list-style: url("/images/langs/ct.png");
-}
-li.link[lang="da"] {
- list-style: url("/images/langs/da.png");
-}
-li.link[lang="de"] {
- list-style: url("/images/langs/de.png");
-}
-li.link[lang="el"] {
- list-style: url("/images/langs/el.png");
-}
-li.link[lang="en"] {
- list-style: url("/images/langs/en.png");
-}
-li.link[lang="es"] {
- list-style: url("/images/langs/es.png");
-}
-li.link[lang="eu"] {
- list-style: url("/images/langs/eu.png");
-}
-li.link[lang="fi"] {
- list-style: url("/images/langs/fi.png");
-}
-li.link[lang="fr"] {
- list-style: url("/images/langs/fr.png");
-}
-li.link[lang="it"] {
- list-style: url("/images/langs/it.png");
-}
-li.link[lang="ja"] {
- list-style: url("/images/langs/ja.png");
-}
-li.link[lang="ko"] {
- list-style: url("/images/langs/ko.png");
-}
-li.link[lang="nl"] {
- list-style: url("/images/langs/nl.png");
-}
-li.link[lang="no"] {
- list-style: url("/images/langs/no.png");
-}
-li.link[lang="pl"] {
- list-style: url("/images/langs/pl.png");
-}
-li.link[lang="pt"] {
- list-style: url("/images/langs/pt.png");
-}
-li.link[lang="ru"] {
- list-style: url("/images/langs/ru.png");
-}
-li.link[lang="sv"] {
- list-style: url("/images/langs/sv.png");
-}
-li.link[lang="xx"] {
- list-style: url("/images/langs/xx.png");
-}
-
div.content a[href^="/wiki/"],
div.content a[href^="//linuxfr.org/wiki/"] {
background: url("/images/contrib/kaiska/linuxfr.png") no-repeat;
diff --git a/app/assets/stylesheets/contrib/nightgrey.scss b/app/assets/stylesheets/contrib/nightgrey.scss
index 9f63223a3..355c7f81d 100644
--- a/app/assets/stylesheets/contrib/nightgrey.scss
+++ b/app/assets/stylesheets/contrib/nightgrey.scss
@@ -2112,4 +2112,3 @@ fieldset.link {
}
@import "../common/statistics";
-@import "../common/langs";
diff --git a/app/assets/stylesheets/contrib/solarized/langs.scss b/app/assets/stylesheets/contrib/solarized/langs.scss
deleted file mode 100644
index 1028ea83f..000000000
--- a/app/assets/stylesheets/contrib/solarized/langs.scss
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-Linuxfr default stylesheet for languages
-https://github.com/linuxfrorg/linuxfr.org/blob/master/app/assets/stylesheets/common/langs.css.scss
-*/
-// Flags for the languages
-li.link[lang="cn"] {
- list-style-image: url("/images/langs/cn.png");
-}
-li.link[lang="ct"] {
- list-style-image: url("/images/langs/ct.png");
-}
-li.link[lang="da"] {
- list-style-image: url("/images/langs/da.png");
-}
-li.link[lang="de"] {
- list-style-image: url("/images/langs/de.png");
-}
-li.link[lang="el"] {
- list-style-image: url("/images/langs/el.png");
-}
-li.link[lang="en"] {
- list-style-image: url("/images/langs/en.png");
-}
-li.link[lang="es"] {
- list-style-image: url("/images/langs/es.png");
-}
-li.link[lang="eu"] {
- list-style-image: url("/images/langs/eu.png");
-}
-li.link[lang="fi"] {
- list-style-image: url("/images/langs/fi.png");
-}
-li.link[lang="fr"] {
- list-style-image: url("/images/langs/fr.png");
-}
-li.link[lang="it"] {
- list-style-image: url("/images/langs/it.png");
-}
-li.link[lang="ja"] {
- list-style-image: url("/images/langs/ja.png");
-}
-li.link[lang="ko"] {
- list-style-image: url("/images/langs/ko.png");
-}
-li.link[lang="nl"] {
- list-style-image: url("/images/langs/nl.png");
-}
-li.link[lang="no"] {
- list-style-image: url("/images/langs/no.png");
-}
-li.link[lang="pl"] {
- list-style-image: url("/images/langs/pl.png");
-}
-li.link[lang="pt"] {
- list-style-image: url("/images/langs/pt.png");
-}
-li.link[lang="ru"] {
- list-style-image: url("/images/langs/ru.png");
-}
-li.link[lang="sv"] {
- list-style-image: url("/images/langs/sv.png");
-}
-li.link[lang="xx"] {
- list-style-image: url("/images/langs/xx.png");
-}
diff --git a/app/assets/stylesheets/contrib/solarized/main.scss b/app/assets/stylesheets/contrib/solarized/main.scss
index e8170ff39..cea86624c 100644
--- a/app/assets/stylesheets/contrib/solarized/main.scss
+++ b/app/assets/stylesheets/contrib/solarized/main.scss
@@ -31,8 +31,6 @@ Licence CC-BY http://creativecommons.org/licenses/by/3.0/fr/
@import url(http://fonts.googleapis.com/css?family=Numans);
@import url(http://fonts.googleapis.com/css?family=Josefin+Slab:700);
-@import "langs";
-
@mixin triangle_topleft($color) {
width: 0;
height: 0;
diff --git a/app/assets/stylesheets/contrib/spasibo.scss b/app/assets/stylesheets/contrib/spasibo.scss
index 1139fdf6c..f5699867b 100644
--- a/app/assets/stylesheets/contrib/spasibo.scss
+++ b/app/assets/stylesheets/contrib/spasibo.scss
@@ -796,63 +796,6 @@ ul.threads > li.even {
margin: 0.3em;
}
-.content li.link {
- list-style-position: inside;
- list-style-image: url(/images/contrib/spasibo/flags/fam.png);
-}
-
-.content li.link[lang="fr"] {
- list-style-image: url(/images/contrib/spasibo/flags/fr.png);
-}
-
-.content li.link[lang="en"] {
- list-style-image: url(/images/contrib/spasibo/flags/gb.png);
-}
-
-.content li.link[lang="es"] {
- list-style-image: url(/images/contrib/spasibo/flags/es.png);
-}
-
-.content li.link[lang="de"] {
- list-style-image: url(/images/contrib/spasibo/flags/de.png);
-}
-
-.content li.link[lang="ru"] {
- list-style-image: url(/images/contrib/spasibo/flags/ru.png);
-}
-
-.content li.link[lang="eu"] {
- list-style-image: url(/images/contrib/spasibo/flags/eu.png);
-}
-
-.content li.link[lang="jp"] {
- list-style-image: url(/images/contrib/spasibo/flags/jp.png);
-}
-
-.content li.link[lang="it"] {
- list-style-image: url(/images/contrib/spasibo/flags/it.png);
-}
-
-.content li.link[lang="fi"] {
- list-style-image: url(/images/contrib/spasibo/flags/fi.png);
-}
-
-.content li.link[lang="pt"] {
- list-style-image: url(/images/contrib/spasibo/flags/pt.png);
-}
-
-.content li.link[lang="se"] {
- list-style-image: url(/images/contrib/spasibo/flags/se.png);
-}
-
-.content li.link[lang="dk"] {
- list-style-image: url(/images/contrib/spasibo/flags/dk.png);
-}
-
-.content li.link[lang="gr"] {
- list-style-image: url(/images/contrib/spasibo/flags/gr.png);
-}
-
#comments li > h2 {
font-size: 1em;
}
diff --git a/app/assets/stylesheets/contrib/steelblue.scss b/app/assets/stylesheets/contrib/steelblue.scss
index 42606425d..02d6a5665 100644
--- a/app/assets/stylesheets/contrib/steelblue.scss
+++ b/app/assets/stylesheets/contrib/steelblue.scss
@@ -2289,75 +2289,6 @@ section.container nav.toolbox nav.pagination:first-child {
*
*/
-/* === Flag icons === */
-
-li.link[lang="cn"] {
- list-style-image: url("/images/langs/cn.png");
-}
-li.link[lang="ct"] {
- list-style-image: url("/images/langs/ct.png");
-}
-li.link[lang="da"] {
- list-style-image: url("/images/langs/da.png");
-}
-li.link[lang="de"] {
- list-style-image: url("/images/langs/de.png");
-}
-li.link[lang="ee"] {
- list-style-image: url("/images/langs/ee.png");
-}
-li.link[lang="el"] {
- list-style-image: url("/images/langs/el.png");
-}
-li.link[lang="en"] {
- list-style-image: url("/images/langs/en.png");
-}
-li.link[lang="es"] {
- list-style-image: url("/images/langs/es.png");
-}
-li.link[lang="eu"] {
- list-style-image: url("/images/langs/eu.png");
-}
-li.link[lang="fi"] {
- list-style-image: url("/images/langs/fi.png");
-}
-li.link[lang="fr"] {
- list-style-image: url("/images/langs/fr.png");
-}
-li.link[lang="it"] {
- list-style-image: url("/images/langs/it.png");
-}
-li.link[lang="ja"] {
- list-style-image: url("/images/langs/ja.png");
-}
-li.link[lang="ko"] {
- list-style-image: url("/images/langs/ko.png");
-}
-li.link[lang="nl"] {
- list-style-image: url("/images/langs/nl.png");
-}
-li.link[lang="no"] {
- list-style-image: url("/images/langs/no.png");
-}
-li.link[lang="pl"] {
- list-style-image: url("/images/langs/pl.png");
-}
-li.link[lang="pt"] {
- list-style-image: url("/images/langs/pt.png");
-}
-li.link[lang="ru"] {
- list-style-image: url("/images/langs/ru.png");
-}
-li.link[lang="sv"] {
- list-style-image: url("/images/langs/sv.png");
-}
-li.link[lang="xx"] {
- list-style-image: url("/images/langs/xx.png");
-}
-li.link[lang="wq"] {
- list-style-image: url("/images/langs/wq.png");
-}
-
/* === User pages tweaks === */
#home-index #container,
diff --git a/app/assets/stylesheets/parts/bookmark.scss b/app/assets/stylesheets/parts/bookmark.scss
index b2d0bd777..b8c6f596c 100644
--- a/app/assets/stylesheets/parts/bookmark.scss
+++ b/app/assets/stylesheets/parts/bookmark.scss
@@ -12,7 +12,6 @@
display: inline-block;
}
.content {
- padding: 0;
min-height: auto;
line-height: 1.3em;
}
@@ -36,7 +35,4 @@
color: #888;
}
}
- .links {
- display: block; /* cancel display:grid for bookmark entries */
- }
}
diff --git a/app/helpers/bookmark_helper.rb b/app/helpers/bookmark_helper.rb
new file mode 100644
index 000000000..282fcc9cb
--- /dev/null
+++ b/app/helpers/bookmark_helper.rb
@@ -0,0 +1,7 @@
+# encoding: UTF-8
+module BookmarkHelper
+ def lang(bookmark)
+ detail = ""
+ detail += "(en #{Lang[bookmark.lang].downcase})" unless bookmark.lang == 'fr'
+ end
+end
diff --git a/app/helpers/link_helper.rb b/app/helpers/link_helper.rb
new file mode 100644
index 000000000..492971279
--- /dev/null
+++ b/app/helpers/link_helper.rb
@@ -0,0 +1,8 @@
+# encoding: UTF-8
+module LinkHelper
+ def lang_and_hit(link)
+ detail = "("
+ detail += "en #{Lang[link.lang].downcase}, " unless link.lang == 'fr'
+ detail += "#{pluralize link.nb_clicks, 'clic'})"
+ end
+end
diff --git a/app/models/lang.rb b/app/models/lang.rb
index 28c682fa5..75c68adfe 100644
--- a/app/models/lang.rb
+++ b/app/models/lang.rb
@@ -12,4 +12,8 @@ def self.[]=(key, value)
$redis.set("lang/#{key}", value)
$redis.rpush("lang", key)
end
+
+ def self.[](key)
+ return $redis.get("lang/#{key}")
+ end
end
diff --git a/app/views/bookmarks/_bookmark.html.haml b/app/views/bookmarks/_bookmark.html.haml
index b08b7fb31..ff4286e1b 100644
--- a/app/views/bookmarks/_bookmark.html.haml
+++ b/app/views/bookmarks/_bookmark.html.haml
@@ -2,7 +2,8 @@
- c.title = "#{link_to "Lien", "/liens", class: "topic"} #{link_to bookmark.title, [bookmark.owner, bookmark]}".html_safe
- c.image = mini_avatar_img(bookmark.owner)
- c.body = capture do
- %ul.links
- %li.link{lang: bookmark.lang}= "#{link_to bookmark.link, bookmark.link, hreflang: bookmark.lang}".html_safe
+ %p
+ = link_to bookmark.link, bookmark.link, hreflang: bookmark.lang
+ #{lang(bookmark)}
- if current_account && current_account.can_update?(bookmark)
- c.actions = link_to("Modifier", edit_user_bookmark_path(user_id: bookmark.owner, id: bookmark), class: 'action')
diff --git a/app/views/bookmarks/_preview.html.haml b/app/views/bookmarks/_preview.html.haml
index 6b96451fa..483362557 100644
--- a/app/views/bookmarks/_preview.html.haml
+++ b/app/views/bookmarks/_preview.html.haml
@@ -2,5 +2,6 @@
- c.title = "#{link_to "Lien", "/liens", class: "topic"} #{link_to spellcheck(preview.title), "#"}".html_safe
- c.image = mini_avatar_img(preview.node.user)
- c.body = capture do
- %ul
- %li{lang: preview.lang}= "#{link_to preview.link, preview.link, hreflang: preview.lang}".html_safe
+ %p
+ = link_to preview.link, preview.link, hreflang: preview.lang
+ #{lang(preview)}
diff --git a/app/views/links/_link.html.haml b/app/views/links/_link.html.haml
index f392cc9f1..9ac55e399 100644
--- a/app/views/links/_link.html.haml
+++ b/app/views/links/_link.html.haml
@@ -1,3 +1,3 @@
%li[link]{link_attr(link)}
= link_to link.title, link.url, 'data-hit' => link.id, title: link.url, hreflang: link.lang, class: 'hit_counter'
- (#{pluralize link.nb_clicks, 'clic'})
+ #{lang_and_hit(link)}
diff --git a/app/views/redaction/links/_link.html.haml b/app/views/redaction/links/_link.html.haml
index d2ff296a6..33f598171 100644
--- a/app/views/redaction/links/_link.html.haml
+++ b/app/views/redaction/links/_link.html.haml
@@ -1,5 +1,5 @@
-%li[link]{ lang: link.lang, "data-url" => edit_redaction_link_path(link) }
+%li[link]{ "lang" => link.lang, "data-url" => edit_redaction_link_path(link) }
= link_to link.title, link.url, 'data-hit' => link.id, title: link.url, hreflang: link.lang, class: 'hit_counter'
- (#{pluralize link.nb_clicks, 'clic'})
+ #{lang_and_hit(link)}
.actions
%button.edit Modifier
diff --git a/db/seeds.rb b/db/seeds.rb
index fff7b7525..e88d9e530 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -4,12 +4,14 @@
Logo.image = '/images/logos/linuxfr2_classic.png'
# Langs
-Lang['fr'] = 'Français'
+Lang['xx'] = '!? hmmm ?!' # default choice
+Lang['fr'] = 'Français' # main language, then others sorted
Lang['de'] = 'Allemand'
Lang['en'] = 'Anglais'
Lang['eu'] = 'Basque'
Lang['ct'] = 'Catalan'
Lang['cn'] = 'Chinois'
+Lang['wq'] = 'Code/binaire'
Lang['ko'] = 'Coréen'
Lang['da'] = 'Danois'
Lang['es'] = 'Espagnol'
@@ -24,8 +26,6 @@
Lang['pt'] = 'Portugais'
Lang['ru'] = 'Russe'
Lang['sv'] = 'Suédois'
-Lang['xx'] = '!? hmmm ?!'
-Lang['wq'] = 'Code/binaire'
# Category
%w(Autres Administration\ site Commentaires Feuilles\ de\ style\ (CSS) Dépêches Forums Journaux Modération Proposition Recherche Sondages Suivi Barre\ d’outils Tribune Wiki Avatars Étiquettes Vieux\ navigateurs Comptes\ utilisateurs Statistiques Rédaction Administration\ système À\ ranger\ quelque\ part Aide\ et\ documentation Notifications Syntaxe\ markdown API\ OAuth Images Flux\ Atom Epub Liens).each do |cat|
diff --git a/public/images/contrib/grayscale/flags/cn.png b/public/images/contrib/grayscale/flags/cn.png
deleted file mode 100644
index 455d75fff..000000000
Binary files a/public/images/contrib/grayscale/flags/cn.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/ct.png b/public/images/contrib/grayscale/flags/ct.png
deleted file mode 100644
index c34ead3b1..000000000
Binary files a/public/images/contrib/grayscale/flags/ct.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/da.png b/public/images/contrib/grayscale/flags/da.png
deleted file mode 100644
index fa291e899..000000000
Binary files a/public/images/contrib/grayscale/flags/da.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/de.png b/public/images/contrib/grayscale/flags/de.png
deleted file mode 100644
index f04baccea..000000000
Binary files a/public/images/contrib/grayscale/flags/de.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/el.png b/public/images/contrib/grayscale/flags/el.png
deleted file mode 100644
index ebee191d6..000000000
Binary files a/public/images/contrib/grayscale/flags/el.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/en.png b/public/images/contrib/grayscale/flags/en.png
deleted file mode 100644
index 2ff49189e..000000000
Binary files a/public/images/contrib/grayscale/flags/en.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/es.png b/public/images/contrib/grayscale/flags/es.png
deleted file mode 100644
index b769275aa..000000000
Binary files a/public/images/contrib/grayscale/flags/es.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/eu.png b/public/images/contrib/grayscale/flags/eu.png
deleted file mode 100644
index be176bbd1..000000000
Binary files a/public/images/contrib/grayscale/flags/eu.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/fi.png b/public/images/contrib/grayscale/flags/fi.png
deleted file mode 100644
index 4494ff627..000000000
Binary files a/public/images/contrib/grayscale/flags/fi.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/fr.png b/public/images/contrib/grayscale/flags/fr.png
deleted file mode 100644
index 1d131859f..000000000
Binary files a/public/images/contrib/grayscale/flags/fr.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/it.png b/public/images/contrib/grayscale/flags/it.png
deleted file mode 100755
index ad34d9f2c..000000000
Binary files a/public/images/contrib/grayscale/flags/it.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/ja.png b/public/images/contrib/grayscale/flags/ja.png
deleted file mode 100755
index aa0cbd519..000000000
Binary files a/public/images/contrib/grayscale/flags/ja.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/ko.png b/public/images/contrib/grayscale/flags/ko.png
deleted file mode 100644
index 55bcf3872..000000000
Binary files a/public/images/contrib/grayscale/flags/ko.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/nl.png b/public/images/contrib/grayscale/flags/nl.png
deleted file mode 100644
index 166ac34d3..000000000
Binary files a/public/images/contrib/grayscale/flags/nl.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/no.png b/public/images/contrib/grayscale/flags/no.png
deleted file mode 100644
index d27c1f9ba..000000000
Binary files a/public/images/contrib/grayscale/flags/no.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/pl.png b/public/images/contrib/grayscale/flags/pl.png
deleted file mode 100755
index bd7058691..000000000
Binary files a/public/images/contrib/grayscale/flags/pl.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/pt.png b/public/images/contrib/grayscale/flags/pt.png
deleted file mode 100644
index 8f2af8c34..000000000
Binary files a/public/images/contrib/grayscale/flags/pt.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/ru.png b/public/images/contrib/grayscale/flags/ru.png
deleted file mode 100644
index 6fb999d20..000000000
Binary files a/public/images/contrib/grayscale/flags/ru.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/sv.png b/public/images/contrib/grayscale/flags/sv.png
deleted file mode 100644
index bdc61b49e..000000000
Binary files a/public/images/contrib/grayscale/flags/sv.png and /dev/null differ
diff --git a/public/images/contrib/grayscale/flags/xx.png b/public/images/contrib/grayscale/flags/xx.png
deleted file mode 100644
index 6ae18c953..000000000
Binary files a/public/images/contrib/grayscale/flags/xx.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/de.png b/public/images/contrib/spasibo/flags/de.png
deleted file mode 100644
index f04baccea..000000000
Binary files a/public/images/contrib/spasibo/flags/de.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/dk.png b/public/images/contrib/spasibo/flags/dk.png
deleted file mode 100644
index fa291e899..000000000
Binary files a/public/images/contrib/spasibo/flags/dk.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/es.png b/public/images/contrib/spasibo/flags/es.png
deleted file mode 100644
index b769275aa..000000000
Binary files a/public/images/contrib/spasibo/flags/es.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/eu.png b/public/images/contrib/spasibo/flags/eu.png
deleted file mode 100644
index ffcba222d..000000000
Binary files a/public/images/contrib/spasibo/flags/eu.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/fam.png b/public/images/contrib/spasibo/flags/fam.png
deleted file mode 100644
index 8b9fa2667..000000000
Binary files a/public/images/contrib/spasibo/flags/fam.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/fi.png b/public/images/contrib/spasibo/flags/fi.png
deleted file mode 100644
index 4494ff627..000000000
Binary files a/public/images/contrib/spasibo/flags/fi.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/fr.png b/public/images/contrib/spasibo/flags/fr.png
deleted file mode 100644
index 1d131859f..000000000
Binary files a/public/images/contrib/spasibo/flags/fr.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/gb.png b/public/images/contrib/spasibo/flags/gb.png
deleted file mode 100644
index 2ff49189e..000000000
Binary files a/public/images/contrib/spasibo/flags/gb.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/gr.png b/public/images/contrib/spasibo/flags/gr.png
deleted file mode 100644
index ebee191d6..000000000
Binary files a/public/images/contrib/spasibo/flags/gr.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/it.png b/public/images/contrib/spasibo/flags/it.png
deleted file mode 100644
index ad34d9f2c..000000000
Binary files a/public/images/contrib/spasibo/flags/it.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/jp.png b/public/images/contrib/spasibo/flags/jp.png
deleted file mode 100644
index aa0cbd519..000000000
Binary files a/public/images/contrib/spasibo/flags/jp.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/pt.png b/public/images/contrib/spasibo/flags/pt.png
deleted file mode 100644
index 8f2af8c34..000000000
Binary files a/public/images/contrib/spasibo/flags/pt.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/ru.png b/public/images/contrib/spasibo/flags/ru.png
deleted file mode 100644
index 6fb999d20..000000000
Binary files a/public/images/contrib/spasibo/flags/ru.png and /dev/null differ
diff --git a/public/images/contrib/spasibo/flags/se.png b/public/images/contrib/spasibo/flags/se.png
deleted file mode 100644
index ae444e829..000000000
Binary files a/public/images/contrib/spasibo/flags/se.png and /dev/null differ
diff --git a/public/images/langs/cn.png b/public/images/langs/cn.png
deleted file mode 100644
index c8271484d..000000000
Binary files a/public/images/langs/cn.png and /dev/null differ
diff --git a/public/images/langs/ct.png b/public/images/langs/ct.png
deleted file mode 100644
index 69545b0b2..000000000
Binary files a/public/images/langs/ct.png and /dev/null differ
diff --git a/public/images/langs/da.png b/public/images/langs/da.png
deleted file mode 100644
index 51645c391..000000000
Binary files a/public/images/langs/da.png and /dev/null differ
diff --git a/public/images/langs/de.png b/public/images/langs/de.png
deleted file mode 100644
index 1333a2519..000000000
Binary files a/public/images/langs/de.png and /dev/null differ
diff --git a/public/images/langs/ee.png b/public/images/langs/ee.png
deleted file mode 100644
index 4c4295f01..000000000
Binary files a/public/images/langs/ee.png and /dev/null differ
diff --git a/public/images/langs/el.png b/public/images/langs/el.png
deleted file mode 100644
index fe866b90d..000000000
Binary files a/public/images/langs/el.png and /dev/null differ
diff --git a/public/images/langs/en.png b/public/images/langs/en.png
deleted file mode 100644
index 90d1583c2..000000000
Binary files a/public/images/langs/en.png and /dev/null differ
diff --git a/public/images/langs/es.png b/public/images/langs/es.png
deleted file mode 100644
index 76dde8f7e..000000000
Binary files a/public/images/langs/es.png and /dev/null differ
diff --git a/public/images/langs/eu.png b/public/images/langs/eu.png
deleted file mode 100644
index be176bbd1..000000000
Binary files a/public/images/langs/eu.png and /dev/null differ
diff --git a/public/images/langs/fi.png b/public/images/langs/fi.png
deleted file mode 100644
index 884c17e31..000000000
Binary files a/public/images/langs/fi.png and /dev/null differ
diff --git a/public/images/langs/fr.png b/public/images/langs/fr.png
deleted file mode 100644
index a3a5470e4..000000000
Binary files a/public/images/langs/fr.png and /dev/null differ
diff --git a/public/images/langs/it.png b/public/images/langs/it.png
deleted file mode 100644
index 25722f645..000000000
Binary files a/public/images/langs/it.png and /dev/null differ
diff --git a/public/images/langs/ja.png b/public/images/langs/ja.png
deleted file mode 100644
index 45e7d9fcf..000000000
Binary files a/public/images/langs/ja.png and /dev/null differ
diff --git a/public/images/langs/ko.png b/public/images/langs/ko.png
deleted file mode 100644
index 8b493c375..000000000
Binary files a/public/images/langs/ko.png and /dev/null differ
diff --git a/public/images/langs/nl.png b/public/images/langs/nl.png
deleted file mode 100644
index 3379a50eb..000000000
Binary files a/public/images/langs/nl.png and /dev/null differ
diff --git a/public/images/langs/no.png b/public/images/langs/no.png
deleted file mode 100644
index 4f14fc609..000000000
Binary files a/public/images/langs/no.png and /dev/null differ
diff --git a/public/images/langs/pl.png b/public/images/langs/pl.png
deleted file mode 100644
index 622ea745f..000000000
Binary files a/public/images/langs/pl.png and /dev/null differ
diff --git a/public/images/langs/pt.png b/public/images/langs/pt.png
deleted file mode 100644
index 6e8de3f07..000000000
Binary files a/public/images/langs/pt.png and /dev/null differ
diff --git a/public/images/langs/ru.png b/public/images/langs/ru.png
deleted file mode 100644
index a0c33ef36..000000000
Binary files a/public/images/langs/ru.png and /dev/null differ
diff --git a/public/images/langs/sv.png b/public/images/langs/sv.png
deleted file mode 100644
index 900275dbe..000000000
Binary files a/public/images/langs/sv.png and /dev/null differ
diff --git a/public/images/langs/wq.png b/public/images/langs/wq.png
deleted file mode 100644
index bd9b56a01..000000000
Binary files a/public/images/langs/wq.png and /dev/null differ
diff --git a/public/images/langs/xx.png b/public/images/langs/xx.png
deleted file mode 100644
index 7b54224c5..000000000
Binary files a/public/images/langs/xx.png and /dev/null differ