Merge branch 'develop' of https://codeberg.org/calckey/calckey into upstream/develop
This commit is contained in:
commit
50031f1150
14 changed files with 785 additions and 1065 deletions
|
@ -40,26 +40,6 @@ body:
|
||||||
placeholder: stop.voring.me
|
placeholder: stop.voring.me
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
- type: dropdown
|
|
||||||
id: browsers
|
|
||||||
attributes:
|
|
||||||
label: What browser are you using?
|
|
||||||
multiple: false
|
|
||||||
options:
|
|
||||||
- Firefox
|
|
||||||
- Chrome
|
|
||||||
- Brave
|
|
||||||
- Librewolf
|
|
||||||
- Chromium
|
|
||||||
- Safari
|
|
||||||
- Microsoft Edge
|
|
||||||
- Other (Please Specify)
|
|
||||||
- type: textarea
|
|
||||||
id: logs
|
|
||||||
attributes:
|
|
||||||
label: Relevant log output
|
|
||||||
description: Please copy and paste any relevant log output. You can find your log by inspecting the page, and going to the "console" tab. This will be automatically formatted into code, so no need for backticks.
|
|
||||||
render: shell
|
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
id: terms
|
id: terms
|
||||||
attributes:
|
attributes:
|
||||||
|
|
|
@ -1468,9 +1468,13 @@ _widgets:
|
||||||
aichan: "Ai"
|
aichan: "Ai"
|
||||||
_userList:
|
_userList:
|
||||||
chooseList: Wählen Sie eine Liste aus
|
chooseList: Wählen Sie eine Liste aus
|
||||||
userList: Nutzerliste
|
userList: Benutzerliste
|
||||||
|
serverInfo: Server-Infos
|
||||||
|
meiliStatus: Server-Status
|
||||||
|
meiliSize: Indexgröße
|
||||||
|
meiliIndexCount: Indexierte Beiträge
|
||||||
_cw:
|
_cw:
|
||||||
hide: "Inhalt verbergen"
|
hide: "Verbergen"
|
||||||
show: "Inhalt anzeigen"
|
show: "Inhalt anzeigen"
|
||||||
chars: "{count} Zeichen"
|
chars: "{count} Zeichen"
|
||||||
files: "{count} Datei(en)"
|
files: "{count} Datei(en)"
|
||||||
|
@ -1929,10 +1933,11 @@ _deck:
|
||||||
widgets: "Widgets"
|
widgets: "Widgets"
|
||||||
notifications: "Benachrichtigungen"
|
notifications: "Benachrichtigungen"
|
||||||
tl: "Timeline"
|
tl: "Timeline"
|
||||||
antenna: "News-Picker"
|
antenna: "Antenne"
|
||||||
list: "Listen"
|
list: "Listen"
|
||||||
mentions: "Erwähnungen"
|
mentions: "Erwähnungen"
|
||||||
direct: "Direktnachrichten"
|
direct: "Direktnachrichten"
|
||||||
|
channel: Kanal
|
||||||
renameProfile: Arbeitsbereich umbenennen
|
renameProfile: Arbeitsbereich umbenennen
|
||||||
nameAlreadyExists: Der Name für den Arbeitsbereich ist bereits vorhanden.
|
nameAlreadyExists: Der Name für den Arbeitsbereich ist bereits vorhanden.
|
||||||
enableRecommendedTimeline: '"Favoriten"-Timeline einschalten'
|
enableRecommendedTimeline: '"Favoriten"-Timeline einschalten'
|
||||||
|
@ -2073,11 +2078,12 @@ _experiments:
|
||||||
title: Funktionstests
|
title: Funktionstests
|
||||||
postEditingCaption: Zeigt die Option für Nutzer an, ihre bestehenden Beiträge über
|
postEditingCaption: Zeigt die Option für Nutzer an, ihre bestehenden Beiträge über
|
||||||
das Menü "Beitragsoptionen" zu bearbeiten
|
das Menü "Beitragsoptionen" zu bearbeiten
|
||||||
|
enablePostImports: Beitragsimporte aktivieren
|
||||||
noGraze: Bitte deaktivieren Sie die Browsererweiterung "Graze for Mastodon", da sie
|
noGraze: Bitte deaktivieren Sie die Browsererweiterung "Graze for Mastodon", da sie
|
||||||
die Funktion von Calckey stört.
|
die Funktion von Calckey stört.
|
||||||
indexFrom: Indexieren ab Beitragskennung aufwärts
|
indexFrom: Indexieren ab Beitragskennung aufwärts
|
||||||
indexNotice: Wird indexiert. Dies kann einige Zeit dauern. Bitte den Server für mindestens
|
indexNotice: Wird jetzt indexiert. Dies wird wahrscheinlich eine Weile dauern, bitte
|
||||||
eine Stunde nicht neu starten.
|
starten Sie Ihren Server für mindestens eine Stunde nicht neu.
|
||||||
customKaTeXMacroDescription: "Richten Sie Makros ein, um mathematische Ausdrücke einfach
|
customKaTeXMacroDescription: "Richten Sie Makros ein, um mathematische Ausdrücke einfach
|
||||||
zu schreiben! Die Notation entspricht den LaTeX-Befehlsdefinitionen und wird als\n
|
zu schreiben! Die Notation entspricht den LaTeX-Befehlsdefinitionen und wird als\n
|
||||||
\\newcommand{\\name}{content} or \\newcommand{\\name}[number of arguments]{content}\n
|
\\newcommand{\\name}{content} or \\newcommand{\\name}[number of arguments]{content}\n
|
||||||
|
@ -2097,3 +2103,12 @@ image: Bild
|
||||||
video: Video
|
video: Video
|
||||||
audio: Audio
|
audio: Audio
|
||||||
indexFromDescription: Leer lassen, um jeden Beitrag zu indexieren
|
indexFromDescription: Leer lassen, um jeden Beitrag zu indexieren
|
||||||
|
_filters:
|
||||||
|
fromUser: Von Benutzer
|
||||||
|
notesAfter: Beiträge nach
|
||||||
|
withFile: Mit Datei
|
||||||
|
fromDomain: Von Domain
|
||||||
|
notesBefore: Beiträge vor
|
||||||
|
isBot: Dieses Konto ist ein Bot
|
||||||
|
isModerator: Moderator
|
||||||
|
isAdmin: Administrator
|
||||||
|
|
14
locales/pt_BR.yml
Normal file
14
locales/pt_BR.yml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
username: Nome de usuário
|
||||||
|
ok: OK
|
||||||
|
_lang_: Inglês
|
||||||
|
headlineMisskey: Uma plataforma de mídia social descentralizada e de código aberto
|
||||||
|
que é gratuita para sempre! 🚀
|
||||||
|
search: Pesquisar
|
||||||
|
gotIt: Entendi!
|
||||||
|
introMisskey: Bem vinde! Calckey é uma plataforma de mídia social descentralizada
|
||||||
|
e de código aberto que é gratuita para sempre! 🚀
|
||||||
|
searchPlaceholder: Pesquise no Calckey
|
||||||
|
notifications: Notificações
|
||||||
|
password: Senha
|
||||||
|
forgotPassword: Esqueci a senha
|
||||||
|
cancel: Cancelar
|
|
@ -6,7 +6,7 @@
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://codeberg.org/calckey/calckey.git"
|
"url": "https://codeberg.org/calckey/calckey.git"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@8.6.1",
|
"packageManager": "pnpm@8.6.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"rebuild": "pnpm run clean && pnpm -r run build && pnpm run gulp",
|
"rebuild": "pnpm run clean && pnpm -r run build && pnpm run gulp",
|
||||||
|
|
|
@ -97,7 +97,8 @@
|
||||||
|
|
||||||
let fontSize = localStorage.getItem("fontSize");
|
let fontSize = localStorage.getItem("fontSize");
|
||||||
if (fontSize) {
|
if (fontSize) {
|
||||||
if (fontSize < 10) { // need to do this for now, as values before were 1, 2, 3 depending on the option
|
if (fontSize < 10) {
|
||||||
|
// need to do this for now, as values before were 1, 2, 3 depending on the option
|
||||||
localStorage.setItem("fontSize", null);
|
localStorage.setItem("fontSize", null);
|
||||||
fontSize = localStorage.getItem("fontSize");
|
fontSize = localStorage.getItem("fontSize");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import { defineAsyncComponent, reactive } from "vue";
|
import { defineAsyncComponent, reactive } from "vue";
|
||||||
import * as misskey from "calckey-js";
|
import * as misskey from "calckey-js";
|
||||||
import { showSuspendedDialog } from "./scripts/show-suspended-dialog";
|
|
||||||
import { i18n } from "./i18n";
|
import { i18n } from "./i18n";
|
||||||
import { del, get, set } from "@/scripts/idb-proxy";
|
import { del, get, set } from "@/scripts/idb-proxy";
|
||||||
import { apiUrl } from "@/config";
|
import { apiUrl } from "@/config";
|
||||||
|
|
|
@ -289,8 +289,8 @@ function onInputKeydown(evt: KeyboardEvent) {
|
||||||
function formatDateToYYYYMMDD(date) {
|
function formatDateToYYYYMMDD(date) {
|
||||||
const year = date.getFullYear();
|
const year = date.getFullYear();
|
||||||
const month = ("0" + (date.getMonth() + 1)).slice(-2);
|
const month = ("0" + (date.getMonth() + 1)).slice(-2);
|
||||||
const day = ("0" + date.getDate()).slice(-2);
|
const day = ("0" + (date.getDate() + 1)).slice(-2);
|
||||||
return `${year}${month}${day}`;
|
return `${year}-${month}-${day}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function openSearchFilters(ev) {
|
async function openSearchFilters(ev) {
|
||||||
|
|
|
@ -160,7 +160,6 @@
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { defineAsyncComponent } from "vue";
|
import { defineAsyncComponent } from "vue";
|
||||||
import { toUnicode } from "punycode/";
|
import { toUnicode } from "punycode/";
|
||||||
import { showSuspendedDialog } from "../scripts/show-suspended-dialog";
|
|
||||||
import MkButton from "@/components/MkButton.vue";
|
import MkButton from "@/components/MkButton.vue";
|
||||||
import MkInput from "@/components/form/input.vue";
|
import MkInput from "@/components/form/input.vue";
|
||||||
import MkInfo from "@/components/MkInfo.vue";
|
import MkInfo from "@/components/MkInfo.vue";
|
||||||
|
@ -367,6 +366,14 @@ function resetPassword() {
|
||||||
"closed"
|
"closed"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showSuspendedDialog() {
|
||||||
|
os.alert({
|
||||||
|
type: "error",
|
||||||
|
title: i18n.ts.yourAccountSuspendedTitle,
|
||||||
|
text: i18n.ts.yourAccountSuspendedDescription,
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
v-if="$i && user.id != $i.id"
|
v-if="$i && user.id != $i.id"
|
||||||
class="koudoku-button"
|
class="koudoku-button"
|
||||||
:user="user"
|
:user="user"
|
||||||
mini
|
full
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -7,10 +7,6 @@
|
||||||
:class="{ wide: !narrow }"
|
:class="{ wide: !narrow }"
|
||||||
>
|
>
|
||||||
<div class="main">
|
<div class="main">
|
||||||
<!-- TODO -->
|
|
||||||
<!-- <div class="punished" v-if="user.isSuspended"><i class="ph-warning ph-bold ph-lg" style="margin-right: 8px;"></i> {{ i18n.ts.userSuspended }}</div> -->
|
|
||||||
<!-- <div class="punished" v-if="user.isSilenced"><i class="ph-warning ph-bold ph-lg" style="margin-right: 8px;"></i> {{ i18n.ts.userSilenced }}</div> -->
|
|
||||||
|
|
||||||
<div class="profile">
|
<div class="profile">
|
||||||
<MkMoved
|
<MkMoved
|
||||||
v-if="user.movedToUri"
|
v-if="user.movedToUri"
|
||||||
|
@ -117,6 +113,25 @@
|
||||||
class="followed"
|
class="followed"
|
||||||
>{{ i18n.ts.followsYou }}</span
|
>{{ i18n.ts.followsYou }}</span
|
||||||
>
|
>
|
||||||
|
<div
|
||||||
|
v-if="$i?.isModerator || $i?.isAdmin"
|
||||||
|
class="punishments"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="punished"
|
||||||
|
v-if="user.isSilenced"
|
||||||
|
>
|
||||||
|
<i class="ph-warning ph-bold ph-lg"></i>
|
||||||
|
{{ i18n.ts.silenced }}
|
||||||
|
</span>
|
||||||
|
<span
|
||||||
|
class="punished"
|
||||||
|
v-if="user.isSuspended"
|
||||||
|
>
|
||||||
|
<i class="ph-warning ph-bold ph-lg"></i>
|
||||||
|
{{ i18n.ts.suspended }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom">
|
<div class="bottom">
|
||||||
<span class="username"
|
<span class="username"
|
||||||
|
@ -400,9 +415,11 @@ const timeForThem = $computed(() => {
|
||||||
timeZone: tz,
|
timeZone: tz,
|
||||||
hour12: false,
|
hour12: false,
|
||||||
});
|
});
|
||||||
return ` (${theirTime.split(",")[1].trim().split(":")[0]}:${theirTime
|
return ` (${theirTime
|
||||||
.split(" ")[1]
|
.split(",")[1]
|
||||||
.slice(-5, -3)})`;
|
.trim()
|
||||||
|
.split(":")[0]
|
||||||
|
.replace("24", "0")}:${theirTime.split(" ")[1].slice(-5, -3)})`;
|
||||||
}
|
}
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
|
@ -443,11 +460,6 @@ onUnmounted(() => {
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.ftskorzw {
|
.ftskorzw {
|
||||||
> .main {
|
> .main {
|
||||||
> .punished {
|
|
||||||
font-size: 0.8em;
|
|
||||||
padding: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .profile {
|
> .profile {
|
||||||
> .main {
|
> .main {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -504,6 +516,23 @@ onUnmounted(() => {
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
> .punishments {
|
||||||
|
display: flex;
|
||||||
|
gap: 1rem;
|
||||||
|
margin-top: 0.5rem;
|
||||||
|
|
||||||
|
> .punished {
|
||||||
|
padding: 10px;
|
||||||
|
color: var(--infoWarnBg);
|
||||||
|
background-color: var(--infoWarnFg);
|
||||||
|
border-radius: 10px;
|
||||||
|
|
||||||
|
> i {
|
||||||
|
margin-right: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
> .title {
|
> .title {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
import * as os from "@/os";
|
|
||||||
import { i18n } from "@/i18n";
|
|
||||||
|
|
||||||
export function showSuspendedDialog() {
|
|
||||||
return os.alert({
|
|
||||||
type: "error",
|
|
||||||
title: i18n.ts.yourAccountSuspendedTitle,
|
|
||||||
text: i18n.ts.yourAccountSuspendedDescription,
|
|
||||||
});
|
|
||||||
}
|
|
1700
pnpm-lock.yaml
1700
pnpm-lock.yaml
File diff suppressed because it is too large
Load diff
|
@ -5,7 +5,7 @@ body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
value: |
|
||||||
Thanks for taking the time to make Calckey better!
|
Thanks for taking the time to make Calckey better! It's not required, but please consider using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) when making your commits. If you use VSCode, please use the [Conventional Commits extension](https://marketplace.visualstudio.com/items?itemName=vivaxy.vscode-conventional-commits).
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: about
|
id: about
|
||||||
attributes:
|
attributes:
|
||||||
|
|
|
@ -18,4 +18,9 @@ const execa = require('execa');
|
||||||
cwd: __dirname + '/../',
|
cwd: __dirname + '/../',
|
||||||
stdio: 'inherit'
|
stdio: 'inherit'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
execa('cargo', ['clean'], {
|
||||||
|
cwd: __dirname + '/../packages/backend/native-utils',
|
||||||
|
stdio: 'inherit'
|
||||||
|
});
|
||||||
})();
|
})();
|
||||||
|
|
Loading…
Reference in a new issue