Commit fd0617eb by xcoder

VPN-45 A bunch of fixes for desktop and mobile

1 parent b34435f7
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang="ru">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link type="image/svg+xml" href="favicons/favicon.svg" rel="icon" /> <link type="image/svg+xml" href="favicons/favicon.svg" rel="icon" />
<link rel="stylesheet" href="bootstrap.min.css" /> <link rel="stylesheet" href="bootstrap.min.css" />
<link rel="stylesheet" href="style.css?ver=1.08" /> <link rel="stylesheet" href="style.css?ver=1.15" />
<title>KrystalVPN</title> <title>KrystalVPN</title>
</head> </head>
<body> <body>
...@@ -43,17 +43,19 @@ ...@@ -43,17 +43,19 @@
Русский Русский
</div> </div>
<div class="dropdown-menu" aria-labelledby="langSwitcher"> <div class="dropdown-menu" aria-labelledby="langSwitcher">
<span <a
class="dropdown-item active" class="dropdown-item active"
data-lang="ru" data-lang="ru"
onclick="switchLang('ru', 'desktop')" onclick="switchLang('ru', 'desktop')"
>Русский</span href=""
>Русский</a
> >
<span <a
class="dropdown-item" class="dropdown-item"
data-lang="en" data-lang="en"
onclick="switchLang('en', 'desktop')" onclick="switchLang('en', 'desktop')"
>English</span href="./index_en.html"
>English</a
> >
</div> </div>
</div> </div>
...@@ -97,17 +99,19 @@ ...@@ -97,17 +99,19 @@
RU RU
</div> </div>
<div class="dropdown-menu mobile" aria-labelledby="langSwitcher"> <div class="dropdown-menu mobile" aria-labelledby="langSwitcher">
<span <a
class="dropdown-item active" class="dropdown-item active"
data-lang-mobile="ru" data-lang-mobile="ru"
onclick="switchLang('ru', 'mobile')" onclick="switchLang('ru', 'mobile')"
>RU</span href=""
>RU</a
> >
<span <a
class="dropdown-item" class="dropdown-item"
data-lang-mobile="en" data-lang-mobile="en"
onclick="switchLang('en', 'mobile')" onclick="switchLang('en', 'mobile')"
>EN</span href="./index_en.html"
>EN</a
> >
</div> </div>
<div class="chevron mobile" <div class="chevron mobile"
...@@ -155,7 +159,7 @@ ...@@ -155,7 +159,7 @@
Защищенный доступ в любой точке мира Защищенный доступ в любой точке мира
</div> </div>
<div class="d-card-wrapper__content" data-lang="servers"> <div class="d-card-wrapper__content" data-lang="servers">
Надежное подключение к виртуальной частной сети (ВПН) из любой Надежное подключение к виртуальной частной сети (VPN) из любой
точки мира. Наши высокоскоростные серверы в 94 странах помогут точки мира. Наши высокоскоростные серверы в 94 странах помогут
вам взять контроль в свои руки. вам взять контроль в свои руки.
</div> </div>
...@@ -278,7 +282,6 @@ ...@@ -278,7 +282,6 @@
</div> </div>
</footer> </footer>
<script src="bootstrap.min.js"></script> <script src="bootstrap.min.js"></script>
<script src="lang.js"></script>
<script src="index.js"></script> <script src="index.js"></script>
</body> </body>
</html> </html>
...@@ -32,12 +32,37 @@ window.onload = function () { ...@@ -32,12 +32,37 @@ window.onload = function () {
console.log("localStorage is not supported"); console.log("localStorage is not supported");
} }
const _path = window.location.pathname.split("/");
const path = _path[_path.length -1];
if (langStr == null) { if (langStr == null) {
const lang = getLangFromBrowser(); const lang = getLangFromBrowser();
switchLang(lang, platform); switchLang(lang, platform);
if (lang === "en") {
if (path !== "index_en.html") {
window.location.href = "./index_en.html";
}
}
else {
if (path !== "index.html") {
window.location.href = "./index.html";
}
}
} }
else { else {
switchLang(langStr, platform); switchLang(langStr, platform);
if (langStr === "en") {
if (path !== "index_en.html") {
window.location.href = "./index_en.html";
}
}
else {
if (path !== "index.html") {
window.location.href = "./index.html";
}
}
} }
try { try {
...@@ -132,39 +157,6 @@ function switchLang(lang, platform) { ...@@ -132,39 +157,6 @@ function switchLang(lang, platform) {
googlePlayImg.src = "assets/google_play.svg"; googlePlayImg.src = "assets/google_play.svg";
} }
} }
for (const key in langDict) {
const langNode = document.querySelector(`[data-lang=${CSS.escape(key)}]`);
const langNodeMobile = document.querySelector(
`[data-lang-mobile=${CSS.escape(key)}]`
);
if (langNode != null) {
const translate = langDict[key][lang];
if (translate != null) {
langNode.innerHTML = translate;
}
}
if (langNodeMobile != null) {
const translate = langDict[key][lang];
if (translate != null) {
langNodeMobile.innerHTML = translate;
}
}
if (googlePlayImg != null) {
if (activeLang === "en") {
googlePlayImg.src = "assets/google_play_ru.svg";
}
if (activeLang === "ru") {
googlePlayImg.src = "assets/google_play.svg";
}
}
}
} }
if (ddMobile != null) { if (ddMobile != null) {
...@@ -198,20 +190,6 @@ function switchLang(lang, platform) { ...@@ -198,20 +190,6 @@ function switchLang(lang, platform) {
googlePlayImg.src = "assets/google_play.svg"; googlePlayImg.src = "assets/google_play.svg";
} }
} }
for (const key in langDict) {
const langNodeMobile = document.querySelector(
`[data-lang-mobile=${CSS.escape(key)}]`
);
if (langNodeMobile != null) {
const translate = langDict[key][lang];
if (translate != null) {
langNodeMobile.innerHTML = translate;
}
}
}
} }
const dropdownMenu = document.querySelector(".dropdown-menu"); const dropdownMenu = document.querySelector(".dropdown-menu");
...@@ -228,8 +206,9 @@ function switchLang(lang, platform) { ...@@ -228,8 +206,9 @@ function switchLang(lang, platform) {
dropdownMenuMobile.classList.remove("show"); dropdownMenuMobile.classList.remove("show");
} }
if (mobileCheck()) { const openedMenu = document.querySelector("#opened-menu");
switchMobileMenu(); if (mobileCheck() && openedMenu.classList.contains("show")) {
openedMenu.classList.remove("show");
} }
} }
...@@ -237,7 +216,9 @@ function switchLang(lang, platform) { ...@@ -237,7 +216,9 @@ function switchLang(lang, platform) {
const mobArrow = document.querySelector(".chevron.mobile"); const mobArrow = document.querySelector(".chevron.mobile");
if (mobArrow != null) { if (mobArrow != null) {
mobArrow.classList.toggle("rotated"); if (mobArrow.classList.contains("rotated")) {
mobArrow.classList.remove("rotated");
}
} }
} }
} }
......
const langDict = {
"rights": {
"ru": "Все права защищены.",
"en": "All rights reserved.",
},
"support": {
"ru": "Связаться с нами",
"en": "Contact us",
},
"support-onl": {
"ru": `Наши специалисты доступны 24/7 в онлайн-чате и по электронной почте,
чтобы помочь вам с установкой и устранением неполадок.`,
"en": `Our experts are available 24/7 via live chat and email,
to help you with installation and troubleshooting.`,
},
"can-use": {
"ru": "Можно использовать",
"en": "Can be used",
},
"all-devs": {
"ru": "на всех устройствах",
"en": "on all devices",
},
"subscribes": {
"ru": `Оформив подписку на Krystal VPN, вы получите удобные приложения для всех ваших устройств, включая телефоны, планшеты,
компьютеры, роутеры и многие другие девайсы.`,
"en": `By subscribing to Krystal VPN, you will get convenient applications for all your devices, including phones, tablets,
computers, routers and many other devices.`,
},
"our-service": {
"ru": `Наш VPN-сервис прост в использовании. Как и наша гарантия. Если вам что-то не нравится, мы вернем ваши деньги. Никаких
вопросов, никакого риска.`,
"en": `Our VPN-service is easy to use. As is our guarantee. If you don't like something, we will refund your money. Any
questions, no risk.`,
},
"guarantees": {
"ru": `Гарантия возврата денег 30 дней`,
"en": `30 days money back guarantee`,
},
"description": {
"ru": `Использование Интернета не означает, что все должны видеть ваши личные данные. Совершаете ли вы покупки онлайн или
подключаетесь к Wi-Fi в кафе, вы можете обеспечить более серьезную защиту своей персональной информации.`,
"en": `Using the Internet does not mean that everyone should see your personal data. Do you shop online or connect
to Wi-Fi in a cafe, you can provide more serious protection of your personal information.`,
},
"safety": {
"ru": "Безопасный Интернет за пару секунд",
"en": "Secure Internet in a couple of seconds",
},
"details": {
"ru": `Наша VPN-сеть создана для скорости и использует технологии нового поколения.`,
"en": `Our VPN is built for speed and uses next generation technology.`,
},
"speed": {
"ru": "Высокая скорость везде и всегда",
"en": "High speed everywhere and always",
},
"servers": {
"ru": `Надежное подключение к виртуальной частной сети (ВПН) из любой точки мира. Наши высокоскоростные серверы в 94 странах помогут
вам взять контроль в свои руки.`,
"en": `Reliable connection to a virtual private network (VPN) from any points of the world. Our high-speed servers in 94 countries will help
you take control into your own hands.`,
},
"world-points": {
"ru": "Защищенный доступ в любой точке мира",
"en": "Secure access anywhere in the world",
},
"vpn-service": {
"ru": "VPN-сервис",
"en": "VPN-service",
},
"fast": {
"ru": "быстрый и безопасный",
"en": "fast and safe",
},
"truely": {
"ru": "Открой для себя по-настоящему",
"en": "Discover for real",
},
"download": {
"ru": "Скачать KRYSTALVPN",
"en": "Download KRYSTALVPN",
},
"functions": {
"ru": "Функции",
"en": "Functions",
},
"contact-us": {
"ru": "Контакты",
"en": "Contact us",
},
"download-menu": {
"ru": "Скачать",
"en": "Download",
},
"download-mob": {
"ru": "Получить KRYSTALVPN",
"en": "Get KRYSTALVPN",
},
};
\ No newline at end of file \ No newline at end of file
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!