mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-04-01 11:46:10 +00:00
* website Internationalization (#1904) * added devcontainer config * internationalization under dev * internationalization of _data done * overlays internationalization done * improved routing * updated gitignore * remove .devcontainer * internationalization in progess deleted all the intermediate files added translation of few sections * remaining website strings are added to translation * done internationalization - fully converted to i18n plugin - wrote bash script for creating a combined translations.json * internationalization UI done * a quick fix * remove jq installation * Added translation using Weblate (German) * Translated using Weblate (French) Currently translated at 100.0% (212 of 212 strings) Translation: SimpleX Chat/SimpleX Chat website Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/fr/ * Translated using Weblate (German) Currently translated at 42.9% (91 of 212 strings) Translation: SimpleX Chat/SimpleX Chat website Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/de/ * fixes of web Internationalization (#1925) * a quick fix * blog route for all languages is shifted to root blog route * wrote merge_translations.js * remove language label from dropdown * update language names * refactor scripts * remove catch from script * Added translation using Weblate (Dutch) * Added translation using Weblate (Norwegian Bokmål) * Translated using Weblate (Dutch) Currently translated at 33.0% (70 of 212 strings) Translation: SimpleX Chat/SimpleX Chat website Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/nl/ * website: internationalization fixes (#1931) * added devcontainer config * internationalization under dev * internationalization of _data done * overlays internationalization done * improved routing * updated gitignore * remove .devcontainer * internationalization in progess deleted all the intermediate files added translation of few sections * remaining website strings are added to translation * done internationalization - fully converted to i18n plugin - wrote bash script for creating a combined translations.json * internationalization UI done * a quick fix * blog route for all languages is shifted to root blog route * wrote merge_translations.js * remove flag from blog * updated nav stylings & logo links * add enabled key * updated nav dropdown styling * gave specific lang to i18n plugin. overlay translations are now working. * enable nl & nb_NO * updated nav stylings * updated contact.js --------- Co-authored-by: M Sarmad Qadeer <msarmadqadeer@gmail.com> * Translated using Weblate (German) Currently translated at 47.6% (101 of 212 strings) Translation: SimpleX Chat/SimpleX Chat website Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/de/ * fixed internationalization issues * updated strings, refactor contact.js * updated nav stylings for mobile * a bit smaller padding on mobile * Added translation using Weblate (Czech) * Translated using Weblate (Czech) Currently translated at 100.0% (212 of 212 strings) Translation: SimpleX Chat/SimpleX Chat website Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/cs/ * Translated using Weblate (French) Currently translated at 100.0% (212 of 212 strings) Translation: SimpleX Chat/SimpleX Chat website Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/fr/ * Translated using Weblate (German) Currently translated at 100.0% (212 of 212 strings) Translation: SimpleX Chat/SimpleX Chat website Translate-URL: https://hosted.weblate.org/projects/simplex-chat/website/de/ * enabled languages * check/correct (#1949) --------- Co-authored-by: M Sarmad Qadeer <MSarmadQadeer@gmail.com> Co-authored-by: Ophiushi <Ophiushi@users.noreply.hosted.weblate.org> Co-authored-by: mlanp <github@lang.xyz> Co-authored-by: John m <jvanmanen@gmail.com> Co-authored-by: zenobit <zen@osowoso.xyz> Co-authored-by: Ophiushi <41908476+ishi-sama@users.noreply.github.com>
115 lines
6.0 KiB
HTML
115 lines
6.0 KiB
HTML
<style>
|
|
.tab-button {
|
|
color: #a8b0b4;
|
|
background: linear-gradient(#fff, #fff) padding-box,
|
|
linear-gradient(to bottom, #a8b0b4, transparent) border-box;
|
|
border: 1px solid transparent;
|
|
border-radius: 6px 6px 0px 0px;
|
|
transition: color 0.3s ease;
|
|
text-decoration: underline;
|
|
text-underline-offset: 3px;
|
|
}
|
|
.dark .tab-button{
|
|
color: #fff;
|
|
background: linear-gradient(#0C0B13, #0C0B13) padding-box,
|
|
linear-gradient(to bottom, #01F1FF, transparent) border-box;
|
|
}
|
|
.tab-button.active {
|
|
color: #0053d0;
|
|
text-decoration: none;
|
|
}
|
|
.dark .tab-button.active {
|
|
color: #70F0F9;
|
|
}
|
|
</style>
|
|
|
|
<section id="simplex-explained" class="bg-primary-bg-light dark:bg-primary-bg-dark lg:h-[890px] py-[90px] px-5">
|
|
<div class="container">
|
|
<p class="text-[35px] leading-[45px] md:leading-[55px] lg:text-[38px] text-center font-bold text-grey-black dark:text-white mb-9">{{ "simplex-explained" | i18n({}, lang ) | safe }}</p>
|
|
|
|
<!-- Tab links -->
|
|
<div class="tabs hidden md:flex gap-2 mb-24">
|
|
<div data-btn-index="0" class="flex-1 tab-button tab-1 p-2 text-[20px] text-center font-bold cursor-pointer active">{{ "simplex-explained-tab-1-text" | i18n({}, lang ) | safe }}</div>
|
|
<div data-btn-index="1" class="flex-1 tab-button tab-2 p-2 text-[20px] text-center font-bold cursor-pointer">{{ "simplex-explained-tab-2-text" | i18n({}, lang ) | safe }}</div>
|
|
<div data-btn-index="2" class="flex-1 tab-button tab-3 p-2 text-[20px] text-center font-bold cursor-pointer">{{ "simplex-explained-tab-3-text" | i18n({}, lang ) | safe }}</div>
|
|
</div>
|
|
|
|
<!-- Tab content -->
|
|
<div class="swiper simplex-explained-swiper">
|
|
<div class="swiper-wrapper h-[inherit] mb-20 md:mb-0">
|
|
|
|
<div class="swiper-slide h-[inherit]">
|
|
<div class="tab-button p-2 text-[20px] text-center font-bold active md:hidden">{{ "simplex-explained-tab-1-text" | i18n({}, lang ) | safe }}</div>
|
|
<div class="flex flex-col justify-center items-center">
|
|
<img class="h-[340px] mb-[74px]" src="/img/new/explained-1.svg" alt="" />
|
|
<p class="text-black dark:text-white text-[16px] font-normal text-center">
|
|
{{ "simplex-explained-tab-1-p-1" | i18n({}, lang ) | safe }}
|
|
</p>
|
|
<p class="text-black dark:text-white text-[16px] font-normal text-center">
|
|
{{ "simplex-explained-tab-1-p-2" | i18n({}, lang ) | safe }}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="swiper-slide h-[inherit]">
|
|
<div class="tab-button p-2 text-[20px] text-center font-bold active md:hidden">{{ "simplex-explained-tab-2-text" | i18n({}, lang ) | safe }}</div>
|
|
<div class="flex flex-col justify-center items-center">
|
|
<img class="h-[340px] mb-[74px]" src="/img/new/explained-2.svg" alt="" />
|
|
<p class="text-black dark:text-white text-[16px] font-normal text-center">
|
|
{{ "simplex-explained-tab-2-p-1" | i18n({}, lang ) | safe }}
|
|
</p>
|
|
<p class="text-black dark:text-white text-[16px] font-normal text-center">
|
|
{{ "simplex-explained-tab-2-p-2" | i18n({}, lang ) | safe }}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="swiper-slide h-[inherit]">
|
|
<div class="tab-button p-2 text-[20px] text-center font-bold active md:hidden">{{ "simplex-explained-tab-3-text" | i18n({}, lang ) | safe }}</div>
|
|
<div class="flex flex-col justify-center items-center">
|
|
<img class="h-[340px] mb-[74px]" src="/img/new/explained-3.svg" alt="" />
|
|
<p class="text-black dark:text-white text-[16px] font-normal text-center">
|
|
{{ "simplex-explained-tab-3-p-1" | i18n({}, lang ) | safe }}
|
|
</p>
|
|
<p class="text-black dark:text-white text-[16px] font-normal text-center">
|
|
{{ "simplex-explained-tab-3-p-2" | i18n({}, lang ) | safe }}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<div class="swiper-pagination simplex-explained-swiper-pagination mt-100 md:hidden"></div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<script>
|
|
window.addEventListener("load", function () {
|
|
const simplexExplainedSwiper__bullets = document.querySelectorAll(".simplex-explained-swiper .swiper-pagination > span");
|
|
const simplexExplainedSwiper__tabs = document.querySelectorAll("#simplex-explained .tabs .tab-button");
|
|
|
|
const observer = new MutationObserver((mutations) => {
|
|
mutations.forEach((mutation) => {
|
|
if (mutation.type === "attributes" && mutation.attributeName === "class" && mutation.target.classList.contains("swiper-pagination")) {
|
|
simplexExplainedSwiper__bullets.forEach((el,index) => {
|
|
if (el.classList.contains("swiper-pagination-bullet-active")) {
|
|
simplexExplainedSwiper__tabs[index].classList.add("active");
|
|
} else {
|
|
simplexExplainedSwiper__tabs[index].classList.remove("active");
|
|
}
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
const targetNode = document.querySelector(".simplex-explained-swiper .swiper-pagination");
|
|
observer.observe(targetNode, { attributes: true });
|
|
|
|
window.addEventListener('click',e=>{
|
|
if(e.target.closest("#simplex-explained .tabs .tab-button")){
|
|
const index = e.target.closest("#simplex-explained .tabs .tab-button").dataset.btnIndex;
|
|
simplexExplainedSwiper__bullets[index].click();
|
|
}
|
|
})
|
|
});
|
|
</script> |