diff --git a/website/src/article-vew-components/game-article.js b/website/src/article-vew-components/game-article.js index ac0e379a80e31f54ed3f0af4faa3a7285d83abf0..94cf298421435785b2af3da1ddce0f98f702a169 100644 --- a/website/src/article-vew-components/game-article.js +++ b/website/src/article-vew-components/game-article.js @@ -4,9 +4,7 @@ const ImageCarousel = require("../generic-components/image-carousel"); const { getArticleBody } = require("../lib/article-utils"); const { fetch_json_or_error_text } = require("../lib/fetch"); const { MentaloEngine } = require("mentalo-engine"); -const translator = require("ks-cheap-translator"); const { images_url, data_url } = require("../../constants"); -const t = translator.trad.bind(translator); class GameArticle { diff --git a/website/src/article-vew-components/software-article.js b/website/src/article-vew-components/software-article.js index dab32ac33ef32ca998a693075df80155e8e0e618..0170cba1e127fed4a4ad5d3b82b8f83dd28e9895 100644 --- a/website/src/article-vew-components/software-article.js +++ b/website/src/article-vew-components/software-article.js @@ -1,10 +1,8 @@ "use strict"; const ImageCarousel = require("../generic-components/image-carousel"); -const translator = require("ks-cheap-translator"); const { images_url } = require("../../constants"); const { getArticleBody } = require("../lib/article-utils"); -const t = translator.trad.bind(translator); class SoftwareArticle { diff --git a/website/src/homepage.js b/website/src/homepage.js index fc03455a6459c93081dd6ac05451ed7dd4bac995..3aff6801fd4b7b81c90ddbe84413f1e26531c9d8 100644 --- a/website/src/homepage.js +++ b/website/src/homepage.js @@ -3,8 +3,6 @@ const { images_url } = require("../constants"); const ThemeCard = require("./home-page-components/theme-card"); const WebPage = require("./lib/web-page"); -const translator = require("ks-cheap-translator"); -const t = translator.trad.bind(translator); class HomePage extends WebPage { constructor() { diff --git a/website/src/lib/web-page.js b/website/src/lib/web-page.js index 5324d202253cadfd2b7337ef5e1b496ce4ece5e3..b4971265559d8475e34138a0dd59ec35a9089633 100644 --- a/website/src/lib/web-page.js +++ b/website/src/lib/web-page.js @@ -12,6 +12,9 @@ class WebPage { this.translations_ready = false; + window.t = translator.trad.bind(translator); + window.translator = translator; + translator.init({ translations_url, supported_languages: ["fr", "en"], diff --git a/website/src/pages/education/components/edu-articles.js b/website/src/pages/education/components/edu-articles.js index c3b41b39069d483540c4c227308edc230e3bd729..fcf909208a0fd48b0972396b4da451cb0f0de518 100644 --- a/website/src/pages/education/components/edu-articles.js +++ b/website/src/pages/education/components/edu-articles.js @@ -1,7 +1,5 @@ "use strict"; const { loadArticles, sortArticles, renderPlaceholders } = require("../../../lib/article-utils"); -const translator = require("ks-cheap-translator"); -const t = translator.trad.bind(translator); const EduArticle = require("./edu-article"); class EduArticles { diff --git a/website/src/pages/education/education.js b/website/src/pages/education/education.js index ea04c92fc6a77ecb5ca8fae6357eb96702481daa..2f9f80a1af83b7f009c029e62aa326a57addf789 100644 --- a/website/src/pages/education/education.js +++ b/website/src/pages/education/education.js @@ -2,9 +2,7 @@ const { images_url } = require("../../../constants"); const WebPage = require("../../lib/web-page"); -const translator = require("ks-cheap-translator"); const EduArticles = require("./components/edu-articles"); -const t = translator.trad.bind(translator); const EDU_THEMES = [ { diff --git a/website/src/pages/games/components/game-articles.js b/website/src/pages/games/components/game-articles.js index 4f4ced68750f01f17f7ff191253eaed3fc77f927..fa267336b690e53eec5f86bf8782f32afba30533 100644 --- a/website/src/pages/games/components/game-articles.js +++ b/website/src/pages/games/components/game-articles.js @@ -6,7 +6,6 @@ const { renderPlaceholders } = require("../../../lib/article-utils"); const GameThumb = require("./game-thumb"); -const translator = require("ks-cheap-translator"); class GameArticles { constructor(props) { diff --git a/website/src/pages/games/games.js b/website/src/pages/games/games.js index ed627df8c27bc71aa11d9cb06da9aecd39e5f100..0efb4d587d66e8aec452c078f9d7fbefa6084c5c 100644 --- a/website/src/pages/games/games.js +++ b/website/src/pages/games/games.js @@ -3,8 +3,6 @@ const { images_url } = require("../../../constants"); const WebPage = require("../../lib/web-page"); const GameArticles = require("./components/game-articles"); -const translator = require("ks-cheap-translator"); -const t = translator.trad.bind(translator); class GamesPage extends WebPage { render() { diff --git a/website/src/pages/software-development/components/software-articles.js b/website/src/pages/software-development/components/software-articles.js index 36a5a0476909284479a60079a51753a1dc417f3c..43219c00af7d5727808840d8f70239eac821fb87 100644 --- a/website/src/pages/software-development/components/software-articles.js +++ b/website/src/pages/software-development/components/software-articles.js @@ -2,7 +2,6 @@ const { loadArticles, sortArticles, renderPlaceholders } = require("../../../lib/article-utils"); const SoftwareThumb = require("./software-thumb"); -const translator = require("ks-cheap-translator"); class SoftwareArticles { constructor(props) { diff --git a/website/src/pages/software-development/software-development.js b/website/src/pages/software-development/software-development.js index a74945d9f111226776b7d4a8af4d16344f476ac1..f41a096b5fe3e9bdb97375baccef3b1cf18f55b9 100644 --- a/website/src/pages/software-development/software-development.js +++ b/website/src/pages/software-development/software-development.js @@ -3,8 +3,6 @@ const { images_url } = require("../../../constants"); const WebPage = require("../../lib/web-page"); const SoftwareArticles = require("./components/software-articles"); -const translator = require("ks-cheap-translator"); -const t = translator.trad.bind(translator); class SoftwareDevelopment extends WebPage { render() { diff --git a/website/src/template/components/navbar.js b/website/src/template/components/navbar.js index 74c88f187ca79d0e74af6f5cf8c2859a15ef04f7..2f3bf62e7f02c93f7f97c9990d17b85ea2611f12 100644 --- a/website/src/template/components/navbar.js +++ b/website/src/template/components/navbar.js @@ -1,8 +1,6 @@ "use strict"; const { images_url } = require("../../../constants"); -const translator = require("ks-cheap-translator"); -const t = translator.trad.bind(translator); const NAV_MENU_ITEMS = [ { url: "/games/", text: "Jeux" }, @@ -34,10 +32,15 @@ class NavBar { }); } - handle_chang_lang(lang) { - translator.update_translations(lang).then(() => { - obj2htm.renderCycle(); - }).catch(err => console.log(err)); + handle_change_lang(lang) { + const url_path_chunks = location.pathname.split("/"); + const location_contains_locale = translator.supported_languages.find(locale => url_path_chunks.includes(locale)); + const callback = location_contains_locale + ? function () { + location.pathname = url_path_chunks.map(chunk => chunk === location_contains_locale ? lang : chunk).join("/"); + } + : obj2htm.renderCycle.bind(obj2htm); + translator.update_translations(lang).then(callback).catch(err => console.log(err)); } renderHome() { @@ -92,7 +95,7 @@ class NavBar { return { tag: "img", src: `${images_url}/flag-${lang}.svg`, class: translator.locale === lang ? "selected" : "", - onclick: this.handle_chang_lang.bind(this, lang) + onclick: this.handle_change_lang.bind(this, lang) } }) }), diff --git a/website/src/template/template.js b/website/src/template/template.js index e1cee3c4f6b7d0108eeeb6ec4c25cc456fa86207..cf3fbc1b914c1a91216428fb6b8ea31f61d2b2c4 100644 --- a/website/src/template/template.js +++ b/website/src/template/template.js @@ -3,8 +3,6 @@ const { in_construction } = require("../../config"); const { images_url } = require("../../constants"); const NavBar = require("./components/navbar"); -const translator = require("ks-cheap-translator"); -const t = translator.trad.bind(translator) class Template { constructor(props) { @@ -79,7 +77,7 @@ class Template { }, { tag: "a", - href: "https://www.linkedin.com/company/kuadrado-software", + href: "https://linkedin.com/company/kuadrado-software", target: "_blank", contents: "in", title: "Linkedin", @@ -105,7 +103,7 @@ class Template { { tag: "a", target: "_blank", style_rules: { fontWeight: "bold" }, - href: "https://gitlab.com/kuadrado-software/kuadrado-website/-/blob/master/README.md", + href: "https://lab.frogg.it/kuadrado-software/kuadrado-website/-/blob/master/README.md", contents: "OPEN SOURCE" } ]