add beta language and auto restart when login crowdin
This commit is contained in:
parent
89b25c56e7
commit
f4d6ff8ee3
|
@ -42,8 +42,13 @@ The default sounds of notifications is provided [Creative Commons BY](https://cr
|
||||||
## Language
|
## Language
|
||||||
|
|
||||||
* 日本語(Japanese)
|
* 日本語(Japanese)
|
||||||
|
* 日本語, 関西(Japanese, Kansai)
|
||||||
* English
|
* English
|
||||||
* de, cs, bg(from Crowdin)
|
* български(Bulgarian) with [translate project](https://translate.thedesk.top/project/thedesk/bg)
|
||||||
|
* Česky(Czech) with [translate project](https://translate.thedesk.top/project/thedesk/cs)
|
||||||
|
* Deutsch(German) with [translate project](https://translate.thedesk.top/project/thedesk/de)
|
||||||
|
* Español, argentina(Spanish, Argentina) with [translate project](https://translate.thedesk.top/project/thedesk/es-AR)
|
||||||
|
* italiano(Italian) with [translate project](https://translate.thedesk.top/project/thedesk/it-IT)
|
||||||
|
|
||||||
### Translation
|
### Translation
|
||||||
|
|
||||||
|
|
|
@ -41,8 +41,9 @@ Download:[TheDesk](https://thedesk.top) [![check](https://status.cutls.com/badge
|
||||||
## 言語
|
## 言語
|
||||||
|
|
||||||
* 日本語
|
* 日本語
|
||||||
|
* 日本語(関西)
|
||||||
* English(英語)
|
* English(英語)
|
||||||
* ドイツ語, チェコ語, ブルガリア語(from Crowdin)
|
* ドイツ語, チェコ語, ブルガリア語, イタリア語, スペイン語アルゼンチン方言 (from [Crowdin](https://translate.thedesk.top))
|
||||||
|
|
||||||
### 翻訳
|
### 翻訳
|
||||||
|
|
||||||
|
|
|
@ -98,6 +98,10 @@ function settings() {
|
||||||
|
|
||||||
//読み込み時の設定ロード
|
//読み込み時の設定ロード
|
||||||
function load() {
|
function load() {
|
||||||
|
var currentLang = lang.language
|
||||||
|
console.log(currentLang)
|
||||||
|
$(`#langsel-sel`).val(currentLang)
|
||||||
|
$('#langsel-sel').formSelect()
|
||||||
var max = envView.config.length
|
var max = envView.config.length
|
||||||
for (var i = 0; i < max; i++) {
|
for (var i = 0; i < max; i++) {
|
||||||
var ls = envView.config[i].storage
|
var ls = envView.config[i].storage
|
||||||
|
@ -283,8 +287,10 @@ function oksload() {
|
||||||
$('#oks-3').val(localStorage.getItem('oks-3'))
|
$('#oks-3').val(localStorage.getItem('oks-3'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function changelang(lang) {
|
function changeLang() {
|
||||||
postMessage(['lang', lang], '*')
|
const lang = $('#langsel-sel').val()
|
||||||
|
console.log(lang)
|
||||||
|
if(lang) postMessage(['lang', lang], '*')
|
||||||
}
|
}
|
||||||
function exportSettings() {
|
function exportSettings() {
|
||||||
var exp = exportSettingsCore()
|
var exp = exportSettingsCore()
|
||||||
|
|
12
app/main.js
12
app/main.js
|
@ -185,6 +185,13 @@ function createWindow() {
|
||||||
mainWindow.maximize()
|
mainWindow.maximize()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
mainWindow.webContents.on('page-title-updated', () => {
|
||||||
|
const url = mainWindow.webContents.getURL()
|
||||||
|
if(url.match(/https:\/\/crowdin.com\/profile/)) {
|
||||||
|
app.relaunch()
|
||||||
|
app.exit()
|
||||||
|
}
|
||||||
|
})
|
||||||
if (!packaged) mainWindow.toggleDevTools()
|
if (!packaged) mainWindow.toggleDevTools()
|
||||||
electron.session.defaultSession.clearCache(() => {})
|
electron.session.defaultSession.clearCache(() => {})
|
||||||
if (process.argv) {
|
if (process.argv) {
|
||||||
|
@ -230,9 +237,12 @@ function createWindow() {
|
||||||
}
|
}
|
||||||
const promise = new Promise(function (resolve) {
|
const promise = new Promise(function (resolve) {
|
||||||
mainWindow.webContents.send('asReadEnd', '')
|
mainWindow.webContents.send('asReadEnd', '')
|
||||||
|
let wait = 3000
|
||||||
|
const url = mainWindow.webContents.getURL()
|
||||||
|
if(!url.match(/index.html/)) wait = 0
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
resolve()
|
resolve()
|
||||||
}, 3000)
|
}, wait)
|
||||||
})
|
})
|
||||||
promise.then(function (response) {
|
promise.then(function (response) {
|
||||||
closeArg = true
|
closeArg = true
|
||||||
|
|
154
app/view/es-ES/acct.html
Normal file
154
app/view/es-ES/acct.html
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="es-ES">
|
||||||
|
<head>
|
||||||
|
<title>Account Manager - TheDesk</title>
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link
|
||||||
|
href="../../node_modules/materialize-css/dist/css/materialize.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/tl.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link
|
||||||
|
href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/acct.css" rel="stylesheet" type="text/css" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<script>var pwa = false;</script> <script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/materialize-css/dist/js/materialize.js"
|
||||||
|
></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"
|
||||||
|
></script>
|
||||||
|
<script>
|
||||||
|
var misskeytoken = false
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||||
|
<div class="hide-first">
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"
|
||||||
|
>Atrás</a
|
||||||
|
><br />
|
||||||
|
<h5>Lista de cuentas</h5>
|
||||||
|
<div id="acct-list"></div>
|
||||||
|
<div class="divider"></div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-second">
|
||||||
|
<a href="setting.html">Having the exported file of TheDesk, click here to jump setting page</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Agregar una cuenta</h5>
|
||||||
|
<br />
|
||||||
|
<div id="add">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s8">
|
||||||
|
Fill the instance domain (like mastodon.social)<br />
|
||||||
|
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp" />
|
||||||
|
<div id="ins-suggest"></div>
|
||||||
|
<button class="btn waves-effect" onclick="instance()">Login</button><br />
|
||||||
|
<div class="pwa">
|
||||||
|
Desmarcarlo para omitir código de pegado. (iniciar sesión en Mastodon en Windows o macOS) (Recomendado: pcheck)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="linux" />
|
||||||
|
<span>Configuración de código</span>
|
||||||
|
</label>
|
||||||
|
<br />
|
||||||
|
</div>
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="misskey" />
|
||||||
|
<span>Iniciar sesión como Misskey</span> </label
|
||||||
|
><br />
|
||||||
|
</div>
|
||||||
|
<div class="col s4 scr" aria-hidden="true">
|
||||||
|
<span style="font-family:Open Sans;">Supports</span>
|
||||||
|
<div id="support" class="collection transparent"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="auth" style="display:none">
|
||||||
|
Pegar el código y cerrar el navegador web.<br />
|
||||||
|
<input type="text" id="code" placeholder="Código" required />
|
||||||
|
<button class="btn waves-effect" onclick="code()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup()" class="pointer">Usar el token de acceso para iniciar sesión (haga clic después de completar no el código si no el token de acceso en el casilla: avanzado)</a>
|
||||||
|
<div id="compt" style="display:none" class="scr">
|
||||||
|
<h5>ログイン前に必ずご確認ください</h5>
|
||||||
|
<span id="compt-instance"></span>はバージョンが<span id="compt-ver"></span
|
||||||
|
>のため以下の機能がご利用いただけません。
|
||||||
|
<span id="compt-warn" style="display:none"
|
||||||
|
>また、このインスタンスはMastodonではなくそのAPI上の互換実装であり、TheDeskでは利用を想定していないため非保証となります。</span
|
||||||
|
>
|
||||||
|
<ul id="compt-list"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="misskeylogin" style="display:none">
|
||||||
|
<h5>AppSecret</h5>
|
||||||
|
Leer <a href="https://thedesk.top/how-to-misskey-login.html">Docs(ja)</a> para iniciar sesión en Misskey.<br />
|
||||||
|
<input type="hidden" id="misskey-url" />
|
||||||
|
<input type="text" id="misskey-key" placeholder="Código" required />
|
||||||
|
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup('misskey')" class="pointer">Usar el token de acceso para iniciar sesión (haga clic después de completar no el código si no el token de acceso en el casilla: avanzado)</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-first">
|
||||||
|
<h5>Cuenta principal</h5>
|
||||||
|
<div class="input-field" style="width:300px">
|
||||||
|
<span data-trans="your_acct">Seleccionar una cuenta</span>
|
||||||
|
<br />
|
||||||
|
<select
|
||||||
|
id="main-acct-sel"
|
||||||
|
class="acct-sel"
|
||||||
|
style="color:black"
|
||||||
|
onchange="mainacct()"
|
||||||
|
></select>
|
||||||
|
<label></label>
|
||||||
|
</div>
|
||||||
|
<ul id="domain-list" class="collection transparent"></ul>
|
||||||
|
<div id="instance-data">
|
||||||
|
Some instance data by
|
||||||
|
<a href="https://instances.social" target="_blank">instances.social API</a><br />
|
||||||
|
<h5 id="ins-title"></h5>
|
||||||
|
Administered by:<a id="ins-admin"></a><br />
|
||||||
|
<span id="ins-desc"></span><br />
|
||||||
|
<img src="../../img/loading.svg" id="ins-prof" width="200" /><br />
|
||||||
|
<br />
|
||||||
|
Dominio:<span id="ins-name"></span><br />
|
||||||
|
Servidores federados:<span id="ins-connect"></span><br />
|
||||||
|
Toots:<span id="ins-toot"></span><br />
|
||||||
|
Usuarios:<span id="ins-user"></span>Usuarios<br />
|
||||||
|
Conexión:<span id="ins-per"></span>%<br />
|
||||||
|
Versión de Mastodon:<span id="ins-ver"></span>@<span id="ins-upd"></span><br />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/sha256.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
||||||
|
<script>$('body').addClass(localStorage.getItem('platform'))</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
1287
app/view/es-ES/index.html
Normal file
1287
app/view/es-ES/index.html
Normal file
File diff suppressed because it is too large
Load Diff
1
app/view/es-ES/main.js
Normal file
1
app/view/es-ES/main.js
Normal file
File diff suppressed because one or more lines are too long
632
app/view/es-ES/setting.html
Normal file
632
app/view/es-ES/setting.html
Normal file
|
@ -0,0 +1,632 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="es-ES" style="overflow-y:scroll">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>Settings - TheDesk</title>
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = [];
|
||||||
|
_jipt.push(['project', 'thedesk']);
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<style>
|
||||||
|
input {
|
||||||
|
max-height: 3.84rem !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.pcr-result {
|
||||||
|
height: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container-after-titlebar {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
<script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" style="overflow-y:scroll" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script src="../../node_modules/json5/dist/index.min.js"></script>
|
||||||
|
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||||
|
<script type="text/javascript" src="setting.vue.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||||
|
<script>function renderMem() { return false; }</script>
|
||||||
|
|
||||||
|
<h4>Preferences</h4>
|
||||||
|
<ul class="collapsible" data-collapsible="accordion">
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">desktop_windows</i>Preferencias del sistema
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Idiomas</h5>
|
||||||
|
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br><br>
|
||||||
|
<div style="display: flex;">
|
||||||
|
<div style="width: 22rem;" id="langsel">
|
||||||
|
<select id="langsel-sel"><option value="ja">日本語</option><option value="ja-KS">日本語(関西)</option><option value="en">English</option><option value="bg">български</option><option value="cs">Česky</option><option value="de">Deutsch</option><option value="es-AR">Español, argentina</option><option value="it-IT">italiano</option><option value="zh-CN">简体中文</option><option value="zh-TW">繁體中文(β)</option><option value="fr-FR">français(β)</option><option value="no-NO">norsk(β)</option><option value="pt-BR">Português, brasileiro(β)</option><option value="ru-RU">русский(β)</option><option value="es-ES">Español(β)</option><option value="ps">Crowdin translate system(beta)</option></select>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect" onclick="changeLang()">Cambiar</button>
|
||||||
|
</div>
|
||||||
|
<h5>Importación y exportación de la configuración</h5>
|
||||||
|
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Exportar</button>
|
||||||
|
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Importar</button><br>
|
||||||
|
If you got a error when you choose the file, please paste the strings printed when you open the file and click import<br>
|
||||||
|
<input type="text" id="imp-exp" style="width: 22rem">
|
||||||
|
<div id="envView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||||
|
class="pointer">Prueba de notificación</a><br></template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Cambiar</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Fuente</h5>
|
||||||
|
Select your favorite font to 'Select'(Windows/ macOS only)<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="font()">Seleccionar</button><br>
|
||||||
|
<div id="fonts" class="hide" style="overflow-y:scroll; width:22rem; height:40rem;"></div>
|
||||||
|
<br>
|
||||||
|
<input type="text" style="width:11.5rem" id="font">
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="settings()">Save</button>
|
||||||
|
<br>
|
||||||
|
<h5>Carpeta para guardar</h5>
|
||||||
|
TheDesk utiliza este valor cuando intenta guardar fotos o tomar capturas de pantalla.<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="savefolder()">Cambiar</button>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="pwa">
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">color_lens</i>Temas
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h4>Seleccionar tema</h4>
|
||||||
|
<div style="width:22rem" id="sel-selector">
|
||||||
|
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||||
|
</div>
|
||||||
|
<h4>Editar y añadir temas personalizados</h4>
|
||||||
|
<div style="width:22rem" id="edit-selector" data-add="Add new">
|
||||||
|
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
|
||||||
|
<option value="add_new">Add new</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<h5>Name</h5>
|
||||||
|
<input type="text" style="width:22rem" id="custom_name" placeholder="Name...">
|
||||||
|
<h5>About this theme</h5>
|
||||||
|
<div class="input-field"><textarea style="width:22rem" id="custom_desc" class="materialize-textarea"
|
||||||
|
placeholder="About this theme..."></textarea></div>
|
||||||
|
<h5>Esquema de colores</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||||
|
checked="true" />
|
||||||
|
<span>Dark</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||||
|
value="light" />
|
||||||
|
<span>Light</span>
|
||||||
|
</label><br><br />
|
||||||
|
<button class="btn waves-effect" onclick="advanced()">Opciones avanzadas (6 colores adicionales)</button>
|
||||||
|
<span class="advanced hide"></span>
|
||||||
|
<div id="pickers">
|
||||||
|
<div>
|
||||||
|
<h5>Background</h5>Background color<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_0" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker0_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Text</h5>Text color<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_1" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker1_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Subcolor</h5>Distinguishable from background<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_2" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker2_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Accent</h5>Background of boosts<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_3" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker3_value">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal</h5>Background of modal window<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_4" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modal')">Background</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker4_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal Footer</h5>Background of modal window's footer<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_5" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modalFooter')">Background</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('modal','modalFooter')">Modal</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker5_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>3rd Color</h5>Backgroud of tag buttons, etc(near to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_6" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','third')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker6_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>4th Color</h5>Title bar(same scheme to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_7" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','forth')">Subcolor</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('third','forth')">3rd Color</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker7_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Bottom</h5>Background of menu-bar at bottom of window<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_8" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','bottom')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker8_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>2nd Accent</h5>Emphasized toot's background<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_9" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','emphasized')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker9_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Postbox</h5>Background of post-box and menu<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_10" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','postbox')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker10_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Active</h5>Background of 'active' elements<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_11" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','active')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker11_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected</h5>Background of selected with arrow keys<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_12" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker12_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected with shared</h5>Background of selected with arrow keys(boosted toots)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_13" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker13_value">
|
||||||
|
</div>
|
||||||
|
</div><br /><br />
|
||||||
|
<button class="btn-large waves-effect" onclick="customComp()">Cambiar</button> <button
|
||||||
|
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">Delete</button><br><br>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_json" class="materialize-textarea"
|
||||||
|
placeholder="JSON style" readonly><br>
|
||||||
|
<h4>Import of custom themes</h4>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_import" class="materialize-textarea"
|
||||||
|
placeholder="JSON/JSON5 style">
|
||||||
|
<button class="btn waves-effect" onclick="customImp()">Importar</button><br>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">reorder</i>Timeline Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="tlView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Cambiar</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Custom sound</h5>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span
|
||||||
|
id="c1-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span
|
||||||
|
id="c2-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span
|
||||||
|
id="c3-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span
|
||||||
|
id="c4-file"></span><br>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100(default:80)<br>
|
||||||
|
<p class="range-field"><span id="soundVolVal">80</span><br>
|
||||||
|
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">send</i>Posting Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="postView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<template
|
||||||
|
v-if="(!check.kirishima || (check.kirishima && kirishima) )&& (!check.quote || (check.quote && quoters))">
|
||||||
|
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||||
|
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||||
|
v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span></label>
|
||||||
|
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Cambiar</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Easy inserter</h5>
|
||||||
|
You can insert any letters and emojis with only 3 keys<br>
|
||||||
|
Ctrl+Shift+1:<input type="text" style="width:11.5rem" id="oks-1">
|
||||||
|
<button onclick="oks(1)" class="btn waves-effect" style="width:7.7rem;">Save</button><br><br>
|
||||||
|
Ctrl+Shift+2:<input type="text" style="width:11.5rem" id="oks-2">
|
||||||
|
<button onclick="oks(2)" class="btn waves-effect" style="width:7.7rem;">Save</button><br><br>
|
||||||
|
Ctrl+Shift+3:<input type="text" style="width:11.5rem" id="oks-3">
|
||||||
|
<button onclick="oks(3)" class="btn waves-effect" style="width:7.7rem;">Save</button><br><br>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<img src="../../img/aiscript.svg"
|
||||||
|
style="height: 1.5rem; margin-left: 0.4rem; margin-right: 0.4rem;">Plugins
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<a href="https://github.com/cutls/TheDesk/blob/master/plugin.md">Japanese docs of AiScript TheDesk plugins</a><br />
|
||||||
|
<textarea id="plugin" data-id="add_new" style="height: 20rem"></textarea>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="completePlugin()">Cambiar</button>
|
||||||
|
<button class="btn waves-effect red disabled plugin_delete" style="width:7.7rem;"
|
||||||
|
onclick="deletePlugin()">Delete</button>
|
||||||
|
<h5>Plugin list</h5>
|
||||||
|
<div style="width:22rem" id="plugin-selector" data-add="Add new">
|
||||||
|
<select id="plugin-edit-sel" class="custom-sel" onchange="pluginEdit()">
|
||||||
|
<option value="add_new">Add new</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">bookmark</i>Mute & Emphasis Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Client Mute</h5>
|
||||||
|
<div id="mute-cli"></div>
|
||||||
|
<h5>Client Emphasis</h5>
|
||||||
|
Click client name on toots to toggle mute and emphasis.
|
||||||
|
<h5>Words Mute</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordmute" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:7.7rem;">Save</button>
|
||||||
|
<h5>Words Emphasis</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordemp" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordempSave()" class="btn waves-effect" style="width:7.7rem;">Save</button>
|
||||||
|
<h5>Users Emphasis</h5>
|
||||||
|
Set on users data modals.
|
||||||
|
<span class="emphasized"> Use this color to emphasis </span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="fab fa-spotify"></i>Spotify and NowPlaying Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Account Connection(Spotify)</h5>
|
||||||
|
TheDesk save your data on thedesk.top server.<br>
|
||||||
|
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
|
||||||
|
onclick="spotifyAuth()" class="btn waves-effect" style="width:7.7rem;">Save</button></div>
|
||||||
|
<a onclick="spotifyConnect()" class="btn waves-effect nex"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-enable"><i
|
||||||
|
class="fab fa-spotify left"></i>Connect</a>
|
||||||
|
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-disable"><i
|
||||||
|
class="fab fa-spotify left"></i>Disconnect</a>
|
||||||
|
<h5>Account Connection(Last.fm)</h5>
|
||||||
|
User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.<br />
|
||||||
|
<input type="text" style="width:11.5rem" id="lastFmUser">
|
||||||
|
<button onclick="lastFmSet()" class="btn waves-effect" style="width:7.7rem;">Save</button>
|
||||||
|
<h5>Edit a template</h5>
|
||||||
|
<br>
|
||||||
|
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||||
|
{url}</textarea><br>
|
||||||
|
Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify<br>
|
||||||
|
<span class="mac">>macOS:{song}:Song name/{album}:Album name/{artist}:Artist name/composer:{composer}/spampling rate:{hz}/bit rate:{bitRate}/genre:{genre}</span><br>
|
||||||
|
<button onclick="spotifySave()" class="btn waves-effect" style="width:7.7rem;">Save</button>
|
||||||
|
<h5>Attach an Artwork of Spotify</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Yes</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||||
|
value="no" />
|
||||||
|
<span>No</span>
|
||||||
|
</label>
|
||||||
|
<div class="mac">
|
||||||
|
<h5>If the song has no artwork, automatic complete it(macOS)</h5>
|
||||||
|
If you nowplaying an non-artwork song, get one which seems nice through API. If you do not like the completed artwork, you can right-click it to delete.<br />
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Yes</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_no"
|
||||||
|
value="no" />
|
||||||
|
<span>No</span>
|
||||||
|
</label>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">hearing</i>TTS(text to speech) Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>BouyomiChan connect</h5>
|
||||||
|
Require: BouyomiChan WebSocket Plugin<a href="https://github.com/xztaityozx/BouyomiChan-WebSocket-Plugin"
|
||||||
|
target="_blank">GitHub</a><br>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Yes</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_no" value="no" />
|
||||||
|
<span>No</span>
|
||||||
|
</label>
|
||||||
|
<h5>Speed</h5>
|
||||||
|
1-100(default:10)<br>
|
||||||
|
<p class="range-field"><span id="voicespeedVal">10</span><br>
|
||||||
|
<input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||||
|
onchange="document.getElementById('voicespeedVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Pitch</h5>
|
||||||
|
0-100(default:50)<br>
|
||||||
|
<p class="range-field"><span id="voicepitchVal">50</span><br>
|
||||||
|
<input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||||
|
onchange="document.getElementById('voicepitchVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100(default:100)<br>
|
||||||
|
<p class="range-field"><span id="voicevolVal">100</span><br>
|
||||||
|
<input type="range" id="voicevol" min="0" max="100" value="100"
|
||||||
|
onchange="document.getElementById('voicevolVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Test</h5>
|
||||||
|
<input type="text" style="width:27rem" id="voicetxt" value="TheDesk is an open-source Mastodon client for PC.">
|
||||||
|
<button class="btn waves-effect blue" style="width:11.5rem;" onclick="voicePlay()"
|
||||||
|
id="testplay">Play/Stop</button><br>
|
||||||
|
<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="voiceSettings()">Save</button>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:15rem;"><i
|
||||||
|
class="material-icons left">undo</i>Atrás</a>
|
||||||
|
<br>
|
||||||
|
<br>Keyboard shortcuts
|
||||||
|
<li>Ctrl+1-9:Jump to n(1-9)th column</li>
|
||||||
|
<li>N:Open toot box</li>
|
||||||
|
<li>X:Toggle toot box</li>
|
||||||
|
<li>Ctrl+Enter:Post</li>
|
||||||
|
<li>Ctrl+Enter+Shift:Post(secondary toot)</li>
|
||||||
|
<li>Alt+Enter:Secondary Toot Button</li>
|
||||||
|
<li>Ctrl+E:Make all notifications read</li>
|
||||||
|
<li>Ctrl+U:Select the top & left(No.1 column) toot</li>
|
||||||
|
<li>Esc:Hide toot box</li>
|
||||||
|
<li>F5:Super Reload</li>
|
||||||
|
<li>Ctrl+Shift+C:Clear toot box</li>
|
||||||
|
<li>Ctrl+Shift+S:Preferences</li>
|
||||||
|
<li>Ctrl+Shift+M:Account Manager</li>
|
||||||
|
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
|
||||||
|
<li>Ctrl+Shift+P:Show profile of selecting</li>
|
||||||
|
<li>←/→:Show next or previous image</li>
|
||||||
|
<li>Mousewheel:Zoom a image</li>
|
||||||
|
<div class="hide kirishima">
|
||||||
|
以下Markdownに対応したインスタンスのみ。
|
||||||
|
<br>
|
||||||
|
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||||
|
When a toot is selected:
|
||||||
|
<li>F:Favourite this toot</li>
|
||||||
|
<li>B:Boost this toot</li>
|
||||||
|
<li>R:Reply to this toot</li>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect red" style="width:100%; max-width:40rem;"
|
||||||
|
onclick="if(confirm('Delete all data. You cannot undo. Continue?')){ localStorage.clear(); location.href='index.html'; }"><i
|
||||||
|
class="material-icons left">delete</i>Reset(Danger)</button><br><br>
|
||||||
|
<button class="btn waves-effect indigo pwa" onclick="about()" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">info</i>About TheDesk</button>
|
||||||
|
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">web</i>Website</a>
|
||||||
|
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Support(Pixiv FANBOX)</a>
|
||||||
|
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Support(Patreon)</a>
|
||||||
|
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
|
||||||
|
style="width:100%; max-width:40rem; background-color: #f6c915"><i
|
||||||
|
class="material-icons left">trending_up</i>Support(Liberapay)</a>
|
||||||
|
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">list</i>Help/Docs</a>
|
||||||
|
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="fab fa-github left"></i>GitHub</a>
|
||||||
|
<a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><img src="../../img/desk_full.svg" class="left" width="25"
|
||||||
|
style="padding-top:5px;">Main author: Cutls@cutls.com</a>
|
||||||
|
<br>
|
||||||
|
TheDesk @ <a href="https://github.com/cutls/TheDesk/commits/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c">89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c</a> - <a
|
||||||
|
onclick="checkupd(); return localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||||
|
class="pointer pwa">Check update</a><br>
|
||||||
|
<br>
|
||||||
|
Kyash<br>
|
||||||
|
<img src="../../img/kyash.png" width="100"><br>
|
||||||
|
<a href="https://status.cutls.com/">
|
||||||
|
<img src="https://status.cutls.com/badge-service?site=thedesk.top">
|
||||||
|
</a><br>
|
||||||
|
<h5>OSS License</h5>
|
||||||
|
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fcutls%2FTheDesk/refs/branch/master/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c"
|
||||||
|
alt="FOSSA Status"><img
|
||||||
|
src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcutls%2FTheDesk.svg?type=small" /></a>
|
||||||
|
<br>
|
||||||
|
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||||
|
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
|
||||||
|
href="https://thedesk.top/priv.html">Privacy
|
||||||
|
Policy</a>
|
||||||
|
<br>
|
||||||
|
</span><br>
|
||||||
|
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||||
|
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/aiscript.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/plugin.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/speech.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/settings.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
756
app/view/es-ES/setting.vue.js
Normal file
756
app/view/es-ES/setting.vue.js
Normal file
|
@ -0,0 +1,756 @@
|
||||||
|
var yesno = [
|
||||||
|
{
|
||||||
|
text: 'Yes',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'No',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var sound = [
|
||||||
|
{
|
||||||
|
text: 'None',
|
||||||
|
value: 'none'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Default',
|
||||||
|
value: 'default'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 1',
|
||||||
|
value: 'c1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 2',
|
||||||
|
value: 'c2'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 3',
|
||||||
|
value: 'c3'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 4',
|
||||||
|
value: 'c4'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var envConstruction = [
|
||||||
|
{
|
||||||
|
id: 'popup',
|
||||||
|
storage: 'popup',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Notificación emergente (en Windows)',
|
||||||
|
desc: 'Ocultar para establecer "0"',
|
||||||
|
after: 'seg'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notf',
|
||||||
|
storage: 'nativenotf',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Notificación nativa',
|
||||||
|
desc: 'Esto no funciona en la versión portable para Windows.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'width',
|
||||||
|
storage: 'width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 300,
|
||||||
|
text: { after: 'px ~ ' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'maxWidth',
|
||||||
|
storage: 'max-width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 600,
|
||||||
|
text: { after: 'px' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Width of columns',
|
||||||
|
desc: 'Scroll bar will be shown when your window size is more than ammounts of columns.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'margin',
|
||||||
|
storage: 'margin',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Margin between timelines',
|
||||||
|
desc: '',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'fixwidth',
|
||||||
|
storage: 'fixwidth',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 300,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Ancho mínimo del navegador TweetDeck',
|
||||||
|
desc: '',
|
||||||
|
after: 'px arriba'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'size',
|
||||||
|
storage: 'size',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 50,
|
||||||
|
setValue: 13,
|
||||||
|
text: {
|
||||||
|
head: 'Tamaño de fuente',
|
||||||
|
desc: '<span style="font-size:13px">13px(valor absoluto)</span>',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ha',
|
||||||
|
storage: 'ha',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: false,
|
||||||
|
text: {
|
||||||
|
head: 'Deshabilitar la aceleración por hardware',
|
||||||
|
desc: 'Reinicio automático',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Yes',
|
||||||
|
value: 'true'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'No',
|
||||||
|
value: 'false'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ua',
|
||||||
|
storage: 'ua_setting',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: '',
|
||||||
|
width: 200,
|
||||||
|
text: {
|
||||||
|
head: 'Agente de usuario',
|
||||||
|
desc: 'Reiniciar al cambiar'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'srcUrl',
|
||||||
|
storage: 'srcUrl',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 200,
|
||||||
|
setValue: 'https://google.com/search?q={q}',
|
||||||
|
text: {
|
||||||
|
head: 'Search engine',
|
||||||
|
desc: '{q} will be replaced to query.',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'download',
|
||||||
|
storage: 'dl-win',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Versioning(o Windows downloader)',
|
||||||
|
desc: 'ex: TheDesk-1.0.0-setup.exe',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var tlConstruction = [
|
||||||
|
{
|
||||||
|
id: 'time',
|
||||||
|
storage: 'datetype',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'absolute',
|
||||||
|
text: {
|
||||||
|
head: 'Time format',
|
||||||
|
desc: 'Relative format:"1 minutes ago","3 days ago"<br>Absolute format:"23:25:21","2017/12/30 23:59:00"<br>Mixed format:toots posted today are relative-format, others are absolute-format.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Relative',
|
||||||
|
value: 'relative'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Absolute',
|
||||||
|
value: 'absolute'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Both relative and absolute',
|
||||||
|
value: 'double'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Mixed',
|
||||||
|
value: 'medium'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ul',
|
||||||
|
storage: 'locale',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Server\s unique locale',
|
||||||
|
desc: 'This value is available on some Japanese servers',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'nsfw',
|
||||||
|
storage: 'nsfw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide Mark sensitive pictures',
|
||||||
|
desc: 'Strong blur effect',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw',
|
||||||
|
storage: 'cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide CW contents',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'rp',
|
||||||
|
storage: 'replyct',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'hidden',
|
||||||
|
text: {
|
||||||
|
head: 'Reply counter style',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Show 1+ if the replies are more than 1.',
|
||||||
|
value: 'hidden'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Show full count(1,2...)',
|
||||||
|
value: 'all'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'gif',
|
||||||
|
storage: 'gif',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animated GIF images animation',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'tag',
|
||||||
|
storage: 'tag-range',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'local',
|
||||||
|
text: {
|
||||||
|
head: 'Tag TL Search',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Use federated network',
|
||||||
|
value: 'all'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Use local network',
|
||||||
|
value: 'local'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'via',
|
||||||
|
storage: 'viashow',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Show via',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'mov',
|
||||||
|
storage: 'mouseover',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Hide action buttons without mouseover',
|
||||||
|
desc: 'You may feel \mouseover\ is unconfortable:(',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Mouseover to show',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Click to show',
|
||||||
|
value: 'click'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'No',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notfm',
|
||||||
|
storage: 'setasread',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Show Notification marker, red colored bell and counter(if you show a notification column.)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'sentence',
|
||||||
|
storage: 'sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'lines arriba or' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'letters',
|
||||||
|
storage: 'letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'letters arriba' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Auto folding',
|
||||||
|
desc: 'TheDesk does not collapse totes of 5 characters or less. Also, when collapsing, newlines are not shown. TheDesk count only newlines as the number of lines.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img-height',
|
||||||
|
storage: 'img-height',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 80,
|
||||||
|
setValue: 200,
|
||||||
|
text: {
|
||||||
|
head: 'Height of images',
|
||||||
|
desc: 'Option:Set "full" to uncrop.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ticker',
|
||||||
|
storage: 'ticker_ok',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Enable OpenSticker',
|
||||||
|
desc: 'Show the instance name and favicon of tooters <a href="https://opensticker.0px.io">About OpenSticker</a>',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'anime',
|
||||||
|
storage: 'animation',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animation of timelines',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'markers',
|
||||||
|
storage: 'markers',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Markers(mark as read) on HTL and notifications',
|
||||||
|
desc: 'Mastodon 3.0~. Shared on WebUI and third-party supported clients.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'remote_img',
|
||||||
|
storage: 'remote_img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Get images from the remote server',
|
||||||
|
desc: 'All previews are got from your loginned cache server.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'bkm',
|
||||||
|
storage: 'bookmark',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Show a bookmarking toot button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'scroll',
|
||||||
|
storage: 'scroll',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normalScrollBar',
|
||||||
|
text: {
|
||||||
|
head: 'Height of the scroll bar',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Thick',
|
||||||
|
value: 'thickScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Normal',
|
||||||
|
value: 'normalScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Thin',
|
||||||
|
value: 'thinScrollBar'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'replySound',
|
||||||
|
storage: 'replySound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Reply)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'favSound',
|
||||||
|
storage: 'favSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Fav)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'btSound',
|
||||||
|
storage: 'btSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Boost)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'followSound',
|
||||||
|
storage: 'followSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Follow)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var postConstruction = [
|
||||||
|
{
|
||||||
|
id: 'cw-text',
|
||||||
|
storage: 'cw-text',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 150,
|
||||||
|
setValue: '',
|
||||||
|
text: {
|
||||||
|
head: 'Default warining text',
|
||||||
|
desc: '',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'cw_sentence',
|
||||||
|
storage: 'cw_sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'lines arriba or' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw_letters',
|
||||||
|
storage: 'cw_letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'letters arriba' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Alert before posting a long toot.',
|
||||||
|
desc: 'Show dialog whether you make too-long text hidden.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cws',
|
||||||
|
storage: 'always-cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Always CW set',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw-continue',
|
||||||
|
storage: 'cw-continue',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: '@@cwContinue@@',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'vis',
|
||||||
|
storage: 'vis',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Default visibility',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Public',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Unlisted',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Private',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direct',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Memory(memorized as each server)',
|
||||||
|
value: 'memory'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Default of your visibility(Set on preferences of Mastodon server)',
|
||||||
|
value: 'useapi'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img',
|
||||||
|
storage: 'img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no-act',
|
||||||
|
text: {
|
||||||
|
head: 'Posting images preferences',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Insert media URL',
|
||||||
|
value: 'url'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Insert nothig',
|
||||||
|
value: 'no-act'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'box',
|
||||||
|
storage: 'box',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Action of posting-box',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Folding',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Open after posting',
|
||||||
|
value: 'no'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Absolutely open',
|
||||||
|
value: 'absolute'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'quote',
|
||||||
|
storage: 'quote',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'nothing',
|
||||||
|
text: {
|
||||||
|
head: 'Quote format',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Only URL',
|
||||||
|
value: 'simple'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL and acct(mention to the user)',
|
||||||
|
value: 'mention'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL, text and acct(mention to the user)',
|
||||||
|
value: 'full'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'API(only some instances)',
|
||||||
|
value: 'apiQuote',
|
||||||
|
quote: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Disabled(Hide buttons on TLs)',
|
||||||
|
value: 'nothing'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'main',
|
||||||
|
storage: 'mainuse',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'remain',
|
||||||
|
text: {
|
||||||
|
head: 'Default accounts of actions',
|
||||||
|
desc: 'Main account can be set on Account Manager.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Account you used recently',
|
||||||
|
value: 'remain'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Main account',
|
||||||
|
value: 'main'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'sec',
|
||||||
|
storage: 'sec',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Secondary Toot Button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Hidden',
|
||||||
|
value: 'nothing'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Public',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Unlisted',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Private',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direct',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Local Only',
|
||||||
|
value: 'local',
|
||||||
|
kirishima: true,
|
||||||
|
kirishimaText: '非対応インスタンスでは「未収載」になります。'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'zero',
|
||||||
|
storage: 'emoji-zero-width',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normal',
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Zero-width space when inserting emojis',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'uploadCrop',
|
||||||
|
storage: 'uploadCrop',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 100,
|
||||||
|
setValue: '0',
|
||||||
|
text: {
|
||||||
|
head: 'Auto scale to fit',
|
||||||
|
desc: 'Max long-side px. Uploaded images are converted to JPEG(from JPEG) or PNG(from others). Set 0 and the images will not be resized. Notice: if you post an animated picture like GIF, it will be converted static one.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
302
app/view/es-ES/update.html
Normal file
302
app/view/es-ES/update.html
Normal file
|
@ -0,0 +1,302 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="es-ES">
|
||||||
|
<head>
|
||||||
|
<title>Update - TheDesk</title>
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Open Sans';
|
||||||
|
-webkit-app-region: drag;
|
||||||
|
cursor: move;
|
||||||
|
padding: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#start {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100vw;
|
||||||
|
height: calc(100vh - 2.5rem);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#checkbox {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a,
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
label,
|
||||||
|
i {
|
||||||
|
-webkit-app-region: no-drag;
|
||||||
|
}
|
||||||
|
|
||||||
|
#updskip {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100px;
|
||||||
|
border: 1px solid;
|
||||||
|
margin-left: 5px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border: 1px solid #c26363;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #c26363;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn:hover {
|
||||||
|
background-color: #c26363;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#prog {
|
||||||
|
font-size: 200%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||||
|
<!--a href="update.html">Reload</a-->
|
||||||
|
<div id="start" style="filter: brightness(100%)">
|
||||||
|
<div id="box" class="show">
|
||||||
|
<h2>TheDesk</h2>
|
||||||
|
<p>Get latest TheDesk</p>
|
||||||
|
<span id="now"></span>→<b id="ver"></b><br />
|
||||||
|
<a href="" id="github" class="btn waves-effect grey darken-1"><i class="fab fa-github left"></i>What is new?</a><br />
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left: 15px;">Installer(Recommended)</button>
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left: 15px;">Portable ver.</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left: 15px;">zip</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxdeb')" style="margin-left: 15px;">deb(Recommended on buntu, Debian)</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxsnap')" style="margin-left: 15px;">snap</button>
|
||||||
|
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left: 15px;">Start</button>
|
||||||
|
<br />
|
||||||
|
Some problems?<br />Please download on <a href='https://thedesk.top'>Oficial HP</a>.
|
||||||
|
</div>
|
||||||
|
<div id="skipper" class="hide">
|
||||||
|
<h4>Skip this update</h4>
|
||||||
|
You may lose a cool experience!<br />
|
||||||
|
<div id="updskip">
|
||||||
|
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>Hidden until next TL loading</div>
|
||||||
|
</a>
|
||||||
|
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>Hidden until next version</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<a class="pointer waves-effect" onclick="skipper();" style="margin-top: 5px;">Continue updating</a>
|
||||||
|
</div>
|
||||||
|
<div id="dlnow" class="hide" style="width: 70%;">
|
||||||
|
<h4>Downloading...</h4>
|
||||||
|
<h4 id="prog"></h4>
|
||||||
|
<div class="progress">
|
||||||
|
<div class="determinate" style="width: 0%;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script>
|
||||||
|
function skipper() {
|
||||||
|
$('#dlnow').addClass('hide')
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
if ($('#box').hasClass('hide') && $('#skipper').hasClass('hide')) {
|
||||||
|
$('#skipper').removeClass('hide')
|
||||||
|
$('#skipper').addClass('show')
|
||||||
|
} else {
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('show')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
verck()
|
||||||
|
function update(sel) {
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('show')
|
||||||
|
$('#prog').text('')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
if (sel == 'install') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'portable') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64p_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32p_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'linux') {
|
||||||
|
var url = json['linuxx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'thedesk-' + json.unique_linux + '.zip'
|
||||||
|
} else {
|
||||||
|
var file = 'thedesk.zip'
|
||||||
|
}
|
||||||
|
var filesize = json.linuxx64_size
|
||||||
|
} else if (sel == 'linuxdeb') {
|
||||||
|
var url = json['linuxdeb']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.deb'
|
||||||
|
var filesize = json.linuxdeb_size
|
||||||
|
} else if (sel == 'linuxsnap') {
|
||||||
|
var url = json['linuxsnap']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.snap'
|
||||||
|
var filesize = json.linuxsnap_size
|
||||||
|
} else if (sel == 'mac') {
|
||||||
|
var url = json['mac']
|
||||||
|
var file = 'TheDesk-' + json.unique_mac + '.dmg'
|
||||||
|
var filesize = json.mac_size
|
||||||
|
}
|
||||||
|
postMessage(['downloadButton', [url, file, filesize]], '*')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function quit() {
|
||||||
|
postMessage(['sendSinmpleIpc', 'quit'], '*')
|
||||||
|
}
|
||||||
|
function updateProg(arg) {
|
||||||
|
$('.determinate').css('width', arg[0].percent * 100 + '%')
|
||||||
|
$('#prog').html(`${Math.floor(arg[0].percent * 100)}%<br />(${Math.floor(arg[0].percent*arg[1]/1024/1024*10)/10} MB / ${Math.floor(arg[1]/1024/1024*10)/10} MB)`)
|
||||||
|
|
||||||
|
}
|
||||||
|
function updateMess(arg) {
|
||||||
|
console.log(arg)
|
||||||
|
$('#prog').text(arg)
|
||||||
|
}
|
||||||
|
function verck() {
|
||||||
|
var platform = localStorage.getItem('platform')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('.windows').removeClass('hide')
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('.linux').removeClass('hide')
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('.mac').removeClass('hide')
|
||||||
|
}
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
console.log(json)
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('#ver').text(json.desk)
|
||||||
|
localStorage.setItem('next-ver', json.desk)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('#ver').text(json.desk_linux)
|
||||||
|
localStorage.setItem('next-ver', json.desk_linux)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_linux
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('#ver').text(json.desk_mac)
|
||||||
|
localStorage.setItem('next-ver', json.desk_mac)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_mac
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#github').attr('href', url)
|
||||||
|
|
||||||
|
$('#now').text(localStorage.getItem('ver'))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function nextv() {
|
||||||
|
localStorage.setItem('new-ver-skip', 'true')
|
||||||
|
window.close()
|
||||||
|
}
|
||||||
|
function enc(ver) {
|
||||||
|
var ver = ver.replace(/\s/g, '')
|
||||||
|
var ver = ver.replace(/\(/g, '-')
|
||||||
|
var ver = ver.replace(/\)/g, '')
|
||||||
|
var ver = ver.replace(/\[/g, '_')
|
||||||
|
var ver = ver.replace(/\]/g, '')
|
||||||
|
return ver
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
154
app/view/fr-FR/acct.html
Normal file
154
app/view/fr-FR/acct.html
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="fr-FR">
|
||||||
|
<head>
|
||||||
|
<title>Account Manager - TheDesk</title>
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link
|
||||||
|
href="../../node_modules/materialize-css/dist/css/materialize.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/tl.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link
|
||||||
|
href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/acct.css" rel="stylesheet" type="text/css" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<script>var pwa = false;</script> <script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/materialize-css/dist/js/materialize.js"
|
||||||
|
></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"
|
||||||
|
></script>
|
||||||
|
<script>
|
||||||
|
var misskeytoken = false
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||||
|
<div class="hide-first">
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"
|
||||||
|
>Retour</a
|
||||||
|
><br />
|
||||||
|
<h5>Liste des comptes</h5>
|
||||||
|
<div id="acct-list"></div>
|
||||||
|
<div class="divider"></div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-second">
|
||||||
|
<a href="setting.html">Having the exported file of TheDesk, click here to jump setting page</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Ajouter un compte</h5>
|
||||||
|
<br />
|
||||||
|
<div id="add">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s8">
|
||||||
|
Fill the instance domain (like mastodon.social)<br />
|
||||||
|
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp" />
|
||||||
|
<div id="ins-suggest"></div>
|
||||||
|
<button class="btn waves-effect" onclick="instance()">Login</button><br />
|
||||||
|
<div class="pwa">
|
||||||
|
Uncheck it to skip pasiting code.(login to Mastodon on Windows or macOS) (Recommended: pcheck)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="linux" />
|
||||||
|
<span>Code setup</span>
|
||||||
|
</label>
|
||||||
|
<br />
|
||||||
|
</div>
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="misskey" />
|
||||||
|
<span>Login as Misskey</span> </label
|
||||||
|
><br />
|
||||||
|
</div>
|
||||||
|
<div class="col s4 scr" aria-hidden="true">
|
||||||
|
<span style="font-family:Open Sans;">Supports</span>
|
||||||
|
<div id="support" class="collection transparent"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="auth" style="display:none">
|
||||||
|
Paste the code and close browser.<br />
|
||||||
|
<input type="text" id="code" placeholder="Code" required />
|
||||||
|
<button class="btn waves-effect" onclick="code()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup()" class="pointer">Use access token to login(click after fill not code but access-token in box: Advanced)</a>
|
||||||
|
<div id="compt" style="display:none" class="scr">
|
||||||
|
<h5>ログイン前に必ずご確認ください</h5>
|
||||||
|
<span id="compt-instance"></span>はバージョンが<span id="compt-ver"></span
|
||||||
|
>のため以下の機能がご利用いただけません。
|
||||||
|
<span id="compt-warn" style="display:none"
|
||||||
|
>また、このインスタンスはMastodonではなくそのAPI上の互換実装であり、TheDeskでは利用を想定していないため非保証となります。</span
|
||||||
|
>
|
||||||
|
<ul id="compt-list"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="misskeylogin" style="display:none">
|
||||||
|
<h5>AppSecret</h5>
|
||||||
|
Read <a href="https://thedesk.top/how-to-misskey-login.html">Docs(ja)</a> to login Misskey.<br />
|
||||||
|
<input type="hidden" id="misskey-url" />
|
||||||
|
<input type="text" id="misskey-key" placeholder="Code" required />
|
||||||
|
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup('misskey')" class="pointer">Use access token to login(click after fill not code but access-token in box: Advanced)</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-first">
|
||||||
|
<h5>Main an account</h5>
|
||||||
|
<div class="input-field" style="width:300px">
|
||||||
|
<span data-trans="your_acct">Choisir un compte</span>
|
||||||
|
<br />
|
||||||
|
<select
|
||||||
|
id="main-acct-sel"
|
||||||
|
class="acct-sel"
|
||||||
|
style="color:black"
|
||||||
|
onchange="mainacct()"
|
||||||
|
></select>
|
||||||
|
<label></label>
|
||||||
|
</div>
|
||||||
|
<ul id="domain-list" class="collection transparent"></ul>
|
||||||
|
<div id="instance-data">
|
||||||
|
Some instance data by
|
||||||
|
<a href="https://instances.social" target="_blank">instances.social API</a><br />
|
||||||
|
<h5 id="ins-title"></h5>
|
||||||
|
Administered by:<a id="ins-admin"></a><br />
|
||||||
|
<span id="ins-desc"></span><br />
|
||||||
|
<img src="../../img/loading.svg" id="ins-prof" width="200" /><br />
|
||||||
|
<br />
|
||||||
|
Domaine:<span id="ins-name"></span><br />
|
||||||
|
Serveur fédérées:<span id="ins-connect"></span><br />
|
||||||
|
Pouets:<span id="ins-toot"></span><br />
|
||||||
|
Utilisateur·rice·s:<span id="ins-user"></span>Utilisateur·rice·s<br />
|
||||||
|
Connection:<span id="ins-per"></span>%<br />
|
||||||
|
Version de Mastodon:<span id="ins-ver"></span>@<span id="ins-upd"></span><br />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/sha256.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
||||||
|
<script>$('body').addClass(localStorage.getItem('platform'))</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
1287
app/view/fr-FR/index.html
Normal file
1287
app/view/fr-FR/index.html
Normal file
File diff suppressed because it is too large
Load Diff
1
app/view/fr-FR/main.js
Normal file
1
app/view/fr-FR/main.js
Normal file
File diff suppressed because one or more lines are too long
632
app/view/fr-FR/setting.html
Normal file
632
app/view/fr-FR/setting.html
Normal file
|
@ -0,0 +1,632 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="fr-FR" style="overflow-y:scroll">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>Settings - TheDesk</title>
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = [];
|
||||||
|
_jipt.push(['project', 'thedesk']);
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<style>
|
||||||
|
input {
|
||||||
|
max-height: 3.84rem !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.pcr-result {
|
||||||
|
height: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container-after-titlebar {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
<script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" style="overflow-y:scroll" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script src="../../node_modules/json5/dist/index.min.js"></script>
|
||||||
|
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||||
|
<script type="text/javascript" src="setting.vue.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||||
|
<script>function renderMem() { return false; }</script>
|
||||||
|
|
||||||
|
<h4>Paramètres</h4>
|
||||||
|
<ul class="collapsible" data-collapsible="accordion">
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">desktop_windows</i>Préférences système
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Langues</h5>
|
||||||
|
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br><br>
|
||||||
|
<div style="display: flex;">
|
||||||
|
<div style="width: 22rem;" id="langsel">
|
||||||
|
<select id="langsel-sel"><option value="ja">日本語</option><option value="ja-KS">日本語(関西)</option><option value="en">English</option><option value="bg">български</option><option value="cs">Česky</option><option value="de">Deutsch</option><option value="es-AR">Español, argentina</option><option value="it-IT">italiano</option><option value="zh-CN">简体中文</option><option value="zh-TW">繁體中文(β)</option><option value="fr-FR">français(β)</option><option value="no-NO">norsk(β)</option><option value="pt-BR">Português, brasileiro(β)</option><option value="ru-RU">русский(β)</option><option value="es-ES">Español(β)</option><option value="ps">Crowdin translate system(beta)</option></select>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect" onclick="changeLang()">Modifier</button>
|
||||||
|
</div>
|
||||||
|
<h5>Importer et exporter les préférences</h5>
|
||||||
|
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Exporter</button>
|
||||||
|
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Importer</button><br>
|
||||||
|
Si vous avez une erreur lorsque vous choisissez le fichier, veuillez coller les chaînes affichées lorsque vous ouvrez le fichier et cliquez sur Importer<br>
|
||||||
|
<input type="text" id="imp-exp" style="width: 22rem">
|
||||||
|
<div id="envView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||||
|
class="pointer">Notification test</a><br></template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Modifier</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Police de caractères</h5>
|
||||||
|
Select your favorite font to 'Select'<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="font()">Sélectionner</button><br>
|
||||||
|
<div id="fonts" class="hide" style="overflow-y:scroll; width:22rem; height:40rem;"></div>
|
||||||
|
<br>
|
||||||
|
<input type="text" style="width:11.5rem" id="font">
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="settings()">Sauvegarder</button>
|
||||||
|
<br>
|
||||||
|
<h5>Folder to save</h5>
|
||||||
|
TheDesk utilise cette valeur lorsqu'il tente d'enregistrer des photos ou de prendre des captures d'écran.<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="savefolder()">Modifier</button>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="pwa">
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">color_lens</i>Thèmes
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h4>Sélectionner un thème</h4>
|
||||||
|
<div style="width:22rem" id="sel-selector">
|
||||||
|
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||||
|
</div>
|
||||||
|
<h4>Modifier et ajouter des thèmes</h4>
|
||||||
|
<div style="width:22rem" id="edit-selector" data-add="Ajouter">
|
||||||
|
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
|
||||||
|
<option value="add_new">Ajouter</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<h5>Nom</h5>
|
||||||
|
<input type="text" style="width:22rem" id="custom_name" placeholder="Nom...">
|
||||||
|
<h5>À propos de ce thème</h5>
|
||||||
|
<div class="input-field"><textarea style="width:22rem" id="custom_desc" class="materialize-textarea"
|
||||||
|
placeholder="À propos de ce thème..."></textarea></div>
|
||||||
|
<h5>Jeu de couleurs</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||||
|
checked="true" />
|
||||||
|
<span>Dark</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||||
|
value="light" />
|
||||||
|
<span>Light</span>
|
||||||
|
</label><br><br />
|
||||||
|
<button class="btn waves-effect" onclick="advanced()">Options avancées</button>
|
||||||
|
<span class="advanced hide"></span>
|
||||||
|
<div id="pickers">
|
||||||
|
<div>
|
||||||
|
<h5>Background</h5>Couleur de l'arrière-plan<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_0" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker0_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Text</h5>Couleur du texte<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_1" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker1_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Subcolor</h5>Distinguishable from background<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_2" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker2_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Accent</h5>Background of boosts<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_3" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker3_value">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal</h5>Background of modal window<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_4" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copier depuis:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modal')">Background</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker4_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal Footer</h5>Background of modal window's footer<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_5" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copier depuis:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modalFooter')">Background</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('modal','modalFooter')">Modal</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker5_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>3rd Color</h5>Backgroud of tag buttons, etc(near to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_6" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copier depuis:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','third')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker6_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>4th Color</h5>Title bar(same scheme to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_7" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copier depuis:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','forth')">Subcolor</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('third','forth')">3rd Color</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker7_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Bottom</h5>Background of menu-bar at bottom of window<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_8" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copier depuis:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','bottom')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker8_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>2nd Accent</h5>Emphasized toot's background<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_9" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copier depuis:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','emphasized')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker9_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Postbox</h5>Background of post-box and menu<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_10" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copier depuis:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','postbox')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker10_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Active</h5>Background of 'active' elements<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_11" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copier depuis:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','active')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker11_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected</h5>Background of selected with arrow keys<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_12" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker12_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected with shared</h5>Background of selected with arrow keys(boosted toots)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_13" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker13_value">
|
||||||
|
</div>
|
||||||
|
</div><br /><br />
|
||||||
|
<button class="btn-large waves-effect" onclick="customComp()">Modifier</button> <button
|
||||||
|
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">Supprimer</button><br><br>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_json" class="materialize-textarea"
|
||||||
|
placeholder="JSON style" readonly><br>
|
||||||
|
<h4>Import of custom themes</h4>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_import" class="materialize-textarea"
|
||||||
|
placeholder="JSON/JSON5 style">
|
||||||
|
<button class="btn waves-effect" onclick="customImp()">Importer</button><br>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">reorder</i>Timeline Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="tlView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Modifier</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Son personnalisé</h5>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span
|
||||||
|
id="c1-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span
|
||||||
|
id="c2-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span
|
||||||
|
id="c3-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span
|
||||||
|
id="c4-file"></span><br>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100 (par défaut:80)<br>
|
||||||
|
<p class="range-field"><span id="soundVolVal">80</span><br>
|
||||||
|
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">send</i>Posting Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="postView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<template
|
||||||
|
v-if="(!check.kirishima || (check.kirishima && kirishima) )&& (!check.quote || (check.quote && quoters))">
|
||||||
|
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||||
|
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||||
|
v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span></label>
|
||||||
|
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Modifier</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Easy inserter</h5>
|
||||||
|
You can insert any letters and emojis with only 3 keys<br>
|
||||||
|
Ctrl+Shift+1:<input type="text" style="width:11.5rem" id="oks-1">
|
||||||
|
<button onclick="oks(1)" class="btn waves-effect" style="width:7.7rem;">Sauvegarder</button><br><br>
|
||||||
|
Ctrl+Shift+2:<input type="text" style="width:11.5rem" id="oks-2">
|
||||||
|
<button onclick="oks(2)" class="btn waves-effect" style="width:7.7rem;">Sauvegarder</button><br><br>
|
||||||
|
Ctrl+Shift+3:<input type="text" style="width:11.5rem" id="oks-3">
|
||||||
|
<button onclick="oks(3)" class="btn waves-effect" style="width:7.7rem;">Sauvegarder</button><br><br>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<img src="../../img/aiscript.svg"
|
||||||
|
style="height: 1.5rem; margin-left: 0.4rem; margin-right: 0.4rem;">Plugins
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<a href="https://github.com/cutls/TheDesk/blob/master/plugin.md">Japanese docs of AiScript TheDesk plugins</a><br />
|
||||||
|
<textarea id="plugin" data-id="add_new" style="height: 20rem"></textarea>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="completePlugin()">Modifier</button>
|
||||||
|
<button class="btn waves-effect red disabled plugin_delete" style="width:7.7rem;"
|
||||||
|
onclick="deletePlugin()">Supprimer</button>
|
||||||
|
<h5>Plugin list</h5>
|
||||||
|
<div style="width:22rem" id="plugin-selector" data-add="Ajouter">
|
||||||
|
<select id="plugin-edit-sel" class="custom-sel" onchange="pluginEdit()">
|
||||||
|
<option value="add_new">Ajouter</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">bookmark</i>Mute & Emphasis Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Client Mute</h5>
|
||||||
|
<div id="mute-cli"></div>
|
||||||
|
<h5>Client Emphasis</h5>
|
||||||
|
Click client name on toots to toggle mute and emphasis.
|
||||||
|
<h5>Words Mute</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordmute" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:7.7rem;">Sauvegarder</button>
|
||||||
|
<h5>Words Emphasis</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordemp" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordempSave()" class="btn waves-effect" style="width:7.7rem;">Sauvegarder</button>
|
||||||
|
<h5>Users Emphasis</h5>
|
||||||
|
Set on users data modals.
|
||||||
|
<span class="emphasized"> Use this color to emphasis </span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="fab fa-spotify"></i>Spotify and NowPlaying Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Account Connection(Spotify)</h5>
|
||||||
|
TheDesk enregistre vos données sur le serveur thedesk.top.<br>
|
||||||
|
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
|
||||||
|
onclick="spotifyAuth()" class="btn waves-effect" style="width:7.7rem;">Sauvegarder</button></div>
|
||||||
|
<a onclick="spotifyConnect()" class="btn waves-effect nex"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-enable"><i
|
||||||
|
class="fab fa-spotify left"></i>Se connecter</a>
|
||||||
|
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-disable"><i
|
||||||
|
class="fab fa-spotify left"></i>Se déconnecter</a>
|
||||||
|
<h5>Account Connection(Last.fm)</h5>
|
||||||
|
User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.<br />
|
||||||
|
<input type="text" style="width:11.5rem" id="lastFmUser">
|
||||||
|
<button onclick="lastFmSet()" class="btn waves-effect" style="width:7.7rem;">Sauvegarder</button>
|
||||||
|
<h5>Modifier un modèle</h5>
|
||||||
|
<br>
|
||||||
|
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||||
|
{url}</textarea><br>
|
||||||
|
Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify<br>
|
||||||
|
<span class="mac">>macOS:{song}:Song name/{album}:Album name/{artist}:Artist name/composer:{composer}/spampling rate:{hz}/bit rate:{bitRate}/genre:{genre}</span><br>
|
||||||
|
<button onclick="spotifySave()" class="btn waves-effect" style="width:7.7rem;">Sauvegarder</button>
|
||||||
|
<h5>Attach an Artwork of Spotify</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Oui</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||||
|
value="no" />
|
||||||
|
<span>Non</span>
|
||||||
|
</label>
|
||||||
|
<div class="mac">
|
||||||
|
<h5>Si la chanson n'a pas d'illustration, la compléter automatiquement (macOS)</h5>
|
||||||
|
If you nowplaying an non-artwork song, get one which seems nice through API. If you do not like the completed artwork, you can right-click it to delete.<br />
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Oui</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_no"
|
||||||
|
value="no" />
|
||||||
|
<span>Non</span>
|
||||||
|
</label>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">hearing</i>TTS(text to speech) Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>BouyomiChan connect</h5>
|
||||||
|
Require: BouyomiChan WebSocket Plugin<a href="https://github.com/xztaityozx/BouyomiChan-WebSocket-Plugin"
|
||||||
|
target="_blank">GitHub</a><br>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Oui</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_no" value="no" />
|
||||||
|
<span>Non</span>
|
||||||
|
</label>
|
||||||
|
<h5>Vitesse</h5>
|
||||||
|
1-100(default:10)<br>
|
||||||
|
<p class="range-field"><span id="voicespeedVal">10</span><br>
|
||||||
|
<input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||||
|
onchange="document.getElementById('voicespeedVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Pitch</h5>
|
||||||
|
0-100(default:50)<br>
|
||||||
|
<p class="range-field"><span id="voicepitchVal">50</span><br>
|
||||||
|
<input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||||
|
onchange="document.getElementById('voicepitchVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100(default:100)<br>
|
||||||
|
<p class="range-field"><span id="voicevolVal">100</span><br>
|
||||||
|
<input type="range" id="voicevol" min="0" max="100" value="100"
|
||||||
|
onchange="document.getElementById('voicevolVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Test</h5>
|
||||||
|
<input type="text" style="width:27rem" id="voicetxt" value="TheDesk est un client Mastodon open-source pour PC.">
|
||||||
|
<button class="btn waves-effect blue" style="width:11.5rem;" onclick="voicePlay()"
|
||||||
|
id="testplay">Jouer/Arrêter</button><br>
|
||||||
|
<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="voiceSettings()">Sauvegarder</button>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:15rem;"><i
|
||||||
|
class="material-icons left">undo</i>Retour</a>
|
||||||
|
<br>
|
||||||
|
<br>Raccourcis clavier
|
||||||
|
<li>Ctrl+1-9:Jump to n(1-9)th column</li>
|
||||||
|
<li>N:Open toot box</li>
|
||||||
|
<li>X:Toggle toot box</li>
|
||||||
|
<li>Ctrl+Enter:Publier</li>
|
||||||
|
<li>Ctrl+Enter+Shift:Post(secondary toot)</li>
|
||||||
|
<li>Alt+Enter:Secondary Toot Button</li>
|
||||||
|
<li>Ctrl+E:Marquer toutes les notifications comme lues</li>
|
||||||
|
<li>Ctrl+U:Sélectionner la colonne de toot en haut à gauche (colonne numéro 1)</li>
|
||||||
|
<li>Esc:Hide toot box</li>
|
||||||
|
<li>F5:Super Reload</li>
|
||||||
|
<li>Ctrl+Shift+C:Clear toot box</li>
|
||||||
|
<li>Ctrl+Shift+S:Paramètres</li>
|
||||||
|
<li>Ctrl+Shift+M:Account Manager</li>
|
||||||
|
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
|
||||||
|
<li>Ctrl+Shift+P:Show profile of selecting</li>
|
||||||
|
<li>←/→:Montrer l'image précédente ou suivante</li>
|
||||||
|
<li>Molette de la souris : Zoomer sur l'image</li>
|
||||||
|
<div class="hide kirishima">
|
||||||
|
以下Markdownに対応したインスタンスのみ。
|
||||||
|
<br>
|
||||||
|
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||||
|
Quand un toot est sélectionné :
|
||||||
|
<li>F:Mettre ce pouet en favoris</li>
|
||||||
|
<li>B:Booster ce pouet</li>
|
||||||
|
<li>R:Répondre à ce pouet</li>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect red" style="width:100%; max-width:40rem;"
|
||||||
|
onclick="if(confirm('Supprimer toutes les données. Vous ne pouvez pas annuler. Continuer ?')){ localStorage.clear(); location.href='index.html'; }"><i
|
||||||
|
class="material-icons left">delete</i>Réinitialiser (Danger)</button><br><br>
|
||||||
|
<button class="btn waves-effect indigo pwa" onclick="about()" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">info</i>About TheDesk</button>
|
||||||
|
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">web</i>Site Web</a>
|
||||||
|
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Assistance(Pixiv FANBOX)</a>
|
||||||
|
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Assistance(Patreon)</a>
|
||||||
|
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
|
||||||
|
style="width:100%; max-width:40rem; background-color: #f6c915"><i
|
||||||
|
class="material-icons left">trending_up</i>Assistance(Liberapay)</a>
|
||||||
|
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">list</i>Aide/Docs</a>
|
||||||
|
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="fab fa-github left"></i>GitHub</a>
|
||||||
|
<a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><img src="../../img/desk_full.svg" class="left" width="25"
|
||||||
|
style="padding-top:5px;">Main author: Cutls@cutls.com</a>
|
||||||
|
<br>
|
||||||
|
TheDesk @ <a href="https://github.com/cutls/TheDesk/commits/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c">89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c</a> - <a
|
||||||
|
onclick="checkupd(); return localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||||
|
class="pointer pwa">Vérifier les mises à jour</a><br>
|
||||||
|
<br>
|
||||||
|
Kyash<br>
|
||||||
|
<img src="../../img/kyash.png" width="100"><br>
|
||||||
|
<a href="https://status.cutls.com/">
|
||||||
|
<img src="https://status.cutls.com/badge-service?site=thedesk.top">
|
||||||
|
</a><br>
|
||||||
|
<h5>OSS License</h5>
|
||||||
|
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fcutls%2FTheDesk/refs/branch/master/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c"
|
||||||
|
alt="FOSSA Status"><img
|
||||||
|
src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcutls%2FTheDesk.svg?type=small" /></a>
|
||||||
|
<br>
|
||||||
|
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||||
|
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
|
||||||
|
href="https://thedesk.top/priv.html">Privacy
|
||||||
|
Policy</a>
|
||||||
|
<br>
|
||||||
|
</span><br>
|
||||||
|
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||||
|
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/aiscript.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/plugin.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/speech.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/settings.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
756
app/view/fr-FR/setting.vue.js
Normal file
756
app/view/fr-FR/setting.vue.js
Normal file
|
@ -0,0 +1,756 @@
|
||||||
|
var yesno = [
|
||||||
|
{
|
||||||
|
text: 'Oui',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Non',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var sound = [
|
||||||
|
{
|
||||||
|
text: 'Aucun',
|
||||||
|
value: 'none'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Par défaut',
|
||||||
|
value: 'default'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 1',
|
||||||
|
value: 'c1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 2',
|
||||||
|
value: 'c2'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 3',
|
||||||
|
value: 'c3'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 4',
|
||||||
|
value: 'c4'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var envConstruction = [
|
||||||
|
{
|
||||||
|
id: 'popup',
|
||||||
|
storage: 'popup',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Notification pop-up',
|
||||||
|
desc: 'Hide to set "0"',
|
||||||
|
after: 'sec'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notf',
|
||||||
|
storage: 'nativenotf',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Native notification',
|
||||||
|
desc: 'Cela ne fonctionne pas sur la version portable pour Windows.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'width',
|
||||||
|
storage: 'width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 300,
|
||||||
|
text: { after: 'px ~ ' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'maxWidth',
|
||||||
|
storage: 'max-width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 600,
|
||||||
|
text: { after: 'px' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Largeur des colonnes',
|
||||||
|
desc: 'Scroll bar will be shown when your window size is more than ammounts of columns.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'margin',
|
||||||
|
storage: 'margin',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Marge entre les timelines',
|
||||||
|
desc: '',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'fixwidth',
|
||||||
|
storage: 'fixwidth',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 300,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Largeur minimale du navigateur TweetDeck',
|
||||||
|
desc: '',
|
||||||
|
after: 'px above'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'size',
|
||||||
|
storage: 'size',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 50,
|
||||||
|
setValue: 13,
|
||||||
|
text: {
|
||||||
|
head: 'Taille de la police de caractères',
|
||||||
|
desc: '<span style="font-size:13px">13px(valeur absolue)</span>',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ha',
|
||||||
|
storage: 'ha',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: false,
|
||||||
|
text: {
|
||||||
|
head: 'Désactiver l\accélération matérielle',
|
||||||
|
desc: 'Redémarrage Automatique',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Oui',
|
||||||
|
value: 'true'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Non',
|
||||||
|
value: 'false'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ua',
|
||||||
|
storage: 'ua_setting',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: '',
|
||||||
|
width: 200,
|
||||||
|
text: {
|
||||||
|
head: 'User agent',
|
||||||
|
desc: 'Restart when changed'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'srcUrl',
|
||||||
|
storage: 'srcUrl',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 200,
|
||||||
|
setValue: 'https://google.com/search?q={q}',
|
||||||
|
text: {
|
||||||
|
head: 'Moteur de recherche',
|
||||||
|
desc: '{q} will be replaced to query.',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'download',
|
||||||
|
storage: 'dl-win',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Versioning(o Windows downloader)',
|
||||||
|
desc: 'ex: TheDesk-1.0.0-setup.exe',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var tlConstruction = [
|
||||||
|
{
|
||||||
|
id: 'time',
|
||||||
|
storage: 'datetype',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'absolute',
|
||||||
|
text: {
|
||||||
|
head: 'Format de l’heure',
|
||||||
|
desc: 'Relative format:"1 minutes ago","3 days ago"<br>Absolute format:"23:25:21","2017/12/30 23:59:00"<br>Mixed format:toots posted today are relative-format, others are absolute-format.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Relative',
|
||||||
|
value: 'relative'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Absolute',
|
||||||
|
value: 'absolute'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Both relative and absolute',
|
||||||
|
value: 'double'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Mixed',
|
||||||
|
value: 'medium'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ul',
|
||||||
|
storage: 'locale',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Server\s unique locale',
|
||||||
|
desc: 'This value is available on some Japanese servers',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'nsfw',
|
||||||
|
storage: 'nsfw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide NSFW pictures',
|
||||||
|
desc: 'Strong blur effect',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw',
|
||||||
|
storage: 'cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide CW contents',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'rp',
|
||||||
|
storage: 'replyct',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'hidden',
|
||||||
|
text: {
|
||||||
|
head: 'Reply counter style',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Show 1+ if the replies are more than 1.',
|
||||||
|
value: 'hidden'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Show full count(1,2...)',
|
||||||
|
value: 'all'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'gif',
|
||||||
|
storage: 'gif',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animated GIF images animation',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'tag',
|
||||||
|
storage: 'tag-range',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'local',
|
||||||
|
text: {
|
||||||
|
head: 'Tag TL Search',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Use federated network',
|
||||||
|
value: 'all'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Utiliser le réseau local',
|
||||||
|
value: 'local'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'via',
|
||||||
|
storage: 'viashow',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Afficher via',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'mov',
|
||||||
|
storage: 'mouseover',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Hide action buttons without mouseover',
|
||||||
|
desc: 'You may feel \mouseover\ is unconfortable:(',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Mouseover to show',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Cliquez pour afficher',
|
||||||
|
value: 'click'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Non',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notfm',
|
||||||
|
storage: 'setasread',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Show Notification marker, red colored bell and counter(if you show a notification column.)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'sentence',
|
||||||
|
storage: 'sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'lignes above ou' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'letters',
|
||||||
|
storage: 'letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'lettres above' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Auto folding',
|
||||||
|
desc: 'TheDesk ne réduit pas les toots de 5 caractères ou moins. Si réduit, les retours à la ligne ne sont pas affichés. TheDesk compte uniquement les retours à la ligne comme le nombre de lignes.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img-height',
|
||||||
|
storage: 'img-height',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 80,
|
||||||
|
setValue: 200,
|
||||||
|
text: {
|
||||||
|
head: 'Hauteur des images',
|
||||||
|
desc: 'Option:Set "full" to uncrop.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ticker',
|
||||||
|
storage: 'ticker_ok',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Activer OpenSticker',
|
||||||
|
desc: 'Show colorful stickers about tooters\ server. <a href="https://cdn.weep.me/mastodon/">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'anime',
|
||||||
|
storage: 'animation',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animation des timelines',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'markers',
|
||||||
|
storage: 'markers',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Markers(mark as read) on HTL and notifications',
|
||||||
|
desc: 'Mastodon 3.0~. Shared on WebUI and third-party supported clients.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'remote_img',
|
||||||
|
storage: 'remote_img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Récupérer les images depuis le serveur distant',
|
||||||
|
desc: 'All previews are got from your loginned cache server.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'bkm',
|
||||||
|
storage: 'bookmark',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Show a bookmarking toot button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'scroll',
|
||||||
|
storage: 'scroll',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normalScrollBar',
|
||||||
|
text: {
|
||||||
|
head: 'Height of the scroll bar',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Thick',
|
||||||
|
value: 'thickScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Normal',
|
||||||
|
value: 'normalScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Thin',
|
||||||
|
value: 'thinScrollBar'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'replySound',
|
||||||
|
storage: 'replySound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Son (Réponse)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'favSound',
|
||||||
|
storage: 'favSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Son (Fav)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'btSound',
|
||||||
|
storage: 'btSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Son (Boost)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'followSound',
|
||||||
|
storage: 'followSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Son (Follow)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var postConstruction = [
|
||||||
|
{
|
||||||
|
id: 'cw-text',
|
||||||
|
storage: 'cw-text',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 150,
|
||||||
|
setValue: '',
|
||||||
|
text: {
|
||||||
|
head: 'Texte d\avertissement par défaut',
|
||||||
|
desc: '',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'cw_sentence',
|
||||||
|
storage: 'cw_sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'lignes above ou' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw_letters',
|
||||||
|
storage: 'cw_letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'lettres above' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Alerte avant de poster un long toot.',
|
||||||
|
desc: 'Afficher la boîte de dialogue si vous cachez un texte trop long.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cws',
|
||||||
|
storage: 'always-cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Always CW set',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw-continue',
|
||||||
|
storage: 'cw-continue',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: '@@cwContinue@@',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'vis',
|
||||||
|
storage: 'vis',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Visibilité par défaut',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Public',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Non listé',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Privé',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direct',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Memory(memorized as each server)',
|
||||||
|
value: 'memory'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Default of your visibility(Set on preferences of Mastodon server)',
|
||||||
|
value: 'useapi'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img',
|
||||||
|
storage: 'img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no-act',
|
||||||
|
text: {
|
||||||
|
head: 'Posting images preferences',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Insert media URL',
|
||||||
|
value: 'url'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Insert nothig',
|
||||||
|
value: 'no-act'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'box',
|
||||||
|
storage: 'box',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Action of posting-box',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Folding',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Open after posting',
|
||||||
|
value: 'no'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Absolutely open',
|
||||||
|
value: 'absolute'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'quote',
|
||||||
|
storage: 'quote',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'nothing',
|
||||||
|
text: {
|
||||||
|
head: 'Format des citations',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'URL uniquement',
|
||||||
|
value: 'simple'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL and acct(mention to the user)',
|
||||||
|
value: 'mention'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL, text and acct(mention to the user)',
|
||||||
|
value: 'full'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'API (seulement certaines instances)',
|
||||||
|
value: 'apiQuote',
|
||||||
|
quote: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Disabled(Hide buttons on TLs)',
|
||||||
|
value: 'nothing'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'main',
|
||||||
|
storage: 'mainuse',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'remain',
|
||||||
|
text: {
|
||||||
|
head: 'Default accounts of actions',
|
||||||
|
desc: 'Main account can be set on Account Manager.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Account you used recently',
|
||||||
|
value: 'remain'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Compte principal',
|
||||||
|
value: 'main'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'sec',
|
||||||
|
storage: 'sec',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Secondary Toot Button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Hidden',
|
||||||
|
value: 'nothing'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Public',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Non listé',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Privé',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direct',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Local Only',
|
||||||
|
value: 'local',
|
||||||
|
kirishima: true,
|
||||||
|
kirishimaText: '非対応インスタンスでは「未収載」になります。'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'zero',
|
||||||
|
storage: 'emoji-zero-width',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normal',
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Zero-width space when inserting emojis',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'uploadCrop',
|
||||||
|
storage: 'uploadCrop',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 100,
|
||||||
|
setValue: '0',
|
||||||
|
text: {
|
||||||
|
head: 'Ajuster automatiquement la taille',
|
||||||
|
desc: 'Max long-side px. Uploaded images are converted to JPEG(from JPEG) or PNG(from others). Set 0 and the images will not be resized. Notice: if you post an animated picture like GIF, it will be converted static one.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
302
app/view/fr-FR/update.html
Normal file
302
app/view/fr-FR/update.html
Normal file
|
@ -0,0 +1,302 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="fr-FR">
|
||||||
|
<head>
|
||||||
|
<title>Update - TheDesk</title>
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Open Sans';
|
||||||
|
-webkit-app-region: drag;
|
||||||
|
cursor: move;
|
||||||
|
padding: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#start {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100vw;
|
||||||
|
height: calc(100vh - 2.5rem);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#checkbox {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a,
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
label,
|
||||||
|
i {
|
||||||
|
-webkit-app-region: no-drag;
|
||||||
|
}
|
||||||
|
|
||||||
|
#updskip {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100px;
|
||||||
|
border: 1px solid;
|
||||||
|
margin-left: 5px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border: 1px solid #c26363;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #c26363;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn:hover {
|
||||||
|
background-color: #c26363;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#prog {
|
||||||
|
font-size: 200%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||||
|
<!--a href="update.html">Reload</a-->
|
||||||
|
<div id="start" style="filter: brightness(100%)">
|
||||||
|
<div id="box" class="show">
|
||||||
|
<h2>TheDesk</h2>
|
||||||
|
<p>Téléchargez le dernier TheDesk</p>
|
||||||
|
<span id="now"></span>→<b id="ver"></b><br />
|
||||||
|
<a href="" id="github" class="btn waves-effect grey darken-1"><i class="fab fa-github left"></i>What is new?</a><br />
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left: 15px;">Installer(Recommended)</button>
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left: 15px;">Portable ver.</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left: 15px;">zip</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxdeb')" style="margin-left: 15px;">deb(Recommended on buntu, Debian)</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxsnap')" style="margin-left: 15px;">snap</button>
|
||||||
|
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left: 15px;">Démarrer</button>
|
||||||
|
<br />
|
||||||
|
Some problems?<br />Please download on <a href="https://thedesk.top">Oficial HP</a>.
|
||||||
|
</div>
|
||||||
|
<div id="skipper" class="hide">
|
||||||
|
<h4>Ignorer cette mise à jour</h4>
|
||||||
|
You may lose a cool experience!<br />
|
||||||
|
<div id="updskip">
|
||||||
|
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>Hidden until next TL loading</div>
|
||||||
|
</a>
|
||||||
|
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>Hidden until next version</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<a class="pointer waves-effect" onclick="skipper();" style="margin-top: 5px;">Continue updating</a>
|
||||||
|
</div>
|
||||||
|
<div id="dlnow" class="hide" style="width: 70%;">
|
||||||
|
<h4>Downloading...</h4>
|
||||||
|
<h4 id="prog"></h4>
|
||||||
|
<div class="progress">
|
||||||
|
<div class="determinate" style="width: 0%;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script>
|
||||||
|
function skipper() {
|
||||||
|
$('#dlnow').addClass('hide')
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
if ($('#box').hasClass('hide') && $('#skipper').hasClass('hide')) {
|
||||||
|
$('#skipper').removeClass('hide')
|
||||||
|
$('#skipper').addClass('show')
|
||||||
|
} else {
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('show')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
verck()
|
||||||
|
function update(sel) {
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('show')
|
||||||
|
$('#prog').text('')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
if (sel == 'install') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'portable') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64p_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32p_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'linux') {
|
||||||
|
var url = json['linuxx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'thedesk-' + json.unique_linux + '.zip'
|
||||||
|
} else {
|
||||||
|
var file = 'thedesk.zip'
|
||||||
|
}
|
||||||
|
var filesize = json.linuxx64_size
|
||||||
|
} else if (sel == 'linuxdeb') {
|
||||||
|
var url = json['linuxdeb']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.deb'
|
||||||
|
var filesize = json.linuxdeb_size
|
||||||
|
} else if (sel == 'linuxsnap') {
|
||||||
|
var url = json['linuxsnap']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.snap'
|
||||||
|
var filesize = json.linuxsnap_size
|
||||||
|
} else if (sel == 'mac') {
|
||||||
|
var url = json['mac']
|
||||||
|
var file = 'TheDesk-' + json.unique_mac + '.dmg'
|
||||||
|
var filesize = json.mac_size
|
||||||
|
}
|
||||||
|
postMessage(['downloadButton', [url, file, filesize]], '*')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function quit() {
|
||||||
|
postMessage(['sendSinmpleIpc', 'quit'], '*')
|
||||||
|
}
|
||||||
|
function updateProg(arg) {
|
||||||
|
$('.determinate').css('width', arg[0].percent * 100 + '%')
|
||||||
|
$('#prog').html(`${Math.floor(arg[0].percent * 100)}%<br />(${Math.floor(arg[0].percent*arg[1]/1024/1024*10)/10} MB / ${Math.floor(arg[1]/1024/1024*10)/10} MB)`)
|
||||||
|
|
||||||
|
}
|
||||||
|
function updateMess(arg) {
|
||||||
|
console.log(arg)
|
||||||
|
$('#prog').text(arg)
|
||||||
|
}
|
||||||
|
function verck() {
|
||||||
|
var platform = localStorage.getItem('platform')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('.windows').removeClass('hide')
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('.linux').removeClass('hide')
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('.mac').removeClass('hide')
|
||||||
|
}
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
console.log(json)
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('#ver').text(json.desk)
|
||||||
|
localStorage.setItem('next-ver', json.desk)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('#ver').text(json.desk_linux)
|
||||||
|
localStorage.setItem('next-ver', json.desk_linux)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_linux
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('#ver').text(json.desk_mac)
|
||||||
|
localStorage.setItem('next-ver', json.desk_mac)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_mac
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#github').attr('href', url)
|
||||||
|
|
||||||
|
$('#now').text(localStorage.getItem('ver'))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function nextv() {
|
||||||
|
localStorage.setItem('new-ver-skip', 'true')
|
||||||
|
window.close()
|
||||||
|
}
|
||||||
|
function enc(ver) {
|
||||||
|
var ver = ver.replace(/\s/g, '')
|
||||||
|
var ver = ver.replace(/\(/g, '-')
|
||||||
|
var ver = ver.replace(/\)/g, '')
|
||||||
|
var ver = ver.replace(/\[/g, '_')
|
||||||
|
var ver = ver.replace(/\]/g, '')
|
||||||
|
return ver
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -67,10 +67,8 @@
|
||||||
"add_new": "Add new",
|
"add_new": "Add new",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"desc": "About this theme",
|
"desc": "About this theme",
|
||||||
"customShare": "Share this code with other TheDesk. Do not share this code with MiAS.",
|
|
||||||
"customImport": "Import of custom themes",
|
"customImport": "Import of custom themes",
|
||||||
"delete": "Delete",
|
"delete": "Delete",
|
||||||
"cImpWarn": "Get more themes on <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
|
|
||||||
"timeline": "Timeline Preferences",
|
"timeline": "Timeline Preferences",
|
||||||
"timemode": "Time format",
|
"timemode": "Time format",
|
||||||
"relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"",
|
"relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"",
|
||||||
|
|
|
@ -66,10 +66,8 @@
|
||||||
"add_new": "新規作成",
|
"add_new": "新規作成",
|
||||||
"name": "名前",
|
"name": "名前",
|
||||||
"desc": "説明",
|
"desc": "説明",
|
||||||
"customShare": "このコードは他のTheDeskなどとシェアできるけこのコードをMiASに貼るのはあかん。詳細:<a href=\"https://thedesk.top/mias.html\" target=\"_blank\">テーマ互換性</a>",
|
|
||||||
"customImport": "カスタムテーマのインポート",
|
"customImport": "カスタムテーマのインポート",
|
||||||
"delete": "削除",
|
"delete": "削除",
|
||||||
"cImpWarn": "<a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>上の80を超えるテーマを張っ付けることもできる。",
|
|
||||||
"timeline": "タイムラインの設定",
|
"timeline": "タイムラインの設定",
|
||||||
"timemode": "時間表記設定",
|
"timemode": "時間表記設定",
|
||||||
"relativetime": "相対時間の例:\"1分前\",\"3日前\"",
|
"relativetime": "相対時間の例:\"1分前\",\"3日前\"",
|
||||||
|
|
|
@ -67,10 +67,8 @@
|
||||||
"add_new": "新規作成",
|
"add_new": "新規作成",
|
||||||
"name": "名前",
|
"name": "名前",
|
||||||
"desc": "説明",
|
"desc": "説明",
|
||||||
"customShare": "このコードは他のTheDeskなどとシェアできます。このコードをMiASに貼ることはご遠慮ください。詳細:<a href=\"https://thedesk.top/mias.html\" target=\"_blank\">テーマ互換性</a>",
|
|
||||||
"customImport": "カスタムテーマのインポート",
|
"customImport": "カスタムテーマのインポート",
|
||||||
"delete": "削除",
|
"delete": "削除",
|
||||||
"cImpWarn": "<a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>上の80を超えるテーマを張り付けることもできます。",
|
|
||||||
"timeline": "タイムラインの設定",
|
"timeline": "タイムラインの設定",
|
||||||
"timemode": "時間表記設定",
|
"timemode": "時間表記設定",
|
||||||
"relativetime": "相対時間の例:\"1分前\",\"3日前\"",
|
"relativetime": "相対時間の例:\"1分前\",\"3日前\"",
|
||||||
|
|
|
@ -28,7 +28,8 @@ function main(ver, basefile, pwa, store) {
|
||||||
.trim()
|
.trim()
|
||||||
fs.writeFileSync(basefile + 'git', gitHash)
|
fs.writeFileSync(basefile + 'git', gitHash)
|
||||||
console.log('Constructing view files ' + ver)
|
console.log('Constructing view files ' + ver)
|
||||||
const langs = ['ja', 'ja-KS', 'en', 'bg', 'cs', 'de', 'es-AR', 'it-IT', 'ps']
|
const langs = ['ja', 'ja-KS', 'en', 'bg', 'cs', 'de',
|
||||||
|
'es-AR', 'it-IT', 'zh-CN', 'zh-TW', 'fr-FR', 'no-NO', 'pt-BR', 'ru-RU', 'es-ES', 'ps']
|
||||||
const langsh = [
|
const langsh = [
|
||||||
'日本語',
|
'日本語',
|
||||||
'日本語(関西)',
|
'日本語(関西)',
|
||||||
|
@ -36,8 +37,15 @@ function main(ver, basefile, pwa, store) {
|
||||||
'български',
|
'български',
|
||||||
'Česky',
|
'Česky',
|
||||||
'Deutsch',
|
'Deutsch',
|
||||||
'Spanish, Argentina',
|
'Español, argentina',
|
||||||
'italiano',
|
'italiano',
|
||||||
|
'简体中文',
|
||||||
|
'繁體中文(β)',
|
||||||
|
'français(β)',
|
||||||
|
'norsk(β)',
|
||||||
|
'Português, brasileiro(β)',
|
||||||
|
'русский(β)',
|
||||||
|
'Español(β)',
|
||||||
'Crowdin translate system(beta)'
|
'Crowdin translate system(beta)'
|
||||||
]
|
]
|
||||||
const simples = ['acct', 'index', 'setting', 'update', 'setting']
|
const simples = ['acct', 'index', 'setting', 'update', 'setting']
|
||||||
|
@ -60,28 +68,24 @@ function main(ver, basefile, pwa, store) {
|
||||||
fs.mkdirSync(targetDir)
|
fs.mkdirSync(targetDir)
|
||||||
}
|
}
|
||||||
langstr =
|
langstr =
|
||||||
langstr +
|
langstr + `<option value="${lang}">${langsh[n]}</option>`
|
||||||
'<a onclick="changelang(\'' +
|
|
||||||
lang +
|
|
||||||
'\')" class="pointer" style="margin:4px;border: 1px solid var(--text); padding: 3px">' +
|
|
||||||
langsh[n] +
|
|
||||||
'</a>'
|
|
||||||
let mainJson = JSON.parse(
|
let mainJson = JSON.parse(
|
||||||
fs.readFileSync(basefile + 'view/make/language/' + lang + '/main.json', 'utf8')
|
fs.readFileSync(basefile + 'view/make/language/' + lang + '/main.json', 'utf8')
|
||||||
)
|
)
|
||||||
if (lang == 'ja-KS') {
|
if (lang == 'ja-KS') {
|
||||||
Object.keys(jaJson).forEach(function(key) {
|
Object.keys(jaJson).forEach(function (key) {
|
||||||
if (!mainJson[key]) {
|
if (!mainJson[key]) {
|
||||||
mainJson[key] = jaJson[key]
|
mainJson[key] = jaJson[key]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else if (lang != 'en') {
|
} else if (lang != 'en') {
|
||||||
Object.keys(enJson).forEach(function(key) {
|
Object.keys(enJson).forEach(function (key) {
|
||||||
if (!mainJson[key]) {
|
if (!mainJson[key]) {
|
||||||
mainJson[key] = enJson[key]
|
mainJson[key] = enJson[key]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
mainJson.language = lang
|
||||||
fs.writeFileSync(
|
fs.writeFileSync(
|
||||||
basefile + 'view/' + lang + '/main.js',
|
basefile + 'view/' + lang + '/main.js',
|
||||||
JSON.stringify(mainJson).replace(/^{/, 'var lang = {')
|
JSON.stringify(mainJson).replace(/^{/, 'var lang = {')
|
||||||
|
@ -106,7 +110,7 @@ function main(ver, basefile, pwa, store) {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if (lang == 'ja') {
|
if (lang == 'ja') {
|
||||||
Object.keys(target).forEach(function(key) {
|
Object.keys(target).forEach(function (key) {
|
||||||
refKey.push(key)
|
refKey.push(key)
|
||||||
let str = target[key]
|
let str = target[key]
|
||||||
if (pages[i] == 'setting.vue.js') {
|
if (pages[i] == 'setting.vue.js') {
|
||||||
|
@ -148,7 +152,7 @@ function main(ver, basefile, pwa, store) {
|
||||||
source = source.replace(/@@gitHashShort@@/g, gitHash.slice(0, 7))
|
source = source.replace(/@@gitHashShort@@/g, gitHash.slice(0, 7))
|
||||||
source = source.replace(/@@lang@@/g, lang)
|
source = source.replace(/@@lang@@/g, lang)
|
||||||
source = source.replace(/@@langlist@@/g, langstr)
|
source = source.replace(/@@langlist@@/g, langstr)
|
||||||
if(pwa) {
|
if (pwa) {
|
||||||
source = source.replace(/@@pwa@@/g, `<link rel="manifest" href="../../manifest.json" />
|
source = source.replace(/@@pwa@@/g, `<link rel="manifest" href="../../manifest.json" />
|
||||||
<script>var pwa = true;"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.pwa.js").then(e=>{});</script>`)
|
<script>var pwa = true;"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.pwa.js").then(e=>{});</script>`)
|
||||||
source = source.replace(/@@node_base@@/g, 'dependencies')
|
source = source.replace(/@@node_base@@/g, 'dependencies')
|
||||||
|
@ -179,9 +183,9 @@ if (process.argv.indexOf('--watch') !== -1) {
|
||||||
ignored: 'view/make/make.js',
|
ignored: 'view/make/make.js',
|
||||||
persistent: true
|
persistent: true
|
||||||
})
|
})
|
||||||
watcher.on('ready', function() {
|
watcher.on('ready', function () {
|
||||||
console.log('watching...')
|
console.log('watching...')
|
||||||
watcher.on('change', function(path) {
|
watcher.on('change', function (path) {
|
||||||
console.log(path + ' changed.')
|
console.log(path + ' changed.')
|
||||||
main(ver, basefile)
|
main(ver, basefile)
|
||||||
})
|
})
|
||||||
|
|
|
@ -54,7 +54,12 @@
|
||||||
<div class="collapsible-body">
|
<div class="collapsible-body">
|
||||||
<h5>@@setlang@@</h5>
|
<h5>@@setlang@@</h5>
|
||||||
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br><br>
|
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br><br>
|
||||||
@@langlist@@
|
<div style="display: flex;">
|
||||||
|
<div style="width: 22rem;" id="langsel">
|
||||||
|
<select id="langsel-sel">@@langlist@@</select>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect" onclick="changeLang()">@@change@@</button>
|
||||||
|
</div>
|
||||||
<h5>@@backup@@</h5>
|
<h5>@@backup@@</h5>
|
||||||
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||||
style="width:100%; max-width:15rem;">@@export@@</button>
|
style="width:100%; max-width:15rem;">@@export@@</button>
|
||||||
|
@ -287,9 +292,7 @@
|
||||||
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">@@delete@@</button><br><br>
|
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">@@delete@@</button><br><br>
|
||||||
<input type="text" style="width:22rem;height:40px;" id="custom_json" class="materialize-textarea"
|
<input type="text" style="width:22rem;height:40px;" id="custom_json" class="materialize-textarea"
|
||||||
placeholder="JSON style" readonly><br>
|
placeholder="JSON style" readonly><br>
|
||||||
@@customShare@@
|
|
||||||
<h4>@@customImport@@</h4>
|
<h4>@@customImport@@</h4>
|
||||||
@@cImpWarn@@<br>
|
|
||||||
<input type="text" style="width:22rem;height:40px;" id="custom_import" class="materialize-textarea"
|
<input type="text" style="width:22rem;height:40px;" id="custom_import" class="materialize-textarea"
|
||||||
placeholder="JSON/JSON5 style">
|
placeholder="JSON/JSON5 style">
|
||||||
<button class="btn waves-effect" onclick="customImp()">@@import@@</button><br>
|
<button class="btn waves-effect" onclick="customImp()">@@import@@</button><br>
|
||||||
|
@ -343,7 +346,8 @@
|
||||||
@@volwarn80@@<br>
|
@@volwarn80@@<br>
|
||||||
<p class="range-field"><span id="soundVolVal">80</span><br>
|
<p class="range-field"><span id="soundVolVal">80</span><br>
|
||||||
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()"
|
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()"
|
||||||
style="width:40rem; max-width:100%" /></p>
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
@ -398,13 +402,15 @@
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<div class="collapsible-header">
|
<div class="collapsible-header">
|
||||||
<img src="../../img/aiscript.svg" style="height: 1.5rem; margin-left: 0.4rem; margin-right: 0.4rem;">@@plugin@@
|
<img src="../../img/aiscript.svg"
|
||||||
|
style="height: 1.5rem; margin-left: 0.4rem; margin-right: 0.4rem;">@@plugin@@
|
||||||
</div>
|
</div>
|
||||||
<div class="collapsible-body">
|
<div class="collapsible-body">
|
||||||
<a href="https://github.com/cutls/TheDesk/blob/master/plugin.md">@@howToWritePlugin@@</a><br />
|
<a href="https://github.com/cutls/TheDesk/blob/master/plugin.md">@@howToWritePlugin@@</a><br />
|
||||||
<textarea id="plugin" data-id="add_new" style="height: 20rem"></textarea>
|
<textarea id="plugin" data-id="add_new" style="height: 20rem"></textarea>
|
||||||
<button class="btn waves-effect" style="width:7.7rem;" onclick="completePlugin()">@@change@@</button>
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="completePlugin()">@@change@@</button>
|
||||||
<button class="btn waves-effect red disabled plugin_delete" style="width:7.7rem;" onclick="deletePlugin()">@@delete@@</button>
|
<button class="btn waves-effect red disabled plugin_delete" style="width:7.7rem;"
|
||||||
|
onclick="deletePlugin()">@@delete@@</button>
|
||||||
<h5>@@pluginList@@</h5>
|
<h5>@@pluginList@@</h5>
|
||||||
<div style="width:22rem" id="plugin-selector" data-add="@@add_new@@">
|
<div style="width:22rem" id="plugin-selector" data-add="@@add_new@@">
|
||||||
<select id="plugin-edit-sel" class="custom-sel" onchange="pluginEdit()">
|
<select id="plugin-edit-sel" class="custom-sel" onchange="pluginEdit()">
|
||||||
|
@ -511,19 +517,22 @@
|
||||||
<p class="range-field"><span id="voicespeedVal">10</span><br>
|
<p class="range-field"><span id="voicespeedVal">10</span><br>
|
||||||
<input type="range" id="voicespeed" min="1" max="100" value="10"
|
<input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||||
onchange="document.getElementById('voicespeedVal').innerText=this.value"
|
onchange="document.getElementById('voicespeedVal').innerText=this.value"
|
||||||
style="width:40rem; max-width:100%" /></p>
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
<h5>@@pitch@@</h5>
|
<h5>@@pitch@@</h5>
|
||||||
@@pitchwarn@@<br>
|
@@pitchwarn@@<br>
|
||||||
<p class="range-field"><span id="voicepitchVal">50</span><br>
|
<p class="range-field"><span id="voicepitchVal">50</span><br>
|
||||||
<input type="range" id="voicepitch" min="0" max="100" value="50"
|
<input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||||
onchange="document.getElementById('voicepitchVal').innerText=this.value"
|
onchange="document.getElementById('voicepitchVal').innerText=this.value"
|
||||||
style="width:40rem; max-width:100%" /></p>
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
<h5>@@vol@@</h5>
|
<h5>@@vol@@</h5>
|
||||||
@@volwarn@@<br>
|
@@volwarn@@<br>
|
||||||
<p class="range-field"><span id="voicevolVal">100</span><br>
|
<p class="range-field"><span id="voicevolVal">100</span><br>
|
||||||
<input type="range" id="voicevol" min="0" max="100" value="100"
|
<input type="range" id="voicevol" min="0" max="100" value="100"
|
||||||
onchange="document.getElementById('voicevolVal').innerText=this.value"
|
onchange="document.getElementById('voicevolVal').innerText=this.value"
|
||||||
style="width:40rem; max-width:100%" /></p>
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
<h5>@@test@@</h5>
|
<h5>@@test@@</h5>
|
||||||
<input type="text" style="width:27rem" id="voicetxt" value="@@sample@@">
|
<input type="text" style="width:27rem" id="voicetxt" value="@@sample@@">
|
||||||
<button class="btn waves-effect blue" style="width:11.5rem;" onclick="voicePlay()"
|
<button class="btn waves-effect blue" style="width:11.5rem;" onclick="voicePlay()"
|
||||||
|
@ -608,7 +617,7 @@
|
||||||
</span><br>
|
</span><br>
|
||||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||||
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||||
<script type="text/javascript" src="../../@@node_base@@/lodash/lodash.min.js"></script>
|
<script type="text/javascript" src="../../@@node_base@@/lodash/lodash.min.js"></script>
|
||||||
<script type="text/javascript" src="../../js/platform/aiscript.js"></script>
|
<script type="text/javascript" src="../../js/platform/aiscript.js"></script>
|
||||||
<script type="text/javascript" src="../../js/platform/plugin.js"></script>
|
<script type="text/javascript" src="../../js/platform/plugin.js"></script>
|
||||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||||
|
|
154
app/view/no-NO/acct.html
Normal file
154
app/view/no-NO/acct.html
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="no-NO">
|
||||||
|
<head>
|
||||||
|
<title>Account Manager - TheDesk</title>
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link
|
||||||
|
href="../../node_modules/materialize-css/dist/css/materialize.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/tl.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link
|
||||||
|
href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/acct.css" rel="stylesheet" type="text/css" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<script>var pwa = false;</script> <script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/materialize-css/dist/js/materialize.js"
|
||||||
|
></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"
|
||||||
|
></script>
|
||||||
|
<script>
|
||||||
|
var misskeytoken = false
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||||
|
<div class="hide-first">
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"
|
||||||
|
>Tilbake</a
|
||||||
|
><br />
|
||||||
|
<h5>Kontoliste</h5>
|
||||||
|
<div id="acct-list"></div>
|
||||||
|
<div class="divider"></div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-second">
|
||||||
|
<a href="setting.html">Having the exported file of TheDesk, click here to jump setting page</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Legg til en konto</h5>
|
||||||
|
<br />
|
||||||
|
<div id="add">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s8">
|
||||||
|
Fill the instance domain (like mastodon.social)<br />
|
||||||
|
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp" />
|
||||||
|
<div id="ins-suggest"></div>
|
||||||
|
<button class="btn waves-effect" onclick="instance()">Login</button><br />
|
||||||
|
<div class="pwa">
|
||||||
|
Uncheck it to skip pasiting code.(login to Mastodon on Windows or macOS) (Recommended: pcheck)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="linux" />
|
||||||
|
<span>Kodeoppsett</span>
|
||||||
|
</label>
|
||||||
|
<br />
|
||||||
|
</div>
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="misskey" />
|
||||||
|
<span>Logg inn som Misskey</span> </label
|
||||||
|
><br />
|
||||||
|
</div>
|
||||||
|
<div class="col s4 scr" aria-hidden="true">
|
||||||
|
<span style="font-family:Open Sans;">Supports</span>
|
||||||
|
<div id="support" class="collection transparent"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="auth" style="display:none">
|
||||||
|
Lim inn koden og lukk nettleseren.<br />
|
||||||
|
<input type="text" id="code" placeholder="Kode" required />
|
||||||
|
<button class="btn waves-effect" onclick="code()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup()" class="pointer">Use access token to login(click after fill not code but access-token in box: Advanced)</a>
|
||||||
|
<div id="compt" style="display:none" class="scr">
|
||||||
|
<h5>ログイン前に必ずご確認ください</h5>
|
||||||
|
<span id="compt-instance"></span>はバージョンが<span id="compt-ver"></span
|
||||||
|
>のため以下の機能がご利用いただけません。
|
||||||
|
<span id="compt-warn" style="display:none"
|
||||||
|
>また、このインスタンスはMastodonではなくそのAPI上の互換実装であり、TheDeskでは利用を想定していないため非保証となります。</span
|
||||||
|
>
|
||||||
|
<ul id="compt-list"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="misskeylogin" style="display:none">
|
||||||
|
<h5>AppSecret</h5>
|
||||||
|
Read <a href="https://thedesk.top/how-to-misskey-login.html">Docs(ja)</a> to login Misskey.<br />
|
||||||
|
<input type="hidden" id="misskey-url" />
|
||||||
|
<input type="text" id="misskey-key" placeholder="Kode" required />
|
||||||
|
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup('misskey')" class="pointer">Use access token to login(click after fill not code but access-token in box: Advanced)</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-first">
|
||||||
|
<h5>Sett som hovedkonto</h5>
|
||||||
|
<div class="input-field" style="width:300px">
|
||||||
|
<span data-trans="your_acct">Velg en konto</span>
|
||||||
|
<br />
|
||||||
|
<select
|
||||||
|
id="main-acct-sel"
|
||||||
|
class="acct-sel"
|
||||||
|
style="color:black"
|
||||||
|
onchange="mainacct()"
|
||||||
|
></select>
|
||||||
|
<label></label>
|
||||||
|
</div>
|
||||||
|
<ul id="domain-list" class="collection transparent"></ul>
|
||||||
|
<div id="instance-data">
|
||||||
|
Some instance data by
|
||||||
|
<a href="https://instances.social" target="_blank">instances.social API</a><br />
|
||||||
|
<h5 id="ins-title"></h5>
|
||||||
|
Administered by:<a id="ins-admin"></a><br />
|
||||||
|
<span id="ins-desc"></span><br />
|
||||||
|
<img src="../../img/loading.svg" id="ins-prof" width="200" /><br />
|
||||||
|
<br />
|
||||||
|
Domene:<span id="ins-name"></span><br />
|
||||||
|
Federerte tjenere:<span id="ins-connect"></span><br />
|
||||||
|
Toots:<span id="ins-toot"></span><br />
|
||||||
|
Brukere:<span id="ins-user"></span>Brukere<br />
|
||||||
|
Tilkobling:<span id="ins-per"></span>%<br />
|
||||||
|
Mastodon-versjon:<span id="ins-ver"></span>@<span id="ins-upd"></span><br />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/sha256.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
||||||
|
<script>$('body').addClass(localStorage.getItem('platform'))</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
1287
app/view/no-NO/index.html
Normal file
1287
app/view/no-NO/index.html
Normal file
File diff suppressed because it is too large
Load Diff
1
app/view/no-NO/main.js
Normal file
1
app/view/no-NO/main.js
Normal file
File diff suppressed because one or more lines are too long
632
app/view/no-NO/setting.html
Normal file
632
app/view/no-NO/setting.html
Normal file
|
@ -0,0 +1,632 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="no-NO" style="overflow-y:scroll">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>Settings - TheDesk</title>
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = [];
|
||||||
|
_jipt.push(['project', 'thedesk']);
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<style>
|
||||||
|
input {
|
||||||
|
max-height: 3.84rem !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.pcr-result {
|
||||||
|
height: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container-after-titlebar {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
<script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" style="overflow-y:scroll" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script src="../../node_modules/json5/dist/index.min.js"></script>
|
||||||
|
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||||
|
<script type="text/javascript" src="setting.vue.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||||
|
<script>function renderMem() { return false; }</script>
|
||||||
|
|
||||||
|
<h4>Innstillinger</h4>
|
||||||
|
<ul class="collapsible" data-collapsible="accordion">
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">desktop_windows</i>System Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Språk</h5>
|
||||||
|
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br><br>
|
||||||
|
<div style="display: flex;">
|
||||||
|
<div style="width: 22rem;" id="langsel">
|
||||||
|
<select id="langsel-sel"><option value="ja">日本語</option><option value="ja-KS">日本語(関西)</option><option value="en">English</option><option value="bg">български</option><option value="cs">Česky</option><option value="de">Deutsch</option><option value="es-AR">Español, argentina</option><option value="it-IT">italiano</option><option value="zh-CN">简体中文</option><option value="zh-TW">繁體中文(β)</option><option value="fr-FR">français(β)</option><option value="no-NO">norsk(β)</option><option value="pt-BR">Português, brasileiro(β)</option><option value="ru-RU">русский(β)</option><option value="es-ES">Español(β)</option><option value="ps">Crowdin translate system(beta)</option></select>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect" onclick="changeLang()">Endre</button>
|
||||||
|
</div>
|
||||||
|
<h5>Import and export of preferences</h5>
|
||||||
|
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Eksporter</button>
|
||||||
|
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Importer</button><br>
|
||||||
|
If you got a error when you choose the file, please paste the strings printed when you open the file and click import<br>
|
||||||
|
<input type="text" id="imp-exp" style="width: 22rem">
|
||||||
|
<div id="envView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||||
|
class="pointer">Varseltest</a><br></template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Endre</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Font</h5>
|
||||||
|
Select your favorite font to 'Select'(Windows/ macOS only)<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="font()">Velg</button><br>
|
||||||
|
<div id="fonts" class="hide" style="overflow-y:scroll; width:22rem; height:40rem;"></div>
|
||||||
|
<br>
|
||||||
|
<input type="text" style="width:11.5rem" id="font">
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="settings()">Lagre</button>
|
||||||
|
<br>
|
||||||
|
<h5>Folder to save</h5>
|
||||||
|
TheDesk uses this value when it try to save pictures or take screenshots.<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="savefolder()">Endre</button>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="pwa">
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">color_lens</i>Temaer
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h4>Velg tema</h4>
|
||||||
|
<div style="width:22rem" id="sel-selector">
|
||||||
|
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||||
|
</div>
|
||||||
|
<h4>Edit and add themes</h4>
|
||||||
|
<div style="width:22rem" id="edit-selector" data-add="Legg til ny">
|
||||||
|
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
|
||||||
|
<option value="add_new">Legg til ny</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<h5>Navn</h5>
|
||||||
|
<input type="text" style="width:22rem" id="custom_name" placeholder="Navn...">
|
||||||
|
<h5>Om dette temaet</h5>
|
||||||
|
<div class="input-field"><textarea style="width:22rem" id="custom_desc" class="materialize-textarea"
|
||||||
|
placeholder="Om dette temaet..."></textarea></div>
|
||||||
|
<h5>Fargepalett</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||||
|
checked="true" />
|
||||||
|
<span>Dark</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||||
|
value="light" />
|
||||||
|
<span>Light</span>
|
||||||
|
</label><br><br />
|
||||||
|
<button class="btn waves-effect" onclick="advanced()">Advanced options</button>
|
||||||
|
<span class="advanced hide"></span>
|
||||||
|
<div id="pickers">
|
||||||
|
<div>
|
||||||
|
<h5>Background</h5>Background color<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_0" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker0_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Text</h5>Tekstfarge<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_1" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker1_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Subcolor</h5>Distinguishable from background<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_2" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker2_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Accent</h5>Background of boosts<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_3" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker3_value">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal</h5>Background of modal window<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_4" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modal')">Background</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker4_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal Footer</h5>Background of modal window's footer<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_5" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modalFooter')">Background</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('modal','modalFooter')">Modal</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker5_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>3rd Color</h5>Backgroud of tag buttons, etc(near to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_6" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','third')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker6_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>4th Color</h5>Title bar(same scheme to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_7" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','forth')">Subcolor</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('third','forth')">3rd Color</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker7_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Bottom</h5>Background of menu-bar at bottom of window<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_8" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','bottom')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker8_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>2nd Accent</h5>Emphasized toot's background<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_9" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','emphasized')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker9_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Postbox</h5>Background of post-box and menu<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_10" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','postbox')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker10_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Active</h5>Background of 'active' elements<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_11" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','active')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker11_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected</h5>Background of selected with arrow keys<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_12" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker12_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected with shared</h5>Background of selected with arrow keys(boosted toots)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_13" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker13_value">
|
||||||
|
</div>
|
||||||
|
</div><br /><br />
|
||||||
|
<button class="btn-large waves-effect" onclick="customComp()">Endre</button> <button
|
||||||
|
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">Slett</button><br><br>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_json" class="materialize-textarea"
|
||||||
|
placeholder="JSON style" readonly><br>
|
||||||
|
<h4>Import of custom themes</h4>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_import" class="materialize-textarea"
|
||||||
|
placeholder="JSON/JSON5 style">
|
||||||
|
<button class="btn waves-effect" onclick="customImp()">Importer</button><br>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">reorder</i>Tidslinjepreferanser
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="tlView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Endre</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Custom sound</h5>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span
|
||||||
|
id="c1-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span
|
||||||
|
id="c2-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span
|
||||||
|
id="c3-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span
|
||||||
|
id="c4-file"></span><br>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100(default:80)<br>
|
||||||
|
<p class="range-field"><span id="soundVolVal">80</span><br>
|
||||||
|
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">send</i>Posting Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="postView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<template
|
||||||
|
v-if="(!check.kirishima || (check.kirishima && kirishima) )&& (!check.quote || (check.quote && quoters))">
|
||||||
|
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||||
|
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||||
|
v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span></label>
|
||||||
|
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Endre</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Enkel innsetter</h5>
|
||||||
|
You can insert any letters and emojis with only 3 keys<br>
|
||||||
|
Ctrl+Shift+1:<input type="text" style="width:11.5rem" id="oks-1">
|
||||||
|
<button onclick="oks(1)" class="btn waves-effect" style="width:7.7rem;">Lagre</button><br><br>
|
||||||
|
Ctrl+Shift+2:<input type="text" style="width:11.5rem" id="oks-2">
|
||||||
|
<button onclick="oks(2)" class="btn waves-effect" style="width:7.7rem;">Lagre</button><br><br>
|
||||||
|
Ctrl+Shift+3:<input type="text" style="width:11.5rem" id="oks-3">
|
||||||
|
<button onclick="oks(3)" class="btn waves-effect" style="width:7.7rem;">Lagre</button><br><br>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<img src="../../img/aiscript.svg"
|
||||||
|
style="height: 1.5rem; margin-left: 0.4rem; margin-right: 0.4rem;">Plugins
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<a href="https://github.com/cutls/TheDesk/blob/master/plugin.md">Japanese docs of AiScript TheDesk plugins</a><br />
|
||||||
|
<textarea id="plugin" data-id="add_new" style="height: 20rem"></textarea>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="completePlugin()">Endre</button>
|
||||||
|
<button class="btn waves-effect red disabled plugin_delete" style="width:7.7rem;"
|
||||||
|
onclick="deletePlugin()">Slett</button>
|
||||||
|
<h5>Plugin list</h5>
|
||||||
|
<div style="width:22rem" id="plugin-selector" data-add="Legg til ny">
|
||||||
|
<select id="plugin-edit-sel" class="custom-sel" onchange="pluginEdit()">
|
||||||
|
<option value="add_new">Legg til ny</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">bookmark</i>Mute & Emphasis Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Client Mute</h5>
|
||||||
|
<div id="mute-cli"></div>
|
||||||
|
<h5>Client Emphasis</h5>
|
||||||
|
Click client name on toots to toggle mute and emphasis.
|
||||||
|
<h5>Words Mute</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordmute" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:7.7rem;">Lagre</button>
|
||||||
|
<h5>Words Emphasis</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordemp" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordempSave()" class="btn waves-effect" style="width:7.7rem;">Lagre</button>
|
||||||
|
<h5>Users Emphasis</h5>
|
||||||
|
Set on users data modals.
|
||||||
|
<span class="emphasized"> Use this color to emphasis </span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="fab fa-spotify"></i>Spotify and NowPlaying Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Kontotilknytninger(Spotify)</h5>
|
||||||
|
TheDesk save your data on thedesk.top server.<br>
|
||||||
|
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
|
||||||
|
onclick="spotifyAuth()" class="btn waves-effect" style="width:7.7rem;">Lagre</button></div>
|
||||||
|
<a onclick="spotifyConnect()" class="btn waves-effect nex"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-enable"><i
|
||||||
|
class="fab fa-spotify left"></i>Koble til</a>
|
||||||
|
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-disable"><i
|
||||||
|
class="fab fa-spotify left"></i>Koble fra</a>
|
||||||
|
<h5>Kontotilknytninger(Last.fm)</h5>
|
||||||
|
User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.<br />
|
||||||
|
<input type="text" style="width:11.5rem" id="lastFmUser">
|
||||||
|
<button onclick="lastFmSet()" class="btn waves-effect" style="width:7.7rem;">Lagre</button>
|
||||||
|
<h5>Endre mal</h5>
|
||||||
|
<br>
|
||||||
|
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||||
|
{url}</textarea><br>
|
||||||
|
Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify<br>
|
||||||
|
<span class="mac">>macOS:{song}:Song name/{album}:Album name/{artist}:Artist name/composer:{composer}/spampling rate:{hz}/bit rate:{bitRate}/genre:{genre}</span><br>
|
||||||
|
<button onclick="spotifySave()" class="btn waves-effect" style="width:7.7rem;">Lagre</button>
|
||||||
|
<h5>Attach an Artwork of Spotify</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Ja</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||||
|
value="no" />
|
||||||
|
<span>Nei</span>
|
||||||
|
</label>
|
||||||
|
<div class="mac">
|
||||||
|
<h5>If the song has no artwork, automatic complete it(macOS)</h5>
|
||||||
|
If you nowplaying an non-artwork song, get one which seems nice through API. If you do not like the completed artwork, you can right-click it to delete.<br />
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Ja</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_no"
|
||||||
|
value="no" />
|
||||||
|
<span>Nei</span>
|
||||||
|
</label>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">hearing</i>TTS(text to speech) Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>BouyomiChan connect</h5>
|
||||||
|
Require: BouyomiChan WebSocket Plugin<a href="https://github.com/xztaityozx/BouyomiChan-WebSocket-Plugin"
|
||||||
|
target="_blank">GitHub</a><br>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Ja</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_no" value="no" />
|
||||||
|
<span>Nei</span>
|
||||||
|
</label>
|
||||||
|
<h5>Fart</h5>
|
||||||
|
1-100(default:10)<br>
|
||||||
|
<p class="range-field"><span id="voicespeedVal">10</span><br>
|
||||||
|
<input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||||
|
onchange="document.getElementById('voicespeedVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Pitch</h5>
|
||||||
|
0-100(default:50)<br>
|
||||||
|
<p class="range-field"><span id="voicepitchVal">50</span><br>
|
||||||
|
<input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||||
|
onchange="document.getElementById('voicepitchVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100(default:100)<br>
|
||||||
|
<p class="range-field"><span id="voicevolVal">100</span><br>
|
||||||
|
<input type="range" id="voicevol" min="0" max="100" value="100"
|
||||||
|
onchange="document.getElementById('voicevolVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Test</h5>
|
||||||
|
<input type="text" style="width:27rem" id="voicetxt" value="TheDesk is an open-source Mastodon client for PC.">
|
||||||
|
<button class="btn waves-effect blue" style="width:11.5rem;" onclick="voicePlay()"
|
||||||
|
id="testplay">Spill av/Stopp</button><br>
|
||||||
|
<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="voiceSettings()">Lagre</button>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:15rem;"><i
|
||||||
|
class="material-icons left">undo</i>Tilbake</a>
|
||||||
|
<br>
|
||||||
|
<br>Hurtigtaster
|
||||||
|
<li>Ctrl+1-9:Jump to n(1-9)th column</li>
|
||||||
|
<li>N:Open toot box</li>
|
||||||
|
<li>X:Toggle toot box</li>
|
||||||
|
<li>Ctrl+Enter:Post</li>
|
||||||
|
<li>Ctrl+Enter+Shift:Post(secondary toot)</li>
|
||||||
|
<li>Alt+Enter:Secondary Toot Button</li>
|
||||||
|
<li>Ctrl+E:Make all notifications read</li>
|
||||||
|
<li>Ctrl+U:Select the top & left(No.1 column) toot</li>
|
||||||
|
<li>Esc:Hide toot box</li>
|
||||||
|
<li>F5:Super Reload</li>
|
||||||
|
<li>Ctrl+Shift+C:Clear toot box</li>
|
||||||
|
<li>Ctrl+Shift+S:Innstillinger</li>
|
||||||
|
<li>Ctrl+Shift+M:Kontoadministrasjon</li>
|
||||||
|
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
|
||||||
|
<li>Ctrl+Shift+P:Show profile of selecting</li>
|
||||||
|
<li>←/→:Show next or previous image</li>
|
||||||
|
<li>Mousewheel:Zoom a image</li>
|
||||||
|
<div class="hide kirishima">
|
||||||
|
以下Markdownに対応したインスタンスのみ。
|
||||||
|
<br>
|
||||||
|
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||||
|
When a toot is selected:
|
||||||
|
<li>F:Favoriser denne tooten</li>
|
||||||
|
<li>B:Boost this toot</li>
|
||||||
|
<li>R:Svar på denne tooten</li>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect red" style="width:100%; max-width:40rem;"
|
||||||
|
onclick="if(confirm('Slett all data. Kan ikke gjøres om. Fortsette?')){ localStorage.clear(); location.href='index.html'; }"><i
|
||||||
|
class="material-icons left">delete</i>Reset(Danger)</button><br><br>
|
||||||
|
<button class="btn waves-effect indigo pwa" onclick="about()" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">info</i>Om TheDesk</button>
|
||||||
|
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">web</i>Nettsted</a>
|
||||||
|
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Støtte(Pixiv FANBOX)</a>
|
||||||
|
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Støtte(Patreon)</a>
|
||||||
|
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
|
||||||
|
style="width:100%; max-width:40rem; background-color: #f6c915"><i
|
||||||
|
class="material-icons left">trending_up</i>Støtte(Liberapay)</a>
|
||||||
|
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">list</i>Hjelp/Docs</a>
|
||||||
|
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="fab fa-github left"></i>GitHub</a>
|
||||||
|
<a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><img src="../../img/desk_full.svg" class="left" width="25"
|
||||||
|
style="padding-top:5px;">Main author: Cutls@cutls.com</a>
|
||||||
|
<br>
|
||||||
|
TheDesk @ <a href="https://github.com/cutls/TheDesk/commits/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c">89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c</a> - <a
|
||||||
|
onclick="checkupd(); return localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||||
|
class="pointer pwa">Se etter oppdateringer</a><br>
|
||||||
|
<br>
|
||||||
|
Kyash<br>
|
||||||
|
<img src="../../img/kyash.png" width="100"><br>
|
||||||
|
<a href="https://status.cutls.com/">
|
||||||
|
<img src="https://status.cutls.com/badge-service?site=thedesk.top">
|
||||||
|
</a><br>
|
||||||
|
<h5>OSS License</h5>
|
||||||
|
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fcutls%2FTheDesk/refs/branch/master/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c"
|
||||||
|
alt="FOSSA Status"><img
|
||||||
|
src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcutls%2FTheDesk.svg?type=small" /></a>
|
||||||
|
<br>
|
||||||
|
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||||
|
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
|
||||||
|
href="https://thedesk.top/priv.html">Privacy
|
||||||
|
Policy</a>
|
||||||
|
<br>
|
||||||
|
</span><br>
|
||||||
|
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||||
|
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/aiscript.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/plugin.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/speech.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/settings.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
756
app/view/no-NO/setting.vue.js
Normal file
756
app/view/no-NO/setting.vue.js
Normal file
|
@ -0,0 +1,756 @@
|
||||||
|
var yesno = [
|
||||||
|
{
|
||||||
|
text: 'Ja',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Nei',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var sound = [
|
||||||
|
{
|
||||||
|
text: 'Ingen',
|
||||||
|
value: 'none'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Standard',
|
||||||
|
value: 'default'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 1',
|
||||||
|
value: 'c1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 2',
|
||||||
|
value: 'c2'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 3',
|
||||||
|
value: 'c3'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 4',
|
||||||
|
value: 'c4'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var envConstruction = [
|
||||||
|
{
|
||||||
|
id: 'popup',
|
||||||
|
storage: 'popup',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Popup notification',
|
||||||
|
desc: 'Hide to set "0"',
|
||||||
|
after: 'sec'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notf',
|
||||||
|
storage: 'nativenotf',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Native notification',
|
||||||
|
desc: 'This does not work on Windows Portable ver.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'width',
|
||||||
|
storage: 'width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 300,
|
||||||
|
text: { after: 'px ~ ' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'maxWidth',
|
||||||
|
storage: 'max-width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 600,
|
||||||
|
text: { after: 'px' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Width of columns',
|
||||||
|
desc: 'Scroll bar will be shown when your window size is more than ammounts of columns.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'margin',
|
||||||
|
storage: 'margin',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Margin between timelines',
|
||||||
|
desc: '',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'fixwidth',
|
||||||
|
storage: 'fixwidth',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 300,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Minimum width of TweetDeck browser',
|
||||||
|
desc: '',
|
||||||
|
after: 'px above'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'size',
|
||||||
|
storage: 'size',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 50,
|
||||||
|
setValue: 13,
|
||||||
|
text: {
|
||||||
|
head: 'Font size',
|
||||||
|
desc: '<span style="font-size:13px">13px(absolute value)</span>',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ha',
|
||||||
|
storage: 'ha',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: false,
|
||||||
|
text: {
|
||||||
|
head: 'Slå av maskinvareakselerasjon',
|
||||||
|
desc: 'Auto restarted',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Ja',
|
||||||
|
value: 'true'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Nei',
|
||||||
|
value: 'false'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ua',
|
||||||
|
storage: 'ua_setting',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: '',
|
||||||
|
width: 200,
|
||||||
|
text: {
|
||||||
|
head: 'Brukeragent',
|
||||||
|
desc: 'Restart when changed'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'srcUrl',
|
||||||
|
storage: 'srcUrl',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 200,
|
||||||
|
setValue: 'https://google.com/search?q={q}',
|
||||||
|
text: {
|
||||||
|
head: 'Search engine',
|
||||||
|
desc: '{q} will be replaced to query.',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'download',
|
||||||
|
storage: 'dl-win',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Versioning(o Windows downloader)',
|
||||||
|
desc: 'ex: TheDesk-1.0.0-setup.exe',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var tlConstruction = [
|
||||||
|
{
|
||||||
|
id: 'time',
|
||||||
|
storage: 'datetype',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'absolute',
|
||||||
|
text: {
|
||||||
|
head: 'Tidsformat',
|
||||||
|
desc: 'Relative format:"1 minutes ago","3 days ago"<br>Absolute format:"23:25:21","2017/12/30 23:59:00"<br>Mixed format:toots posted today are relative-format, others are absolute-format.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Relative',
|
||||||
|
value: 'relative'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Absolutt',
|
||||||
|
value: 'absolute'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Both relative and absolute',
|
||||||
|
value: 'double'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Blandet',
|
||||||
|
value: 'medium'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ul',
|
||||||
|
storage: 'locale',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Server\s unique locale',
|
||||||
|
desc: 'Denne verdien er tilgjengelig på noen japanske servere',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'nsfw',
|
||||||
|
storage: 'nsfw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide Mark sensitive pictures',
|
||||||
|
desc: 'Strong blur effect',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw',
|
||||||
|
storage: 'cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide CW contents',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'rp',
|
||||||
|
storage: 'replyct',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'hidden',
|
||||||
|
text: {
|
||||||
|
head: 'Reply counter style',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Show 1+ if the replies are more than 1.',
|
||||||
|
value: 'hidden'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Show full count(1,2...)',
|
||||||
|
value: 'all'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'gif',
|
||||||
|
storage: 'gif',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animated GIF images animation',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'tag',
|
||||||
|
storage: 'tag-range',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'local',
|
||||||
|
text: {
|
||||||
|
head: 'Tag TL Search',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Use federated network',
|
||||||
|
value: 'all'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Bruk lokalt nettverk',
|
||||||
|
value: 'local'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'via',
|
||||||
|
storage: 'viashow',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Vis via',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'mov',
|
||||||
|
storage: 'mouseover',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Hide action buttons without mouseover',
|
||||||
|
desc: 'You may feel \mouseover\ is unconfortable:(',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Mouseover to show',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Klikk for å vise',
|
||||||
|
value: 'click'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Nei',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notfm',
|
||||||
|
storage: 'setasread',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Show Notification marker, red colored bell and counter(if you show a notification column.)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'sentence',
|
||||||
|
storage: 'sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'linjer above eller' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'letters',
|
||||||
|
storage: 'letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'bokstaver above' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Auto folding',
|
||||||
|
desc: 'TheDesk does not collapse totes of 5 characters or less. Also, when collapsing, newlines are not shown. TheDesk count only newlines as the number of lines.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img-height',
|
||||||
|
storage: 'img-height',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 80,
|
||||||
|
setValue: 200,
|
||||||
|
text: {
|
||||||
|
head: 'Bildehøyder',
|
||||||
|
desc: 'Option:Set "full" to uncrop.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ticker',
|
||||||
|
storage: 'ticker_ok',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Enable OpenSticker',
|
||||||
|
desc: 'Show the instance name and favicon of tooters <a href="https://opensticker.0px.io">About OpenSticker</a>',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'anime',
|
||||||
|
storage: 'animation',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animation of timelines',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'markers',
|
||||||
|
storage: 'markers',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Markers(mark as read) on HTL and notifications',
|
||||||
|
desc: 'Mastodon 3.0~. Shared on WebUI and third-party supported clients.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'remote_img',
|
||||||
|
storage: 'remote_img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Get images from the remote server',
|
||||||
|
desc: 'All previews are got from your loginned cache server.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'bkm',
|
||||||
|
storage: 'bookmark',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Show a bookmarking toot button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'scroll',
|
||||||
|
storage: 'scroll',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normalScrollBar',
|
||||||
|
text: {
|
||||||
|
head: 'Height of the scroll bar',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Thick',
|
||||||
|
value: 'thickScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Normal',
|
||||||
|
value: 'normalScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Thin',
|
||||||
|
value: 'thinScrollBar'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'replySound',
|
||||||
|
storage: 'replySound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Reply)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'favSound',
|
||||||
|
storage: 'favSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Fav)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'btSound',
|
||||||
|
storage: 'btSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Boost)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'followSound',
|
||||||
|
storage: 'followSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Lyd(Følg)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var postConstruction = [
|
||||||
|
{
|
||||||
|
id: 'cw-text',
|
||||||
|
storage: 'cw-text',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 150,
|
||||||
|
setValue: '',
|
||||||
|
text: {
|
||||||
|
head: 'Standard advarselstekst',
|
||||||
|
desc: '',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'cw_sentence',
|
||||||
|
storage: 'cw_sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'linjer above eller' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw_letters',
|
||||||
|
storage: 'cw_letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'bokstaver above' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Alert before posting a long toot.',
|
||||||
|
desc: 'Show dialog whether you make too-long text hidden.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cws',
|
||||||
|
storage: 'always-cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Always CW set',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw-continue',
|
||||||
|
storage: 'cw-continue',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: '@@cwContinue@@',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'vis',
|
||||||
|
storage: 'vis',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Standard synlighet',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Offentlig',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Unlisted',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Privat',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direkte',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Memory(memorized as each server)',
|
||||||
|
value: 'memory'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Default of your visibility(Set on preferences of Mastodon server)',
|
||||||
|
value: 'useapi'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img',
|
||||||
|
storage: 'img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no-act',
|
||||||
|
text: {
|
||||||
|
head: 'Posting images preferences',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Sett inn media-URL',
|
||||||
|
value: 'url'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Ikke sett inn noe',
|
||||||
|
value: 'no-act'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'box',
|
||||||
|
storage: 'box',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Action of posting-box',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Folding',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Open after posting',
|
||||||
|
value: 'no'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Helt åpen',
|
||||||
|
value: 'absolute'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'quote',
|
||||||
|
storage: 'quote',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'nothing',
|
||||||
|
text: {
|
||||||
|
head: 'Sitatformat',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Kun URL',
|
||||||
|
value: 'simple'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL and acct(mention to the user)',
|
||||||
|
value: 'mention'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL, text and acct(mention to the user)',
|
||||||
|
value: 'full'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'API(kun noen instanser)',
|
||||||
|
value: 'apiQuote',
|
||||||
|
quote: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Disabled(Hide buttons on TLs)',
|
||||||
|
value: 'nothing'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'main',
|
||||||
|
storage: 'mainuse',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'remain',
|
||||||
|
text: {
|
||||||
|
head: 'Default accounts of actions',
|
||||||
|
desc: 'Main account can be set on Account Manager.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Konto du nylig brukte',
|
||||||
|
value: 'remain'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Hovedkonto',
|
||||||
|
value: 'main'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'sec',
|
||||||
|
storage: 'sec',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Secondary Toot Button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Gjemt',
|
||||||
|
value: 'nothing'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Offentlig',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Unlisted',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Privat',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direkte',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Kun lokalt',
|
||||||
|
value: 'local',
|
||||||
|
kirishima: true,
|
||||||
|
kirishimaText: '非対応インスタンスでは「未収載」になります。'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'zero',
|
||||||
|
storage: 'emoji-zero-width',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normal',
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Zero-width space when inserting emojis',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'uploadCrop',
|
||||||
|
storage: 'uploadCrop',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 100,
|
||||||
|
setValue: '0',
|
||||||
|
text: {
|
||||||
|
head: 'Auto scale to fit',
|
||||||
|
desc: 'Max long-side px. Uploaded images are converted to JPEG(from JPEG) or PNG(from others). Set 0 and the images will not be resized. Notice: if you post an animated picture like GIF, it will be converted static one.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
302
app/view/no-NO/update.html
Normal file
302
app/view/no-NO/update.html
Normal file
|
@ -0,0 +1,302 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="no-NO">
|
||||||
|
<head>
|
||||||
|
<title>Update - TheDesk</title>
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Open Sans';
|
||||||
|
-webkit-app-region: drag;
|
||||||
|
cursor: move;
|
||||||
|
padding: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#start {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100vw;
|
||||||
|
height: calc(100vh - 2.5rem);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#checkbox {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a,
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
label,
|
||||||
|
i {
|
||||||
|
-webkit-app-region: no-drag;
|
||||||
|
}
|
||||||
|
|
||||||
|
#updskip {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100px;
|
||||||
|
border: 1px solid;
|
||||||
|
margin-left: 5px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border: 1px solid #c26363;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #c26363;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn:hover {
|
||||||
|
background-color: #c26363;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#prog {
|
||||||
|
font-size: 200%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||||
|
<!--a href="update.html">Reload</a-->
|
||||||
|
<div id="start" style="filter: brightness(100%)">
|
||||||
|
<div id="box" class="show">
|
||||||
|
<h2>TheDesk</h2>
|
||||||
|
<p>Hent siste TheDesk</p>
|
||||||
|
<span id="now"></span>→<b id="ver"></b><br />
|
||||||
|
<a href="" id="github" class="btn waves-effect grey darken-1"><i class="fab fa-github left"></i>Hva er nytt?</a><br />
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left: 15px;">Installerer(Anbefalt)</button>
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left: 15px;">Bærbar ver.</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left: 15px;">zip</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxdeb')" style="margin-left: 15px;">deb(Anbefalt på Ubuntu, Debian)</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxsnap')" style="margin-left: 15px;">snap</button>
|
||||||
|
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left: 15px;">Start</button>
|
||||||
|
<br />
|
||||||
|
Problemer?<br />Please download on <a href='https://thedesk.top'>Oficial HP</a>.
|
||||||
|
</div>
|
||||||
|
<div id="skipper" class="hide">
|
||||||
|
<h4>Hopp over denne oppdateringen</h4>
|
||||||
|
Du kan gå glipp av en kul opplevelse!<br />
|
||||||
|
<div id="updskip">
|
||||||
|
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>Hidden until next TL loading</div>
|
||||||
|
</a>
|
||||||
|
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>Hidden until next version</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<a class="pointer waves-effect" onclick="skipper();" style="margin-top: 5px;">Fortsett oppdatering</a>
|
||||||
|
</div>
|
||||||
|
<div id="dlnow" class="hide" style="width: 70%;">
|
||||||
|
<h4>Laster ned...</h4>
|
||||||
|
<h4 id="prog"></h4>
|
||||||
|
<div class="progress">
|
||||||
|
<div class="determinate" style="width: 0%;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script>
|
||||||
|
function skipper() {
|
||||||
|
$('#dlnow').addClass('hide')
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
if ($('#box').hasClass('hide') && $('#skipper').hasClass('hide')) {
|
||||||
|
$('#skipper').removeClass('hide')
|
||||||
|
$('#skipper').addClass('show')
|
||||||
|
} else {
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('show')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
verck()
|
||||||
|
function update(sel) {
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('show')
|
||||||
|
$('#prog').text('')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
if (sel == 'install') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'portable') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64p_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32p_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'linux') {
|
||||||
|
var url = json['linuxx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'thedesk-' + json.unique_linux + '.zip'
|
||||||
|
} else {
|
||||||
|
var file = 'thedesk.zip'
|
||||||
|
}
|
||||||
|
var filesize = json.linuxx64_size
|
||||||
|
} else if (sel == 'linuxdeb') {
|
||||||
|
var url = json['linuxdeb']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.deb'
|
||||||
|
var filesize = json.linuxdeb_size
|
||||||
|
} else if (sel == 'linuxsnap') {
|
||||||
|
var url = json['linuxsnap']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.snap'
|
||||||
|
var filesize = json.linuxsnap_size
|
||||||
|
} else if (sel == 'mac') {
|
||||||
|
var url = json['mac']
|
||||||
|
var file = 'TheDesk-' + json.unique_mac + '.dmg'
|
||||||
|
var filesize = json.mac_size
|
||||||
|
}
|
||||||
|
postMessage(['downloadButton', [url, file, filesize]], '*')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function quit() {
|
||||||
|
postMessage(['sendSinmpleIpc', 'quit'], '*')
|
||||||
|
}
|
||||||
|
function updateProg(arg) {
|
||||||
|
$('.determinate').css('width', arg[0].percent * 100 + '%')
|
||||||
|
$('#prog').html(`${Math.floor(arg[0].percent * 100)}%<br />(${Math.floor(arg[0].percent*arg[1]/1024/1024*10)/10} MB / ${Math.floor(arg[1]/1024/1024*10)/10} MB)`)
|
||||||
|
|
||||||
|
}
|
||||||
|
function updateMess(arg) {
|
||||||
|
console.log(arg)
|
||||||
|
$('#prog').text(arg)
|
||||||
|
}
|
||||||
|
function verck() {
|
||||||
|
var platform = localStorage.getItem('platform')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('.windows').removeClass('hide')
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('.linux').removeClass('hide')
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('.mac').removeClass('hide')
|
||||||
|
}
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
console.log(json)
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('#ver').text(json.desk)
|
||||||
|
localStorage.setItem('next-ver', json.desk)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('#ver').text(json.desk_linux)
|
||||||
|
localStorage.setItem('next-ver', json.desk_linux)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_linux
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('#ver').text(json.desk_mac)
|
||||||
|
localStorage.setItem('next-ver', json.desk_mac)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_mac
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#github').attr('href', url)
|
||||||
|
|
||||||
|
$('#now').text(localStorage.getItem('ver'))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function nextv() {
|
||||||
|
localStorage.setItem('new-ver-skip', 'true')
|
||||||
|
window.close()
|
||||||
|
}
|
||||||
|
function enc(ver) {
|
||||||
|
var ver = ver.replace(/\s/g, '')
|
||||||
|
var ver = ver.replace(/\(/g, '-')
|
||||||
|
var ver = ver.replace(/\)/g, '')
|
||||||
|
var ver = ver.replace(/\[/g, '_')
|
||||||
|
var ver = ver.replace(/\]/g, '')
|
||||||
|
return ver
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
154
app/view/pt-BR/acct.html
Normal file
154
app/view/pt-BR/acct.html
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="pt-BR">
|
||||||
|
<head>
|
||||||
|
<title>Account Manager - TheDesk</title>
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link
|
||||||
|
href="../../node_modules/materialize-css/dist/css/materialize.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/tl.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link
|
||||||
|
href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/acct.css" rel="stylesheet" type="text/css" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<script>var pwa = false;</script> <script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/materialize-css/dist/js/materialize.js"
|
||||||
|
></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"
|
||||||
|
></script>
|
||||||
|
<script>
|
||||||
|
var misskeytoken = false
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||||
|
<div class="hide-first">
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"
|
||||||
|
>Voltar</a
|
||||||
|
><br />
|
||||||
|
<h5>Lista de Contas</h5>
|
||||||
|
<div id="acct-list"></div>
|
||||||
|
<div class="divider"></div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-second">
|
||||||
|
<a href="setting.html">Having the exported file of TheDesk, click here to jump setting page</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Adicionar conta</h5>
|
||||||
|
<br />
|
||||||
|
<div id="add">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s8">
|
||||||
|
Preencha o domínio da instância (ex: mastodon.social)<br />
|
||||||
|
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp" />
|
||||||
|
<div id="ins-suggest"></div>
|
||||||
|
<button class="btn waves-effect" onclick="instance()">Login</button><br />
|
||||||
|
<div class="pwa">
|
||||||
|
Uncheck it to skip pasiting code.(login to Mastodon on Windows or macOS) (Recommended: pcheck)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="linux" />
|
||||||
|
<span>Code setup</span>
|
||||||
|
</label>
|
||||||
|
<br />
|
||||||
|
</div>
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="misskey" />
|
||||||
|
<span>Entrar como Misskey</span> </label
|
||||||
|
><br />
|
||||||
|
</div>
|
||||||
|
<div class="col s4 scr" aria-hidden="true">
|
||||||
|
<span style="font-family:Open Sans;">Supports</span>
|
||||||
|
<div id="support" class="collection transparent"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="auth" style="display:none">
|
||||||
|
Cole o código e feche o navegador.<br />
|
||||||
|
<input type="text" id="code" placeholder="Código" required />
|
||||||
|
<button class="btn waves-effect" onclick="code()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup()" class="pointer">Use access token to login(click after fill not code but access-token in box: Advanced)</a>
|
||||||
|
<div id="compt" style="display:none" class="scr">
|
||||||
|
<h5>ログイン前に必ずご確認ください</h5>
|
||||||
|
<span id="compt-instance"></span>はバージョンが<span id="compt-ver"></span
|
||||||
|
>のため以下の機能がご利用いただけません。
|
||||||
|
<span id="compt-warn" style="display:none"
|
||||||
|
>また、このインスタンスはMastodonではなくそのAPI上の互換実装であり、TheDeskでは利用を想定していないため非保証となります。</span
|
||||||
|
>
|
||||||
|
<ul id="compt-list"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="misskeylogin" style="display:none">
|
||||||
|
<h5>AppSecret</h5>
|
||||||
|
Read <a href="https://thedesk.top/how-to-misskey-login.html">Docs(ja)</a> to login Misskey.<br />
|
||||||
|
<input type="hidden" id="misskey-url" />
|
||||||
|
<input type="text" id="misskey-key" placeholder="Código" required />
|
||||||
|
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup('misskey')" class="pointer">Use access token to login(click after fill not code but access-token in box: Advanced)</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-first">
|
||||||
|
<h5>Main an account</h5>
|
||||||
|
<div class="input-field" style="width:300px">
|
||||||
|
<span data-trans="your_acct">Selecione uma conta</span>
|
||||||
|
<br />
|
||||||
|
<select
|
||||||
|
id="main-acct-sel"
|
||||||
|
class="acct-sel"
|
||||||
|
style="color:black"
|
||||||
|
onchange="mainacct()"
|
||||||
|
></select>
|
||||||
|
<label></label>
|
||||||
|
</div>
|
||||||
|
<ul id="domain-list" class="collection transparent"></ul>
|
||||||
|
<div id="instance-data">
|
||||||
|
Some instance data by
|
||||||
|
<a href="https://instances.social" target="_blank">instances.social API</a><br />
|
||||||
|
<h5 id="ins-title"></h5>
|
||||||
|
Administered by:<a id="ins-admin"></a><br />
|
||||||
|
<span id="ins-desc"></span><br />
|
||||||
|
<img src="../../img/loading.svg" id="ins-prof" width="200" /><br />
|
||||||
|
<br />
|
||||||
|
Domínio:<span id="ins-name"></span><br />
|
||||||
|
Federated servers:<span id="ins-connect"></span><br />
|
||||||
|
Toots:<span id="ins-toot"></span><br />
|
||||||
|
Usuários:<span id="ins-user"></span>Usuários<br />
|
||||||
|
Conexão:<span id="ins-per"></span>%<br />
|
||||||
|
Versão do Mastodon:<span id="ins-ver"></span>@<span id="ins-upd"></span><br />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/sha256.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
||||||
|
<script>$('body').addClass(localStorage.getItem('platform'))</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
1287
app/view/pt-BR/index.html
Normal file
1287
app/view/pt-BR/index.html
Normal file
File diff suppressed because it is too large
Load Diff
1
app/view/pt-BR/main.js
Normal file
1
app/view/pt-BR/main.js
Normal file
File diff suppressed because one or more lines are too long
632
app/view/pt-BR/setting.html
Normal file
632
app/view/pt-BR/setting.html
Normal file
|
@ -0,0 +1,632 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="pt-BR" style="overflow-y:scroll">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>Settings - TheDesk</title>
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = [];
|
||||||
|
_jipt.push(['project', 'thedesk']);
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<style>
|
||||||
|
input {
|
||||||
|
max-height: 3.84rem !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.pcr-result {
|
||||||
|
height: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container-after-titlebar {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
<script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" style="overflow-y:scroll" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script src="../../node_modules/json5/dist/index.min.js"></script>
|
||||||
|
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||||
|
<script type="text/javascript" src="setting.vue.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||||
|
<script>function renderMem() { return false; }</script>
|
||||||
|
|
||||||
|
<h4>Preferences</h4>
|
||||||
|
<ul class="collapsible" data-collapsible="accordion">
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">desktop_windows</i>System Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Languages</h5>
|
||||||
|
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br><br>
|
||||||
|
<div style="display: flex;">
|
||||||
|
<div style="width: 22rem;" id="langsel">
|
||||||
|
<select id="langsel-sel"><option value="ja">日本語</option><option value="ja-KS">日本語(関西)</option><option value="en">English</option><option value="bg">български</option><option value="cs">Česky</option><option value="de">Deutsch</option><option value="es-AR">Español, argentina</option><option value="it-IT">italiano</option><option value="zh-CN">简体中文</option><option value="zh-TW">繁體中文(β)</option><option value="fr-FR">français(β)</option><option value="no-NO">norsk(β)</option><option value="pt-BR">Português, brasileiro(β)</option><option value="ru-RU">русский(β)</option><option value="es-ES">Español(β)</option><option value="ps">Crowdin translate system(beta)</option></select>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect" onclick="changeLang()">Change</button>
|
||||||
|
</div>
|
||||||
|
<h5>Import and export of preferences</h5>
|
||||||
|
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Export</button>
|
||||||
|
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Import</button><br>
|
||||||
|
If you got a error when you choose the file, please paste the strings printed when you open the file and click import<br>
|
||||||
|
<input type="text" id="imp-exp" style="width: 22rem">
|
||||||
|
<div id="envView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||||
|
class="pointer">Notification test</a><br></template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Change</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Font</h5>
|
||||||
|
Select your favorite font to 'Select'(Windows/ macOS only)<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="font()">Select</button><br>
|
||||||
|
<div id="fonts" class="hide" style="overflow-y:scroll; width:22rem; height:40rem;"></div>
|
||||||
|
<br>
|
||||||
|
<input type="text" style="width:11.5rem" id="font">
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="settings()">Save</button>
|
||||||
|
<br>
|
||||||
|
<h5>Folder to save</h5>
|
||||||
|
TheDesk uses this value when it try to save pictures or take screenshots.<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="savefolder()">Change</button>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="pwa">
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">color_lens</i>Themes
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h4>Select theme</h4>
|
||||||
|
<div style="width:22rem" id="sel-selector">
|
||||||
|
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||||
|
</div>
|
||||||
|
<h4>Edit and add themes</h4>
|
||||||
|
<div style="width:22rem" id="edit-selector" data-add="Add new">
|
||||||
|
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
|
||||||
|
<option value="add_new">Add new</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<h5>Name</h5>
|
||||||
|
<input type="text" style="width:22rem" id="custom_name" placeholder="Name...">
|
||||||
|
<h5>About this theme</h5>
|
||||||
|
<div class="input-field"><textarea style="width:22rem" id="custom_desc" class="materialize-textarea"
|
||||||
|
placeholder="About this theme..."></textarea></div>
|
||||||
|
<h5>Color scheme</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||||
|
checked="true" />
|
||||||
|
<span>Dark</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||||
|
value="light" />
|
||||||
|
<span>Light</span>
|
||||||
|
</label><br><br />
|
||||||
|
<button class="btn waves-effect" onclick="advanced()">Advanced options</button>
|
||||||
|
<span class="advanced hide"></span>
|
||||||
|
<div id="pickers">
|
||||||
|
<div>
|
||||||
|
<h5>Background</h5>Background color<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_0" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker0_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Text</h5>Text color<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_1" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker1_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Subcolor</h5>Distinguishable from background<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_2" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker2_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Accent</h5>Background of boosts<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_3" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker3_value">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal</h5>Background of modal window<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_4" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modal')">Background</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker4_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal Footer</h5>Background of modal window's footer<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_5" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modalFooter')">Background</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('modal','modalFooter')">Modal</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker5_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>3rd Color</h5>Backgroud of tag buttons, etc(near to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_6" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','third')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker6_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>4th Color</h5>Title bar(same scheme to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_7" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','forth')">Subcolor</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('third','forth')">3rd Color</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker7_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Bottom</h5>Background of menu-bar at bottom of window<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_8" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','bottom')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker8_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>2nd Accent</h5>Emphasized toot's background<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_9" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','emphasized')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker9_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Postbox</h5>Background of post-box and menu<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_10" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','postbox')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker10_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Active</h5>Background of 'active' elements<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_11" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','active')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker11_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected</h5>Background of selected with arrow keys<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_12" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker12_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected with shared</h5>Background of selected with arrow keys(boosted toots)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_13" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker13_value">
|
||||||
|
</div>
|
||||||
|
</div><br /><br />
|
||||||
|
<button class="btn-large waves-effect" onclick="customComp()">Change</button> <button
|
||||||
|
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">Excluir</button><br><br>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_json" class="materialize-textarea"
|
||||||
|
placeholder="JSON style" readonly><br>
|
||||||
|
<h4>Import of custom themes</h4>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_import" class="materialize-textarea"
|
||||||
|
placeholder="JSON/JSON5 style">
|
||||||
|
<button class="btn waves-effect" onclick="customImp()">Import</button><br>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">reorder</i>Timeline Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="tlView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Change</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Custom sound</h5>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span
|
||||||
|
id="c1-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span
|
||||||
|
id="c2-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span
|
||||||
|
id="c3-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span
|
||||||
|
id="c4-file"></span><br>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100(default:80)<br>
|
||||||
|
<p class="range-field"><span id="soundVolVal">80</span><br>
|
||||||
|
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">send</i>Posting Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="postView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<template
|
||||||
|
v-if="(!check.kirishima || (check.kirishima && kirishima) )&& (!check.quote || (check.quote && quoters))">
|
||||||
|
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||||
|
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||||
|
v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span></label>
|
||||||
|
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Change</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Easy inserter</h5>
|
||||||
|
You can insert any letters and emojis with only 3 keys<br>
|
||||||
|
Ctrl+Shift+1:<input type="text" style="width:11.5rem" id="oks-1">
|
||||||
|
<button onclick="oks(1)" class="btn waves-effect" style="width:7.7rem;">Save</button><br><br>
|
||||||
|
Ctrl+Shift+2:<input type="text" style="width:11.5rem" id="oks-2">
|
||||||
|
<button onclick="oks(2)" class="btn waves-effect" style="width:7.7rem;">Save</button><br><br>
|
||||||
|
Ctrl+Shift+3:<input type="text" style="width:11.5rem" id="oks-3">
|
||||||
|
<button onclick="oks(3)" class="btn waves-effect" style="width:7.7rem;">Save</button><br><br>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<img src="../../img/aiscript.svg"
|
||||||
|
style="height: 1.5rem; margin-left: 0.4rem; margin-right: 0.4rem;">Plugins
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<a href="https://github.com/cutls/TheDesk/blob/master/plugin.md">Japanese docs of AiScript TheDesk plugins</a><br />
|
||||||
|
<textarea id="plugin" data-id="add_new" style="height: 20rem"></textarea>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="completePlugin()">Change</button>
|
||||||
|
<button class="btn waves-effect red disabled plugin_delete" style="width:7.7rem;"
|
||||||
|
onclick="deletePlugin()">Excluir</button>
|
||||||
|
<h5>Plugin list</h5>
|
||||||
|
<div style="width:22rem" id="plugin-selector" data-add="Add new">
|
||||||
|
<select id="plugin-edit-sel" class="custom-sel" onchange="pluginEdit()">
|
||||||
|
<option value="add_new">Add new</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">bookmark</i>Mute & Emphasis Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Client Mute</h5>
|
||||||
|
<div id="mute-cli"></div>
|
||||||
|
<h5>Client Emphasis</h5>
|
||||||
|
Click client name on toots to toggle mute and emphasis.
|
||||||
|
<h5>Words Mute</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordmute" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:7.7rem;">Save</button>
|
||||||
|
<h5>Words Emphasis</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordemp" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordempSave()" class="btn waves-effect" style="width:7.7rem;">Save</button>
|
||||||
|
<h5>Users Emphasis</h5>
|
||||||
|
Set on users data modals.
|
||||||
|
<span class="emphasized"> Use this color to emphasis </span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="fab fa-spotify"></i>Spotify and NowPlaying Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Account Connection(Spotify)</h5>
|
||||||
|
TheDesk save your data on thedesk.top server.<br>
|
||||||
|
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
|
||||||
|
onclick="spotifyAuth()" class="btn waves-effect" style="width:7.7rem;">Save</button></div>
|
||||||
|
<a onclick="spotifyConnect()" class="btn waves-effect nex"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-enable"><i
|
||||||
|
class="fab fa-spotify left"></i>Connect</a>
|
||||||
|
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-disable"><i
|
||||||
|
class="fab fa-spotify left"></i>Disconnect</a>
|
||||||
|
<h5>Account Connection(Last.fm)</h5>
|
||||||
|
User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.<br />
|
||||||
|
<input type="text" style="width:11.5rem" id="lastFmUser">
|
||||||
|
<button onclick="lastFmSet()" class="btn waves-effect" style="width:7.7rem;">Save</button>
|
||||||
|
<h5>Edit a template</h5>
|
||||||
|
<br>
|
||||||
|
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||||
|
{url}</textarea><br>
|
||||||
|
Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify<br>
|
||||||
|
<span class="mac">>macOS:{song}:Song name/{album}:Album name/{artist}:Artist name/composer:{composer}/spampling rate:{hz}/bit rate:{bitRate}/genre:{genre}</span><br>
|
||||||
|
<button onclick="spotifySave()" class="btn waves-effect" style="width:7.7rem;">Save</button>
|
||||||
|
<h5>Attach an Artwork of Spotify</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Sim</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||||
|
value="no" />
|
||||||
|
<span>Não</span>
|
||||||
|
</label>
|
||||||
|
<div class="mac">
|
||||||
|
<h5>If the song has no artwork, automatic complete it(macOS)</h5>
|
||||||
|
If you nowplaying an non-artwork song, get one which seems nice through API. If you do not like the completed artwork, you can right-click it to delete.<br />
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Sim</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_no"
|
||||||
|
value="no" />
|
||||||
|
<span>Não</span>
|
||||||
|
</label>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">hearing</i>TTS(text to speech) Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>BouyomiChan connect</h5>
|
||||||
|
Require: BouyomiChan WebSocket Plugin<a href="https://github.com/xztaityozx/BouyomiChan-WebSocket-Plugin"
|
||||||
|
target="_blank">GitHub</a><br>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Sim</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_no" value="no" />
|
||||||
|
<span>Não</span>
|
||||||
|
</label>
|
||||||
|
<h5>Speed</h5>
|
||||||
|
1-100(default:10)<br>
|
||||||
|
<p class="range-field"><span id="voicespeedVal">10</span><br>
|
||||||
|
<input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||||
|
onchange="document.getElementById('voicespeedVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Pitch</h5>
|
||||||
|
0-100(default:50)<br>
|
||||||
|
<p class="range-field"><span id="voicepitchVal">50</span><br>
|
||||||
|
<input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||||
|
onchange="document.getElementById('voicepitchVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100(default:100)<br>
|
||||||
|
<p class="range-field"><span id="voicevolVal">100</span><br>
|
||||||
|
<input type="range" id="voicevol" min="0" max="100" value="100"
|
||||||
|
onchange="document.getElementById('voicevolVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Test</h5>
|
||||||
|
<input type="text" style="width:27rem" id="voicetxt" value="TheDesk is an open-source Mastodon client for PC.">
|
||||||
|
<button class="btn waves-effect blue" style="width:11.5rem;" onclick="voicePlay()"
|
||||||
|
id="testplay">Play/Stop</button><br>
|
||||||
|
<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="voiceSettings()">Save</button>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:15rem;"><i
|
||||||
|
class="material-icons left">undo</i>Voltar</a>
|
||||||
|
<br>
|
||||||
|
<br>Keyboard shortcuts
|
||||||
|
<li>Ctrl+1-9:Jump to n(1-9)th column</li>
|
||||||
|
<li>N:Open toot box</li>
|
||||||
|
<li>X:Toggle toot box</li>
|
||||||
|
<li>Ctrl+Enter:Post</li>
|
||||||
|
<li>Ctrl+Enter+Shift:Post(secondary toot)</li>
|
||||||
|
<li>Alt+Enter:Secondary Toot Button</li>
|
||||||
|
<li>Ctrl+E:Make all notifications read</li>
|
||||||
|
<li>Ctrl+U:Select the top & left(No.1 column) toot</li>
|
||||||
|
<li>Esc:Hide toot box</li>
|
||||||
|
<li>F5:Super Reload</li>
|
||||||
|
<li>Ctrl+Shift+C:Clear toot box</li>
|
||||||
|
<li>Ctrl+Shift+S:Preferences</li>
|
||||||
|
<li>Ctrl+Shift+M:Account Manager</li>
|
||||||
|
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
|
||||||
|
<li>Ctrl+Shift+P:Show profile of selecting</li>
|
||||||
|
<li>←/→:Show next or previous image</li>
|
||||||
|
<li>Mousewheel:Zoom a image</li>
|
||||||
|
<div class="hide kirishima">
|
||||||
|
以下Markdownに対応したインスタンスのみ。
|
||||||
|
<br>
|
||||||
|
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||||
|
When a toot is selected:
|
||||||
|
<li>F:Favourite this toot</li>
|
||||||
|
<li>B:Boost this toot</li>
|
||||||
|
<li>R:Reply to this toot</li>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect red" style="width:100%; max-width:40rem;"
|
||||||
|
onclick="if(confirm('Delete all data. You cannot undo. Continue?')){ localStorage.clear(); location.href='index.html'; }"><i
|
||||||
|
class="material-icons left">delete</i>Reset(Danger)</button><br><br>
|
||||||
|
<button class="btn waves-effect indigo pwa" onclick="about()" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">info</i>About TheDesk</button>
|
||||||
|
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">web</i>Website</a>
|
||||||
|
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Support(Pixiv FANBOX)</a>
|
||||||
|
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Support(Patreon)</a>
|
||||||
|
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
|
||||||
|
style="width:100%; max-width:40rem; background-color: #f6c915"><i
|
||||||
|
class="material-icons left">trending_up</i>Support(Liberapay)</a>
|
||||||
|
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">list</i>Help/Docs</a>
|
||||||
|
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="fab fa-github left"></i>GitHub</a>
|
||||||
|
<a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><img src="../../img/desk_full.svg" class="left" width="25"
|
||||||
|
style="padding-top:5px;">Main author: Cutls@cutls.com</a>
|
||||||
|
<br>
|
||||||
|
TheDesk @ <a href="https://github.com/cutls/TheDesk/commits/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c">89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c</a> - <a
|
||||||
|
onclick="checkupd(); return localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||||
|
class="pointer pwa">Check update</a><br>
|
||||||
|
<br>
|
||||||
|
Kyash<br>
|
||||||
|
<img src="../../img/kyash.png" width="100"><br>
|
||||||
|
<a href="https://status.cutls.com/">
|
||||||
|
<img src="https://status.cutls.com/badge-service?site=thedesk.top">
|
||||||
|
</a><br>
|
||||||
|
<h5>OSS License</h5>
|
||||||
|
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fcutls%2FTheDesk/refs/branch/master/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c"
|
||||||
|
alt="FOSSA Status"><img
|
||||||
|
src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcutls%2FTheDesk.svg?type=small" /></a>
|
||||||
|
<br>
|
||||||
|
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||||
|
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
|
||||||
|
href="https://thedesk.top/priv.html">Privacy
|
||||||
|
Policy</a>
|
||||||
|
<br>
|
||||||
|
</span><br>
|
||||||
|
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||||
|
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/aiscript.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/plugin.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/speech.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/settings.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
756
app/view/pt-BR/setting.vue.js
Normal file
756
app/view/pt-BR/setting.vue.js
Normal file
|
@ -0,0 +1,756 @@
|
||||||
|
var yesno = [
|
||||||
|
{
|
||||||
|
text: 'Sim',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Não',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var sound = [
|
||||||
|
{
|
||||||
|
text: 'Nenhum',
|
||||||
|
value: 'none'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Padrão',
|
||||||
|
value: 'default'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 1',
|
||||||
|
value: 'c1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 2',
|
||||||
|
value: 'c2'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 3',
|
||||||
|
value: 'c3'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 4',
|
||||||
|
value: 'c4'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var envConstruction = [
|
||||||
|
{
|
||||||
|
id: 'popup',
|
||||||
|
storage: 'popup',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Popup notification',
|
||||||
|
desc: 'Hide to set "0"',
|
||||||
|
after: 'sec'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notf',
|
||||||
|
storage: 'nativenotf',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Native notification',
|
||||||
|
desc: 'This does not work on Windows Portable ver.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'width',
|
||||||
|
storage: 'width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 300,
|
||||||
|
text: { after: 'px ~ ' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'maxWidth',
|
||||||
|
storage: 'max-width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 600,
|
||||||
|
text: { after: 'px' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Width of columns',
|
||||||
|
desc: 'Scroll bar will be shown when your window size is more than ammounts of columns.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'margin',
|
||||||
|
storage: 'margin',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Margin between timelines',
|
||||||
|
desc: '',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'fixwidth',
|
||||||
|
storage: 'fixwidth',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 300,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Minimum width of TweetDeck browser',
|
||||||
|
desc: '',
|
||||||
|
after: 'px above'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'size',
|
||||||
|
storage: 'size',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 50,
|
||||||
|
setValue: 13,
|
||||||
|
text: {
|
||||||
|
head: 'Font size',
|
||||||
|
desc: '<span style="font-size:13px">13px(absolute value)</span>',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ha',
|
||||||
|
storage: 'ha',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: false,
|
||||||
|
text: {
|
||||||
|
head: 'Disable hardware acceleration',
|
||||||
|
desc: 'Auto restarted',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Sim',
|
||||||
|
value: 'true'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Não',
|
||||||
|
value: 'false'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ua',
|
||||||
|
storage: 'ua_setting',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: '',
|
||||||
|
width: 200,
|
||||||
|
text: {
|
||||||
|
head: 'User agent',
|
||||||
|
desc: 'Restart when changed'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'srcUrl',
|
||||||
|
storage: 'srcUrl',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 200,
|
||||||
|
setValue: 'https://google.com/search?q={q}',
|
||||||
|
text: {
|
||||||
|
head: 'Search engine',
|
||||||
|
desc: '{q} will be replaced to query.',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'download',
|
||||||
|
storage: 'dl-win',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Versioning(o Windows downloader)',
|
||||||
|
desc: 'ex: TheDesk-1.0.0-setup.exe',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var tlConstruction = [
|
||||||
|
{
|
||||||
|
id: 'time',
|
||||||
|
storage: 'datetype',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'absolute',
|
||||||
|
text: {
|
||||||
|
head: 'Time format',
|
||||||
|
desc: 'Relative format:"1 minutes ago","3 days ago"<br>Absolute format:"23:25:21","2017/12/30 23:59:00"<br>Mixed format:toots posted today are relative-format, others are absolute-format.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Relative',
|
||||||
|
value: 'relative'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Absolute',
|
||||||
|
value: 'absolute'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Both relative and absolute',
|
||||||
|
value: 'double'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Mixed',
|
||||||
|
value: 'medium'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ul',
|
||||||
|
storage: 'locale',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Server\s unique locale',
|
||||||
|
desc: 'This value is available on some Japanese servers',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'nsfw',
|
||||||
|
storage: 'nsfw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide Mark sensitive pictures',
|
||||||
|
desc: 'Strong blur effect',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw',
|
||||||
|
storage: 'cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide CW contents',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'rp',
|
||||||
|
storage: 'replyct',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'hidden',
|
||||||
|
text: {
|
||||||
|
head: 'Reply counter style',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Show 1+ if the replies are more than 1.',
|
||||||
|
value: 'hidden'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Show full count(1,2...)',
|
||||||
|
value: 'all'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'gif',
|
||||||
|
storage: 'gif',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animated GIF images animation',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'tag',
|
||||||
|
storage: 'tag-range',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'local',
|
||||||
|
text: {
|
||||||
|
head: 'Tag TL Search',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Use federated network',
|
||||||
|
value: 'all'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Use local network',
|
||||||
|
value: 'local'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'via',
|
||||||
|
storage: 'viashow',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Show via',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'mov',
|
||||||
|
storage: 'mouseover',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Hide action buttons without mouseover',
|
||||||
|
desc: 'You may feel \mouseover\ is unconfortable:(',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Mouseover to show',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Click to show',
|
||||||
|
value: 'click'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Não',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notfm',
|
||||||
|
storage: 'setasread',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Show Notification marker, red colored bell and counter(if you show a notification column.)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'sentence',
|
||||||
|
storage: 'sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'lines above or' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'letters',
|
||||||
|
storage: 'letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'letters above' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Auto folding',
|
||||||
|
desc: 'TheDesk does not collapse totes of 5 characters or less. Also, when collapsing, newlines are not shown. TheDesk count only newlines as the number of lines.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img-height',
|
||||||
|
storage: 'img-height',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 80,
|
||||||
|
setValue: 200,
|
||||||
|
text: {
|
||||||
|
head: 'Height of images',
|
||||||
|
desc: 'Option:Set "full" to uncrop.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ticker',
|
||||||
|
storage: 'ticker_ok',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Enable OpenSticker',
|
||||||
|
desc: 'Show the instance name and favicon of tooters <a href="https://opensticker.0px.io">About OpenSticker</a>',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'anime',
|
||||||
|
storage: 'animation',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animation of timelines',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'markers',
|
||||||
|
storage: 'markers',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Markers(mark as read) on HTL and notifications',
|
||||||
|
desc: 'Mastodon 3.0~. Shared on WebUI and third-party supported clients.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'remote_img',
|
||||||
|
storage: 'remote_img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Get images from the remote server',
|
||||||
|
desc: 'All previews are got from your loginned cache server.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'bkm',
|
||||||
|
storage: 'bookmark',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Show a bookmarking toot button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'scroll',
|
||||||
|
storage: 'scroll',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normalScrollBar',
|
||||||
|
text: {
|
||||||
|
head: 'Height of the scroll bar',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Thick',
|
||||||
|
value: 'thickScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Normal',
|
||||||
|
value: 'normalScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Thin',
|
||||||
|
value: 'thinScrollBar'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'replySound',
|
||||||
|
storage: 'replySound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Reply)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'favSound',
|
||||||
|
storage: 'favSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Fav)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'btSound',
|
||||||
|
storage: 'btSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Boost)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'followSound',
|
||||||
|
storage: 'followSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Follow)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var postConstruction = [
|
||||||
|
{
|
||||||
|
id: 'cw-text',
|
||||||
|
storage: 'cw-text',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 150,
|
||||||
|
setValue: '',
|
||||||
|
text: {
|
||||||
|
head: 'Default warining text',
|
||||||
|
desc: '',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'cw_sentence',
|
||||||
|
storage: 'cw_sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'lines above or' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw_letters',
|
||||||
|
storage: 'cw_letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'letters above' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Alert before posting a long toot.',
|
||||||
|
desc: 'Show dialog whether you make too-long text hidden.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cws',
|
||||||
|
storage: 'always-cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Always CW set',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw-continue',
|
||||||
|
storage: 'cw-continue',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: '@@cwContinue@@',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'vis',
|
||||||
|
storage: 'vis',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Default visibility',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Public',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Unlisted',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Private',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direct',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Memory(memorized as each server)',
|
||||||
|
value: 'memory'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Default of your visibility(Set on preferences of Mastodon server)',
|
||||||
|
value: 'useapi'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img',
|
||||||
|
storage: 'img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no-act',
|
||||||
|
text: {
|
||||||
|
head: 'Posting images preferences',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Insert media URL',
|
||||||
|
value: 'url'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Insert nothig',
|
||||||
|
value: 'no-act'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'box',
|
||||||
|
storage: 'box',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Action of posting-box',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Folding',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Open after posting',
|
||||||
|
value: 'no'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Absolutely open',
|
||||||
|
value: 'absolute'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'quote',
|
||||||
|
storage: 'quote',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'nothing',
|
||||||
|
text: {
|
||||||
|
head: 'Quote format',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Only URL',
|
||||||
|
value: 'simple'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL and acct(mention to the user)',
|
||||||
|
value: 'mention'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL, text and acct(mention to the user)',
|
||||||
|
value: 'full'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'API(only some instances)',
|
||||||
|
value: 'apiQuote',
|
||||||
|
quote: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Disabled(Hide buttons on TLs)',
|
||||||
|
value: 'nothing'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'main',
|
||||||
|
storage: 'mainuse',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'remain',
|
||||||
|
text: {
|
||||||
|
head: 'Default accounts of actions',
|
||||||
|
desc: 'Main account can be set on Account Manager.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Account you used recently',
|
||||||
|
value: 'remain'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Main account',
|
||||||
|
value: 'main'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'sec',
|
||||||
|
storage: 'sec',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Secondary Toot Button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Hidden',
|
||||||
|
value: 'nothing'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Public',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Unlisted',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Private',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direct',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Local Only',
|
||||||
|
value: 'local',
|
||||||
|
kirishima: true,
|
||||||
|
kirishimaText: '非対応インスタンスでは「未収載」になります。'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'zero',
|
||||||
|
storage: 'emoji-zero-width',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normal',
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Zero-width space when inserting emojis',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'uploadCrop',
|
||||||
|
storage: 'uploadCrop',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 100,
|
||||||
|
setValue: '0',
|
||||||
|
text: {
|
||||||
|
head: 'Auto scale to fit',
|
||||||
|
desc: 'Max long-side px. Uploaded images are converted to JPEG(from JPEG) or PNG(from others). Set 0 and the images will not be resized. Notice: if you post an animated picture like GIF, it will be converted static one.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
302
app/view/pt-BR/update.html
Normal file
302
app/view/pt-BR/update.html
Normal file
|
@ -0,0 +1,302 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="pt-BR">
|
||||||
|
<head>
|
||||||
|
<title>Update - TheDesk</title>
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Open Sans';
|
||||||
|
-webkit-app-region: drag;
|
||||||
|
cursor: move;
|
||||||
|
padding: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#start {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100vw;
|
||||||
|
height: calc(100vh - 2.5rem);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#checkbox {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a,
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
label,
|
||||||
|
i {
|
||||||
|
-webkit-app-region: no-drag;
|
||||||
|
}
|
||||||
|
|
||||||
|
#updskip {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100px;
|
||||||
|
border: 1px solid;
|
||||||
|
margin-left: 5px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border: 1px solid #c26363;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #c26363;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn:hover {
|
||||||
|
background-color: #c26363;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#prog {
|
||||||
|
font-size: 200%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||||
|
<!--a href="update.html">Reload</a-->
|
||||||
|
<div id="start" style="filter: brightness(100%)">
|
||||||
|
<div id="box" class="show">
|
||||||
|
<h2>TheDesk</h2>
|
||||||
|
<p>Obtenha o mais recente TheDesk</p>
|
||||||
|
<span id="now"></span>→<b id="ver"></b><br />
|
||||||
|
<a href="" id="github" class="btn waves-effect grey darken-1"><i class="fab fa-github left"></i>Quais são as novidades?</a><br />
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left: 15px;">Instalador (Recomendado)</button>
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left: 15px;">Portable ver.</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left: 15px;">zip</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxdeb')" style="margin-left: 15px;">deb(Recommended on buntu, Debian)</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxsnap')" style="margin-left: 15px;">snap</button>
|
||||||
|
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left: 15px;">Começar</button>
|
||||||
|
<br />
|
||||||
|
Alguns problemas?<br />Please download on <a href='https://thedesk.top'>Oficial HP</a>.
|
||||||
|
</div>
|
||||||
|
<div id="skipper" class="hide">
|
||||||
|
<h4>Ignorar esta atualização</h4>
|
||||||
|
Você pode perder uma experiência legal!<br />
|
||||||
|
<div id="updskip">
|
||||||
|
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>Hidden until next TL loading</div>
|
||||||
|
</a>
|
||||||
|
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>Oculto até a próxima versão</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<a class="pointer waves-effect" onclick="skipper();" style="margin-top: 5px;">Continuar atualizando</a>
|
||||||
|
</div>
|
||||||
|
<div id="dlnow" class="hide" style="width: 70%;">
|
||||||
|
<h4>Baixando...</h4>
|
||||||
|
<h4 id="prog"></h4>
|
||||||
|
<div class="progress">
|
||||||
|
<div class="determinate" style="width: 0%;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script>
|
||||||
|
function skipper() {
|
||||||
|
$('#dlnow').addClass('hide')
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
if ($('#box').hasClass('hide') && $('#skipper').hasClass('hide')) {
|
||||||
|
$('#skipper').removeClass('hide')
|
||||||
|
$('#skipper').addClass('show')
|
||||||
|
} else {
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('show')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
verck()
|
||||||
|
function update(sel) {
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('show')
|
||||||
|
$('#prog').text('')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
if (sel == 'install') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'portable') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64p_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32p_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'linux') {
|
||||||
|
var url = json['linuxx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'thedesk-' + json.unique_linux + '.zip'
|
||||||
|
} else {
|
||||||
|
var file = 'thedesk.zip'
|
||||||
|
}
|
||||||
|
var filesize = json.linuxx64_size
|
||||||
|
} else if (sel == 'linuxdeb') {
|
||||||
|
var url = json['linuxdeb']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.deb'
|
||||||
|
var filesize = json.linuxdeb_size
|
||||||
|
} else if (sel == 'linuxsnap') {
|
||||||
|
var url = json['linuxsnap']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.snap'
|
||||||
|
var filesize = json.linuxsnap_size
|
||||||
|
} else if (sel == 'mac') {
|
||||||
|
var url = json['mac']
|
||||||
|
var file = 'TheDesk-' + json.unique_mac + '.dmg'
|
||||||
|
var filesize = json.mac_size
|
||||||
|
}
|
||||||
|
postMessage(['downloadButton', [url, file, filesize]], '*')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function quit() {
|
||||||
|
postMessage(['sendSinmpleIpc', 'quit'], '*')
|
||||||
|
}
|
||||||
|
function updateProg(arg) {
|
||||||
|
$('.determinate').css('width', arg[0].percent * 100 + '%')
|
||||||
|
$('#prog').html(`${Math.floor(arg[0].percent * 100)}%<br />(${Math.floor(arg[0].percent*arg[1]/1024/1024*10)/10} MB / ${Math.floor(arg[1]/1024/1024*10)/10} MB)`)
|
||||||
|
|
||||||
|
}
|
||||||
|
function updateMess(arg) {
|
||||||
|
console.log(arg)
|
||||||
|
$('#prog').text(arg)
|
||||||
|
}
|
||||||
|
function verck() {
|
||||||
|
var platform = localStorage.getItem('platform')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('.windows').removeClass('hide')
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('.linux').removeClass('hide')
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('.mac').removeClass('hide')
|
||||||
|
}
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
console.log(json)
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('#ver').text(json.desk)
|
||||||
|
localStorage.setItem('next-ver', json.desk)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('#ver').text(json.desk_linux)
|
||||||
|
localStorage.setItem('next-ver', json.desk_linux)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_linux
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('#ver').text(json.desk_mac)
|
||||||
|
localStorage.setItem('next-ver', json.desk_mac)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_mac
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#github').attr('href', url)
|
||||||
|
|
||||||
|
$('#now').text(localStorage.getItem('ver'))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function nextv() {
|
||||||
|
localStorage.setItem('new-ver-skip', 'true')
|
||||||
|
window.close()
|
||||||
|
}
|
||||||
|
function enc(ver) {
|
||||||
|
var ver = ver.replace(/\s/g, '')
|
||||||
|
var ver = ver.replace(/\(/g, '-')
|
||||||
|
var ver = ver.replace(/\)/g, '')
|
||||||
|
var ver = ver.replace(/\[/g, '_')
|
||||||
|
var ver = ver.replace(/\]/g, '')
|
||||||
|
return ver
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
154
app/view/ru-RU/acct.html
Normal file
154
app/view/ru-RU/acct.html
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ru-RU">
|
||||||
|
<head>
|
||||||
|
<title>Account Manager - TheDesk</title>
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link
|
||||||
|
href="../../node_modules/materialize-css/dist/css/materialize.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/tl.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link
|
||||||
|
href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/acct.css" rel="stylesheet" type="text/css" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<script>var pwa = false;</script> <script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/materialize-css/dist/js/materialize.js"
|
||||||
|
></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"
|
||||||
|
></script>
|
||||||
|
<script>
|
||||||
|
var misskeytoken = false
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||||
|
<div class="hide-first">
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"
|
||||||
|
>Назад</a
|
||||||
|
><br />
|
||||||
|
<h5>Список аккаунтов</h5>
|
||||||
|
<div id="acct-list"></div>
|
||||||
|
<div class="divider"></div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-second">
|
||||||
|
<a href="setting.html">Having the exported file of TheDesk, click here to jump setting page</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Добавьте аккаунт</h5>
|
||||||
|
<br />
|
||||||
|
<div id="add">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s8">
|
||||||
|
Fill the instance domain (like mastodon.social)<br />
|
||||||
|
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp" />
|
||||||
|
<div id="ins-suggest"></div>
|
||||||
|
<button class="btn waves-effect" onclick="instance()">Login</button><br />
|
||||||
|
<div class="pwa">
|
||||||
|
Uncheck it to skip pasiting code.(login to Mastodon on Windows or macOS) (Recommended: pcheck)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="linux" />
|
||||||
|
<span>Настройка кода</span>
|
||||||
|
</label>
|
||||||
|
<br />
|
||||||
|
</div>
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="misskey" />
|
||||||
|
<span>Login as Misskey</span> </label
|
||||||
|
><br />
|
||||||
|
</div>
|
||||||
|
<div class="col s4 scr" aria-hidden="true">
|
||||||
|
<span style="font-family:Open Sans;">Supports</span>
|
||||||
|
<div id="support" class="collection transparent"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="auth" style="display:none">
|
||||||
|
Вставьте код и закройте браузер.<br />
|
||||||
|
<input type="text" id="code" placeholder="Код" required />
|
||||||
|
<button class="btn waves-effect" onclick="code()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup()" class="pointer">Use access token to login(click after fill not code but access-token in box: Advanced)</a>
|
||||||
|
<div id="compt" style="display:none" class="scr">
|
||||||
|
<h5>ログイン前に必ずご確認ください</h5>
|
||||||
|
<span id="compt-instance"></span>はバージョンが<span id="compt-ver"></span
|
||||||
|
>のため以下の機能がご利用いただけません。
|
||||||
|
<span id="compt-warn" style="display:none"
|
||||||
|
>また、このインスタンスはMastodonではなくそのAPI上の互換実装であり、TheDeskでは利用を想定していないため非保証となります。</span
|
||||||
|
>
|
||||||
|
<ul id="compt-list"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="misskeylogin" style="display:none">
|
||||||
|
<h5>AppSecret</h5>
|
||||||
|
Read <a href="https://thedesk.top/how-to-misskey-login.html">Docs(ja)</a> to login Misskey.<br />
|
||||||
|
<input type="hidden" id="misskey-url" />
|
||||||
|
<input type="text" id="misskey-key" placeholder="Код" required />
|
||||||
|
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup('misskey')" class="pointer">Use access token to login(click after fill not code but access-token in box: Advanced)</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-first">
|
||||||
|
<h5>Основной аккаунт</h5>
|
||||||
|
<div class="input-field" style="width:300px">
|
||||||
|
<span data-trans="your_acct">Выберите аккаунт</span>
|
||||||
|
<br />
|
||||||
|
<select
|
||||||
|
id="main-acct-sel"
|
||||||
|
class="acct-sel"
|
||||||
|
style="color:black"
|
||||||
|
onchange="mainacct()"
|
||||||
|
></select>
|
||||||
|
<label></label>
|
||||||
|
</div>
|
||||||
|
<ul id="domain-list" class="collection transparent"></ul>
|
||||||
|
<div id="instance-data">
|
||||||
|
Some instance data by
|
||||||
|
<a href="https://instances.social" target="_blank">instances.social API</a><br />
|
||||||
|
<h5 id="ins-title"></h5>
|
||||||
|
Administered by:<a id="ins-admin"></a><br />
|
||||||
|
<span id="ins-desc"></span><br />
|
||||||
|
<img src="../../img/loading.svg" id="ins-prof" width="200" /><br />
|
||||||
|
<br />
|
||||||
|
Домен:<span id="ins-name"></span><br />
|
||||||
|
Федеративные серверы:<span id="ins-connect"></span><br />
|
||||||
|
Toots:<span id="ins-toot"></span><br />
|
||||||
|
Пользователи:<span id="ins-user"></span>Пользователи<br />
|
||||||
|
Подключение:<span id="ins-per"></span>%<br />
|
||||||
|
Версия Mastodon:<span id="ins-ver"></span>@<span id="ins-upd"></span><br />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/sha256.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
||||||
|
<script>$('body').addClass(localStorage.getItem('platform'))</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
1287
app/view/ru-RU/index.html
Normal file
1287
app/view/ru-RU/index.html
Normal file
File diff suppressed because it is too large
Load Diff
1
app/view/ru-RU/main.js
Normal file
1
app/view/ru-RU/main.js
Normal file
File diff suppressed because one or more lines are too long
632
app/view/ru-RU/setting.html
Normal file
632
app/view/ru-RU/setting.html
Normal file
|
@ -0,0 +1,632 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="ru-RU" style="overflow-y:scroll">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>Settings - TheDesk</title>
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = [];
|
||||||
|
_jipt.push(['project', 'thedesk']);
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<style>
|
||||||
|
input {
|
||||||
|
max-height: 3.84rem !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.pcr-result {
|
||||||
|
height: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container-after-titlebar {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
<script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" style="overflow-y:scroll" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script src="../../node_modules/json5/dist/index.min.js"></script>
|
||||||
|
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||||
|
<script type="text/javascript" src="setting.vue.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||||
|
<script>function renderMem() { return false; }</script>
|
||||||
|
|
||||||
|
<h4>Предпочтения</h4>
|
||||||
|
<ul class="collapsible" data-collapsible="accordion">
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">desktop_windows</i>Системные настройки
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Языки</h5>
|
||||||
|
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br><br>
|
||||||
|
<div style="display: flex;">
|
||||||
|
<div style="width: 22rem;" id="langsel">
|
||||||
|
<select id="langsel-sel"><option value="ja">日本語</option><option value="ja-KS">日本語(関西)</option><option value="en">English</option><option value="bg">български</option><option value="cs">Česky</option><option value="de">Deutsch</option><option value="es-AR">Español, argentina</option><option value="it-IT">italiano</option><option value="zh-CN">简体中文</option><option value="zh-TW">繁體中文(β)</option><option value="fr-FR">français(β)</option><option value="no-NO">norsk(β)</option><option value="pt-BR">Português, brasileiro(β)</option><option value="ru-RU">русский(β)</option><option value="es-ES">Español(β)</option><option value="ps">Crowdin translate system(beta)</option></select>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect" onclick="changeLang()">Изменить</button>
|
||||||
|
</div>
|
||||||
|
<h5>Импорт и экспорт предпочтений</h5>
|
||||||
|
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Экспорт</button>
|
||||||
|
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Импорт</button><br>
|
||||||
|
If you got a error when you choose the file, please paste the strings printed when you open the file and click import<br>
|
||||||
|
<input type="text" id="imp-exp" style="width: 22rem">
|
||||||
|
<div id="envView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||||
|
class="pointer">Проверка уведомлений</a><br></template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Изменить</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Шрифт</h5>
|
||||||
|
Select your favorite font to 'Select'(Windows/ macOS only)<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="font()">Выбрать</button><br>
|
||||||
|
<div id="fonts" class="hide" style="overflow-y:scroll; width:22rem; height:40rem;"></div>
|
||||||
|
<br>
|
||||||
|
<input type="text" style="width:11.5rem" id="font">
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="settings()">Сохранить</button>
|
||||||
|
<br>
|
||||||
|
<h5>Папка для сохранения</h5>
|
||||||
|
TheDesk использует это значение, когда он пытается сохранить фотографии или сделать скриншоты.<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="savefolder()">Изменить</button>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="pwa">
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">color_lens</i>Темы
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h4>Выбрать тему</h4>
|
||||||
|
<div style="width:22rem" id="sel-selector">
|
||||||
|
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||||
|
</div>
|
||||||
|
<h4>Редактировать и добавить пользовательские темы</h4>
|
||||||
|
<div style="width:22rem" id="edit-selector" data-add="Добавить новое">
|
||||||
|
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
|
||||||
|
<option value="add_new">Добавить новое</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<h5>Имя</h5>
|
||||||
|
<input type="text" style="width:22rem" id="custom_name" placeholder="Имя...">
|
||||||
|
<h5>Об этой теме</h5>
|
||||||
|
<div class="input-field"><textarea style="width:22rem" id="custom_desc" class="materialize-textarea"
|
||||||
|
placeholder="Об этой теме..."></textarea></div>
|
||||||
|
<h5>Цветная схема</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||||
|
checked="true" />
|
||||||
|
<span>Dark</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||||
|
value="light" />
|
||||||
|
<span>Light</span>
|
||||||
|
</label><br><br />
|
||||||
|
<button class="btn waves-effect" onclick="advanced()">Дополнительные параметры (6 дополнительных цветов)</button>
|
||||||
|
<span class="advanced hide"></span>
|
||||||
|
<div id="pickers">
|
||||||
|
<div>
|
||||||
|
<h5>Background</h5>Background color<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_0" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker0_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Text</h5>Цвет текста<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_1" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker1_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Subcolor</h5>Подцвет, имеет гармонию с вторичным цветом<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_2" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker2_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Accent</h5>Background of boosts<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_3" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker3_value">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal</h5>Background of modal window<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_4" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modal')">Background</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker4_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal Footer</h5>Background of modal window's footer<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_5" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modalFooter')">Background</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('modal','modalFooter')">Modal</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker5_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>3rd Color</h5>Backgroud of tag buttons, etc(near to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_6" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','third')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker6_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>4th Color</h5>Title bar(same scheme to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_7" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','forth')">Subcolor</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('third','forth')">3rd Color</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker7_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Bottom</h5>Фон нижней панели<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_8" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','bottom')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker8_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>2nd Accent</h5>Emphasized toot's background<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_9" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','emphasized')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker9_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Postbox</h5>Background of post-box and menu<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_10" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','postbox')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker10_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Active</h5>Background of 'active' elements<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_11" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','active')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker11_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected</h5>Background of selected with arrow keys<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_12" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker12_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected with shared</h5>Background of selected with arrow keys(boosted toots)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_13" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker13_value">
|
||||||
|
</div>
|
||||||
|
</div><br /><br />
|
||||||
|
<button class="btn-large waves-effect" onclick="customComp()">Изменить</button> <button
|
||||||
|
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">Delete</button><br><br>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_json" class="materialize-textarea"
|
||||||
|
placeholder="JSON style" readonly><br>
|
||||||
|
<h4>Импорт пользовательских тем</h4>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_import" class="materialize-textarea"
|
||||||
|
placeholder="JSON/JSON5 style">
|
||||||
|
<button class="btn waves-effect" onclick="customImp()">Импорт</button><br>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">reorder</i>Настройки хронологии
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="tlView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Изменить</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Пользовательский звук</h5>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span
|
||||||
|
id="c1-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span
|
||||||
|
id="c2-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span
|
||||||
|
id="c3-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span
|
||||||
|
id="c4-file"></span><br>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100(default:80)<br>
|
||||||
|
<p class="range-field"><span id="soundVolVal">80</span><br>
|
||||||
|
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">send</i>Настройки публикации
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="postView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<template
|
||||||
|
v-if="(!check.kirishima || (check.kirishima && kirishima) )&& (!check.quote || (check.quote && quoters))">
|
||||||
|
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||||
|
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||||
|
v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span></label>
|
||||||
|
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Изменить</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Easy inserter</h5>
|
||||||
|
You can insert any letters and emojis with only 3 keys<br>
|
||||||
|
Ctrl+Shift+1:<input type="text" style="width:11.5rem" id="oks-1">
|
||||||
|
<button onclick="oks(1)" class="btn waves-effect" style="width:7.7rem;">Сохранить</button><br><br>
|
||||||
|
Ctrl+Shift+2:<input type="text" style="width:11.5rem" id="oks-2">
|
||||||
|
<button onclick="oks(2)" class="btn waves-effect" style="width:7.7rem;">Сохранить</button><br><br>
|
||||||
|
Ctrl+Shift+3:<input type="text" style="width:11.5rem" id="oks-3">
|
||||||
|
<button onclick="oks(3)" class="btn waves-effect" style="width:7.7rem;">Сохранить</button><br><br>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<img src="../../img/aiscript.svg"
|
||||||
|
style="height: 1.5rem; margin-left: 0.4rem; margin-right: 0.4rem;">Plugins
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<a href="https://github.com/cutls/TheDesk/blob/master/plugin.md">Japanese docs of AiScript TheDesk plugins</a><br />
|
||||||
|
<textarea id="plugin" data-id="add_new" style="height: 20rem"></textarea>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="completePlugin()">Изменить</button>
|
||||||
|
<button class="btn waves-effect red disabled plugin_delete" style="width:7.7rem;"
|
||||||
|
onclick="deletePlugin()">Delete</button>
|
||||||
|
<h5>Plugin list</h5>
|
||||||
|
<div style="width:22rem" id="plugin-selector" data-add="Добавить новое">
|
||||||
|
<select id="plugin-edit-sel" class="custom-sel" onchange="pluginEdit()">
|
||||||
|
<option value="add_new">Добавить новое</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">bookmark</i>Mute & Emphasis Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Client Mute</h5>
|
||||||
|
<div id="mute-cli"></div>
|
||||||
|
<h5>Client Emphasis</h5>
|
||||||
|
Click client name on toots to toggle mute and emphasis.
|
||||||
|
<h5>Words Mute</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordmute" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:7.7rem;">Сохранить</button>
|
||||||
|
<h5>Words Emphasis</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordemp" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordempSave()" class="btn waves-effect" style="width:7.7rem;">Сохранить</button>
|
||||||
|
<h5>Users Emphasis</h5>
|
||||||
|
Set on users data modals.
|
||||||
|
<span class="emphasized"> Use this color to emphasis </span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="fab fa-spotify"></i>Spotify and NowPlaying Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Account Connection(Spotify)</h5>
|
||||||
|
TheDesk save your data on thedesk.top server.<br>
|
||||||
|
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
|
||||||
|
onclick="spotifyAuth()" class="btn waves-effect" style="width:7.7rem;">Сохранить</button></div>
|
||||||
|
<a onclick="spotifyConnect()" class="btn waves-effect nex"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-enable"><i
|
||||||
|
class="fab fa-spotify left"></i>Connect</a>
|
||||||
|
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-disable"><i
|
||||||
|
class="fab fa-spotify left"></i>Disconnect</a>
|
||||||
|
<h5>Account Connection(Last.fm)</h5>
|
||||||
|
User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.<br />
|
||||||
|
<input type="text" style="width:11.5rem" id="lastFmUser">
|
||||||
|
<button onclick="lastFmSet()" class="btn waves-effect" style="width:7.7rem;">Сохранить</button>
|
||||||
|
<h5>Edit a template</h5>
|
||||||
|
<br>
|
||||||
|
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||||
|
{url}</textarea><br>
|
||||||
|
Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify<br>
|
||||||
|
<span class="mac">>macOS:{song}:Song name/{album}:Album name/{artist}:Artist name/composer:{composer}/spampling rate:{hz}/bit rate:{bitRate}/genre:{genre}</span><br>
|
||||||
|
<button onclick="spotifySave()" class="btn waves-effect" style="width:7.7rem;">Сохранить</button>
|
||||||
|
<h5>Attach an Artwork of Spotify</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Да</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||||
|
value="no" />
|
||||||
|
<span>Нет</span>
|
||||||
|
</label>
|
||||||
|
<div class="mac">
|
||||||
|
<h5>If the song has no artwork, automatic complete it(macOS)</h5>
|
||||||
|
If you nowplaying an non-artwork song, get one which seems nice through API. If you do not like the completed artwork, you can right-click it to delete.<br />
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Да</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_no"
|
||||||
|
value="no" />
|
||||||
|
<span>Нет</span>
|
||||||
|
</label>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">hearing</i>TTS(text to speech) Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>BouyomiChan connect</h5>
|
||||||
|
Require: BouyomiChan WebSocket Plugin<a href="https://github.com/xztaityozx/BouyomiChan-WebSocket-Plugin"
|
||||||
|
target="_blank">GitHub</a><br>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Да</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_no" value="no" />
|
||||||
|
<span>Нет</span>
|
||||||
|
</label>
|
||||||
|
<h5>Speed</h5>
|
||||||
|
1-100(default:10)<br>
|
||||||
|
<p class="range-field"><span id="voicespeedVal">10</span><br>
|
||||||
|
<input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||||
|
onchange="document.getElementById('voicespeedVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Pitch</h5>
|
||||||
|
0-100(default:50)<br>
|
||||||
|
<p class="range-field"><span id="voicepitchVal">50</span><br>
|
||||||
|
<input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||||
|
onchange="document.getElementById('voicepitchVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100(default:100)<br>
|
||||||
|
<p class="range-field"><span id="voicevolVal">100</span><br>
|
||||||
|
<input type="range" id="voicevol" min="0" max="100" value="100"
|
||||||
|
onchange="document.getElementById('voicevolVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Test</h5>
|
||||||
|
<input type="text" style="width:27rem" id="voicetxt" value="TheDesk is an open-source Mastodon client for PC.">
|
||||||
|
<button class="btn waves-effect blue" style="width:11.5rem;" onclick="voicePlay()"
|
||||||
|
id="testplay">Play/Stop</button><br>
|
||||||
|
<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="voiceSettings()">Сохранить</button>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:15rem;"><i
|
||||||
|
class="material-icons left">undo</i>Назад</a>
|
||||||
|
<br>
|
||||||
|
<br>Keyboard shortcuts
|
||||||
|
<li>Ctrl+1-9:Jump to n(1-9)th column</li>
|
||||||
|
<li>N:Open toot box</li>
|
||||||
|
<li>X:Toggle toot box</li>
|
||||||
|
<li>Ctrl+Enter:Post</li>
|
||||||
|
<li>Ctrl+Enter+Shift:Post(secondary toot)</li>
|
||||||
|
<li>Alt+Enter:Secondary Toot Button</li>
|
||||||
|
<li>Ctrl+E:Make all notifications read</li>
|
||||||
|
<li>Ctrl+U:Select the top & left(No.1 column) toot</li>
|
||||||
|
<li>Esc:Hide toot box</li>
|
||||||
|
<li>F5:Super Reload</li>
|
||||||
|
<li>Ctrl+Shift+C:Clear toot box</li>
|
||||||
|
<li>Ctrl+Shift+S:Предпочтения</li>
|
||||||
|
<li>Ctrl+Shift+M:Account Manager</li>
|
||||||
|
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
|
||||||
|
<li>Ctrl+Shift+P:Show profile of selecting</li>
|
||||||
|
<li>←/→:Show next or previous image</li>
|
||||||
|
<li>Mousewheel:Zoom a image</li>
|
||||||
|
<div class="hide kirishima">
|
||||||
|
以下Markdownに対応したインスタンスのみ。
|
||||||
|
<br>
|
||||||
|
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||||
|
When a toot is selected:
|
||||||
|
<li>F:Favourite this toot</li>
|
||||||
|
<li>B:Boost this toot</li>
|
||||||
|
<li>R:Reply to this toot</li>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect red" style="width:100%; max-width:40rem;"
|
||||||
|
onclick="if(confirm('Delete all data. You cannot undo. Continue?')){ localStorage.clear(); location.href='index.html'; }"><i
|
||||||
|
class="material-icons left">delete</i>Reset(Danger)</button><br><br>
|
||||||
|
<button class="btn waves-effect indigo pwa" onclick="about()" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">info</i>О TheDesk</button>
|
||||||
|
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">web</i>Website</a>
|
||||||
|
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Support(Pixiv FANBOX)</a>
|
||||||
|
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Support(Patreon)</a>
|
||||||
|
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
|
||||||
|
style="width:100%; max-width:40rem; background-color: #f6c915"><i
|
||||||
|
class="material-icons left">trending_up</i>Support(Liberapay)</a>
|
||||||
|
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">list</i>Help/Docs</a>
|
||||||
|
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="fab fa-github left"></i>GitHub</a>
|
||||||
|
<a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><img src="../../img/desk_full.svg" class="left" width="25"
|
||||||
|
style="padding-top:5px;">Main author: Cutls@cutls.com</a>
|
||||||
|
<br>
|
||||||
|
TheDesk @ <a href="https://github.com/cutls/TheDesk/commits/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c">89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c</a> - <a
|
||||||
|
onclick="checkupd(); return localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||||
|
class="pointer pwa">Check update</a><br>
|
||||||
|
<br>
|
||||||
|
Kyash<br>
|
||||||
|
<img src="../../img/kyash.png" width="100"><br>
|
||||||
|
<a href="https://status.cutls.com/">
|
||||||
|
<img src="https://status.cutls.com/badge-service?site=thedesk.top">
|
||||||
|
</a><br>
|
||||||
|
<h5>OSS License</h5>
|
||||||
|
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fcutls%2FTheDesk/refs/branch/master/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c"
|
||||||
|
alt="FOSSA Status"><img
|
||||||
|
src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcutls%2FTheDesk.svg?type=small" /></a>
|
||||||
|
<br>
|
||||||
|
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||||
|
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
|
||||||
|
href="https://thedesk.top/priv.html">Privacy
|
||||||
|
Policy</a>
|
||||||
|
<br>
|
||||||
|
</span><br>
|
||||||
|
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||||
|
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/aiscript.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/plugin.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/speech.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/settings.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
756
app/view/ru-RU/setting.vue.js
Normal file
756
app/view/ru-RU/setting.vue.js
Normal file
|
@ -0,0 +1,756 @@
|
||||||
|
var yesno = [
|
||||||
|
{
|
||||||
|
text: 'Да',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Нет',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var sound = [
|
||||||
|
{
|
||||||
|
text: 'None',
|
||||||
|
value: 'none'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Default',
|
||||||
|
value: 'default'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 1',
|
||||||
|
value: 'c1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 2',
|
||||||
|
value: 'c2'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 3',
|
||||||
|
value: 'c3'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 4',
|
||||||
|
value: 'c4'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var envConstruction = [
|
||||||
|
{
|
||||||
|
id: 'popup',
|
||||||
|
storage: 'popup',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Всплывающие уведомления (на Windows)',
|
||||||
|
desc: 'Скрыть для установки "0"',
|
||||||
|
after: 'сек'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notf',
|
||||||
|
storage: 'nativenotf',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Native notification',
|
||||||
|
desc: 'Это не работает на Windows Portable.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'width',
|
||||||
|
storage: 'width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 300,
|
||||||
|
text: { after: 'px ~ ' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'maxWidth',
|
||||||
|
storage: 'max-width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 600,
|
||||||
|
text: { after: 'px' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Width of columns',
|
||||||
|
desc: 'Scroll bar will be shown when your window size is more than ammounts of columns.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'margin',
|
||||||
|
storage: 'margin',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Margin between timelines',
|
||||||
|
desc: '',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'fixwidth',
|
||||||
|
storage: 'fixwidth',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 300,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Минимальная ширина браузера TweetDeck',
|
||||||
|
desc: '',
|
||||||
|
after: 'px above'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'size',
|
||||||
|
storage: 'size',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 50,
|
||||||
|
setValue: 13,
|
||||||
|
text: {
|
||||||
|
head: 'Размер шрифта',
|
||||||
|
desc: '<span style="font-size:13px">13px(абсолютное значение)</span>',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ha',
|
||||||
|
storage: 'ha',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: false,
|
||||||
|
text: {
|
||||||
|
head: 'Отключить аппаратное ускорение',
|
||||||
|
desc: 'Автоперезапуск',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Да',
|
||||||
|
value: 'true'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Нет',
|
||||||
|
value: 'false'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ua',
|
||||||
|
storage: 'ua_setting',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: '',
|
||||||
|
width: 200,
|
||||||
|
text: {
|
||||||
|
head: 'User agent',
|
||||||
|
desc: 'Перезапустить, когда изменилось'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'srcUrl',
|
||||||
|
storage: 'srcUrl',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 200,
|
||||||
|
setValue: 'https://google.com/search?q={q}',
|
||||||
|
text: {
|
||||||
|
head: 'Search engine',
|
||||||
|
desc: '{q} will be replaced to query.',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'download',
|
||||||
|
storage: 'dl-win',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Versioning(o Windows downloader)',
|
||||||
|
desc: 'ex: TheDesk-1.0.0-setup.exe',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var tlConstruction = [
|
||||||
|
{
|
||||||
|
id: 'time',
|
||||||
|
storage: 'datetype',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'absolute',
|
||||||
|
text: {
|
||||||
|
head: 'Формат времени',
|
||||||
|
desc: 'Относительный формат:"1 минут назад","3 дня назад"<br>Absolute format:"23:25:21","2017/12/30 23:59:00"<br>Mixed format:toots posted today are relative-format, others are absolute-format.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Relative',
|
||||||
|
value: 'relative'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Absolute',
|
||||||
|
value: 'absolute'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Both relative and absolute',
|
||||||
|
value: 'double'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Mixed',
|
||||||
|
value: 'medium'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ul',
|
||||||
|
storage: 'locale',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Server\s unique locale',
|
||||||
|
desc: 'This value is available on some Japanese servers',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'nsfw',
|
||||||
|
storage: 'nsfw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide Mark sensitive pictures',
|
||||||
|
desc: 'Strong blur effect',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw',
|
||||||
|
storage: 'cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide CW contents',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'rp',
|
||||||
|
storage: 'replyct',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'hidden',
|
||||||
|
text: {
|
||||||
|
head: 'Reply counter style',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Show 1+ if the replies are more than 1.',
|
||||||
|
value: 'hidden'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Show full count(1,2...)',
|
||||||
|
value: 'all'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'gif',
|
||||||
|
storage: 'gif',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animated GIF images animation',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'tag',
|
||||||
|
storage: 'tag-range',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'local',
|
||||||
|
text: {
|
||||||
|
head: 'Tag TL Search',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Use federated network',
|
||||||
|
value: 'all'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Use local network',
|
||||||
|
value: 'local'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'via',
|
||||||
|
storage: 'viashow',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Show via',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'mov',
|
||||||
|
storage: 'mouseover',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Hide action buttons without mouseover',
|
||||||
|
desc: 'You may feel \mouseover\ is unconfortable:(',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Mouseover to show',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Нажмите, чтобы показать',
|
||||||
|
value: 'click'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Нет',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notfm',
|
||||||
|
storage: 'setasread',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Show Notification marker, red colored bell and counter(if you show a notification column.)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'sentence',
|
||||||
|
storage: 'sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'lines above или' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'letters',
|
||||||
|
storage: 'letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'letters above' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Auto folding',
|
||||||
|
desc: 'TheDesk does not collapse totes of 5 characters or less. Also, when collapsing, newlines are not shown. TheDesk count only newlines as the number of lines.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img-height',
|
||||||
|
storage: 'img-height',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 80,
|
||||||
|
setValue: 200,
|
||||||
|
text: {
|
||||||
|
head: 'Height of images',
|
||||||
|
desc: 'Option:Set "full" to uncrop.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ticker',
|
||||||
|
storage: 'ticker_ok',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Enable OpenSticker',
|
||||||
|
desc: 'Show the instance name and favicon of tooters <a href="https://opensticker.0px.io">About OpenSticker</a>',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'anime',
|
||||||
|
storage: 'animation',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animation of timelines',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'markers',
|
||||||
|
storage: 'markers',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Markers(mark as read) on HTL and notifications',
|
||||||
|
desc: 'Mastodon 3.0~. Shared on WebUI and third-party supported clients.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'remote_img',
|
||||||
|
storage: 'remote_img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Get images from the remote server',
|
||||||
|
desc: 'All previews are got from your loginned cache server.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'bkm',
|
||||||
|
storage: 'bookmark',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Show a bookmarking toot button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'scroll',
|
||||||
|
storage: 'scroll',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normalScrollBar',
|
||||||
|
text: {
|
||||||
|
head: 'Height of the scroll bar',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Thick',
|
||||||
|
value: 'thickScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Normal',
|
||||||
|
value: 'normalScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Thin',
|
||||||
|
value: 'thinScrollBar'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'replySound',
|
||||||
|
storage: 'replySound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Звук (Ответить)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'favSound',
|
||||||
|
storage: 'favSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Звук(Fav)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'btSound',
|
||||||
|
storage: 'btSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Звук(Boost)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'followSound',
|
||||||
|
storage: 'followSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Звук(Подписаться)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var postConstruction = [
|
||||||
|
{
|
||||||
|
id: 'cw-text',
|
||||||
|
storage: 'cw-text',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 150,
|
||||||
|
setValue: '',
|
||||||
|
text: {
|
||||||
|
head: 'Default warining text',
|
||||||
|
desc: '',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'cw_sentence',
|
||||||
|
storage: 'cw_sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'lines above или' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw_letters',
|
||||||
|
storage: 'cw_letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'letters above' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Alert before posting a long toot.',
|
||||||
|
desc: 'Show dialog whether you make too-long text hidden.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cws',
|
||||||
|
storage: 'always-cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Always CW set',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw-continue',
|
||||||
|
storage: 'cw-continue',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: '@@cwContinue@@',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'vis',
|
||||||
|
storage: 'vis',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Default visibility',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Public',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Unlisted',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Private',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direct',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Memory(memorized as each server)',
|
||||||
|
value: 'memory'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Default of your visibility(Set on preferences of Mastodon server)',
|
||||||
|
value: 'useapi'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img',
|
||||||
|
storage: 'img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no-act',
|
||||||
|
text: {
|
||||||
|
head: 'Posting images preferences',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Insert media URL',
|
||||||
|
value: 'url'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Insert nothig',
|
||||||
|
value: 'no-act'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'box',
|
||||||
|
storage: 'box',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Action of posting-box',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Folding',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Open after posting',
|
||||||
|
value: 'no'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Absolutely open',
|
||||||
|
value: 'absolute'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'quote',
|
||||||
|
storage: 'quote',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'nothing',
|
||||||
|
text: {
|
||||||
|
head: 'Quote format',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Only URL',
|
||||||
|
value: 'simple'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL and acct(mention to the user)',
|
||||||
|
value: 'mention'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL, text and acct(mention to the user)',
|
||||||
|
value: 'full'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'API(only some instances)',
|
||||||
|
value: 'apiQuote',
|
||||||
|
quote: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Disabled(Hide buttons on TLs)',
|
||||||
|
value: 'nothing'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'main',
|
||||||
|
storage: 'mainuse',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'remain',
|
||||||
|
text: {
|
||||||
|
head: 'Default accounts of actions',
|
||||||
|
desc: 'Main account can be set on Account Manager.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Account you used recently',
|
||||||
|
value: 'remain'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Main account',
|
||||||
|
value: 'main'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'sec',
|
||||||
|
storage: 'sec',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Secondary Toot Button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Hidden',
|
||||||
|
value: 'nothing'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Public',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Unlisted',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Private',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direct',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Local Only',
|
||||||
|
value: 'local',
|
||||||
|
kirishima: true,
|
||||||
|
kirishimaText: '非対応インスタンスでは「未収載」になります。'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'zero',
|
||||||
|
storage: 'emoji-zero-width',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normal',
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Zero-width space when inserting emojis',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'uploadCrop',
|
||||||
|
storage: 'uploadCrop',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 100,
|
||||||
|
setValue: '0',
|
||||||
|
text: {
|
||||||
|
head: 'Auto scale to fit',
|
||||||
|
desc: 'Max long-side px. Uploaded images are converted to JPEG(from JPEG) or PNG(from others). Set 0 and the images will not be resized. Notice: if you post an animated picture like GIF, it will be converted static one.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
302
app/view/ru-RU/update.html
Normal file
302
app/view/ru-RU/update.html
Normal file
|
@ -0,0 +1,302 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ru-RU">
|
||||||
|
<head>
|
||||||
|
<title>Update - TheDesk</title>
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Open Sans';
|
||||||
|
-webkit-app-region: drag;
|
||||||
|
cursor: move;
|
||||||
|
padding: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#start {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100vw;
|
||||||
|
height: calc(100vh - 2.5rem);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#checkbox {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a,
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
label,
|
||||||
|
i {
|
||||||
|
-webkit-app-region: no-drag;
|
||||||
|
}
|
||||||
|
|
||||||
|
#updskip {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100px;
|
||||||
|
border: 1px solid;
|
||||||
|
margin-left: 5px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border: 1px solid #c26363;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #c26363;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn:hover {
|
||||||
|
background-color: #c26363;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#prog {
|
||||||
|
font-size: 200%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||||
|
<!--a href="update.html">Reload</a-->
|
||||||
|
<div id="start" style="filter: brightness(100%)">
|
||||||
|
<div id="box" class="show">
|
||||||
|
<h2>TheDesk</h2>
|
||||||
|
<p>Get latest TheDesk</p>
|
||||||
|
<span id="now"></span>→<b id="ver"></b><br />
|
||||||
|
<a href="" id="github" class="btn waves-effect grey darken-1"><i class="fab fa-github left"></i>What is new?</a><br />
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left: 15px;">Installer(Recommended)</button>
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left: 15px;">Portable ver.</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left: 15px;">zip</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxdeb')" style="margin-left: 15px;">deb(Recommended on buntu, Debian)</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxsnap')" style="margin-left: 15px;">snap</button>
|
||||||
|
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left: 15px;">Start</button>
|
||||||
|
<br />
|
||||||
|
Some problems?<br />Please download on <a href='https://thedesk.top'>Oficial HP</a>.
|
||||||
|
</div>
|
||||||
|
<div id="skipper" class="hide">
|
||||||
|
<h4>Skip this update</h4>
|
||||||
|
You may lose a cool experience!<br />
|
||||||
|
<div id="updskip">
|
||||||
|
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>Hidden until next TL loading</div>
|
||||||
|
</a>
|
||||||
|
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>Hidden until next version</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<a class="pointer waves-effect" onclick="skipper();" style="margin-top: 5px;">Continue updating</a>
|
||||||
|
</div>
|
||||||
|
<div id="dlnow" class="hide" style="width: 70%;">
|
||||||
|
<h4>Downloading...</h4>
|
||||||
|
<h4 id="prog"></h4>
|
||||||
|
<div class="progress">
|
||||||
|
<div class="determinate" style="width: 0%;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script>
|
||||||
|
function skipper() {
|
||||||
|
$('#dlnow').addClass('hide')
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
if ($('#box').hasClass('hide') && $('#skipper').hasClass('hide')) {
|
||||||
|
$('#skipper').removeClass('hide')
|
||||||
|
$('#skipper').addClass('show')
|
||||||
|
} else {
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('show')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
verck()
|
||||||
|
function update(sel) {
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('show')
|
||||||
|
$('#prog').text('')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
if (sel == 'install') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'portable') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64p_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32p_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'linux') {
|
||||||
|
var url = json['linuxx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'thedesk-' + json.unique_linux + '.zip'
|
||||||
|
} else {
|
||||||
|
var file = 'thedesk.zip'
|
||||||
|
}
|
||||||
|
var filesize = json.linuxx64_size
|
||||||
|
} else if (sel == 'linuxdeb') {
|
||||||
|
var url = json['linuxdeb']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.deb'
|
||||||
|
var filesize = json.linuxdeb_size
|
||||||
|
} else if (sel == 'linuxsnap') {
|
||||||
|
var url = json['linuxsnap']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.snap'
|
||||||
|
var filesize = json.linuxsnap_size
|
||||||
|
} else if (sel == 'mac') {
|
||||||
|
var url = json['mac']
|
||||||
|
var file = 'TheDesk-' + json.unique_mac + '.dmg'
|
||||||
|
var filesize = json.mac_size
|
||||||
|
}
|
||||||
|
postMessage(['downloadButton', [url, file, filesize]], '*')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function quit() {
|
||||||
|
postMessage(['sendSinmpleIpc', 'quit'], '*')
|
||||||
|
}
|
||||||
|
function updateProg(arg) {
|
||||||
|
$('.determinate').css('width', arg[0].percent * 100 + '%')
|
||||||
|
$('#prog').html(`${Math.floor(arg[0].percent * 100)}%<br />(${Math.floor(arg[0].percent*arg[1]/1024/1024*10)/10} MB / ${Math.floor(arg[1]/1024/1024*10)/10} MB)`)
|
||||||
|
|
||||||
|
}
|
||||||
|
function updateMess(arg) {
|
||||||
|
console.log(arg)
|
||||||
|
$('#prog').text(arg)
|
||||||
|
}
|
||||||
|
function verck() {
|
||||||
|
var platform = localStorage.getItem('platform')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('.windows').removeClass('hide')
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('.linux').removeClass('hide')
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('.mac').removeClass('hide')
|
||||||
|
}
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
console.log(json)
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('#ver').text(json.desk)
|
||||||
|
localStorage.setItem('next-ver', json.desk)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('#ver').text(json.desk_linux)
|
||||||
|
localStorage.setItem('next-ver', json.desk_linux)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_linux
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('#ver').text(json.desk_mac)
|
||||||
|
localStorage.setItem('next-ver', json.desk_mac)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_mac
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#github').attr('href', url)
|
||||||
|
|
||||||
|
$('#now').text(localStorage.getItem('ver'))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function nextv() {
|
||||||
|
localStorage.setItem('new-ver-skip', 'true')
|
||||||
|
window.close()
|
||||||
|
}
|
||||||
|
function enc(ver) {
|
||||||
|
var ver = ver.replace(/\s/g, '')
|
||||||
|
var ver = ver.replace(/\(/g, '-')
|
||||||
|
var ver = ver.replace(/\)/g, '')
|
||||||
|
var ver = ver.replace(/\[/g, '_')
|
||||||
|
var ver = ver.replace(/\]/g, '')
|
||||||
|
return ver
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
154
app/view/zh-CN/acct.html
Normal file
154
app/view/zh-CN/acct.html
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<title>Account Manager - TheDesk</title>
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link
|
||||||
|
href="../../node_modules/materialize-css/dist/css/materialize.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/tl.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link
|
||||||
|
href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/acct.css" rel="stylesheet" type="text/css" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<script>var pwa = false;</script> <script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/materialize-css/dist/js/materialize.js"
|
||||||
|
></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"
|
||||||
|
></script>
|
||||||
|
<script>
|
||||||
|
var misskeytoken = false
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||||
|
<div class="hide-first">
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"
|
||||||
|
>返回</a
|
||||||
|
><br />
|
||||||
|
<h5>已登录帐户</h5>
|
||||||
|
<div id="acct-list"></div>
|
||||||
|
<div class="divider"></div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-second">
|
||||||
|
<a href="setting.html">Having the exported file of TheDesk, click here to jump setting page</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>添加一个帐户</h5>
|
||||||
|
<br />
|
||||||
|
<div id="add">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s8">
|
||||||
|
Fill the instance domain (like mastodon.social)<br />
|
||||||
|
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp" />
|
||||||
|
<div id="ins-suggest"></div>
|
||||||
|
<button class="btn waves-effect" onclick="instance()">Login</button><br />
|
||||||
|
<div class="pwa">
|
||||||
|
Windows以外的运行环境,或需要登录Pleroma,请尝试勾选下面的复选框<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="linux" />
|
||||||
|
<span>使用授权码登录</span>
|
||||||
|
</label>
|
||||||
|
<br />
|
||||||
|
</div>
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="misskey" />
|
||||||
|
<span>使用Misskey登录</span> </label
|
||||||
|
><br />
|
||||||
|
</div>
|
||||||
|
<div class="col s4 scr" aria-hidden="true">
|
||||||
|
<span style="font-family:Open Sans;">Supports</span>
|
||||||
|
<div id="support" class="collection transparent"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="auth" style="display:none">
|
||||||
|
在这里粘贴授权码后即可关闭浏览器<br />
|
||||||
|
<input type="text" id="code" placeholder="授权码" required />
|
||||||
|
<button class="btn waves-effect" onclick="code()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup()" class="pointer">Use access token to login(click after fill not code but access-token in box: Advanced)</a>
|
||||||
|
<div id="compt" style="display:none" class="scr">
|
||||||
|
<h5>ログイン前に必ずご確認ください</h5>
|
||||||
|
<span id="compt-instance"></span>はバージョンが<span id="compt-ver"></span
|
||||||
|
>のため以下の機能がご利用いただけません。
|
||||||
|
<span id="compt-warn" style="display:none"
|
||||||
|
>また、このインスタンスはMastodonではなくそのAPI上の互換実装であり、TheDeskでは利用を想定していないため非保証となります。</span
|
||||||
|
>
|
||||||
|
<ul id="compt-list"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="misskeylogin" style="display:none">
|
||||||
|
<h5>AppSecret</h5>
|
||||||
|
阅读 <a href="https://thedesk.top/how-to-misskey-login.html">文档(ja)</a> 了解如何使用Misskey登录.<br />
|
||||||
|
<input type="hidden" id="misskey-url" />
|
||||||
|
<input type="text" id="misskey-key" placeholder="授权码" required />
|
||||||
|
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup('misskey')" class="pointer">Use access token to login(click after fill not code but access-token in box: Advanced)</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-first">
|
||||||
|
<h5>主帐户</h5>
|
||||||
|
<div class="input-field" style="width:300px">
|
||||||
|
<span data-trans="your_acct">选择一个帐户</span>
|
||||||
|
<br />
|
||||||
|
<select
|
||||||
|
id="main-acct-sel"
|
||||||
|
class="acct-sel"
|
||||||
|
style="color:black"
|
||||||
|
onchange="mainacct()"
|
||||||
|
></select>
|
||||||
|
<label></label>
|
||||||
|
</div>
|
||||||
|
<ul id="domain-list" class="collection transparent"></ul>
|
||||||
|
<div id="instance-data">
|
||||||
|
Some instance data by
|
||||||
|
<a href="https://instances.social" target="_blank">instances.social API</a><br />
|
||||||
|
<h5 id="ins-title"></h5>
|
||||||
|
Administered by:<a id="ins-admin"></a><br />
|
||||||
|
<span id="ins-desc"></span><br />
|
||||||
|
<img src="../../img/loading.svg" id="ins-prof" width="200" /><br />
|
||||||
|
<br />
|
||||||
|
域名:<span id="ins-name"></span><br />
|
||||||
|
联接实例统计:<span id="ins-connect"></span><br />
|
||||||
|
嘟嘟统计:<span id="ins-toot"></span><br />
|
||||||
|
用户统计:<span id="ins-user"></span>用户统计<br />
|
||||||
|
连通率:<span id="ins-per"></span>%<br />
|
||||||
|
长毛象版本:<span id="ins-ver"></span>@<span id="ins-upd"></span><br />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/sha256.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
||||||
|
<script>$('body').addClass(localStorage.getItem('platform'))</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
1287
app/view/zh-CN/index.html
Normal file
1287
app/view/zh-CN/index.html
Normal file
File diff suppressed because it is too large
Load Diff
1
app/view/zh-CN/main.js
Normal file
1
app/view/zh-CN/main.js
Normal file
File diff suppressed because one or more lines are too long
632
app/view/zh-CN/setting.html
Normal file
632
app/view/zh-CN/setting.html
Normal file
|
@ -0,0 +1,632 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN" style="overflow-y:scroll">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>Settings - TheDesk</title>
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = [];
|
||||||
|
_jipt.push(['project', 'thedesk']);
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<style>
|
||||||
|
input {
|
||||||
|
max-height: 3.84rem !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.pcr-result {
|
||||||
|
height: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container-after-titlebar {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
<script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" style="overflow-y:scroll" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script src="../../node_modules/json5/dist/index.min.js"></script>
|
||||||
|
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||||
|
<script type="text/javascript" src="setting.vue.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||||
|
<script>function renderMem() { return false; }</script>
|
||||||
|
|
||||||
|
<h4>Preferences</h4>
|
||||||
|
<ul class="collapsible" data-collapsible="accordion">
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">desktop_windows</i>System Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Languages</h5>
|
||||||
|
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br><br>
|
||||||
|
<div style="display: flex;">
|
||||||
|
<div style="width: 22rem;" id="langsel">
|
||||||
|
<select id="langsel-sel"><option value="ja">日本語</option><option value="ja-KS">日本語(関西)</option><option value="en">English</option><option value="bg">български</option><option value="cs">Česky</option><option value="de">Deutsch</option><option value="es-AR">Español, argentina</option><option value="it-IT">italiano</option><option value="zh-CN">简体中文</option><option value="zh-TW">繁體中文(β)</option><option value="fr-FR">français(β)</option><option value="no-NO">norsk(β)</option><option value="pt-BR">Português, brasileiro(β)</option><option value="ru-RU">русский(β)</option><option value="es-ES">Español(β)</option><option value="ps">Crowdin translate system(beta)</option></select>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect" onclick="changeLang()">Change</button>
|
||||||
|
</div>
|
||||||
|
<h5>Import and export of preferences</h5>
|
||||||
|
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Export</button>
|
||||||
|
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Import</button><br>
|
||||||
|
If you got a error when you choose the file, please paste the strings printed when you open the file and click import<br>
|
||||||
|
<input type="text" id="imp-exp" style="width: 22rem">
|
||||||
|
<div id="envView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||||
|
class="pointer">Notification test</a><br></template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Change</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Font</h5>
|
||||||
|
Select your favorite font to 'Select'<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="font()">Select</button><br>
|
||||||
|
<div id="fonts" class="hide" style="overflow-y:scroll; width:22rem; height:40rem;"></div>
|
||||||
|
<br>
|
||||||
|
<input type="text" style="width:11.5rem" id="font">
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="settings()">Save</button>
|
||||||
|
<br>
|
||||||
|
<h5>Folder to save</h5>
|
||||||
|
TheDesk uses this value when it try to save pictures or take screenshots.<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="savefolder()">Change</button>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="pwa">
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">color_lens</i>Themes
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h4>Select theme</h4>
|
||||||
|
<div style="width:22rem" id="sel-selector">
|
||||||
|
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||||
|
</div>
|
||||||
|
<h4>Edit and add themes</h4>
|
||||||
|
<div style="width:22rem" id="edit-selector" data-add="Add new">
|
||||||
|
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
|
||||||
|
<option value="add_new">Add new</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<h5>Name</h5>
|
||||||
|
<input type="text" style="width:22rem" id="custom_name" placeholder="Name...">
|
||||||
|
<h5>About this theme</h5>
|
||||||
|
<div class="input-field"><textarea style="width:22rem" id="custom_desc" class="materialize-textarea"
|
||||||
|
placeholder="About this theme..."></textarea></div>
|
||||||
|
<h5>Color scheme</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||||
|
checked="true" />
|
||||||
|
<span>Dark</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||||
|
value="light" />
|
||||||
|
<span>Light</span>
|
||||||
|
</label><br><br />
|
||||||
|
<button class="btn waves-effect" onclick="advanced()">Advanced options</button>
|
||||||
|
<span class="advanced hide"></span>
|
||||||
|
<div id="pickers">
|
||||||
|
<div>
|
||||||
|
<h5>Background</h5>Background color<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_0" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker0_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Text</h5>Text color<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_1" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker1_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Subcolor</h5>Distinguishable from background<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_2" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker2_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Accent</h5>Background of boosts<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_3" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker3_value">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal</h5>Background of modal window<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_4" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modal')">Background</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker4_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal Footer</h5>Background of modal window's footer<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_5" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modalFooter')">Background</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('modal','modalFooter')">Modal</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker5_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>3rd Color</h5>Backgroud of tag buttons, etc(near to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_6" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','third')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker6_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>4th Color</h5>Title bar(same scheme to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_7" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','forth')">Subcolor</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('third','forth')">3rd Color</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker7_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Bottom</h5>Background of menu-bar at bottom of window<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_8" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','bottom')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker8_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>2nd Accent</h5>Emphasized toot's background<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_9" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','emphasized')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker9_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Postbox</h5>Background of post-box and menu<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_10" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','postbox')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker10_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Active</h5>Background of 'active' elements<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_11" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','active')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker11_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected</h5>Background of selected with arrow keys<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_12" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker12_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected with shared</h5>Background of selected with arrow keys(boosted toots)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_13" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker13_value">
|
||||||
|
</div>
|
||||||
|
</div><br /><br />
|
||||||
|
<button class="btn-large waves-effect" onclick="customComp()">Change</button> <button
|
||||||
|
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">删除</button><br><br>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_json" class="materialize-textarea"
|
||||||
|
placeholder="JSON style" readonly><br>
|
||||||
|
<h4>Import of custom themes</h4>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_import" class="materialize-textarea"
|
||||||
|
placeholder="JSON/JSON5 style">
|
||||||
|
<button class="btn waves-effect" onclick="customImp()">Import</button><br>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">reorder</i>Timeline Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="tlView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Change</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Custom sound</h5>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span
|
||||||
|
id="c1-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span
|
||||||
|
id="c2-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span
|
||||||
|
id="c3-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span
|
||||||
|
id="c4-file"></span><br>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100(default:80)<br>
|
||||||
|
<p class="range-field"><span id="soundVolVal">80</span><br>
|
||||||
|
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">send</i>Posting Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="postView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<template
|
||||||
|
v-if="(!check.kirishima || (check.kirishima && kirishima) )&& (!check.quote || (check.quote && quoters))">
|
||||||
|
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||||
|
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||||
|
v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span></label>
|
||||||
|
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Change</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Easy inserter</h5>
|
||||||
|
You can insert any letters and emojis with only 3 keys<br>
|
||||||
|
Ctrl+Shift+1:<input type="text" style="width:11.5rem" id="oks-1">
|
||||||
|
<button onclick="oks(1)" class="btn waves-effect" style="width:7.7rem;">Save</button><br><br>
|
||||||
|
Ctrl+Shift+2:<input type="text" style="width:11.5rem" id="oks-2">
|
||||||
|
<button onclick="oks(2)" class="btn waves-effect" style="width:7.7rem;">Save</button><br><br>
|
||||||
|
Ctrl+Shift+3:<input type="text" style="width:11.5rem" id="oks-3">
|
||||||
|
<button onclick="oks(3)" class="btn waves-effect" style="width:7.7rem;">Save</button><br><br>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<img src="../../img/aiscript.svg"
|
||||||
|
style="height: 1.5rem; margin-left: 0.4rem; margin-right: 0.4rem;">Plugins
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<a href="https://github.com/cutls/TheDesk/blob/master/plugin.md">Japanese docs of AiScript TheDesk plugins</a><br />
|
||||||
|
<textarea id="plugin" data-id="add_new" style="height: 20rem"></textarea>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="completePlugin()">Change</button>
|
||||||
|
<button class="btn waves-effect red disabled plugin_delete" style="width:7.7rem;"
|
||||||
|
onclick="deletePlugin()">删除</button>
|
||||||
|
<h5>Plugin list</h5>
|
||||||
|
<div style="width:22rem" id="plugin-selector" data-add="Add new">
|
||||||
|
<select id="plugin-edit-sel" class="custom-sel" onchange="pluginEdit()">
|
||||||
|
<option value="add_new">Add new</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">bookmark</i>Mute & Emphasis Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Client Mute</h5>
|
||||||
|
<div id="mute-cli"></div>
|
||||||
|
<h5>Client Emphasis</h5>
|
||||||
|
Click client name on toots to toggle mute and emphasis.
|
||||||
|
<h5>Words Mute</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordmute" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:7.7rem;">Save</button>
|
||||||
|
<h5>Words Emphasis</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordemp" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordempSave()" class="btn waves-effect" style="width:7.7rem;">Save</button>
|
||||||
|
<h5>Users Emphasis</h5>
|
||||||
|
Set on users data modals.
|
||||||
|
<span class="emphasized"> Use this color to emphasis </span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="fab fa-spotify"></i>Spotify and NowPlaying Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Account Connection(Spotify)</h5>
|
||||||
|
TheDesk save your data on thedesk.top server.<br>
|
||||||
|
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
|
||||||
|
onclick="spotifyAuth()" class="btn waves-effect" style="width:7.7rem;">Save</button></div>
|
||||||
|
<a onclick="spotifyConnect()" class="btn waves-effect nex"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-enable"><i
|
||||||
|
class="fab fa-spotify left"></i>Connect</a>
|
||||||
|
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-disable"><i
|
||||||
|
class="fab fa-spotify left"></i>Disconnect</a>
|
||||||
|
<h5>Account Connection(Last.fm)</h5>
|
||||||
|
User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.<br />
|
||||||
|
<input type="text" style="width:11.5rem" id="lastFmUser">
|
||||||
|
<button onclick="lastFmSet()" class="btn waves-effect" style="width:7.7rem;">Save</button>
|
||||||
|
<h5>Edit a template</h5>
|
||||||
|
<br>
|
||||||
|
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||||
|
{url}</textarea><br>
|
||||||
|
Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify<br>
|
||||||
|
<span class="mac">>macOS:{song}:Song name/{album}:Album name/{artist}:Artist name/composer:{composer}/spampling rate:{hz}/bit rate:{bitRate}/genre:{genre}</span><br>
|
||||||
|
<button onclick="spotifySave()" class="btn waves-effect" style="width:7.7rem;">Save</button>
|
||||||
|
<h5>Attach an Artwork of Spotify</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Yes</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||||
|
value="no" />
|
||||||
|
<span>No</span>
|
||||||
|
</label>
|
||||||
|
<div class="mac">
|
||||||
|
<h5>If the song has no artwork, automatic complete it(macOS)</h5>
|
||||||
|
If you nowplaying an non-artwork song, get one which seems nice through API. If you do not like the completed artwork, you can right-click it to delete.<br />
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Yes</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_no"
|
||||||
|
value="no" />
|
||||||
|
<span>No</span>
|
||||||
|
</label>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">hearing</i>TTS(text to speech) Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>BouyomiChan connect</h5>
|
||||||
|
Require: BouyomiChan WebSocket Plugin<a href="https://github.com/xztaityozx/BouyomiChan-WebSocket-Plugin"
|
||||||
|
target="_blank">GitHub</a><br>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>Yes</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_no" value="no" />
|
||||||
|
<span>No</span>
|
||||||
|
</label>
|
||||||
|
<h5>Speed</h5>
|
||||||
|
1-100(default:10)<br>
|
||||||
|
<p class="range-field"><span id="voicespeedVal">10</span><br>
|
||||||
|
<input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||||
|
onchange="document.getElementById('voicespeedVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Pitch</h5>
|
||||||
|
0-100(default:50)<br>
|
||||||
|
<p class="range-field"><span id="voicepitchVal">50</span><br>
|
||||||
|
<input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||||
|
onchange="document.getElementById('voicepitchVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100(default:100)<br>
|
||||||
|
<p class="range-field"><span id="voicevolVal">100</span><br>
|
||||||
|
<input type="range" id="voicevol" min="0" max="100" value="100"
|
||||||
|
onchange="document.getElementById('voicevolVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Test</h5>
|
||||||
|
<input type="text" style="width:27rem" id="voicetxt" value="TheDesk is an open-source Mastodon client for PC.">
|
||||||
|
<button class="btn waves-effect blue" style="width:11.5rem;" onclick="voicePlay()"
|
||||||
|
id="testplay">Play/Stop</button><br>
|
||||||
|
<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="voiceSettings()">Save</button>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:15rem;"><i
|
||||||
|
class="material-icons left">undo</i>Back</a>
|
||||||
|
<br>
|
||||||
|
<br>Keyboard shortcuts
|
||||||
|
<li>Ctrl+1-9:Jump to n(1-9)th column</li>
|
||||||
|
<li>N:Open toot box</li>
|
||||||
|
<li>X:Toggle toot box</li>
|
||||||
|
<li>Ctrl+Enter:Post</li>
|
||||||
|
<li>Ctrl+Enter+Shift:Post(secondary toot)</li>
|
||||||
|
<li>Alt+Enter:Secondary Toot Button</li>
|
||||||
|
<li>Ctrl+E:Make all notifications read</li>
|
||||||
|
<li>Ctrl+U:Select the top & left(No.1 column) toot</li>
|
||||||
|
<li>Esc:Hide toot box</li>
|
||||||
|
<li>F5:Super Reload</li>
|
||||||
|
<li>Ctrl+Shift+C:Clear toot box</li>
|
||||||
|
<li>Ctrl+Shift+S:Preferences</li>
|
||||||
|
<li>Ctrl+Shift+M:Account Manager</li>
|
||||||
|
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
|
||||||
|
<li>Ctrl+Shift+P:Show profile of selecting</li>
|
||||||
|
<li>←/→:Show next or previous image</li>
|
||||||
|
<li>Mousewheel:Zoom a image</li>
|
||||||
|
<div class="hide kirishima">
|
||||||
|
以下Markdownに対応したインスタンスのみ。
|
||||||
|
<br>
|
||||||
|
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||||
|
When a toot is selected:
|
||||||
|
<li>F:Favourite this toot</li>
|
||||||
|
<li>B:Boost this toot</li>
|
||||||
|
<li>R:Reply to this toot</li>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect red" style="width:100%; max-width:40rem;"
|
||||||
|
onclick="if(confirm('Delete all data. You cannot undo. Continue?')){ localStorage.clear(); location.href='index.html'; }"><i
|
||||||
|
class="material-icons left">delete</i>Reset(Danger)</button><br><br>
|
||||||
|
<button class="btn waves-effect indigo pwa" onclick="about()" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">info</i>About TheDesk</button>
|
||||||
|
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">web</i>Website</a>
|
||||||
|
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Support(Pixiv FANBOX)</a>
|
||||||
|
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Support(Patreon)</a>
|
||||||
|
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
|
||||||
|
style="width:100%; max-width:40rem; background-color: #f6c915"><i
|
||||||
|
class="material-icons left">trending_up</i>Support(Liberapay)</a>
|
||||||
|
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">list</i>Help/Docs</a>
|
||||||
|
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="fab fa-github left"></i>GitHub</a>
|
||||||
|
<a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><img src="../../img/desk_full.svg" class="left" width="25"
|
||||||
|
style="padding-top:5px;">Main author: Cutls@cutls.com</a>
|
||||||
|
<br>
|
||||||
|
TheDesk @ <a href="https://github.com/cutls/TheDesk/commits/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c">89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c</a> - <a
|
||||||
|
onclick="checkupd(); return localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||||
|
class="pointer pwa">Check update</a><br>
|
||||||
|
<br>
|
||||||
|
Kyash<br>
|
||||||
|
<img src="../../img/kyash.png" width="100"><br>
|
||||||
|
<a href="https://status.cutls.com/">
|
||||||
|
<img src="https://status.cutls.com/badge-service?site=thedesk.top">
|
||||||
|
</a><br>
|
||||||
|
<h5>OSS License</h5>
|
||||||
|
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fcutls%2FTheDesk/refs/branch/master/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c"
|
||||||
|
alt="FOSSA Status"><img
|
||||||
|
src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcutls%2FTheDesk.svg?type=small" /></a>
|
||||||
|
<br>
|
||||||
|
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||||
|
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
|
||||||
|
href="https://thedesk.top/priv.html">Privacy
|
||||||
|
Policy</a>
|
||||||
|
<br>
|
||||||
|
</span><br>
|
||||||
|
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||||
|
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/aiscript.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/plugin.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/speech.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/settings.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
756
app/view/zh-CN/setting.vue.js
Normal file
756
app/view/zh-CN/setting.vue.js
Normal file
|
@ -0,0 +1,756 @@
|
||||||
|
var yesno = [
|
||||||
|
{
|
||||||
|
text: 'Yes',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'No',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var sound = [
|
||||||
|
{
|
||||||
|
text: 'None',
|
||||||
|
value: 'none'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '默认',
|
||||||
|
value: 'default'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 1',
|
||||||
|
value: 'c1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 2',
|
||||||
|
value: 'c2'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 3',
|
||||||
|
value: 'c3'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 4',
|
||||||
|
value: 'c4'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var envConstruction = [
|
||||||
|
{
|
||||||
|
id: 'popup',
|
||||||
|
storage: 'popup',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Popup notification(on Windows)',
|
||||||
|
desc: 'Hide to set "0"',
|
||||||
|
after: 'sec'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notf',
|
||||||
|
storage: 'nativenotf',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Native notification',
|
||||||
|
desc: 'This does not work on Windows Portable ver.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'width',
|
||||||
|
storage: 'width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 300,
|
||||||
|
text: { after: 'px ~ ' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'maxWidth',
|
||||||
|
storage: 'max-width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 600,
|
||||||
|
text: { after: 'px' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Width of columns',
|
||||||
|
desc: 'Scroll bar will be shown when your window size is more than ammounts of columns.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'margin',
|
||||||
|
storage: 'margin',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Margin between timelines',
|
||||||
|
desc: '',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'fixwidth',
|
||||||
|
storage: 'fixwidth',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 300,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Minimum width of TweetDeck browser',
|
||||||
|
desc: '',
|
||||||
|
after: 'px above'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'size',
|
||||||
|
storage: 'size',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 50,
|
||||||
|
setValue: 13,
|
||||||
|
text: {
|
||||||
|
head: 'Font size',
|
||||||
|
desc: '<span style="font-size:13px">13px(absolute value)</span>',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ha',
|
||||||
|
storage: 'ha',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: false,
|
||||||
|
text: {
|
||||||
|
head: 'Disable hardware acceleration',
|
||||||
|
desc: 'Auto restarted',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Yes',
|
||||||
|
value: 'true'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'No',
|
||||||
|
value: 'false'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ua',
|
||||||
|
storage: 'ua_setting',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: '',
|
||||||
|
width: 200,
|
||||||
|
text: {
|
||||||
|
head: 'User agent',
|
||||||
|
desc: 'Restart when changed'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'srcUrl',
|
||||||
|
storage: 'srcUrl',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 200,
|
||||||
|
setValue: 'https://google.com/search?q={q}',
|
||||||
|
text: {
|
||||||
|
head: 'Search engine',
|
||||||
|
desc: '{q} will be replaced to query.',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'download',
|
||||||
|
storage: 'dl-win',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Versioning(o Windows downloader)',
|
||||||
|
desc: 'ex: TheDesk-1.0.0-setup.exe',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var tlConstruction = [
|
||||||
|
{
|
||||||
|
id: 'time',
|
||||||
|
storage: 'datetype',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'absolute',
|
||||||
|
text: {
|
||||||
|
head: 'Time format',
|
||||||
|
desc: 'Relative format:"1 minutes ago","3 days ago"<br>Absolute format:"23:25:21","2017/12/30 23:59:00"<br>Mixed format:toots posted today are relative-format, others are absolute-format.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Relative',
|
||||||
|
value: 'relative'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Absolute',
|
||||||
|
value: 'absolute'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Both relative and absolute',
|
||||||
|
value: 'double'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Mixed',
|
||||||
|
value: 'medium'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ul',
|
||||||
|
storage: 'locale',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Server\s unique locale',
|
||||||
|
desc: 'This value is available on some Japanese servers',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'nsfw',
|
||||||
|
storage: 'nsfw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide NSFW pictures',
|
||||||
|
desc: 'Strong blur effect',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw',
|
||||||
|
storage: 'cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide CW contents',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'rp',
|
||||||
|
storage: 'replyct',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'hidden',
|
||||||
|
text: {
|
||||||
|
head: 'Reply counter style',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Show 1+ if the replies are more than 1.',
|
||||||
|
value: 'hidden'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Show full count(1,2...)',
|
||||||
|
value: 'all'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'gif',
|
||||||
|
storage: 'gif',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animated GIF images animation',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'tag',
|
||||||
|
storage: 'tag-range',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'local',
|
||||||
|
text: {
|
||||||
|
head: 'Tag TL Search',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Use federated network',
|
||||||
|
value: 'all'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Use local network',
|
||||||
|
value: 'local'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'via',
|
||||||
|
storage: 'viashow',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Show via',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'mov',
|
||||||
|
storage: 'mouseover',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Hide action buttons without mouseover',
|
||||||
|
desc: 'You may feel \mouseover\ is unconfortable:(',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Mouseover to show',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Click to show',
|
||||||
|
value: 'click'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'No',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notfm',
|
||||||
|
storage: 'setasread',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Show Notification marker, red colored bell and counter(if you show a notification column.)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'sentence',
|
||||||
|
storage: 'sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'lines above or' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'letters',
|
||||||
|
storage: 'letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'letters above' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Auto folding',
|
||||||
|
desc: 'TheDesk does not collapse totes of 5 characters or less. Also, when collapsing, newlines are not shown. TheDesk count only newlines as the number of lines.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img-height',
|
||||||
|
storage: 'img-height',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 80,
|
||||||
|
setValue: 200,
|
||||||
|
text: {
|
||||||
|
head: 'Height of images',
|
||||||
|
desc: 'Option:Set "full" to uncrop.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ticker',
|
||||||
|
storage: 'ticker_ok',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Enable #InstanceTicker',
|
||||||
|
desc: 'Show colorful stickers about tooters\ server. <a href="https://cdn.weep.me/mastodon/">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'anime',
|
||||||
|
storage: 'animation',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animation of timelines',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'markers',
|
||||||
|
storage: 'markers',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Markers(mark as read) on HTL and notifications',
|
||||||
|
desc: 'Mastodon 3.0~. Shared on WebUI and third-party supported clients.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'remote_img',
|
||||||
|
storage: 'remote_img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Get images from the remote server',
|
||||||
|
desc: 'All previews are got from your loginned cache server.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'bkm',
|
||||||
|
storage: 'bookmark',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Show a bookmarking toot button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'scroll',
|
||||||
|
storage: 'scroll',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normalScrollBar',
|
||||||
|
text: {
|
||||||
|
head: 'Height of the scroll bar',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Thick',
|
||||||
|
value: 'thickScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Normal',
|
||||||
|
value: 'normalScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Thin',
|
||||||
|
value: 'thinScrollBar'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'replySound',
|
||||||
|
storage: 'replySound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Reply)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'favSound',
|
||||||
|
storage: 'favSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Fav)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'btSound',
|
||||||
|
storage: 'btSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Boost)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'followSound',
|
||||||
|
storage: 'followSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Follow)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var postConstruction = [
|
||||||
|
{
|
||||||
|
id: 'cw-text',
|
||||||
|
storage: 'cw-text',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 150,
|
||||||
|
setValue: '',
|
||||||
|
text: {
|
||||||
|
head: 'Default warining text',
|
||||||
|
desc: '',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'cw_sentence',
|
||||||
|
storage: 'cw_sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'lines above or' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw_letters',
|
||||||
|
storage: 'cw_letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'letters above' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Alert before posting a long toot.',
|
||||||
|
desc: 'Show dialog whether you make too-long text hidden.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cws',
|
||||||
|
storage: 'always-cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Always CW set',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw-continue',
|
||||||
|
storage: 'cw-continue',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: '@@cwContinue@@',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'vis',
|
||||||
|
storage: 'vis',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Default visibility',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Public',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Unlisted',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Private',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direct',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Memory(memorized as each server)',
|
||||||
|
value: 'memory'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Default of your visibility(Set on preferences of Mastodon server)',
|
||||||
|
value: 'useapi'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img',
|
||||||
|
storage: 'img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no-act',
|
||||||
|
text: {
|
||||||
|
head: 'Posting images preferences',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Insert media URL',
|
||||||
|
value: 'url'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Insert nothig',
|
||||||
|
value: 'no-act'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'box',
|
||||||
|
storage: 'box',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Action of posting-box',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Folding',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Open after posting',
|
||||||
|
value: 'no'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Absolutely open',
|
||||||
|
value: 'absolute'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'quote',
|
||||||
|
storage: 'quote',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'nothing',
|
||||||
|
text: {
|
||||||
|
head: 'Quote format',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Only URL',
|
||||||
|
value: 'simple'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL and acct(mention to the user)',
|
||||||
|
value: 'mention'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL, text and acct(mention to the user)',
|
||||||
|
value: 'full'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'API(only some instances)',
|
||||||
|
value: 'apiQuote',
|
||||||
|
quote: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Disabled(Hide buttons on TLs)',
|
||||||
|
value: 'nothing'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'main',
|
||||||
|
storage: 'mainuse',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'remain',
|
||||||
|
text: {
|
||||||
|
head: 'Default accounts of actions',
|
||||||
|
desc: 'Main account can be set on Account Manager.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Account you used recently',
|
||||||
|
value: 'remain'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Main account',
|
||||||
|
value: 'main'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'sec',
|
||||||
|
storage: 'sec',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Secondary Toot Button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Hidden',
|
||||||
|
value: 'nothing'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Public',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Unlisted',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Private',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direct',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Local Only',
|
||||||
|
value: 'local',
|
||||||
|
kirishima: true,
|
||||||
|
kirishimaText: '非対応インスタンスでは「未収載」になります。'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'zero',
|
||||||
|
storage: 'emoji-zero-width',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normal',
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Zero-width space when inserting emojis',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'uploadCrop',
|
||||||
|
storage: 'uploadCrop',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 100,
|
||||||
|
setValue: '0',
|
||||||
|
text: {
|
||||||
|
head: 'Auto scale to fit',
|
||||||
|
desc: 'Max long-side px. Uploaded images are converted to JPEG(from JPEG) or PNG(from others). Set 0 and the images will not be resized. Notice: if you post an animated picture like GIF, it will be converted static one.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
302
app/view/zh-CN/update.html
Normal file
302
app/view/zh-CN/update.html
Normal file
|
@ -0,0 +1,302 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<title>Update - TheDesk</title>
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Open Sans';
|
||||||
|
-webkit-app-region: drag;
|
||||||
|
cursor: move;
|
||||||
|
padding: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#start {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100vw;
|
||||||
|
height: calc(100vh - 2.5rem);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#checkbox {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a,
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
label,
|
||||||
|
i {
|
||||||
|
-webkit-app-region: no-drag;
|
||||||
|
}
|
||||||
|
|
||||||
|
#updskip {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100px;
|
||||||
|
border: 1px solid;
|
||||||
|
margin-left: 5px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border: 1px solid #c26363;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #c26363;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn:hover {
|
||||||
|
background-color: #c26363;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#prog {
|
||||||
|
font-size: 200%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||||
|
<!--a href="update.html">Reload</a-->
|
||||||
|
<div id="start" style="filter: brightness(100%)">
|
||||||
|
<div id="box" class="show">
|
||||||
|
<h2>TheDesk</h2>
|
||||||
|
<p>Get latest TheDesk</p>
|
||||||
|
<span id="now"></span>→<b id="ver"></b><br />
|
||||||
|
<a href="" id="github" class="btn waves-effect grey darken-1"><i class="fab fa-github left"></i>What is new?</a><br />
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left: 15px;">Installer(Recommended)</button>
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left: 15px;">Portable ver.</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left: 15px;">zip</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxdeb')" style="margin-left: 15px;">deb(Recommended on buntu, Debian)</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxsnap')" style="margin-left: 15px;">snap</button>
|
||||||
|
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left: 15px;">Start</button>
|
||||||
|
<br />
|
||||||
|
Some problems?<br />Please download on <a href="https://thedesk.top">Oficial HP</a>.
|
||||||
|
</div>
|
||||||
|
<div id="skipper" class="hide">
|
||||||
|
<h4>Skip this update</h4>
|
||||||
|
You may lose a cool experience!<br />
|
||||||
|
<div id="updskip">
|
||||||
|
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>Until next TL loading</div>
|
||||||
|
</a>
|
||||||
|
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>Until next version</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<a class="pointer waves-effect" onclick="skipper();" style="margin-top: 5px;">Continue updating</a>
|
||||||
|
</div>
|
||||||
|
<div id="dlnow" class="hide" style="width: 70%;">
|
||||||
|
<h4>Downloading...</h4>
|
||||||
|
<h4 id="prog"></h4>
|
||||||
|
<div class="progress">
|
||||||
|
<div class="determinate" style="width: 0%;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script>
|
||||||
|
function skipper() {
|
||||||
|
$('#dlnow').addClass('hide')
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
if ($('#box').hasClass('hide') && $('#skipper').hasClass('hide')) {
|
||||||
|
$('#skipper').removeClass('hide')
|
||||||
|
$('#skipper').addClass('show')
|
||||||
|
} else {
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('show')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
verck()
|
||||||
|
function update(sel) {
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('show')
|
||||||
|
$('#prog').text('')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
if (sel == 'install') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'portable') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64p_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32p_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'linux') {
|
||||||
|
var url = json['linuxx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'thedesk-' + json.unique_linux + '.zip'
|
||||||
|
} else {
|
||||||
|
var file = 'thedesk.zip'
|
||||||
|
}
|
||||||
|
var filesize = json.linuxx64_size
|
||||||
|
} else if (sel == 'linuxdeb') {
|
||||||
|
var url = json['linuxdeb']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.deb'
|
||||||
|
var filesize = json.linuxdeb_size
|
||||||
|
} else if (sel == 'linuxsnap') {
|
||||||
|
var url = json['linuxsnap']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.snap'
|
||||||
|
var filesize = json.linuxsnap_size
|
||||||
|
} else if (sel == 'mac') {
|
||||||
|
var url = json['mac']
|
||||||
|
var file = 'TheDesk-' + json.unique_mac + '.dmg'
|
||||||
|
var filesize = json.mac_size
|
||||||
|
}
|
||||||
|
postMessage(['downloadButton', [url, file, filesize]], '*')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function quit() {
|
||||||
|
postMessage(['sendSinmpleIpc', 'quit'], '*')
|
||||||
|
}
|
||||||
|
function updateProg(arg) {
|
||||||
|
$('.determinate').css('width', arg[0].percent * 100 + '%')
|
||||||
|
$('#prog').html(`${Math.floor(arg[0].percent * 100)}%<br />(${Math.floor(arg[0].percent*arg[1]/1024/1024*10)/10} MB / ${Math.floor(arg[1]/1024/1024*10)/10} MB)`)
|
||||||
|
|
||||||
|
}
|
||||||
|
function updateMess(arg) {
|
||||||
|
console.log(arg)
|
||||||
|
$('#prog').text(arg)
|
||||||
|
}
|
||||||
|
function verck() {
|
||||||
|
var platform = localStorage.getItem('platform')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('.windows').removeClass('hide')
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('.linux').removeClass('hide')
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('.mac').removeClass('hide')
|
||||||
|
}
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
console.log(json)
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('#ver').text(json.desk)
|
||||||
|
localStorage.setItem('next-ver', json.desk)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('#ver').text(json.desk_linux)
|
||||||
|
localStorage.setItem('next-ver', json.desk_linux)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_linux
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('#ver').text(json.desk_mac)
|
||||||
|
localStorage.setItem('next-ver', json.desk_mac)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_mac
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#github').attr('href', url)
|
||||||
|
|
||||||
|
$('#now').text(localStorage.getItem('ver'))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function nextv() {
|
||||||
|
localStorage.setItem('new-ver-skip', 'true')
|
||||||
|
window.close()
|
||||||
|
}
|
||||||
|
function enc(ver) {
|
||||||
|
var ver = ver.replace(/\s/g, '')
|
||||||
|
var ver = ver.replace(/\(/g, '-')
|
||||||
|
var ver = ver.replace(/\)/g, '')
|
||||||
|
var ver = ver.replace(/\[/g, '_')
|
||||||
|
var ver = ver.replace(/\]/g, '')
|
||||||
|
return ver
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
154
app/view/zh-TW/acct.html
Normal file
154
app/view/zh-TW/acct.html
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-TW">
|
||||||
|
<head>
|
||||||
|
<title>Account Manager - TheDesk</title>
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport" />
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link
|
||||||
|
href="../../node_modules/materialize-css/dist/css/materialize.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/tl.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link href="../../css/userdata.css" rel="stylesheet" type="text/css" />
|
||||||
|
<link
|
||||||
|
href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css"
|
||||||
|
type="text/css"
|
||||||
|
rel="stylesheet"
|
||||||
|
/>
|
||||||
|
<link href="../../css/acct.css" rel="stylesheet" type="text/css" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<script>var pwa = false;</script> <script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/materialize-css/dist/js/materialize.js"
|
||||||
|
></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"
|
||||||
|
></script>
|
||||||
|
<script>
|
||||||
|
var misskeytoken = false
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||||
|
<div class="hide-first">
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"
|
||||||
|
>上一頁</a
|
||||||
|
><br />
|
||||||
|
<h5>帳號列表</h5>
|
||||||
|
<div id="acct-list"></div>
|
||||||
|
<div class="divider"></div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-second">
|
||||||
|
<a href="setting.html">擁有已匯出之 TheDesk 設定檔,請點此跳至設定頁</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>新增帳號</h5>
|
||||||
|
<br />
|
||||||
|
<div id="add">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s8">
|
||||||
|
請填入 instance 網址 (例如:mastodon.social)<br />
|
||||||
|
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp" />
|
||||||
|
<div id="ins-suggest"></div>
|
||||||
|
<button class="btn waves-effect" onclick="instance()">Login</button><br />
|
||||||
|
<div class="pwa">
|
||||||
|
取消選取以忽略貼上授權碼。(於 Windows 或 macOS 上登入 Mastodon) (建議:pcheck)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="linux" />
|
||||||
|
<span>授權碼設定</span>
|
||||||
|
</label>
|
||||||
|
<br />
|
||||||
|
</div>
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="misskey" />
|
||||||
|
<span>以 Misskey 登入</span> </label
|
||||||
|
><br />
|
||||||
|
</div>
|
||||||
|
<div class="col s4 scr" aria-hidden="true">
|
||||||
|
<span style="font-family:Open Sans;">Supports</span>
|
||||||
|
<div id="support" class="collection transparent"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="auth" style="display:none">
|
||||||
|
請貼上授權碼並關閉瀏覽器。<br />
|
||||||
|
<input type="text" id="code" placeholder="授權碼" required />
|
||||||
|
<button class="btn waves-effect" onclick="code()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup()" class="pointer">使用 access token 登入 (填入 access token 而非授權碼後點擊:進階設定)</a>
|
||||||
|
<div id="compt" style="display:none" class="scr">
|
||||||
|
<h5>ログイン前に必ずご確認ください</h5>
|
||||||
|
<span id="compt-instance"></span>はバージョンが<span id="compt-ver"></span
|
||||||
|
>のため以下の機能がご利用いただけません。
|
||||||
|
<span id="compt-warn" style="display:none"
|
||||||
|
>また、このインスタンスはMastodonではなくそのAPI上の互換実装であり、TheDeskでは利用を想定していないため非保証となります。</span
|
||||||
|
>
|
||||||
|
<ul id="compt-list"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="misskeylogin" style="display:none">
|
||||||
|
<h5>AppSecret</h5>
|
||||||
|
請閱讀 <a href="https://thedesk.top/how-to-misskey-login.html"> 文件(日文)</a> 以 Misskey 登入說明。<br />
|
||||||
|
<input type="hidden" id="misskey-url" />
|
||||||
|
<input type="text" id="misskey-key" placeholder="授權碼" required />
|
||||||
|
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br />
|
||||||
|
<br />
|
||||||
|
<a onclick="atSetup('misskey')" class="pointer">使用 access token 登入 (填入 access token 而非授權碼後點擊:進階設定)</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hide-first">
|
||||||
|
<h5>主要帳號</h5>
|
||||||
|
<div class="input-field" style="width:300px">
|
||||||
|
<span data-trans="your_acct">選擇帳號</span>
|
||||||
|
<br />
|
||||||
|
<select
|
||||||
|
id="main-acct-sel"
|
||||||
|
class="acct-sel"
|
||||||
|
style="color:black"
|
||||||
|
onchange="mainacct()"
|
||||||
|
></select>
|
||||||
|
<label></label>
|
||||||
|
</div>
|
||||||
|
<ul id="domain-list" class="collection transparent"></ul>
|
||||||
|
<div id="instance-data">
|
||||||
|
Some instance data by
|
||||||
|
<a href="https://instances.social" target="_blank">instances.social API</a><br />
|
||||||
|
<h5 id="ins-title"></h5>
|
||||||
|
Administered by:<a id="ins-admin"></a><br />
|
||||||
|
<span id="ins-desc"></span><br />
|
||||||
|
<img src="../../img/loading.svg" id="ins-prof" width="200" /><br />
|
||||||
|
<br />
|
||||||
|
網址:<span id="ins-name"></span><br />
|
||||||
|
聯邦伺服器:<span id="ins-connect"></span><br />
|
||||||
|
嘟文:<span id="ins-toot"></span><br />
|
||||||
|
使用者:<span id="ins-user"></span>使用者<br />
|
||||||
|
連線:<span id="ins-per"></span>%<br />
|
||||||
|
Mastodon 版本:<span id="ins-ver"></span>@<span id="ins-upd"></span><br />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/tips.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/sha256.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/instance.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/manager.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
||||||
|
<script>$('body').addClass(localStorage.getItem('platform'))</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
1287
app/view/zh-TW/index.html
Normal file
1287
app/view/zh-TW/index.html
Normal file
File diff suppressed because it is too large
Load Diff
1
app/view/zh-TW/main.js
Normal file
1
app/view/zh-TW/main.js
Normal file
File diff suppressed because one or more lines are too long
632
app/view/zh-TW/setting.html
Normal file
632
app/view/zh-TW/setting.html
Normal file
|
@ -0,0 +1,632 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-TW" style="overflow-y:scroll">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>Settings - TheDesk</title>
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = [];
|
||||||
|
_jipt.push(['project', 'thedesk']);
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<style>
|
||||||
|
input {
|
||||||
|
max-height: 3.84rem !important
|
||||||
|
}
|
||||||
|
|
||||||
|
.pcr-result {
|
||||||
|
height: 1rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container-after-titlebar {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
<script>var store = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body id="mainView" style="overflow-y:scroll" class="">
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<script type="text/javascript" src="main.js"></script>
|
||||||
|
<script src="../../node_modules/json5/dist/index.min.js"></script>
|
||||||
|
<script src="../../node_modules/vue/dist/vue.min.js"></script>
|
||||||
|
<script type="text/javascript" src="setting.vue.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/sweetalert2/dist/sweetalert2.all.min.js"></script>
|
||||||
|
<script>function renderMem() { return false; }</script>
|
||||||
|
|
||||||
|
<h4>偏好設定</h4>
|
||||||
|
<ul class="collapsible" data-collapsible="accordion">
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">desktop_windows</i>System Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Languages</h5>
|
||||||
|
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br><br>
|
||||||
|
<div style="display: flex;">
|
||||||
|
<div style="width: 22rem;" id="langsel">
|
||||||
|
<select id="langsel-sel"><option value="ja">日本語</option><option value="ja-KS">日本語(関西)</option><option value="en">English</option><option value="bg">български</option><option value="cs">Česky</option><option value="de">Deutsch</option><option value="es-AR">Español, argentina</option><option value="it-IT">italiano</option><option value="zh-CN">简体中文</option><option value="zh-TW">繁體中文(β)</option><option value="fr-FR">français(β)</option><option value="no-NO">norsk(β)</option><option value="pt-BR">Português, brasileiro(β)</option><option value="ru-RU">русский(β)</option><option value="es-ES">Español(β)</option><option value="ps">Crowdin translate system(beta)</option></select>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect" onclick="changeLang()">Change</button>
|
||||||
|
</div>
|
||||||
|
<h5>Import and export of preferences</h5>
|
||||||
|
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Export</button>
|
||||||
|
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
|
||||||
|
style="width:100%; max-width:15rem;">Import</button><br>
|
||||||
|
If you got a error when you choose the file, please paste the strings printed when you open the file and click import<br>
|
||||||
|
<input type="text" id="imp-exp" style="width: 22rem">
|
||||||
|
<div id="envView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||||
|
class="pointer">Notification test</a><br></template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Change</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Font</h5>
|
||||||
|
Select your favorite font to 'Select'(Windows/ macOS only)<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="font()">Select</button><br>
|
||||||
|
<div id="fonts" class="hide" style="overflow-y:scroll; width:22rem; height:40rem;"></div>
|
||||||
|
<br>
|
||||||
|
<input type="text" style="width:11.5rem" id="font">
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="settings()">儲存</button>
|
||||||
|
<br>
|
||||||
|
<h5>Folder to save</h5>
|
||||||
|
TheDesk uses this value when it try to save pictures or take screenshots.<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="savefolder()">Change</button>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="pwa">
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">color_lens</i>Themes
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h4>Select theme</h4>
|
||||||
|
<div style="width:22rem" id="sel-selector">
|
||||||
|
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
|
||||||
|
</div>
|
||||||
|
<h4>Edit and add themes</h4>
|
||||||
|
<div style="width:22rem" id="edit-selector" data-add="Add new">
|
||||||
|
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
|
||||||
|
<option value="add_new">Add new</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<h5>Name</h5>
|
||||||
|
<input type="text" style="width:22rem" id="custom_name" placeholder="Name...">
|
||||||
|
<h5>About this theme</h5>
|
||||||
|
<div class="input-field"><textarea style="width:22rem" id="custom_desc" class="materialize-textarea"
|
||||||
|
placeholder="About this theme..."></textarea></div>
|
||||||
|
<h5>Color scheme</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="dark" value="dark"
|
||||||
|
checked="true" />
|
||||||
|
<span>Dark</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="settings()" name="direction" type="radio" id="light"
|
||||||
|
value="light" />
|
||||||
|
<span>Light</span>
|
||||||
|
</label><br><br />
|
||||||
|
<button class="btn waves-effect" onclick="advanced()">Advanced options</button>
|
||||||
|
<span class="advanced hide"></span>
|
||||||
|
<div id="pickers">
|
||||||
|
<div>
|
||||||
|
<h5>Background</h5>Background color<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_0" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker0_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Text</h5>Text color<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_1" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker1_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Subcolor</h5>Distinguishable from background<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_2" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker2_value">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h5>Accent</h5>Background of boosts<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_3" value="1" checked disabled />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker3_value">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal</h5>Background of modal window<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_4" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modal')">Background</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker4_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Modal Footer</h5>Background of modal window's footer<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_5" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('background','modalFooter')">Background</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('modal','modalFooter')">Modal</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker5_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>3rd Color</h5>Backgroud of tag buttons, etc(near to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_6" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','third')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker6_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>4th Color</h5>Title bar(same scheme to Background)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_7" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','forth')">Subcolor</a>/
|
||||||
|
<a class="pointer" onclick="copyColor('third','forth')">3rd Color</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker7_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Bottom</h5>Background of menu-bar at bottom of window<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_8" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','bottom')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker8_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>2nd Accent</h5>Emphasized toot's background<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_9" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','emphasized')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker9_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Postbox</h5>Background of post-box and menu<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_10" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('subcolor','postbox')">Subcolor</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker10_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Active</h5>Background of 'active' elements<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_11" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
Copy from:
|
||||||
|
<a class="pointer" onclick="copyColor('accent','active')">Accent</a>
|
||||||
|
<br />
|
||||||
|
<input type="color" id="color-picker11_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected</h5>Background of selected with arrow keys<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_12" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker12_value">
|
||||||
|
</div>
|
||||||
|
<div class="advanced hide">
|
||||||
|
<h5>Selected with shared</h5>Background of selected with arrow keys(boosted toots)<br />
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" class="filled-in" id="use-color_13" value="1" />
|
||||||
|
<span>Use this</span>
|
||||||
|
</label><br />
|
||||||
|
<input type="color" id="color-picker13_value">
|
||||||
|
</div>
|
||||||
|
</div><br /><br />
|
||||||
|
<button class="btn-large waves-effect" onclick="customComp()">Change</button> <button
|
||||||
|
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">刪除</button><br><br>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_json" class="materialize-textarea"
|
||||||
|
placeholder="JSON style" readonly><br>
|
||||||
|
<h4>Import of custom themes</h4>
|
||||||
|
<input type="text" style="width:22rem;height:40px;" id="custom_import" class="materialize-textarea"
|
||||||
|
placeholder="JSON/JSON5 style">
|
||||||
|
<button class="btn waves-effect" onclick="customImp()">Import</button><br>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">reorder</i>Timeline Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="tlView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" v-on:click="complete(i,check.value)" v-model="item.setValue"
|
||||||
|
type="radio" v-bind:id="item.id+check.value" v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span>
|
||||||
|
</label>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Change</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Custom sound</h5>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span
|
||||||
|
id="c1-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span
|
||||||
|
id="c2-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span
|
||||||
|
id="c3-file"></span><br>
|
||||||
|
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span
|
||||||
|
id="c4-file"></span><br>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100(default:80)<br>
|
||||||
|
<p class="range-field"><span id="soundVolVal">80</span><br>
|
||||||
|
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">send</i>Posting Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<div id="postView">
|
||||||
|
<template v-for="(item, i) in config">
|
||||||
|
<h5>{{item.text.head}}</h5>
|
||||||
|
<template v-if="item.text.desc">
|
||||||
|
<span v-html="item.text.desc"></span><br>
|
||||||
|
</template>
|
||||||
|
<template v-if="item.checkbox">
|
||||||
|
<template v-for="(check, j) in item.text.checkbox">
|
||||||
|
<template
|
||||||
|
v-if="(!check.kirishima || (check.kirishima && kirishima) )&& (!check.quote || (check.quote && quoters))">
|
||||||
|
<label><input class="with-gap" v-on:click="complete(i,check.value)"
|
||||||
|
v-model="item.setValue" type="radio" v-bind:id="item.id+check.value"
|
||||||
|
v-bind:value="check.value" />
|
||||||
|
<span>{{check.text}}</span></label>
|
||||||
|
<span v-if="check.kirishimaText">{{check.kirishimaText}}</span>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<template v-if="item.doubleText">
|
||||||
|
<template v-for="(textbox, j) in item.data">
|
||||||
|
<input type="text" v-model="textbox.setValue" type="radio" v-bind:id="textbox.id"
|
||||||
|
v-bind:style="{ width: textbox.width+'px'}" />{{textbox.text.after}}
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
|
||||||
|
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
|
||||||
|
</template>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;"
|
||||||
|
v-on:click="complete(i)">Change</button>
|
||||||
|
</template><br>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
<h5>Easy inserter</h5>
|
||||||
|
You can insert any letters and emojis with only 3 keys<br>
|
||||||
|
Ctrl+Shift+1:<input type="text" style="width:11.5rem" id="oks-1">
|
||||||
|
<button onclick="oks(1)" class="btn waves-effect" style="width:7.7rem;">儲存</button><br><br>
|
||||||
|
Ctrl+Shift+2:<input type="text" style="width:11.5rem" id="oks-2">
|
||||||
|
<button onclick="oks(2)" class="btn waves-effect" style="width:7.7rem;">儲存</button><br><br>
|
||||||
|
Ctrl+Shift+3:<input type="text" style="width:11.5rem" id="oks-3">
|
||||||
|
<button onclick="oks(3)" class="btn waves-effect" style="width:7.7rem;">儲存</button><br><br>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<img src="../../img/aiscript.svg"
|
||||||
|
style="height: 1.5rem; margin-left: 0.4rem; margin-right: 0.4rem;">Plugins
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<a href="https://github.com/cutls/TheDesk/blob/master/plugin.md">Japanese docs of AiScript TheDesk plugins</a><br />
|
||||||
|
<textarea id="plugin" data-id="add_new" style="height: 20rem"></textarea>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="completePlugin()">Change</button>
|
||||||
|
<button class="btn waves-effect red disabled plugin_delete" style="width:7.7rem;"
|
||||||
|
onclick="deletePlugin()">刪除</button>
|
||||||
|
<h5>Plugin list</h5>
|
||||||
|
<div style="width:22rem" id="plugin-selector" data-add="Add new">
|
||||||
|
<select id="plugin-edit-sel" class="custom-sel" onchange="pluginEdit()">
|
||||||
|
<option value="add_new">Add new</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">bookmark</i>Mute & Emphasis Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Client Mute</h5>
|
||||||
|
<div id="mute-cli"></div>
|
||||||
|
<h5>Client Emphasis</h5>
|
||||||
|
Click client name on toots to toggle mute and emphasis.
|
||||||
|
<h5>Words Mute</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordmute" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:7.7rem;">儲存</button>
|
||||||
|
<h5>Words Emphasis</h5>
|
||||||
|
Enter to set<br>
|
||||||
|
<div class="chips" id="wordemp" style="background-color:gray;"></div>
|
||||||
|
<button onclick="wordempSave()" class="btn waves-effect" style="width:7.7rem;">儲存</button>
|
||||||
|
<h5>Users Emphasis</h5>
|
||||||
|
Set on users data modals.
|
||||||
|
<span class="emphasized"> Use this color to emphasis </span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="fab fa-spotify"></i>Spotify and NowPlaying Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>Account Connection(Spotify)</h5>
|
||||||
|
TheDesk save your data on thedesk.top server.<br>
|
||||||
|
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
|
||||||
|
onclick="spotifyAuth()" class="btn waves-effect" style="width:7.7rem;">儲存</button></div>
|
||||||
|
<a onclick="spotifyConnect()" class="btn waves-effect nex"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-enable"><i
|
||||||
|
class="fab fa-spotify left"></i>Connect</a>
|
||||||
|
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
|
||||||
|
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-disable"><i
|
||||||
|
class="fab fa-spotify left"></i>Disconnect</a>
|
||||||
|
<h5>Account Connection(Last.fm)</h5>
|
||||||
|
User name...(empty to disconnect) You cannot hide your recent play log at last.fm privacy settings.<br />
|
||||||
|
<input type="text" style="width:11.5rem" id="lastFmUser">
|
||||||
|
<button onclick="lastFmSet()" class="btn waves-effect" style="width:7.7rem;">儲存</button>
|
||||||
|
<h5>Edit a template</h5>
|
||||||
|
<br>
|
||||||
|
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
|
||||||
|
{url}</textarea><br>
|
||||||
|
Spotify:{song}:Song name/{album}:Album name/{artist}:Artist name/{url}:URL to Spotify<br>
|
||||||
|
<span class="mac">>macOS:{song}:Song name/{album}:Album name/{artist}:Artist name/composer:{composer}/spampling rate:{hz}/bit rate:{bitRate}/genre:{genre}</span><br>
|
||||||
|
<button onclick="spotifySave()" class="btn waves-effect" style="width:7.7rem;">儲存</button>
|
||||||
|
<h5>Attach an Artwork of Spotify</h5>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>是</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no"
|
||||||
|
value="no" />
|
||||||
|
<span>否</span>
|
||||||
|
</label>
|
||||||
|
<div class="mac">
|
||||||
|
<h5>If the song has no artwork, automatic complete it(macOS)</h5>
|
||||||
|
If you nowplaying an non-artwork song, get one which seems nice through API. If you do not like the completed artwork, you can right-click it to delete.<br />
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>是</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="aMusicFlagSave()" name="amw" type="radio" id="amw_no"
|
||||||
|
value="no" />
|
||||||
|
<span>否</span>
|
||||||
|
</label>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="collapsible-header">
|
||||||
|
<i class="material-icons">hearing</i>TTS(text to speech) Preferences
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-body">
|
||||||
|
<h5>BouyomiChan connect</h5>
|
||||||
|
Require: BouyomiChan WebSocket Plugin<a href="https://github.com/xztaityozx/BouyomiChan-WebSocket-Plugin"
|
||||||
|
target="_blank">GitHub</a><br>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_yes"
|
||||||
|
value="yes" />
|
||||||
|
<span>是</span>
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input class="with-gap" onchange="voiceSettings()" name="bym" type="radio" id="bym_no" value="no" />
|
||||||
|
<span>否</span>
|
||||||
|
</label>
|
||||||
|
<h5>Speed</h5>
|
||||||
|
1-100(default:10)<br>
|
||||||
|
<p class="range-field"><span id="voicespeedVal">10</span><br>
|
||||||
|
<input type="range" id="voicespeed" min="1" max="100" value="10"
|
||||||
|
onchange="document.getElementById('voicespeedVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Pitch</h5>
|
||||||
|
0-100(default:50)<br>
|
||||||
|
<p class="range-field"><span id="voicepitchVal">50</span><br>
|
||||||
|
<input type="range" id="voicepitch" min="0" max="100" value="50"
|
||||||
|
onchange="document.getElementById('voicepitchVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Volume</h5>
|
||||||
|
0-100(default:100)<br>
|
||||||
|
<p class="range-field"><span id="voicevolVal">100</span><br>
|
||||||
|
<input type="range" id="voicevol" min="0" max="100" value="100"
|
||||||
|
onchange="document.getElementById('voicevolVal').innerText=this.value"
|
||||||
|
style="width:40rem; max-width:100%" />
|
||||||
|
</p>
|
||||||
|
<h5>Test</h5>
|
||||||
|
<input type="text" style="width:27rem" id="voicetxt" value="TheDesk is an open-source Mastodon client for PC.">
|
||||||
|
<button class="btn waves-effect blue" style="width:11.5rem;" onclick="voicePlay()"
|
||||||
|
id="testplay">Play/Stop</button><br>
|
||||||
|
<br>
|
||||||
|
<button class="btn waves-effect" style="width:7.7rem;" onclick="voiceSettings()">儲存</button>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:15rem;"><i
|
||||||
|
class="material-icons left">undo</i>上一頁</a>
|
||||||
|
<br>
|
||||||
|
<br>Keyboard shortcuts
|
||||||
|
<li>Ctrl+1-9:Jump to n(1-9)th column</li>
|
||||||
|
<li>N:Open toot box</li>
|
||||||
|
<li>X:Toggle toot box</li>
|
||||||
|
<li>Ctrl+Enter:Post</li>
|
||||||
|
<li>Ctrl+Enter+Shift:Post(secondary toot)</li>
|
||||||
|
<li>Alt+Enter:Secondary Toot Button</li>
|
||||||
|
<li>Ctrl+E:Make all notifications read</li>
|
||||||
|
<li>Ctrl+U:Select the top & left(No.1 column) toot</li>
|
||||||
|
<li>Esc:Hide toot box</li>
|
||||||
|
<li>F5:Super Reload</li>
|
||||||
|
<li>Ctrl+Shift+C:關閉嘟文視窗</li>
|
||||||
|
<li>Ctrl+Shift+S:偏好設定</li>
|
||||||
|
<li>Ctrl+Shift+M:帳號管理</li>
|
||||||
|
<li>Ctrl+Shift+N:NowPlaying(Spotify)</li>
|
||||||
|
<li>Ctrl+Shift+P:Show profile of selecting</li>
|
||||||
|
<li>←/→:Show next or previous image</li>
|
||||||
|
<li>Mousewheel:Zoom a image</li>
|
||||||
|
<div class="hide kirishima">
|
||||||
|
以下Markdownに対応したインスタンスのみ。
|
||||||
|
<br>
|
||||||
|
<li>Ctrl+B/I/S/U:太字/斜字/取り消し/下線</li>
|
||||||
|
When a toot is selected:
|
||||||
|
<li>F:Favourite this toot</li>
|
||||||
|
<li>B:Boost this toot</li>
|
||||||
|
<li>R:Reply to this toot</li>
|
||||||
|
</div>
|
||||||
|
<button class="btn waves-effect red" style="width:100%; max-width:40rem;"
|
||||||
|
onclick="if(confirm('Delete all data. You cannot undo. Continue?')){ localStorage.clear(); location.href='index.html'; }"><i
|
||||||
|
class="material-icons left">delete</i>Reset(Danger)</button><br><br>
|
||||||
|
<button class="btn waves-effect indigo pwa" onclick="about()" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">info</i>關於 TheDesk</button>
|
||||||
|
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">web</i>Website</a>
|
||||||
|
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Support(Pixiv FANBOX)</a>
|
||||||
|
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>Support(Patreon)</a>
|
||||||
|
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
|
||||||
|
style="width:100%; max-width:40rem; background-color: #f6c915"><i
|
||||||
|
class="material-icons left">trending_up</i>Support(Liberapay)</a>
|
||||||
|
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:40rem;"><i
|
||||||
|
class="material-icons left">list</i>幫助/Docs</a>
|
||||||
|
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><i class="fab fa-github left"></i>GitHub</a>
|
||||||
|
<a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
|
||||||
|
style="width:100%; max-width:40rem;"><img src="../../img/desk_full.svg" class="left" width="25"
|
||||||
|
style="padding-top:5px;">Main author: Cutls@cutls.com</a>
|
||||||
|
<br>
|
||||||
|
TheDesk @ <a href="https://github.com/cutls/TheDesk/commits/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c">89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c</a> - <a
|
||||||
|
onclick="checkupd(); return localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||||
|
class="pointer pwa">Check update</a><br>
|
||||||
|
<br>
|
||||||
|
Kyash<br>
|
||||||
|
<img src="../../img/kyash.png" width="100"><br>
|
||||||
|
<a href="https://status.cutls.com/">
|
||||||
|
<img src="https://status.cutls.com/badge-service?site=thedesk.top">
|
||||||
|
</a><br>
|
||||||
|
<h5>OSS License</h5>
|
||||||
|
<a href="https://app.fossa.com/projects/git%2Bgithub.com%2Fcutls%2FTheDesk/refs/branch/master/89b25c56e7ecf0c1c0e3b73f3138207abe1a6c9c"
|
||||||
|
alt="FOSSA Status"><img
|
||||||
|
src="https://app.fossa.com/api/projects/git%2Bgithub.com%2Fcutls%2FTheDesk.svg?type=small" /></a>
|
||||||
|
<br>
|
||||||
|
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||||
|
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
|
||||||
|
href="https://thedesk.top/priv.html">Privacy
|
||||||
|
Policy</a>
|
||||||
|
<br>
|
||||||
|
</span><br>
|
||||||
|
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||||
|
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||||
|
<script type="text/javascript" src="../../node_modules/lodash/lodash.min.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/aiscript.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/plugin.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/login/logout.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/speech.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/pickr.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/settings.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/tl/date.js"></script>
|
756
app/view/zh-TW/setting.vue.js
Normal file
756
app/view/zh-TW/setting.vue.js
Normal file
|
@ -0,0 +1,756 @@
|
||||||
|
var yesno = [
|
||||||
|
{
|
||||||
|
text: '是',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '否',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var sound = [
|
||||||
|
{
|
||||||
|
text: '沒有',
|
||||||
|
value: 'none'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '預設',
|
||||||
|
value: 'default'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 1',
|
||||||
|
value: 'c1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 2',
|
||||||
|
value: 'c2'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 3',
|
||||||
|
value: 'c3'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Custom 4',
|
||||||
|
value: 'c4'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var envConstruction = [
|
||||||
|
{
|
||||||
|
id: 'popup',
|
||||||
|
storage: 'popup',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Popup notification',
|
||||||
|
desc: 'Hide to set "0"',
|
||||||
|
after: 'sec'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notf',
|
||||||
|
storage: 'nativenotf',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Native notification',
|
||||||
|
desc: 'This does not work on Windows Portable ver.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'width',
|
||||||
|
storage: 'width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 300,
|
||||||
|
text: { after: 'px ~ ' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'maxWidth',
|
||||||
|
storage: 'max-width',
|
||||||
|
width: 50,
|
||||||
|
setValue: 600,
|
||||||
|
text: { after: 'px' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Width of columns',
|
||||||
|
desc: 'Scroll bar will be shown when your window size is more than ammounts of columns.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'margin',
|
||||||
|
storage: 'margin',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 0,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Margin between timelines',
|
||||||
|
desc: '',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'fixwidth',
|
||||||
|
storage: 'fixwidth',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: 300,
|
||||||
|
width: 50,
|
||||||
|
text: {
|
||||||
|
head: 'Minimum width of TweetDeck browser',
|
||||||
|
desc: '',
|
||||||
|
after: 'px above'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'size',
|
||||||
|
storage: 'size',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 50,
|
||||||
|
setValue: 13,
|
||||||
|
text: {
|
||||||
|
head: 'Font size',
|
||||||
|
desc: '<span style="font-size:13px">13px(absolute value)</span>',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ha',
|
||||||
|
storage: 'ha',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: false,
|
||||||
|
text: {
|
||||||
|
head: 'Disable hardware acceleration',
|
||||||
|
desc: 'Auto restarted',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: '是',
|
||||||
|
value: 'true'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '否',
|
||||||
|
value: 'false'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ua',
|
||||||
|
storage: 'ua_setting',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
setValue: '',
|
||||||
|
width: 200,
|
||||||
|
text: {
|
||||||
|
head: 'User agent',
|
||||||
|
desc: 'Restart when changed'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'srcUrl',
|
||||||
|
storage: 'srcUrl',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 200,
|
||||||
|
setValue: 'https://google.com/search?q={q}',
|
||||||
|
text: {
|
||||||
|
head: 'Search engine',
|
||||||
|
desc: '{q} will be replaced to query.',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'download',
|
||||||
|
storage: 'dl-win',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Versioning(o Windows downloader)',
|
||||||
|
desc: 'ex: TheDesk-1.0.0-setup.exe',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var tlConstruction = [
|
||||||
|
{
|
||||||
|
id: 'time',
|
||||||
|
storage: 'datetype',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'absolute',
|
||||||
|
text: {
|
||||||
|
head: 'Time format',
|
||||||
|
desc: 'Relative format:"1 minutes ago","3 days ago"<br>Absolute format:"23:25:21","2017/12/30 23:59:00"<br>Mixed format:toots posted today are relative-format, others are absolute-format.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Relative',
|
||||||
|
value: 'relative'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Absolute',
|
||||||
|
value: 'absolute'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Both relative and absolute',
|
||||||
|
value: 'double'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Mixed',
|
||||||
|
value: 'medium'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ul',
|
||||||
|
storage: 'locale',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Server\s unique locale',
|
||||||
|
desc: 'This value is available on some Japanese servers',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'nsfw',
|
||||||
|
storage: 'nsfw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide Mark sensitive pictures',
|
||||||
|
desc: 'Strong blur effect',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw',
|
||||||
|
storage: 'cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Hide CW contents',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'rp',
|
||||||
|
storage: 'replyct',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'hidden',
|
||||||
|
text: {
|
||||||
|
head: 'Reply counter style',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Show 1+ if the replies are more than 1.',
|
||||||
|
value: 'hidden'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Show full count(1,2...)',
|
||||||
|
value: 'all'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'gif',
|
||||||
|
storage: 'gif',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animated GIF images animation',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'tag',
|
||||||
|
storage: 'tag-range',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'local',
|
||||||
|
text: {
|
||||||
|
head: 'Tag TL Search',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Use federated network',
|
||||||
|
value: 'all'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Use local network',
|
||||||
|
value: 'local'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'via',
|
||||||
|
storage: 'viashow',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Show via',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'mov',
|
||||||
|
storage: 'mouseover',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Hide action buttons without mouseover',
|
||||||
|
desc: 'You may feel \mouseover\ is unconfortable:(',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Mouseover to show',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Click to show',
|
||||||
|
value: 'click'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '否',
|
||||||
|
value: 'no'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'notfm',
|
||||||
|
storage: 'setasread',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Show Notification marker, red colored bell and counter(if you show a notification column.)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'sentence',
|
||||||
|
storage: 'sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'lines above 或' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'letters',
|
||||||
|
storage: 'letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'letters above' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Auto folding',
|
||||||
|
desc: 'TheDesk does not collapse totes of 5 characters or less. Also, when collapsing, newlines are not shown. TheDesk count only newlines as the number of lines.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img-height',
|
||||||
|
storage: 'img-height',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 80,
|
||||||
|
setValue: 200,
|
||||||
|
text: {
|
||||||
|
head: 'Height of images',
|
||||||
|
desc: 'Option:Set "full" to uncrop.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ticker',
|
||||||
|
storage: 'ticker_ok',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Enable OpenSticker',
|
||||||
|
desc: 'Show the instance name and favicon of tooters <a href="https://opensticker.0px.io">About OpenSticker</a>',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'anime',
|
||||||
|
storage: 'animation',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Animation of timelines',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'markers',
|
||||||
|
storage: 'markers',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Markers(mark as read) on HTL and notifications',
|
||||||
|
desc: 'Mastodon 3.0~. Shared on WebUI and third-party supported clients.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'remote_img',
|
||||||
|
storage: 'remote_img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Get images from the remote server',
|
||||||
|
desc: 'All previews are got from your loginned cache server.',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'bkm',
|
||||||
|
storage: 'bookmark',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Show a bookmarking toot button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'scroll',
|
||||||
|
storage: 'scroll',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normalScrollBar',
|
||||||
|
text: {
|
||||||
|
head: 'Height of the scroll bar',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Thick',
|
||||||
|
value: 'thickScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Normal',
|
||||||
|
value: 'normalScrollBar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Thin',
|
||||||
|
value: 'thinScrollBar'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'replySound',
|
||||||
|
storage: 'replySound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Reply)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'favSound',
|
||||||
|
storage: 'favSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Fav)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'btSound',
|
||||||
|
storage: 'btSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Boost)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'followSound',
|
||||||
|
storage: 'followSound',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'none',
|
||||||
|
text: {
|
||||||
|
head: 'Sound(Follow)',
|
||||||
|
desc: '',
|
||||||
|
checkbox: sound
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
var postConstruction = [
|
||||||
|
{
|
||||||
|
id: 'cw-text',
|
||||||
|
storage: 'cw-text',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 150,
|
||||||
|
setValue: '',
|
||||||
|
text: {
|
||||||
|
head: 'Default warining text',
|
||||||
|
desc: '',
|
||||||
|
after: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: true,
|
||||||
|
data: [
|
||||||
|
{
|
||||||
|
id: 'cw_sentence',
|
||||||
|
storage: 'cw_sentence',
|
||||||
|
width: 50,
|
||||||
|
setValue: 500,
|
||||||
|
text: { after: 'lines above 或' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw_letters',
|
||||||
|
storage: 'cw_letters',
|
||||||
|
width: 50,
|
||||||
|
setValue: 7000,
|
||||||
|
text: { after: 'letters above' }
|
||||||
|
}
|
||||||
|
],
|
||||||
|
text: {
|
||||||
|
head: 'Alert before posting a long toot.',
|
||||||
|
desc: 'Show dialog whether you make too-long text hidden.'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cws',
|
||||||
|
storage: 'always-cw',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Always CW set',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cw-continue',
|
||||||
|
storage: 'cw-continue',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: '@@cwContinue@@',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'vis',
|
||||||
|
storage: 'vis',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Default visibility',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Public',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Unlisted',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Private',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direct',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Memory(memorized as each server)',
|
||||||
|
value: 'memory'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Default of your visibility(Set on preferences of Mastodon server)',
|
||||||
|
value: 'useapi'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'img',
|
||||||
|
storage: 'img',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'no-act',
|
||||||
|
text: {
|
||||||
|
head: 'Posting images preferences',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Insert media URL',
|
||||||
|
value: 'url'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Insert nothig',
|
||||||
|
value: 'no-act'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'box',
|
||||||
|
storage: 'box',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'yes',
|
||||||
|
text: {
|
||||||
|
head: 'Action of posting-box',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Folding',
|
||||||
|
value: 'yes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Open after posting',
|
||||||
|
value: 'no'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Absolutely open',
|
||||||
|
value: 'absolute'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'quote',
|
||||||
|
storage: 'quote',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'nothing',
|
||||||
|
text: {
|
||||||
|
head: 'Quote format',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Only URL',
|
||||||
|
value: 'simple'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL and acct(mention to the user)',
|
||||||
|
value: 'mention'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'URL, text and acct(mention to the user)',
|
||||||
|
value: 'full'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'API(only some instances)',
|
||||||
|
value: 'apiQuote',
|
||||||
|
quote: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Disabled(Hide buttons on TLs)',
|
||||||
|
value: 'nothing'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'main',
|
||||||
|
storage: 'mainuse',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'remain',
|
||||||
|
text: {
|
||||||
|
head: 'Default accounts of actions',
|
||||||
|
desc: 'Main account can be set on Account Manager.',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Account you used recently',
|
||||||
|
value: 'remain'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Main account',
|
||||||
|
value: 'main'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'sec',
|
||||||
|
storage: 'sec',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'public',
|
||||||
|
text: {
|
||||||
|
head: 'Secondary Toot Button',
|
||||||
|
desc: '',
|
||||||
|
checkbox: [
|
||||||
|
{
|
||||||
|
text: 'Hidden',
|
||||||
|
value: 'nothing'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Public',
|
||||||
|
value: 'public'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Unlisted',
|
||||||
|
value: 'unlisted'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Private',
|
||||||
|
value: 'private'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Direct',
|
||||||
|
value: 'direct'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Local Only',
|
||||||
|
value: 'local',
|
||||||
|
kirishima: true,
|
||||||
|
kirishimaText: '非対応インスタンスでは「未収載」になります。'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'zero',
|
||||||
|
storage: 'emoji-zero-width',
|
||||||
|
checkbox: true,
|
||||||
|
setValue: 'normal',
|
||||||
|
setValue: 'no',
|
||||||
|
text: {
|
||||||
|
head: 'Zero-width space when inserting emojis',
|
||||||
|
desc: '',
|
||||||
|
checkbox: yesno
|
||||||
|
}
|
||||||
|
},{
|
||||||
|
id: 'uploadCrop',
|
||||||
|
storage: 'uploadCrop',
|
||||||
|
checkbox: false,
|
||||||
|
doubleText: false,
|
||||||
|
width: 100,
|
||||||
|
setValue: '0',
|
||||||
|
text: {
|
||||||
|
head: 'Auto scale to fit',
|
||||||
|
desc: 'Max long-side px. Uploaded images are converted to JPEG(from JPEG) or PNG(from others). Set 0 and the images will not be resized. Notice: if you post an animated picture like GIF, it will be converted static one.',
|
||||||
|
after: 'px'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
302
app/view/zh-TW/update.html
Normal file
302
app/view/zh-TW/update.html
Normal file
|
@ -0,0 +1,302 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-TW">
|
||||||
|
<head>
|
||||||
|
<title>Update - TheDesk</title>
|
||||||
|
<link href="../../node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" />
|
||||||
|
<link href="../../css/master.css" type="text/css" rel="stylesheet" />
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<!--
|
||||||
|
<script type="text/javascript">
|
||||||
|
var _jipt = []
|
||||||
|
_jipt.push(['project', 'thedesk'])
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||||
|
-->
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: 'Open Sans';
|
||||||
|
-webkit-app-region: drag;
|
||||||
|
cursor: move;
|
||||||
|
padding: 10px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#start {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width: 100vw;
|
||||||
|
height: calc(100vh - 2.5rem);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#checkbox {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
a,
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
label,
|
||||||
|
i {
|
||||||
|
-webkit-app-region: no-drag;
|
||||||
|
}
|
||||||
|
|
||||||
|
#updskip {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
height: 100px;
|
||||||
|
border: 1px solid;
|
||||||
|
margin-left: 5px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
border: 1px solid #c26363;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #c26363;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skipbtn:hover {
|
||||||
|
background-color: #c26363;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#prog {
|
||||||
|
font-size: 200%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<link href="../../node_modules/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" />
|
||||||
|
<script>var pwa = false;</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<script type="text/javascript" src="../../node_modules/jquery/dist/jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||||
|
<script type="text/javascript" src="../../node_modules/materialize-css/dist/js/materialize.js"></script>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="about();">info</i>
|
||||||
|
<i class="material-icons pointer waves-effect" onclick="skipper();">clear</i>
|
||||||
|
<!--a href="update.html">Reload</a-->
|
||||||
|
<div id="start" style="filter: brightness(100%)">
|
||||||
|
<div id="box" class="show">
|
||||||
|
<h2>TheDesk</h2>
|
||||||
|
<p>取得最新的 TheDesk</p>
|
||||||
|
<span id="now"></span>→<b id="ver"></b><br />
|
||||||
|
<a href="" id="github" class="btn waves-effect grey darken-1"><i class="fab fa-github left"></i>新功能?</a><br />
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left: 15px;">安裝程式 (建議)</button>
|
||||||
|
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left: 15px;">可攜式版本</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left: 15px;">zip 壓縮檔</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxdeb')" style="margin-left: 15px;">deb (建議於 Ubuntu 與 Debian 使用)</button>
|
||||||
|
<button class="waves-effect btn linux hide" onclick="update('linuxsnap')" style="margin-left: 15px;">snap 軟體包裹</button>
|
||||||
|
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left: 15px;">開始</button>
|
||||||
|
<br />
|
||||||
|
有些問題嗎?<br />請於 <a href='https://thedesk.top'>Oficial HP</a> 下載。
|
||||||
|
</div>
|
||||||
|
<div id="skipper" class="hide">
|
||||||
|
<h4>掠過這個更新</h4>
|
||||||
|
您可能會失去很酷的體驗!<br />
|
||||||
|
<div id="updskip">
|
||||||
|
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>隱藏直到下個時間軸讀取時</div>
|
||||||
|
</a>
|
||||||
|
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light">
|
||||||
|
<div>隱藏直到下個版本</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<a class="pointer waves-effect" onclick="skipper();" style="margin-top: 5px;">持續更新</a>
|
||||||
|
</div>
|
||||||
|
<div id="dlnow" class="hide" style="width: 70%;">
|
||||||
|
<h4>正在下載...</h4>
|
||||||
|
<h4 id="prog"></h4>
|
||||||
|
<div class="progress">
|
||||||
|
<div class="determinate" style="width: 0%;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript" src="../../js/common/about.js"></script>
|
||||||
|
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||||
|
<script>
|
||||||
|
function skipper() {
|
||||||
|
$('#dlnow').addClass('hide')
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
if ($('#box').hasClass('hide') && $('#skipper').hasClass('hide')) {
|
||||||
|
$('#skipper').removeClass('hide')
|
||||||
|
$('#skipper').addClass('show')
|
||||||
|
} else {
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('hide')
|
||||||
|
$('#skipper').toggleClass('show')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
verck()
|
||||||
|
function update(sel) {
|
||||||
|
$('#box').toggleClass('show')
|
||||||
|
$('#box').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('hide')
|
||||||
|
$('#dlnow').toggleClass('show')
|
||||||
|
$('#prog').text('')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
if (sel == 'install') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-setup-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-setup-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'portable') {
|
||||||
|
if (bit == 'x64') {
|
||||||
|
var url = json['winx64p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winx64p_size
|
||||||
|
} else if (bit == 'ia32') {
|
||||||
|
var url = json['winia32p']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'TheDesk-' + json.unique + '-ia32.exe'
|
||||||
|
} else {
|
||||||
|
var file = 'TheDesk-ia32.exe'
|
||||||
|
}
|
||||||
|
var filesize = json.winia32p_size
|
||||||
|
}
|
||||||
|
} else if (sel == 'linux') {
|
||||||
|
var url = json['linuxx64']
|
||||||
|
if (localStorage.getItem('dl-win') == 'yes') {
|
||||||
|
var file = 'thedesk-' + json.unique_linux + '.zip'
|
||||||
|
} else {
|
||||||
|
var file = 'thedesk.zip'
|
||||||
|
}
|
||||||
|
var filesize = json.linuxx64_size
|
||||||
|
} else if (sel == 'linuxdeb') {
|
||||||
|
var url = json['linuxdeb']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.deb'
|
||||||
|
var filesize = json.linuxdeb_size
|
||||||
|
} else if (sel == 'linuxsnap') {
|
||||||
|
var url = json['linuxsnap']
|
||||||
|
var file = 'thedesk_' + json.unique_linux + '_amd64.snap'
|
||||||
|
var filesize = json.linuxsnap_size
|
||||||
|
} else if (sel == 'mac') {
|
||||||
|
var url = json['mac']
|
||||||
|
var file = 'TheDesk-' + json.unique_mac + '.dmg'
|
||||||
|
var filesize = json.mac_size
|
||||||
|
}
|
||||||
|
postMessage(['downloadButton', [url, file, filesize]], '*')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function quit() {
|
||||||
|
postMessage(['sendSinmpleIpc', 'quit'], '*')
|
||||||
|
}
|
||||||
|
function updateProg(arg) {
|
||||||
|
$('.determinate').css('width', arg[0].percent * 100 + '%')
|
||||||
|
$('#prog').html(`${Math.floor(arg[0].percent * 100)}%<br />(${Math.floor(arg[0].percent*arg[1]/1024/1024*10)/10} MB / ${Math.floor(arg[1]/1024/1024*10)/10} MB)`)
|
||||||
|
|
||||||
|
}
|
||||||
|
function updateMess(arg) {
|
||||||
|
console.log(arg)
|
||||||
|
$('#prog').text(arg)
|
||||||
|
}
|
||||||
|
function verck() {
|
||||||
|
var platform = localStorage.getItem('platform')
|
||||||
|
var bit = localStorage.getItem('bit')
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('.windows').removeClass('hide')
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('.linux').removeClass('hide')
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('.mac').removeClass('hide')
|
||||||
|
}
|
||||||
|
var start = 'https://thedesk.top/ver.json'
|
||||||
|
fetch(start, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: { 'content-type': 'application/json' },
|
||||||
|
})
|
||||||
|
.then(function (response) {
|
||||||
|
if (!response.ok) {
|
||||||
|
response.text().then(function (text) {
|
||||||
|
setLog(response.url, response.status, text)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return response.json()
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
todo(error)
|
||||||
|
setLog(start, 'JSON', error)
|
||||||
|
console.error(error)
|
||||||
|
})
|
||||||
|
.then(function (json) {
|
||||||
|
console.log(json)
|
||||||
|
if (platform == 'win32') {
|
||||||
|
$('#ver').text(json.desk)
|
||||||
|
localStorage.setItem('next-ver', json.desk)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique
|
||||||
|
} else if (platform == 'linux') {
|
||||||
|
$('#ver').text(json.desk_linux)
|
||||||
|
localStorage.setItem('next-ver', json.desk_linux)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_linux
|
||||||
|
} else if (platform == 'darwin') {
|
||||||
|
$('#ver').text(json.desk_mac)
|
||||||
|
localStorage.setItem('next-ver', json.desk_mac)
|
||||||
|
var url = 'https://github.com/cutls/TheDesk/releases/tag/v' + json.unique_mac
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#github').attr('href', url)
|
||||||
|
|
||||||
|
$('#now').text(localStorage.getItem('ver'))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function nextv() {
|
||||||
|
localStorage.setItem('new-ver-skip', 'true')
|
||||||
|
window.close()
|
||||||
|
}
|
||||||
|
function enc(ver) {
|
||||||
|
var ver = ver.replace(/\s/g, '')
|
||||||
|
var ver = ver.replace(/\(/g, '-')
|
||||||
|
var ver = ver.replace(/\)/g, '')
|
||||||
|
var ver = ver.replace(/\[/g, '_')
|
||||||
|
var ver = ver.replace(/\]/g, '')
|
||||||
|
return ver
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user