Compare commits
10 Commits
f940b13fb7
...
559ad2f80c
Author | SHA1 | Date |
---|---|---|
syuilo | 559ad2f80c | |
syuilo | 6b0f636267 | |
woxtu | cb0fa9a8ab | |
猫ロキP@deflis | 5083458071 | |
setaria | 78b502bcab | |
syuilo | 324d18983a | |
kabo2468 | 71b016b293 | |
Acid Chicken (硫酸鶏) | 090253c2d2 | |
Acid Chicken (硫酸鶏) | cf3ac3c0be | |
tamaina | b8360b1b5a |
|
@ -16,9 +16,11 @@
|
||||||
|
|
||||||
### Client
|
### Client
|
||||||
- リストTLで、ユーザーが追加・削除されてもTLを初期化しないように
|
- リストTLで、ユーザーが追加・削除されてもTLを初期化しないように
|
||||||
|
- URL取得変数を関数に変更 CURRENT_URL -> Mk:url()
|
||||||
- Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正
|
- Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正
|
||||||
- Fix: 一部モーダルダイアログでスクロールできない問題を修正
|
- Fix: 一部モーダルダイアログでスクロールできない問題を修正
|
||||||
- Fix: Selecting all emojis in Custom emoji is impossible
|
- Fix: Selecting all emojis in Custom emoji is impossible
|
||||||
|
- Fix: PhotoSwipeによるメモリリークの修正
|
||||||
|
|
||||||
### Server
|
### Server
|
||||||
- Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正
|
- Fix: APIのオフセットが壊れていたせいで「もっと見る」でもっと見れない問題を修正
|
||||||
|
|
|
@ -43,13 +43,43 @@ copyContent: "Tartalom másolása"
|
||||||
copyLink: "Hivatkozás Másolása"
|
copyLink: "Hivatkozás Másolása"
|
||||||
delete: "Törlés"
|
delete: "Törlés"
|
||||||
deleteAndEdit: "Törlés és szerkesztés"
|
deleteAndEdit: "Törlés és szerkesztés"
|
||||||
|
deleteAndEditConfirm: "Biztosan törlöd ezt a jegyzetet és újrafogalmazza? Így eveszíted az összes reakciót, renote-ot és választ."
|
||||||
|
addToList: "Hozzáadás a listákhoz"
|
||||||
|
privacy: "Adatvédelem"
|
||||||
|
makeFollowManuallyApprove: "Csak jóváhagyással követhetnek"
|
||||||
|
defaultNoteVisibility: "Alapértelmezett láthatóság"
|
||||||
|
follow: "Követés"
|
||||||
|
followRequest: "Követés kérése"
|
||||||
|
followRequests: "Követési kérések"
|
||||||
|
unfollow: "Követés visszavonása"
|
||||||
|
followRequestPending: "Függőben levő követési kérés"
|
||||||
|
enterEmoji: "Írj egy emoji-t"
|
||||||
|
renote: "Renote"
|
||||||
|
unrenote: "Renote visszavonása"
|
||||||
|
renoted: "Renotolva"
|
||||||
|
cantRenote: "Nem lehet Renotolni"
|
||||||
|
cantReRenote: "A Renote nem renotálható"
|
||||||
|
quote: "Idézet"
|
||||||
|
inChannelRenote: "Csak csatornán bellüli Renote"
|
||||||
|
inChannelQuote: "Csak csatornán bellüli idézet"
|
||||||
|
pinnedNote: "Csatolt jegyzet"
|
||||||
pinned: "Rögzítés"
|
pinned: "Rögzítés"
|
||||||
|
you: "Te"
|
||||||
|
clickToShow: "Kattints ide"
|
||||||
|
sensitive: "Érzékeny"
|
||||||
|
add: "Hozzáad"
|
||||||
|
reaction: "Reakciók"
|
||||||
|
reactions: "Reakciók"
|
||||||
instances: "Szerver"
|
instances: "Szerver"
|
||||||
remove: "Törlés"
|
remove: "Törlés"
|
||||||
|
pinnedNotes: "Csatolt jegyzet"
|
||||||
smtpUser: "Felhasználónév"
|
smtpUser: "Felhasználónév"
|
||||||
smtpPass: "Jelszó"
|
smtpPass: "Jelszó"
|
||||||
user: "Felhasználók"
|
user: "Felhasználók"
|
||||||
searchByGoogle: "Keresés"
|
searchByGoogle: "Keresés"
|
||||||
|
_theme:
|
||||||
|
keys:
|
||||||
|
renote: "Renote"
|
||||||
_sfx:
|
_sfx:
|
||||||
notification: "Értesítések"
|
notification: "Értesítések"
|
||||||
_2fa:
|
_2fa:
|
||||||
|
@ -60,6 +90,13 @@ _widgets:
|
||||||
timeline: "Idővonal"
|
timeline: "Idővonal"
|
||||||
_profile:
|
_profile:
|
||||||
username: "Felhasználónév"
|
username: "Felhasználónév"
|
||||||
|
_notification:
|
||||||
|
_types:
|
||||||
|
renote: "Renote"
|
||||||
|
quote: "Idézet"
|
||||||
|
reaction: "Reakciók"
|
||||||
|
_actions:
|
||||||
|
renote: "Renote"
|
||||||
_deck:
|
_deck:
|
||||||
_columns:
|
_columns:
|
||||||
notifications: "Értesítések"
|
notifications: "Értesítések"
|
||||||
|
|
|
@ -621,10 +621,10 @@ smtpHost: "Server remoto"
|
||||||
smtpPort: "Porta"
|
smtpPort: "Porta"
|
||||||
smtpUser: "Nome utente"
|
smtpUser: "Nome utente"
|
||||||
smtpPass: "Password"
|
smtpPass: "Password"
|
||||||
emptyToDisableSmtpAuth: "Lasciare il nome utente e la password vuoti per disabilitare la verifica SMTP"
|
emptyToDisableSmtpAuth: "Lasciare i campi vuoti se non c'è autenticazione SMTP"
|
||||||
smtpSecure: "Usare la porta SSL/TLS implicito per le connessioni SMTP"
|
smtpSecure: "Usare SSL/TLS implicito per le connessioni SMTP"
|
||||||
smtpSecureInfo: "Disabilitare quando è attivo STARTTLS."
|
smtpSecureInfo: "Disabilitare quando è attivo STARTTLS."
|
||||||
testEmail: "Testa la consegna di posta elettronica"
|
testEmail: "Verifica il funzionamento"
|
||||||
wordMute: "Filtri parole"
|
wordMute: "Filtri parole"
|
||||||
regexpError: "errore regex"
|
regexpError: "errore regex"
|
||||||
regexpErrorDescription: "Si è verificato un errore nell'espressione regolare alla riga {line} della parola muta {tab}:"
|
regexpErrorDescription: "Si è verificato un errore nell'espressione regolare alla riga {line} della parola muta {tab}:"
|
||||||
|
@ -1091,6 +1091,9 @@ usedAt: "Usato alle"
|
||||||
unused: "Inutilizzato"
|
unused: "Inutilizzato"
|
||||||
used: "Utilizzato"
|
used: "Utilizzato"
|
||||||
expired: "Scaduto"
|
expired: "Scaduto"
|
||||||
|
doYouAgree: "Sei d'accordo?"
|
||||||
|
beSureToReadThisAsItIsImportant: "Si prega di leggere attentamente perché è importante."
|
||||||
|
iHaveReadXCarefullyAndAgree: "Ho letto accuratamente \"{x}\" e sono d'accordo."
|
||||||
_initialAccountSetting:
|
_initialAccountSetting:
|
||||||
accountCreated: "Il tuo profilo è stato creato!"
|
accountCreated: "Il tuo profilo è stato creato!"
|
||||||
letsStartAccountSetup: "Per iniziare, impostiamo il tuo profilo."
|
letsStartAccountSetup: "Per iniziare, impostiamo il tuo profilo."
|
||||||
|
@ -1444,7 +1447,7 @@ _sensitiveMediaDetection:
|
||||||
_emailUnavailable:
|
_emailUnavailable:
|
||||||
used: "Email già in uso"
|
used: "Email già in uso"
|
||||||
format: "Formato email non valido"
|
format: "Formato email non valido"
|
||||||
disposable: "Email non riutilizzabile"
|
disposable: "Indirizzo email non utilizzabile"
|
||||||
mx: "Server email non corretto"
|
mx: "Server email non corretto"
|
||||||
smtp: "Il server email non risponde"
|
smtp: "Il server email non risponde"
|
||||||
_ffVisibility:
|
_ffVisibility:
|
||||||
|
|
|
@ -25,7 +25,7 @@ basicSettings: "Configurações básicas"
|
||||||
otherSettings: "Outras configurações"
|
otherSettings: "Outras configurações"
|
||||||
openInWindow: "Abrir em um janela"
|
openInWindow: "Abrir em um janela"
|
||||||
profile: "Perfil"
|
profile: "Perfil"
|
||||||
timeline: "Timeline"
|
timeline: "Linha do tempo"
|
||||||
noAccountDescription: "Este usuário não tem uma descrição."
|
noAccountDescription: "Este usuário não tem uma descrição."
|
||||||
login: "Iniciar sessão"
|
login: "Iniciar sessão"
|
||||||
loggingIn: "Iniciando sessão…"
|
loggingIn: "Iniciando sessão…"
|
||||||
|
@ -41,7 +41,7 @@ unfavorite: "Remover dos favoritos"
|
||||||
favorited: "Adicionado aos favoritos."
|
favorited: "Adicionado aos favoritos."
|
||||||
alreadyFavorited: "Já adicionado aos favoritos."
|
alreadyFavorited: "Já adicionado aos favoritos."
|
||||||
cantFavorite: "Não foi possível adicionar aos favoritos."
|
cantFavorite: "Não foi possível adicionar aos favoritos."
|
||||||
pin: "Afixar no perfil"
|
pin: "Fixar no perfil"
|
||||||
unpin: "Desafixar do perfil"
|
unpin: "Desafixar do perfil"
|
||||||
copyContent: "Copiar conteúdos"
|
copyContent: "Copiar conteúdos"
|
||||||
copyLink: "Copiar link"
|
copyLink: "Copiar link"
|
||||||
|
@ -50,11 +50,11 @@ deleteAndEdit: "Excluir e editar"
|
||||||
deleteAndEditConfirm: "Deseja excluir esta nota e editá-la novamente? Todas as reações, compartilhamentos e respostas a esta nota também serão excluídas."
|
deleteAndEditConfirm: "Deseja excluir esta nota e editá-la novamente? Todas as reações, compartilhamentos e respostas a esta nota também serão excluídas."
|
||||||
addToList: "Adicionar a lista"
|
addToList: "Adicionar a lista"
|
||||||
addToAntenna: "Adicionar à antena"
|
addToAntenna: "Adicionar à antena"
|
||||||
sendMessage: "Enviar uma mensagem"
|
sendMessage: "Enviar mensagem"
|
||||||
copyRSS: "Copiar RSS"
|
copyRSS: "Copiar RSS"
|
||||||
copyUsername: "Copiar nome de utilizador"
|
copyUsername: "Copiar nome de utilizador"
|
||||||
copyUserId: "Copiar o ID do utilizador"
|
copyUserId: "Copiar ID do utilizador"
|
||||||
copyNoteId: "Copiar o ID da publicação"
|
copyNoteId: "Copiar ID da publicação"
|
||||||
copyFileId: "Copiar o ID do arquivo"
|
copyFileId: "Copiar o ID do arquivo"
|
||||||
copyFolderId: "Copiar o ID da pasta"
|
copyFolderId: "Copiar o ID da pasta"
|
||||||
copyProfileUrl: "Copiar a URL do perfil"
|
copyProfileUrl: "Copiar a URL do perfil"
|
||||||
|
@ -89,7 +89,7 @@ createList: "Criar lista"
|
||||||
manageLists: "Gerenciar listas"
|
manageLists: "Gerenciar listas"
|
||||||
error: "Erro"
|
error: "Erro"
|
||||||
somethingHappened: "Ocorreu um erro"
|
somethingHappened: "Ocorreu um erro"
|
||||||
retry: "Tentar novamente"
|
retry: "Tente novamente"
|
||||||
pageLoadError: "Ocorreu um erro ao carregar a página."
|
pageLoadError: "Ocorreu um erro ao carregar a página."
|
||||||
pageLoadErrorDescription: "Isso geralmente acontece devido ao cache do navegador ou da rede. Tente limpar o cache ou aguarde um pouco antes de tentar novamente."
|
pageLoadErrorDescription: "Isso geralmente acontece devido ao cache do navegador ou da rede. Tente limpar o cache ou aguarde um pouco antes de tentar novamente."
|
||||||
serverIsDead: "Não há resposta do servidor. Aguarde um momento e tente novamente."
|
serverIsDead: "Não há resposta do servidor. Aguarde um momento e tente novamente."
|
||||||
|
@ -231,7 +231,7 @@ federating: "Federando"
|
||||||
blocked: "Bloqueado"
|
blocked: "Bloqueado"
|
||||||
suspended: "Suspenso"
|
suspended: "Suspenso"
|
||||||
all: "Todos"
|
all: "Todos"
|
||||||
subscribing: "Subscrito"
|
subscribing: "Inscrito"
|
||||||
publishing: "Publicando"
|
publishing: "Publicando"
|
||||||
notResponding: "Sem resposta"
|
notResponding: "Sem resposta"
|
||||||
instanceFollowing: "Seguir a instância"
|
instanceFollowing: "Seguir a instância"
|
||||||
|
@ -278,7 +278,7 @@ agreeBelow: "Eu concordo com o seguinte"
|
||||||
basicNotesBeforeCreateAccount: "Observações importantes"
|
basicNotesBeforeCreateAccount: "Observações importantes"
|
||||||
termsOfService: "Termos de Uso"
|
termsOfService: "Termos de Uso"
|
||||||
start: "começar"
|
start: "começar"
|
||||||
home: "casa"
|
home: "Home"
|
||||||
remoteUserCaution: "As informações estão incompletas porque é um utilizador remoto."
|
remoteUserCaution: "As informações estão incompletas porque é um utilizador remoto."
|
||||||
activity: "atividade"
|
activity: "atividade"
|
||||||
images: "imagem"
|
images: "imagem"
|
||||||
|
@ -713,35 +713,111 @@ pageLikedCount: "Número de curtidas recebidas nas suas páginas"
|
||||||
contact: "Contato"
|
contact: "Contato"
|
||||||
useSystemFont: "Utilizar a fonte padrão do sistema"
|
useSystemFont: "Utilizar a fonte padrão do sistema"
|
||||||
clips: "Clipe"
|
clips: "Clipe"
|
||||||
|
experimentalFeatures: "Funcionalidades Experimentais"
|
||||||
|
experimental: "Experimental"
|
||||||
|
thisIsExperimentalFeature: "Este é um recurso experimental. As funções podem mudar ou pode não funcionar corretamente."
|
||||||
|
developer: "Programador"
|
||||||
|
makeExplorable: "Deixe a sua conta mais fácil de encontrar."
|
||||||
|
makeExplorableDescription: "Se você desativá-lo, outros usuários não poderão encontrar a sua conta na aba Descoberta."
|
||||||
|
showGapBetweenNotesInTimeline: "Mostrar um espaço entre as notas na linha de tempo"
|
||||||
duplicate: "Duplicar"
|
duplicate: "Duplicar"
|
||||||
left: "Esquerda"
|
left: "Esquerda"
|
||||||
|
center: "Centralizar"
|
||||||
wide: "Largo"
|
wide: "Largo"
|
||||||
narrow: "Estreito"
|
narrow: "Estreito"
|
||||||
|
reloadToApplySetting: "As configurações serão refletidas após recarregar a página. Deseja recarregar agora?"
|
||||||
|
needReloadToApply: "É necessário recarregar a página para refletir as alterações."
|
||||||
showTitlebar: "Exibir barra de título"
|
showTitlebar: "Exibir barra de título"
|
||||||
clearCache: "Limpar o cache"
|
clearCache: "Limpar o cache"
|
||||||
|
onlineUsersCount: "Pessoas Online"
|
||||||
|
nUsers: "Usuários"
|
||||||
|
nNotes: "Notas"
|
||||||
|
sendErrorReports: "Enviar relatórios de erro"
|
||||||
sendErrorReportsDescription: "Ao ativar essa opção, informações detalhadas de erro serão compartilhadas com o Misskey em caso de problemas, o que pode ajudar a melhorar a qualidade do software. As informações de erro podem incluir a versão do sistema operacional, o tipo de navegador e o sua atividade no Misskey."
|
sendErrorReportsDescription: "Ao ativar essa opção, informações detalhadas de erro serão compartilhadas com o Misskey em caso de problemas, o que pode ajudar a melhorar a qualidade do software. As informações de erro podem incluir a versão do sistema operacional, o tipo de navegador e o sua atividade no Misskey."
|
||||||
|
myTheme: "Meu tema"
|
||||||
backgroundColor: "Cor de fundo"
|
backgroundColor: "Cor de fundo"
|
||||||
|
accentColor: "Cor de destaque"
|
||||||
|
textColor: "Cor do texto"
|
||||||
|
saveAs: "Salvar como"
|
||||||
advanced: "Avançado"
|
advanced: "Avançado"
|
||||||
|
advancedSettings: "Configurações avançadas"
|
||||||
value: "Valor"
|
value: "Valor"
|
||||||
|
createdAt: "Data de criação"
|
||||||
|
updatedAt: "Última atualização"
|
||||||
|
saveConfirm: "Deseja salvá-lo?"
|
||||||
deleteConfirm: "Confirma a exclusão?"
|
deleteConfirm: "Confirma a exclusão?"
|
||||||
|
invalidValue: "Valor inválido"
|
||||||
|
registry: "Registo"
|
||||||
|
closeAccount: "Encerrar conta"
|
||||||
|
currentVersion: "Versão Atual"
|
||||||
|
latestVersion: "Última versão"
|
||||||
|
youAreRunningUpToDateClient: "Você está usando a última versão do cliente"
|
||||||
|
newVersionOfClientAvailable: "Nova versão do cliente disponível"
|
||||||
|
usageAmount: "Quantidade utilizada"
|
||||||
capacity: "Capacidade"
|
capacity: "Capacidade"
|
||||||
|
inUse: "Em uso"
|
||||||
|
editCode: "Editar código"
|
||||||
apply: "Aplicar"
|
apply: "Aplicar"
|
||||||
|
receiveAnnouncementFromInstance: "Receba as notificações da instância"
|
||||||
emailNotification: "Notificações por e-mail"
|
emailNotification: "Notificações por e-mail"
|
||||||
publish: "Publicar"
|
publish: "Publicar"
|
||||||
|
inChannelSearch: "Pesquisar no canal"
|
||||||
|
useReactionPickerForContextMenu: "Clique com o botão direito do mouse para abrir o seletor de reações."
|
||||||
|
typingUsers: "digitando"
|
||||||
|
jumpToSpecifiedDate: "Pular para uma data específica"
|
||||||
|
showingPastTimeline: "Visualizar linha de tempo anterior"
|
||||||
|
clear: "Limpar"
|
||||||
|
markAllAsRead: "Marcar todas como lidas"
|
||||||
goBack: "Voltar"
|
goBack: "Voltar"
|
||||||
unlikeConfirm: "Deseja realmente deixar de curtir?"
|
unlikeConfirm: "Deseja realmente deixar de curtir?"
|
||||||
|
fullView: "Visão completa"
|
||||||
|
quitFullView: "Sair da visualização completa"
|
||||||
|
addDescription: "Adicionar descrição"
|
||||||
info: "Informações"
|
info: "Informações"
|
||||||
|
userInfo: "Informações do Usuário"
|
||||||
unknown: "Desconhecido"
|
unknown: "Desconhecido"
|
||||||
|
onlineStatus: "On-line"
|
||||||
|
hideOnlineStatus: "Ocultar o status on-line."
|
||||||
|
online: "Online"
|
||||||
enabled: "Ativado"
|
enabled: "Ativado"
|
||||||
disabled: "Desativado"
|
disabled: "Desativado"
|
||||||
|
quickAction: "Ações rápidas"
|
||||||
user: "Usuários"
|
user: "Usuários"
|
||||||
administration: "Administrar"
|
administration: "Administrar"
|
||||||
|
accounts: "Contas"
|
||||||
|
gallery: "Galeria"
|
||||||
|
recentPosts: "Notas recentes"
|
||||||
|
popularPosts: "Notas populares"
|
||||||
|
shareWithNote: "Compartilhar em Notas"
|
||||||
ads: "Anúncios"
|
ads: "Anúncios"
|
||||||
|
expiration: "Data limite"
|
||||||
|
startingperiod: "Data de início"
|
||||||
|
memo: "Nota"
|
||||||
|
priority: "Prioridade"
|
||||||
|
high: "Alto"
|
||||||
middle: "Meio"
|
middle: "Meio"
|
||||||
|
low: "Baixo"
|
||||||
emailNotConfiguredWarning: "Endereço de e-mail não configurado. "
|
emailNotConfiguredWarning: "Endereço de e-mail não configurado. "
|
||||||
|
ratio: "Ratio"
|
||||||
|
previewNoteText: "Visualizar Nota"
|
||||||
|
customCss: "CSS Personalizado"
|
||||||
|
squareAvatars: "Exibir ícones quadrados"
|
||||||
sent: "Enviar"
|
sent: "Enviar"
|
||||||
|
received: "Recebido"
|
||||||
|
searchResult: "Pesquisar"
|
||||||
|
hashtags: "Hashtags"
|
||||||
|
troubleshooting: "Resolução de problemas"
|
||||||
|
useBlurEffect: "Usar efeito de desfoque na UI"
|
||||||
|
learnMore: "Saiba mais"
|
||||||
|
whatIsNew: "Ver atualizações"
|
||||||
translate: "Traduzir"
|
translate: "Traduzir"
|
||||||
|
translatedFrom: "Traduzido de"
|
||||||
|
accountDeletionInProgress: "Encerramento de conta em andamento"
|
||||||
usernameInfo: "O nome para identificar exclusivamente a sua conta no servidor. Pode conter letras (az, AZ), números (0~9) e sublinhados (_). O nome de usuário não pode ser alterado posteriormente."
|
usernameInfo: "O nome para identificar exclusivamente a sua conta no servidor. Pode conter letras (az, AZ), números (0~9) e sublinhados (_). O nome de usuário não pode ser alterado posteriormente."
|
||||||
|
aiChanMode: "Modo AI-chan"
|
||||||
|
devMode: "Modo de Desenvolvedor"
|
||||||
|
lastCommunication: "Ultima atualização"
|
||||||
|
resolved: "Resolvido"
|
||||||
breakFollow: "Remover seguidor"
|
breakFollow: "Remover seguidor"
|
||||||
breakFollowConfirm: "Deseja realmente deixar de seguir?"
|
breakFollowConfirm: "Deseja realmente deixar de seguir?"
|
||||||
on: "Ligado"
|
on: "Ligado"
|
||||||
|
@ -752,15 +828,33 @@ deleteAccountConfirm: "Deseja realmente excluir a conta?"
|
||||||
hide: "Ocultar"
|
hide: "Ocultar"
|
||||||
useDrawerReactionPickerForMobile: "Mostrar em formato de gaveta"
|
useDrawerReactionPickerForMobile: "Mostrar em formato de gaveta"
|
||||||
clickToFinishEmailVerification: "Clique em [{ok}] para completar a validação do endereço de e-mail."
|
clickToFinishEmailVerification: "Clique em [{ok}] para completar a validação do endereço de e-mail."
|
||||||
|
overridedDeviceKind: "Sobrepor dispositivo"
|
||||||
|
smartphone: "Celular"
|
||||||
|
tablet: "Tablet"
|
||||||
auto: "Automático"
|
auto: "Automático"
|
||||||
|
themeColor: "Cor do tema"
|
||||||
|
size: "Tamanho"
|
||||||
|
numberOfColumn: "Número da coluna"
|
||||||
searchByGoogle: "Buscar"
|
searchByGoogle: "Buscar"
|
||||||
|
mutePeriod: "Duração de silenciamento"
|
||||||
|
period: "Data limite"
|
||||||
|
indefinitely: "Indefinitivamente"
|
||||||
|
tenMinutes: "10 minutos"
|
||||||
|
oneHour: "1 hora"
|
||||||
|
oneDay: "1 dia"
|
||||||
|
oneWeek: "1 semana"
|
||||||
|
oneMonth: "1 mês"
|
||||||
|
rateLimitExceeded: "Taxa limite excedido"
|
||||||
file: "Ficheiros"
|
file: "Ficheiros"
|
||||||
noEmailServerWarning: "Servidor de e-mail não configurado."
|
noEmailServerWarning: "Servidor de e-mail não configurado."
|
||||||
|
recommended: "Recomendado"
|
||||||
|
check: "Verificar"
|
||||||
driveCapOverrideLabel: "Altere a capacidade do drive para este usuário"
|
driveCapOverrideLabel: "Altere a capacidade do drive para este usuário"
|
||||||
driveCapOverrideCaption: "Altere a capacidade para o valor padrão informando o valor 0 ou inferior."
|
driveCapOverrideCaption: "Altere a capacidade para o valor padrão informando o valor 0 ou inferior."
|
||||||
deleteAccount: "Excluir conta"
|
deleteAccount: "Excluir conta"
|
||||||
enableAutoSensitiveDescription: "Quando disponível, a marcação de mídia sensível será automaticamente atribuído ao conteúdo de mídia usando aprendizado de máquina. Mesmo que você desative essa função, em alguns servidores, isso pode ser configurado automaticamente."
|
enableAutoSensitiveDescription: "Quando disponível, a marcação de mídia sensível será automaticamente atribuído ao conteúdo de mídia usando aprendizado de máquina. Mesmo que você desative essa função, em alguns servidores, isso pode ser configurado automaticamente."
|
||||||
activeEmailValidationDescription: "A validação do endereço de e-mail do usuário será realizada de forma mais rigorosa, considerando se é um endereço descartável ou se é possível realizar comunicação efetiva. Se desativado, apenas a validade do formato do endereço será verificada como uma sequência de caracteres."
|
activeEmailValidationDescription: "A validação do endereço de e-mail do usuário será realizada de forma mais rigorosa, considerando se é um endereço descartável ou se é possível realizar comunicação efetiva. Se desativado, apenas a validade do formato do endereço será verificada como uma sequência de caracteres."
|
||||||
|
account: "Contas"
|
||||||
like: "Curtir"
|
like: "Curtir"
|
||||||
unlike: "Remover curtida"
|
unlike: "Remover curtida"
|
||||||
numberOfLikes: "Número de curtidas"
|
numberOfLikes: "Número de curtidas"
|
||||||
|
@ -778,6 +872,7 @@ rolesAssignedToMe: "Cargos atribuídos a mim"
|
||||||
unfavoriteConfirm: "Deseja realmente remover dos favoritos?"
|
unfavoriteConfirm: "Deseja realmente remover dos favoritos?"
|
||||||
drivecleaner: "Limpeza do drive"
|
drivecleaner: "Limpeza do drive"
|
||||||
retryAllQueuesConfirmTitle: "Gostaria de tentar novamente agora?"
|
retryAllQueuesConfirmTitle: "Gostaria de tentar novamente agora?"
|
||||||
|
horizontal: "Exibir painel lateral inteiro"
|
||||||
preservedUsernamesDescription: "Liste os nomes de usuário que deseja reservar, separando-os por quebras de linha. Os nomes de usuário especificados aqui não poderão ser utilizados durante a criação de contas. No entanto, esta restrição não se aplica quando a conta é criada por um administrador. Além disso, as contas que já existem não serão afetadas."
|
preservedUsernamesDescription: "Liste os nomes de usuário que deseja reservar, separando-os por quebras de linha. Os nomes de usuário especificados aqui não poderão ser utilizados durante a criação de contas. No entanto, esta restrição não se aplica quando a conta é criada por um administrador. Além disso, as contas que já existem não serão afetadas."
|
||||||
channelArchiveConfirmTitle: "Deseja realmente arquivar {name}?"
|
channelArchiveConfirmTitle: "Deseja realmente arquivar {name}?"
|
||||||
youFollowing: "Seguindo"
|
youFollowing: "Seguindo"
|
||||||
|
@ -1038,7 +1133,9 @@ _emailUnavailable:
|
||||||
_ffVisibility:
|
_ffVisibility:
|
||||||
public: "Publicar"
|
public: "Publicar"
|
||||||
followers: "Visível apenas para seguidores"
|
followers: "Visível apenas para seguidores"
|
||||||
|
private: "Esconder"
|
||||||
_signup:
|
_signup:
|
||||||
|
almostThere: "Quase pronto"
|
||||||
emailAddressInfo: "Por favor, insira o seu endereço de e-mail. Ele não será divulgado."
|
emailAddressInfo: "Por favor, insira o seu endereço de e-mail. Ele não será divulgado."
|
||||||
emailSent: "Um e-mail de confirmação foi enviado para o endereço de e-mail fornecido ({email}). Acesse o link fornecido no e-mail para concluir a criação de sua conta."
|
emailSent: "Um e-mail de confirmação foi enviado para o endereço de e-mail fornecido ({email}). Acesse o link fornecido no e-mail para concluir a criação de sua conta."
|
||||||
_accountDelete:
|
_accountDelete:
|
||||||
|
@ -1050,6 +1147,8 @@ _accountDelete:
|
||||||
inProgress: "A exclusão está em andamento"
|
inProgress: "A exclusão está em andamento"
|
||||||
_ad:
|
_ad:
|
||||||
back: "Voltar"
|
back: "Voltar"
|
||||||
|
reduceFrequencyOfThisAd: "Diminuir frequência deste anúncio"
|
||||||
|
hide: "Não exibir anúncios"
|
||||||
_forgotPassword:
|
_forgotPassword:
|
||||||
enterEmail: "Por favor, insira o endereço de e-mail usado no cadastro de sua conta. Um link para redefinição de senha será enviado para esse endereço."
|
enterEmail: "Por favor, insira o endereço de e-mail usado no cadastro de sua conta. Um link para redefinição de senha será enviado para esse endereço."
|
||||||
ifNoEmail: "Caso você não tenha registrado um endereço de e-mail, por favor, entre em contato com o administrador."
|
ifNoEmail: "Caso você não tenha registrado um endereço de e-mail, por favor, entre em contato com o administrador."
|
||||||
|
@ -1070,8 +1169,16 @@ _preferencesBackups:
|
||||||
_channel:
|
_channel:
|
||||||
featured: "Destaques"
|
featured: "Destaques"
|
||||||
following: "Seguindo"
|
following: "Seguindo"
|
||||||
|
usersCount: "usuários ativos"
|
||||||
|
notesCount: "notas"
|
||||||
|
nameAndDescription: "Nome e descrição"
|
||||||
|
_menuDisplay:
|
||||||
|
sideFull: "Exibir painel lateral inteiro"
|
||||||
|
top: "Exibir barra superior"
|
||||||
|
hide: "Ocultar"
|
||||||
_theme:
|
_theme:
|
||||||
description: "Descrição"
|
description: "Descrição"
|
||||||
|
alpha: "Opacidade"
|
||||||
deleteConstantConfirm: "Confirma a exclusão da constante {const}?"
|
deleteConstantConfirm: "Confirma a exclusão da constante {const}?"
|
||||||
keys:
|
keys:
|
||||||
mention: "Menção"
|
mention: "Menção"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
_lang_: "O'zbek tili"
|
_lang_: "O'zbek tili"
|
||||||
headlineMisskey: "Qaydlar tarmog'i"
|
headlineMisskey: "Qaydlar tarmog'i"
|
||||||
introMisskey: "Xush kelibsiz! Misskey ochiq kodli, markazlashmagan mikroblogging xizmati.\nO'zingizni fikrlaringizni atrofingizdagilar bilan ulashish uchun \"Qaydlar\" yarating. 📡\nUstiga-ustak, \"Reaktsiyalar\" yordamida siz boshqalarning xatlari haqidagi o'zingizni xissiyotlaringizni tez ravishda bildiring. 👍\nQani, yangi dunyoni kashf qilaylik! 🚀"
|
introMisskey: "Xush kelibsiz! Misskey ochiq kodli, markazlashmagan mikroblogging xizmati.\nO'zingizni fikrlaringizni atrofingizdagilar bilan ulashish uchun \"Qaydlar\" yarating. 📡\nUstiga-ustak, \"Reaktsiyalar\" yordamida siz boshqalarning xatlari haqidagi o'zingizni xissiyotlaringizni bildiring. 👍\nQani, yangi dunyoni kashf qilaylik! 🚀"
|
||||||
poweredByMisskeyDescription: "{name} ochiq manbali <b>Misskey</b>(\"Misskey instance\" deb ataladi) platformasi tomonidan qurilgan servislardan biri. "
|
poweredByMisskeyDescription: "{name} ochiq manbali <b>Misskey</b>(\"Misskey instance\" deb ataladi) platformasi tomonidan qurilgan servislardan biri. "
|
||||||
monthAndDay: "{day}/{month}"
|
monthAndDay: "{day}/{month}"
|
||||||
search: "Izlash"
|
search: "Izlash"
|
||||||
|
@ -17,10 +17,10 @@ noThankYou: "Hozir emas"
|
||||||
enterUsername: "Foydalanuvchini nomini kiriting"
|
enterUsername: "Foydalanuvchini nomini kiriting"
|
||||||
renotedBy: "{user} tomonidan qayta qayd etildi"
|
renotedBy: "{user} tomonidan qayta qayd etildi"
|
||||||
noNotes: "Qaydlar mavjud emas"
|
noNotes: "Qaydlar mavjud emas"
|
||||||
noNotifications: "Xabarnomalar mavjud emas"
|
noNotifications: "Xabarlar mavjud emas"
|
||||||
instance: "Server"
|
instance: "Server"
|
||||||
settings: "Sozalamalar"
|
settings: "Sozlamalar"
|
||||||
notificationSettings: "Xabarnomalar sozlamalari"
|
notificationSettings: "Xabarnoma sozlamalari"
|
||||||
basicSettings: "Asosiy sozlamalar"
|
basicSettings: "Asosiy sozlamalar"
|
||||||
otherSettings: "Qo‘shimcha sozlamalar"
|
otherSettings: "Qo‘shimcha sozlamalar"
|
||||||
openInWindow: "Yangi oynada ochish"
|
openInWindow: "Yangi oynada ochish"
|
||||||
|
@ -36,7 +36,7 @@ save: "Saqlash"
|
||||||
users: "Foydalanuvchilar"
|
users: "Foydalanuvchilar"
|
||||||
addUser: "Foydalanuvchi qo'shish"
|
addUser: "Foydalanuvchi qo'shish"
|
||||||
favorite: "Sevimli"
|
favorite: "Sevimli"
|
||||||
favorites: "Sevimli"
|
favorites: "Sevimlilar"
|
||||||
unfavorite: "Sevimlidan chiqarish"
|
unfavorite: "Sevimlidan chiqarish"
|
||||||
favorited: "sevimli"
|
favorited: "sevimli"
|
||||||
alreadyFavorited: "allaqachon sevimlilar orasida"
|
alreadyFavorited: "allaqachon sevimlilar orasida"
|
||||||
|
@ -47,7 +47,7 @@ copyContent: "Tarkibini nusxalash"
|
||||||
copyLink: "Havolani nuxalash"
|
copyLink: "Havolani nuxalash"
|
||||||
delete: "O'chirib tashlash"
|
delete: "O'chirib tashlash"
|
||||||
deleteAndEdit: "O'chirish va tahrirlash"
|
deleteAndEdit: "O'chirish va tahrirlash"
|
||||||
deleteAndEditConfirm: "O'chirib, tahrirlamoqchiligingizga ishonchingiz komilmi? Siz bu qaydga tegishli barcha reaktsiyalar, qayta qaydlar va javoblarni yo'qotasiz."
|
deleteAndEditConfirm: "O'chirib, tahrirlamoqchiligingizga ishonchingiz komilmi? Siz bu qaydga tegishli barcha reaktsiyalar va javoblarni yo'qotasiz."
|
||||||
addToList: "Ro‘yxatga qo‘shish"
|
addToList: "Ro‘yxatga qo‘shish"
|
||||||
addToAntenna: "Antennaga qo'shish"
|
addToAntenna: "Antennaga qo'shish"
|
||||||
sendMessage: "Xabar yuborish"
|
sendMessage: "Xabar yuborish"
|
||||||
|
@ -74,7 +74,7 @@ import: "Import"
|
||||||
export: "Eksport"
|
export: "Eksport"
|
||||||
files: "Fayllar"
|
files: "Fayllar"
|
||||||
download: "Yuklab olish"
|
download: "Yuklab olish"
|
||||||
driveFileDeleteConfirm: "\"{name}\" o'chirib tashlamoqchimisiz? Buni ishlatadihan kontentni hammasidan o'chadi"
|
driveFileDeleteConfirm: "\"{name}\" o'chirib tashlamoqchimisiz? Ushbu fayldan foydalanadigan har qanday kontent ham oʻchiriladi."
|
||||||
unfollowConfirm: "{name}ga obunani bekor qilmoqchimisiz?"
|
unfollowConfirm: "{name}ga obunani bekor qilmoqchimisiz?"
|
||||||
exportRequested: "Eksport so'raldi. Bu ozgina vaqt olishi mumkin. Tugatilgandan so'ng sizning Diskingizga qo'shiladi"
|
exportRequested: "Eksport so'raldi. Bu ozgina vaqt olishi mumkin. Tugatilgandan so'ng sizning Diskingizga qo'shiladi"
|
||||||
importRequested: "Import so'raldi. Bu ozgina vaqt olishi mumkin."
|
importRequested: "Import so'raldi. Bu ozgina vaqt olishi mumkin."
|
||||||
|
@ -91,7 +91,7 @@ error: "Xato"
|
||||||
somethingHappened: "Xatolik yuz berdi"
|
somethingHappened: "Xatolik yuz berdi"
|
||||||
retry: "Qayta urinib ko'rish"
|
retry: "Qayta urinib ko'rish"
|
||||||
pageLoadError: "Sahifani yuklayotganda xatolik yuz berdi"
|
pageLoadError: "Sahifani yuklayotganda xatolik yuz berdi"
|
||||||
pageLoadErrorDescription: "Buni odatda tarmoq muammolari yoki browser keshi keltirib chiqaradi. Keshni tozalab, keyinroq urinib ko'ring"
|
pageLoadErrorDescription: "Buni odatda tarmoq muammolarni yoki browser keshi keltirib chiqaradi. Keshni tozalab, keyinroq urinib ko'ring"
|
||||||
serverIsDead: "Server javob bermayabdi. Iltimos kuting va keyinroq urinib ko'ring"
|
serverIsDead: "Server javob bermayabdi. Iltimos kuting va keyinroq urinib ko'ring"
|
||||||
youShouldUpgradeClient: "Iltimos, ushbu sahifani ko'rish uchun sahifani yangilang."
|
youShouldUpgradeClient: "Iltimos, ushbu sahifani ko'rish uchun sahifani yangilang."
|
||||||
enterListName: "Ro'yxatga nom kiriting"
|
enterListName: "Ro'yxatga nom kiriting"
|
||||||
|
@ -101,18 +101,18 @@ defaultNoteVisibility: "Standart ko'rinish"
|
||||||
follow: "Obuna bo‘lish"
|
follow: "Obuna bo‘lish"
|
||||||
followRequest: "Obuna bo'lish uchun ruxsat olish"
|
followRequest: "Obuna bo'lish uchun ruxsat olish"
|
||||||
followRequests: "Obuna bo'lmoqchilar"
|
followRequests: "Obuna bo'lmoqchilar"
|
||||||
unfollow: "obunani bker qilish"
|
unfollow: "obunani bekor qilish"
|
||||||
followRequestPending: "obuna bo'lishga ruxsat kutilmoqda"
|
followRequestPending: "obuna bo'lishga ruxsat kutilmoqda"
|
||||||
enterEmoji: "Emojini kiriting"
|
enterEmoji: "Emojini kiriting"
|
||||||
renote: "Qayta qaydetish"
|
renote: "Qayta qayd etish"
|
||||||
unrenote: "Qayta qayd etishni bekor qilish"
|
unrenote: "Qayta qayd etishni bekor qilish"
|
||||||
renoted: "Qayta qaydetildi"
|
renoted: "Qayta qayd etildi"
|
||||||
cantRenote: "Qyta qayd etish mumkin emas"
|
cantRenote: "Qayta qayd etish mumkin emas"
|
||||||
cantReRenote: "Repostni qayta joylashtirish mumkin emas."
|
cantReRenote: "Repostni qayta joylashtirish mumkin emas."
|
||||||
quote: "Iqtibos keltirish"
|
quote: "Iqtibos keltirish"
|
||||||
inChannelRenote: "Faqat kanalga qayta qayd etish"
|
inChannelRenote: "Faqat kanalga qayta qayd etish"
|
||||||
inChannelQuote: "Kanaldagi eslatmalar"
|
inChannelQuote: "Kanaldagi eslatmalar"
|
||||||
pinnedNote: "Qadanlgan qayd"
|
pinnedNote: "Qadalgan qayd"
|
||||||
pinned: "Profilga qadab qo'yish"
|
pinned: "Profilga qadab qo'yish"
|
||||||
you: "Siz"
|
you: "Siz"
|
||||||
clickToShow: "Ko'rsatish uchun bosing"
|
clickToShow: "Ko'rsatish uchun bosing"
|
||||||
|
@ -120,7 +120,7 @@ sensitive: "Sezuvchan"
|
||||||
add: "Qo'shish"
|
add: "Qo'shish"
|
||||||
reaction: "Reaktsiyalar"
|
reaction: "Reaktsiyalar"
|
||||||
reactions: "Reaktsiyalar"
|
reactions: "Reaktsiyalar"
|
||||||
reactionSetting: "Reaksiyalar ro'yxatingiz "
|
reactionSetting: "Reaksiyalar ro'yxati"
|
||||||
reactionSettingDescription2: "Qayta tartiblash uchun ushlab turib siljiting, oʻchirish uchun bosing, qoʻshish uchun “+” tugmasini bosing."
|
reactionSettingDescription2: "Qayta tartiblash uchun ushlab turib siljiting, oʻchirish uchun bosing, qoʻshish uchun “+” tugmasini bosing."
|
||||||
rememberNoteVisibility: "Qaydning ko'rinish sozlamarini eslab qolish"
|
rememberNoteVisibility: "Qaydning ko'rinish sozlamarini eslab qolish"
|
||||||
attachCancel: "Qo'shimchani olib tashlash"
|
attachCancel: "Qo'shimchani olib tashlash"
|
||||||
|
@ -159,10 +159,10 @@ cacheRemoteFilesDescription: "Ushbu sozlama o'chirilgan bo'lsa tashqi fayllar be
|
||||||
cacheRemoteSensitiveFiles: "Tashqi fayllarni keshlash"
|
cacheRemoteSensitiveFiles: "Tashqi fayllarni keshlash"
|
||||||
cacheRemoteSensitiveFilesDescription: "Bu sozlama oʻchiq boʻlsa, \"barcha ko'rishi mumkin bo'lmagan\" fayllar keshlashsiz toʻgʻridan-toʻgʻri masofaviy serverdan yuklanadi."
|
cacheRemoteSensitiveFilesDescription: "Bu sozlama oʻchiq boʻlsa, \"barcha ko'rishi mumkin bo'lmagan\" fayllar keshlashsiz toʻgʻridan-toʻgʻri masofaviy serverdan yuklanadi."
|
||||||
flagAsBot: "Ushbu akkauntni bot sifatida belgilash"
|
flagAsBot: "Ushbu akkauntni bot sifatida belgilash"
|
||||||
flagAsBotDescription: "Agar bu akkaunt bot tomonidan boshqaralayotgan bo'ls, bu sozlamani yoqing. Sozlama yoqilganda, boshqa foydalanuvchilar uchun belgi sifatida ishlaydi, va Misskey ichki tizimlari bu akkauntni bot ekanini biladi."
|
flagAsBotDescription: "Agar bu akkaunt bot tomonidan boshqaralayotgan bo'lsa, bu sozlamani yoqing. Sozlama yoqilganda, boshqa foydalanuvchilar uchun belgi sifatida ishlaydi, va Misskey ichki tizimlari bu akkauntni bot ekanini biladi."
|
||||||
flagAsCat: "Bu akkauntni mushuk sifatida belgilash"
|
flagAsCat: "Bu akkauntni mushuk sifatida belgilash"
|
||||||
flagAsCatDescription: "Ushbu akkauntni mushuk sifatida belgilash uchun ushbu sozlamani yoqing."
|
flagAsCatDescription: "Ushbu akkauntni mushuk sifatida belgilash uchun ushbu sozlamani yoqing."
|
||||||
flagShowTimelineReplies: "Javbolarni xronogoliya bo'yicha ko'rsatish"
|
flagShowTimelineReplies: "Javoblarni xronogoliya bo'yicha ko'rsatish"
|
||||||
flagShowTimelineRepliesDescription: "Bu parametr yoqilganda, lentada foydalanuvchi xabarlariga javob berilgan xabarlar ham ko'rinadi"
|
flagShowTimelineRepliesDescription: "Bu parametr yoqilganda, lentada foydalanuvchi xabarlariga javob berilgan xabarlar ham ko'rinadi"
|
||||||
autoAcceptFollowed: "Obunachilarni avtomatik ravishda qabul qilish"
|
autoAcceptFollowed: "Obunachilarni avtomatik ravishda qabul qilish"
|
||||||
addAccount: "Akkaunt qo'shish"
|
addAccount: "Akkaunt qo'shish"
|
||||||
|
@ -345,11 +345,12 @@ enableRegistration: "Ro'yxatdan o'tishni yoqing"
|
||||||
invite: "Taklif qilish"
|
invite: "Taklif qilish"
|
||||||
inMb: "Megabaytlarda"
|
inMb: "Megabaytlarda"
|
||||||
iconUrl: "Ikonkaning URL manzili (masalan: favicon)"
|
iconUrl: "Ikonkaning URL manzili (masalan: favicon)"
|
||||||
|
bannerUrl: "Banner URLi"
|
||||||
backgroundImageUrl: "Fon rasmi URL manzili"
|
backgroundImageUrl: "Fon rasmi URL manzili"
|
||||||
basicInfo: "Asosiy ma'lumot"
|
basicInfo: "Asosiy ma'lumot"
|
||||||
pinnedUsers: "Qadalgan foydalanuvchilar"
|
pinnedUsers: "Qadalgan foydalanuvchilar"
|
||||||
pinnedPages: "Qadalgan Sahifalar"
|
pinnedPages: "Qadalgan Sahifalar"
|
||||||
pinnedNotes: "Qadanlgan qayd"
|
pinnedNotes: "Qadalgan qayd"
|
||||||
hcaptcha: "hCaptcha"
|
hcaptcha: "hCaptcha"
|
||||||
enableHcaptcha: "hCaptchani yoqish"
|
enableHcaptcha: "hCaptchani yoqish"
|
||||||
hcaptchaSiteKey: "Sayt kaliti"
|
hcaptchaSiteKey: "Sayt kaliti"
|
||||||
|
@ -358,6 +359,8 @@ recaptcha: "reCAPTCHA"
|
||||||
enableRecaptcha: "reCAPTCHA ni yoqish"
|
enableRecaptcha: "reCAPTCHA ni yoqish"
|
||||||
recaptchaSiteKey: "Sayt kaliti"
|
recaptchaSiteKey: "Sayt kaliti"
|
||||||
recaptchaSecretKey: "Maxfiy kalit"
|
recaptchaSecretKey: "Maxfiy kalit"
|
||||||
|
turnstile: "Turniket"
|
||||||
|
enableTurnstile: "Turniketni yoqish"
|
||||||
turnstileSiteKey: "Sayt kaliti"
|
turnstileSiteKey: "Sayt kaliti"
|
||||||
turnstileSecretKey: "Maxfiy kalit"
|
turnstileSecretKey: "Maxfiy kalit"
|
||||||
antennas: "Antennalar"
|
antennas: "Antennalar"
|
||||||
|
@ -365,9 +368,15 @@ manageAntennas: "Antennalarni boshqarish"
|
||||||
name: "Ism"
|
name: "Ism"
|
||||||
antennaSource: "Antenna manbai"
|
antennaSource: "Antenna manbai"
|
||||||
antennaKeywords: "Kalit so'zni qabul qilish"
|
antennaKeywords: "Kalit so'zni qabul qilish"
|
||||||
|
antennaExcludeKeywords: "Istisno qilingan kalit so'zlar"
|
||||||
|
antennaKeywordsDescription: "VA sharti uchun bo'shliqlar bilan yoki YOKI sharti uchun qator uzilishlari bilan ajrating."
|
||||||
notifyAntenna: "Yangi qaydlar haqida menga xabar bering"
|
notifyAntenna: "Yangi qaydlar haqida menga xabar bering"
|
||||||
|
withFileAntenna: "Faqatgina fayli bor qaydlar"
|
||||||
connectedTo: "Quyidagi akkountlarga ulangan"
|
connectedTo: "Quyidagi akkountlarga ulangan"
|
||||||
silence: "Sukunat"
|
notesAndReplies: "Qaydlar va javoblar"
|
||||||
|
silence: "Jim qilish"
|
||||||
|
silenceConfirm: "Rostdan ham ushbu foydalanuvchini jim qilmoqchimisiz?"
|
||||||
|
unsilence: "Jim qilishni bekor qilish"
|
||||||
popularUsers: "Mashhur foydalanuvchilar."
|
popularUsers: "Mashhur foydalanuvchilar."
|
||||||
recentlyRegisteredUsers: "Yaqinda ro'yxatdan o'tgan foydalanuvchilar"
|
recentlyRegisteredUsers: "Yaqinda ro'yxatdan o'tgan foydalanuvchilar"
|
||||||
exploreUsersCount: "{count} ta foydalanuvchi bor"
|
exploreUsersCount: "{count} ta foydalanuvchi bor"
|
||||||
|
@ -402,9 +411,11 @@ retype: "Qayta kiriting"
|
||||||
onlyOneFileCanBeAttached: "Faqat bitta faylni biriktirish mumkin"
|
onlyOneFileCanBeAttached: "Faqat bitta faylni biriktirish mumkin"
|
||||||
signinRequired: "Davom etishdan oldin ro'yhatdan o'tishingiz yoki tizimga kirishingiz kerak"
|
signinRequired: "Davom etishdan oldin ro'yhatdan o'tishingiz yoki tizimga kirishingiz kerak"
|
||||||
invitations: "Taklif qilish"
|
invitations: "Taklif qilish"
|
||||||
|
invitationCode: "taklif qilish kodi"
|
||||||
checking: "Tekshirilmoqda"
|
checking: "Tekshirilmoqda"
|
||||||
available: "Mavjud"
|
available: "Mavjud"
|
||||||
unavailable: "Mavjud emas"
|
unavailable: "Mavjud emas"
|
||||||
|
usernameInvalidFormat: "Siz a~z, A~Z, 0~9, _ dan foydalanishingiz mumkin"
|
||||||
tooShort: "Juda qisqa"
|
tooShort: "Juda qisqa"
|
||||||
tooLong: "juda uzun"
|
tooLong: "juda uzun"
|
||||||
weakPassword: "Zaif parol"
|
weakPassword: "Zaif parol"
|
||||||
|
@ -413,8 +424,22 @@ strongPassword: "Kuchli parol"
|
||||||
passwordMatched: "Mos keldi"
|
passwordMatched: "Mos keldi"
|
||||||
passwordNotMatched: "mos kelmadi"
|
passwordNotMatched: "mos kelmadi"
|
||||||
signinWith: "{x} bilan tizimga kirish"
|
signinWith: "{x} bilan tizimga kirish"
|
||||||
|
signinFailed: "Tizimga kirishda xatolik yuz berdi. Iltimos, foydalanuvchi nomingiz va parolingizni tekshiring."
|
||||||
or: "yoki"
|
or: "yoki"
|
||||||
language: "til"
|
language: "til"
|
||||||
|
aboutX: "{x} haqida"
|
||||||
|
showNoteActionsOnlyHover: "Eslatma amallarini faqat sichqonchani olib borganda ko‘rsatish"
|
||||||
|
noHistory: "Tarix yo'q"
|
||||||
|
signinHistory: "kirish tarixi"
|
||||||
|
category: "kategoriya"
|
||||||
|
tags: "teg"
|
||||||
|
docSource: "Ushbu hujjatning manbasi"
|
||||||
|
createAccount: "Akkaunt yaratish"
|
||||||
|
existingAccount: "mavjud akkaunt"
|
||||||
|
regenerate: "regeneratsiya"
|
||||||
|
fontSize: "shrift hajmi"
|
||||||
|
limitTo: "{x} gacha"
|
||||||
|
noFollowRequests: "obuna uchun so'rov yo'q"
|
||||||
dashboard: "Boshqaruv paneli"
|
dashboard: "Boshqaruv paneli"
|
||||||
local: "Mahalliy"
|
local: "Mahalliy"
|
||||||
total: "Jami"
|
total: "Jami"
|
||||||
|
@ -423,17 +448,47 @@ dayOverDayChanges: "Kecha bo'lgan o'zgarishlar"
|
||||||
appearance: "Tasgqi ko'rinish"
|
appearance: "Tasgqi ko'rinish"
|
||||||
clientSettings: "Klient sozlamalari"
|
clientSettings: "Klient sozlamalari"
|
||||||
accountSettings: "Profil sozlamalari"
|
accountSettings: "Profil sozlamalari"
|
||||||
|
promotion: "rag'batlantirish"
|
||||||
|
promote: "targ'ib qilish"
|
||||||
|
numberOfDays: "kunlar soni"
|
||||||
|
hideThisNote: "bu eslatmani yashiring"
|
||||||
|
showFeaturedNotesInTimeline: "Tanlangan qaydlarni Timelineda ko'rsatish"
|
||||||
|
objectStorageBaseUrl: "Asosiy URL"
|
||||||
|
objectStorageRegion: "Mintaqa"
|
||||||
|
objectStorageUseSSL: "SSL dan foydalaning"
|
||||||
sounds: "Tovushlar"
|
sounds: "Tovushlar"
|
||||||
sound: "ovoz"
|
sound: "ovoz"
|
||||||
none: "Hechnima"
|
none: "Hechnima"
|
||||||
volume: "Ovoz balandligi"
|
volume: "Ovoz balandligi"
|
||||||
details: "Batafsil"
|
details: "Batafsil"
|
||||||
output: "Chiqish"
|
output: "Chiqish"
|
||||||
|
deleteAllFiles: "barcha fayllarni o'chirish"
|
||||||
|
deleteAllFilesConfirm: "Barcha fayllar oʻchirilsinmi?"
|
||||||
|
userSuspended: "Bu foydalanuvchi muzlatilgan."
|
||||||
|
userSilenced: "Ushbu foydalanuvchi jim qilingan"
|
||||||
|
yourAccountSuspendedTitle: "akkaunt muzlatilgan"
|
||||||
|
yourAccountSuspendedDescription: "Ushbu akkaunt serverning xizmat ko'rsatish shartlarini buzish kabi sabablarga ko'ra to'xtatilgan. Tafsilotlar uchun administratoringizga murojaat qiling. Iltimos, yangi akkaunt yaratmang."
|
||||||
|
tokenRevoked: "token yaroqsiz"
|
||||||
|
tokenRevokedDescription: "Kirish tokeningizni muddati tugagan. Iltimos, qaytadan kiring."
|
||||||
|
accountDeleted: "akkaunt o'chirildi"
|
||||||
|
accountDeletedDescription: "Bu akkaunt oʻchirildi."
|
||||||
menu: "Menyu"
|
menu: "Menyu"
|
||||||
divider: "Ajratrmoq"
|
divider: "Ajratrmoq"
|
||||||
addItem: "Element qo'shish"
|
addItem: "Element qo'shish"
|
||||||
|
serviceworkerInfo: "bildirishnomalar uchun yoqilgan bo'lishi kerak."
|
||||||
|
deletedNote: "Oʻchirilgan post"
|
||||||
themeEditor: "Rang sxemasi muharriri"
|
themeEditor: "Rang sxemasi muharriri"
|
||||||
|
describeFile: "sarlavha qo'shing"
|
||||||
|
enterFileDescription: "sarlavha kiriting"
|
||||||
|
author: "muallif"
|
||||||
|
leaveConfirm: "Sizda saqlanmagan oʻzgarishlar bor. Bekor qilinsinmi?"
|
||||||
|
useBlurEffectForModal: "Modal uchun xiralashtirish effektidan foydalaning"
|
||||||
|
width: "kengligi"
|
||||||
|
height: "balandligi"
|
||||||
|
large: "Katta"
|
||||||
|
small: "kichik"
|
||||||
enableAll: "Yoqish"
|
enableAll: "Yoqish"
|
||||||
|
disableAll: "hammasini o'chirib qo'ying"
|
||||||
edit: "Tahrirlash"
|
edit: "Tahrirlash"
|
||||||
email: "Email"
|
email: "Email"
|
||||||
smtpHost: "Host"
|
smtpHost: "Host"
|
||||||
|
@ -508,7 +563,7 @@ _theme:
|
||||||
navBg: "Yon panel foni"
|
navBg: "Yon panel foni"
|
||||||
navFg: "Yon panel matni"
|
navFg: "Yon panel matni"
|
||||||
mention: "Murojat"
|
mention: "Murojat"
|
||||||
renote: "Qayta qaydetish"
|
renote: "Qayta qayd etish"
|
||||||
divider: "Ajratrmoq"
|
divider: "Ajratrmoq"
|
||||||
accentDarken: "Urg'u (Qoraytirilgan)"
|
accentDarken: "Urg'u (Qoraytirilgan)"
|
||||||
accentLighten: "Urg'u (Yoritilgan)"
|
accentLighten: "Urg'u (Yoritilgan)"
|
||||||
|
@ -654,7 +709,7 @@ _notification:
|
||||||
all: "Barchasi"
|
all: "Barchasi"
|
||||||
follow: "Obuna bo‘lish"
|
follow: "Obuna bo‘lish"
|
||||||
mention: "Murojat"
|
mention: "Murojat"
|
||||||
renote: "Qayta qaydetish"
|
renote: "Qayta qayd etish"
|
||||||
quote: "Iqtibos keltirish"
|
quote: "Iqtibos keltirish"
|
||||||
reaction: "Reaktsiyalar"
|
reaction: "Reaktsiyalar"
|
||||||
receiveFollowRequest: "Qabul qilingan kuzatuv so'rovlari"
|
receiveFollowRequest: "Qabul qilingan kuzatuv so'rovlari"
|
||||||
|
|
|
@ -28,6 +28,7 @@
|
||||||
"@swc/core-android-arm64": "1.3.11",
|
"@swc/core-android-arm64": "1.3.11",
|
||||||
"@swc/core-darwin-arm64": "1.3.56",
|
"@swc/core-darwin-arm64": "1.3.56",
|
||||||
"@swc/core-darwin-x64": "1.3.56",
|
"@swc/core-darwin-x64": "1.3.56",
|
||||||
|
"@swc/core-freebsd-x64": "1.3.11",
|
||||||
"@swc/core-linux-arm-gnueabihf": "1.3.56",
|
"@swc/core-linux-arm-gnueabihf": "1.3.56",
|
||||||
"@swc/core-linux-arm64-gnu": "1.3.56",
|
"@swc/core-linux-arm64-gnu": "1.3.56",
|
||||||
"@swc/core-linux-arm64-musl": "1.3.56",
|
"@swc/core-linux-arm64-musl": "1.3.56",
|
||||||
|
@ -39,18 +40,19 @@
|
||||||
"@tensorflow/tfjs": "4.4.0",
|
"@tensorflow/tfjs": "4.4.0",
|
||||||
"@tensorflow/tfjs-node": "4.4.0",
|
"@tensorflow/tfjs-node": "4.4.0",
|
||||||
"bufferutil": "^4.0.7",
|
"bufferutil": "^4.0.7",
|
||||||
"slacc-android-arm-eabi": "0.0.9",
|
"slacc-android-arm-eabi": "0.0.10",
|
||||||
"slacc-android-arm64": "0.0.9",
|
"slacc-android-arm64": "0.0.10",
|
||||||
"slacc-darwin-arm64": "0.0.9",
|
"slacc-darwin-arm64": "0.0.10",
|
||||||
"slacc-darwin-universal": "0.0.9",
|
"slacc-darwin-universal": "0.0.10",
|
||||||
"slacc-darwin-x64": "0.0.9",
|
"slacc-darwin-x64": "0.0.10",
|
||||||
"slacc-freebsd-x64": "0.0.9",
|
"slacc-freebsd-x64": "0.0.10",
|
||||||
"slacc-linux-arm-gnueabihf": "0.0.9",
|
"slacc-linux-arm-gnueabihf": "0.0.10",
|
||||||
"slacc-linux-arm64-gnu": "0.0.9",
|
"slacc-linux-arm64-gnu": "0.0.10",
|
||||||
"slacc-linux-arm64-musl": "0.0.9",
|
"slacc-linux-arm64-musl": "0.0.10",
|
||||||
"slacc-linux-x64-gnu": "0.0.9",
|
"slacc-linux-x64-gnu": "0.0.10",
|
||||||
"slacc-win32-arm64-msvc": "0.0.9",
|
"slacc-linux-x64-musl": "0.0.10",
|
||||||
"slacc-win32-x64-msvc": "0.0.9",
|
"slacc-win32-arm64-msvc": "0.0.10",
|
||||||
|
"slacc-win32-x64-msvc": "0.0.10",
|
||||||
"utf-8-validate": "^6.0.3"
|
"utf-8-validate": "^6.0.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -141,7 +143,7 @@
|
||||||
"semver": "7.5.4",
|
"semver": "7.5.4",
|
||||||
"sharp": "0.32.3",
|
"sharp": "0.32.3",
|
||||||
"sharp-read-bmp": "github:misskey-dev/sharp-read-bmp",
|
"sharp-read-bmp": "github:misskey-dev/sharp-read-bmp",
|
||||||
"slacc": "0.0.9",
|
"slacc": "0.0.10",
|
||||||
"strict-event-emitter-types": "2.0.0",
|
"strict-event-emitter-types": "2.0.0",
|
||||||
"stringz": "2.1.0",
|
"stringz": "2.1.0",
|
||||||
"summaly": "github:misskey-dev/summaly",
|
"summaly": "github:misskey-dev/summaly",
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import * as fs from 'node:fs';
|
import * as fs from 'node:fs';
|
||||||
import * as stream from 'node:stream';
|
import * as stream from 'node:stream/promises';
|
||||||
import * as util from 'node:util';
|
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import ipaddr from 'ipaddr.js';
|
import ipaddr from 'ipaddr.js';
|
||||||
import chalk from 'chalk';
|
import chalk from 'chalk';
|
||||||
|
@ -14,7 +13,6 @@ import { StatusError } from '@/misc/status-error.js';
|
||||||
import { LoggerService } from '@/core/LoggerService.js';
|
import { LoggerService } from '@/core/LoggerService.js';
|
||||||
import type Logger from '@/logger.js';
|
import type Logger from '@/logger.js';
|
||||||
|
|
||||||
const pipeline = util.promisify(stream.pipeline);
|
|
||||||
import { bindThis } from '@/decorators.js';
|
import { bindThis } from '@/decorators.js';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
@ -102,7 +100,7 @@ export class DownloadService {
|
||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await pipeline(req, fs.createWriteStream(path));
|
await stream.pipeline(req, fs.createWriteStream(path));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e instanceof Got.HTTPError) {
|
if (e instanceof Got.HTTPError) {
|
||||||
throw new StatusError(`${e.response.statusCode} ${e.response.statusMessage}`, e.response.statusCode, e.response.statusMessage);
|
throw new StatusError(`${e.response.statusCode} ${e.response.statusMessage}`, e.response.statusCode, e.response.statusMessage);
|
||||||
|
@ -129,7 +127,7 @@ export class DownloadService {
|
||||||
// write content at URL to temp file
|
// write content at URL to temp file
|
||||||
await this.downloadUrl(url, path);
|
await this.downloadUrl(url, path);
|
||||||
|
|
||||||
const text = await util.promisify(fs.readFile)(path, 'utf8');
|
const text = await fs.promises.readFile(path, 'utf8');
|
||||||
|
|
||||||
return text;
|
return text;
|
||||||
} finally {
|
} finally {
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
import * as fs from 'node:fs';
|
import * as fs from 'node:fs';
|
||||||
import * as crypto from 'node:crypto';
|
import * as crypto from 'node:crypto';
|
||||||
import { join } from 'node:path';
|
import { join } from 'node:path';
|
||||||
import * as stream from 'node:stream';
|
import * as stream from 'node:stream/promises';
|
||||||
import * as util from 'node:util';
|
|
||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable } from '@nestjs/common';
|
||||||
import { FSWatcher } from 'chokidar';
|
import { FSWatcher } from 'chokidar';
|
||||||
import * as fileType from 'file-type';
|
import * as fileType from 'file-type';
|
||||||
|
@ -16,8 +15,6 @@ import { createTempDir } from '@/misc/create-temp.js';
|
||||||
import { AiService } from '@/core/AiService.js';
|
import { AiService } from '@/core/AiService.js';
|
||||||
import { bindThis } from '@/decorators.js';
|
import { bindThis } from '@/decorators.js';
|
||||||
|
|
||||||
const pipeline = util.promisify(stream.pipeline);
|
|
||||||
|
|
||||||
export type FileInfo = {
|
export type FileInfo = {
|
||||||
size: number;
|
size: number;
|
||||||
md5: string;
|
md5: string;
|
||||||
|
@ -371,8 +368,7 @@ export class FileInfoService {
|
||||||
*/
|
*/
|
||||||
@bindThis
|
@bindThis
|
||||||
public async getFileSize(path: string): Promise<number> {
|
public async getFileSize(path: string): Promise<number> {
|
||||||
const getStat = util.promisify(fs.stat);
|
return (await fs.promises.stat(path)).size;
|
||||||
return (await getStat(path)).size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -381,7 +377,7 @@ export class FileInfoService {
|
||||||
@bindThis
|
@bindThis
|
||||||
private async calcHash(path: string): Promise<string> {
|
private async calcHash(path: string): Promise<string> {
|
||||||
const hash = crypto.createHash('md5').setEncoding('hex');
|
const hash = crypto.createHash('md5').setEncoding('hex');
|
||||||
await pipeline(fs.createReadStream(path), hash);
|
await stream.pipeline(fs.createReadStream(path), hash);
|
||||||
return hash.read();
|
return hash.read();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { randomUUID } from 'node:crypto';
|
import { randomUUID } from 'node:crypto';
|
||||||
import { pipeline } from 'node:stream';
|
|
||||||
import * as fs from 'node:fs';
|
import * as fs from 'node:fs';
|
||||||
import { promisify } from 'node:util';
|
import * as stream from 'node:stream/promises';
|
||||||
import { Inject, Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
import { DI } from '@/di-symbols.js';
|
import { DI } from '@/di-symbols.js';
|
||||||
import { getIpHash } from '@/misc/get-ip-hash.js';
|
import { getIpHash } from '@/misc/get-ip-hash.js';
|
||||||
|
@ -21,8 +20,6 @@ import type { FastifyRequest, FastifyReply } from 'fastify';
|
||||||
import type { OnApplicationShutdown } from '@nestjs/common';
|
import type { OnApplicationShutdown } from '@nestjs/common';
|
||||||
import type { IEndpointMeta, IEndpoint } from './endpoints.js';
|
import type { IEndpointMeta, IEndpoint } from './endpoints.js';
|
||||||
|
|
||||||
const pump = promisify(pipeline);
|
|
||||||
|
|
||||||
const accessDenied = {
|
const accessDenied = {
|
||||||
message: 'Access denied.',
|
message: 'Access denied.',
|
||||||
code: 'ACCESS_DENIED',
|
code: 'ACCESS_DENIED',
|
||||||
|
@ -138,7 +135,7 @@ export class ApiCallService implements OnApplicationShutdown {
|
||||||
}
|
}
|
||||||
|
|
||||||
const [path] = await createTemp();
|
const [path] = await createTemp();
|
||||||
await pump(multipartData.file, fs.createWriteStream(path));
|
await stream.pipeline(multipartData.file, fs.createWriteStream(path));
|
||||||
|
|
||||||
const fields = {} as Record<string, unknown>;
|
const fields = {} as Record<string, unknown>;
|
||||||
for (const [k, v] of Object.entries(multipartData.fields)) {
|
for (const [k, v] of Object.entries(multipartData.fields)) {
|
||||||
|
|
|
@ -5,6 +5,7 @@ import { Note } from '@/models/entities/Note.js';
|
||||||
import { signup, post, uploadUrl, startServer, initTestDb, api, uploadFile } from '../utils.js';
|
import { signup, post, uploadUrl, startServer, initTestDb, api, uploadFile } from '../utils.js';
|
||||||
import type { INestApplicationContext } from '@nestjs/common';
|
import type { INestApplicationContext } from '@nestjs/common';
|
||||||
import type * as misskey from 'misskey-js';
|
import type * as misskey from 'misskey-js';
|
||||||
|
import { MAX_NOTE_TEXT_LENGTH } from '@/const.js';
|
||||||
|
|
||||||
describe('Note', () => {
|
describe('Note', () => {
|
||||||
let app: INestApplicationContext;
|
let app: INestApplicationContext;
|
||||||
|
@ -164,7 +165,7 @@ describe('Note', () => {
|
||||||
|
|
||||||
test('文字数ぎりぎりで怒られない', async () => {
|
test('文字数ぎりぎりで怒られない', async () => {
|
||||||
const post = {
|
const post = {
|
||||||
text: '!'.repeat(3000),
|
text: '!'.repeat(MAX_NOTE_TEXT_LENGTH), // 3000文字
|
||||||
};
|
};
|
||||||
const res = await api('/notes/create', post, alice);
|
const res = await api('/notes/create', post, alice);
|
||||||
assert.strictEqual(res.status, 200);
|
assert.strictEqual(res.status, 200);
|
||||||
|
@ -172,7 +173,7 @@ describe('Note', () => {
|
||||||
|
|
||||||
test('文字数オーバーで怒られる', async () => {
|
test('文字数オーバーで怒られる', async () => {
|
||||||
const post = {
|
const post = {
|
||||||
text: '!'.repeat(3001),
|
text: '!'.repeat(MAX_NOTE_TEXT_LENGTH + 1), // 3001文字
|
||||||
};
|
};
|
||||||
const res = await api('/notes/create', post, alice);
|
const res = await api('/notes/create', post, alice);
|
||||||
assert.strictEqual(res.status, 400);
|
assert.strictEqual(res.status, 400);
|
||||||
|
|
|
@ -58,7 +58,7 @@ async function getClientWidthWithCache(targetEl: HTMLElement, containerEl: HTMLE
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, shallowRef } from 'vue';
|
import { onMounted, onUnmounted, shallowRef } from 'vue';
|
||||||
import * as misskey from 'misskey-js';
|
import * as misskey from 'misskey-js';
|
||||||
import PhotoSwipeLightbox from 'photoswipe/lightbox';
|
import PhotoSwipeLightbox from 'photoswipe/lightbox';
|
||||||
import PhotoSwipe from 'photoswipe';
|
import PhotoSwipe from 'photoswipe';
|
||||||
|
@ -82,12 +82,19 @@ const gallery = shallowRef<HTMLDivElement>();
|
||||||
const pswpZIndex = os.claimZIndex('middle');
|
const pswpZIndex = os.claimZIndex('middle');
|
||||||
document.documentElement.style.setProperty('--mk-pswp-root-z-index', pswpZIndex.toString());
|
document.documentElement.style.setProperty('--mk-pswp-root-z-index', pswpZIndex.toString());
|
||||||
const count = $computed(() => props.mediaList.filter(media => previewable(media)).length);
|
const count = $computed(() => props.mediaList.filter(media => previewable(media)).length);
|
||||||
|
let lightbox: PhotoSwipeLightbox | null;
|
||||||
|
|
||||||
|
const popstateHandler = (): void => {
|
||||||
|
if (lightbox.pswp && lightbox.pswp.isOpen === true) {
|
||||||
|
lightbox.pswp.close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* アスペクト比をmediaListWithOneImageAppearanceに基づいていい感じに調整する
|
* アスペクト比をmediaListWithOneImageAppearanceに基づいていい感じに調整する
|
||||||
* aspect-ratioではなくheightを使う
|
* aspect-ratioではなくheightを使う
|
||||||
*/
|
*/
|
||||||
async function calcAspectRatio() {
|
async function calcAspectRatio() {
|
||||||
if (!gallery.value || !root.value) return;
|
if (!gallery.value || !root.value) return;
|
||||||
|
|
||||||
let img = props.mediaList[0];
|
let img = props.mediaList[0];
|
||||||
|
@ -137,7 +144,7 @@ const count = $computed(() => props.mediaList.filter(media => previewable(media)
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
calcAspectRatio();
|
calcAspectRatio();
|
||||||
|
|
||||||
const lightbox = new PhotoSwipeLightbox({
|
lightbox = new PhotoSwipeLightbox({
|
||||||
dataSource: props.mediaList
|
dataSource: props.mediaList
|
||||||
.filter(media => {
|
.filter(media => {
|
||||||
if (media.type === 'image/svg+xml') return true; // svgのwebpublicはpngなのでtrue
|
if (media.type === 'image/svg+xml') return true; // svgのwebpublicはpngなのでtrue
|
||||||
|
@ -221,12 +228,7 @@ onMounted(() => {
|
||||||
|
|
||||||
lightbox.init();
|
lightbox.init();
|
||||||
|
|
||||||
window.addEventListener('popstate', () => {
|
window.addEventListener('popstate', popstateHandler);
|
||||||
if (lightbox.pswp && lightbox.pswp.isOpen === true) {
|
|
||||||
lightbox.pswp.close();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
lightbox.on('beforeOpen', () => {
|
lightbox.on('beforeOpen', () => {
|
||||||
history.pushState(null, '', '#pswp');
|
history.pushState(null, '', '#pswp');
|
||||||
|
@ -239,6 +241,12 @@ onMounted(() => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
onUnmounted(() => {
|
||||||
|
window.removeEventListener('popstate', popstateHandler);
|
||||||
|
lightbox?.destroy();
|
||||||
|
lightbox = null;
|
||||||
|
});
|
||||||
|
|
||||||
const previewable = (file: misskey.entities.DriveFile): boolean => {
|
const previewable = (file: misskey.entities.DriveFile): boolean => {
|
||||||
if (file.type === 'image/svg+xml') return true; // svgのwebpublic/thumbnailはpngなのでtrue
|
if (file.type === 'image/svg+xml') return true; // svgのwebpublic/thumbnailはpngなのでtrue
|
||||||
// FILE_TYPE_BROWSERSAFEに適合しないものはブラウザで表示するのに不適切
|
// FILE_TYPE_BROWSERSAFEに適合しないものはブラウザで表示するのに不適切
|
||||||
|
|
|
@ -341,6 +341,7 @@ function reply(viaKeyboard = false): void {
|
||||||
pleaseLogin();
|
pleaseLogin();
|
||||||
os.post({
|
os.post({
|
||||||
reply: appearNote,
|
reply: appearNote,
|
||||||
|
channel: appearNote.channel,
|
||||||
animation: !viaKeyboard,
|
animation: !viaKeyboard,
|
||||||
}, () => {
|
}, () => {
|
||||||
focus();
|
focus();
|
||||||
|
|
|
@ -320,6 +320,7 @@ function reply(viaKeyboard = false): void {
|
||||||
showMovedDialog();
|
showMovedDialog();
|
||||||
os.post({
|
os.post({
|
||||||
reply: appearNote,
|
reply: appearNote,
|
||||||
|
channel: appearNote.channel,
|
||||||
animation: !viaKeyboard,
|
animation: !viaKeyboard,
|
||||||
}, () => {
|
}, () => {
|
||||||
focus();
|
focus();
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, onMounted, onUnmounted } from 'vue';
|
import { computed, onMounted, onUnmounted, ref } from 'vue';
|
||||||
import { v4 as uuid } from 'uuid';
|
import { v4 as uuid } from 'uuid';
|
||||||
import FormSection from '@/components/form/section.vue';
|
import FormSection from '@/components/form/section.vue';
|
||||||
import MkButton from '@/components/MkButton.vue';
|
import MkButton from '@/components/MkButton.vue';
|
||||||
|
@ -93,15 +93,6 @@ const coldDeviceStorageSaveKeys: (keyof typeof ColdDeviceStorage.default)[] = [
|
||||||
'darkTheme',
|
'darkTheme',
|
||||||
'syncDeviceDarkMode',
|
'syncDeviceDarkMode',
|
||||||
'plugins',
|
'plugins',
|
||||||
'mediaVolume',
|
|
||||||
'sound_masterVolume',
|
|
||||||
'sound_note',
|
|
||||||
'sound_noteMy',
|
|
||||||
'sound_notification',
|
|
||||||
'sound_chat',
|
|
||||||
'sound_chatBg',
|
|
||||||
'sound_antenna',
|
|
||||||
'sound_channel',
|
|
||||||
];
|
];
|
||||||
|
|
||||||
const scope = ['clientPreferencesProfiles'];
|
const scope = ['clientPreferencesProfiles'];
|
||||||
|
@ -125,18 +116,18 @@ type Profile = {
|
||||||
|
|
||||||
const connection = $i && useStream().useChannel('main');
|
const connection = $i && useStream().useChannel('main');
|
||||||
|
|
||||||
let profiles = $ref<Record<string, Profile> | null>(null);
|
const profiles = ref<Record<string, Profile> | null>(null);
|
||||||
|
|
||||||
os.api('i/registry/get-all', { scope })
|
os.api('i/registry/get-all', { scope })
|
||||||
.then(res => {
|
.then(res => {
|
||||||
profiles = res || {};
|
profiles.value = res || {};
|
||||||
});
|
});
|
||||||
|
|
||||||
function isObject(value: unknown): value is Record<string, unknown> {
|
function isObject(value: unknown): value is Record<string, unknown> {
|
||||||
return value != null && typeof value === 'object' && !Array.isArray(value);
|
return value != null && typeof value === 'object' && !Array.isArray(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
function validate(profile: unknown): void {
|
function validate(profile: any): void {
|
||||||
if (!isObject(profile)) throw new Error('not an object');
|
if (!isObject(profile)) throw new Error('not an object');
|
||||||
|
|
||||||
// Check if unnecessary properties exist
|
// Check if unnecessary properties exist
|
||||||
|
@ -147,9 +138,9 @@ function validate(profile: unknown): void {
|
||||||
|
|
||||||
// Check if createdAt and updatedAt is Date
|
// Check if createdAt and updatedAt is Date
|
||||||
// https://zenn.dev/lollipop_onl/articles/eoz-judge-js-invalid-date
|
// https://zenn.dev/lollipop_onl/articles/eoz-judge-js-invalid-date
|
||||||
if (!profile.createdAt || Number.isNaN(new Date(profile.createdAt).getTime())) throw new Error('createdAt is falsy or not Date');
|
if (!profile.createdAt || Number.isNaN(new Date(profile.createdAt as any).getTime())) throw new Error('createdAt is falsy or not Date');
|
||||||
if (profile.updatedAt) {
|
if (profile.updatedAt) {
|
||||||
if (Number.isNaN(new Date(profile.updatedAt).getTime())) {
|
if (Number.isNaN(new Date(profile.updatedAt as any).getTime())) {
|
||||||
throw new Error('updatedAt is not Date');
|
throw new Error('updatedAt is not Date');
|
||||||
}
|
}
|
||||||
} else if (profile.updatedAt !== null) {
|
} else if (profile.updatedAt !== null) {
|
||||||
|
@ -181,14 +172,14 @@ function getSettings(): Profile['settings'] {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function saveNew(): Promise<void> {
|
async function saveNew(): Promise<void> {
|
||||||
if (!profiles) return;
|
if (!profiles.value) return;
|
||||||
|
|
||||||
const { canceled, result: name } = await os.inputText({
|
const { canceled, result: name } = await os.inputText({
|
||||||
title: ts._preferencesBackups.inputName,
|
title: ts._preferencesBackups.inputName,
|
||||||
});
|
});
|
||||||
if (canceled) return;
|
if (canceled) return;
|
||||||
|
|
||||||
if (Object.values(profiles).some(x => x.name === name)) {
|
if (Object.values(profiles.value).some(x => x.name === name)) {
|
||||||
return os.alert({
|
return os.alert({
|
||||||
title: ts._preferencesBackups.cannotSave,
|
title: ts._preferencesBackups.cannotSave,
|
||||||
text: t('_preferencesBackups.nameAlreadyExists', { name }),
|
text: t('_preferencesBackups.nameAlreadyExists', { name }),
|
||||||
|
@ -212,7 +203,7 @@ function loadFile(): void {
|
||||||
input.type = 'file';
|
input.type = 'file';
|
||||||
input.multiple = false;
|
input.multiple = false;
|
||||||
input.onchange = async () => {
|
input.onchange = async () => {
|
||||||
if (!profiles) return;
|
if (!profiles.value) return;
|
||||||
if (!input.files || input.files.length === 0) return;
|
if (!input.files || input.files.length === 0) return;
|
||||||
|
|
||||||
const file = input.files[0];
|
const file = input.files[0];
|
||||||
|
@ -233,7 +224,7 @@ function loadFile(): void {
|
||||||
return os.alert({
|
return os.alert({
|
||||||
type: 'error',
|
type: 'error',
|
||||||
title: ts._preferencesBackups.cannotLoad,
|
title: ts._preferencesBackups.cannotLoad,
|
||||||
text: err?.message,
|
text: (err as any)?.message ?? '',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,9 +243,9 @@ function loadFile(): void {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function applyProfile(id: string): Promise<void> {
|
async function applyProfile(id: string): Promise<void> {
|
||||||
if (!profiles) return;
|
if (!profiles.value) return;
|
||||||
|
|
||||||
const profile = profiles[id];
|
const profile = profiles.value[id];
|
||||||
|
|
||||||
const { canceled: cancel1 } = await os.confirm({
|
const { canceled: cancel1 } = await os.confirm({
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
|
@ -312,23 +303,23 @@ async function applyProfile(id: string): Promise<void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function deleteProfile(id: string): Promise<void> {
|
async function deleteProfile(id: string): Promise<void> {
|
||||||
if (!profiles) return;
|
if (!profiles.value) return;
|
||||||
|
|
||||||
const { canceled } = await os.confirm({
|
const { canceled } = await os.confirm({
|
||||||
type: 'info',
|
type: 'info',
|
||||||
title: ts.delete,
|
title: ts.delete,
|
||||||
text: t('deleteAreYouSure', { x: profiles[id].name }),
|
text: t('deleteAreYouSure', { x: profiles.value[id].name }),
|
||||||
});
|
});
|
||||||
if (canceled) return;
|
if (canceled) return;
|
||||||
|
|
||||||
await os.apiWithDialog('i/registry/remove', { scope, key: id });
|
await os.apiWithDialog('i/registry/remove', { scope, key: id });
|
||||||
delete profiles[id];
|
delete profiles.value[id];
|
||||||
}
|
}
|
||||||
|
|
||||||
async function save(id: string): Promise<void> {
|
async function save(id: string): Promise<void> {
|
||||||
if (!profiles) return;
|
if (!profiles.value) return;
|
||||||
|
|
||||||
const { name, createdAt } = profiles[id];
|
const { name, createdAt } = profiles.value[id];
|
||||||
|
|
||||||
const { canceled } = await os.confirm({
|
const { canceled } = await os.confirm({
|
||||||
type: 'info',
|
type: 'info',
|
||||||
|
@ -349,25 +340,25 @@ async function save(id: string): Promise<void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function rename(id: string): Promise<void> {
|
async function rename(id: string): Promise<void> {
|
||||||
if (!profiles) return;
|
if (!profiles.value) return;
|
||||||
|
|
||||||
const { canceled: cancel1, result: name } = await os.inputText({
|
const { canceled: cancel1, result: name } = await os.inputText({
|
||||||
title: ts._preferencesBackups.inputName,
|
title: ts._preferencesBackups.inputName,
|
||||||
});
|
});
|
||||||
if (cancel1 || profiles[id].name === name) return;
|
if (cancel1 || profiles.value[id].name === name) return;
|
||||||
|
|
||||||
if (Object.values(profiles).some(x => x.name === name)) {
|
if (Object.values(profiles.value).some(x => x.name === name)) {
|
||||||
return os.alert({
|
return os.alert({
|
||||||
title: ts._preferencesBackups.cannotSave,
|
title: ts._preferencesBackups.cannotSave,
|
||||||
text: t('_preferencesBackups.nameAlreadyExists', { name }),
|
text: t('_preferencesBackups.nameAlreadyExists', { name }),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const registry = Object.assign({}, { ...profiles[id] });
|
const registry = Object.assign({}, { ...profiles.value[id] });
|
||||||
|
|
||||||
const { canceled: cancel2 } = await os.confirm({
|
const { canceled: cancel2 } = await os.confirm({
|
||||||
type: 'info',
|
type: 'info',
|
||||||
title: ts._preferencesBackups.rename,
|
title: ts.rename,
|
||||||
text: t('_preferencesBackups.renameConfirm', { old: registry.name, new: name }),
|
text: t('_preferencesBackups.renameConfirm', { old: registry.name, new: name }),
|
||||||
});
|
});
|
||||||
if (cancel2) return;
|
if (cancel2) return;
|
||||||
|
@ -377,7 +368,7 @@ async function rename(id: string): Promise<void> {
|
||||||
}
|
}
|
||||||
|
|
||||||
function menu(ev: MouseEvent, profileId: string) {
|
function menu(ev: MouseEvent, profileId: string) {
|
||||||
if (!profiles) return;
|
if (!profiles.value) return;
|
||||||
|
|
||||||
return os.popupMenu([{
|
return os.popupMenu([{
|
||||||
text: ts._preferencesBackups.apply,
|
text: ts._preferencesBackups.apply,
|
||||||
|
@ -387,8 +378,8 @@ function menu(ev: MouseEvent, profileId: string) {
|
||||||
type: 'a',
|
type: 'a',
|
||||||
text: ts.download,
|
text: ts.download,
|
||||||
icon: 'ti ti-download',
|
icon: 'ti ti-download',
|
||||||
href: URL.createObjectURL(new Blob([JSON.stringify(profiles[profileId], null, 2)], { type: 'application/json' })),
|
href: URL.createObjectURL(new Blob([JSON.stringify(profiles.value[profileId], null, 2)], { type: 'application/json' })),
|
||||||
download: `${profiles[profileId].name}.json`,
|
download: `${profiles.value[profileId].name}.json`,
|
||||||
}, null, {
|
}, null, {
|
||||||
text: ts.rename,
|
text: ts.rename,
|
||||||
icon: 'ti ti-forms',
|
icon: 'ti ti-forms',
|
||||||
|
@ -402,16 +393,16 @@ function menu(ev: MouseEvent, profileId: string) {
|
||||||
icon: 'ti ti-trash',
|
icon: 'ti ti-trash',
|
||||||
action: () => deleteProfile(profileId),
|
action: () => deleteProfile(profileId),
|
||||||
danger: true,
|
danger: true,
|
||||||
}], ev.currentTarget ?? ev.target);
|
}], (ev.currentTarget ?? ev.target ?? undefined) as unknown as HTMLElement | undefined);
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// streamingのuser storage updateイベントを監視して更新
|
// streamingのuser storage updateイベントを監視して更新
|
||||||
connection?.on('registryUpdated', ({ scope: recievedScope, key, value }) => {
|
connection?.on('registryUpdated', ({ scope: recievedScope, key, value }) => {
|
||||||
if (!recievedScope || recievedScope.length !== scope.length || recievedScope[0] !== scope[0]) return;
|
if (!recievedScope || recievedScope.length !== scope.length || recievedScope[0] !== scope[0]) return;
|
||||||
if (!profiles) return;
|
if (!profiles.value) return;
|
||||||
|
|
||||||
profiles[key] = value;
|
profiles.value[key] = value;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@ export function createAiScriptEnv(opts) {
|
||||||
USER_NAME: $i ? values.STR($i.name) : values.NULL,
|
USER_NAME: $i ? values.STR($i.name) : values.NULL,
|
||||||
USER_USERNAME: $i ? values.STR($i.username) : values.NULL,
|
USER_USERNAME: $i ? values.STR($i.username) : values.NULL,
|
||||||
CUSTOM_EMOJIS: utils.jsToVal(customEmojis.value),
|
CUSTOM_EMOJIS: utils.jsToVal(customEmojis.value),
|
||||||
CURRENT_URL: values.STR(window.location.href),
|
|
||||||
'Mk:dialog': values.FN_NATIVE(async ([title, text, type]) => {
|
'Mk:dialog': values.FN_NATIVE(async ([title, text, type]) => {
|
||||||
await os.alert({
|
await os.alert({
|
||||||
type: type ? type.value : 'info',
|
type: type ? type.value : 'info',
|
||||||
|
@ -48,5 +47,8 @@ export function createAiScriptEnv(opts) {
|
||||||
utils.assertString(key);
|
utils.assertString(key);
|
||||||
return utils.jsToVal(JSON.parse(miLocalStorage.getItem(`aiscript:${opts.storageKey}:${key.value}`)));
|
return utils.jsToVal(JSON.parse(miLocalStorage.getItem(`aiscript:${opts.storageKey}:${key.value}`)));
|
||||||
}),
|
}),
|
||||||
|
'Mk:url': values.FN_NATIVE(() => {
|
||||||
|
return values.STR(window.location.href);
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
193
pnpm-lock.yaml
193
pnpm-lock.yaml
|
@ -1,4 +1,4 @@
|
||||||
lockfileVersion: '6.1'
|
lockfileVersion: '6.0'
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
autoInstallPeers: true
|
autoInstallPeers: true
|
||||||
|
@ -330,8 +330,8 @@ importers:
|
||||||
specifier: github:misskey-dev/sharp-read-bmp
|
specifier: github:misskey-dev/sharp-read-bmp
|
||||||
version: github.com/misskey-dev/sharp-read-bmp/02d9dc189fa7df0c4bea09330be26741772dac01
|
version: github.com/misskey-dev/sharp-read-bmp/02d9dc189fa7df0c4bea09330be26741772dac01
|
||||||
slacc:
|
slacc:
|
||||||
specifier: 0.0.9
|
specifier: 0.0.10
|
||||||
version: 0.0.9
|
version: 0.0.10
|
||||||
strict-event-emitter-types:
|
strict-event-emitter-types:
|
||||||
specifier: 2.0.0
|
specifier: 2.0.0
|
||||||
version: 2.0.0
|
version: 2.0.0
|
||||||
|
@ -340,7 +340,7 @@ importers:
|
||||||
version: 2.1.0
|
version: 2.1.0
|
||||||
summaly:
|
summaly:
|
||||||
specifier: github:misskey-dev/summaly
|
specifier: github:misskey-dev/summaly
|
||||||
version: github.com/misskey-dev/summaly/77dd5654bb82280b38c1f50e51a771c33f3df503
|
version: github.com/misskey-dev/summaly/089a0ad8e8c780e5c088b1c528aa95c5827cbdcc
|
||||||
systeminformation:
|
systeminformation:
|
||||||
specifier: 5.18.7
|
specifier: 5.18.7
|
||||||
version: 5.18.7
|
version: 5.18.7
|
||||||
|
@ -390,6 +390,9 @@ importers:
|
||||||
'@swc/core-darwin-x64':
|
'@swc/core-darwin-x64':
|
||||||
specifier: 1.3.56
|
specifier: 1.3.56
|
||||||
version: 1.3.56
|
version: 1.3.56
|
||||||
|
'@swc/core-freebsd-x64':
|
||||||
|
specifier: 1.3.11
|
||||||
|
version: 1.3.11
|
||||||
'@swc/core-linux-arm-gnueabihf':
|
'@swc/core-linux-arm-gnueabihf':
|
||||||
specifier: 1.3.56
|
specifier: 1.3.56
|
||||||
version: 1.3.56
|
version: 1.3.56
|
||||||
|
@ -424,41 +427,44 @@ importers:
|
||||||
specifier: ^4.0.7
|
specifier: ^4.0.7
|
||||||
version: 4.0.7
|
version: 4.0.7
|
||||||
slacc-android-arm-eabi:
|
slacc-android-arm-eabi:
|
||||||
specifier: 0.0.9
|
specifier: 0.0.10
|
||||||
version: 0.0.9
|
version: 0.0.10
|
||||||
slacc-android-arm64:
|
slacc-android-arm64:
|
||||||
specifier: 0.0.9
|
specifier: 0.0.10
|
||||||
version: 0.0.9
|
version: 0.0.10
|
||||||
slacc-darwin-arm64:
|
slacc-darwin-arm64:
|
||||||
specifier: 0.0.9
|
specifier: 0.0.10
|
||||||
version: 0.0.9
|
version: 0.0.10
|
||||||
slacc-darwin-universal:
|
slacc-darwin-universal:
|
||||||
specifier: 0.0.9
|
specifier: 0.0.10
|
||||||
version: 0.0.9
|
version: 0.0.10
|
||||||
slacc-darwin-x64:
|
slacc-darwin-x64:
|
||||||
specifier: 0.0.9
|
specifier: 0.0.10
|
||||||
version: 0.0.9
|
version: 0.0.10
|
||||||
slacc-freebsd-x64:
|
slacc-freebsd-x64:
|
||||||
specifier: 0.0.9
|
specifier: 0.0.10
|
||||||
version: 0.0.9
|
version: 0.0.10
|
||||||
slacc-linux-arm-gnueabihf:
|
slacc-linux-arm-gnueabihf:
|
||||||
specifier: 0.0.9
|
specifier: 0.0.10
|
||||||
version: 0.0.9
|
version: 0.0.10
|
||||||
slacc-linux-arm64-gnu:
|
slacc-linux-arm64-gnu:
|
||||||
specifier: 0.0.9
|
specifier: 0.0.10
|
||||||
version: 0.0.9
|
version: 0.0.10
|
||||||
slacc-linux-arm64-musl:
|
slacc-linux-arm64-musl:
|
||||||
specifier: 0.0.9
|
specifier: 0.0.10
|
||||||
version: 0.0.9
|
version: 0.0.10
|
||||||
slacc-linux-x64-gnu:
|
slacc-linux-x64-gnu:
|
||||||
specifier: 0.0.9
|
specifier: 0.0.10
|
||||||
version: 0.0.9
|
version: 0.0.10
|
||||||
|
slacc-linux-x64-musl:
|
||||||
|
specifier: 0.0.10
|
||||||
|
version: 0.0.10
|
||||||
slacc-win32-arm64-msvc:
|
slacc-win32-arm64-msvc:
|
||||||
specifier: 0.0.9
|
specifier: 0.0.10
|
||||||
version: 0.0.9
|
version: 0.0.10
|
||||||
slacc-win32-x64-msvc:
|
slacc-win32-x64-msvc:
|
||||||
specifier: 0.0.9
|
specifier: 0.0.10
|
||||||
version: 0.0.9
|
version: 0.0.10
|
||||||
utf-8-validate:
|
utf-8-validate:
|
||||||
specifier: ^6.0.3
|
specifier: ^6.0.3
|
||||||
version: 6.0.3
|
version: 6.0.3
|
||||||
|
@ -955,7 +961,7 @@ importers:
|
||||||
version: github.com/misskey-dev/storybook-addon-misskey-theme/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@7.0.27)(@storybook/components@7.1.0)(@storybook/core-events@7.0.27)(@storybook/manager-api@7.0.27)(@storybook/preview-api@7.0.27)(@storybook/theming@7.0.27)(@storybook/types@7.0.27)(react-dom@18.2.0)(react@18.2.0)
|
version: github.com/misskey-dev/storybook-addon-misskey-theme/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@7.0.27)(@storybook/components@7.1.0)(@storybook/core-events@7.0.27)(@storybook/manager-api@7.0.27)(@storybook/preview-api@7.0.27)(@storybook/theming@7.0.27)(@storybook/types@7.0.27)(react-dom@18.2.0)(react@18.2.0)
|
||||||
summaly:
|
summaly:
|
||||||
specifier: github:misskey-dev/summaly
|
specifier: github:misskey-dev/summaly
|
||||||
version: github.com/misskey-dev/summaly/77dd5654bb82280b38c1f50e51a771c33f3df503
|
version: github.com/misskey-dev/summaly/089a0ad8e8c780e5c088b1c528aa95c5827cbdcc
|
||||||
vite-plugin-turbosnap:
|
vite-plugin-turbosnap:
|
||||||
specifier: 1.0.2
|
specifier: 1.0.2
|
||||||
version: 1.0.2
|
version: 1.0.2
|
||||||
|
@ -976,7 +982,7 @@ importers:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@swc/cli':
|
'@swc/cli':
|
||||||
specifier: 0.1.62
|
specifier: 0.1.62
|
||||||
version: 0.1.62(@swc/core@1.3.70)(chokidar@3.5.3)
|
version: 0.1.62(@swc/core@1.3.69)
|
||||||
'@swc/core':
|
'@swc/core':
|
||||||
specifier: 1.3.69
|
specifier: 1.3.69
|
||||||
version: 1.3.69
|
version: 1.3.69
|
||||||
|
@ -7222,12 +7228,32 @@ packages:
|
||||||
ts-dedent: 2.2.0
|
ts-dedent: 2.2.0
|
||||||
type-fest: 2.19.0
|
type-fest: 2.19.0
|
||||||
vue: 3.3.4
|
vue: 3.3.4
|
||||||
vue-component-type-helpers: 1.8.5
|
vue-component-type-helpers: 1.8.6
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- encoding
|
- encoding
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@swc/cli@0.1.62(@swc/core@1.3.69):
|
||||||
|
resolution: {integrity: sha512-kOFLjKY3XH1DWLfXL1/B5MizeNorHR8wHKEi92S/Zi9Md/AK17KSqR8MgyRJ6C1fhKHvbBCl8wboyKAFXStkYw==}
|
||||||
|
engines: {node: '>= 12.13'}
|
||||||
|
hasBin: true
|
||||||
|
peerDependencies:
|
||||||
|
'@swc/core': ^1.2.66
|
||||||
|
chokidar: ^3.5.1
|
||||||
|
peerDependenciesMeta:
|
||||||
|
chokidar:
|
||||||
|
optional: true
|
||||||
|
dependencies:
|
||||||
|
'@mole-inc/bin-wrapper': 8.0.1
|
||||||
|
'@swc/core': 1.3.69
|
||||||
|
commander: 7.2.0
|
||||||
|
fast-glob: 3.2.12
|
||||||
|
semver: 7.5.4
|
||||||
|
slash: 3.0.0
|
||||||
|
source-map: 0.7.4
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@swc/cli@0.1.62(@swc/core@1.3.70)(chokidar@3.5.3):
|
/@swc/cli@0.1.62(@swc/core@1.3.70)(chokidar@3.5.3):
|
||||||
resolution: {integrity: sha512-kOFLjKY3XH1DWLfXL1/B5MizeNorHR8wHKEi92S/Zi9Md/AK17KSqR8MgyRJ6C1fhKHvbBCl8wboyKAFXStkYw==}
|
resolution: {integrity: sha512-kOFLjKY3XH1DWLfXL1/B5MizeNorHR8wHKEi92S/Zi9Md/AK17KSqR8MgyRJ6C1fhKHvbBCl8wboyKAFXStkYw==}
|
||||||
engines: {node: '>= 12.13'}
|
engines: {node: '>= 12.13'}
|
||||||
|
@ -7310,6 +7336,17 @@ packages:
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
/@swc/core-freebsd-x64@1.3.11:
|
||||||
|
resolution: {integrity: sha512-02uqYktPp6WmZfZ2Crc/yIVOcgANtjo8ciHcT7yLHvz7v+S7gx1I2tyNGUFtTX5hcR2IFNGrL8Yj4DvpTABFHg==}
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [freebsd]
|
||||||
|
requiresBuild: true
|
||||||
|
dependencies:
|
||||||
|
'@swc/wasm': 1.2.130
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
/@swc/core-linux-arm-gnueabihf@1.3.56:
|
/@swc/core-linux-arm-gnueabihf@1.3.56:
|
||||||
resolution: {integrity: sha512-LWwPo6NnJkH01+ukqvkoNIOpMdw+Zundm4vBeicwyVrkP+mC3kwVfi03TUFpQUz3kRKdw/QEnxGTj+MouCPbtw==}
|
resolution: {integrity: sha512-LWwPo6NnJkH01+ukqvkoNIOpMdw+Zundm4vBeicwyVrkP+mC3kwVfi03TUFpQUz3kRKdw/QEnxGTj+MouCPbtw==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
@ -19097,8 +19134,8 @@ packages:
|
||||||
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
|
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/slacc-android-arm-eabi@0.0.9:
|
/slacc-android-arm-eabi@0.0.10:
|
||||||
resolution: {integrity: sha512-T5P5kJ5UwW3UMoPXqqHh9TpCnuCJDCoivoiuONDXrYPYKF8sKDPMVVg1x/KU9/m7e562x9vAMBrIyqFFbEW0Jw==}
|
resolution: {integrity: sha512-U3dVBuM1m8rT1D/w6S4knJ/uscNwsCR+MKxSQFbgDJEh8Atv+ovuC+FMGuaBT4iOQjpMj5dWSsN3ZPjVeo3hgA==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
@ -19106,8 +19143,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/slacc-android-arm64@0.0.9:
|
/slacc-android-arm64@0.0.10:
|
||||||
resolution: {integrity: sha512-bcKB3ukcI5wWJa2clK/5cy6a4TKp51DRkdRuFgKLG05gBj1jbH+7+8iBPojljeY28LC2frmwVHGj3vDmkFUeYg==}
|
resolution: {integrity: sha512-guVp88sW+4j1clTSXMzyDJHG8ondVnd8/FMKXIOfzKCEwSwX3uBxsuyHqtGvXkEwyZAGsBUy13Ei/PZAwElwYA==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [android]
|
os: [android]
|
||||||
|
@ -19115,8 +19152,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/slacc-darwin-arm64@0.0.9:
|
/slacc-darwin-arm64@0.0.10:
|
||||||
resolution: {integrity: sha512-EspX0Hj6t0Afxbsyc6rY9mTOUQQrPVtWPwwNRaljGRorPyRDDefrU1OnJXRcwcIp0oCZrRrivRYlO7lai63EMw==}
|
resolution: {integrity: sha512-633qnOMTP7egvd5IeljAOku0tnxlBXSoCRu7HiT0yeXxN9y5Tbg2X2/FaRzstI36lClfIJ0Lavne4mOw/90z9A==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
@ -19124,16 +19161,16 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/slacc-darwin-universal@0.0.9:
|
/slacc-darwin-universal@0.0.10:
|
||||||
resolution: {integrity: sha512-oQySg+9MPyKI9rwwwhmSZQkPks2/rq3k1P5HKwUgnaFZDvDtS/hpDycB3BxSDqWdD5kVA8PLCVa8pt9T5KyKfg==}
|
resolution: {integrity: sha512-x5kEqRMTEQTi3NCufPEukWvaWqcOL+7EkP18ZCCiajcWH83jWnT8DOSGOmmLYdrXd0B7ZZcbd8GyLp3i5zu8PA==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/slacc-darwin-x64@0.0.9:
|
/slacc-darwin-x64@0.0.10:
|
||||||
resolution: {integrity: sha512-9Xp7mVKKF2QvDiIZOBgwsDdL/+95KBiFTdbo+XtH6YKoh6zNw0aPpkA3JojsdSMYdGHUrxl8b7avhzI0USqeEg==}
|
resolution: {integrity: sha512-5gQYboy/4T6Bj3sVXiCpM3EvF1sK/Zx1Nq5YBMUuYb2GzrIwywghHbCD6bK4JYGvNsLN7r4PC45ZUB4gVkU8yA==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [darwin]
|
os: [darwin]
|
||||||
|
@ -19141,8 +19178,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/slacc-freebsd-x64@0.0.9:
|
/slacc-freebsd-x64@0.0.10:
|
||||||
resolution: {integrity: sha512-jRd8WmXZLU2mcxV7SN8CzZzGiwbpxtaTjLwrYMTryQZ2TFr1xd1r5mQfTN5sBiwu3tnyK5dmHnRAPy+215mOkQ==}
|
resolution: {integrity: sha512-Jmi5YszELef/aCzYto+LwiNGhCk5mrlJfTJU/pOI91HBbrZlV+aRyIsPCcxAMg5yPsPQuyRljrDouVYrPzNmjw==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [freebsd]
|
os: [freebsd]
|
||||||
|
@ -19150,8 +19187,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/slacc-linux-arm-gnueabihf@0.0.9:
|
/slacc-linux-arm-gnueabihf@0.0.10:
|
||||||
resolution: {integrity: sha512-nhP6+jgd30sq+zFxFW7fGhnPwCfCCU0l1JKk3ORGFMl7wH7ippTDd1xGapKq7N+zgdgURbyj83P3wWb2gcRZ1w==}
|
resolution: {integrity: sha512-9lTM3DGtISQlZYSKrMuQyKCiUnHYRcy04mY6HF1ywYcQ2sqfv3bKEnrypVewepIFUtytlIGzkgpiUAk/ghYGoA==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
@ -19159,8 +19196,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/slacc-linux-arm64-gnu@0.0.9:
|
/slacc-linux-arm64-gnu@0.0.10:
|
||||||
resolution: {integrity: sha512-x7v0rDe0KNVe1Hl6/XCtkCpqdT283pyVaUmk+af0AnoesNRjYEK8DBc8i53N4nhotionHzPIZfu5gPAFkf6RhA==}
|
resolution: {integrity: sha512-qXrNWSINXOjHRO3c9idGm8DeOAjAjG1xHY8WiplCoHWgsZf3E7V+sPhWqRUaGQEvftsJg40+cFYREBaLQhpAVQ==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
@ -19168,8 +19205,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/slacc-linux-arm64-musl@0.0.9:
|
/slacc-linux-arm64-musl@0.0.10:
|
||||||
resolution: {integrity: sha512-jyq/ylITHIXTQX5ZqAbi7Mn5SdRgYJi+uEoUCi5UhoXb9LjpNzhkFuY29Je3IkVIIV7AEcAxIlvjdymXdzcF5w==}
|
resolution: {integrity: sha512-3lUX7752f6Okn54aONioaA+9M5TvifqXBAart+u2lNXEdWmmh003cVSU2Vcwg7nJ9lLHtju2DkDmKKfJjFuShA==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
@ -19177,8 +19214,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/slacc-linux-x64-gnu@0.0.9:
|
/slacc-linux-x64-gnu@0.0.10:
|
||||||
resolution: {integrity: sha512-Xs/F81H7cKhlIBigFID6CJlgjy0NeDUGV1CI1MI5mSVHsVI8dUO8zXWETjo6o8krJPgfjT5Jd4tAgvUFct5hng==}
|
resolution: {integrity: sha512-BxxvylF9zlOLRLCpiyMvKTIUpdLlpetNBJ+DSMDh5+Ggq+AmQz2NUGawmcBJw58F8nMCj9TpWLlGNWc2AuY+JQ==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
@ -19186,8 +19223,17 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/slacc-win32-arm64-msvc@0.0.9:
|
/slacc-linux-x64-musl@0.0.10:
|
||||||
resolution: {integrity: sha512-C+H0VkKbEEnRbcXRIG5rIaXlg7IZw3o1BbvqA71B8ouQRCu/dNRuH9EQsOYXWltndY42zZi8IupNIwydTUg+Mg==}
|
resolution: {integrity: sha512-TYJi8LOtJiTFcZvka4du7bMjF9Bz1RHRwyLnScr5E5yjjgoLRrsvgSu7bxp87xH+rgJ3CdEwE3w3Ux8EiewHpA==}
|
||||||
|
engines: {node: '>= 10'}
|
||||||
|
cpu: [x64]
|
||||||
|
os: [linux]
|
||||||
|
requiresBuild: true
|
||||||
|
dev: false
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
/slacc-win32-arm64-msvc@0.0.10:
|
||||||
|
resolution: {integrity: sha512-1CHPLiDB4exzFyT5ndtJDsRRhBxNg8mGz6I6eJEMjelGkJR2KZPT9LZuby/1bS/bcVOr7zuJvGNfbEGBeHRwPQ==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
@ -19195,8 +19241,8 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/slacc-win32-x64-msvc@0.0.9:
|
/slacc-win32-x64-msvc@0.0.10:
|
||||||
resolution: {integrity: sha512-bElMnBbeMatCtVp2/+hBS6Z+846nQImEul9nBEr4gfezHotOM6MqR6PI7UQQzGhozpgwiDg2l1ub1MdOIgYizg==}
|
resolution: {integrity: sha512-wAXBy5yKCAzfYWjVlyPpu6PscD+j4QhCQEy0wZaVuzNyx60HpXWcTZxxVnMR730Y7tfc7cBxSI8NtRb8RguSgg==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
@ -19204,22 +19250,23 @@ packages:
|
||||||
dev: false
|
dev: false
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
/slacc@0.0.9:
|
/slacc@0.0.10:
|
||||||
resolution: {integrity: sha512-BwhjD3daQB3VIx7GxkComMYrnkWuMt4YmDAueMMchblfUUBbP8EcuonJ1Bz9nqtRn1mAH2YPrrRDP95akM+ZuQ==}
|
resolution: {integrity: sha512-2jgms2/4mLr1AMq4oloAwPdKQK9RQvgmoEpMIxvC+HeHMwCR0XxB7gr/rKo4iLOKJ6gx02mnBU0JHWcTIonpmA==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
slacc-android-arm-eabi: 0.0.9
|
slacc-android-arm-eabi: 0.0.10
|
||||||
slacc-android-arm64: 0.0.9
|
slacc-android-arm64: 0.0.10
|
||||||
slacc-darwin-arm64: 0.0.9
|
slacc-darwin-arm64: 0.0.10
|
||||||
slacc-darwin-universal: 0.0.9
|
slacc-darwin-universal: 0.0.10
|
||||||
slacc-darwin-x64: 0.0.9
|
slacc-darwin-x64: 0.0.10
|
||||||
slacc-freebsd-x64: 0.0.9
|
slacc-freebsd-x64: 0.0.10
|
||||||
slacc-linux-arm-gnueabihf: 0.0.9
|
slacc-linux-arm-gnueabihf: 0.0.10
|
||||||
slacc-linux-arm64-gnu: 0.0.9
|
slacc-linux-arm64-gnu: 0.0.10
|
||||||
slacc-linux-arm64-musl: 0.0.9
|
slacc-linux-arm64-musl: 0.0.10
|
||||||
slacc-linux-x64-gnu: 0.0.9
|
slacc-linux-x64-gnu: 0.0.10
|
||||||
slacc-win32-arm64-msvc: 0.0.9
|
slacc-linux-x64-musl: 0.0.10
|
||||||
slacc-win32-x64-msvc: 0.0.9
|
slacc-win32-arm64-msvc: 0.0.10
|
||||||
|
slacc-win32-x64-msvc: 0.0.10
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/slash@3.0.0:
|
/slash@3.0.0:
|
||||||
|
@ -20982,8 +21029,8 @@ packages:
|
||||||
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
|
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
/vue-component-type-helpers@1.8.5:
|
/vue-component-type-helpers@1.8.6:
|
||||||
resolution: {integrity: sha512-SBNsskF7L5x604V1BN4ZzdTtWgCqo5cfl//YuBXtc3LLyPdFRqUeJn2Q+FPNmCtl23LBT2tH79M/uv13fL0MgQ==}
|
resolution: {integrity: sha512-vKWeoKVEV51ZzoB8+UY0apMXiifbPQxWlcZlvQRDVdiOHmEkCBClWeIGbqQ8cCR9P4j+oCyLW87sraZFMz/qnA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/vue-docgen-api@4.64.1(vue@3.3.4):
|
/vue-docgen-api@4.64.1(vue@3.3.4):
|
||||||
|
@ -21585,8 +21632,8 @@ packages:
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
react-dom: 18.2.0(react@18.2.0)
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
github.com/misskey-dev/summaly/77dd5654bb82280b38c1f50e51a771c33f3df503:
|
github.com/misskey-dev/summaly/089a0ad8e8c780e5c088b1c528aa95c5827cbdcc:
|
||||||
resolution: {tarball: https://codeload.github.com/misskey-dev/summaly/tar.gz/77dd5654bb82280b38c1f50e51a771c33f3df503}
|
resolution: {tarball: https://codeload.github.com/misskey-dev/summaly/tar.gz/089a0ad8e8c780e5c088b1c528aa95c5827cbdcc}
|
||||||
name: summaly
|
name: summaly
|
||||||
version: 4.0.2
|
version: 4.0.2
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
Loading…
Reference in New Issue