Compare commits

...

2 Commits

Author SHA1 Message Date
PJ568 0567e35562 【重构】
8 months ago
PJ568 8b09880f19 【优化】国际化
8 months ago

@ -5,24 +5,16 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name='description' content='568_Calc 是一个简单的多平台支持的计算器。'> <meta name='description' content='568_Calc 是一个简单的多平台支持的计算器。'>
<meta http-equiv='content-language' content='zh-Hans-CN'> <meta http-equiv='content-language' content='zh-Hans-CN'>
<link rel="stylesheet" href="/css/loading.css">
<script src="/js/loading.js"></script>
<link rel="stylesheet" href="/css/main.css"> <link rel="stylesheet" href="/css/main.css">
<link rel="stylesheet" href="/css/translate.css"> <script src="//lib.baomitu.com/translate.js/3.2.1/translate.js" type="text/javascript"></script>
<script src="//lib.baomitu.com/translate.js/3.2.1/translate.js"></script> <script src="//lib.baomitu.com/pjax/0.2.8/pjax.min.js" type="text/javascript"></script>
<title class="notTranslate">404</title> <title class="notTranslate">404</title>
<link rel="icon" href="/assets/favicon.svg"> <link rel="icon" href="/assets/favicon.svg">
<link rel="stylesheet" href="/css/hack/dist/hack.css"> <link rel="stylesheet" href="/css/hack/dist/hack.css">
<link rel="stylesheet" href="/css/hack/dist/standard.css"> <link rel="stylesheet" href="/css/hack/dist/standard.css">
<script src="/js/include.js"></script> <script src="/js/override.js"></script>
<script src="/js/giscus.js"></script>
</head> </head>
<body class="standard"> <body class="standard">
<div id="loading">
<div id="Calc-loading_bg">
<img alt="正在加载" class="Calc-loader" src="/css/loading.svg"/>
</div>
</div>
<div class="main container"> <div class="main container">
<a href="//github.com/PJ-568/568_Calc" target="_blank" class="github-corner"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#795548; color:#101010; position: absolute; top: 0; border: 0; right: 0;"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a> <a href="//github.com/PJ-568/568_Calc" target="_blank" class="github-corner"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#795548; color:#101010; position: absolute; top: 0; border: 0; right: 0;"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a>
@ -48,6 +40,9 @@
<br/> <br/>
<include src="/footer.html"></include> <include src="/footer.html"></include>
</div> </div>
<div class="loading-bar">
<div class="progress"></div>
</div>
<script src="//lf6-cdn-tos.bytecdntp.com/cdn/expire-1-y/instant.page/5.1.0/instantpage.min.js"></script> <script src="//lf6-cdn-tos.bytecdntp.com/cdn/expire-1-y/instant.page/5.1.0/instantpage.min.js"></script>
</body> </body>
</html> </html>

@ -1,31 +0,0 @@
#loading {
position: fixed;
background-color: #212121;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
z-index: 1000000
}
#Calc-loading_bg{
background-color: rgba(0,0,0,0.7);
}
.Calc-loader {
line-height: 50px;
text-align: center;
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
font-family: helvetica, arial, sans-serif;
text-transform: uppercase;
font-weight: 900;
color: #0277BD;
letter-spacing: 0.2em;
}
@media screen and (max-width: 980px){.Clac-loader{width:80%}}
@media screen and (min-width: 980px){.Clac-loader{width:25rem}}

@ -1,4 +1,63 @@
html { html {
color: #DDD; color: #DDD;
background-color: #111; background-color: #111;
} }
#translate>.translateSelectLanguage {
cursor: pointer;
position: absolute;
padding: 0.3rem;
padding-left: 0.5rem;
padding-right: 0.5rem;
color: #DDD;
background-color: #795548;
border: 2px solid #8D6E63;
}
@media screen and (max-width: 980px) {
#translate>.translateSelectLanguage {
left: 1rem;
top: 1rem;
font-size: .8rem;
width: 6rem
}
}
@media screen and (min-width: 980px) {
#translate>.translateSelectLanguage {
left: 2rem;
top: 2rem;
font-size: 1rem
}
}
/* 加载进度条 */
.loading-bar {
position: fixed;
top: 0;
left: 0;
z-index: 99999;
opacity: 0;
transition: opacity .4s linear;
.progress {
position: fixed;
top: 0;
left: 0;
width: 0;
height: 4px;
background-color: #007bff;
box-shadow: 0 0 10px rgba(119, 182, 255, .7);
}
&.loading {
opacity: 1;
transition: none;
.progress {
transition: width .4s ease;
}
}
}
/* 加载进度条结束 */

@ -1,12 +0,0 @@
#translate>.translateSelectLanguage {
cursor:pointer;
position:absolute;
padding:0.3rem;
padding-left:0.5rem;
padding-right:0.5rem;
color: #DDD;
background-color: #795548;
border:2px solid #8D6E63;
}
@media screen and (max-width: 980px){#translate>.translateSelectLanguage {left:1rem;top:1rem;font-size:.8rem;width:6rem}}
@media screen and (min-width: 980px){#translate>.translateSelectLanguage {left:2rem;top:2rem;font-size:1rem}}

@ -5,24 +5,16 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name='description' content='568_Calc 是一个简单的多平台支持的计算器。'> <meta name='description' content='568_Calc 是一个简单的多平台支持的计算器。'>
<meta http-equiv='content-language' content='zh-Hans-CN'> <meta http-equiv='content-language' content='zh-Hans-CN'>
<link rel="stylesheet" href="css/loading.css">
<script src="js/loading.js"></script>
<link rel="stylesheet" href="css/main.css"> <link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/translate.css"> <script src="//lib.baomitu.com/translate.js/3.2.1/translate.js" type="text/javascript"></script>
<script src="//lib.baomitu.com/translate.js/3.2.1/translate.js"></script> <script src="//lib.baomitu.com/pjax/0.2.8/pjax.min.js" type="text/javascript"></script>
<title class="notTranslate">568_Calc</title> <title class="notTranslate">568_Calc</title>
<link rel="icon" href="assets/favicon.svg"> <link rel="icon" href="assets/favicon.svg">
<link rel="stylesheet" href="css/hack/dist/hack.css"> <link rel="stylesheet" href="css/hack/dist/hack.css">
<link rel="stylesheet" href="css/hack/dist/standard.css"> <link rel="stylesheet" href="css/hack/dist/standard.css">
<script src="js/include.js"></script> <script src="js/override.js"></script>
<script src="js/giscus.js"></script>
</head> </head>
<body class="standard"> <body class="standard">
<div id="loading">
<div id="Calc-loading_bg">
<img alt="正在加载" class="Calc-loader" src="css/loading.svg"/>
</div>
</div>
<div class="main container"> <div class="main container">
<a href="//github.com/PJ-568/568_Calc" target="_blank" class="github-corner"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#795548; color:#101010; position: absolute; top: 0; border: 0; right: 0;"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a> <a href="//github.com/PJ-568/568_Calc" target="_blank" class="github-corner"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#795548; color:#101010; position: absolute; top: 0; border: 0; right: 0;"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a>
@ -62,6 +54,9 @@
<br/> <br/>
<include src="footer.html"></include> <include src="footer.html"></include>
</div> </div>
<div class="loading-bar">
<div class="progress"></div>
</div>
<script src="//lf6-cdn-tos.bytecdntp.com/cdn/expire-1-y/instant.page/5.1.0/instantpage.min.js"></script> <script src="//lf6-cdn-tos.bytecdntp.com/cdn/expire-1-y/instant.page/5.1.0/instantpage.min.js"></script>
</body> </body>
</html> </html>

@ -1,56 +0,0 @@
// 获取用户使用的语种。
var lang = translate.language.getCurrent();
var giscus_lang = "zh-CN";
switch (lang) {
case "chinese_traditional":
giscus_lang = "zh-TW";
break;
case "english":
giscus_lang = "en";
break;
case "spanish":
giscus_lang = "es";
break;
case "japanese":
giscus_lang = "ja";
break;
case "korean":
giscus_lang = "ko";
break;
case "french":
giscus_lang = "fr";
break;
case "arabic":
giscus_lang = "ar";
break;
default:
giscus_lang = "zh-CN";
break;
}
var giscus = function () {
const script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://giscus.app/client.js";
script.setAttribute("data-repo", "PJ-568/568_Calc");
script.setAttribute("data-repo-id", "R_kgDOKgTh_A");
script.setAttribute("data-category", "Announcements");
script.setAttribute("data-category-id", "DIC_kwDOKgTh_M4CaKUO");
script.setAttribute("data-mapping", "title");
script.setAttribute("data-strict", "1");
script.setAttribute("data-reactions-enabled", "1");
script.setAttribute("data-emit-metadata", "0");
script.setAttribute("data-input-position", "top");
script.setAttribute("data-theme", "transparent_dark");
script.setAttribute("data-lang", giscus_lang);
script.setAttribute("data-loading", "lazy");
script.crossOrigin = "anonymous";
script.async = true;
document.getElementById("giscus-container").appendChild(script);
};
window.addEventListener('load', giscus);

@ -1,26 +0,0 @@
function includeHTML() {
var elements = document.getElementsByTagName("include");
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
var file = element.getAttribute("src");
if (file) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
element.innerHTML = this.responseText;
// 执行加载的JavaScript代码
var scripts = element.getElementsByTagName("script");
for (var j = 0; j < scripts.length; j++) {
var script = document.createElement("script");
script.innerHTML = scripts[j].innerHTML;
document.body.appendChild(script);
}
}
};
xhttp.open("GET", file, true);
xhttp.send();
}
}
}
document.addEventListener("DOMContentLoaded", includeHTML);

@ -1,43 +0,0 @@
// const sleep = (delay) => new Promise((resolve) => setTimeout(resolve, delay))
document.onreadystatechange=function () {
if (document.readyState=="complete"){
loadingFade();
}
}
function startLoading() {
const position = document.getElementById('loading');
var loadingBackground=document.getElementById('Calc-loading_bg');
position.style.display = 'block';
loadingBackground.style.opacity=1;
setTimeout(() => loadingFade(), 30000)
}
function loadingFade() {
var opacity=1;
const position = document.getElementById('loading');
var loadingBackground=document.getElementById('Calc-loading_bg');
var time=setInterval(function () {
if (opacity<=0){
clearInterval(time);
position.style.display = 'none';
try{
translate.listener.start();
translate.language.setLocal('chinese_simplified');
translate.setAutoDiscriminateLocalLanguage();
translate.language.setUrlParamControl();
translate.ignore.class.push('notTranslate');
}
catch(e){console.log(e);}
translate.setUseVersion2();
translate.nomenclature.append('chinese_simplified','english',`
568_Calc=568_Calc
`);
translate.execute();
}
loadingBackground.style.opacity=opacity;
opacity-=0.4;
},100);
}

@ -0,0 +1,214 @@
(function () {
// giscus 评论系统
//// 获取用户使用的语种并转换为 giscus 可识别的标记
const getCurrentLanguage = function () {
var lang = translate.language.getCurrent();
var giscus_lang = "zh-CN";
switch (lang) {
case "chinese_traditional":
giscus_lang = "zh-TW";
break;
case "english":
giscus_lang = "en";
break;
case "spanish":
giscus_lang = "es";
break;
case "japanese":
giscus_lang = "ja";
break;
case "korean":
giscus_lang = "ko";
break;
case "french":
giscus_lang = "fr";
break;
case "arabic":
giscus_lang = "ar";
break;
case "catalan":
giscus_lang = "ca";
break;
case "danish":
giscus_lang = "da";
break;
case "deutsch":
giscus_lang = "de";
break;
case "persian":
giscus_lang = "fa";
break;
case "greek":
giscus_lang = "gr";
break;
case "serbian":
giscus_lang = "hbs";
break;
case "hebrew":
giscus_lang = "he";
break;
case "hungarian":
giscus_lang = "hu";
break;
case "italian":
giscus_lang = "it";
break;
default:
giscus_lang = "zh-CN";
break;
}
return giscus_lang;
}
var SetupGiscus = function (giscus_lang) {
if (document.getElementById("giscus-container") != null) {
const script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://giscus.app/client.js";
script.setAttribute("data-repo", "PJ-568/568_Calc");
script.setAttribute("data-repo-id", "R_kgDOKgTh_A");
script.setAttribute("data-category", "Announcements");
script.setAttribute("data-category-id", "DIC_kwDOKgTh_M4CaKUO");
script.setAttribute("data-mapping", "title");
script.setAttribute("data-strict", "1");
script.setAttribute("data-reactions-enabled", "1");
script.setAttribute("data-emit-metadata", "0");
script.setAttribute("data-input-position", "top");
script.setAttribute("data-theme", "transparent_dark");
script.setAttribute("data-lang", giscus_lang);
script.crossOrigin = "anonymous";
script.async = true;
document.getElementById("giscus-container").appendChild(script);
}
}
function includeHTML() {
var elements = document.getElementsByTagName("include");
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
var file = element.getAttribute("src");
if (file) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
element.innerHTML = this.responseText;
// 执行加载的JavaScript代码
var scripts = element.getElementsByTagName("script");
for (var j = 0; j < scripts.length; j++) {
var script = document.createElement("script");
script.innerHTML = scripts[j].innerHTML;
document.body.appendChild(script);
}
}
};
xhttp.open("GET", file, true);
xhttp.send();
}
}
}
// translate-js 翻译系统
function initTranslate() {
try {
translate.service.use('client.edge');
translate.listener.start();
translate.language.setLocal('chinese_simplified');
translate.setAutoDiscriminateLocalLanguage();
translate.language.setUrlParamControl();
translate.ignore.class.push('notTranslate');
translate.execute();
}
catch (e) {
console.log('翻译系统出错:' + e);
}
}
var loadingBar = document.querySelector(".loading-bar");
var progress = document.querySelector(".loading-bar .progress");
var timer = null;
function initAni() {
loadingBar = document.querySelector(".loading-bar");
progress = document.querySelector(".loading-bar .progress");
}
function endLoad() {
clearInterval(timer);
progress.style.width = "100%";
loadingBar.classList.remove("loading");
setTimeout(function () {
progress.style.width = 0;
}, 400);
}
// PJAX 集成
let pjax;
//// 初始化 PJAX
function initPjax() {
try {
const Pjax = window.Pjax || function () { };
pjax = new Pjax({
selectors: [
'head title',
'.container',
'[data-pjax]',
'.pjax-reload'
]
})
}
catch (e) {
console.log('PJAX 出错:' + e);
}
}
// 初始化
function initialize() {
initPjax(); //// 初始化 PJAX
includeHTML(); //// 引入
initTranslate(); //// 初始化页面翻译
initAni(); //// 初始化加载动画
SetupGiscus(getCurrentLanguage()); //// 初始化评论系统
}
// 触发器
//// 网页加载完毕后触发
window.addEventListener('DOMContentLoaded', () => initialize());
//// 翻译执行完成后触发
translate.listener.renderTaskFinish = function () {
SetupGiscus(getCurrentLanguage());
}
//// Pjax 开始时执行的函数
document.addEventListener("pjax:send", function () {
var loadingBarWidth = 20;
var MAX_LOADING_WIDTH = 95;
loadingBar.classList.add("loading");
progress.style.width = loadingBarWidth + "%";
clearInterval(timer);
timer = setInterval(function () {
loadingBarWidth += 3;
if (loadingBarWidth > MAX_LOADING_WIDTH) {
loadingBarWidth = MAX_LOADING_WIDTH;
}
progress.style.width = loadingBarWidth + "%";
}, 500);
});
//// 监听 Pjax 完成后,重新加载的函数
document.addEventListener("pjax:complete", function () {
SetupGiscus(getCurrentLanguage());
includeHTML();
endLoad();
})
})();
Loading…
Cancel
Save