2024-05-05 18:38:46
This commit is contained in:
parent
3f78b0487d
commit
4cc8e3d5db
4 changed files with 56 additions and 2 deletions
34
assets/js/language.js
Normal file
34
assets/js/language.js
Normal 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/');
|
||||
})();
|
|
@ -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
19
layouts/alias.html
Normal 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>
|
|
@ -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 ]-->
|
||||
|
|
Loading…
Reference in a new issue