2024-05-05 18:38:46

This commit is contained in:
Kai Kimera 2024-05-05 21:38:47 +03:00
parent 3f78b0487d
commit 4cc8e3d5db
Signed by untrusted user: KaiKimera
GPG key ID: 2C3384BCFF16E5D4
4 changed files with 56 additions and 2 deletions

34
assets/js/language.js Normal file
View file

@ -0,0 +1,34 @@
(() => {
const $navigator = window.navigator;
const $location = window.location;
const $browser = ['language', 'browserLanguage', 'systemLanguage', 'userLanguage'];
let $language;
// Only do i18n at root,
// otherwise, redirect immediately.
if ($location.pathname !== '/') {
$location.replace('{{ .Permalink }}');
return 0;
}
const getFirstLanguage = function () {
if (Array.isArray($navigator.languages)) {
const $len = $navigator.languages.length;
for (let $i = 0; $i < $len; ++$i) {
$language = $navigator.languages[$i];
if ($language && $language.length) return $language;
}
}
// Support for other well known properties in browsers.
const $len = $browser.length;
for (let $i = 0; $i < $len; ++$i) {
$language = $navigator[$browser[$i]];
if ($language && $language.length) return $language;
}
return 'en';
}
const $preferLang = getFirstLanguage();
($preferLang.indexOf('ru') !== -1) ? $location.replace('/ru/') : $location.replace('/en/');
})();

View file

@ -1,4 +1,4 @@
<!doctype html>
<!DOCTYPE html>
{{ $lang := ((site.LanguageCode) | default "en-US") }}
{{ $type := ((.Type) | default "") }}
{{ $home := "" }}{{ $node := "" }}{{ $page := "" }}

19
layouts/alias.html Normal file
View file

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html lang="{{ site.Language.LanguageCode }}">
<head>
<title>{{ .Permalink }}</title>
<link rel="canonical" href="{{ .Permalink }}"/>
<meta name="robots" content="noindex"/>
<meta charset="utf-8"/>
<noscript>
<meta http-equiv="refresh" content="0; url={{ .Permalink }}"/>
</noscript>
<!--[ language-redirect ]-->
{{ $jsLang := (resources.Get "js/language.js") }}
{{ $jsLang = (($jsLang) | resources.ExecuteAsTemplate "js/language.js" .) }}
{{ $jsLang = ((($jsLang) | minify) | resources.Fingerprint) }}
<script src="{{ ($jsLang.RelPermalink) }}" integrity="{{ ($jsLang.Data.Integrity) }}"
crossorigin="anonymous"></script>
<!--[ / language-redirect ]-->
</head>
</html>

View file

@ -36,7 +36,8 @@
<!--[ theme-color ]-->
{{ $uiTheme := (((resources.Get "js/theme.js") | minify) | resources.Fingerprint) }}
<script src="{{ ($uiTheme.RelPermalink) }}" integrity="{{ ($uiTheme.Data.Integrity) }}" crossorigin="anonymous"></script>
<script src="{{ ($uiTheme.RelPermalink) }}" integrity="{{ ($uiTheme.Data.Integrity) }}"
crossorigin="anonymous"></script>
<!--[ / theme-color ]-->
<!--[ ui-fonts ]-->