icon i18n
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,129 +1 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html><html><head><meta charset="utf-8"/><meta name="renderer"content="webkit"/><meta name="force-rendering"content="webkit"/><meta http-equiv="X-UA-Compatible"content="IE=edge,chrome=1"/><meta name="viewport"content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=2.0, user-scalable=yes"/><meta name="keywords"content="flagnote"/><meta name="description"content="flag note"/><meta name="theme-color"content="#ed4014"/><meta name="format-detection"content="telephone=no,email=no,adress=no"/><meta name="google"content="notranslate"><meta http-equiv="Expires"content="0"/><meta http-equiv="Pragma"content="no-cache"/><meta http-equiv="Cache-control"content="no-cache"/><meta http-equiv="Cache"content="no-cache"/><link rel="icon"href="/static/favicon.png"/><title>flagnote.com</title><style>body{background-color:#dddddd}</style><script type="text/javascript">(function(){var ua=navigator.userAgent.toLocaleLowerCase();var browserType="",browserVersion="";if(ua.match(/msie/)!=null||ua.match(/trident/)!=null){browserType="IE";alert("IE is not supported.");window.location="/IeIsNotSupported.html"}})();</script><script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.min.js"rel="stylesheet"type="text/javascript"></script><script src="https://cdn.jsdelivr.net/npm/vue-router@3.5.4/dist/vue-router.min.js"rel="stylesheet"type="text/javascript"></script><script src="https://cdn.jsdelivr.net/npm/axios@0.27.2/dist/axios.min.js"rel="stylesheet"type="text/javascript"></script><script src="https://cdn.jsdelivr.net/npm/view-design@4.7.0/dist/iview.min.js"rel="stylesheet"type="text/javascript"></script><script src="https://cdn.jsdelivr.net/npm/pako@2.1.0/dist/pako.min.js"rel="stylesheet"type="text/javascript"></script><script src="https://cdn.jsdelivr.net/npm/crypto-js@4.1.1/crypto-js.min.js"rel="stylesheet"type="text/javascript"></script><script src="https://cdn.jsdelivr.net/npm/vue-i18n@8.21.1/dist/vue-i18n.min.js"rel="stylesheet"type="text/javascript"></script><script src="https://cdn.jsdelivr.net/npm/file-saver@2.0.5/dist/FileSaver.min.js"rel="stylesheet"type="text/javascript"></script><script src="https://cdn.jsdelivr.net/npm/qrcode@1.5.1/build/qrcode.js"rel="stylesheet"type="text/javascript"></script><script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js"rel="stylesheet"type="text/javascript"></script><link rel="stylesheet"href="https://cdn.jsdelivr.net/npm/view-design@4.7.0/dist/styles/iview.css"><!--Global site tag(gtag.js)-Google Analytics--><script async src="https://www.googletagmanager.com/gtag/js?id=G-FPS9PD2DFF"></script><script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date());gtag("config","G-FPS9PD2DFF");</script></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id="app"></div></body></html>
|
||||||
<html lang="">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
|
|
||||||
<meta name="renderer" content="webkit" />
|
|
||||||
<meta name="force-rendering" content="webkit" />
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
|
||||||
<meta name="viewport"
|
|
||||||
content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=2.0, user-scalable=yes" />
|
|
||||||
|
|
||||||
<meta name="keywords" content="flagnote" />
|
|
||||||
<meta name="description" content="flag note" />
|
|
||||||
|
|
||||||
<meta name="theme-color" content="#ed4014" />
|
|
||||||
<meta name="format-detection" content="telephone=no,email=no,adress=no" />
|
|
||||||
|
|
||||||
<meta name="google" content="notranslate">
|
|
||||||
|
|
||||||
<meta http-equiv="Expires" content="0" />
|
|
||||||
<meta http-equiv="Pragma" content="no-cache" />
|
|
||||||
<meta http-equiv="Cache-control" content="no-cache" />
|
|
||||||
<meta http-equiv="Cache" content="no-cache" />
|
|
||||||
|
|
||||||
<link rel="icon" href="/static/favicon.ico" />
|
|
||||||
<title>flagnote.com</title>
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
background-color: #dddddd;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<!--
|
|
||||||
<script src="https://www.recaptcha.net/recaptcha/api.js?render=6Le0CJwfAAAAAGk0J6aDngi7Dya-b0qyFRdIf6Wu"></script>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
const CAPTCHA_CLIENT_SECRET = "6Le0CJwfAAAAAGk0J6aDngi7Dya-b0qyFRdIf6Wu";
|
|
||||||
window.onload = () => {
|
|
||||||
document.querySelector('button').addEventListener('click', () => {
|
|
||||||
grecaptcha.execute(CAPTCHA_CLIENT_SECRET, {action: 'homepage'}).then(function (token) {
|
|
||||||
console.log('客户端token:' + token);
|
|
||||||
fetch('/recaptcha/validate?token=' + token, {
|
|
||||||
method: 'GET'
|
|
||||||
}).then(response => {
|
|
||||||
if (response.ok) {
|
|
||||||
response.json().then(message => {
|
|
||||||
console.log('服务端验证');
|
|
||||||
console.log(message);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
(function () {
|
|
||||||
var ua = navigator.userAgent.toLocaleLowerCase();
|
|
||||||
var browserType = "",
|
|
||||||
browserVersion = "";
|
|
||||||
if (ua.match(/msie/) != null || ua.match(/trident/) != null) {
|
|
||||||
browserType = "IE";
|
|
||||||
alert("IE is not supported.");
|
|
||||||
window.location = "/IeIsNotSupported.html";
|
|
||||||
}
|
|
||||||
|
|
||||||
var lang = navigator.language;
|
|
||||||
if (lang) {
|
|
||||||
if (localStorage) {
|
|
||||||
if (!localStorage.getItem("locale")) {
|
|
||||||
localStorage.setItem("locale", lang);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Global site tag (gtag.js) - Google Analytics -->
|
|
||||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-FPS9PD2DFF"></script>
|
|
||||||
<script>
|
|
||||||
window.dataLayer = window.dataLayer || [];
|
|
||||||
function gtag() {
|
|
||||||
dataLayer.push(arguments);
|
|
||||||
}
|
|
||||||
gtag("js", new Date());
|
|
||||||
|
|
||||||
gtag("config", "G-FPS9PD2DFF");
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/vue@2.7.14/dist/vue.min.js" rel="stylesheet"
|
|
||||||
type="text/javascript"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/vue-router@3.5.4/dist/vue-router.min.js" rel="stylesheet"
|
|
||||||
type="text/javascript"></script>
|
|
||||||
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/axios@0.27.2/dist/axios.min.js" rel="stylesheet"
|
|
||||||
type="text/javascript"></script>
|
|
||||||
|
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/pako@2.1.0/dist/pako.min.js" rel="stylesheet"
|
|
||||||
type="text/javascript"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/qrcode@1.5.1/build/qrcode.js" rel="stylesheet"
|
|
||||||
type="text/javascript"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/view-design@4.7.0/dist/iview.min.js" rel="stylesheet"
|
|
||||||
type="text/javascript"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/crypto-js@4.1.1/crypto-js.min.js" rel="stylesheet" type="text/javascript"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/file-saver@2.0.5/dist/FileSaver.min.js" rel="stylesheet" type="text/javascript"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js" rel="stylesheet" type="text/javascript"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/vue-i18n@8.21.1/dist/vue-i18n.min.js" rel="stylesheet" type="text/javascript"></script>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/vue-axios@3.5.2/dist/vue-axios.esm.min.js" rel="stylesheet" type="text/javascript"></script>
|
|
||||||
-->
|
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/view-design@4.7.0/dist/styles/iview.css">
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<noscript>
|
|
||||||
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
|
|
||||||
properly without JavaScript enabled. Please enable it to
|
|
||||||
continue.</strong>
|
|
||||||
</noscript>
|
|
||||||
<div id="app"></div>
|
|
||||||
<!-- built files will be auto injected -->
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 867 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 986 B |
BIN
public/static/logo.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
@@ -4,6 +4,7 @@ const en = {
|
|||||||
},
|
},
|
||||||
content: {
|
content: {
|
||||||
blankTip: "I am Blank.",
|
blankTip: "I am Blank.",
|
||||||
|
noteTip: "Start writing something...",
|
||||||
},
|
},
|
||||||
button: {
|
button: {
|
||||||
ok: "OK",
|
ok: "OK",
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ const zh = {
|
|||||||
askTodelete: "是否确定要删除?",
|
askTodelete: "是否确定要删除?",
|
||||||
},
|
},
|
||||||
content: {
|
content: {
|
||||||
blankTip: "I am Blank.",
|
blankTip: "空白的内容。",
|
||||||
|
noteTip: "开始写下一些东西吧。。。"
|
||||||
},
|
},
|
||||||
button: {
|
button: {
|
||||||
ok: "好的",
|
ok: "好的",
|
||||||
|
|||||||
@@ -5,19 +5,25 @@ Vue.use(VueI18n);
|
|||||||
import zh from "./config/zh";
|
import zh from "./config/zh";
|
||||||
import en from "./config/en";
|
import en from "./config/en";
|
||||||
|
|
||||||
const i18n = new VueI18n({
|
const messages = {
|
||||||
locale: getLocale(),
|
|
||||||
messages: {
|
|
||||||
zh,
|
zh,
|
||||||
en,
|
en,
|
||||||
},
|
}
|
||||||
|
|
||||||
|
const i18n = new VueI18n({
|
||||||
|
messages: messages,
|
||||||
|
locale: getLocale(),
|
||||||
});
|
});
|
||||||
|
|
||||||
function getLocale() {
|
function getLocale() {
|
||||||
if(localStorage.getItem("locale")){
|
var lang = navigator.language;
|
||||||
return localStorage.getItem("locale").substring(0,2);
|
if (lang) {
|
||||||
|
lang = lang.substring(0, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Object.keys(messages).indexOf(lang) >= 0) {
|
||||||
|
return lang;
|
||||||
|
}
|
||||||
return "en";
|
return "en";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
<Affix :offset-top="0">
|
<Affix :offset-top="0">
|
||||||
<div style="background: white;width:100%;height:40px;">
|
<div style="background: white;width:100%;height:40px;">
|
||||||
|
|
||||||
<img style="height:40px;float:left;cursor: pointer;" alt="refresh flagnote" src="/static/favicon.png"
|
<img style="height:40px;float:left;cursor: pointer;" alt="refresh flagnote" src="/static/logo.png"
|
||||||
v-on:click="refreshPage()" />
|
v-on:click="refreshPage()" />
|
||||||
|
|
||||||
<div style="float:left;width:auto;">
|
<div style="float:left;width:auto;">
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
<Form :model="noteForm" :label-width="80">
|
<Form :model="noteForm" :label-width="80">
|
||||||
<div id="wrapper" style="border-left: 0px solid #FF3366;">
|
<div id="wrapper" style="border-left: 0px solid #FF3366;">
|
||||||
<Input element-id="noteText" type="textarea" :border="false" v-model="noteForm.text" autofocus
|
<Input element-id="noteText" type="textarea" :border="false" v-model="noteForm.text" autofocus
|
||||||
:autosize="{ minRows: 30, maxRows: 20480 }" placeholder="Write something..." @input="recordText"
|
:autosize="{ minRows: 30, maxRows: 20480 }" :placeholder="$t('content.noteTip')" @input="recordText"
|
||||||
@on-keydown="recordEventKdown" />
|
@on-keydown="recordEventKdown" />
|
||||||
</div>
|
</div>
|
||||||
</Form>
|
</Form>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="home">
|
<div class="error">
|
||||||
error
|
error
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
<Affix :offset-top="0">
|
<Affix :offset-top="0">
|
||||||
|
|
||||||
<div style="background: white;width:100%;height:40px;">
|
<div style="background: white;width:100%;height:40px;">
|
||||||
<img style="height:40px;float:left;" src="/static/favicon.png">
|
<img style="height:40px;float:left;" src="/static/logo.png">
|
||||||
|
|
||||||
<div style="float:right;width:auto;">
|
<div style="float:right;width:auto;">
|
||||||
<Button-group size="large">
|
<Button-group size="large">
|
||||||
|
|||||||
@@ -163,7 +163,7 @@
|
|||||||
:lg="{ span: 18, offset: 3 }" :xl="{ span: 16, offset: 4 }" :xxl="{ span: 16, offset: 4 }">
|
:lg="{ span: 18, offset: 3 }" :xl="{ span: 16, offset: 4 }" :xxl="{ span: 16, offset: 4 }">
|
||||||
<Affix :offset-top="0">
|
<Affix :offset-top="0">
|
||||||
<div style="background: white;width:100%;height:40px;">
|
<div style="background: white;width:100%;height:40px;">
|
||||||
<img style="height:40px;float:left;cursor: pointer;" alt="refresh flagnote" src="/static/favicon.png"
|
<img style="height:40px;float:left;cursor: pointer;" alt="refresh flagnote" src="/static/logo.png"
|
||||||
v-on:click="refreshPage()">
|
v-on:click="refreshPage()">
|
||||||
<div style="float:left;width:auto;">
|
<div style="float:left;width:auto;">
|
||||||
|
|
||||||
|
|||||||