1
0
forked from mirror/misskey

Merge branch 'develop'

This commit is contained in:
syuilo 2019-04-22 00:50:14 +09:00
commit dea4a7b389
No known key found for this signature in database
GPG Key ID: BDC4C49D06AB9D69
18 changed files with 170 additions and 100 deletions

View File

@ -1,5 +1,4 @@
# db settings # db settings
POSTGRES_PASSWORD="example-misskey-pass" POSTGRES_PASSWORD=example-misskey-pass
POSTGRES_USER="example-misskey-user" POSTGRES_USER=example-misskey-user
POSTGRES_DB="misskey" POSTGRES_DB=misskey

View File

@ -35,6 +35,13 @@ mongodb:
8. master ブランチに戻す 8. master ブランチに戻す
9. enjoy 9. enjoy
11.2.2 (2019/04/22)
-------------------
### Fixes
* 2段階認証を有効にするとログインできない問題を修正
* リモートユーザーの修復処理が自動的に実行されない問題を修正
* リモートユーザー情報が更新されない問題を修正
11.2.1 (2019/04/21) 11.2.1 (2019/04/21)
------------------- -------------------
### Fixes ### Fixes

View File

@ -77,6 +77,9 @@ common:
"read:messaging": "Prohlížet konverzaci" "read:messaging": "Prohlížet konverzaci"
"write:messaging": "Pracovat s konverzaci" "write:messaging": "Pracovat s konverzaci"
"read:mutes": "Prohlížet ztlumené" "read:mutes": "Prohlížet ztlumené"
"read:notifications": "Prohlížet oznámení"
"write:notifications": "Pracovat s oznámeními"
"read:reactions": "Prohlížet reakce"
"write:votes": "Hlasovat" "write:votes": "Hlasovat"
empty-timeline-info: empty-timeline-info:
follow-users-to-make-your-timeline: "Poznámky sledujících se zobrazí ve vaší časové ose" follow-users-to-make-your-timeline: "Poznámky sledujících se zobrazí ve vaší časové ose"
@ -285,6 +288,7 @@ common:
nav: "Navigace" nav: "Navigace"
tips: "Tipy" tips: "Tipy"
hashtags: "Hashtagy" hashtags: "Hashtagy"
queue: "Ve frontě"
dev: "Nepodařilo se vytvořit aplikace. Prosím zkuste to znovu." dev: "Nepodařilo se vytvořit aplikace. Prosím zkuste to znovu."
ai-chan-kawaii: "Ai-chan kawaii!" ai-chan-kawaii: "Ai-chan kawaii!"
you: "Vy" you: "Vy"
@ -593,6 +597,8 @@ common/views/components/user-list-editor.vue:
remove-user: "Odebrat z tohoto seznamu" remove-user: "Odebrat z tohoto seznamu"
delete-are-you-sure: "Smazat seznam \"$1\"?" delete-are-you-sure: "Smazat seznam \"$1\"?"
deleted: "Smazáno" deleted: "Smazáno"
common/views/components/user-lists.vue:
list-name: "Název seznamu"
common/views/widgets/broadcast.vue: common/views/widgets/broadcast.vue:
fetching: "Načítám" fetching: "Načítám"
next: "Další" next: "Další"
@ -832,8 +838,6 @@ desktop/views/components/received-follow-requests-window.vue:
reject: "Odmítnout" reject: "Odmítnout"
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "Seznamy uživatelů" title: "Seznamy uživatelů"
create-list: "Vytvořit seznam"
list-name: "Název seznamu"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "Příspěvky" notes: "Příspěvky"
desktop/views/components/users-list.vue: desktop/views/components/users-list.vue:
@ -1078,7 +1082,6 @@ mobile/views/components/drive.vue:
used: "využito" used: "využito"
file-count: "Soubor(ů)" file-count: "Soubor(ů)"
folder-is-empty: "Tato složka je prázdná" folder-is-empty: "Tato složka je prázdná"
deletion-alert: "Omlouváme se, ale mazání složek ještě nebylo implementováno."
folder-name: "Název složky" folder-name: "Název složky"
url-prompt: "URL adresa souboru, který chcete nahrát" url-prompt: "URL adresa souboru, který chcete nahrát"
uploading: "Byl zahájen upload. Může chvilku trvat než bude dokončen." uploading: "Byl zahájen upload. Může chvilku trvat než bude dokončen."
@ -1139,6 +1142,10 @@ mobile/views/components/ui.nav.vue:
game: "Hry" game: "Hry"
admin: "Administrace" admin: "Administrace"
about: "O Misskey" about: "O Misskey"
mobile/views/pages/drive.vue:
contextmenu:
upload: "Nahrát soubor"
create-folder: "Vytvořit složku"
mobile/views/pages/user-lists.vue: mobile/views/pages/user-lists.vue:
title: "Seznamy" title: "Seznamy"
mobile/views/pages/signup.vue: mobile/views/pages/signup.vue:

View File

@ -676,6 +676,10 @@ mobile/views/components/ui.nav.vue:
user-lists: "Listen" user-lists: "Listen"
game: "Spielen" game: "Spielen"
about: "Über" about: "Über"
mobile/views/pages/drive.vue:
contextmenu:
upload: "Eine Datei hochladen"
create-folder: "Ein Verzeichnis erstellen"
mobile/views/pages/user-lists.vue: mobile/views/pages/user-lists.vue:
title: "Listen" title: "Listen"
mobile/views/pages/home.vue: mobile/views/pages/home.vue:

View File

@ -84,6 +84,11 @@ common:
"write:messaging": "Work with Messaging" "write:messaging": "Work with Messaging"
"read:mutes": "View Muted" "read:mutes": "View Muted"
"write:mutes": "Work with Muted" "write:mutes": "Work with Muted"
"write:notes": "Create and delete posts"
"read:notifications": "View notifications"
"write:notifications": "Work with notifications"
"read:reactions": "View reactions"
"write:reactions": "Work with reactions"
"write:votes": "Vote" "write:votes": "Vote"
empty-timeline-info: empty-timeline-info:
follow-users-to-make-your-timeline: "Following users will show their posts in your timeline." follow-users-to-make-your-timeline: "Following users will show their posts in your timeline."
@ -484,8 +489,12 @@ common/views/components/user-menu.vue:
mention: "Mention" mention: "Mention"
mute: "Mute" mute: "Mute"
unmute: "Unmute" unmute: "Unmute"
mute-confirm: "Are you sure you want to mute this user?"
unmute-confirm: "Are you certain that you want to unmute this user?"
block: "Block" block: "Block"
unblock: "Unblock" unblock: "Unblock"
block-confirm: "Are you sure you want to block this user?"
unblock-confirm: "Are you certain that you want to unblock this user?"
push-to-list: "Add to list" push-to-list: "Add to list"
select-list: "Select a list" select-list: "Select a list"
report-abuse: "Report abuse" report-abuse: "Report abuse"
@ -493,8 +502,12 @@ common/views/components/user-menu.vue:
report-abuse-reported: "The issue has been reported to the administrator. Your cooperation is much appreciated." report-abuse-reported: "The issue has been reported to the administrator. Your cooperation is much appreciated."
silence: "Silence" silence: "Silence"
unsilence: "Unsilence" unsilence: "Unsilence"
silence-confirm: "Are you sure that you want to silence this user?"
unsilence-confirm: "Are you sure that you want to stop silencing this user?"
suspend: "Suspend" suspend: "Suspend"
unsuspend: "Unsuspend" unsuspend: "Unsuspend"
suspend-confirm: "Are you sure that you want to suspend this user?"
unsuspend-confirm: "Are you sure that you want to unsuspend this user?"
common/views/components/poll.vue: common/views/components/poll.vue:
vote-to: "Vote for '{}'" vote-to: "Vote for '{}'"
vote-count: "{} votes" vote-count: "{} votes"
@ -677,6 +690,9 @@ common/views/components/user-list-editor.vue:
remove-user: "Remove from this list" remove-user: "Remove from this list"
delete-are-you-sure: "Delete list \"$1\"?" delete-are-you-sure: "Delete list \"$1\"?"
deleted: "Deleted successfully" deleted: "Deleted successfully"
common/views/components/user-lists.vue:
create-list: "Create a list"
list-name: "List name"
common/views/widgets/broadcast.vue: common/views/widgets/broadcast.vue:
fetching: "Checking" fetching: "Checking"
no-broadcasts: "No announcements" no-broadcasts: "No announcements"
@ -1025,8 +1041,6 @@ desktop/views/components/received-follow-requests-window.vue:
reject: "Reject" reject: "Reject"
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "User lists" title: "User lists"
create-list: "Create a list"
list-name: "List name"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "Posts" notes: "Posts"
following: "Following" following: "Following"
@ -1204,7 +1218,9 @@ admin/views/users.vue:
unsuspend-confirm: "Are you sure you want to unsuspend this account?" unsuspend-confirm: "Are you sure you want to unsuspend this account?"
unsuspended: "The user has successfully unsuspended." unsuspended: "The user has successfully unsuspended."
make-silence: "Silence" make-silence: "Silence"
silence-confirm: "Silence user?"
unmake-silence: "Unsilence" unmake-silence: "Unsilence"
unsilence-confirm: "Are you certain that you want to stop silencing this user?"
verify: "Verify account" verify: "Verify account"
verify-confirm: "Do you want this to be a verified account?" verify-confirm: "Do you want this to be a verified account?"
verified: "The account is now being verified" verified: "The account is now being verified"
@ -1398,6 +1414,7 @@ desktop/views/widgets/polls.vue:
desktop/views/widgets/post-form.vue: desktop/views/widgets/post-form.vue:
title: "Post" title: "Post"
note: "Post" note: "Post"
something-happened: "Could not be posted in this circumstance."
desktop/views/widgets/profile.vue: desktop/views/widgets/profile.vue:
update-banner: "Click to edit your banner" update-banner: "Click to edit your banner"
update-avatar: "Click to edit your avatar" update-avatar: "Click to edit your avatar"
@ -1416,12 +1433,11 @@ mobile/views/components/drive.vue:
file-count: "File(s)" file-count: "File(s)"
nothing-in-drive: "There's nothing stored." nothing-in-drive: "There's nothing stored."
folder-is-empty: "This folder is empty" folder-is-empty: "This folder is empty"
prompt: "What do you want to do? (Please enter a number): <1 → Upload a file | 2 → Upload a file from a URL | 3 → Create a folder | 4 → Change this folder's name | 5 → Move this folder | 6 → Delete this folder>"
deletion-alert: "Sorry! Deleting a folder is not yet implemented."
folder-name: "Folder name" folder-name: "Folder name"
here-is-root: "Currently, you are on the root, not inside of any folder." here-is-root: "Currently, you are on the root, not inside of any folder."
url-prompt: "URL of the file you want to upload" url-prompt: "URL of the file you want to upload"
uploading: "Upload requested. It may take a while for the upload to finish." uploading: "Upload requested. It may take a while for the upload to finish."
folder-name-cannot-empty: "Folder name cannot be blank."
mobile/views/components/drive-file-chooser.vue: mobile/views/components/drive-file-chooser.vue:
select-file: "Choose files" select-file: "Choose files"
mobile/views/components/drive-folder-chooser.vue: mobile/views/components/drive-folder-chooser.vue:
@ -1495,9 +1511,16 @@ mobile/views/components/ui.nav.vue:
game: "Games" game: "Games"
admin: "Admin" admin: "Admin"
about: "About Misskey" about: "About Misskey"
mobile/views/pages/drive.vue:
contextmenu:
upload: "Upload a file"
url-upload: "Upload file from a URL"
create-folder: "Create a folder"
rename-folder: "Rename folder"
move-folder: "Move this folder"
delete-folder: "Delete this folder"
mobile/views/pages/user-lists.vue: mobile/views/pages/user-lists.vue:
title: "Lists" title: "Lists"
enter-list-name: "Enter a name of the list to make"
mobile/views/pages/signup.vue: mobile/views/pages/signup.vue:
lets-start: "Your account is now ready! 📦" lets-start: "Your account is now ready! 📦"
mobile/views/pages/followers.vue: mobile/views/pages/followers.vue:
@ -1624,10 +1647,12 @@ dev/views/apps.vue:
create-app: "Create app" create-app: "Create app"
app-missing: "No apps" app-missing: "No apps"
dev/views/new-app.vue: dev/views/new-app.vue:
new-app: "New Application"
create-app: "Creating application" create-app: "Creating application"
app-name: "Application name" app-name: "Application name"
app-name-desc: "The name of your app" app-name-desc: "The name of your app"
app-overview: "Application summary" app-overview: "Application summary"
app-overview-desc: "A brief description, or an introduction of your app."
callback-url: "The callback URL (optional)" callback-url: "The callback URL (optional)"
callback-url-desc: "The URL to redirect to after the user is authenticated via the authentication form." callback-url-desc: "The URL to redirect to after the user is authenticated via the authentication form."
authority: "Permissions" authority: "Permissions"

View File

@ -466,6 +466,8 @@ common/views/components/profile-editor.vue:
enter-password: "Escribe una contraseña" enter-password: "Escribe una contraseña"
common/views/components/user-list-editor.vue: common/views/components/user-list-editor.vue:
users: "Usuarios" users: "Usuarios"
common/views/components/user-lists.vue:
list-name: "Nombre de lista"
common/views/widgets/broadcast.vue: common/views/widgets/broadcast.vue:
fetching: "Recuperando" fetching: "Recuperando"
no-broadcasts: "Sin emisión" no-broadcasts: "Sin emisión"
@ -773,8 +775,6 @@ desktop/views/components/received-follow-requests-window.vue:
reject: "Rechazar" reject: "Rechazar"
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "Listas de usuario" title: "Listas de usuario"
create-list: "Crear lista"
list-name: "Nombre de lista"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "Publicaciones" notes: "Publicaciones"
following: "Sigue" following: "Sigue"
@ -931,6 +931,10 @@ mobile/views/components/ui.nav.vue:
game: "Juegos" game: "Juegos"
admin: "Admin" admin: "Admin"
about: "Sobre" about: "Sobre"
mobile/views/pages/drive.vue:
contextmenu:
upload: "Subir fichero"
create-folder: "Crear una carpeta"
mobile/views/pages/user-lists.vue: mobile/views/pages/user-lists.vue:
title: "Listas" title: "Listas"
mobile/views/pages/home.vue: mobile/views/pages/home.vue:

View File

@ -72,6 +72,8 @@ common:
"write:account": "Mettre à jour les informations de votre compte" "write:account": "Mettre à jour les informations de votre compte"
"read:drive": "Parcourir le Drive" "read:drive": "Parcourir le Drive"
"write:drive": "Écrire sur le Drive" "write:drive": "Écrire sur le Drive"
"read:favorites": "Afficher les favoris"
"read:reactions": "Lire les réactions"
"write:votes": "Vote" "write:votes": "Vote"
empty-timeline-info: empty-timeline-info:
follow-users-to-make-your-timeline: "Les utilisateurs suivants afficheront leurs publications sur votre fil." follow-users-to-make-your-timeline: "Les utilisateurs suivants afficheront leurs publications sur votre fil."
@ -136,6 +138,7 @@ common:
appearance: "Apparence" appearance: "Apparence"
behavior: "Comportement" behavior: "Comportement"
fetch-on-scroll: "Chargement automatique lors du défilement" fetch-on-scroll: "Chargement automatique lors du défilement"
fetch-on-scroll-desc: "Chargement automatique du contenu lors du défilement de la page."
note-visibility: "Visibilité de la publication" note-visibility: "Visibilité de la publication"
default-note-visibility: "Visibilité par défaut" default-note-visibility: "Visibilité par défaut"
remember-note-visibility: "Se souvenir du mode de visibilité de la publication" remember-note-visibility: "Se souvenir du mode de visibilité de la publication"
@ -655,6 +658,8 @@ common/views/components/user-list-editor.vue:
remove-user: "Retirer de cette liste" remove-user: "Retirer de cette liste"
delete-are-you-sure: "Voulez-vous vraiment supprimer la liste « $1 » ?" delete-are-you-sure: "Voulez-vous vraiment supprimer la liste « $1 » ?"
deleted: "Supprimé" deleted: "Supprimé"
common/views/components/user-lists.vue:
list-name: "Nom de la liste"
common/views/widgets/broadcast.vue: common/views/widgets/broadcast.vue:
fetching: "Récupération" fetching: "Récupération"
no-broadcasts: "Aucune annonce" no-broadcasts: "Aucune annonce"
@ -955,6 +960,7 @@ common/views/components/password-settings.vue:
changed: "Mot de passe modifié avec succès" changed: "Mot de passe modifié avec succès"
failed: "Échec lors de la modification du mot de passe" failed: "Échec lors de la modification du mot de passe"
common/views/components/post-form-attaches.vue: common/views/components/post-form-attaches.vue:
attach-cancel: "Enlever le fichier attaché"
mark-as-sensitive: "Marquer comme sensible" mark-as-sensitive: "Marquer comme sensible"
unmark-as-sensitive: "Ne pas marquer comme sensible" unmark-as-sensitive: "Ne pas marquer comme sensible"
desktop/views/components/sub-note-content.vue: desktop/views/components/sub-note-content.vue:
@ -1001,8 +1007,6 @@ desktop/views/components/received-follow-requests-window.vue:
reject: "Refuser" reject: "Refuser"
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "Listes de l'utilisateur" title: "Listes de l'utilisateur"
create-list: "Créer une liste"
list-name: "Nom de la liste"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "Publications" notes: "Publications"
following: "Abonné à" following: "Abonné à"
@ -1379,8 +1383,6 @@ mobile/views/components/drive.vue:
file-count: "Fichier·s" file-count: "Fichier·s"
nothing-in-drive: "Rien" nothing-in-drive: "Rien"
folder-is-empty: "Ce dossier est vide" folder-is-empty: "Ce dossier est vide"
prompt: "Que veux-tu faire ? (Entrez un nombre): <1 → Télécharger le fichier | 2 → Télécharger le fichier avec l'URL | 3 → Créer le dossier | 4 → Modifier le nom du dossier | 5 → Déplacer ce dossier | 6 → Supprimer ce dossier >"
deletion-alert: "Désolé ! La suppression dun dossier nest pas encore implémentée."
folder-name: "Nom du dossier" folder-name: "Nom du dossier"
url-prompt: "URL du fichier que vous souhaitez téléverser" url-prompt: "URL du fichier que vous souhaitez téléverser"
uploading: "Envoi demandé. Le téléversement pourrait prendre un certain temps avant de s'achever." uploading: "Envoi demandé. Le téléversement pourrait prendre un certain temps avant de s'achever."
@ -1457,9 +1459,12 @@ mobile/views/components/ui.nav.vue:
game: "Jeux" game: "Jeux"
admin: "Admin" admin: "Admin"
about: "À propos de Misskey" about: "À propos de Misskey"
mobile/views/pages/drive.vue:
contextmenu:
upload: "Téléverser un fichier"
create-folder: "Créer un dossier"
mobile/views/pages/user-lists.vue: mobile/views/pages/user-lists.vue:
title: "Listes" title: "Listes"
enter-list-name: "Nom de la liste"
mobile/views/pages/signup.vue: mobile/views/pages/signup.vue:
lets-start: "Votre compte est prêt ! 📦" lets-start: "Votre compte est prêt ! 📦"
mobile/views/pages/followers.vue: mobile/views/pages/followers.vue:

View File

@ -478,6 +478,8 @@ common/views/components/profile-editor.vue:
enter-password: "パスワードを入れてや" enter-password: "パスワードを入れてや"
common/views/components/user-list-editor.vue: common/views/components/user-list-editor.vue:
users: "ユーザー" users: "ユーザー"
common/views/components/user-lists.vue:
list-name: "リスト名"
common/views/widgets/broadcast.vue: common/views/widgets/broadcast.vue:
fetching: "見てみるわ…" fetching: "見てみるわ…"
no-broadcasts: "お知らせはあらへんで" no-broadcasts: "お知らせはあらへんで"
@ -815,8 +817,6 @@ desktop/views/components/received-follow-requests-window.vue:
reject: "許さん" reject: "許さん"
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "リスト" title: "リスト"
create-list: "新しいリストを作成"
list-name: "リスト名"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "投稿" notes: "投稿"
following: "フォロー" following: "フォロー"
@ -1071,8 +1071,6 @@ mobile/views/components/drive.vue:
file-count: "ファイル" file-count: "ファイル"
nothing-in-drive: "ドライブには何もあらへんで。" nothing-in-drive: "ドライブには何もあらへんで。"
folder-is-empty: "このフォルダ何もないわ" folder-is-empty: "このフォルダ何もないわ"
prompt: "何すんの?(数字を入れてや): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>"
deletion-alert: "フォルダの削除は未実装やねん...。堪忍な!"
folder-name: "フォルダー名" folder-name: "フォルダー名"
url-prompt: "このURLのファイルをアップロードしたいねん" url-prompt: "このURLのファイルをアップロードしたいねん"
uploading: "アップロードをリクエストしたで。アップロードが完了するまで時間がかかるかも分からん、知らんけど。" uploading: "アップロードをリクエストしたで。アップロードが完了するまで時間がかかるかも分からん、知らんけど。"
@ -1149,9 +1147,12 @@ mobile/views/components/ui.nav.vue:
game: "ゲーム" game: "ゲーム"
admin: "管理" admin: "管理"
about: "Misskeyってなんや" about: "Misskeyってなんや"
mobile/views/pages/drive.vue:
contextmenu:
upload: "ファイル上げる"
create-folder: "フォルダー作る"
mobile/views/pages/user-lists.vue: mobile/views/pages/user-lists.vue:
title: "リスト" title: "リスト"
enter-list-name: "リスト名を入力してや"
mobile/views/pages/signup.vue: mobile/views/pages/signup.vue:
lets-start: "📦 始めようや" lets-start: "📦 始めようや"
mobile/views/pages/followers.vue: mobile/views/pages/followers.vue:

View File

@ -667,6 +667,8 @@ common/views/components/user-list-editor.vue:
remove-user: "이 리스트에서 제거" remove-user: "이 리스트에서 제거"
delete-are-you-sure: "리스트 \"$1\"을 삭제하시겠습니까?" delete-are-you-sure: "리스트 \"$1\"을 삭제하시겠습니까?"
deleted: "삭제하였습니다" deleted: "삭제하였습니다"
common/views/components/user-lists.vue:
list-name: "리스트 이름"
common/views/widgets/broadcast.vue: common/views/widgets/broadcast.vue:
fetching: "확인중" fetching: "확인중"
no-broadcasts: "공지사항이 없습니다" no-broadcasts: "공지사항이 없습니다"
@ -1015,8 +1017,6 @@ desktop/views/components/received-follow-requests-window.vue:
reject: "거부" reject: "거부"
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "리스트" title: "리스트"
create-list: "리스트 만들기"
list-name: "리스트 이름"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "글" notes: "글"
following: "팔로잉" following: "팔로잉"
@ -1406,8 +1406,6 @@ mobile/views/components/drive.vue:
file-count: "파일" file-count: "파일"
nothing-in-drive: "드라이브에 아무것도 없습니다" nothing-in-drive: "드라이브에 아무것도 없습니다"
folder-is-empty: "폴더가 비어있습니다" folder-is-empty: "폴더가 비어있습니다"
prompt: "무엇을 하시겠습니까? (숫자를 입력하여 주십시오): <1 → 파일 업로드 | 2 → 파일을 URL에서 업로드 | 3 → 폴더 만들기 | 4 → 이 폴더의 이름을 변경 | 5 → 현재 폴더 이동| 6 → 현재 폴더 삭제>"
deletion-alert: "죄송합니다! 폴더 삭제는 아직 구현되지 않았습니다..."
folder-name: "폴더 이름" folder-name: "폴더 이름"
here-is-root: "현재 경로는 루트 경로로 폴더가 아닙니다." here-is-root: "현재 경로는 루트 경로로 폴더가 아닙니다."
url-prompt: "업로드 하려는 파일의 URL" url-prompt: "업로드 하려는 파일의 URL"
@ -1485,9 +1483,12 @@ mobile/views/components/ui.nav.vue:
game: "게임" game: "게임"
admin: "관리" admin: "관리"
about: "Misskey에 대하여" about: "Misskey에 대하여"
mobile/views/pages/drive.vue:
contextmenu:
upload: "파일 업로드"
create-folder: "폴더 만들기"
mobile/views/pages/user-lists.vue: mobile/views/pages/user-lists.vue:
title: "리스트" title: "리스트"
enter-list-name: "리스트명을 입력하십시오"
mobile/views/pages/signup.vue: mobile/views/pages/signup.vue:
lets-start: "📦 이제 시작해도 됩니다" lets-start: "📦 이제 시작해도 됩니다"
mobile/views/pages/followers.vue: mobile/views/pages/followers.vue:

View File

@ -403,7 +403,6 @@ desktop/views/components/ui.header.search.vue:
placeholder: "Zoeken" placeholder: "Zoeken"
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "Lijsten" title: "Lijsten"
create-list: "Lijst creëren"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "Berichten" notes: "Berichten"
following: "Volgend" following: "Volgend"
@ -557,6 +556,10 @@ mobile/views/components/ui.nav.vue:
user-lists: "Lijsten" user-lists: "Lijsten"
game: "Othello spelen" game: "Othello spelen"
about: "Over Misskey" about: "Over Misskey"
mobile/views/pages/drive.vue:
contextmenu:
upload: "Bestand uploaden"
create-folder: "Map creëren"
mobile/views/pages/user-lists.vue: mobile/views/pages/user-lists.vue:
title: "Lijsten" title: "Lijsten"
mobile/views/pages/home.vue: mobile/views/pages/home.vue:

View File

@ -192,6 +192,8 @@ common/views/components/profile-editor.vue:
user-lists: "Lister" user-lists: "Lister"
common/views/components/user-list-editor.vue: common/views/components/user-list-editor.vue:
users: "Bruker" users: "Bruker"
common/views/components/user-lists.vue:
list-name: "Liste navn"
common/views/widgets/broadcast.vue: common/views/widgets/broadcast.vue:
fetching: "Henter" fetching: "Henter"
next: "Neste" next: "Neste"
@ -310,7 +312,6 @@ desktop/views/components/received-follow-requests-window.vue:
reject: "Avslå" reject: "Avslå"
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "Brukerlister" title: "Brukerlister"
list-name: "Liste navn"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "Innlegg" notes: "Innlegg"
following: "Følger" following: "Følger"

View File

@ -512,6 +512,8 @@ common/views/components/user-list-editor.vue:
remove-user: "Usuń z tej listy" remove-user: "Usuń z tej listy"
delete-are-you-sure: "Usunąć listę \"$1\"?" delete-are-you-sure: "Usunąć listę \"$1\"?"
deleted: "Usunięto" deleted: "Usunięto"
common/views/components/user-lists.vue:
list-name: "Nazwa listy"
common/views/widgets/broadcast.vue: common/views/widgets/broadcast.vue:
fetching: "Sprawdzanie" fetching: "Sprawdzanie"
no-broadcasts: "Brak transmisji" no-broadcasts: "Brak transmisji"
@ -834,8 +836,6 @@ desktop/views/components/received-follow-requests-window.vue:
reject: "Odmów" reject: "Odmów"
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "Listy" title: "Listy"
create-list: "Utwórz listę"
list-name: "Nazwa listy"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "Wpisy" notes: "Wpisy"
following: "Śledzeni" following: "Śledzeni"
@ -1026,8 +1026,6 @@ mobile/views/components/drive.vue:
file-count: "Plik(i)" file-count: "Plik(i)"
nothing-in-drive: "Pusto" nothing-in-drive: "Pusto"
folder-is-empty: "Ten katalog jest pusty" folder-is-empty: "Ten katalog jest pusty"
prompt: "Co chcesz zrobić? (wprowadź odpowiednią cyfrę): <1 → Wysłać plik | 2 → Wysłać plik z adresu URL | 3 → Utworzyć katalog | 4 → Zmienić nazwę tego katalogu | 5 → Przenieść ten katalog | 6 → Usunąć ten katalog>"
deletion-alert: "Przepraszamy. Usuwanie katalogów nie zostało jeszcze zaimplementowane."
folder-name: "Nazwa katalogu" folder-name: "Nazwa katalogu"
url-prompt: "Adres URL pliku, który chcesz wysłać" url-prompt: "Adres URL pliku, który chcesz wysłać"
uploading: "Rozpoczęto wysyłanie. Może to trochę potrwać." uploading: "Rozpoczęto wysyłanie. Może to trochę potrwać."
@ -1103,9 +1101,12 @@ mobile/views/components/ui.nav.vue:
game: "Gry" game: "Gry"
admin: "Admin" admin: "Admin"
about: "O Misskey" about: "O Misskey"
mobile/views/pages/drive.vue:
contextmenu:
upload: "Wyślij plik"
create-folder: "Utwórz katalog"
mobile/views/pages/user-lists.vue: mobile/views/pages/user-lists.vue:
title: "Listy" title: "Listy"
enter-list-name: "Wprowadź nazwę listy"
mobile/views/pages/signup.vue: mobile/views/pages/signup.vue:
lets-start: "Rozpocznijmy! 📦" lets-start: "Rozpocznijmy! 📦"
mobile/views/pages/home.vue: mobile/views/pages/home.vue:

View File

@ -162,7 +162,7 @@ common:
keep-cw: "保留内容警告" keep-cw: "保留内容警告"
keep-cw-desc: "在回复帖子时,如果原帖设置了内容警告,默认情况下回帖也会设置相同的内容警告。" keep-cw-desc: "在回复帖子时,如果原帖设置了内容警告,默认情况下回帖也会设置相同的内容警告。"
i-like-sushi: "相比于布丁来说, 我更喜欢寿司。" i-like-sushi: "相比于布丁来说, 我更喜欢寿司。"
show-reversi-board-labels: "在 Reversi 中显示行和列表签" show-reversi-board-labels: "在黑白棋中显示行和列表签"
use-avatar-reversi-stones: "用头像作为黑白棋的棋子" use-avatar-reversi-stones: "用头像作为黑白棋的棋子"
disable-animated-mfm: "在帖子中禁用动画文本" disable-animated-mfm: "在帖子中禁用动画文本"
disable-showing-animated-images: "不播放动画" disable-showing-animated-images: "不播放动画"
@ -205,9 +205,9 @@ common:
show-clock-on-header: "在右上角显示时钟" show-clock-on-header: "在右上角显示时钟"
show-reply-target: "显示回复目标" show-reply-target: "显示回复目标"
timeline: "时间线" timeline: "时间线"
show-my-renotes: "在时间线上显示我的Renote" show-my-renotes: "在时间线上显示我的转推"
show-renoted-my-notes: "在时间线上显示我的帖子的Renote" show-renoted-my-notes: "在时间线上显示我的帖子的转推"
show-local-renotes: "在时间线上显示本地帖子的Renote" show-local-renotes: "在时间线上显示本地帖子的转推"
remain-deleted-note: "继续显示已删除的帖子" remain-deleted-note: "继续显示已删除的帖子"
sound: "声音" sound: "声音"
enable-sounds: "开启声音" enable-sounds: "开启声音"
@ -257,7 +257,7 @@ common:
is-remote-user: "此用户信息可能不准确。" is-remote-user: "此用户信息可能不准确。"
is-remote-post: "该投稿已被复制." is-remote-post: "该投稿已被复制."
view-on-remote: "查看准确的信息" view-on-remote: "查看准确的信息"
renoted-by: "由 {user} Renote" renoted-by: "由 {user} 转推"
no-notes: "没有帖子" no-notes: "没有帖子"
turn-on-darkmode: "切换暗色主题" turn-on-darkmode: "切换暗色主题"
turn-off-darkmode: "切换亮色主题" turn-off-darkmode: "切换亮色主题"
@ -338,8 +338,8 @@ common/views/components/games/reversi/reversi.game.vue:
surrender: "认输" surrender: "认输"
surrendered: "已认输" surrendered: "已认输"
is-llotheo: "棋子较少一方获胜(LLoTheO规则)" is-llotheo: "棋子较少一方获胜(LLoTheO规则)"
looped-map: "棋盘" looped-map: "环棋盘"
can-put-everywhere: "可以下在任意置" can-put-everywhere: "可以下在任意置"
common/views/components/games/reversi/reversi.index.vue: common/views/components/games/reversi/reversi.index.vue:
title: "Misskey 黑白棋" title: "Misskey 黑白棋"
sub-title: "和其他人一起来玩Misskey黑白棋" sub-title: "和其他人一起来玩Misskey黑白棋"
@ -363,8 +363,8 @@ common/views/components/games/reversi/reversi.room.vue:
black-is: "{}是黑" black-is: "{}是黑"
rules: "规则" rules: "规则"
is-llotheo: "棋子较少一方获胜(LLoTheO规则)" is-llotheo: "棋子较少一方获胜(LLoTheO规则)"
looped-map: "棋盘" looped-map: "环棋盘"
can-put-everywhere: "可以下在任意置" can-put-everywhere: "可以下在任意置"
settings-of-the-bot: "机器人设定" settings-of-the-bot: "机器人设定"
this-game-is-started-soon: "游戏即将在数秒后开始" this-game-is-started-soon: "游戏即将在数秒后开始"
waiting-for-other: "等待对手准备" waiting-for-other: "等待对手准备"
@ -480,8 +480,8 @@ common/views/components/note-menu.vue:
unfavorite: "取消收藏" unfavorite: "取消收藏"
watch: "关注" watch: "关注"
unwatch: "取消关注" unwatch: "取消关注"
pin: "固定个人资料" pin: "置顶"
unpin: "解除固定" unpin: "取消置顶"
delete: "删除" delete: "删除"
delete-confirm: "确定删除这个投稿吗?" delete-confirm: "确定删除这个投稿吗?"
remote: "显示原始投稿" remote: "显示原始投稿"
@ -489,8 +489,12 @@ common/views/components/user-menu.vue:
mention: "提到" mention: "提到"
mute: "屏蔽" mute: "屏蔽"
unmute: "解除屏蔽" unmute: "解除屏蔽"
mute-confirm: "屏蔽此用户?"
unmute-confirm: "取消屏蔽用户?"
block: "拉黑" block: "拉黑"
unblock: "取消拉黑" unblock: "取消拉黑"
block-confirm: "确定拉黑此用户?"
unblock-confirm: "取消拉黑此用户?"
push-to-list: "添加至列表" push-to-list: "添加至列表"
select-list: "请选择一个列表" select-list: "请选择一个列表"
report-abuse: "举报骚扰" report-abuse: "举报骚扰"
@ -498,8 +502,12 @@ common/views/components/user-menu.vue:
report-abuse-reported: "已报告给管理员。 非常感谢你的合作。" report-abuse-reported: "已报告给管理员。 非常感谢你的合作。"
silence: "禁言" silence: "禁言"
unsilence: "解除禁言" unsilence: "解除禁言"
silence-confirm: "确认屏蔽此用户?"
unsilence-confirm: "取消屏蔽此用户?"
suspend: "冻结" suspend: "冻结"
unsuspend: "解除冻结" unsuspend: "解除冻结"
suspend-confirm: "确认冻结此用户?"
unsuspend-confirm: "确认解冻此用户?"
common/views/components/poll.vue: common/views/components/poll.vue:
vote-to: "为\"{}\"投票" vote-to: "为\"{}\"投票"
vote-count: "{}票" vote-count: "{}票"
@ -682,6 +690,9 @@ common/views/components/user-list-editor.vue:
remove-user: "从此列表中删除" remove-user: "从此列表中删除"
delete-are-you-sure: "删除列表“$1”" delete-are-you-sure: "删除列表“$1”"
deleted: "已删除" deleted: "已删除"
common/views/components/user-lists.vue:
create-list: "创建列表"
list-name: "列表名称"
common/views/widgets/broadcast.vue: common/views/widgets/broadcast.vue:
fetching: "确认中" fetching: "确认中"
no-broadcasts: "没有公告" no-broadcasts: "没有公告"
@ -724,7 +735,7 @@ common/views/widgets/tips.vue:
tips-line8: "可以从设置中定制主页。" tips-line8: "可以从设置中定制主页。"
tips-line9: "Misskey 根据 AGPLv3 获得许可。" tips-line9: "Misskey 根据 AGPLv3 获得许可。"
tips-line10: "使用Time Machine(时光机)小部件可以轻松追溯到过去的时间轴。" tips-line10: "使用Time Machine(时光机)小部件可以轻松追溯到过去的时间轴。"
tips-line11: "您可以点击“...”将帖子固定到用户页面" tips-line11: "您可以点击“...”将帖子置顶到用户页面"
tips-line13: "附在帖子上的所有文件都会保存到网盘中。" tips-line13: "附在帖子上的所有文件都会保存到网盘中。"
tips-line14: "在自定义首页布局时,您可以右键单击窗口小部件以更改其设计。" tips-line14: "在自定义首页布局时,您可以右键单击窗口小部件以更改其设计。"
tips-line17: "用“**”围绕文本将突出显示它。" tips-line17: "用“**”围绕文本将突出显示它。"
@ -759,7 +770,7 @@ desktop/views/components/activity.chart.vue:
total: "黑 ... 总计" total: "黑 ... 总计"
notes: "蓝 ... 投稿" notes: "蓝 ... 投稿"
replies: "红 ... 回复" replies: "红 ... 回复"
renotes: "绿 ... 转" renotes: "绿 ... 转"
desktop/views/components/activity.vue: desktop/views/components/activity.vue:
title: "活动" title: "活动"
toggle: "切换显示" toggle: "切换显示"
@ -856,12 +867,12 @@ desktop/views/components/note-detail.vue:
private: "私密投稿" private: "私密投稿"
deleted: "投稿已删除" deleted: "投稿已删除"
location: "位置信息" location: "位置信息"
renote: "转" renote: "转"
add-reaction: "回应" add-reaction: "回应"
undo-reaction: "取消回应" undo-reaction: "取消回应"
desktop/views/components/note.vue: desktop/views/components/note.vue:
reply: "回复" reply: "回复"
renote: "Renote" renote: "转推"
add-reaction: "回应" add-reaction: "回应"
undo-reaction: "取消回应" undo-reaction: "取消回应"
detail: "详细信息" detail: "详细信息"
@ -880,13 +891,13 @@ desktop/views/components/post-form.vue:
quote-placeholder: "引用这个帖子…" quote-placeholder: "引用这个帖子…"
submit: "投稿" submit: "投稿"
reply: "回复" reply: "回复"
renote: "转" renote: "转"
posted: "已发送投稿!" posted: "已发送投稿!"
replied: "已回复!" replied: "已回复!"
reposted: "已转!" reposted: "已转!"
note-failed: "发帖失败" note-failed: "发帖失败"
reply-failed: "回复失败" reply-failed: "回复失败"
renote-failed: "转失败" renote-failed: "转失败"
posting: "发送中" posting: "发送中"
attach-media-from-local: "从设备中添加媒体文件" attach-media-from-local: "从设备中添加媒体文件"
attach-media-from-drive: "从网盘中添加媒体文件" attach-media-from-drive: "从网盘中添加媒体文件"
@ -911,13 +922,13 @@ desktop/views/components/progress-dialog.vue:
desktop/views/components/renote-form.vue: desktop/views/components/renote-form.vue:
quote: "引用..." quote: "引用..."
cancel: "取消" cancel: "取消"
renote: "重新发送" renote: "转推"
renote-home: "重新发送(首页)" renote-home: "转推(首页)"
reposting: "重新发送中..." reposting: "重新发送中..."
success: "已重新发送" success: "已转推"
failure: "重新发送失败" failure: "转推失败"
desktop/views/components/renote-form-window.vue: desktop/views/components/renote-form-window.vue:
title: "您是否要重新发送" title: "您是否要转推"
desktop/views/pages/user-following-or-followers.vue: desktop/views/pages/user-following-or-followers.vue:
following: "{user}的正在关注" following: "{user}的正在关注"
followers: "{user}的关注者" followers: "{user}的关注者"
@ -967,7 +978,7 @@ common/views/components/drive-settings.vue:
common/views/components/mute-and-block.vue: common/views/components/mute-and-block.vue:
mute-and-block: "屏蔽/拉黑" mute-and-block: "屏蔽/拉黑"
mute: "屏蔽" mute: "屏蔽"
block: "拉黑" block: "拉黑"
no-muted-users: "无屏蔽用户" no-muted-users: "无屏蔽用户"
no-blocked-users: "无拉黑的用户" no-blocked-users: "无拉黑的用户"
word-mute: "文字屏蔽" word-mute: "文字屏蔽"
@ -1030,8 +1041,6 @@ desktop/views/components/received-follow-requests-window.vue:
reject: "拒绝" reject: "拒绝"
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "用户列表" title: "用户列表"
create-list: "创建列表"
list-name: "列表名称"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "帖子" notes: "帖子"
following: "关注中" following: "关注中"
@ -1209,7 +1218,9 @@ admin/views/users.vue:
unsuspend-confirm: "是否解除冻结?" unsuspend-confirm: "是否解除冻结?"
unsuspended: "已成功解除用户冻结" unsuspended: "已成功解除用户冻结"
make-silence: "禁言" make-silence: "禁言"
silence-confirm: "确认屏蔽?"
unmake-silence: "解除禁言" unmake-silence: "解除禁言"
unsilence-confirm: "解除屏蔽?"
verify: "认证用户" verify: "认证用户"
verify-confirm: "是否官方账号?" verify-confirm: "是否官方账号?"
verified: "此账户已被认证" verified: "此账户已被认证"
@ -1422,12 +1433,11 @@ mobile/views/components/drive.vue:
file-count: "文件" file-count: "文件"
nothing-in-drive: "网盘为空" nothing-in-drive: "网盘为空"
folder-is-empty: "这文件夹是空的" folder-is-empty: "这文件夹是空的"
prompt: "您想要干什么呢?(请输入数字):<1 → 上传文件 | 2 → 从URL上传文件 | 3 → 创建新文件夹 | 4 → 更改这个文件夹的名称 | 5 → 移动这个文件夹 | 6 → 删除这个文件夹>"
deletion-alert: "抱歉! 删除文件夹功能尚未实现。"
folder-name: "文件夹名称" folder-name: "文件夹名称"
here-is-root: "当前位置为根目录。" here-is-root: "当前位置为根目录。"
url-prompt: "要上传的文件的URL" url-prompt: "要上传的文件的URL"
uploading: "已请求上传。 上传完成可能需要一段时间。" uploading: "已请求上传。 上传完成可能需要一段时间。"
folder-name-cannot-empty: "文件夹名不能为空。"
mobile/views/components/drive-file-chooser.vue: mobile/views/components/drive-file-chooser.vue:
select-file: "选择文件" select-file: "选择文件"
mobile/views/components/drive-folder-chooser.vue: mobile/views/components/drive-folder-chooser.vue:
@ -1476,7 +1486,7 @@ mobile/views/components/post-form.vue:
add-visible-user: "添加用户" add-visible-user: "添加用户"
submit: "帖子" submit: "帖子"
reply: "回复" reply: "回复"
renote: "Renote" renote: "转推"
quote-placeholder: "引用这个帖子t... (可选)" quote-placeholder: "引用这个帖子t... (可选)"
reply-placeholder: "回复这个帖子" reply-placeholder: "回复这个帖子"
cw-placeholder: "评论帖子(可选)" cw-placeholder: "评论帖子(可选)"
@ -1501,9 +1511,16 @@ mobile/views/components/ui.nav.vue:
game: "游戏" game: "游戏"
admin: "管理" admin: "管理"
about: "关于 Misskey" about: "关于 Misskey"
mobile/views/pages/drive.vue:
contextmenu:
upload: "上传文件"
url-upload: "从URL上传文件"
create-folder: "创建文件夹"
rename-folder: "重命名文件夹"
move-folder: "移动此文件夹"
delete-folder: "删除此文件夹"
mobile/views/pages/user-lists.vue: mobile/views/pages/user-lists.vue:
title: "列表" title: "列表"
enter-list-name: "输入要列出的列表的名称"
mobile/views/pages/signup.vue: mobile/views/pages/signup.vue:
lets-start: "您的账户现已准备就绪! 📦" lets-start: "您的账户现已准备就绪! 📦"
mobile/views/pages/followers.vue: mobile/views/pages/followers.vue:
@ -1600,7 +1617,7 @@ deck/deck.user-column.vue:
images: "图片" images: "图片"
activity: "活动" activity: "活动"
timeline: "时间线" timeline: "时间线"
pinned-notes: "标记投稿" pinned-notes: "置顶帖"
docs: docs:
edit-this-page-on-github: "发现错误或想要为文档做出贡献?" edit-this-page-on-github: "发现错误或想要为文档做出贡献?"
edit-this-page-on-github-link: "在GitHub上编辑这个页面。" edit-this-page-on-github-link: "在GitHub上编辑这个页面。"

View File

@ -1,7 +1,7 @@
{ {
"name": "misskey", "name": "misskey",
"author": "syuilo <i@syuilo.com>", "author": "syuilo <i@syuilo.com>",
"version": "11.2.1", "version": "11.2.2",
"codename": "daybreak", "codename": "daybreak",
"repository": { "repository": {
"type": "git", "type": "git",
@ -94,7 +94,7 @@
"@types/websocket": "0.0.40", "@types/websocket": "0.0.40",
"@types/ws": "6.0.1", "@types/ws": "6.0.1",
"animejs": "3.0.1", "animejs": "3.0.1",
"apexcharts": "3.6.7", "apexcharts": "3.6.8",
"autobind-decorator": "2.4.0", "autobind-decorator": "2.4.0",
"autosize": "4.0.2", "autosize": "4.0.2",
"autwh": "0.1.0", "autwh": "0.1.0",
@ -112,7 +112,7 @@
"cssnano": "4.1.10", "cssnano": "4.1.10",
"dateformat": "3.0.3", "dateformat": "3.0.3",
"deep-equal": "1.0.1", "deep-equal": "1.0.1",
"diskusage": "1.0.0", "diskusage": "1.1.0",
"double-ended-queue": "2.1.0-0", "double-ended-queue": "2.1.0-0",
"elasticsearch": "15.4.1", "elasticsearch": "15.4.1",
"emojilib": "2.4.0", "emojilib": "2.4.0",
@ -138,10 +138,10 @@
"html-minifier": "4.0.0", "html-minifier": "4.0.0",
"http-signature": "1.2.0", "http-signature": "1.2.0",
"insert-text-at-cursor": "0.2.0", "insert-text-at-cursor": "0.2.0",
"is-root": "2.0.0", "is-root": "2.1.0",
"is-svg": "4.1.0", "is-svg": "4.1.0",
"js-yaml": "3.13.1", "js-yaml": "3.13.1",
"jsdom": "14.0.0", "jsdom": "14.1.0",
"json5": "2.1.0", "json5": "2.1.0",
"json5-loader": "2.0.0", "json5-loader": "2.0.0",
"katex": "0.10.1", "katex": "0.10.1",
@ -161,20 +161,20 @@
"loader-utils": "1.2.3", "loader-utils": "1.2.3",
"lolex": "3.1.0", "lolex": "3.1.0",
"lookup-dns-cache": "2.1.0", "lookup-dns-cache": "2.1.0",
"minio": "7.0.5", "minio": "7.0.6",
"mocha": "6.1.3", "mocha": "6.1.3",
"moji": "0.5.1", "moji": "0.5.1",
"moment": "2.24.0", "moment": "2.24.0",
"ms": "2.1.1", "ms": "2.1.1",
"nested-property": "0.0.7", "nested-property": "0.0.7",
"node-fetch": "2.3.0", "node-fetch": "2.3.0",
"nodemailer": "6.1.0", "nodemailer": "6.1.1",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"object-assign-deep": "0.4.0", "object-assign-deep": "0.4.0",
"os-utils": "0.0.14", "os-utils": "0.0.14",
"parse5": "5.1.0", "parse5": "5.1.0",
"parsimmon": "1.12.0", "parsimmon": "1.12.0",
"pg": "7.9.0", "pg": "7.10.0",
"portscanner": "2.2.0", "portscanner": "2.2.0",
"postcss-loader": "3.0.0", "postcss-loader": "3.0.0",
"prismjs": "1.16.0", "prismjs": "1.16.0",
@ -210,7 +210,7 @@
"stylus": "0.54.5", "stylus": "0.54.5",
"stylus-loader": "3.0.2", "stylus-loader": "3.0.2",
"summaly": "2.2.0", "summaly": "2.2.0",
"systeminformation": "4.1.4", "systeminformation": "4.1.5",
"syuilo-password-strength": "0.0.1", "syuilo-password-strength": "0.0.1",
"terser-webpack-plugin": "1.2.3", "terser-webpack-plugin": "1.2.3",
"textarea-caret": "3.1.0", "textarea-caret": "3.1.0",
@ -240,7 +240,7 @@
"vue-loader": "15.7.0", "vue-loader": "15.7.0",
"vue-marquee-text-component": "1.1.1", "vue-marquee-text-component": "1.1.1",
"vue-prism-component": "1.1.1", "vue-prism-component": "1.1.1",
"vue-router": "3.0.4", "vue-router": "3.0.6",
"vue-sequential-entrance": "1.1.3", "vue-sequential-entrance": "1.1.3",
"vue-style-loader": "4.1.2", "vue-style-loader": "4.1.2",
"vue-svg-inline-loader": "1.2.15", "vue-svg-inline-loader": "1.2.15",

View File

@ -144,6 +144,7 @@ export class UserRepository extends Repository<User> {
autoWatch: profile!.autoWatch, autoWatch: profile!.autoWatch,
alwaysMarkNsfw: profile!.alwaysMarkNsfw, alwaysMarkNsfw: profile!.alwaysMarkNsfw,
carefulBot: profile!.carefulBot, carefulBot: profile!.carefulBot,
twoFactorEnabled: profile!.twoFactorEnabled,
hasUnreadMessagingMessage: MessagingMessages.count({ hasUnreadMessagingMessage: MessagingMessages.count({
where: { where: {
recipientId: user.id, recipientId: user.id,

View File

@ -271,11 +271,6 @@ export async function updatePerson(uri: string, resolver?: Resolver | null, hint
} }
//#endregion //#endregion
// 繋がらないインスタンスに何回も試行するのを防ぐ, 後続の同様処理の連続試行を防ぐ ため 試行前にも更新する
await Users.update(exist.id, {
lastFetchedAt: new Date(),
});
if (resolver == null) resolver = new Resolver(); if (resolver == null) resolver = new Resolver();
const object = hint || await resolver.resolve(uri) as any; const object = hint || await resolver.resolve(uri) as any;
@ -349,13 +344,13 @@ export async function updatePerson(uri: string, resolver?: Resolver | null, hint
url: person.url, url: person.url,
fields, fields,
description: person.summary ? fromHtml(person.summary) : null, description: person.summary ? fromHtml(person.summary) : null,
twitterUserId: services.twitter.userId, twitterUserId: services.twitter ? services.twitter.userId : null,
twitterScreenName: services.twitter.screenName, twitterScreenName: services.twitter ? services.twitter.screenName : null,
githubId: services.github.id, githubId: services.github ? services.github.id : null,
githubLogin: services.github.login, githubLogin: services.github ? services.github.login : null,
discordId: services.discord.id, discordId: services.discord ? services.discord.id : null,
discordUsername: services.discord.username, discordUsername: services.discord ? services.discord.username : null,
discordDiscriminator: services.discord.discriminator, discordDiscriminator: services.discord ? services.discord.discriminator : null,
}); });
// ハッシュタグ更新 // ハッシュタグ更新

View File

@ -37,7 +37,7 @@ export async function resolveUser(username: string, host: string | null, option?
}); });
} }
const user = await Users.findOne({ usernameLower, host }, option); const user = await Users.findOne({ usernameLower, host }, option) as IRemoteUser;
const acctLower = `${usernameLower}@${host}`; const acctLower = `${usernameLower}@${host}`;
@ -48,14 +48,20 @@ export async function resolveUser(username: string, host: string | null, option?
return await createPerson(self.href); return await createPerson(self.href);
} }
if (resync) { // resyncオプション OR ユーザー情報が古い場合は、WebFilgerからやりなおして返す
if (resync || user.lastFetchedAt == null || Date.now() - user.lastFetchedAt.getTime() > 1000 * 60 * 60 * 24) {
// 繋がらないインスタンスに何回も試行するのを防ぐ, 後続の同様処理の連続試行を防ぐ ため 試行前にも更新する
await Users.update(user.id, {
lastFetchedAt: new Date(),
});
logger.info(`try resync: ${acctLower}`); logger.info(`try resync: ${acctLower}`);
const self = await resolveSelf(acctLower); const self = await resolveSelf(acctLower);
if ((user as IRemoteUser).uri !== self.href) { if (user.uri !== self.href) {
// if uri mismatch, Fix (user@host <=> AP's Person id(IRemoteUser.uri)) mapping. // if uri mismatch, Fix (user@host <=> AP's Person id(IRemoteUser.uri)) mapping.
logger.info(`uri missmatch: ${acctLower}`); logger.info(`uri missmatch: ${acctLower}`);
logger.info(`recovery missmatch uri for (username=${username}, host=${host}) from ${(user as IRemoteUser).uri} to ${self.href}`); logger.info(`recovery missmatch uri for (username=${username}, host=${host}) from ${user.uri} to ${self.href}`);
// validate uri // validate uri
const uri = new URL(self.href); const uri = new URL(self.href);

View File

@ -95,13 +95,6 @@ export default define(meta, async (ps, me) => {
throw new ApiError(meta.errors.noSuchUser); throw new ApiError(meta.errors.noSuchUser);
} }
// ユーザー情報更新
if (Users.isRemoteUser(user)) {
if (user.lastFetchedAt == null || Date.now() - user.lastFetchedAt.getTime() > 1000 * 60 * 60 * 24) {
resolveUser(user.username, user.host, { }, true);
}
}
return await Users.pack(user, me, { return await Users.pack(user, me, {
detail: true detail: true
}); });